Shop OBEX P1 Docs P2 Docs Learn Events
PropellerForth 8.01 released — Parallax Forums

PropellerForth 8.01 released

Cliff L. BiffleCliff L. Biffle Posts: 206
edited 2008-02-11 08:42 in Propeller 1
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:
  • 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 BakerPaul Baker Posts: 6,351
    edited 2008-01-30 05:56
    Holy cow, welcome back Cliff! I thought you were gone for good.

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    Paul Baker
    Propeller Applications Engineer

    Parallax, Inc.
  • deSilvadeSilva Posts: 2,967
    edited 2008-01-30 09:10
    Just for the records: we have FOUR (!) Propeller Forths now, in different state of working and with different features.
    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 :-(
  • simonlsimonl Posts: 866
    edited 2008-01-30 15:05
    Hey, welcome back Cliff smile.gif

    Don't get discouraged if people don't post much - like me, I'm sure they're watching the thread wink.gif

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    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 smile.gif
  • Paul BakerPaul Baker Posts: 6,351
    edited 2008-01-30 18:33
    deSilva said...
    Just for the records: we have FOUR (!) Propeller Forths now, in different state of working and with different features.
    Yeah, but Cliff it the original Forth on Propeller proponent.

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    Paul Baker
    Propeller Applications Engineer

    Parallax, Inc.
  • Christof Eb.Christof Eb. Posts: 1,161
    edited 2008-01-30 20:40
    Sorry,

    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ŸŸƒ
  • Cliff L. BiffleCliff L. Biffle Posts: 206
    edited 2008-01-31 01:13
    Christof,

    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. smile.gif

    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
  • Reset_VectorReset_Vector Posts: 55
    edited 2008-01-31 08:09
    Hi from France , Cliff

    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
  • Christof Eb.Christof Eb. Posts: 1,161
    edited 2008-01-31 12:12
    Hi Cliff,

    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

    ·
  • Cliff L. BiffleCliff L. Biffle Posts: 206
    edited 2008-02-03 07:52
    I've tested the pf801-demo.binary on my Demo Board, and it works for me. Please verify the MD5 checksum of the file you downloaded to make sure you've got the latest release; it should be

    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. smile.gif

    (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.)
  • ASPASP Posts: 1
    edited 2008-02-03 09:49
    Hello Cliff,

    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
  • Cliff L. BiffleCliff L. Biffle Posts: 206
    edited 2008-02-04 03:39
    ASP -- oh, good, I was worried I'd lost it there for a bit. smile.gif

    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!
  • ColeyColey Posts: 1,110
    edited 2008-02-04 10:18
    Hi Cliff,

    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
  • Christof Eb.Christof Eb. Posts: 1,161
    edited 2008-02-04 11:21
    Hi Cliff,

    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
  • Cliff L. BiffleCliff L. Biffle Posts: 206
    edited 2008-02-07 07:29
    Coley,

    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.
  • Cliff L. BiffleCliff L. Biffle Posts: 206
    edited 2008-02-07 08:00
    Christof,

    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.
  • ColeyColey Posts: 1,110
    edited 2008-02-07 08:45
    Cliff, you have a PM

    Coley
  • Cliff L. BiffleCliff L. Biffle Posts: 206
    edited 2008-02-11 07:02
    Just a quick note: if the 19200 bps console speed is cramping your style, it's easy to change. Instructions on my blog:

    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!
  • Reset_VectorReset_Vector Posts: 55
    edited 2008-02-11 08:42
    Hi Cliff,

    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 ....

    yeah.gifyeah.gifyeah.gif
Sign In or Register to comment.