alpha xForth Compiler
NOTE: v0.1.4 seems to have fixed or reduced the severity of the corrupted dictionary in v1.3. Known Bugs: .S may give spurious results. DOES> is broken, do not attempt to use it.
________________________________________________________________
I just uploaded this to see if it runs in the try it now box. It appears to run fine, including the words that operate programmatically based on the width of the display.
With some work with an effective in system Monitor program, it would be possible to save a copy of xForth including words you have defined on the console, but for practical purposes, this still requires a SAVE word to be able to save an image of the file after extending, and an INCLUDE word to load a script from a .SEQ file. Once those are written, I will be able to test to see how close to American National Standards Forth (ANS Forth) compliance this system actually comes.
While it runs, it is not fully exercised, so I would be very surprised if there were not bugs. "Alpha" in the title means that there ARE bugs, though I fixed two substantial ones since the last release. Bug reports & suggested bug fixes both accepted, the first dutifully and the second gleefully.
About upper and lower case: there is NO ASCII CONVERSION in this system. ANS Forth requires that ANS standard words be recognized in upper case, and its up to the individual Forth what they do about lower case. Most modern Forths are not case sensitive. This one is. So if you are in Graphics mode, do EVERYTHING in upper case. If you switch to Upper/Lower case mode, do EVERYTHING in lower case. If you enter the command WORDS to see all of the words in the dictionary, you will note some that look like /FORTH/ which is what I did when eForth had lower case words that were "platform" words that the standard Forth word in upper case was built upon. You will also see /DO/ /?DO/ and /LOOP/ as the "platform" words that DO ?DO and LOOP are built upon.
No conversion also means the the line comment word \ is entered and shown as the English Pound Sterling, aka GBP, sign, _ is backarrow, and ^ is up arrow. On the command line, any character from $00 to space is treated as whitespace, as is any character from $80 to Non-Break-Space ($A0).
For some brief usage examples and pointer to more about the Forth programming language, see the discussion forum posts attached to this upload.
This is a maintenance release, which fixed a bug in ! which affected the compiler ... incrementing the address of the high byte was broken when the low byte was at $xxFF. This affected compilation in particular, since the present build starts the codespace pointer less than 20 bytes away from a page boundary.
Also, the prompt OK is also the name of the NOOP command in xForth, so you can more easily use previous command line entries that are still on the screen as a command history.
Also, printing free form numbers with . and U. has been brought into compliance with Forth94 ... eForth puts a leading separating space, but the standard specifies a trailing space.
Also, the words in the dictionary have been put into the correct order, so WORDS gives a display that is the order of "more recent definition first, oldest definition last" which is more familiar to regular Forth users.
______________________________________________________________
By the way, don't worry that I might be forced to take this to Beta prematurely due to running out of release numbers for Alpha ... I consider 0.00 to 0.3F to be Alpha, 0.40 to 0.FF Beta.