Shop OBEX P1 Docs P2 Docs Learn Events
Mac/Linux/Windows IDE - Ver 0.19.3 "Now with new improved PropBasic" release - Page 45 — Parallax Forums

Mac/Linux/Windows IDE - Ver 0.19.3 "Now with new improved PropBasic" release

1424345474852

Comments

  • jazzedjazzed Posts: 11,803
    edited 2010-04-29 15:43
    BradC said...
    I've uploaded 0.19.4-pre12.
    - Pre-Compile binary execution for a project (in the project options box). Put the full file path/name and command line in the box. bst will complain loudly when you try to compile if you've got it wrong.
    @BradC,

    Thank you so much for taking time to add this feature. I did some windows testing and wanted to summarize results:
    • It can run programs with expected behavior (program.exe runs if "program" is specified).
    • It can not run batch files by specifying just the name without the .bat extension.
    • It can run batch files using the run command such as: "run build.bat parameter ..." (run always return 0).
    I have not tried running a shell script with Linux version ... maybe someone else can.

    Cheers,
    --Steve

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    May the road rise to meet you; may the sun shine on your back.
    May you create something useful, even if it's just a hack.
  • BeanBean Posts: 8,129
    edited 2010-04-29 18:12
    Brad,
    Just a couple comments on the PropBasic highlighting:
    1) For some reason ABS highlights in a different color ?
    2) Keywords used in strings("DATA"), comments(' or { }), and PASM(\ or ASM...ENDASM) get highlighted.

    I don't know how hard it would be to correct these, I'm just throwing it out there...

    Bean

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    Use BASIC on the Propeller with the speed of assembly language.
    PropBASIC thread http://forums.parallax.com/showthread.php?p=867134

    March 2010 Nuts and Volts article·http://www.parallax.com/Portals/0/Downloads/docs/cols/nv/prop/col/nvp5.pdf
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    There are two rules in life:
    · 1) Never divulge all information
  • SSteveSSteve Posts: 808
    edited 2010-04-29 19:49
    Harley said...
    I've not kept up on this thread, but do have an iMac. My question is how do you use tools such as PASD and ViewPort with this IDE? They NEED Windows.

    I'm using Parallels and Windows XP to utilize the PropTool,and those tools to debug my programs. I'd be lost without them; PASD to debug initially the PASM cogs and ViewPort to verify the timing with the hardware the Props interface with.

    PASD and ViewPort will still need to be run under Parallels, so if your goal is to stop using Windows you'll need to petition to creators of those programs to go cross-platform.

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    OS-X: because making Unix user-friendly was easier than debugging Windows

    links:
    My band's website
    Our album on the iTunes Music Store
  • SSteveSSteve Posts: 808
    edited 2010-04-29 20:06
    BradC said...
    Now.. I really, really, really need feedback from Mac and Linux users on the next one.. pretty please with sugar on top.

    When you right click on a tab in the tab bar at the top, the first item in the context menu should be the name of the tab you've right-clicked on. In previous versions it has always been the name of the currently showing tab. This should now properly work with any tab you click over.
    Some quick tests here on Intel/10.6.3 and G5/10.5.8 show no problems.

    Cmd+[noparse][[/noparse]/] are backwards, though. Cmd+] should indent and Cmd+[noparse][[/noparse] should un-indent. Also, to be consistent with Xcode and BBEdit, it should work on the line containing the cursor if there is no selection.

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    OS-X: because making Unix user-friendly was easier than debugging Windows

    links:
    My band's website
    Our album on the iTunes Music Store
  • BradCBradC Posts: 2,601
    edited 2010-04-29 23:07
    SSteve said...

    Cmd+[noparse][[/noparse]/] are backwards, though. Cmd+] should indent and Cmd+[noparse][[/noparse] should un-indent. Also, to be consistent with Xcode and BBEdit, it should work on the line containing the cursor if there is no selection.


    Cheers for that, I was not sure which way round they should be. It was 50/50 [noparse]:)[/noparse]

    I'll have a look at the action if there is no selection, but I can't promise that one. It's a behaviour that is buried fairly deeply inside the editor component.

    @bean, I'll try and get those fixed. It's just a matter of tweaking behaviour.

    @jazzed, bst launches files on each platform using the relevant syscall, and not via a shell processor, so the behaviour with batch files would be right. It works properly on Linux when launching scripts as the kernel handles the dispatch to the correct shell processor.

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    You only ever need two tools in life. If it moves and it shouldn't use Duct Tape. If it does not move and it should use WD40.
  • HarleyHarley Posts: 997
    edited 2010-04-29 23:38
    Steve said...
    PASD and ViewPort will still need to be run under Parallels, so if your goal is to stop using Windows you'll need to petition to creators of those programs to go cross-platform.
    That would have been nice if it were easy for the creators to include running on iMacs. Thanks SSteve.

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    Harley Shanko
  • BradCBradC Posts: 2,601
    edited 2010-04-29 23:41
    pullmoll said...
    Hey Brad,
    just in case you're without anything to do, which I can't imagine, here's a suggestion regarding the warnings printed with -w2:
    If a #-less jump's target is a ret instruction, the warning is superfluous, because you get what you expect. I don't know if your compiler has the opcode that is jumped to in reach to verify with 'ret', so it might be too complicated to suppress the warning in this specific case. Perhaps a compare for the target label ending with '_ret' is sufficient, though some very brain dead people might use xxx_ret for an address that has no ret instruction.

    Yeah, the problem is to make it properly consistent then you *really* need to check the _ret symbol for a real ret instruction. The problem with doing _that_ is bstc is a 2 pass compiler, so by the time you are processing the jmp instruction, the ret has not actually been encoded.

    The warning for the # is pretty simple. It's generally the most used case, so if there is one missing the immediate bit it simply flags a warning. You can disable the warning on a case by case basis by putting '!W as the first part of a comment following the jmp. It's ugly, but it's consistent.

    It's an interesting challenge though, so next time I have my head in the PASM assembler I'll certainly look at it a bit closer.
    pullmoll said...

    Did I ever say Thank you for bst(c)? Thank you!

    Welcome [noparse]:)[/noparse]

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    You only ever need two tools in life. If it moves and it shouldn't use Duct Tape. If it does not move and it should use WD40.
  • jmspaggijmspaggi Posts: 629
    edited 2010-04-30 00:46
    BradC said...

    Now.. I really, really, really need feedback from Mac and Linux users on the next one.. pretty please with sugar on top.

    This seems to be working fine.

    I played a bit with it, and did'nt find any issue. Moved tabs, compiled, move, etc.

    One thing is strange with the tabs.

    Let's say you have A, B, C and D

    A is selected.

    You right-click on C, and click on move-tab-left. You know have A, C, B and D. But the focus in on B. You never have selected this tab. I think focus should be on C, the one we moved, or keep the focus on A, where it was. But I don't think it should move on C.

    Is there a shortcut to move from tab to tab? Like Ctrl-PageDown Ctrl-PageUp on firefox?
    jazzed said...

    I have not tried running a shell script with Linux version ... maybe someone else can.

    It's working fine on Linux. I tried to start GEdit successfuly. It's also working when you try to run a script. I you detach a process in the script, you can exit the script, return to BST and still have your process runing [noparse];)[/noparse] Don't know what it can be used for, but it's working [noparse];)[/noparse]

    Else, this option will be very usefull to run java makes to build .jem files to push them into the prop.

    Thanks!

    JM
  • jazzedjazzed Posts: 11,803
    edited 2010-04-30 01:41
    jmspaggi said...
    Else, this option will be very usefull to run java makes to build .jem files to push them into the prop.
    Yep, that's it. I also plan to push data to the EEPROM upper 32K+ before the normal build at some point [noparse]:)[/noparse]
    I can think of other good reasons to use it, but would rather keep a lid on·that Mythical·Box a while longer.

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    May the road rise to meet you; may the sun shine on your back.
    May you create something useful, even if it's just a hack.
  • BradCBradC Posts: 2,601
    edited 2010-04-30 04:31
    jazzed said...
    jmspaggi said...

    Else, this option will be very usefull to run java makes to build .jem files to push them into the prop.


    Yep, that's it. I also plan to push data to the EEPROM upper 32K+ before the normal build at some point [noparse]:)[/noparse]

    The bootloader I wrote for bstl to allow uploading the eeprom contents has a hundred or so longs free. I was thinking about adding an option to bstl to allow reading/writing the upper 32k. Would that be useful? I've based it on the default Propeller bootloader so it's not dependent on an external clock. Zero-config [noparse]:)[/noparse]

    @jmspaggi, yes the focus shifting is annoying me also. I'll have a solution before the next snapshot with some luck.

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    You only ever need two tools in life. If it moves and it shouldn't use Duct Tape. If it does not move and it should use WD40.
  • pullmollpullmoll Posts: 817
    edited 2010-04-30 12:40
    Excuse my ignorance, but perhaps I'm just overlooking something: is it possible to use #if <constant expression> for conditional compilation? So far I always get the error #endif without #if, while it seems that #if alone isn't a preprocessor option, but just #ifdef?

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    Pullmoll's Propeller Projects
  • BradCBradC Posts: 2,601
    edited 2010-04-30 12:53
    pullmoll said...
    Excuse my ignorance, but perhaps I'm just overlooking something: is it possible to use #if <constant expression> for conditional compilation?

    No it's not. #if is not defined. #ifdef only looks for a defined symbol.
    I've thought about adding some form of expression evaluator in there, but the whole # thing is done in the tokenizer and its not really clever.

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    You only ever need two tools in life. If it moves and it shouldn't use Duct Tape. If it does not move and it should use WD40.
  • pullmollpullmoll Posts: 817
    edited 2010-04-30 13:18
    BradC said...
    No it's not. #if is not defined. #ifdef only looks for a defined symbol.
    I've thought about adding some form of expression evaluator in there, but the whole # thing is done in the tokenizer and its not really clever.

    Ok, no wine with the fish. I would have offered to look into doing a real preprocessor step with macro expansion, but then... all your base isn't belong to us [noparse];)[/noparse]

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    Pullmoll's Propeller Projects
  • jazzedjazzed Posts: 11,803
    edited 2010-05-01 07:11
    BradC said...
    The bootloader I wrote for bstl to allow uploading the eeprom contents has a hundred or so longs free. I was thinking about adding an option to bstl to allow reading/writing the upper 32k. Would that be useful? I've based it on the default Propeller bootloader so it's not dependent on an external clock. Zero-config [noparse]:)[/noparse]
    There is some value in being able to load the upper 32K+ EEPROM. Fetch and run from EEPROM is pretty bad, but loading from it is still useful. There are several methods for loading COG drivers before loading the application that makes it possible to use all 48K memory. One method I call the Baker Flush uses the upper 32K to store and read the main application program. RossH also has a Catalina mode called EMM that uses a very similar idea. So, if you build it, there is a good chance it will get used especially considering the number of Propeller ProtoBoard devices with 64KB EEPROM (and Hydras too) in the field.

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    May the road rise to meet you; may the sun shine on your back.
    May you create something useful, even if it's just a hack.
  • jmspaggijmspaggi Posts: 629
    edited 2010-05-04 16:47
    @BradC:

    Just in case you are not monitoring the entire forum, can you please take a look at this request?

    http://forums.parallax.com/forums/default.aspx?f=25&m=450252

    Basically:
    Chim
  • BradCBradC Posts: 2,601
    edited 2010-05-05 00:26
    jmspaggi said...
    @BradC:

    Just in case you are not monitoring the entire forum, can you please take a look at this request?

    http://forums.parallax.com/forums/default.aspx?f=25&m=450252

    I've had this on my list for a long while but I have no hardware to test it with. I've asked several times for people with appropriate hardware to lend it to me for 4 weeks so I can develop/test but as I've not ever received any hardware I guessed nobody really actually cared about it.

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    You only ever need two tools in life. If it moves and it shouldn't use Duct Tape. If it does not move and it should use WD40.
  • ChimChim Posts: 16
    edited 2010-05-05 06:48
    Hello BardC,
    I'm very interrested because I have got a home-made Prop plug with RTS signal reset.
    I could try it.

    Thanks in advance.
  • TubularTubular Posts: 4,635
    edited 2010-05-05 06:55
    Brad,
    I have a FTDI 232 cable with 6 pin header which I believe uses RTS. Its sitting there doing nothing in its bag so I'll express post it across for Friday hopefully.

    I'm not sure if it puts out 5 volts or 3v3, if its 5v I'm sure I can whip up an inline reg. What board will you be testing with? 4 pin (eg prop plug/clip), 5 (serplug/4d) or 6 pin header?

    cheers
    tubular
  • BradCBradC Posts: 2,601
    edited 2010-05-05 07:46
    Tubular said...
    Brad,
    I have a FTDI 232 cable with 6 pin header which I believe uses RTS. Its sitting there doing nothing in its bag so I'll express post it across for Friday hopefully.

    I'm not sure if it puts out 5 volts or 3v3, if its 5v I'm sure I can whip up an inline reg. What board will you be testing with? 4 pin (eg prop plug/clip), 5 (serplug/4d) or 6 pin header?

    I've got standard proto boards with the 4 pin header. If it's 5v I don't see a major issue as I can just put a series resistor in. The biggest issue is with the polarity of the RTS/DTR signals.

    The biggest issue is on OSX, where the DTR asserts on port open and de-asserts on port close. To make the serial terminal work properly, the loader has to leave the DTR line de-asserted during the load process, and the interface has to make sure the reset happens on the de-assert, so when the serial terminal opens the first time and asserts DTR, it does not cause a reset.

    This becomes an issue when someone plugs a transistor based interface into a Mac. The reset polarity is wrong and the first time the serial terminal opens after a load causes an immediate reset.

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    You only ever need two tools in life. If it moves and it shouldn't use Duct Tape. If it does not move and it should use WD40.
  • TubularTubular Posts: 4,635
    edited 2010-05-05 08:36
    Hmm well I guess the RTS won't suffer quite the same conventions, and hopefully is easier.

    I sent the cable already in tonights express post. Didn't get any time to rearrange the pin order as I'm hurrying to get on a plane first up tomorrow. But you can easily do that at your end. Its 5v variant of the FTDI 232R cable. It terminates to a 6 pin 0.1" female header with colour coded wires (Black-brown-red-orange-yellow-green). This kinda thing:
    ftdichip.com/Products/EvaluationKits/TTL-232R.htm
  • BradCBradC Posts: 2,601
    edited 2010-05-05 08:44
    Tubular said...
    Hmm well I guess the RTS won't suffer quite the same conventions, and hopefully is easier.

    I sent the cable already in tonights express post. Didn't get any time to rearrange the pin order as I'm hurrying to get on a plane first up tomorrow. But you can easily do that at your end. Its 5v variant of the FTDI 232R cable. It terminates to a 6 pin 0.1" female header with colour coded wires (Black-brown-red-orange-yellow-green). This kinda thing:
    ftdichip.com/Products/EvaluationKits/TTL-232R.htm[noparse][[/noparse]/quote

    Excellent. I'll have a play when it arrives. Safe trip.

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    You only ever need two tools in life. If it moves and it shouldn't use Duct Tape. If it does not move and it should use WD40.

  • BaggersBaggers Posts: 3,019
    edited 2010-05-10 08:23
    Brad, is there any way to set the serial speed on the Mac version? as I'm using BST on the Mac with a USB Serial Converter to connect to the DracBlade to make the spectrum emulator, and downloading to ram takes forever even for just 2K longs.
    Any ideas?
    Cheers,
    Baggers.

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    http://www.propgfx.co.uk/forum/·home of the PropGFX Lite

    ·
  • BradCBradC Posts: 2,601
    edited 2010-05-10 08:52
    Baggers said...
    Brad, is there any way to set the serial speed on the Mac version? as I'm using BST on the Mac with a USB Serial Converter to connect to the DracBlade to make the spectrum emulator, and downloading to ram takes forever even for just 2K longs.

    Compiler Prefs->Options->"High speed Propeller download/detect" will double the baud rate.

    bst downloads using hippy's "dense packing" which is on average 25% faster than the Propeller tool. When you double the baud rate it generally gives you another 25%.

    The baud rate is never slower than the Propeller Tool default of 115200.

    Which specific version are you using, what is the USB-Serial device and what are the details of your Mac & OS ?

    I test it here on a dual core i386 mac Mini with OSX 10.6.2 and a 400Mhz PPC with 10.4.11.

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    "Are you suggesting coconuts migrate?"
  • BaggersBaggers Posts: 3,019
    edited 2010-05-10 09:58
    Hi BradC,

    I've got a mini-mac, 2.53Ghz Intel Core 2 Duo, 4GB 1067 Mhz DDR3 running Mac OS X 10.6.3, 1 cpu 2 cores.

    USB-Serial Controller D:
    Product ID: 0x2303
    Vendor ID: 0x067b (Prolific Technology, Inc.)
    Version: 4.00
    Speed: Up to 12 Mb/sec
    Manufacturer: Prolific Technology Inc.
    Location ID: 0x06400000
    Current Available (mA): 500
    Current Required (mA): 100

    I knew it should be faster, especially with the high speed set in the options, either way, it's way slower than proptool on PC

    Any ideas?

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    http://www.propgfx.co.uk/forum/·home of the PropGFX Lite

    ·
  • BradCBradC Posts: 2,601
    edited 2010-05-10 10:19
    Baggers said...

    I knew it should be faster, especially with the high speed set in the options, either way, it's way slower than proptool on PC

    Any ideas?

    None. It should rip along. I even test with a pl2303 from time to time.

    Are you using a late -pre of bst?

    Can you try a command line compile/load using bstc? It reports the actual download time.

    Have you got tx/rx lights on the board? Do they do approximately the same thing they do with the Propeller Tool?

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    "Are you suggesting coconuts migrate?"
  • BaggersBaggers Posts: 3,019
    edited 2010-05-10 10:37
    well that's strange, it's MEGA quick using BSTC [noparse]:D[/noparse] so now why is it soooo slow using BST?

    edit: I'm using 0.19.3 of bst

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    http://www.propgfx.co.uk/forum/·home of the PropGFX Lite

    ·
  • BradCBradC Posts: 2,601
    edited 2010-05-10 11:04
    Baggers said...
    well that's strange, it's MEGA quick using BSTC [noparse]:D[/noparse] so now why is it soooo slow using BST?

    edit: I'm using 0.19.3 of bst

    Thats _really_ odd. Just to humour me, could you try the latest -pre release? Theres a lot of groovy new stuff and not that many bugs I know about. I _have_ made a few loader timing changes since then and re-written a few bits 'n bobs. If it's still playing up with the latest version I'll screw my nose up and squint at the code a bit harder.

    What really perplexes me is bstc and bst use _precisely_ the same code for downloads. It's a shared source file between the two, but bst uses it in a slightly different way.

    www.fnarfbargle.com/bst/snapshots

    www.fnarfbargle.com/bst/snapshots/bst-0.19.4-pre12.osx.zip would be the one you want I guess.

    The config and formats between the two are identical so you can always downgrade if you need to.

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    "Are you suggesting coconuts migrate?"
  • BaggersBaggers Posts: 3,019
    edited 2010-05-10 12:53
    That's still the same, really slow [noparse]:([/noparse]
    Yeah, I also find it strange, and would imagine you would have used the same source for downloads in both apps.
    Very weird!

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    http://www.propgfx.co.uk/forum/·home of the PropGFX Lite

    ·
  • BradCBradC Posts: 2,601
    edited 2010-05-10 13:04
    Baggers said...
    That's still the same, really slow [noparse]:([/noparse]
    Yeah, I also find it strange, and would imagine you would have used the same source for downloads in both apps.
    Very weird!

    Ok, I'll dig a bit deeper.. that is particularly strange. The only difference is in bst the loader runs in a separate thread (I had issues with OSX updating the GUI).

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    "Are you suggesting coconuts migrate?"
  • BaggersBaggers Posts: 3,019
    edited 2010-05-10 13:57
    ah, that may be the solution?

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    http://www.propgfx.co.uk/forum/·home of the PropGFX Lite

    ·
Sign In or Register to comment.