PropellerForth 8.01 released
Cliff L. Biffle
Posts: 206
Hi folks. I haven't been paying much attention to the internet lately, but I wanted to note that I've posted the first semi-formal release of PropellerForth, v8.01. (Using Ubuntu-style versions, that's the 2008 January release.)
PropellerForth provides an interactive Forth development environment on the Propeller, using a subset of ANS Forth. I use it both to develop Propeller applications, and to debug algorithms and learn about the hardware -- things like counters and video generation are a lot easier to debug from inside the chip itself.
Features currently supported:
I'm testing NTSC/keyboard console support, but it's not part of the official release yet, as it has some outstanding bugs. The serial console doesn't support handshaking, since the Prop itself lacks the relevant lines, so be careful when loading sources.
Binaries for the demo board and HYDRA, and any boards with similar clock configurations, are available on my Google Code page:
code.google.com/p/propellerforth
I've also posted a Getting Started page and some documentation on the wiki there. Sources coming shortly.
Happy hacking!
PropellerForth provides an interactive Forth development environment on the Propeller, using a subset of ANS Forth. I use it both to develop Propeller applications, and to debug algorithms and learn about the hardware -- things like counters and video generation are a lot easier to debug from inside the chip itself.
Features currently supported:
- Most of the traditional "core" Forth words, as discussed in tutorials like Starting Forth;
- Basic serial console for entering programs and debugging;
- Words to start Forth or assembler code on multiple cogs;
- Words to run multiple threads on each cog;
- Access to program EEPROM, including the ability to save all changes in memory for future use, and access to up to 256KB of storage on the Hydra (card + onboard);
- Wordlists (both ANS and F83-style VOCABULARY), to organize programs into separate sections of the dictionary.
I'm testing NTSC/keyboard console support, but it's not part of the official release yet, as it has some outstanding bugs. The serial console doesn't support handshaking, since the Prop itself lacks the relevant lines, so be careful when loading sources.
Binaries for the demo board and HYDRA, and any boards with similar clock configurations, are available on my Google Code page:
code.google.com/p/propellerforth
I've also posted a Getting Started page and some documentation on the wiki there. Sources coming shortly.
Happy hacking!
Comments
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Paul Baker
Propeller Applications Engineer
Parallax, Inc.
I sadly have to report that I have no longer any contact with Frohf and don't know anything about the progress of his implementation :-(
Don't get discouraged if people don't post much - like me, I'm sure they're watching the thread
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Cheers,
Simon
www.norfolkhelicopterclub.co.uk
You'll always have as many take-offs as landings, the trick is to be sure you can take-off again ;-)
BTW: I type as I'm thinking, so please don't take any offense at my writing style
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Paul Baker
Propeller Applications Engineer
Parallax, Inc.
Using PropRPM I could not get it starting or at least only sometimes. Sometimes it did perhaps something like a memory dump, most time it only said:
<0><0>88ŸŸƒ
I don't have a PropRPM for testing, but it sounds like a problem with the clock configuration or your terminal.
On the SupportedTargets wiki page I noted that the RPM seems to have the same clock config as the Demo board, so the Demo image should work -- but I haven't tested it. It's also possible that I botched the demo image upload, since I do most of my testing on the Hydra (Parallax, consider dropping a bigger EEPROM into the demo board!).
Edit: for the record, if anyone else is getting odd startup output, the first bytes sent from the Prop should be a brief version screen, including the license notice and RAM bytes free. Anything else is unintended functionality.
The default image is configured for 19200 8N1, no flow control of any kind, fyi.
Post Edited (Cliff L. Biffle) : 1/31/2008 1:18:28 AM GMT
First , thank you for your FORTH implementations, this is a great language.
Dowloading pf801 demo for protoboard from WIKI, programming EEprom on protoboard , configured hyperterminal at 19200,N,8,1
but stange messages in hyperterminal. (characters without any signification)
Standard protoboard with 5Mhz crystal
Programming protoboard with forth072.binary all is OK (welcome message) in hyperterminal.
What am i doing wrong ?
Thanks
thank you for the response.
I tried two different terminal programs, rechecked the terminal settings. Tried different terminal settings. So I am rather sure, I made nothing wrong there.
As I said, 2 times out of perhaps 50 trials it started.
Perhaps 5 times it showed something like a neverending dump with lots of <0>.
Perhaps 4 times some of the LEDs have been·switched on.
The rest of the trials as mentioned before.
Does the system check any I/O lines on startup? -I have some circuit attached to the ports. Some ports are open.
There is a 5MHz resonator·attached to the propeller and the board worked before loading the forth.
Best regards
Christof
·
MD5 (pf801-demo.binary) = 99c8eb038b0313fba721278fa50802ac
I've not had any trouble at startup on either the Demo Board or the HYDRA, but I haven't tried it on any custom boards.
As far as I/O, PropellerForth only assumes control of lines 30 and 31 by default (the USB2SER interface on standard boards) and tries hard not to touch any others. If you use the EEPROM word set it'll also assume control of 29:28.
The pf801-demo release should not turn on any LEDs on any of the boards by default -- early alpha releases turned on some, but I decided it was safer to not play with I/O pins without explicit permission.
Also, PropellerForth (and other binaries built with propasm) is incompatible with the current version of PropDOS and other SD loaders due to a bug in their init code, which I will eventually send patches for. I noted this on the Getting Started page, but thought it worth reiterating.
Has anyone but me had success on the demo board? It's possible mine is somehow special.
(As a side note, I'm considering dropping the Demo Board as a target platform in future releases. They'll still work on the board, but some of the new features will want more EEPROM than the paltry 32kB chip -- they'll use the extra space for storing source code, so you can view/edit the sources and recompile the system.)
I've tested the pf801-demo.binary on my Demo Board and Hydra. With my PC and laptop there is no problem to connect
to the running Forthsystem. Work's fine for me.
ASP
I think I might have reproduced the failure that Christof and others are seeing, but it's sporadic. Occasionally when I load a new image from Windows, the system comes out hosed!
I've only seen this on the Demo Board, and when it happens I can generally hit "Load RAM" again and it comes up fine. My only recommendation, unfortunately, is that anyone afflicted by this try loading the image a few times and see if it's consistent.
Once a "good" image is loaded, it seems to boot reliably.
I'm currently trying to reproduce this on the HYDRA, because if I can get a bad image into one EEPROM I can pop in my known-good Forth cartridge and verify it. No luck yet.
I'm also working on the feature set for 8.02 later this month. Stay tuned!
I've tested it on my demo board and it worked first time every time.
I would be grateful if you could compile a binary with a 96MHz Clock (6 MHz * PLL16) and I will test it on my Hybrid board.
details of which can be found here www.propgfx.co.uk/Hybrid/Docs/Hybrid_Development_System_Manual.pdf
I have donated several of my boards to a local school and they are clamouring for a development language that runs native on the boards, this would seem ideal!
Regards,
Coley
Post Edited (Coley) : 2/4/2008 11:58:52 AM GMT
now I had a chance to try with my demo board. Same download worked instantly.
Perhaps the problem is somewhere in the serial R232 link, which is with the PropRPM a "real one", without USB.
Thanks for your Forth!
Christof
I saw your Hybrid board when I was making notes on current Prop platforms. Looks nice.
The full PropellerForth sources will be posted shortly, allowing people to change the clock configuration and rebuild. I could build a custom binary in the interim.
Alternatively, if the EEPROM is removable (which I'm starting to think is a must-have feature), I can post some Forth code to modify the clock settings in place. You could pop the ROM into an 80MHz board, patch it, and move it. (This is basically how I'd build a custom binary anyway.)
And, as a third option, I can try to make 6x16 a supported configuration for 8.02. How do you connect the SD slot? I have rudimentary SD block support working, but it's currently hardcoded for the pin 0-3 PropDOS-style configuration.
PropellerForth doesn't do anything special with the serial port -- if other Propeller serial code works, it should too, barring some other variable.
If other code requires a change to, say, output inversion, then it'll require a separate build.
Coley
http://cliffhacks.blogspot.com/2008/02/propellerforth-tidbit-changing-console.html
Pasting big source listings still won't work because of the lack of handshaking, but this can make hexdumps and the like much faster.
Happy hacking!
I've just made a new download of PF801 forth from WIKI
This time, all seems OK.
Don't know what happens when I try it few days ago ...
Be the FORTH with you ....