Jump to content

alpha xForth Compiler 0.1.6

   (0 reviews)

2 Screenshots

About This File

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.

What's New in Version 0.1.5   See changelog


This is a maintenance release, which seems to go CREATE DOES> working, and has certainly fixed .S

Fixing CREATE DOES> was critical, as it will be impossible to get very far into Starting Forth without a working CREATE DOES>

DOES> is also one of the trickier words in Forth, because it is key to writing YOUR OWN defining words for active data structures. That means there are three "logical times" involved:
1] Compile time: the time when the DEFINING WORD is being defined
2] Create time: the time when the active data structure is being created
3] Run time, when the active data structure runs.

I was write a word that EXECUTED during Compile Time, but SOME of the things it was doing were supposed to happen at CREATE time. Doing them at the wrong time crashed the computer.

Forth lets you do as much with the system as Assembly language does ... and so, of course, in Spiderman Ethics, with Great Power comes Great Responsibility. In particular, until it is possible to run unit tests to confirm that words do as you specified, the system will remain in alpha.

But now, attention can turn to the ability to Save Your Work if you have extended the system in the command interpreter. This will not be "SAVE", given the way that word is used in the related eForth to commit a new image to a microcontroller Flash Memory ... but "FSAVE" for File Save.


EFC02_DT.REF EFC02_DT_20200909.ASM






eForth v1.0 is public domain, Camel Forth is GPLv3.0. My contributions are MIT 3 Paragraph License (see source for details)
  • Like 4

User Feedback

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

  • Create New...

Important Information

Please review our Terms of Use