Robert J. Burton’s fig-FORTH is one of the cleanest and most complete Forth implementations available for the TS2068. Burton released it explicitly into the public domain, making it a genuinely open resource for the TS2068 community.
Promised updates included help screens, assembler and better SAVE system.
Distribution
The program loads from cassette via a BASIC loader (program name 20015) that brings in two machine code blocks: the engine and core dictionary (8,500 bytes loading at 0x7C00), and a block of virtual disk screens containing Forth source code (10,240 bytes). The first 1,024 bytes of the code block are a plain-text banner with contact information and the public domain notice — an unusual and charming touch that makes authorship immediately clear.
Architecture
Burton implements Indirect Threaded Code (ITC) fig-FORTH, the standard model described in the original fig-FORTH specification. The register conventions are:
- BC = Instruction Pointer
- HL = Top of Stack
- SP = Parameter Stack
- Memory variable at 0x8128 = Return Stack pointer
The inner interpreter (NEXT) lives at 0x8145 and uses the standard two-byte CFA fetch. This is a conventional, readable implementation — no tricks or clever compressions that would obscure the code.
Word Set
The dictionary contains approximately 240 words, covering the complete fig-FORTH standard kernel plus a set of TS2068-specific extensions that set this implementation apart:
Standard fig-FORTH kernel — all the expected words are present and correctly implemented: the full compiler (: ; CREATE DOES>), block I/O (BLOCK BUFFER UPDATE FLUSH LOAD), number formatting (<# # #S #>), the control flow compilers (IF ELSE THEN DO LOOP BEGIN UNTIL), and the outer interpreter loop.
TS2068 hardware extensions — Unique words include LO, HI, and RAM for TS2068 bank switching; R_UPDATE and BLK/RAM for RAM-backed block storage; SAVE, GET, PUT, and READ for cassette operations; PRINTER, FEMIT, and CURSOR for the Timex printer interface; and MS, ON, OFF, and SET-IO for general hardware control.
What’s Not Included
Compared to the Hawg Wild Software fig-FORTH released the same era, this implementation omits a screen editor, graphics words (BORDER, INK, PAPER, PLOT, DRAW), floating point via the ROM, and tape screen save/load utilities. It’s a focused, tight implementation of the core language rather than an extended application environment.
Content
Source Code
800 ON ERR RESET : CLS : ON ERR GO TO 800: LET A=USR 32771: GO TO 803
801 LET A=USR 32774: GO TO 803
802 ON ERR GO TO 800: LET A=USR 32768
803 PRINT : PRINT "BASIC: CONT & <CR> returns to FORTH OR GO TO 800" : ON ERR RESET : STOP : GO TO 801
804 PRINT AT 5,6; FLASH 1;"LOADING MACHINE CODE": LOAD "20015A" CODE : LOAD "20015B"CODE : POKE 23658,8: CLS : BEEP 1,2: BEEP 1,0: GO TO 802: REM 23658,8 IS CAPS LOCK
805 REM ********************** to save a copy, type GO TO 806 *******************************
806 PRINT AT 0,0;"SAVING FORTH": SAVE "20015" LINE 804: PAUSE 25: BEEP 1,0: SAVE "20015A"CODE 31744,8500: PAUSE 25: BEEP 1,0: SAVE "20015B"CODE 55295,10240: STOP
807 REM ********While in FORTH typing `` will give the intro-ductory screens.******
808 REM *********************** TO SAVE RAM DISK, GO TO 809 ********************************
809 PRINT AT 0,0;"SAVING FORTH RAM": SAVE "20015B"CODE 55295,10240
Note: Type-in program listings on this website use ZMAKEBAS notation for graphics characters.
