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.3   See changelog

Released

This version has a number of Programming Tools words debugged, including DUMP to view memory without having to exit to the system Monitor and a rudimentary word decompiler SEE. There is also the start at providing CODE words to allow writing new low level words in Assembler without having to tinker with the source for the system itself. However, there are no plans to provide a built-in Forth assembler: rather, the goal is to develop an effective means to work in cooperation with the Assembly Language Environment.

There is also a limited Break-Point facility provided. If the system variable DEBUG is set to TRUE ($FFFF), then new words are compiled with a leading NO-OP operation. The word BREAK checks to see if there is a NO-OP operation in place, and if so, replaces it with a word that executes a BRK instruction. The word UNBREAK checks to see if there is a call to the /BREAK/ word, and if there is replaces it with a NO-OP.

Note that the system does not set up the 65C02 BRK vector. Setting that up so it triggers the Assembly Language Environment is left as an exercise for the User.

 

EFC02_DT_20200901.ASM EFC02_DT.REF


try_it

Yes

try_it_start_prg

x4th_dty.prg

try_it_license

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.

Guest
×
×
  • Create New...

Important Information

Please review our Terms of Use