PilotFORTH Code
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 |
Forth Utilities | ||
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. |
10/18/97 |
strbuf.4th | A string buffer based on words in LMI Forth. Just the buffer support, no advanced string-handling (yet). |
9/26/97 |
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 |
Archive files | ||
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 |
Wade's PilotFORTH file history
- 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.
- 10/17/97
- 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.
- 10/11/97
- 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.
- 10/04/97
- 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
perform
to basics.4th. - 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.