figForth v1.0

Developer(s): Robert Burton
Date: 198x
Type: Program
Platform(s): TS 2068

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

Appears On

One of the largest single-tape collections anywhere, with over 40 programs spanning flight planning, satellite tracking, hydrology, Forth programming, a 17-game mega-pack, and a complete calligraphic font renderer. A snapshot of a thriving Texas user group at its peak.
The foundation of Tony Willing's numbered library series — play Breakout, write documents in a 64-column word processor, morph a triangle into a square with flicker-free animation, or run a complete fig-FORTH system. Fifty programs covering every category.

Related Products

Related Articles

Related Content

Image Gallery

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.

Scroll to Top