Neal Bridges has written an ANS Forth implementation for the USR Pilot called PilotFORTH. Since I program in Forth and own a PalmPilot, I decided to try it out.
These are some of the files I have created for PilotFORTH.
|Standard Word Sets|
|core-ext.4th||More words from the Core Extension word set||10/04/97|
|tools.4th||A few words from the Tools word set||11/27/97|
|string.4th||A complete implementation of the String extension word set||10/29/97|
|exceptn.4th||The Exception and Exception Extension word sets.||10/04/97|
|basics.4th||Some basic words I find useful. Most of the following files will depend on this one.||10/18/97|
|systrapu.4th||These words were useful in creating SysTrap-based words.||10/18/97|
|cstrings.4th||Words for dealing with counted strings.
Although for most of the nine years I have worked in Forth, people have been saying that counted strings are going out of style, I still find them useful.
|strbuf.4th||A string buffer based on words in LMI Forth.
Just the buffer support, no advanced string-handling (yet).
|debug.4th||Some debugging words my coworkers and I have found useful.||10/18/97|
|redefine.4th||Generate a warning when a word is redefined.||10/18/97|
|pairs.4th||Control structure defining words.||9/28/97|
|group.4th||A non-standard exception-handling module which is more flexible than CATCH/THROW.||10/18/97|
|asciiz.4th||Support for C-style nul-terminated strings.||10/18/97|
|cpairs.4th||Compile-time extensions to the pairs module.||10/04/97|
|groupext.4th||Extensions to the group module.||10/04/97|
|grpcatch.4th||CATCH/THROW implemented on top of group.||10/04/97|
|gpairs.4th||Group-aware extensions to the pairs module.||10/04/97|
|list.4th||Support for dictionary-based linked lists.||10/18/97|
|time.4th||Support for access to some of the Palm OS time functions.||10/17/97|
|profiler.4th||Support for profiling Forth words.||10/18/97|
|PilotFORTH Serial Interface|
|serial.4th||Forth words to interface with the PalmOS Serial API.||10/18/97|
|serconst.4th||Constants for use with the PalmOS Serial API.||1/03/98|
|serialhi.4th||Higher level interface to the PalmOS Serial API.||11/16/97|
|wade4th.zip||By popular demand, (one person requested it) I am providing all of the above files in a single zip file for those with slow FTP connections.||1/03/98|
|4thStdWS.zip||My implementations of various standard word sets. See Standard Word Sets above.||11/27/97|
|4thUtils.zip||Files containing utilities and extensions written by myself and my coworkers. See Forth Utilities above||10/18/97|
|P4Serial.zip||All of the serial interface routines.||1/03/98|
- 1/03/98 Corrected more mistakes in serconst.4th. Thanks again to Marcio Marchini for correcting my errors and donating the word 2or.
- 12/03/97 Corrected some errors in serconst.4th. Thanks to Marcio Marchini for spotting my typos.
- 11/27/97 Added functionality to standard wordsets
- Added non-standard case-insensitive version of COMPARE to string.4th. ICOMPARE is needed for new words in tools.4th
- Added [if] [else] and [then] to tools.4th. Tools.4th is now dependent on string.4th.
- 11/16/97 Finally completed the high-level serial interface in serialhi.4th.
- 10/29/97 Correction to cmove and cmove>. They did not clean up properly. Thanks to Robert Patten for the correction.
- 10/18/97 Comments, reorganization, minor improvements, and a profiler.
- Added new utility words to systrapu.4th, including some moved from serial.4th.
- Updated the comments in list.4th, serial.4th, group.4th, and cstrings.4th.
- Improved the zconstant and $zconstant definitions in asciiz.4th.
- Modified redefine.4th to add support for 2constant and 2variable.
- Added profiler.4th which supports profiling Forth words.
- Cleaned up the output of %s and %w
- Created the SysTrap utilities to simplify my life using SysTrap.
- The file time.4th supports access to some of the Palm OS time functions.
- Completed testing the low-level serial routines.
- Completed SEARCH and rewrote COMPARE. String.4th now gives a full implementation of the String extension word set.
- Corrected %s and %w, They should display the stack before waiting for an enter. (I knew they didn't look right.)
- 10/05/97 Corrected bug in zconstant and $zconstant in asciiz.4th.
- Added list.4th moving @! and link, from basics to list.4th and adding other words.
- Added key.regroup and friends to groupext.4th.
- Added perform, +constant, and require to basics.4th.
- Cleaned up dependencies between my files. I wasn't consistent in the way files depended on each other. Now the dependencies are explicit.
- 10/03/97 Added new words
- Added COMPARE to string.4th.
- Added constants to asciiz.4th.
- Added REQUIRE to basics.4th. (stolen from Perl)
- 9/30/97 Cleanup and new files
- Inlined some words in core-ext.4th which cleaned up the double return stack words some more.
- Added completed versions of the files group.4th, groupext.4th, grpcatch.4th, and gpairs.4th.
- 9/29/97 Bug fix and new files
- Fixed a major bug in core-ext.4th. The words 2>r, 2r>, and 2r@ were horribly flawed. (Major brain cramp. Hope no one was injured using them.)
- Added the files asciiz.4th, pairs.4th, and cpairs.4th.
- Working on some other utility words which will appear here when I get the bugs ironed out.
- 9/26/97 Cleanup and additions
- Cleanup of tools.4th, string.4th, cstrings.4th, strbuf.4th to use char+ and chars where appropriate.
- Added the file redefine.4th which redefines the defining words to detect the redefinition of words.
- 9/21/97 Minor cleanup of exceptn.4th (thanks, Neal!) and temporary removal of systrap.4th
- 9/20/97 Modified exceptn.4th after input from Neal Bridges.
- 9/20/97 Corrected a bug in :noname in core-ext.4th and added exceptn.4th, debug.4th, and alpha version of systrap.4th.
- 9/18/97 Original implementations.