PropBASIC IDE options

VonSzarvasVonSzarvas Posts: 1,563
edited 2019-07-26 - 08:07:00 in General Discussion
@Spiller recently asked about using PropBASIC with Viewport

As I recall, v4.82 was the last version of Viewport that worked reliably. @Mickster may have had success with a later version.


Here's some other useful links about using PropBASIC with PropellerIDE or SimpleIDE instead.

Bean did a fair bit of work with the SimpleIDE integration most recently, and has provided some nice demo code too !

SimpleIDE related:

PropellerIDE related:

Notepad++ related:
(I thought someone had further elaborated using PropBASIC with notepad++, and had created a keywords file. Just can't find that right now!)


Finally, here's the Parallax GitHub for PropBasic. Binaries are included, the latest version being 1.48.

https://github.com/parallaxinc/PropBASIC

Comments

  • Yeah, Viewport 4.9 has issues with PropBasic.

    Rant alert:
    It's a crying shame that PropBasic and also VP are, pretty much, shunned by this community.
    Who cares that VP ain't free. I don't work for free but that doesn't bother my clients at all.

    If more people valued their their time and ponied up for VP, maybe Hanno wouldn't have abandoned it.

    BASIC ain't going away folks and it has kept me self employed since 1986 because I can get the job done.

    Rant over.

    Thank you Bean and Hanno.
    Failure is not an option...it's bundled with the software.
  • There's also fastspin's version of BASIC, which is supported in spin2gui and SpinEdit.
  • Not supported by VP, though.
    Failure is not an option...it's bundled with the software.
  • Mickster wrote: »
    Not supported by VP, though.

    The first post did discuss IDE alternatives to PropBASIC + VP, so I thought it was fair to point out another one. It's a different BASIC dialect than PropBASIC, but if anything I would argue it's a more "traditional" BASIC.

    But to each his own. If PropBASIC + VP is working for you then by all means keep using it. If you want an optimizing BASIC compiler with an easy migration path to P2 then you might want to check out fastspin.

  • ersmith wrote: »
    Mickster wrote: »
    Not supported by VP, though.

    The first post did discuss IDE alternatives to PropBASIC + VP, so I thought it was fair to point out another one. It's a different BASIC dialect than PropBASIC, but if anything I would argue it's a more "traditional" BASIC.

    But to each his own. If PropBASIC + VP is working for you then by all means keep using it. If you want an optimizing BASIC compiler with an easy migration path to P2 then you might want to check out fastspin.

    I am very excited about Fastspin and totally amazed by this rapid development.

    BUT I have been following the Python thread and I shake my head. It's a dog of a performer and we are talking ucontrollers with limited resources and power consumption concerns. Why would you want your code to be jumping through hoops when PropBasic literally spits out PASM?
    Failure is not an option...it's bundled with the software.
  • Mickster wrote: »
    I am very excited about Fastspin and totally amazed by this rapid development.

    BUT I have been following the Python thread and I shake my head. It's a dog of a performer and we are talking ucontrollers with limited resources and power consumption concerns. Why would you want your code to be jumping through hoops when PropBasic literally spits out PASM?

    ? Not sure why you mention micropython. micropython and fastspin are totally different things and have nothing at all to do with each other.

    fastspin, like PropBASIC, produces PASM, either for LMM or COG. It actually has an optimizer so it can produce more efficient PASM than PropBASIC. On the other hand PropBASIC's output is more predictable (it achieves this by restricting the input language so that the compiler has fewer options it has to deal with.) I think they each have their use cases.
  • I mentioned micropython because it's receiving an awful lot of attention, because it's the language-du-jour.

    Show me something that micropython can do on the P1 that PropBasic can't do an awful lot faster and with more readable code.

    I realize I have gone off on a tangent but Probasic + VP deserve more respect here.

    Failure is not an option...it's bundled with the software.
  • Mickster wrote: »
    I mentioned micropython because it's receiving an awful lot of attention, because it's the language-du-jour.

    Show me something that micropython can do on the P1 that PropBasic can't do an awful lot faster and with more readable code.

    (1) micropython only works on the P2. PropBASIC only works on the P1. So different target audiences there :)

    (2) micropython is interactive, which accounts for a fair chunk of its overhead. You can't actually run the PropBASIC compiler on the Propeller itself, whereas the micropython compiler is built in and you can type commands at it interactively. You can even edit and run micropython scripts completely on the P2 without any PC involved at all.

    (3) "readability" is in the eye of the beholder I guess. Personally I find PropBASIC's need for explicit rdlong and wrlong statements for accessing HUB memory off-putting, but obviously others disagree.
    I realize I have gone off on a tangent but Probasic + VP deserve more respect here.

    No argument there, PropBASIC is a very nice compiler and it's a shame that more people don't try it out. I think the bottom line is that people in the Propeller community seem to be pretty focused on a narrow range of tools that they're comfortable with and tend not to try out other things. Actually that's probably not just the "Propeller community" but humans in general...

    Peter Jakacki's Tachyon is another product that doesn't get the attention it deserves. It's interactive, fast, runs on both P1 and P2, and has a huge library. But it's not Spin and it's not the language du jour :(.

  • VP brings interactivity to the compiled code and the Scope lets you see what's going on. Who needs clunky old overhead?
    Failure is not an option...it's bundled with the software.
  • Hi

    speaking of PropBasic- will there be a version for P2?
    I hope so.

    Dave
  • @ersmith has that more than covered with fastspin and with the added benefit of being able to use existing objects...very cool.

    What is lost is VP.
    Failure is not an option...it's bundled with the software.
  • Mickster wrote: »
    @ersmith has that more than covered with fastspin and with the added benefit of being able to use existing objects...very cool.

    What is lost is VP.

    well Viewport uses a object called conduit? you need to include into your program, you should be able to do that with fastspin too.

    I lost my key for VP years ago and couldn't reach Hanno so I paid for it but can't use it anymore.

    Mike
    I am just another Code Monkey.
    A determined coder can write COBOL programs in any language. -- Author unknown.
    Press any key to continue, any other key to quit

    The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this post are to be interpreted as described in RFC 2119.
  • msrobots wrote: »
    Mickster wrote: »
    @ersmith has that more than covered with fastspin and with the added benefit of being able to use existing objects...very cool.

    What is lost is VP.

    well Viewport uses a object called conduit? you need to include into your program, you should be able to do that with fastspin too.

    I lost my key for VP years ago and couldn't reach Hanno so I paid for it but can't use it anymore.

    Mike

    Hey Mike,

    I think we went through this before but I don't think you replied; I also lost it but then remembered that it was delivered via email and, sure enough it was still there.
    Failure is not an option...it's bundled with the software.
  • MicksterMickster Posts: 1,431
    edited 2019-07-26 - 20:33:14
    I believe Bean collaborated with Hanno.

    The source needs to accept "watch" and "unwatch"

    Conduit is the cog that is dedicated to communicating with the VP IDE.
    Unique to the Prop's architecture and darned ingenious, IMO.

    Edit: "source" should probably be "compiler"
    Failure is not an option...it's bundled with the software.
  • Mickster,
    Do you know what changed in VP that PropBASIC doesn't work anymore ?

    I have been making some small changes to PropBASIC, but I haven't posted anything because there is no Parallax IDE that supports it, so it will never become popular.

    I use SimpleIDE, but it does not support it but it can be make to compile with the batch file I made. But it is limited (like it doesn't show where the errors are etc.).

    PropBASIC was not designed to be easy to use. It was designed to create the smallest and fastest code possible without resorting to PASM. And it is super easy to do inline PASM if that is needed for some sections of code.

    I use it at work to create time sensitive programs. One product uses 4 propellers to measure 32 frequencies at the same time with a resolution of parts-per-trillion per second. (yes that is trillion not billion). I have attached picture of the FMS100-32 system. There are four of them in the rack labeled "A","B","C", and "D". The chamber holds 128 oscillators that are each measured every 100mSec while the chamber slews the temperature.

    We also use the system to perform oscillator aging testing. Most aging systems use a switch matrix to measure all the frequencies. This causes a lot of noise in the reading because you are just looking at a snapshot of the frequency (typically a couple seconds every 8-12 hours). Our FMS100-32 allows gate times up to 24 hours and the frequency is being measured continuously on every unit giving much better data. And our motto is "Data is King!!!". Our other motto is "One properly performed experiment is worth 1000 expert opinions".

    Bean
    2600 x 1951 - 595K
  • @Bean
    Outstanding achievement, Sir! Great to see the Prop & PropBasic in a high-performing real-world product.
    Do you know what changed in VP that PropBASIC doesn't work anymore ?

    Only that PB programs wouldn't run. I went to Hanno's site and found that MAXWIN had already reported the problem but a response/fix was not forthcoming. I remember a report that Hanno was involved in a cycling accident.

    I reported the problem, here, also.

    PropBASIC was not designed to be easy to use...

    Well, epic fail here, my friend :-D because typing what you are thinking and having that result in a running program, couldn't be easier.

    Pity that we would never know about Hanno's "I'm working on something big"

    Failure is not an option...it's bundled with the software.
  • Bean, Yes excellent mottoes and very true.
    Congratulations and thanks for posting :)
    My Prop boards: P8XBlade2, RamBlade, CpuBlade, TriBlade
    Prop OS (also see Sphinx, PropDos, PropCmd, Spinix)
    Website: www.clusos.com
    Prop Tools (Index) , Emulators (Index) , ZiCog (Z80)
  • Hi
    Bean-
    That is absolutely brilliant!
    I part in 10^12

    Must have a very accurate clock to test it against.

    What will you use on P2?
    I'm not convinced fastbasic will give the 'close to the metal' feeling PropBasic does.

    I like that I can see the code that PropBasic produces and tweak and learn from it.

    I suppose running code mostly in the cog will not be so critical with the P2.

    If you do make a P2 version of ProbBasic I for one will be keen to use it.

    Dave
  • tritonium wrote: »
    What will you use on P2?
    I'm not convinced fastbasic will give the 'close to the metal' feeling PropBasic does.

    I like that I can see the code that PropBasic produces and tweak and learn from it.
    fastspin has a "-l" option to produce a listing file, it has a COG only mode (LMM is the default), and it always produces a .pasm (or .p2asm for P2) assembly file that you can look at. Plus it has easy to use inline assembly (as does PropBasic, of course).

    It's true that fastspin's optimizer does make it a bit less predictable than PropBasic. The down side of this is that it's less transparent; it is (usually) pretty clear what given PropBasic code will compile to. The up side of fastspin's approach is that you can write the Basic code any way you want and the compiler will usually turn it into something efficient, e.g.:
    for i = 0 to 9
      OUTA = OUTA xor 1
    next i
    
    will produce
    _program
            mov     _var01, #10
    LR__0001
            xor     outa, #1
            djnz    _var01, #LR__0001
    _program_ret
            ret
    
    in COG mode.
  • Regarding an IDE for PropBasic. A couple of years ago I was using Propbasic through the SimpleIDE interface, but that was cumbersome. Then I read that PropIDE had been updated to add PropBasic. I tried it and it worked very easily (just choose PropBasic). I didn't like the way the output listing was formatted, but the compiler worked.

    I haven't used PropBasic or PropIDE for a long while so I don't know if any changes were made to PropBasic that would have broken it.

    The OS I use is Windows 7.

    Hope this helps
    Tom
  • Bean wrote: »
    .........

    "Data is King!!!". Our other motto is "One properly performed experiment is worth 1000 expert opinions".

    Bean

    Both great motto's. No surprise you can produce such impressive products and code with that kind of mindset.
    In science there is no authority. There is only experiment.
    Life is unpredictable. Eat dessert first.
  • MicksterMickster Posts: 1,431
    edited 2019-07-28 - 10:41:56
    Link to Viewport 4.82, 4.89 and 4.9

    I know for sure that 482 works with PropBASIC....can't test the others, atm, because I am away from base.

    Clearly an abandoned product....where do we stand with sharing a license?
    Failure is not an option...it's bundled with the software.
Sign In or Register to comment.