OSDN Git Service

Trying to start with the wrong file.
authorJoel Matthew Rees <joel.rees@gmail.com>
Tue, 22 Jan 2019 07:15:15 +0000 (16:15 +0900)
committerJoel Matthew Rees <joel.rees@gmail.com>
Tue, 22 Jan 2019 07:15:15 +0000 (16:15 +0900)
fig6800to6809dumb.asm [deleted file]

diff --git a/fig6800to6809dumb.asm b/fig6800to6809dumb.asm
deleted file mode 100644 (file)
index 6b58c26..0000000
+++ /dev/null
@@ -1,3168 +0,0 @@
-       OPT PRT
-
-* fig-FORTH FOR 6809, converted by unintelligent conversion from 6800 source.
-* ASSEMBLY SOURCE LISTING
-
-* RELEASE 1
-* MAY 1979
-* WITH COMPILER SECURITY
-* AND VARIABLE LENGTH NAMES
-
-* This public domain publication is provided
-* through the courtesy of:
-* FORTH
-* INTEREST
-* GROUP
-* fig
-
-* P.O. Box 8231 - San Jose, CA 95155 - (408) 277-0668
-* Further distribution must include this notice.
-       PAGE
-       NAM     Copyright:FORTH Interest Group
-       OPT     NOG,PAG
-* filename FTH7.21
-* === FORTH-6800 06-06-79 21:OO
-
-
-* This listing is in the PUBLIC DOMAIN and 
-* may be freely copied or published with the
-* restriction that a credit line is printed
-* with the material, crediting the
-* authors and the FORTH INTEREST GROUP.
-
-* === by Dave Lion,
-* ===  with help from
-* === Bob Smith,
-* === LaFarr Stuart,
-* === The Forth Interest Group
-* === PO Box 1105
-* === San Carlos, CA 94070
-* ===  and
-* === Unbounded Computing
-* === 1134-K Aster Ave.
-* === Sunnyvale, CA 94086
-*
-*  This version was developed on an AMI EVK 300 PROTO
-*  system using an ACIA for the I/O. All terminal 1/0
-*  is done in three subroutines:
-*   PEMIT  ( word # 182 )
-*   PKEY   (        183 )
-*   PQTERM (        184 )
-*
-*  The FORTH words for disc related I/O follow the model
-*  of the FORTH Interest Group, but have not been
-*  tested using a real disc.
-*
-*  Addresses in this implementation reflect the fact that,
-*  on the development system, it was convenient to
-*  write-protect memory at hex 1000, and leave the first
-*  4K bytes write-enabled. As a consequence, code from
-*  location $1000 to lable ZZZZ could be put in ROM.
-*  Minor deviations from the model were made in the
-*  initialization and words ?STACK and FORGET
-*  in order to do this.
-*
-
-
-*
-NBLK   EQU     4       ; # of disc buffer blocks for virtual memory
-MEMEND EQU     132*NBLK+$3000  ; end of ram
-*  each block is 132 bytes in size,
-*  holding 128 characters
-*
-MEMTOP EQU     $3FFF   ; absolute end of all ram
-ACIAC  EQU     $FBCE   ; the ACIA control address and
-ACIAD  EQU     ACIAC+1 ; data address for PROTO
-       PAGE
-*  MEMORY MAP for this 16K system:
-*  ( positioned so that systems with 4k byte write-
-*   protected segments can write protect FORTH )
-*
-* addr.                contents                pointer init by
-* **** ******************************* ******* ******
-* 3FFF                                         HI
-*      substitute for disc mass memory
-* 3210                                         LO,MEMEND
-* 320F
-*      4 buffer sectors of VIRTUAL MEMORY
-* 3000                                         FIRST
-* >>>>>> memory from here up must be RAM <<<<<<
-*
-* 27FF
-*      6k of romable "FORTH"           <== IP  ABORT
-*                                      <== W
-*      the VIRTUAL FORTH MACHINE
-*
-* 1004 <<< WARM START ENTRY >>>
-* 1000 <<< COLD START ENTRY >>>
-*
-* >>>>>> memory from here down must be RAM <<<<<<
-*  FFE RETURN STACK base               <== RP  RINIT
-*
-*  FB4
-*      INPUT LINE BUFFER
-*      holds up to 132 characters
-*      and is scanned upward by IN
-*      starting at TIB
-*  F30                                 <== IN  TIB
-*  F2F DATA STACK                      <== SP  SP0,SINIT
-*    | grows downward from F2F
-*    v
-*  - -
-*    |
-*    I DICTIONARY grows upward
-* 
-*  183 end of ram-dictionary.          <== DP  DPINIT
-*      "TASK"
-*
-*  150 "FORTH" ( a word )              <=, <== CONTEXT
-*                                      `==== CURRENT
-*  148 start of ram-dictionary.
-*
-*  100 user #l table of variables      <= UP   DPINIT
-*   F0 registers & pointers for the virtual machine
-*      scratch area used by various words
-*   E0 lowest address used by FORTH
-*
-* 0000
-       PAGE
-***
-*
-* CONVENTIONS USED IN THIS PROGRAM ARE AS FOLLOWS :
-*
-* IP points to the current instruction ( pre-increment mode )
-* RP points to second free byte (first free word) in return stack
-* SP (hardware SP) points to first free byte in data stack
-*
-*      when A ANDB hold one 16 bit FORTH data word,
-*      A contains the high byte, B, the low byte.
-***
-
-
-
-
-       ORG     $E0     ; variables
-
-
-N      RMB     10      ; used as scratch by (FIND),ENCLOSE,CMOVE,EMIT,KEY,
-*                              SP@,SWAP,DOES>,COLD
-
-
-*      These locations are used by the TRACE routine :
-
-TRLIM  RMB     1       ; the count for tracing without user intervention
-TRACEM RMB     1       ; non-zero = trace mode
-BRKPT  RMB     2       ; the breakpoint address at which
-*                      ; the program will go into trace mode
-VECT   RMB     2       ; vector to machine code
-*      (only needed if the TRACE routine is resident)
-
-
-*      Registers used by the FORTH virtual machine:
-*      Starting at $OOFO:
-
-
-W      RMB     2       ; the instruction register points to 6800 code
-IP     RMB     2       ; the instruction pointer points to pointer to 6800 code
-RP     RMB     2       ; the return stack pointer
-UP     RMB     2       ; the pointer to base of current user's 'USER' table
-*              ( altered during multi-tasking )
-*
-       PAGE
-*      This system is shown with one user, but additional users
-*      may be added by allocating additional user tables:
-*      UORIG2 RMB 64 data table for user #2
-*
-*
-*      Some of this stuff gets initialized during
-*      COLD start and WARM start:
-*      [ names correspond to FORTH words of similar (no X) name ]
-*
-       ORG     $100
-UORIG  RMB     6       ; 3 reserved variables
-XSPZER RMB     2       ; initial top of data stack for this user
-XRZERO RMB     2       ; initial top of return stack
-XTIB   RMB     2       ; start of terminal input buffer
-XWIDTH RMB     2       ; name field width
-XWARN  RMB     2       ; warning message mode (0 = no disc)
-XFENCE RMB     2       ; fence for FORGET
-XDP    RMB     2       ; dictionary pointer
-XVOCL  RMB     2       ; vocabulary linking
-XBLK   RMB     2       ; disc block being accessed
-XIN    RMB     2       ; scan pointer into the block
-XOUT   RMB     2       ; cursor position
-XSCR   RMB     2       ; disc screen being accessed ( O=terminal )
-XOFSET RMB     2       ; disc sector offset for multi-disc
-XCONT  RMB     2       ; last word in primary search vocabulary
-XCURR  RMB     2       ; last word in extensible vocabulary
-XSTATE RMB     2       ; flag for 'interpret' or 'compile' modes
-XBASE  RMB     2       ; number base for I/O numeric conversion
-XDPL   RMB     2       ; decimal point place
-XFLD   RMB     2       
-XCSP   RMB     2       ; current stack position, for compile checks
-XRNUM  RMB     2       
-XHLD   RMB     2       
-XDELAY RMB     2       ; carriage return delay count
-XCOLUM RMB     2       ; carriage width
-IOSTAT RMB     2       ; last acia status from write/read
-       RMB     2       ; ( 4 spares! )
-       RMB     2       
-       RMB     2       
-       RMB     2       
-
-
-
-
-*
-*
-*   end of user table, start of common system variables
-*
-*
-*
-XUSE   RMB     2
-XPREV  RMB     2
-       RMB     4       ; ( spares )
-
-       PAGE
-*  These things, up through the lable 'REND', are overwritten
-*  at time of cold load and should have the same contents
-*  as shown here:
-*
-       FCB     $C5     ; immediate
-       FCC     4,FORTH
-       FCB     $C8
-       FDB     NOOP-7
-FORTH  FDB     DODOES,DOVOC,$81A0,TASK-7
-       FDB     0
-*
-       FCC     "(C) Forth Interest Group, 1979"
-
-       FCB     $84
-       FCC     3,TASK
-       FCB     $CB
-       FDB     FORTH-8
-TASK   FDB     DOCOL,SEMIS
-* 
-REND   EQU     *       ( first empty location in dictionary )
-
-       PAGE
-*    The FORTH program ( address $1000 to $27FF ) is written
-*    so that it can be in a ROM, or write-protected if desired
-       ORG     $1000
-
-* ######>> screen 3 <<
-*
-***************************
-**  C O L D   E N T R Y  **
-***************************
-ORIG   NOP
-       JMP     CENT
-***************************
-**  W A R M   E N T R Y  **
-***************************
-       NOP
-       JMP     WENT    ; warm-start code, keeps current dictionary intact
-
-*
-******* startup parmeters **************************
-*
-       FDB     $6800,0000      ; cpu & revision
-       FDB     0       ; topmost word in FORTH vocabulary
-BACKSP FDB     $7F     ; backspace character for editing
-UPINIT FDB     UORIG   ; initial user area
-SINIT  FDB     ORIG-$D0        ; initial top of data stack
-RINIT  FDB     ORIG-2  initial top of return stack
-       FDB     ORIG-$D0        terminal input buffer
-       FDB     31      ; initial name field width
-       FDB     0       ; initial warning mode (0 = no disc)
-FENCIN FDB     REND    ; initial fence
-DPINIT FDB     REND    ; cold start value for DP
-VOCINT FDB     FORTH+8 
-COLINT FDB     132     ; initial terminal carriage width
-DELINT FDB     4       ; initial carriage return delay
-****************************************************
-*
-       PAGE
-*
-* ######>> screen 13 <<
-PULABX PULS A          ; 24 cycles until 'NEXT'
-       PULS B
-STABX  STA     0,X     ; 16 cycles until 'NEXT'
-       STB     1,X
-       BRA     NEXT
-GETX   LDA     0,X     ; 18 cycles until 'NEXT'
-       LDB     1,X
-PUSHBA PSHS B          ; 8 cycles until 'NEXT'
-       PSHS A
-
-
-
-*
-* "NEXT" takes 38 cycles if TRACE is removed,
-*
-* and 95 cycles if NOT tracing.
-*
-* = = = = = = =   t h e   v i r t u a l   m a c h i n e   = = = = =
-*                                                                 =
-NEXT   LDX     IP
-       LEAX 1,X                ; pre-increment mode
-       LEAX 1,X
-       STX     IP
-NEXT2  LDX     0,X     ; get W which points to CFA of word to be done
-NEXT3  STX     W
-       LDX     0,X     ; get VECT which points to executable code
-*                                                                 =
-* The next instruction could be patched to JMP TRACE              =
-* if a TRACE routine is available:                                =
-*                                                                 =
-       JMP     0,X
-       NOP
-*      JMP     TRACE   ; ( an alternate for the above )
-*                                                                 =
-* = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =
-
-
-       PAGE
-*
-* ======>>  1  <<
-       FCB     $83
-       FCC     2,LIT   ; NOTE: this is different from LITERAL
-       FCB     $D4
-       FDB     0       ; link of zero to terminate dictionary scan
-LIT    FDB     *+2
-       LDX     IP
-       LEAX 1,X
-       LEAX 1,X
-       STX     IP
-       LDA     0,X
-       LDB     1,X
-       JMP     PUSHBA
-*
-* ######>> screen 14 <<
-* ======>>  2  <<
-CLITER FDB     *+2      ; (this is an invisible word, with no header)
-       LDX     IP
-       LEAX 1,X
-       STX     IP
-       CLRA
-       LDB     1,X
-       JMP     PUSHBA
-*
-* ======>>  3  <<
-       FCB     $87
-       FCC     6,EXECUTE
-       FCB     $C5
-       FDB     LIT-6
-EXEC   FDB     *+2
-       TFR S,X
-       LDX     0,X     ; get code field address (CFA)
-       LEAS 1,S                ; pop stack
-       LEAS 1,S
-       JMP     NEXT3
-*
-* ######>> screen 15 <<
-* ======>>  4  <<
-       FCB     $86
-       FCC     5,BRANCH
-       FCB     $C8
-       FDB     EXEC-10
-BRAN   FDB     ZBYES   ; Go steal code in ZBRANCH
-*
-* ======>>  5  <<
-       FCB     $87
-       FCC     6,0BRANCH
-       FCB     $C8
-       FDB     BRAN-9
-ZBRAN  FDB     *+2
-       PULS A
-       PULS B
-* ABA is only used here. 
-* Could immediately convert PULs to LDD ,S++ ;
-* with no need for trailing BCS to look for overflow
-* because we are only testing for non-zero, but,
-* converting as if by unintelligent macro:
-       PSHS B  ; LOL
-       ADDA ,S+
-* End of unintelligent ABA conversion.
-       BNE     ZBNO
-       BCS     ZBNO
-ZBYES  LDX     IP      ; Note: code is shared with BRANCH, (+LOOP), (LOOP)
-       LDB     3,X
-       LDA     2,X
-       ADDB    IP+1
-       ADCA    IP
-       STB     IP+1
-       STA     IP
-       JMP     NEXT
-ZBNO   LDX     IP      ; no branch. This code is shared with (+LOOP), (LOOP).
-       LEAX 1,X                ; jump over branch delta
-       LEAX 1,X
-       STX     IP
-       JMP     NEXT
-*
-* ######>> screen 16 <<
-* ======>>  6  <<
-       FCB     $86
-       FCC     5,(LOOP)
-       FCB     $A9
-       FDB     ZBRAN-10
-XLOOP  FDB     *+2
-       CLRA
-       LDB     #1      ; get set to increment counter by 1
-       BRA     XPLOP2  ; go steal other guy's code!
-*
-* ======>>  7  <<
-       FCB     $87
-       FCC     6,(+LOOP)
-       FCB     $A9
-       FDB     XLOOP-9
-XPLOOP FDB *+2 ; Note: +LOOP has an un-signed loop counter
-       PULS A  ; get increment
-       PULS B
-XPLOP2 TSTA
-       BPL     XPLOF   ; forward looping
-       BSR     XPLOPS
-       ORCC #1
-       SBCB    5,X
-       SBCA    4,X
-       BPL     ZBYES
-       BRA     XPLONO  ; fall through
-*
-* the subroutine :
-XPLOPS LDX     RP
-       ADDB    3,X     ; add it to counter
-       ADCA    2,X
-       STB     3,X     ; store new counter value
-       STA     2,X
-       RTS
-*
-XPLOF  BSR     XPLOPS
-       SUBB    5,X
-       SBCA    4,X
-       BMI     ZBYES
-*
-XPLONO LEAX 1,X                ; done, don't branch back
-       LEAX 1,X
-       LEAX 1,X
-       LEAX 1,X
-       STX     RP
-       BRA     ZBNO    ; use ZBRAN to skip over unused delta
-*
-* ######>> screen 17 <<
-* ======>>  8  <<
-       FCB     $84
-       FCC     3,(DO)
-       FCB     $A9
-       FDB     XPLOOP-10
-XDO    FDB     *+2     ; This is the RUNTIME DO, not the COMPILING DO
-       LDX     RP
-       LEAX -1,X
-       LEAX -1,X
-       LEAX -1,X
-       LEAX -1,X
-       STX     RP
-       PULS A
-       PULS B
-       STA     2,X
-       STB     3,X
-       PULS A
-       PULS B
-       STA     4,X
-       STB     5,X
-       JMP     NEXT
-*
-* ======>>  9  <<
-       FCB     $81     I
-       FCB     $C9
-       FDB     XDO-7   
-I      FDB     *+2
-       LDX     RP
-       LEAX 1,X
-       LEAX 1,X
-       JMP     GETX
-*
-* ######>> screen 18 <<
-* ======>>  10  <<
-       FCB     $85
-       FCC     4,DIGIT
-       FCB     $D4
-       FDB     I-4
-DIGIT  FDB     *+2     ; NOTE: legal input range is 0-9, A-Z
-       TFR S,X
-       LDA     3,X
-       SUBA    #$30    ; ascii zero
-       BMI     DIGIT2  ; IF LESS THAN '0', ILLEGAL
-       CMPA    #$A
-       BMI     DIGIT0  ; IF '9' OR LESS
-       CMPA    #$11
-       BMI     DIGIT2  ; if less than 'A'
-       CMPA    #$2B
-       BPL     DIGIT2  ; if greater than 'Z'
-       SUBA    #7      ; translate 'A' thru 'F'
-DIGIT0 CMPA    1,X
-       BPL     DIGIT2  ; if not less than the base
-       LDB     #1      ; set flag
-       STA     3,X     ; store digit
-DIGIT1 STB     1,X     ; store the flag
-       JMP     NEXT
-DIGIT2 CLRB
-       LEAS 1,S
-       LEAS 1,S        ; pop bottom number
-       TFR S,X
-       STB     0,X     ; make sure both bytes are 00
-       BRA     DIGIT1
-*
-* ######>> screen 19 <<
-*
-* The word format in the dictionary is:
-*
-* char-count + $80     lowest address
-* char 1
-* char 2
-* 
-* char n  + $80
-* link high byte \___point to previous word
-* link low  byte /
-* CFA  high byte \___pnt to 6800 code
-* CFA  low  byte /
-* parameter fields
-*    "
-*    "
-*    "
-*
-* ======>>  11  <<
-       FCB     $86
-       FCC     5,(FIND)
-       FCB     $A9
-       FDB     DIGIT-8
-PFIND  FDB     *+2
-       NOP
-       NOP
-PD     EQU     N       ; ptr to dict word being checked
-PA0    EQU     N+2
-PA     EQU     N+4
-PCT    EQU     N+6     ; PC in 6800 source
-       LDX     #PD
-       LDB     #4
-PFIND0 PULS A          ; loop to get arguments
-       STA     0,X
-       LEAX 1,X
-       DECB
-       BNE     PFIND0
-*
-       LDX     PD
-PFIND1 LDB     0,X     ; get count dict count
-       STB     PCT
-       ANDB    #$3F
-       LEAX 1,X
-       STX     PD      ; update PD
-       LDX     PA0
-       LDA     0,X     ; get count from arg
-       LEAX 1,X
-       STX     PA      ; intialize PA
-       PSHS B ; sim CBA
-       CMPA ,S+                ; compare lengths
-       BNE     PFIND4
-PFIND2 LDX     PA
-       LDA     0,X
-       LEAX 1,X
-       STX     PA
-       LDX     PD
-       LDB     0,X
-       LEAX 1,X
-       STX     PD
-       TSTB            ; is dict entry neg. ?
-       BPL     PFIND8
-       ANDB    #$7F    ; clear sign
-       PSHS B ; sim CBA
-       CMPA ,S+
-       BEQ     FOUND
-PFIND3 LDX     0,X     ; get new link
-       BNE     PFIND1  ; continue if link not=0
-*
-*      not found :
-*
-       CLRA
-       CLRB
-       JMP     PUSHBA
-PFIND8 PSHS B ; sim CBA
-       CMPA ,S+
-       BEQ     PFIND2
-PFIND4 LDX     PD
-PFIND9 LDB     0,X     ; scan forward to end of this name
-       LEAX 1,X
-       BPL     PFIND9
-       BRA     PFIND3
-*
-*      found :
-*
-FOUND  LDA     PD      ; compute CFA
-       LDB     PD+1
-       ADDB    #4
-       ADCA    #0
-       PSHS B
-       PSHS A
-       LDA     PCT
-       PSHS A
-       CLRA
-       PSHS A
-       LDB     #1
-       JMP     PUSHBA
-*
-       PSHS A
-       CLRA
-       PSHS A
-       LDB     #1
-       JMP     PUSHBA
-*
-* ######>> screen 20 <<
-* ======>>  12  <<
-       FCB     $87
-       FCC     6,ENCLOSE
-       FCB     $C5
-       FDB     PFIND-9
-* NOTE :
-* FC means offset (bytes) to First Character of next word
-* EW  "     "   to End of Word
-* NC  "     "   to Next Character to start next enclose at
-ENCLOS FDB     *+2
-       LEAS 1,S
-       PULS B          ; now, get the low byte, for an 8-bit delimiter
-       TFR S,X
-       LDX     0,X
-       CLR     N
-*      wait for a non-delimiter or a NUL
-ENCL2  LDA     0,X
-       BEQ     ENCL6
-       PSHS B ; sim CBA
-       CMPA ,S+                ; CHECK FOR DELIM
-       BNE     ENCL3
-       LEAX 1,X
-       INC     N
-       BRA     ENCL2
-*      found first character. Push FC
-ENCL3  LDA     N       found first char.
-       PSHS A
-       CLRA
-       PSHS A 
-*      wait for a delimiter or a NUL
-ENCL4  LDA     0,X
-       BEQ     ENCL7
-       PSHS B ; sim CBA
-       CMPA ,S+                ; ckech for delim.
-       BEQ     ENCL5
-       LEAX 1,X
-       INC     N
-       BRA     ENCL4
-*      found EW. Push it
-ENCL5  LDB     N
-       CLRA
-       PSHS B
-       PSHS A
-*      advance and push NC
-       INCB
-       JMP     PUSHBA
-*      found NUL before non-delimiter, therefore there is no word
-ENCL6  LDB     N       found NUL
-       PSHS B
-       PSHS A
-       INCB
-       BRA     ENCL7+2 
-*      found NUL following the word instead of SPACE
-ENCL7  LDB     N
-       PSHS B          save EW
-       PSHS A
-ENCL8  LDB     N       save NC
-       JMP     PUSHBA
-
-       PAGE
-*
-* ######>> screen 21 <<
-* The next 4 words call system dependant I/O routines
-* which are listed after word "-->" ( lable: "arrow" )
-* in the dictionary.
-*
-* ======>>  13  <<
-       FCB     $84
-       FCC     3,EMIT
-       FCB     $D4
-       FDB     ENCLOS-10
-EMIT   FDB     *+2
-       PULS A
-       PULS A
-       JSR     PEMIT
-       LDX     UP
-       INC     XOUT+1-UORIG,X
-       BNE     *+4
-       INC     XOUT-UORIG,X
-       JMP     NEXT
-*
-* ======>>  14  <<
-       FCB     $83
-       FCC     2,KEY
-       FCB     $D9
-       FDB     EMIT-7
-KEY    FDB     *+2
-       JSR     PKEY
-       PSHS A
-       CLRA
-       PSHS A
-       JMP     NEXT
-*
-* ======>>  15  <<
-       FCB     $89
-       FCC     8,?TERMINAL
-       FCB     $CC
-       FDB     KEY-6
-QTERM  FDB     *+2
-       JSR     PQTER
-       CLRB
-       JMP     PUSHBA  stack the flag
-*
-* ======>>  16  <<
-       FCB     $82
-       FCC     1,CR
-       FCB     $D2
-       FDB     QTERM-12
-CR     FDB     *+2
-       JSR     PRTCR
-       JMP     NEXT
-*
-* ######>> screen 22 <<
-* ======>>  17  <<
-       FCB     $85
-       FCC     4,CMOVE source, destination, count
-       FCB     $C5
-       FDB     CR-5
-CMOVE  FDB     *+2     takes ( 43+47*count cycles )
-       LDX     #N
-       LDB     #6
-CMOV1  PULS A
-       STA     0,X     move parameters to scratch area
-       LEAX 1,X
-       DECB
-       BNE     CMOV1
-CMOV2  LDA     N
-       LDB     N+1
-       SUBB    #1
-       SBCA    #0
-       STA     N
-       STB     N+1
-       BCS     CMOV3
-       LDX     N+4
-       LDA     0,X
-       LEAX 1,X
-       STX     N+4
-       LDX     N+2
-       STA     0,X
-       LEAX 1,X
-       STX     N+2
-       BRA     CMOV2
-CMOV3  JMP     NEXT
-*
-* ######>> screen 23 <<
-* ======>>  18  <<
-       FCB     $82
-       FCC     1,U*
-       FCB     $AA
-       FDB     CMOVE-8
-USTAR  FDB     *+2
-       BSR     USTARS
-       LEAS 1,S
-       LEAS 1,S
-       JMP     PUSHBA
-*
-* The following is a subroutine which 
-* multiplies top 2 words on stack,
-* leaving 32-bit result:  high order word in A,B
-* low order word in 2nd word of stack.
-*
-USTARS LDA     #16     bits/word counter
-       PSHS A
-       CLRA
-       CLRB
-       TFR S,X
-USTAR2 ROR     5,X     shift multiplier
-       ROR     6,X
-       DEC     0,X     done?
-       BMI     USTAR4
-       BCC     USTAR3
-       ADDB    4,X
-       ADCA    3,X
-USTAR3 RORA
-       RORB            ; shift result
-       BRA     USTAR2
-USTAR4 LEAS 1,S                dump counter
-       RTS
-*
-* ######>> screen 24 <<
-* ======>>  19  <<
-       FCB     $82
-       FCC     1,U/
-       FCB     $AF
-       FDB     USTAR-5
-USLASH FDB     *+2
-       LDA     #17
-       PSHS A
-       TFR S,X
-       LDA     3,X
-       LDB     4,X
-USL1   CMPA    1,X
-       BHI     USL3
-       BCS     USL2
-       CMPB    2,X
-       BCC     USL3
-USL2   ANDCC #~1
-       BRA     USL4
-USL3   SUBB    2,X
-       SBCA    1,X
-       ORCC #1
-USL4   ROL     6,X
-       ROL     5,X
-       DEC     0,X
-       BEQ     USL5
-       ROLB
-       ROLA
-       BCC     USL1
-       BRA     USL3
-USL5   LEAS 1,S
-       LEAS 1,S
-       LEAS 1,S
-       LEAS 1,S
-       LEAS 1,S
-       JMP     SWAP+4  reverse quotient & remainder
-*
-* ######>> screen 25 <<
-* ======>>  20  <<
-       FCB     $83
-       FCC     2,AND
-       FCB     $C4
-       FDB     USLASH-5
-AND    FDB     *+2
-       PULS A
-       PULS B
-       TFR S,X
-       ANDB    1,X
-       ANDA    0,X
-       JMP     STABX
-*
-* ======>>  21  <<
-       FCB     $82
-       FCC     1,OR
-       FCB     $D2
-       FDB     AND-6
-OR     FDB     *+2
-       PULS A
-       PULS B
-       TFR S,X
-       ORB     1,X
-       ORA     0,X
-       JMP     STABX
-*      
-* ======>>  22  <<
-       FCB     $83
-       FCC     2,XOR
-       FCB     $D2
-       FDB     OR-5
-XOR    FDB     *+2
-       PULS A
-       PULS B
-       TFR S,X
-       EORB    1,X
-       EORA    0,X
-       JMP     STABX
-*
-* ######>> screen 26 <<
-* ======>>  23  <<
-       FCB     $83
-       FCC     2,SP@
-       FCB     $C0
-       FDB     XOR-6
-SPAT   FDB     *+2
-       TFR S,X
-       STX     N       scratch area
-       LDX     #N
-       JMP     GETX
-*
-* ======>>  24  <<
-       FCB     $83
-       FCC     2,SP!
-       FCB     $A1
-       FDB     SPAT-6
-SPSTOR FDB     *+2
-       LDX     UP
-       LDX     XSPZER-UORIG,X
-* Potential problem area? ******
-       TFR X,S         watch it ! X and S are not equal.
-       JMP     NEXT
-* ======>>  25  <<
-       FCB     $83
-       FCC     2,RP!
-       FCB     $A1
-       FDB     SPSTOR-6
-RPSTOR FDB     *+2
-       LDX     RINIT   initialize from rom constant
-       STX     RP
-       JMP     NEXT
-*
-* ======>>  26  <<
-       FCB     $82
-       FCC     1,;S
-       FCB     $D3
-       FDB     RPSTOR-6
-SEMIS  FDB     *+2
-       LDX     RP
-       LEAX 1,X
-       LEAX 1,X
-       STX     RP
-       LDX     0,X     get address we have just finished.
-       JMP     NEXT+2  increment the return address & do next word
-*
-* ######>> screen 27 <<
-* ======>>  27  <<
-       FCB     $85
-       FCC     4,LEAVE
-       FCB     $C5
-       FDB     SEMIS-5
-LEAVE  FDB     *+2
-       LDX     RP
-       LDA     2,X
-       LDB     3,X
-       STA     4,X
-       STB     5,X
-       JMP     NEXT
-*
-* ======>>  28  <<
-       FCB     $82
-       FCC     1,>R
-       FCB     $D2
-       FDB     LEAVE-8
-TOR    FDB     *+2
-       LDX     RP
-       LEAX -1,X
-       LEAX -1,X
-       STX     RP
-       PULS A
-       PULS B
-       STA     2,X
-       STB     3,X
-       JMP     NEXT
-*
-* ======>>  29  <<
-       FCB     $82
-       FCC     1,R>
-       FCB     $BE
-       FDB     TOR-5
-FROMR  FDB     *+2
-       LDX     RP
-       LDA     2,X
-       LDB     3,X
-       LEAX 1,X
-       LEAX 1,X
-       STX     RP
-       JMP     PUSHBA
-*
-* ======>>  30  <<
-       FCB     $81     R
-       FCB     $D2
-       FDB     FROMR-5
-R      FDB     *+2
-       LDX     RP
-       LEAX 1,X
-       LEAX 1,X
-       JMP     GETX
-*
-* ######>> screen 28 <<
-* ======>>  31  <<
-       FCB     $82
-       FCC     1,0=
-       FCB     $BD
-       FDB     R-4
-ZEQU   FDB     *+2
-       TFR S,X
-       CLRA
-       CLRB
-       LDX     0,X
-       BNE     ZEQU2
-       INCB
-ZEQU2  TFR S,X
-       JMP     STABX
-*
-* ======>>  32  <<
-       FCB     $82
-       FCC     1,0<
-       FCB     $BC
-       FDB     ZEQU-5
-ZLESS  FDB     *+2
-       TFR S,X
-       LDA     #$80    check the sign bit
-       ANDA    0,X
-       BEQ     ZLESS2
-       CLRA            if neg.
-       LDB #1
-       JMP     STABX
-ZLESS2 CLRB
-       JMP     STABX
-*
-* ######>> screen 29 <<
-* ======>>  33  <<
-       FCB     $81     '+'
-       FCB     $AB
-       FDB     ZLESS-5
-PLUS   FDB     *+2
-       PULS A
-       PULS B
-       TFR S,X
-       ADDB    1,X
-       ADCA    0,X
-       JMP     STABX
-*
-* ======>>  34  <<
-       FCB     $82
-       FCC     1,D+
-       FCB     $AB
-       FDB     PLUS-4
-DPLUS  FDB     *+2
-       TFR S,X
-       ANDCC #~1
-       LDB     #4
-DPLUS2 LDA     3,X
-       ADCA    7,X
-       STA     7,X
-       LEAX -1,X
-       DECB
-       BNE     DPLUS2
-       LEAS 1,S
-       LEAS 1,S
-       LEAS 1,S
-       LEAS 1,S
-       JMP     NEXT
-*
-* ======>>  35  <<
-       FCB     $85
-       FCC     4,MINUS
-       FCB     $D3
-       FDB     DPLUS-5
-MINUS  FDB     *+2
-       TFR S,X
-       NEG     1,X
-       BCC     MINUS2
-       NEG     0,X
-       BRA     MINUS3
-MINUS2 COM     0,X
-MINUS3 JMP     NEXT
-*
-* ======>>  36  <<
-       FCB     $86
-       FCC     5,DMINUS
-       FCB     $D3
-       FDB     MINUS-8
-DMINUS FDB     *+2
-       TFR S,X
-       COM     0,X
-       COM     1,X
-       COM     2,X
-       NEG     3,X
-       BNE     DMINX
-       INC     2,X
-       BNE     DMINX
-       INC     1,X
-       BNE     DMINX
-       INC     0,X
-DMINX  JMP     NEXT
-*
-* ######>> screen 30 <<
-* ======>>  37  <<
-       FCB     $84
-       FCC     3,OVER
-       FCB     $D2
-       FDB     DMINUS-9
-OVER   FDB     *+2
-       TFR S,X
-       LDA     2,X
-       LDB     3,X
-       JMP     PUSHBA
-*
-* ======>>  38  <<
-       FCB     $84
-       FCC     3,DROP
-       FCB     $D0
-       FDB     OVER-7
-DROP   FDB     *+2
-       LEAS 1,S
-       LEAS 1,S
-       JMP     NEXT
-*
-* ======>>  39  <<
-       FCB     $84
-       FCC     3,SWAP
-       FCB     $D0
-       FDB     DROP-7
-SWAP   FDB     *+2
-       PULS A
-       PULS B
-       TFR S,X
-       LDX     0,X
-       LEAS 1,S
-       LEAS 1,S
-       PSHS B
-       PSHS A
-       STX     N
-       LDX     #N
-       JMP     GETX
-*
-* ======>>  40  <<
-       FCB     $83
-       FCC     2,DUP
-       FCB     $D0
-       FDB     SWAP-7
-DUP    FDB     *+2
-       PULS A
-       PULS B
-       PSHS B
-       PSHS A
-       JMP PUSHBA
-*
-* ######>> screen 31 <<
-* ======>>  41  <<
-       FCB     $82
-       FCC     1,+!
-       FCB     $A1
-       FDB     DUP-6
-PSTORE FDB     *+2
-       TFR S,X
-       LDX     0,X
-       LEAS 1,S
-       LEAS 1,S
-       PULS A          get stack data
-       PULS B
-       ADDB    1,X     add & store low byte
-       STB     1,X
-       ADCA    0,X     add & store hi byte
-       STA     0,X
-       JMP     NEXT
-*
-* ======>>  42  <<
-       FCB     $86
-       FCC     5,TOGGLE
-       FCB     $C5
-       FDB     PSTORE-5
-TOGGLE FDB     DOCOL,OVER,CAT,XOR,SWAP,CSTORE
-       FDB     SEMIS
-*
-* ######>> screen 32 <<
-* ======>>  43  <<
-       FCB     $81     @
-       FCB     $C0
-       FDB     TOGGLE-9
-AT     FDB     *+2
-       TFR S,X
-       LDX     0,X     get address
-       LEAS 1,S
-       LEAS 1,S
-       JMP     GETX
-*
-* ======>>  44  <<
-       FCB     $82
-       FCC     1,C@
-       FCB     $C0
-       FDB     AT-4
-CAT    FDB     *+2
-       TFR S,X
-       LDX     0,X
-       CLRA
-       LDB     0,X
-       LEAS 1,S
-       LEAS 1,S
-       JMP     PUSHBA
-*
-* ======>>  45  <<
-       FCB     $81
-       FCB     $A1
-       FDB     CAT-5
-STORE  FDB     *+2
-       TFR S,X
-       LDX     0,X     get address
-       LEAS 1,S
-       LEAS 1,S
-       JMP     PULABX
-*
-* ======>>  46  <<
-       FCB     $82
-       FCC     1,C!
-       FCB     $A1
-       FDB     STORE-4
-CSTORE FDB     *+2
-       TFR S,X
-       LDX     0,X     get address
-       LEAS 1,S
-       LEAS 1,S
-       LEAS 1,S
-       PULS B
-       STB     0,X
-       JMP     NEXT
-       PAGE
-*
-* ######>> screen 33 <<
-* ======>>  47  <<
-       FCB     $C1     : immediate
-       FCB     $BA
-       FDB     CSTORE-5
-COLON  FDB     DOCOL,QEXEC,SCSP,CURENT,AT,CONTXT,STORE
-       FDB     CREATE,RBRAK
-       FDB     PSCODE
-
-* Here is the IP pusher for allowing
-* nested words in the virtual machine:
-* ( ;S is the equivalent un-nester )
-
-DOCOL  LDX     RP      make room in the stack
-       LEAX -1,X
-       LEAX -1,X
-       STX     RP
-       LDA     IP
-       LDB     IP+1    
-       STA     2,X     Store address of the high level word
-       STB     3,X     that we are starting to execute
-       LDX     W       Get first sub-word of that definition
-       JMP     NEXT+2  and execute it
-*
-* ======>>  48  <<
-       FCB     $C1     ;   imnediate code
-       FCB     $BB
-       FDB     COLON-4
-SEMI   FDB     DOCOL,QCSP,COMPIL,SEMIS,SMUDGE,LBRAK
-       FDB     SEMIS
-*
-* ######>> screen 34 <<
-* ======>>  49  <<
-       FCB     $88
-       FCC     7,CONSTANT
-       FCB     $D4
-       FDB     SEMI-4
-CON    FDB     DOCOL,CREATE,SMUDGE,COMMA,PSCODE
-DOCON  LDX     W
-       LDA     2,X     
-       LDB     3,X     A & B now contain the constant
-       JMP     PUSHBA
-*
-* ======>>  50  <<
-       FCB     $88
-       FCC     7,VARIABLE
-       FCB     $C5
-       FDB     CON-11
-VAR    FDB     DOCOL,CON,PSCODE
-DOVAR  LDA     W
-       LDB     W+1
-       ADDB    #2
-       ADCA    #0      A,B now contain the address of the variable
-       JMP     PUSHBA
-*
-* ======>>  51  <<
-       FCB     $84
-       FCC     3,USER
-       FCB     $D2
-       FDB     VAR-11
-USER   FDB     DOCOL,CON,PSCODE
-DOUSER LDX     W       get offset  into user's table
-       LDA     2,X
-       LDB     3,X
-       ADDB    UP+1    add to users base address
-       ADCA    UP
-       JMP     PUSHBA  push address of user's variable
-*
-* ######>> screen 35 <<
-* ======>>  52  <<
-       FCB     $81
-       FCB     $B0     0
-       FDB     USER-7
-ZERO   FDB     DOCON
-       FDB     0000
-*
-* ======>>  53  <<
-       FCB     $81
-       FCB     $B1     1
-       FDB     ZERO-4
-ONE    FDB     DOCON
-       FDB     1
-*
-* ======>>  54  <<
-       FCB     $81
-       FCB     $B2     2
-       FDB     ONE-4
-TWO    FDB     DOCON
-       FDB     2
-*
-* ======>>  55  <<
-       FCB     $81
-       FCB     $B3     3
-       FDB     TWO-4
-THREE  FDB     DOCON
-       FDB     3
-*
-* ======>>  56  <<
-       FCB     $82
-       FCC     1,BL
-       FCB     $CC
-       FDB     THREE-4
-BL     FDB     DOCON   ascii blank
-       FDB     $20
-*
-* ======>>  57  <<
-       FCB     $85
-       FCC     4,FIRST
-       FCB     $D4
-       FDB     BL-5
-FIRST  FDB     DOCON
-       FDB     MEMEND-528      (132 * NBLK)
-*
-* ======>>  58  <<
-       FCB     $85
-       FCC     4,LIMIT ( the end of memory +1 )
-       FCB     $D4
-       FDB     FIRST-8
-LIMIT  FDB     DOCON
-       FDB     MEMEND
-*
-* ======>>  59  <<
-       FCB     $85
-       FCC     4,B/BUF (bytes/buffer)
-       FCB     $C6
-       FDB     LIMIT-8
-BBUF   FDB     DOCON
-       FDB     128
-*
-* ======>>  60  <<
-       FCB     $85
-       FCC     4,B/SCR (blocks/screen)
-       FCB     $D2
-       FDB     BBUF-8
-BSCR   FDB     DOCON
-       FDB     8
-*      blocks/screen = 1024 / "B/BUF" = 8
-*
-* ======>>  61  <<
-       FCB     $87
-       FCC     6,+ORIGIN
-       FCB     $CE
-       FDB     BSCR-8
-PORIG  FDB     DOCOL,LIT,ORIG,PLUS
-       FDB     SEMIS
-*
-* ######>> screen 36 <<
-* ======>>  62  <<
-       FCB     $82
-       FCC     1,S0
-       FCB     $B0
-       FDB     PORIG-10
-SZERO  FDB     DOUSER
-       FDB     XSPZER-UORIG
-*
-* ======>>  63  <<
-       FCB     $82
-       FCC     1,R0
-       FCB     $B0
-       FDB     SZERO-5
-RZERO  FDB     DOUSER
-       FDB     XRZERO-UORIG
-*
-* ======>>  64  <<
-       FCB     $83
-       FCC     2,TIB
-       FCB     $C2
-       FDB     RZERO-5
-TIB    FDB     DOUSER
-       FDB     XTIB-UORIG
-*
-* ======>>  65  <<
-       FCB     $85
-       FCC     4,WIDTH
-       FCB     $C8
-       FDB     TIB-6
-WIDTH  FDB     DOUSER
-       FDB     XWIDTH-UORIG
-*
-* ======>>  66  <<
-       FCB     $87
-       FCC     6,WARNING
-       FCB     $C7
-       FDB     WIDTH-8
-WARN   FDB     DOUSER
-       FDB     XWARN-UORIG
-*
-* ======>>  67  <<
-       FCB     $85
-       FCC     4,FENCE
-       FCB     $C5
-       FDB     WARN-10
-FENCE  FDB     DOUSER
-       FDB     XFENCE-UORIG
-*
-* ======>>  68  <<
-       FCB     $82
-       FCC     1,DP    points to first free byte at end of dictionary
-       FCB     $D0
-       FDB     FENCE-8
-DICPT  FDB     DOUSER  ; DP in 6800 source
-       FDB     XDP-UORIG
-*
-* ======>>  68.5  <<
-       FCB     $88
-       FCC     7,VOC-LINK
-       FCB     $CB
-       FDB     DICPT-5
-VOCLIN FDB     DOUSER
-       FDB     XVOCL-UORIG
-*
-* ======>>  69  <<
-       FCB     $83
-       FCC     2,BLK
-       FCB     $CB
-       FDB     VOCLIN-11
-BLK    FDB     DOUSER
-       FDB     XBLK-UORIG
-*
-* ======>>  70  <<
-       FCB     $82
-       FCC     1,IN    scan pointer for input line buffer
-       FCB     $CE
-       FDB     BLK-6
-IN     FDB     DOUSER
-       FDB     XIN-UORIG
-*
-* ======>>  71  <<
-       FCB     $83
-       FCC     2,OUT
-       FCB     $D4
-       FDB     IN-5
-OUT    FDB     DOUSER
-       FDB     XOUT-UORIG
-*
-* ======>>  72  <<
-       FCB     $83
-       FCC     2,SCR
-       FCB     $D2
-       FDB     OUT-6
-SCR    FDB     DOUSER
-       FDB     XSCR-UORIG
-* ######>> screen 37 <<
-*
-* ======>>  73  <<
-       FCB     $86
-       FCC     5,OFFSET
-       FCB     $D4
-       FDB     SCR-6
-OFSET  FDB     DOUSER
-       FDB     XOFSET-UORIG
-*
-* ======>>  74  <<
-       FCB     $87
-       FCC     6,CONTEXT       points to pointer to vocab to search first
-       FCB     $D4
-       FDB     OFSET-9
-CONTXT FDB     DOUSER
-       FDB     XCONT-UORIG
-*
-* ======>>  75  <<
-       FCB     $87
-       FCC     6,CURRENT       points to ptr. to vocab being extended
-       FCB     $D4
-       FDB     CONTXT-10
-CURENT FDB     DOUSER
-       FDB     XCURR-UORIG
-*
-* ======>>  76  <<
-       FCB     $85
-       FCC     4,STATE 1 if compiling, 0 if not
-       FCB     $C5
-       FDB     CURENT-10
-STATE  FDB     DOUSER
-       FDB     XSTATE-UORIG
-*
-* ======>>  77  <<
-       FCB     $84
-       FCC     3,BASE  number base for all input & output
-       FCB     $C5
-       FDB     STATE-8
-BASE   FDB     DOUSER
-       FDB     XBASE-UORIG
-*
-* ======>>  78  <<
-       FCB     $83
-       FCC     2,DPL
-       FCB     $CC
-       FDB     BASE-7
-DPL    FDB     DOUSER
-       FDB     XDPL-UORIG
-*
-* ======>>  79  <<
-       FCB     $83
-       FCC     2,FLD
-       FCB     $C4
-       FDB     DPL-6
-FLD    FDB     DOUSER
-       FDB     XFLD-UORIG
-*
-* ======>>  80  <<
-       FCB     $83
-       FCC     2,CSP
-       FCB     $D0
-       FDB     FLD-6
-CSP    FDB     DOUSER
-       FDB     XCSP-UORIG
-*
-* ======>>  81  <<
-       FCB     $82
-       FCC     1,R#
-       FCB     $A3
-       FDB     CSP-6
-RNUM   FDB     DOUSER
-       FDB     XRNUM-UORIG
-*
-* ======>>  82  <<
-       FCB     $83
-       FCC     2,HLD
-       FCB     $C4
-       FDB     RNUM-5
-HLD    FDB     DOCON
-       FDB     XHLD
-*
-* ======>>  82.5  <<== SPECIAL
-       FCB     $87
-       FCC     6,COLUMNS       line width of terminal
-       FCB     $D3
-       FDB     HLD-6
-COLUMS FDB     DOUSER
-       FDB     XCOLUM-UORIG
-*
-* ######>> screen 38 <<
-* ======>>  83  <<
-       FCB     $82
-       FCC     1,1+
-       FCB     $AB
-       FDB     COLUMS-10
-ONEP   FDB     DOCOL,ONE,PLUS
-       FDB     SEMIS
-*
-* ======>>  84  <<
-       FCB     $82
-       FCC     1,2+
-       FCB     $AB
-       FDB     ONEP-5
-TWOP   FDB     DOCOL,TWO,PLUS
-       FDB     SEMIS
-*
-* ======>>  85  <<
-       FCB     $84
-       FCC     3,HERE
-       FCB     $C5
-       FDB     TWOP-5
-HERE   FDB     DOCOL,DICPT,AT
-       FDB     SEMIS
-*
-* ======>>  86  <<
-       FCB     $85
-       FCC     4,ALLOT
-       FCB     $D4
-       FDB     HERE-7
-ALLOT  FDB     DOCOL,DICPT,PSTORE
-       FDB     SEMIS
-*
-* ======>>  87  <<
-       FCB     $81     ; , (COMMA)
-       FCB     $AC
-       FDB     ALLOT-8
-COMMA  FDB     DOCOL,HERE,STORE,TWO,ALLOT
-       FDB     SEMIS
-*
-* ======>>  88  <<
-       FCB     $82
-       FCC     1,C,
-       FCB     $AC
-       FDB     COMMA-4
-CCOMM  FDB     DOCOL,HERE,CSTORE,ONE,ALLOT
-       FDB     SEMIS
-*
-* ======>>  89  <<
-       FCB     $81     ; -
-       FCB     $AD
-       FDB     CCOMM-5
-SUB    FDB     DOCOL,MINUS,PLUS
-       FDB     SEMIS
-*
-* ======>>  90  <<
-       FCB     $81     =
-       FCB     $BD
-       FDB     SUB-4
-EQUAL  FDB     DOCOL,SUB,ZEQU
-       FDB     SEMIS
-*
-* ======>>  91  <<
-       FCB     $81     <
-       FCB     $BC     
-       FDB     EQUAL-4
-LESS   FDB     *+2
-       PULS A
-       PULS B
-       TFR S,X
-       CMPA    0,X
-       LEAS 1,S
-       BGT     LESST
-       BNE     LESSF
-       CMPB    1,X
-       BHI     LESST
-LESSF  CLRB
-       BRA     LESSX
-LESST  LDB     #1
-LESSX  CLRA
-       LEAS 1,S
-       JMP     PUSHBA
-*
-* ======>>  92  <<
-       FCB     $81     >
-       FCB     $BE
-       FDB     LESS-4
-GREAT  FDB     DOCOL,SWAP,LESS
-       FDB     SEMIS
-*
-* ======>>  93  <<
-       FCB     $83
-       FCC     2,ROT
-       FCB     $D4
-       FDB     GREAT-4
-ROT    FDB     DOCOL,TOR,SWAP,FROMR,SWAP
-       FDB     SEMIS
-*
-* ======>>  94  <<
-       FCB     $85
-       FCC     4,SPACE
-       FCB     $C5
-       FDB     ROT-6
-SPACE  FDB     DOCOL,BL,EMIT
-       FDB     SEMIS
-*
-* ======>>  95  <<
-       FCB     $83
-       FCC     2,MIN
-       FCB     $CE
-       FDB     SPACE-8
-MIN    FDB     DOCOL,OVER,OVER,GREAT,ZBRAN
-       FDB     MIN2-*
-       FDB     SWAP
-MIN2   FDB     DROP
-       FDB     SEMIS
-*
-* ======>>  96  <<
-       FCB     $83
-       FCC     2,MAX
-       FCB     $D8
-       FDB     MIN-6
-MAX    FDB     DOCOL,OVER,OVER,LESS,ZBRAN
-       FDB     MAX2-*
-       FDB     SWAP
-MAX2   FDB     DROP
-       FDB     SEMIS
-*
-* ======>>  97  <<
-       FCB     $84
-       FCC     3,-DUP
-       FCB     $D0
-       FDB     MAX-6
-DDUP   FDB     DOCOL,DUP,ZBRAN
-       FDB     DDUP2-*
-       FDB     DUP
-DDUP2  FDB     SEMIS
-*
-* ######>> screen 39 <<
-* ======>>  98  <<
-       FCB     $88
-       FCC     7,TRAVERSE
-       FCB     $C5
-       FDB     DDUP-7
-TRAV   FDB     DOCOL,SWAP
-TRAV2  FDB     OVER,PLUS,CLITER
-       FCB     $7F
-       FDB     OVER,CAT,LESS,ZBRAN
-       FDB     TRAV2-*
-       FDB     SWAP,DROP
-       FDB     SEMIS
-*
-* ======>>  99  <<
-       FCB     $86
-       FCC     5,LATEST
-       FCB     $D4
-       FDB     TRAV-11
-LATEST FDB     DOCOL,CURENT,AT,AT
-       FDB     SEMIS
-*
-* ======>>  100  <<
-       FCB     $83
-       FCC     2,LFA
-       FCB     $C1
-       FDB     LATEST-9
-LFA    FDB     DOCOL,CLITER
-       FCB     4
-       FDB     SUB
-       FDB     SEMIS
-*
-* ======>>  101  <<
-       FCB     $83
-       FCC     2,CFA
-       FCB     $C1
-       FDB     LFA-6
-CFA    FDB     DOCOL,TWO,SUB
-       FDB     SEMIS
-*
-* ======>>  102  <<
-       FCB     $83
-       FCC     2,NFA
-       FCB     $C1
-       FDB     CFA-6
-NFA    FDB     DOCOL,CLITER
-       FCB     5
-       FDB     SUB,ONE,MINUS,TRAV
-       FDB     SEMIS
-*
-* ======>>  103  <<
-       FCB     $83
-       FCC     2,PFA
-       FCB     $C1
-       FDB     NFA-6
-PFA    FDB     DOCOL,ONE,TRAV,CLITER
-       FCB     5
-       FDB     PLUS
-       FDB     SEMIS
-*
-* ######>> screen 40 <<
-* ======>>  104  <<
-       FCB     $84
-       FCC     3,!CSP
-       FCB     $D0
-       FDB     PFA-6
-SCSP   FDB     DOCOL,SPAT,CSP,STORE
-       FDB     SEMIS
-*
-* ======>>  105  <<
-       FCB     $86
-       FCC     5,?ERROR
-       FCB     $D2
-       FDB     SCSP-7
-QERR   FDB     DOCOL,SWAP,ZBRAN
-       FDB     QERR2-*
-       FDB     ERROR,BRAN
-       FDB     QERR3-*
-QERR2  FDB     DROP
-QERR3  FDB     SEMIS
-*      
-* ======>>  106  <<
-       FCB     $85
-       FCC     4,?COMP
-       FCB     $D0
-       FDB     QERR-9
-QCOMP  FDB     DOCOL,STATE,AT,ZEQU,CLITER
-       FCB     $11
-       FDB     QERR
-       FDB     SEMIS
-*
-* ======>>  107  <<
-       FCB     $85
-       FCC     4,?EXEC
-       FCB     $C3
-       FDB     QCOMP-8
-QEXEC  FDB     DOCOL,STATE,AT,CLITER
-       FCB     $12
-       FDB     QERR
-       FDB     SEMIS
-*
-* ======>>  108  <<
-       FCB     $86
-       FCC     5,?PAIRS
-       FCB     $D3
-       FDB     QEXEC-8
-QPAIRS FDB     DOCOL,SUB,CLITER
-       FCB     $13
-       FDB     QERR
-       FDB     SEMIS
-*
-* ======>>  109  <<
-       FCB     $84
-       FCC     3,?CSP
-       FCB     $D0
-       FDB     QPAIRS-9
-QCSP   FDB     DOCOL,SPAT,CSP,AT,SUB,CLITER
-       FCB     $14
-       FDB     QERR
-       FDB     SEMIS
-*
-* ======>>  110  <<
-       FCB     $88
-       FCC     7,?LOADING
-       FCB     $C7
-       FDB     QCSP-7
-QLOAD  FDB     DOCOL,BLK,AT,ZEQU,CLITER
-       FCB     $16
-       FDB     QERR
-       FDB     SEMIS
-*
-* ######>> screen 41 <<
-* ======>>  111  <<
-       FCB     $87
-       FCC     6,COMPILE
-       FCB     $C5
-       FDB     QLOAD-11
-COMPIL FDB     DOCOL,QCOMP,FROMR,TWOP,DUP,TOR,AT,COMMA
-       FDB     SEMIS
-*
-* ======>>  112  <<
-       FCB     $C1     [       immediate
-       FCB     $DB
-       FDB     COMPIL-10
-LBRAK  FDB     DOCOL,ZERO,STATE,STORE
-       FDB     SEMIS
-*
-* ======>>  113  <<
-       FCB     $81     ]
-       FCB     $DD
-       FDB     LBRAK-4
-RBRAK  FDB     DOCOL,CLITER
-       FCB     $C0
-       FDB     STATE,STORE
-       FDB     SEMIS
-*
-* ======>>  114  <<
-       FCB     $86
-       FCC     5,SMUDGE
-       FCB     $C5
-       FDB     RBRAK-4
-SMUDGE FDB     DOCOL,LATEST,CLITER
-       FCB     $20
-       FDB     TOGGLE
-       FDB     SEMIS
-*
-* ======>>  115  <<
-       FCB     $83
-       FCC     2,HEX
-       FCB     $D8
-       FDB     SMUDGE-9
-HEX    FDB     DOCOL
-       FDB     CLITER
-       FCB     16
-       FDB     BASE,STORE
-       FDB     SEMIS
-*
-* ======>>  116  <<
-       FCB     $87
-       FCC     6,DECIMAL
-       FCB     $CC
-       FDB     HEX-6
-DEC    FDB     DOCOL
-       FDB     CLITER
-       FCB     10      note: hex "A"
-       FDB     BASE,STORE
-       FDB     SEMIS
-*
-* ######>> screen 42 <<
-* ======>>  117  <<
-       FCB     $87
-       FCC     6,(;CODE)
-       FCB     $A9
-       FDB     DEC-10
-PSCODE FDB     DOCOL,FROMR,TWOP,LATEST,PFA,CFA,STORE
-       FDB     SEMIS
-*
-* ======>>  118  <<
-       FCB     $C5     immediate
-       FCC     4,;CODE
-       FCB     $C5
-       FDB     PSCODE-10
-SEMIC  FDB     DOCOL,QCSP,COMPIL,PSCODE,SMUDGE,LBRAK,QSTACK
-       FDB     SEMIS
-* note: "QSTACK" will be replaced by "ASSEMBLER" later
-*
-* ######>> screen 43 <<
-* ======>>  119  <<
-       FCB     $87
-       FCC     6,<BUILDS
-       FCB     $D3
-       FDB     SEMIC-8
-BUILDS FDB     DOCOL,ZERO,CON
-       FDB     SEMIS
-*
-* ======>>  120  <<
-       FCB     $85
-       FCC     4,DOES>
-       FCB     $BE
-       FDB     BUILDS-10
-DOES   FDB     DOCOL,FROMR,TWOP,LATEST,PFA,STORE
-       FDB     PSCODE
-DODOES LDA     IP
-       LDB     IP+1
-       LDX     RP      make room on return stack
-       LEAX -1,X
-       LEAX -1,X
-       STX     RP
-       STA     2,X     push return address
-       STB     3,X
-       LDX     W       get addr of pointer to run-time code
-       LEAX 1,X
-       LEAX 1,X
-       STX     N       stash it in scratch area
-       LDX     0,X     get new IP
-       STX     IP
-       CLRA            get address of parameter
-       LDB     #2
-       ADDB    N+1
-       ADCA    N
-       PSHS B          and push it on data stack
-       PSHS A
-       JMP     NEXT2
-*
-* ######>> screen 44 <<
-* ======>>  121  <<
-       FCB     $85
-       FCC     4,COUNT
-       FCB     $D4
-       FDB     DOES-8
-COUNT  FDB     DOCOL,DUP,ONEP,SWAP,CAT
-       FDB     SEMIS
-*
-* ======>>  122  <<
-       FCB     $84
-       FCC     3,TYPE
-       FCB     $C5
-       FDB     COUNT-8
-TYPE   FDB     DOCOL,DDUP,ZBRAN
-       FDB     TYPE3-*
-       FDB     OVER,PLUS,SWAP,XDO
-TYPE2  FDB     I,CAT,EMIT,XLOOP
-       FDB     TYPE2-*
-       FDB     BRAN
-       FDB     TYPE4-*
-TYPE3  FDB     DROP
-TYPE4  FDB     SEMIS
-*
-* ======>>  123  <<
-       FCB     $89
-       FCC     8,-TRAILING
-       FCB     $C7
-       FDB     TYPE-7
-DTRAIL FDB     DOCOL,DUP,ZERO,XDO
-DTRAL2 FDB     OVER,OVER,PLUS,ONE,SUB,CAT,BL
-       FDB     SUB,ZBRAN
-       FDB     DTRAL3-*
-       FDB     LEAVE,BRAN
-       FDB     DTRAL4-*
-DTRAL3 FDB     ONE,SUB
-DTRAL4 FDB     XLOOP
-       FDB     DTRAL2-*
-       FDB     SEMIS
-*
-* ======>>  124  <<
-       FCB     $84
-       FCC     3,(.")
-       FCB     $A9
-       FDB     DTRAIL-12
-PDOTQ  FDB     DOCOL,R,TWOP,COUNT,DUP,ONEP
-       FDB     FROMR,PLUS,TOR,TYPE
-       FDB     SEMIS
-*
-* ======>>  125  <<
-       FCB     $C2     immediate
-       FCC     1,."
-       FCB     $A2
-       FDB     PDOTQ-7
-DOTQ   FDB     DOCOL
-       FDB     CLITER
-       FCB     $22     ascii quote
-       FDB     STATE,AT,ZBRAN
-       FDB     DOTQ1-*
-       FDB     COMPIL,PDOTQ,WORD
-       FDB     HERE,CAT,ONEP,ALLOT,BRAN
-       FDB     DOTQ2-*
-DOTQ1  FDB     WORD,HERE,COUNT,TYPE
-DOTQ2  FDB     SEMIS
-*
-* ######>> screen 45 <<
-* ======>>  126  <<== MACHINE DEPENDENT
-       FCB     $86
-       FCC     5,?STACK
-       FCB     $CB
-       FDB     DOTQ-5
-QSTACK FDB     DOCOL,CLITER
-       FCB     $12
-       FDB     PORIG,AT,TWO,SUB,SPAT,LESS,ONE
-       FDB     QERR
-* prints 'empty stack'
-*
-QSTAC2 FDB     SPAT
-* Here, we compare with a value at least 128
-* higher than dict. ptr. (DP)
-       FDB     HERE,CLITER
-       FCB     $80
-       FDB     PLUS,LESS,ZBRAN
-       FDB     QSTAC3-*
-       FDB     TWO
-       FDB     QERR
-* prints 'full stack'
-*
-QSTAC3 FDB     SEMIS
-*
-* ======>>  127  <<    this word's function
-*          is done by ?STACK in this version
-*      FCB     $85
-*      FCC     4,?FREE
-*      FCB     $C5
-*      FDB     QSTACK-9
-*QFREE FDB     DOCOL,SPAT,HERE,CLITER
-*      FCB     $80
-*      FDB     PLUS,LESS,TWO,QERR,SEMIS
-*
-* ######>> screen 46 <<
-* ======>>  128  <<
-       FCB     $86
-       FCC     5,EXPECT
-       FCB     $D4
-       FDB     QSTACK-9
-EXPECT FDB     DOCOL,OVER,PLUS,OVER,XDO
-EXPEC2 FDB     KEY,DUP,CLITER
-       FCB     $0E
-       FDB     PORIG,AT,EQUAL,ZBRAN
-       FDB     EXPEC3-*
-       FDB     DROP,CLITER
-       FCB     8       ( backspace character to emit )
-       FDB     OVER,I,EQUAL,DUP,FROMR,TWO,SUB,PLUS
-       FDB     TOR,SUB,BRAN
-       FDB     EXPEC6-*
-EXPEC3 FDB     DUP,CLITER
-       FCB     $D      ( carriage return )
-       FDB     EQUAL,ZBRAN
-       FDB     EXPEC4-*
-       FDB     LEAVE,DROP,BL,ZERO,BRAN
-       FDB     EXPEC5-*
-EXPEC4 FDB     DUP
-EXPEC5 FDB     I,CSTORE,ZERO,I,ONEP,STORE
-EXPEC6 FDB     EMIT,XLOOP
-       FDB     EXPEC2-*
-       FDB     DROP
-       FDB     SEMIS
-*
-* ======>>  129  <<
-       FCB     $85
-       FCC     4,QUERY
-       FCB     $D9
-       FDB     EXPECT-9
-QUERY  FDB     DOCOL,TIB,AT,COLUMS
-       FDB     AT,EXPECT,ZERO,IN,STORE
-       FDB     SEMIS
-*
-* ======>>  130  <<
-       FCB     $C1     immediate       < carriage return >
-       FCB     $80
-       FDB     QUERY-8
-NULL   FDB     DOCOL,BLK,AT,ZBRAN
-       FDB     NULL2-*
-       FDB     ONE,BLK,PSTORE
-       FDB     ZERO,IN,STORE,BLK,AT,BSCR,MOD
-       FDB     ZEQU
-*     check for end of screen
-       FDB     ZBRAN
-       FDB     NULL1-*
-       FDB     QEXEC,FROMR,DROP
-NULL1  FDB     BRAN
-       FDB     NULL3-*
-NULL2  FDB     FROMR,DROP
-NULL3  FDB     SEMIS
-*
-* ######>> screen 47 <<
-* ======>>  133  <<
-       FCB     $84
-       FCC     3,FILL
-       FCB     $CC
-       FDB     NULL-4
-FILL   FDB     DOCOL,SWAP,TOR,OVER,CSTORE,DUP,ONEP
-       FDB     FROMR,ONE,SUB,CMOVE
-       FDB     SEMIS
-*
-* ======>>  134  <<
-       FCB     $85
-       FCC     4,ERASE
-       FCB     $C5
-       FDB     FILL-7
-ERASE  FDB     DOCOL,ZERO,FILL
-       FDB     SEMIS
-*
-* ======>>  135  <<
-       FCB     $86
-       FCC     5,BLANKS
-       FCB     $D3
-       FDB     ERASE-8
-BLANKS FDB     DOCOL,BL,FILL
-       FDB     SEMIS
-*
-* ======>>  136  <<
-       FCB     $84
-       FCC     3,HOLD
-       FCB     $C4
-       FDB     BLANKS-9
-HOLD   FDB     DOCOL,LIT,$FFFF,HLD,PSTORE,HLD,AT,CSTORE
-       FDB     SEMIS
-*
-* ======>>  137  <<
-       FCB     $83
-       FCC     2,PAD
-       FCB     $C4
-       FDB     HOLD-7
-PAD    FDB     DOCOL,HERE,CLITER
-       FCB     $44
-       FDB     PLUS
-       FDB     SEMIS
-*
-* ######>> screen 48 <<
-* ======>>  138  <<
-       FCB     $84
-       FCC     3,WORD
-       FCB     $C4
-       FDB     PAD-6
-WORD   FDB     DOCOL,BLK,AT,ZBRAN
-       FDB     WORD2-*
-       FDB     BLK,AT,BLOCK,BRAN
-       FDB     WORD3-*
-WORD2  FDB     TIB,AT
-WORD3  FDB     IN,AT,PLUS,SWAP,ENCLOS,HERE,CLITER
-       FCB     34
-       FDB     BLANKS,IN,PSTORE,OVER,SUB,TOR,R,HERE
-       FDB     CSTORE,PLUS,HERE,ONEP,FROMR,CMOVE
-       FDB     SEMIS
-*
-* ######>> screen 49 <<
-* ======>>  139  <<
-       FCB     $88
-       FCC     7,(NUMBER)
-       FCB     $A9
-       FDB     WORD-7
-PNUMB  FDB     DOCOL
-PNUMB2 FDB     ONEP,DUP,TOR,CAT,BASE,AT,DIGIT,ZBRAN
-       FDB     PNUMB4-*
-       FDB     SWAP,BASE,AT,USTAR,DROP,ROT,BASE
-       FDB     AT,USTAR,DPLUS,DPL,AT,ONEP,ZBRAN
-       FDB     PNUMB3-*
-       FDB     ONE,DPL,PSTORE
-PNUMB3 FDB     FROMR,BRAN
-       FDB     PNUMB2-*
-PNUMB4 FDB     FROMR
-       FDB     SEMIS
-*
-* ======>>  140  <<
-       FCB     $86
-       FCC     5,NUMBER
-       FCB     $D2
-       FDB     PNUMB-11
-NUMB   FDB     DOCOL,ZERO,ZERO,ROT,DUP,ONEP,CAT,CLITER
-       FCC     "-"     minus sign
-       FDB     EQUAL,DUP,TOR,PLUS,LIT,$FFFF
-NUMB1  FDB     DPL,STORE,PNUMB,DUP,CAT,BL,SUB
-       FDB     ZBRAN
-       FDB     NUMB2-*
-       FDB     DUP,CAT,CLITER
-       FCC     "."
-       FDB     SUB,ZERO,QERR,ZERO,BRAN
-       FDB     NUMB1-*
-NUMB2  FDB     DROP,FROMR,ZBRAN
-       FDB     NUMB3-*
-       FDB     DMINUS
-NUMB3  FDB     SEMIS
-*
-* ======>>  141  <<
-       FCB     $85
-       FCC     4,-FIND
-       FCB     $C4
-       FDB     NUMB-9
-DFIND  FDB     DOCOL,BL,WORD,HERE,CONTXT,AT,AT
-       FDB     PFIND,DUP,ZEQU,ZBRAN
-       FDB     DFIND2-*
-       FDB     DROP,HERE,LATEST,PFIND
-DFIND2 FDB     SEMIS
-*
-* ######>> screen 50 <<
-* ======>>  142  <<
-       FCB     $87
-       FCC     6,(ABORT)
-       FCB     $A9
-       FDB     DFIND-8
-PABORT FDB     DOCOL,ABORT
-       FDB     SEMIS
-*
-* ======>>  143  <<
-       FCB     $85
-       FCC     4,ERROR
-       FCB     $D2
-       FDB     PABORT-10
-ERROR  FDB     DOCOL,WARN,AT,ZLESS
-       FDB     ZBRAN
-* note: WARNING is -1 to abort, 0 to print error #
-* and 1 to print error message from disc
-       FDB     ERROR2-*
-       FDB     PABORT
-ERROR2 FDB     HERE,COUNT,TYPE,PDOTQ
-       FCB     4,7     ( bell )
-       FCC     " ? "
-       FDB     MESS,SPSTOR,IN,AT,BLK,AT,QUIT
-       FDB     SEMIS
-*
-* ======>>  144  <<
-       FCB     $83
-       FCC     2,ID.
-       FCB     $AE
-       FDB     ERROR-8
-IDDOT  FDB     DOCOL,PAD,CLITER
-       FCB     32
-       FDB     CLITER
-       FCB     $5F     ( underline )
-       FDB     FILL,DUP,PFA,LFA,OVER,SUB,PAD
-       FDB     SWAP,CMOVE,PAD,COUNT,CLITER
-       FCB     31
-       FDB     AND,TYPE,SPACE
-       FDB     SEMIS
-*
-* ######>> screen 51 <<
-* ======>>  145  <<
-       FCB     $86
-       FCC     5,CREATE
-       FCB     $C5
-       FDB     IDDOT-6
-CREATE FDB     DOCOL,DFIND,ZBRAN
-       FDB     CREAT2-*
-       FDB     DROP,PDOTQ
-       FCB     8
-       FCB     7       ( bel )
-       FCC     "redef: "
-       FDB     NFA,IDDOT,CLITER
-       FCB     4
-       FDB     MESS,SPACE
-CREAT2 FDB     HERE,DUP,CAT,WIDTH,AT,MIN
-       FDB     ONEP,ALLOT,DUP,CLITER
-       FCB     $A0
-       FDB     TOGGLE,HERE,ONE,SUB,CLITER
-       FCB     $80
-       FDB     TOGGLE,LATEST,COMMA,CURENT,AT,STORE
-       FDB     HERE,TWOP,COMMA
-       FDB     SEMIS
-*
-* ######>> screen 52 <<
-* ======>>  146  <<
-       FCB     $C9     immediate
-       FCC     8,[COMPILE]
-       FCB     $DD
-       FDB     CREATE-9
-BCOMP  FDB     DOCOL,DFIND,ZEQU,ZERO,QERR,DROP,CFA,COMMA
-       FDB     SEMIS
-*
-* ======>>  147  <<
-       FCB     $C7     immediate
-       FCC     6,LITERAL
-       FCB     $CC
-       FDB     BCOMP-12
-LITER  FDB     DOCOL,STATE,AT,ZBRAN
-       FDB     LITER2-*
-       FDB     COMPIL,LIT,COMMA
-LITER2 FDB     SEMIS
-*
-* ======>>  148  <<
-       FCB     $C8     immediate
-       FCC     7,DLITERAL
-       FCB     $CC
-       FDB     LITER-10
-DLITER FDB     DOCOL,STATE,AT,ZBRAN
-       FDB     DLITE2-*
-       FDB     SWAP,LITER,LITER
-DLITE2 FDB     SEMIS
-*
-* ######>> screen 53 <<
-* ======>>  149  <<
-       FCB     $89
-       FCC     8,INTERPRET
-       FCB     $D4
-       FDB     DLITER-11
-INTERP FDB     DOCOL
-INTER2 FDB     DFIND,ZBRAN
-       FDB     INTER5-*
-       FDB     STATE,AT,LESS
-       FDB     ZBRAN
-       FDB     INTER3-*
-       FDB     CFA,COMMA,BRAN
-       FDB     INTER4-*
-INTER3 FDB     CFA,EXEC
-INTER4 FDB     BRAN
-       FDB     INTER7-*
-INTER5 FDB     HERE,NUMB,DPL,AT,ONEP,ZBRAN
-       FDB     INTER6-*
-       FDB     DLITER,BRAN
-       FDB     INTER7-*
-INTER6 FDB     DROP,LITER
-INTER7 FDB     QSTACK,BRAN
-       FDB     INTER2-*
-*      FDB     SEMIS   never executed
-
-*
-* ######>> screen 54 <<
-* ======>>  150  <<
-       FCB     $89
-       FCC     8,IMMEDIATE
-       FCB     $C5
-       FDB     INTERP-12
-IMMED  FDB     DOCOL,LATEST,CLITER
-       FCB     $40
-       FDB     TOGGLE
-       FDB     SEMIS
-*
-* ======>>  151  <<
-       FCB     $8A
-       FCC     9,VOCABULARY
-       FCB     $D9
-       FDB     IMMED-12
-VOCAB  FDB     DOCOL,BUILDS,LIT,$81A0,COMMA,CURENT,AT,CFA
-       FDB     COMMA,HERE,VOCLIN,AT,COMMA,VOCLIN,STORE,DOES
-DOVOC  FDB     TWOP,CONTXT,STORE
-       FDB     SEMIS
-*
-* ======>>  152  <<
-*
-* Note: FORTH does not go here in the rom-able dictionary,
-*    since FORTH is a type of variable.
-*
-*
-* ======>>  153  <<
-       FCB     $8B
-       FCC     10,DEFINITIONS
-       FCB     $D3
-       FDB     VOCAB-13
-DEFIN  FDB     DOCOL,CONTXT,AT,CURENT,STORE
-       FDB     SEMIS
-*
-* ======>>  154  <<
-       FCB     $C1     immediate       (
-       FCB     $A8
-       FDB     DEFIN-14
-PAREN  FDB     DOCOL,CLITER
-       FCC     ")"
-       FDB     WORD
-       FDB     SEMIS
-*
-* ######>> screen 55 <<
-* ======>>  155  <<
-       FCB     $84
-       FCC     3,QUIT
-       FCB     $D4
-       FDB     PAREN-4
-QUIT   FDB     DOCOL,ZERO,BLK,STORE
-       FDB     LBRAK
-*
-*  Here is the outer interpretter
-*  which gets a line of input, does it, prints " OK"
-*  then repeats :
-QUIT2  FDB     RPSTOR,CR,QUERY,INTERP,STATE,AT,ZEQU
-       FDB     ZBRAN
-       FDB     QUIT3-*
-       FDB     PDOTQ
-       FCB     3
-       FCC     3, OK
-QUIT3  FDB     BRAN
-       FDB     QUIT2-*
-*      FDB     SEMIS   ( never executed )
-*
-* ======>>  156  <<
-       FCB     $85
-       FCC     4,ABORT
-       FCB     $D4
-       FDB     QUIT-7
-ABORT  FDB     DOCOL,SPSTOR,DEC,QSTACK,DRZERO,CR,PDOTQ
-       FCB     8
-       FCC     "Forth-68"
-       FDB     FORTH,DEFIN
-       FDB     QUIT
-*      FDB     SEMIS   never executed
-       PAGE
-*
-* ######>> screen 56 <<
-* bootstrap code... moves rom contents to ram :
-* ======>>  157  <<
-       FCB     $84
-       FCC     3,COLD
-       FCB     $C4
-       FDB     ABORT-8
-COLD   FDB     *+2
-CENT   LDS     #REND-1 top of destination
-       LDX     #ERAM   top of stuff to move
-COLD2  LEAX -1,X
-       LDA     0,X
-       PSHS A          move TASK & FORTH to ram
-       CMPX    #RAM
-       BNE     COLD2
-*
-       LDS     #XFENCE-1       put stack at a safe place for now
-       LDX     COLINT
-       STX     XCOLUM
-       LDX     DELINT
-       STX     XDELAY
-       LDX     VOCINT
-       STX     XVOCL
-       LDX     DPINIT
-       STX     XDP
-       LDX     FENCIN
-       STX     XFENCE
-
-
-WENT   LDS     #XFENCE-1       top of destination
-       LDX     #FENCIN         top of stuff to move
-WARM2  LEAX -1,X
-       LDA     0,X
-       PSHS A
-       CMPX    #SINIT
-       BNE     WARM2
-*
-       LDS     SINIT
-       LDX     UPINIT
-       STX     UP              init user ram pointer
-       LDX     #ABORT
-       STX     IP
-       NOP             Here is a place to jump to special user
-       NOP             initializations such as I/0 interrups
-       NOP
-*
-* For systems with TRACE:
-       LDX     #00
-       STX     TRLIM   clear trace mode
-       LDX     #0
-       STX     BRKPT   clear breakpoint address
-       JMP     RPSTOR+2 start the virtual machine running !
-*
-* Here is the stuff that gets copied to ram :
-* at address $140:
-*
-RAM    FDB     $3000,$3000,0,0
-       
-* ======>>  (152)  <<
-       FCB     $C5     immediate
-       FCC     4,FORTH
-       FCB     $C8
-       FDB     NOOP-7
-RFORTH FDB     DODOES,DOVOC,$81A0,TASK-7
-       FDB     0
-       FCC     "(C) Forth Interest Group, 1979"
-       FCB     $84
-       FCC     3,TASK
-       FCB     $CB
-       FDB     FORTH-8
-RTASK  FDB     DOCOL,SEMIS
-ERAM   FCC     "David Lion"    
-       PAGE
-*
-* ######>> screen 57 <<
-* ======>>  158  <<
-       FCB     $84
-       FCC     3,S->D
-       FCB     $C4
-       FDB     COLD-7
-STOD   FDB     DOCOL,DUP,ZLESS,MINUS
-       FDB     SEMIS
-
-
-*
-* ======>>  159  <<
-       FCB     $81     ; *
-       FCB     $AA
-       FDB     STOD-7
-STAR   FDB     *+2
-       JSR     USTARS
-       LEAS 1,S
-       LEAS 1,S
-       JMP     NEXT
-*
-* ======>>  160  <<
-       FCB     $84
-       FCC     3,/MOD
-       FCB     $C4
-       FDB     STAR-4
-SLMOD  FDB     DOCOL,TOR,STOD,FROMR,USLASH
-       FDB     SEMIS
-*
-* ======>>  161  <<
-       FCB     $81     ; /
-       FCB     $AF
-       FDB     SLMOD-7
-SLASH  FDB     DOCOL,SLMOD,SWAP,DROP
-       FDB     SEMIS
-*
-* ======>>  162  <<
-       FCB     $83
-       FCC     2,MOD
-       FCB     $C4
-       FDB     SLASH-4
-MOD    FDB     DOCOL,SLMOD,DROP
-       FDB     SEMIS
-*
-* ======>>  163  <<
-       FCB     $85
-       FCC     4,*/MOD
-       FCB     $C4
-       FDB     MOD-6
-SSMOD  FDB     DOCOL,TOR,USTAR,FROMR,USLASH
-       FDB     SEMIS
-*
-* ======>>  164  <<
-       FCB     $82
-       FCC     1,*/
-       FCB     $AF
-       FDB     SSMOD-8
-SSLASH FDB     DOCOL,SSMOD,SWAP,DROP
-       FDB     SEMIS
-*
-* ======>>  165  <<
-       FCB     $85
-       FCC     4,M/MOD
-       FCB     $C4
-       FDB     SSLASH-5
-MSMOD  FDB     DOCOL,TOR,ZERO,R,USLASH
-       FDB     FROMR,SWAP,TOR,USLASH,FROMR
-       FDB     SEMIS
-*
-* ======>>  166  <<
-       FCB     $83
-       FCC     2,ABS
-       FCB     $D3
-       FDB     MSMOD-8
-ABS    FDB     DOCOL,DUP,ZLESS,ZBRAN
-       FDB     ABS2-*
-       FDB     MINUS
-ABS2   FDB     SEMIS
-*
-* ======>>  167  <<
-       FCB     $84
-       FCC     3,DABS
-       FCB     $D3
-       FDB     ABS-6
-DABS   FDB     DOCOL,DUP,ZLESS,ZBRAN
-       FDB     DABS2-*
-       FDB     DMINUS
-DABS2  FDB     SEMIS
-*
-* ######>> screen 58 <<
-* Disc primatives :
-* ======>>  168  <<
-       FCB     $83
-       FCC     2,USE
-       FCB     $C5
-       FDB     DABS-7
-USE    FDB     DOCON
-       FDB     XUSE
-* ======>>  169  <<
-       FCB     $84
-       FCC     3,PREV
-       FCB     $D6
-       FDB     USE-6
-PREV   FDB     DOCON
-       FDB     XPREV
-* ======>>  170  <<
-       FCB     $84
-       FCC     3,+BUF
-       FCB     $C6
-       FDB     PREV-7
-PBUF   FDB     DOCOL,CLITER
-       FCB     $84
-       FDB     PLUS,DUP,LIMIT,EQUAL,ZBRAN
-       FDB     PBUF2-*
-       FDB     DROP,FIRST
-PBUF2  FDB     DUP,PREV,AT,SUB
-       FDB     SEMIS
-*
-* ======>>  171  <<
-       FCB     $86
-       FCC     5,UPDATE
-       FCB     $C5
-       FDB     PBUF-7
-UPDATE FDB     DOCOL,PREV,AT,AT,LIT,$8000,OR,PREV,AT,STORE
-       FDB     SEMIS
-*
-* ======>>  172  <<
-       FCB     $8D
-       FCC     12,EMPTY-BUFFERS
-       FCB     $D3
-       FDB     UPDATE-9
-MTBUF  FDB     DOCOL,FIRST,LIMIT,OVER,SUB,ERASE
-       FDB     SEMIS
-*
-* ======>>  173  <<
-       FCB     $83
-       FCC     2,DR0
-       FCB     $B0
-       FDB     MTBUF-16
-DRZERO FDB     DOCOL,ZERO,OFSET,STORE
-       FDB     SEMIS
-*
-* ======>>  174  <<== system dependant word
-       FCB     $83
-       FCC     2,DR1
-       FCB     $B1
-       FDB     DRZERO-6
-DRONE  FDB     DOCOL,LIT,$07D0,OFSET,STORE
-       FDB     SEMIS
-*
-* ######>> screen 59 <<
-* ======>>  175  <<
-       FCB     $86
-       FCC     5,BUFFER
-       FCB     $D2
-       FDB     DRONE-6
-BUFFER FDB     DOCOL,USE,AT,DUP,TOR
-BUFFR2 FDB     PBUF,ZBRAN
-       FDB     BUFFR2-*
-       FDB     USE,STORE,R,AT,ZLESS
-       FDB     ZBRAN
-       FDB     BUFFR3-*
-       FDB     R,TWOP,R,AT,LIT,$7FFF,AND,ZERO,RW
-BUFFR3 FDB     R,STORE,R,PREV,STORE,FROMR,TWOP
-       FDB     SEMIS
-*
-* ######>> screen 60 <<
-* ======>>  176  <<
-       FCB     $85
-       FCC     4,BLOCK
-       FCB     $CB
-       FDB     BUFFER-9
-BLOCK  FDB     DOCOL,OFSET,AT,PLUS,TOR
-       FDB     PREV,AT,DUP,AT,R,SUB,DUP,PLUS,ZBRAN
-       FDB     BLOCK5-*
-BLOCK3 FDB     PBUF,ZEQU,ZBRAN
-       FDB     BLOCK4-*
-       FDB     DROP,R,BUFFER,DUP,R,ONE,RW,TWO,SUB
-BLOCK4 FDB     DUP,AT,R,SUB,DUP,PLUS,ZEQU,ZBRAN
-       FDB     BLOCK3-*
-       FDB     DUP,PREV,STORE
-BLOCK5 FDB     FROMR,DROP,TWOP
-       FDB     SEMIS
-*
-* ######>> screen 61 <<
-* ======>>  177  <<
-       FCB     $86
-       FCC     5,(LINE)
-       FCB     $A9
-       FDB     BLOCK-8
-PLINE  FDB     DOCOL,TOR,CLITER
-       FCB     $40
-       FDB     BBUF,SSMOD,FROMR,BSCR,STAR,PLUS,BLOCK,PLUS,CLITER
-       FCB     $40
-       FDB     SEMIS
-*
-* ======>>  178  <<
-       FCB     $85
-       FCC     4,.LINE
-       FCB     $C5
-       FDB     PLINE-9
-DLINE  FDB     DOCOL,PLINE,DTRAIL,TYPE
-       FDB     SEMIS
-*
-* ======>>  179  <<
-       FCB     $87
-       FCC     6,MESSAGE
-       FCB     $C5
-       FDB     DLINE-8
-MESS   FDB     DOCOL,WARN,AT,ZBRAN
-       FDB     MESS3-*
-       FDB     DDUP,ZBRAN
-       FDB     MESS3-*
-       FDB     CLITER
-       FCB     4
-       FDB     OFSET,AT,BSCR,SLASH,SUB,DLINE,BRAN
-       FDB     MESS4-*
-MESS3  FDB     PDOTQ
-       FCB     6
-       FCC     6,err # 
-       FDB     DOT
-MESS4  FDB     SEMIS
-*
-* ======>>  180  <<
-       FCB     $84
-       FCC     3,LOAD  input:scr #
-       FCB     $C4
-       FDB     MESS-10
-LOAD   FDB     DOCOL,BLK,AT,TOR,IN,AT,TOR,ZERO,IN,STORE
-       FDB     BSCR,STAR,BLK,STORE
-       FDB     INTERP,FROMR,IN,STORE,FROMR,BLK,STORE
-       FDB     SEMIS
-*
-* ======>>  181  <<
-       FCB     $C3
-       FCC     2,-->
-       FCB     $BE
-       FDB     LOAD-7
-ARROW  FDB     DOCOL,QLOAD,ZERO,IN,STORE,BSCR
-       FDB     BLK,AT,OVER,MOD,SUB,BLK,PSTORE
-       FDB     SEMIS
-       PAGE
-*
-*
-* ######>> screen 63 <<
-*    The next 4 subroutines are machine dependent, and are
-*    called by words 13 through 16 in the dictionary.
-*
-* ======>>  182  << code for EMIT
-PEMIT  STB     N       save B
-       STX     N+1     save X
-       LDB     ACIAC
-       BITB    #2      check ready bit
-       BEQ     PEMIT+4 if not ready for more data
-       STA     ACIAD
-       LDX     UP
-       STB     IOSTAT-UORIG,X
-       LDB     N       recover B & X
-       LDX     N+1
-       RTS             only A register may change
-*  PEMIT       JMP     $E1D1   for MIKBUG
-*  PEMIT       FCB     $3F,$11,$39     for PROTO
-*  PEMIT       JMP     $D286 for Smoke Signal DOS
-*
-* ======>>  183  << code for KEY
-PKEY   STB     N
-       STX     N+1
-       LDB     ACIAC
-       ASRB
-       BCC     PKEY+4  no incoming data yet
-       LDA     ACIAD
-       ANDA    #$7F    strip parity bit
-       LDX     UP
-       STB     IOSTAT+1-UORIG,X
-       LDB     N
-       LDX     N+1
-       RTS
-*  PKEY        JMP     $E1AC   for MIKBUG
-*  PKEY        FCB     $3F,$14,$39     for PROTO
-*  PKEY        JMP     $D289 for Smoke Signal DOS
-*
-* ######>> screen 64 <<
-* ======>>  184  << code for ?TERMINAL
-PQTER  LDA     ACIAC   Test for 'break'  condition
-       ANDA    #$11    mask framing error bit and
-*                      input buffer full
-       BEQ     PQTER2
-       LDA     ACIAD   clear input buffer
-       LDA     #01
-PQTER2 RTS
-
-
-       PAGE
-*
-* ======>>  185  << code for CR
-PRTCR  LDA     #$D     carriage return ; PCR in 6800 source
-       BSR     PEMIT
-       LDA     #$A     line feed
-       BSR     PEMIT
-       LDA     #$7F    rubout
-       LDX     UP
-       LDB     XDELAY+1-UORIG,X
-PCR2   DECB
-       BMI     PQTER2  return if minus
-       PSHS B          save counter
-       BSR     PEMIT   print RUBOUTs to delay.....
-       PULS B
-       BRA     PCR2    repeat
-
-
-       PAGE
-*
-* ######>> screen 66 <<
-* ======>>  187  <<
-       FCB     $85
-       FCC     4,?DISC
-       FCB     $C3
-       FDB     ARROW-6
-QDISC  FDB     *+2
-       JMP     NEXT
-*
-* ######>> screen 67 <<
-* ======>>  189  <<
-       FCB     $8B
-       FCC     10,BLOCK-WRITE
-       FCB     $C5
-       FDB     QDISC-8
-BWRITE FDB     *+2
-       JMP     NEXT
-*
-* ######>> screen 68 <<
-* ======>>  190  <<
-       FCB     $8A
-       FCC     9,BLOCK-READ
-       FCB     $C4
-       FDB     BWRITE-14
-BREAD  FDB     *+2
-       JMP     NEXT
-*
-*The next 3 words are written to create a substitute for disc
-* mass memory,located between $3210 & $3FFF in ram.
-* ======>>  190.1  <<
-       FCB     $82
-       FCC     1,LO
-       FCB     $CF
-       FDB     BREAD-13
-LO     FDB     DOCON
-       FDB     MEMEND  a system dependent equate at front
-*
-* ======>>  190.2  <<
-       FCB     $82
-       FCC     1,HI
-       FCB     $C9
-       FDB     LO-5
-HI     FDB     DOCON
-       FDB     MEMTOP  ( $3FFF in this version )
-*
-* ######>> screen 69 <<
-* ======>>  191  <<
-       FCB     $83
-       FCC     2,R/W
-       FCB     $D7
-       FDB     HI-5
-RW     FDB     DOCOL,TOR,BBUF,STAR,LO,PLUS,DUP,HI,GREAT,ZBRAN
-       FDB     RW2-*
-       FDB     PDOTQ
-       FCB     8
-       FCC     8, Range ?
-       FDB     QUIT
-RW2    FDB     FROMR,ZBRAN
-       FDB     RW3-*
-       FDB     SWAP
-RW3    FDB     BBUF,CMOVE
-       FDB     SEMIS
-*
-* ######>> screen 72 <<
-* ======>>  192  <<
-       FCB     $C1     immediate
-       FCB     $A7     '       ( tick )
-       FDB     RW-6
-TICK   FDB     DOCOL,DFIND,ZEQU,ZERO,QERR,DROP,LITER
-       FDB     SEMIS
-*
-* ======>>  193  <<
-       FCB     $86
-       FCC     5,FORGET
-       FCB     $D4
-       FDB     TICK-4
-FORGET FDB     DOCOL,CURENT,AT,CONTXT,AT,SUB,CLITER
-       FCB     $18
-       FDB     QERR,TICK,DUP,FENCE,AT,LESS,CLITER
-       FCB     $15
-       FDB     QERR,DUP,ZERO,PORIG,GREAT,CLITER
-       FCB     $15
-       FDB     QERR,DUP,NFA,DICPT,STORE,LFA,AT,CONTXT,AT,STORE
-       FDB     SEMIS
-*
-* ######>> screen 73 <<
-* ======>>  194  <<
-       FCB     $84
-       FCC     3,BACK
-       FCB     $CB
-       FDB     FORGET-9
-BACK   FDB     DOCOL,HERE,SUB,COMMA
-       FDB     SEMIS
-*
-* ======>>  195  <<
-       FCB     $C5
-       FCC     4,BEGIN
-       FCB     $CE
-       FDB     BACK-7
-BEGIN  FDB     DOCOL,QCOMP,HERE,ONE
-       FDB     SEMIS
-*
-* ======>>  196  <<
-       FCB     $C5
-       FCC     4,ENDIF
-       FCB     $C6
-       FDB     BEGIN-8
-ENDIF  FDB     DOCOL,QCOMP,TWO,QPAIRS,HERE
-       FDB     OVER,SUB,SWAP,STORE
-       FDB     SEMIS
-*
-* ======>>  197  <<
-       FCB     $C4
-       FCC     3,THEN
-       FCB     $CE
-       FDB     ENDIF-8
-THEN   FDB     DOCOL,ENDIF
-       FDB     SEMIS
-*
-* ======>>  198  <<
-       FCB     $C2
-       FCC     1,DO
-       FCB     $CF
-       FDB     THEN-7
-DO     FDB     DOCOL,COMPIL,XDO,HERE,THREE
-       FDB     SEMIS
-*
-* ======>>  199  <<
-       FCB     $C4
-       FCC     3,LOOP
-       FCB     $D0
-       FDB     DO-5
-LOOP   FDB     DOCOL,THREE,QPAIRS,COMPIL,XLOOP,BACK
-       FDB     SEMIS
-*
-* ======>>  200  <<
-       FCB     $C5
-       FCC     4,+LOOP
-       FCB     $D0
-       FDB     LOOP-7
-PLOOP  FDB     DOCOL,THREE,QPAIRS,COMPIL,XPLOOP,BACK
-       FDB     SEMIS
-*
-* ======>>  201  <<
-       FCB     $C5
-       FCC     4,UNTIL ( same as END )
-       FCB     $CC
-       FDB     PLOOP-8
-UNTIL  FDB     DOCOL,ONE,QPAIRS,COMPIL,ZBRAN,BACK
-       FDB     SEMIS
-*
-* ######>> screen 74 <<
-* ======>>  202  <<
-       FCB     $C3
-       FCC     2,END
-       FCB     $C4
-       FDB     UNTIL-8
-END    FDB     DOCOL,UNTIL
-       FDB     SEMIS
-*
-* ======>>  203  <<
-       FCB     $C5
-       FCC     4,AGAIN
-       FCB     $CE
-       FDB     END-6
-AGAIN  FDB     DOCOL,ONE,QPAIRS,COMPIL,BRAN,BACK
-       FDB     SEMIS
-*
-* ======>>  204  <<
-       FCB     $C6
-       FCC     5,REPEAT
-       FCB     $D4
-       FDB     AGAIN-8
-REPEAT FDB     DOCOL,TOR,TOR,AGAIN,FROMR,FROMR
-       FDB     TWO,SUB,ENDIF
-       FDB     SEMIS
-*
-* ======>>  205  <<
-       FCB     $C2
-       FCC     1,IF
-       FCB     $C6
-       FDB     REPEAT-9
-IF     FDB     DOCOL,COMPIL,ZBRAN,HERE,ZERO,COMMA,TWO
-       FDB     SEMIS
-*
-* ======>>  206  <<
-       FCB     $C4
-       FCC     3,ELSE
-       FCB     $C5
-       FDB     IF-5
-ELSE   FDB     DOCOL,TWO,QPAIRS,COMPIL,BRAN,HERE
-       FDB     ZERO,COMMA,SWAP,TWO,ENDIF,TWO
-       FDB     SEMIS
-*
-* ======>>  207  <<
-       FCB     $C5
-       FCC     4,WHILE
-       FCB     $C5
-       FDB     ELSE-7
-WHILE  FDB     DOCOL,IF,TWOP
-       FDB     SEMIS
-*
-* ######>> screen 75 <<
-* ======>>  208  <<
-       FCB     $86
-       FCC     5,SPACES
-       FCB     $D3
-       FDB     WHILE-8
-SPACES FDB     DOCOL,ZERO,MAX,DDUP,ZBRAN
-       FDB     SPACE3-*
-       FDB     ZERO,XDO
-SPACE2 FDB     SPACE,XLOOP
-       FDB     SPACE2-*
-SPACE3 FDB     SEMIS
-*
-* ======>>  209  <<
-       FCB     $82
-       FCC     1,<#
-       FCB     $A3
-       FDB     SPACES-9
-BDIGS  FDB     DOCOL,PAD,HLD,STORE
-       FDB     SEMIS
-*
-* ======>>  210  <<
-       FCB     $82
-       FCC     1,#>
-       FCB     $BE
-       FDB     BDIGS-5
-EDIGS  FDB     DOCOL,DROP,DROP,HLD,AT,PAD,OVER,SUB
-       FDB     SEMIS
-*
-* ======>>  211  <<
-       FCB     $84
-       FCC     3,SIGN
-       FCB     $CE
-       FDB     EDIGS-5
-SIGN   FDB     DOCOL,ROT,ZLESS,ZBRAN
-       FDB     SIGN2-*
-       FDB     CLITER
-       FCC     "-"     
-       FDB     HOLD
-SIGN2  FDB     SEMIS
-*
-* ======>>  212  <<
-       FCB     $81     #
-       FCB     $A3
-       FDB     SIGN-7
-DIG    FDB     DOCOL,BASE,AT,MSMOD,ROT,CLITER
-       FCB     9
-       FDB     OVER,LESS,ZBRAN
-       FDB     DIG2-*
-       FDB     CLITER
-       FCB     7
-       FDB     PLUS
-DIG2   FDB     CLITER
-       FCC     "0"     ascii zero
-       FDB     PLUS,HOLD
-       FDB     SEMIS
-*
-* ======>>  213  <<
-       FCB     $82
-       FCC     1,#S
-       FCB     $D3
-       FDB     DIG-4
-DIGS   FDB     DOCOL
-DIGS2  FDB     DIG,OVER,OVER,OR,ZEQU,ZBRAN
-       FDB     DIGS2-*
-       FDB     SEMIS
-*
-* ######>> screen 76 <<
-* ======>>  214  <<
-       FCB     $82
-       FCC     1,.R
-       FCB     $D2
-       FDB     DIGS-5
-DOTR   FDB     DOCOL,TOR,STOD,FROMR,DDOTR
-       FDB     SEMIS
-*
-* ======>>  215  <<
-       FCB     $83
-       FCC     2,D.R
-       FCB     $D2
-       FDB     DOTR-5
-DDOTR  FDB     DOCOL,TOR,SWAP,OVER,DABS,BDIGS,DIGS,SIGN
-       FDB     EDIGS,FROMR,OVER,SUB,SPACES,TYPE
-       FDB     SEMIS
-*
-* ======>>  216  <<
-       FCB     $82
-       FCC     1,D.
-       FCB     $AE
-       FDB     DDOTR-6
-DDOT   FDB     DOCOL,ZERO,DDOTR,SPACE
-       FDB     SEMIS
-*
-* ======>>  217  <<
-       FCB     $81     .
-       FCB     $AE
-       FDB     DDOT-5
-DOT    FDB     DOCOL,STOD,DDOT
-       FDB     SEMIS
-*
-* ======>>  218  <<
-       FCB     $81     ?
-       FCB     $BF
-       FDB     DOT-4
-QUEST  FDB     DOCOL,AT,DOT
-       FDB     SEMIS
-*
-* ######>> screen 77 <<
-* ======>>  219  <<
-       FCB     $84
-       FCC     3,LIST
-       FCB     $D4
-       FDB     QUEST-4
-LIST   FDB     DOCOL,DEC,CR,DUP,SCR,STORE,PDOTQ
-       FCB     6
-       FCC     "SCR # "
-       FDB     DOT,CLITER
-       FCB     $10
-       FDB     ZERO,XDO
-LIST2  FDB     CR,I,THREE
-       FDB     DOTR,SPACE,I,SCR,AT,DLINE,XLOOP
-       FDB     LIST2-*
-       FDB     CR
-       FDB     SEMIS
-*
-* ======>>  220  <<
-       FCB     $85
-       FCC     4,INDEX
-       FCB     $D8
-       FDB     LIST-7
-INDEX  FDB     DOCOL,CR,ONEP,SWAP,XDO
-INDEX2 FDB     CR,I,THREE
-       FDB     DOTR,SPACE,ZERO,I,DLINE
-       FDB     QTERM,ZBRAN
-       FDB     INDEX3-*
-       FDB     LEAVE
-INDEX3 FDB     XLOOP
-       FDB     INDEX2-*
-       FDB     SEMIS
-*
-* ======>>  221  <<
-       FCB     $85
-       FCC     4,TRIAD
-       FCB     $C4
-       FDB     INDEX-8
-TRIAD  FDB     DOCOL,THREE,SLASH,THREE,STAR
-       FDB     THREE,OVER,PLUS,SWAP,XDO
-TRIAD2 FDB     CR,I
-       FDB     LIST,QTERM,ZBRAN
-       FDB     TRIAD3-*
-       FDB     LEAVE
-TRIAD3 FDB     XLOOP
-       FDB     TRIAD2-*
-       FDB     CR,CLITER
-       FCB     $0F
-       FDB     MESS,CR
-       FDB     SEMIS
-*
-* ######>> screen 78 <<
-* ======>>  222  <<
-       FCB     $85
-       FCC     4,VLIST
-       FCB     $D4
-       FDB     TRIAD-8
-VLIST  FDB     DOCOL,CLITER
-       FCB     $80
-       FDB     OUT,STORE,CONTXT,AT,AT
-VLIST1 FDB     OUT,AT,COLUMS,AT,CLITER
-       FCB     32
-       FDB     SUB,GREAT,ZBRAN
-       FDB     VLIST2-*
-       FDB     CR,ZERO,OUT,STORE
-VLIST2 FDB     DUP,IDDOT,SPACE,SPACE,PFA,LFA,AT
-       FDB     DUP,ZEQU,QTERM,OR,ZBRAN
-       FDB     VLIST1-*
-       FDB     DROP
-       FDB     SEMIS
-*
-* ======>>  XX  <<
-       FCB     $84
-       FCC     3,NOOP
-       FCB     $D0
-       FDB     VLIST-8
-NOOP   FDB     NEXT    a useful no-op
-ZZZZ   FDB     0,0,0,0,0,0,0,0 end of rom program
-
-
-
-
-
-
-
-       PAGE
-       OPT     L
-       END