MV4th is a Forth interpreter for the Parallax Propeller chip I cobbled together using ideas from many embedded Forth programs. MV4th is based primarily on Camel Forth, eForth, Z80Forth, and the ANS Forth documentation circa 1993-1995. My first experiance with Forth came when I bought a Forth cartridge for my Commodore VIC20 at a swap meet. I have to admit that I was totally confused by the language and its strange syntax. I bought a book on Forth and in a few weeks I could actually create, debug and execute Forth programs. To me Forth was not a high level language like C, FORTRAN or Pascal but one of the most powerful macro compilers I had used. Forth allowed the rapid and interactive development (for the time) of software found in the Basic language but programs developed in Forth ran at the speed of compiled languages like C, FORTRAN and Pascal.
With MV4th I had a number of design goals;
- Should require minimal hardware added to Propeller chip with option to integrate any hardware required for a specific task.
- The MV4th Forth interpreter should compile using the Parallax Propeller Chip IDE.
- MV4th should comply with the popular ANS Forth draft standard (1994). This way there is available documentation without having to wade through the source code or document every Forth word in the dictionary.
- A full MV4th Forth dictionary, support data stacks, and I/O buffers should leave @ 20K of ram for personal forth programs.
- Develop and debug Forth programs using nothing more then a serial terminal.
The first version of MV4th requires that the Propeller chip be connected to a 64K or larger EEPROM. The console port uses the Full Duplex Serial Spin object to communicate with a computer running a terminal program.
At first I used the Parallax Serial Terminal program to test the MV4th project but I needed the ability to upload text files so I created the ForthTerm program for Windows. The ForthTerm program will be available for download at the same time I post the MV4th project.
I developed MV4th on a Parallax Propeller Proto-Board using my USB Prop Plug as the console port and the upper 32K of the 64K EEPROM as a block device. At this point I have a complete ANS Forth but there is still a lot of testing to do. At some point I need to add a serial port with hardware handshake signals to make the uploading of Forth program source faster and less prone to errors.
Over the next few weeks I will be posting documentation and project source files. I am looking forward to completing this project and testing how well Forth fits into my hobby projects.