So, what about xbasic?
Rsadeika
Posts: 3,837
Starting out the new year, I am thinking maybe I should try something new. I am not sure how I missed xbasic back in 2011 when it was released, I cannot remember if PropGCC was also released at that time or what else was going on. xbasic is the the only language, that is offered for the Propeller, that I have not tried yet, so maybe it should get a chance.
A couple of things, right off the bat, in favor for xbasic, it has its own IDE, which sort of resembles an IDE that I am used too. And it resembles a typical basic format, you do not have to have a specific "START" location, or any specific programming structure requirements. Since it is not widely used at this time, it does lack or needs to be updated to today's standards, like having access to FDS, SD, XBee, ..., and other modules that are available at this time.
Since I just did a "hello, world" program in xbasic, I am a complete beginner at this. I did notice that you can start and/or have COGs, I wonder if these can be run in extended/expanded RAM? I also did notice that there is no standard commands for, lets say, doing the familiar blinker program. For a blinker program you would need, high, low, and waitMS commands, not sure how those would be done, in assembly per chance?
So, maybe some of the people that are very familiar with xbasic can jump in, and give there insight as to what xbasic is all about, again, in the year 2014. At this point it seems that David Betz, the author, is not bogged down, and just might be able to stand behind and really support xbasic.
Ray
A couple of things, right off the bat, in favor for xbasic, it has its own IDE, which sort of resembles an IDE that I am used too. And it resembles a typical basic format, you do not have to have a specific "START" location, or any specific programming structure requirements. Since it is not widely used at this time, it does lack or needs to be updated to today's standards, like having access to FDS, SD, XBee, ..., and other modules that are available at this time.
Since I just did a "hello, world" program in xbasic, I am a complete beginner at this. I did notice that you can start and/or have COGs, I wonder if these can be run in extended/expanded RAM? I also did notice that there is no standard commands for, lets say, doing the familiar blinker program. For a blinker program you would need, high, low, and waitMS commands, not sure how those would be done, in assembly per chance?
So, maybe some of the people that are very familiar with xbasic can jump in, and give there insight as to what xbasic is all about, again, in the year 2014. At this point it seems that David Betz, the author, is not bogged down, and just might be able to stand behind and really support xbasic.
Ray
Comments
That's rather presumptious to assume what David has on his plate, personally, professionally or with his own hobby free time. To call him out publicly on the forum and tell him he has time to stand up and support something he wrote for his own reasons is a bit bold. The majority of the work on this Forum that is shared with the community is created out of love and passion and interest. Just as you have hopped from language to language and project to project to project, others deserve the same freedom to lose passion and change interests.
When you have problems or concerns with something you are using, post and ask questions. If the author or anyone else is interested, your questions will be answered. There is no obligation for anyone to support or continue development in something that they wrote as you are requesting.
EDIT: Ignore my grumpiness about time demands - I appologize if I offended.
Ray
I pretty much stopped working on xbasic when Steve moved from working on an xbasic IDE to working on SimpleIDE. He was pretty much the only user of xbasic and it didn't seem to make sense to put a lot more effort into it. Recently I've revisited it a bit because I wanted to use its PASM virtual machine with my ebasic interpreter to speed it up and to use less hub memory for the VM code. That is almost working now although it lacks built-in functions to make it useful on the Propeller. Those can be added though and I expect to do that. The nice thing (depending on your point of view) is that ebasic runs on the Propeller. It doesn't require a PC-based tool to build programs. I could revive xbasic if there was any interest. It has some advantages because its compiler runs on a PC. For example, it trims out unused functions to save runtime space and does a somewhat better job at generating good code. I think Steve said at one point that xbasic code runs only a little slower than Spin code. It also has the advantage that it can use external memory for large programs. Anyway, that's the current state of xbasic. The code is checked into Google Code if you want to take a look at it:
https://code.google.com/p/xbasic/
So, moving on, I just tried the "hello, world" example with some of the boards that I have. The only one, the GG PPUSB board, did not respond, I have verified that the board does work. For whatever reason, it says there is no Propeller available. I tried the C3, and the DNA-RTC boards, those worked, although on the DNA-RTC board I find matching up the right memory designation a little confusing. It is the RAM vs Flash that is giving me a problem, I now that the DNA-RTC has 1M of (Flash? or RAM?) available.
The xbasic version that I am using is what was available on the xbasicIDE site, is that the latest version? I am reluctant to even mention the name jazzed, I do not want to get jumped on as if I were calling him out also, but he is the author of xbasicIDE, I am really going out on a limb now. I guess what xbasic needs now is a good example showing a blinker program, in the simplest form.
Ray
I guess you have to ask yourself why you would want to use xbasic over Spin. The only answer I can come up with is that xbasic can run bigger programs from external memory but I think you can also do that in Spin if you're willing to use the spin2cpp translator along with an XMM memory model.
1. It makes small programs.
2. XMM capable.
3. IDE shows all variables and functions in the program by file.
4. Documentation is here: http://www.microcsource.com/xbasic/help.htm
Try this print example:
The IDE could use some feature updates. If there is substantial interest, I could add some missing items.
Excuse my grumpiness on time demands. I presumed David and Steve were BUSY!!
Carry on, ignore me as usual! I'll go back to speaking only when spoken to. :thumb:
I do, too, and will be happy if the project grows.
EFX-TEK just landed a very big account in the theme park world -- they've already purchased about a 50 Propeller-based HC-8+ controllers in the last month, and have "warned" us that they may be ordering another 300 shortly. Most of what they're doing involves the use of show control software (Vixen) with firmware that I have made available to all our customers (including another large theme park company). That said, the new customer comes from a BS2 programming background and, from time-to-time, would like to hand-code boards. For them it means learning Spin. I can certainly teach them, but if xbasic makes them happy and productive, that's all that matters. This company is creates parks and displays geared toward the entertainment and educations of children. Anything I can do to facilitate their work I am willing to do.
However, I don't think xbasic looks much like pbasic so I wonder if your client might just as well learn Spin as another Basic dialect. Anyway, if you're interested in using xbasic I'll support it. However, I only did the command line compiler, loader, and runtime. Steve wrote the IDE so we should check to see if he has the bandwidth to support it along with SimpleIDE.
I don't think that's an issue. Many made the move to SX/B without too much fuss, but then, we created a nice help file with a lot of good examples -- that's kind of the key to getting these things going. <joke>Many new Arduino "programmers/artists" can barely tie their shoes</joke>, they get along with the myriad examples provided to them.
<preach to choir>The Propeller is a different beast, it needs a different BASIC.</preach to choir>
I think it's a psychology thing. BASIC and C exist outside the microcontroller world which may cause users to more readily accept them. The Arduino language is not really traditional C, right?
One hopes that the initial framework of the xbasic IDE and SimpleIDE are similar, if not the same. If this is the case, perhaps a lot of the effort put into SimpleIDE moves right into the xbasic IDE making it even more friendly.
@Jon, While SimpleIDE grew from the xBasicIDE, they are separate projects with different ways of handling things. The xBasicIDE is far simpler because I never had to add tons of features to it.
Ummm.... so you're saying that the xbasic IDE is simpler than SimpleIDE? :-)
That's okay being focused on a single language. If possible -- and if you're going to work on it -- I would suggest making xBasic as consistent with SimpleIDE as is possible (even if it's just the icons you use on the toolbars and hot-key assignments). If the terminal from SimpleIDE makes its way to xBasic, that would be helpful. It would also be nice to tell the IDE the starting folder for my xBasic projects (in my case: My Documents\programming\xbasic).
As ever, and I think I speak for many in the Propeller community, I appreciate the efforts by you and David and others to provide toolset options for those of us that use the Propeller.
...but if you call it ReallySimpleIDE, people might think you are talking down to them.
So we've got BasicIDE, SimpleIDE, ProfessionalIDE and BrowserIDE (or localhostIDE but you can't get there from here )
LOL. My BrowserIDE is currently entitled "Spinny Webby Devy"
Um, expect a visit from the guys in marketing.......
Hi I tried that link in (4) but all the pages it references seem to be lost?
Dave
Seems to work for me.
And all the supporting links.
Try again.
Duane J
I tried again and although I get the intro page, clicking on any of the links drops me back to the search engine....
AND THEN... I tried using Google Chrome and all is sweetness and light.!
Well thats a new one on me??
Originally I was using I. Explorer 11
Ho Hum and thanks-
Dave
Ray
xbasic does not support the bit indexing feature of Spin that would allow you to do DIRA[pin].
Ray
After running the above short program.
Now that I have the 'high' and 'low' working, is there a good example somewhere as to how to use the 'cognew' command. In the samples folder there is an example, but I am not sure as to how it should be used in a program to actually start a COG, and what if you want too use more than one COG.
Ray
I am really starting to like xbasic, I can see using it for some POC prototype programs. The only limiting factor that I see is the creation of drivers for all the different modules that are available, how do you make use of all the OBEX stuff for use in xbasic?
I have been working with my RPi and Python, the simplicity of using Python is sort of the feeling I am getting with xbasic. In fact with xbasic I do not have to worry about the necessary spaces that are needed in Python, xbasic is straight forward and, so far, a pleasure too use, Thank You, David Betz. Now if I can only get a grasp on how to use 'cognew' in the proper way, or at least figure out how to get a new COG too work.
Ray
I noticed that in the print.bas there is a 'def uartTX(ch)' , but I did not see an accompanying uartRX(ch). I am thinking maybe my next example code could be the use of a uart, maybe to work with XBee? Since I did not see any thing in the sample folder, where or how would I start for something like that?
Ray