fig-FORTH 6502

ASSEMBLY SOURCE LISTING



RELEASE 1.1

WITH COMPILER SECURITY

AND

VARIABLE LENGTH NAMES

September 1980
This public domain publication is provided through the courtesy of Forth Interest Group, P.O. Box 1105, San Carlos, CA 94070.
Further distribution must include this notice.
FORTH INTEREST GROUP ..... P.O. Box 1105 ..... San Carlos, Ca. 94070
fig-FORTH for 6502, Rel 1.1   ......PAGE 0001

LINE # LOC     CODE       LINE

0002  0000            ;
0003  0000            ;       Through the courtesy of
0004  0000            ;
0005  0000            ;        FORTH INTEREST GROUP
0006  0000            ;           P. O. Box 1105
0007  0000            ;      San Carlos, CA 94070
0008  0000            ;
0009  0000            ;             Release 1.1
0010  0000            ;       With compiler security
0011  0000            ;               and
0012  0000            ;       variable length names
0013  0000            ;
0014  0000            ; Further distribution must include the above notice
0015  0000            ; The FIG Installation Manual is required as it
0016  0000            ; contains the model of FORTH and glossary of the system.
0017  0000            ; Available from FIG at the above address for $10.00 postpai
0018  0000            ;
0019  0000            ; Translated from the FIG Model by W. F. Ragsdale
0020  0000            ; with input-output given for the Rockewell System-65.
0021  0000            ; Transportation to other systems only requires
0022  0000            ; alteration of: XEMIT, XKEY, XQTER, XCR, and RSLW.
0023  0000            ;

fig-FORTH for 6502, Rel 1.1   ......PAGE 0002

LINE # LOC     CODE       LINE

0025  0000            ;
0026  0000            ;   Equates giving memory assigments, machine
0027  0000            ;   registers, and disk parameters.
0028  0000            ;
0029  0000            ;
0030  0000            SSIZE  =128   sector size in bytes
0031  0000            NBUF   =8              ; number of buffers desired in ram
0032  0000            ;                    (SSIZE*NBUF >= 1024 bytes)
0033  0000            SECTR  =800    sectors per drive
0034  0000            ;                        forcing hi drive to Screen #100
0035  0000            SECTL  =1600     sector limit for 2 drives
0036  0000            ;                of 800 sectors per drive
0037  0000            BMAG   =1056    total buffer magnitude, in bytes
0038  0000            ;                    expressed by SSIZE+4*NBUF
0039  0000            ;
0040  0000            BOS    =$20        bottom of data stack, in z-page.
0041  0000            TOS    =$9E        top of data stack, in z-page.
0042  0000            N      =TOS+8      xXxxxxxxx    scratch workspace
0043  0000            IP     =N+8         Xx          interpretive pointer
0044  0000            W      =IP+3       xXx          code field pointer
0045  0000            UP     =W+2         Xx          user area pointer
0046  0000            XSAVE  =UP+2        X           temporary for X register
0047  0000            ;
0048  0000            TIBX   =$0100      terminal input buffer of 84 bytes.
0049  0000            ORIG   =$0200      origin of FORTH's dictionary.
0050  0000            MEM    =$4000      top of assigned memory+1 byte.
0051  0000            UAREA  =MEM-128    128 bytes of user area
0052  0000            DAREA  =UAREA-BMAG disk buffer area
0053  0000            ;
0054  0000            ;      Monitor calls for terminal support
0055  0000            ;
0056  0000            OUTCH  =$D2C1      ; output one ASCII character to termina
0057  0000            INCH   =$D1DC      ; input one ASCII character from termina
0058  0000            TCR    =$D0F1     ; terminal return and line feed
0059  0000            ;
0060  0000            ;
0061  0000            ;   From DAREA downward to the top of the dictionary is free
0062  0000            ;   space where the user's applications are compiled.
0063  0000            ;

fig-FORTH for 6502, Rel 1.1   ......PAGE 0003

LINE # LOC     CODE       LINE

0065  0000            ;
0066  0000            ;     Boot up parameters. This area provide jump vectors
0067  0000            ;     to bootup code, and parameters describing the system
0068  0000            ;
0069  0000                   *=ORIG
0070  0200  EA        ENTER  NOP               User cold entry point
0071  0201  4C 47 12         JMP COLD+2          vector to COLD entry
0072  0204  EA        REENTR NOP             ; User warm entry point
0073  0205  4C 57 12         JMP WARM            vector to WARM entry
0074  0208  04 00            .WORD $0004       6502 encoded in radix-36
0075  020A  D2 5E            .WORD $5ED2
0076  020C  64 1A            .WORD NTOP       Name address of MON
0077  020E  7F 00            .WORD $7F         Backspace character
0078  0210  80 3F            .WORD UAREA      Initial user area
0079  0212  9E 00            .WORD TOS         Initial top of stack
0080  0214  FF 01            .WORD $1FF        Initial top of return stack
0081  0216  00 01            .WORD TIBX        Initial terminal input buffer
0082  0218  1F 00            .WORD 31          Initial name field width
0083  021A  00 00            .WORD 0           0=no disk 1=disk
0084  021C  74 1A            .WORD TOP         Initial fence address
0085  021E  74 1A            .WORD TOP         Initial top of dictionary
0086  0220  BE 11            .WORD VL0         Initial vocabulary link pointer
0087  0222            ;
0088  0222            ;     The following offset adjusts all code fields
0089  0222            ;     to avoid an address ending $xxFF.  This must
0090  0222            ;     be checked and altered on any alteration, for
0091  0222            ;     the indirect jump at W-1 to operate!!!
0092  0222            ;
0093  0222            ;
0094  0222                   *=*+2
0095  0224            ;

fig-FORTH for 6502, Rel 1.1   ......PAGE 0004

LINE # LOC     CODE       LINE

0097  0224            ;
0098  0224            ;                             LIT
0099  0224            ;
0100  0224            ;                             SCREEN 13 LINE 1
0101  0224            ;
0102  0224  83        L22    .BYTE $83,'LI',$D4    <--- name field
0102  0225  4C 49
0102  0227  D4
0103  0228                   ;  <--- link field
0104  0228  00 00            .WORD 00            Last link is marked by zero
0105  022A  2C 02     LIT    .WORD *+2   <--- code address field
0106  022C  B1 AE            LDA (IP),Y   <--- start of parameter field
0107  022E  48               PHA
0108  022F  E6 AE            INC IP
0109  0231  D0 02            BNE L30
0110  0233  E6 AF            INC IP+1
0111  0235  B1 AE     L30    LDA (IP),Y
0112  0237  E6 AE     L31    INC IP
0113  0239  D0 02            BNE PUSH
0114  023B  E6 AF            INC IP+1
0115  023D            ;
0116  023D  CA        PUSH   DEX
0117  023E  CA               DEX
0118  023F            ;
0119  023F  95 01     PUT    STA 1,X
0120  0241  68               PLA
0121  0242  95 00            STA 0,X
0122  0244            ;
0123  0244            ;     NEXT is the address interpreter that moves from
0124  0244            ;     machine level word to word.
0125  0244            ;
0126  0244  A0 01     NEXT   LDY #1
0127  0246  B1 AE            LDA (IP),Y    Fetch code field address pointed
0128  0248  85 B2            STA W+1       to by IP
0129  024A  88               DEY
0130  024B  B1 AE            LDA (IP),Y
0131  024D  85 B1            STA W
0132  024F  20 6F 02         JSR TRACE   Remove this when all is well
0133  0252  18               CLC           Increment IP by two
0134  0253  A5 AE            LDA IP
0135  0255  69 02            ADC #2
0136  0257  85 AE            STA IP
0137  0259  90 02            BCC L54
0138  025B  E6 AF            INC IP+1
0139  025D  4C B0 00  L54    JMP W-1     Jump to an indirect jump (W)
0140  0260            ;               which vectors to code pointed by a code fiel
0141  0260            ;
0142  0260            ;    CLIT pushes next inline byte to data stack
0143  0260            ;
0144  0260  84        L35    .BYTE $84,'CLI',$D4
0144  0261  43 4C 49
0144  0264  D4
0145  0265  24 02            .WORD L22      LINK TO LIT
0146  0267  69 02     CLIT   .WORD *+2
0147  0269  B1 AE            LDA (IP),Y

fig-FORTH for 6502, Rel 1.1   ......PAGE 0005

LINE # LOC     CODE       LINE

0148  026B  48               PHA
0149  026C  98               TYA
0150  026D  F0 C8            BEQ L31     a forced branch into LIT
0151  026F            ;
0152  026F            ;     This is a temporary trace routine, to be used
0153  026F            ;     until FORTH is generally operating.  Then NOP
0154  026F            ;     the terminal query "JSR ONEKEY".  This will allow
0155  026F            ;     user input to the text interpreter.  When crashes
0156  026F            ;     occur, the display shows IP,  W, and the word
0157  026F            ;     locations of offending code.  When all is well,
0158  026F            ;     remove:  TRACE,  TCOLON,  PRNAM,  DECNP and the
0159  026F            ;              following monitor/register equates.
0160  026F            ;
0161  026F            ;
0162  026F            ;   Monitor routines needed to trace
0163  026F            ;
0164  026F            XBLANK =$D0AF    Print one blank
0165  026F            CRLF   =$D0D2    Print a carriage return and line feed
0166  026F            HEX2   =$D2CE    Print accum as two hex numbers
0167  026F            LETTER =$D2C1    Print accumulator as one ASCII character
0168  026F            ONEKEY =$D1DC    Wait for keystroke, into accum.
0169  026F            XW     =$12      Scratch register to next code field address
0170  026F            NP     =$14    Another scratch register pointing to name
0171  026F            ;
0172  026F  86 B5     TRACE  STX XSAVE
0173  0271  20 D2 D0         JSR CRLF
0174  0274  A5 AF            LDA IP+1
0175  0276  20 CE D2         JSR HEX2
0176  0279  A5 AE            LDA IP
0177  027B  20 CE D2         JSR HEX2   Print IP, the interpretive pointer
0178  027E  20 AF D0         JSR XBLANK
0179  0281            ;
0180  0281  A0 00            LDY #0
0181  0283  B1 AE            LDA (IP),Y
0182  0285  85 12            STA XW
0183  0287  85 14            STA NP    Fetch the next code field pointer
0184  0289  C8               INY
0185  028A  B1 AE            LDA (IP),Y
0186  028C  85 13            STA XW+1
0187  028E  85 15            STA NP+1
0188  0290  20 D9 02         JSR PRNAM  Print dictionary name
0189  0293            ;
0190  0293  A5 13            LDA XW+1
0191  0295  20 CE D2         JSR HEX2   Print code field address
0192  0298  A5 12            LDA XW
0193  029A  20 CE D2         JSR HEX2
0194  029D  20 AF D0         JSR XBLANK
0195  02A0            ;
0196  02A0  A5 B5            LDA XSAVE     Print stack location in z-page
0197  02A2  20 CE D2         JSR HEX2
0198  02A5  20 AF D0         JSR XBLANK
0199  02A8            ;
0200  02A8  A9 01            LDA #1        Print return stack bottom in Page 1
0201  02AA  20 CE D2         JSR HEX2
0202  02AD  BA               TSX

fig-FORTH for 6502, Rel 1.1   ......PAGE 0006

LINE # LOC     CODE       LINE

0203  02AE  E8               INX
0204  02AF  8A               TXA
0205  02B0  20 CE D2         JSR HEX2
0206  02B3  20 AF D0         JSR XBLANK
0207  02B6            ;
0208  02B6  20 DC D1         JSR ONEKEY    Wait for operator keystroke
0209  02B9  A6 B5            LDX XSAVE       just to pinpoint early problems.
0210  02BB  A0 00            LDY #0
0211  02BD  60               RTS
0212  02BE            ;
0213  02BE            ;    TCOLON is called from DOCOLON to label each
0214  02BE            ;    point where FORTH 'nests' one level.
0215  02BE            ;
0216  02BE  86 B5     TCOLON STX XSAVE
0217  02C0  A5 B1            LDA W
0218  02C2  85 14            STA NP    Locate the name of the called
0219  02C4  A5 B2            LDA W+1
0220  02C6  85 15            STA NP+1
0221  02C8  20 D2 D0         JSR CRLF
0222  02CB  A9 3A            LDA #':
0223  02CD  20 C1 D2         JSR LETTER
0224  02D0  20 AF D0         JSR XBLANK
0225  02D3  20 D9 02         JSR PRNAM
0226  02D6  A6 B5            LDX XSAVE
0227  02D8  60               RTS
0228  02D9            ;
0229  02D9            ;     Print name by its code field address in NP
0230  02D9            ;
0231  02D9  20 FB 02  PRNAM  JSR DECNP
0232  02DC  20 FB 02         JSR DECNP
0233  02DF  20 FB 02         JSR DECNP
0234  02E2  A0 00            LDY #0
0235  02E4  20 FB 02  PN1    JSR DECNP
0236  02E7  B1 14            LDA (NP),Y    loop till D7 in name set
0237  02E9  10 F9            BPL PN1
0238  02EB  C8        PN2    INY
0239  02EC  B1 14            LDA (NP),Y
0240  02EE  20 C1 D2         JSR LETTER    print letters of name field
0241  02F1  B1 14            LDA (NP),Y
0242  02F3  10 F6            BPL PN2
0243  02F5  20 AF D0         JSR XBLANK
0244  02F8  A0 00            LDY #0
0245  02FA  60               RTS
0246  02FB            ;
0247  02FB            ;     Decrement name field pointer
0248  02FB            ;
0249  02FB  A5 14     DECNP  LDA NP
0250  02FD  D0 02            BNE DECNP1
0251  02FF  C6 15            DEC NP+1
0252  0301  C6 14     DECNP1 DEC NP
0253  0303  60               RTS
0254  0304            ;
0255  0304            ;
0256  0304  0A        SETUP  ASL A
0257  0305  85 A5            STA N-1

fig-FORTH for 6502, Rel 1.1   ......PAGE 0007

LINE # LOC     CODE       LINE

0258  0307  B5 00     L63    LDA 0,X
0259  0309  99 A6 00         STA N,Y
0260  030C  E8               INX
0261  030D  C8               INY
0262  030E  C4 A5            CPY N-1
0263  0310  D0 F5            BNE L63
0264  0312  A0 00            LDY #0
0265  0314  60               RTS
0266  0315            ;
0267  0315            ;                             EXECUTE
0268  0315            ;                             SCREEN 14 LINE 11
0269  0315            ;
0270  0315  87        L75    .BYTE $87,'EXECUT',$C5
0270  0316  45 58
0270  0318  45 43 55
0270  031B  54
0270  031C  C5
0271  031D  60 02            .WORD L35           ;  LINK TO CLIT
0272  031F  21 03     EXEC   .WORD *+2
0273  0321  B5 00            LDA 0,X
0274  0323  85 B1            STA W
0275  0325  B5 01            LDA 1,X
0276  0327  85 B2            STA W+1
0277  0329  E8               INX
0278  032A  E8               INX
0279  032B  4C B0 00         JMP W-1         To JMP (W) in z-page
0280  032E            ;
0281  032E            ;                             BRANCH
0282  032E            ;                             SCREEN 15 LINE 1
0283  032E            ;
0284  032E  86        L89    .BYTE $86,'BRANC',$C8
0284  032F  42 52
0284  0331  41 4E 43
0284  0334  C8
0285  0335  15 03            .WORD L75           ;  LINK TO EXECUTE
0286  0337  39 03     BRAN   .WORD *+2
0287  0339  18               CLC
0288  033A  B1 AE            LDA (IP),Y
0289  033C  65 AE            ADC IP
0290  033E  48               PHA
0291  033F  C8               INY
0292  0340  B1 AE            LDA (IP),Y
0293  0342  65 AF            ADC IP+1
0294  0344  85 AF            STA IP+1
0295  0346  68               PLA
0296  0347  85 AE            STA IP
0297  0349  4C 46 02         JMP NEXT+2
0298  034C            ;
0299  034C            ;                             0BRANCH
0300  034C            ;                             SCREEN 15 LINE 6
0301  034C            ;
0302  034C  87        L107   .BYTE $87,'0BRANC',$C8
0302  034D  30 42
0302  034F  52 41 4E
0302  0352  43
0302  0353  C8
0303  0354  2E 03            .WORD L89           ;  LINK TO BRANCH
0304  0356  58 03     ZBRAN  .WORD *+2
0305  0358  E8               INX
0306  0359  E8               INX

fig-FORTH for 6502, Rel 1.1   ......PAGE 0008

LINE # LOC     CODE       LINE

0307  035A  B5 FE            LDA $FE,X
0308  035C  15 FF            ORA $FF,X
0309  035E  F0 D9            BEQ BRAN+2
0310  0360            ;
0311  0360  18        BUMP   CLC
0312  0361  A5 AE            LDA IP
0313  0363  69 02            ADC #2
0314  0365  85 AE            STA IP
0315  0367  90 02            BCC L122
0316  0369  E6 AF            INC IP+1
0317  036B  4C 44 02  L122   JMP NEXT
0318  036E            ;
0319  036E            ;                             (LOOP)
0320  036E            ;                             SCREEN 16 LINE 1
0321  036E            ;
0322  036E  86        L127   .BYTE $86,'(LOOP',$A9
0322  036F  28 4C
0322  0371  4F 4F 50
0322  0374  A9
0323  0375  4C 03            .WORD L107          ;  LINK TO 0BRANCH
0324  0377  79 03     PLOOP  .WORD L130
0325  0379  86 B5     L130   STX XSAVE
0326  037B  BA               TSX
0327  037C  FE 01 01         INC $101,X
0328  037F  D0 03            BNE PL1
0329  0381  FE 02 01         INC $102,X
0330  0384            ;
0331  0384  18        PL1    CLC
0332  0385  BD 03 01         LDA $103,X
0333  0388  FD 01 01         SBC $101,X
0334  038B  BD 04 01         LDA $104,X
0335  038E  FD 02 01         SBC $102,X
0336  0391            ;
0337  0391  A6 B5     PL2    LDX XSAVE
0338  0393  0A               ASL A
0339  0394  90 A3            BCC BRAN+2
0340  0396  68               PLA
0341  0397  68               PLA
0342  0398  68               PLA
0343  0399  68               PLA
0344  039A  4C 60 03         JMP BUMP
0345  039D            ;
0346  039D            ;                             (+LOOP)
0347  039D            ;                             SCREEN 16 LINE 8
0348  039D            ;
0349  039D  87        L154   .BYTE $87,'(+LOOP',$A9
0349  039E  28 2B
0349  03A0  4C 4F 4F
0349  03A3  50
0349  03A4  A9
0350  03A5  6E 03            .WORD L127 LINK TO (LOOP)
0351  03A7  A9 03     PPLOO  .WORD *+2
0352  03A9  E8               INX
0353  03AA  E8               INX
0354  03AB  86 B5            STX XSAVE
0355  03AD  B5 FF            LDA $FF,X
0356  03AF  48               PHA
0357  03B0  48               PHA

fig-FORTH for 6502, Rel 1.1   ......PAGE 0009

LINE # LOC     CODE       LINE

0358  03B1  B5 FE            LDA $FE,X
0359  03B3  BA               TSX
0360  03B4  E8               INX
0361  03B5  E8               INX
0362  03B6  18               CLC
0363  03B7  7D 01 01         ADC $101,X
0364  03BA  9D 01 01         STA $101,X
0365  03BD  68               PLA
0366  03BE  7D 02 01         ADC $102,X
0367  03C1  9D 02 01         STA $102,X
0368  03C4  68               PLA
0369  03C5  10 BD            BPL PL1
0370  03C7  18               CLC
0371  03C8  BD 01 01         LDA $101,X
0372  03CB  FD 03 01         SBC $103,X
0373  03CE  BD 02 01         LDA $102,X
0374  03D1  FD 04 01         SBC $104,X
0375  03D4  4C 91 03         JMP PL2
0376  03D7            ;
0377  03D7            ;                             (DO)
0378  03D7            ;                             SCREEN 17 LINE 2
0379  03D7            ;
0380  03D7  84        L185   .BYTE $84,'(DO',$A9
0380  03D8  28 44 4F
0380  03DB  A9
0381  03DC  9D 03            .WORD L154          ;  LINK TO (+LOOP)
0382  03DE  E0 03     PDO    .WORD *+2
0383  03E0  B5 03            LDA 3,X
0384  03E2  48               PHA
0385  03E3  B5 02            LDA 2,X
0386  03E5  48               PHA
0387  03E6  B5 01            LDA 1,X
0388  03E8  48               PHA
0389  03E9  B5 00            LDA 0,X
0390  03EB  48               PHA
0391  03EC            ;
0392  03EC  E8        POPTWO INX
0393  03ED  E8               INX
0394  03EE            ;
0395  03EE  E8        POP    INX
0396  03EF  E8               INX
0397  03F0  4C 44 02         JMP NEXT
0398  03F3            ;
0399  03F3            ;                             I
0400  03F3            ;                             SCREEN 17 LINE 9
0401  03F3            ;
0402  03F3  81        L207   .BYTE $81,$C9
0402  03F4  C9
0403  03F5  D7 03            .WORD L185          ;  LINK TO (DO)
0404  03F7  5F 06     I      .WORD R+2           Share the code for R
0405  03F9            ;
0406  03F9            ;                             DIGIT
0407  03F9            ;                             SCREEN 18 LINE 1
0408  03F9            ;
0409  03F9  85        L214   .BYTE $85,'DIGI',$D4

fig-FORTH for 6502, Rel 1.1   ......PAGE 0010

LINE # LOC     CODE       LINE

0409  03FA  44 49
0409  03FC  47 49
0409  03FE  D4
0410  03FF  F3 03            .WORD L207          ;  LINK TO I
0411  0401  03 04     DIGIT  .WORD *+2
0412  0403  38               SEC
0413  0404  B5 02            LDA 2,X
0414  0406  E9 30            SBC #$30
0415  0408  30 18            BMI L234
0416  040A  C9 0A            CMP #$A
0417  040C  30 07            BMI L227
0418  040E  38               SEC
0419  040F  E9 07            SBC #7
0420  0411  C9 0A            CMP #$A
0421  0413  30 0D            BMI L234
0422  0415  D5 00     L227   CMP 0,X
0423  0417  10 09            BPL L234
0424  0419  95 02            STA 2,X
0425  041B  A9 01            LDA #1
0426  041D  48               PHA
0427  041E  98               TYA
0428  041F  4C 3F 02         JMP PUT ; exit true with converted value
0429  0422  98        L234   TYA
0430  0423  48               PHA
0431  0424  E8               INX
0432  0425  E8               INX
0433  0426  4C 3F 02         JMP PUT ; exit false for bad conversion
0434  0429            ;
0435  0429            ;                             (FIND)
0436  0429            ;                             SCREEN 19 LINE 1
0437  0429            ;
0438  0429  86        L243   .BYTE $86,'(FIND',$A9
0438  042A  28 46
0438  042C  49 4E 44
0438  042F  A9
0439  0430  F9 03            .WORD L214          ;  LINK TO DIGIT
0440  0432  34 04     PFIND  .WORD *+2
0441  0434  A9 02            LDA #2
0442  0436  20 04 03         JSR SETUP
0443  0439  86 B5            STX XSAVE
0444  043B  A0 00     L249   LDY #0
0445  043D  B1 A6            LDA (N),Y
0446  043F  51 A8            EOR (N+2),Y
0447  0441  29 3F            AND #$3F
0448  0443  D0 2D            BNE L281
0449  0445  C8        L254   INY
0450  0446  B1 A6            LDA (N),Y
0451  0448  51 A8            EOR (N+2),Y
0452  044A  0A               ASL A
0453  044B  D0 23            BNE L280
0454  044D  90 F6            BCC L254
0455  044F  A6 B5            LDX XSAVE
0456  0451  CA               DEX
0457  0452  CA               DEX
0458  0453  CA               DEX
0459  0454  CA               DEX
0460  0455  18               CLC

fig-FORTH for 6502, Rel 1.1   ......PAGE 0011

LINE # LOC     CODE       LINE

0461  0456  98               TYA
0462  0457  69 05            ADC #5
0463  0459  65 A6            ADC N
0464  045B  95 02            STA 2,X
0465  045D  A0 00            LDY #0
0466  045F  98               TYA
0467  0460  65 A7            ADC N+1
0468  0462  95 03            STA 3,X
0469  0464  94 01            STY 1,X
0470  0466  B1 A6            LDA (N),Y
0471  0468  95 00            STA 0,X
0472  046A  A9 01            LDA #1
0473  046C  48               PHA
0474  046D  4C 3D 02         JMP PUSH
0475  0470  B0 05     L280   BCS L284
0476  0472  C8        L281   INY
0477  0473  B1 A6            LDA (N),Y
0478  0475  10 FB            BPL L281
0479  0477  C8        L284   INY
0480  0478  B1 A6            LDA (N),Y
0481  047A  AA               TAX
0482  047B  C8               INY
0483  047C  B1 A6            LDA (N),Y
0484  047E  85 A7            STA N+1
0485  0480  86 A6            STX N
0486  0482  05 A6            ORA N
0487  0484  D0 B5            BNE L249
0488  0486  A6 B5            LDX XSAVE
0489  0488  A9 00            LDA #0
0490  048A  48               PHA
0491  048B  4C 3D 02         JMP PUSH     exit false upon reading null link
0492  048E            ;
0493  048E            ;                             ENCLOSE
0494  048E            ;                             SCREEN 20 LINE 1
0495  048E            ;
0496  048E  87        L301   .BYTE $87,'ENCLOS',$C5
0496  048F  45 4E
0496  0491  43 4C 4F
0496  0494  53
0496  0495  C5
0497  0496  29 04            .WORD L243          ;  LINK TO (FIND)
0498  0498  9A 04     ENCL   .WORD *+2
0499  049A  A9 02            LDA #2
0500  049C  20 04 03         JSR SETUP
0501  049F  8A               TXA
0502  04A0  38               SEC
0503  04A1  E9 08            SBC #8
0504  04A3  AA               TAX
0505  04A4  94 03            STY 3,X
0506  04A6  94 01            STY 1,X
0507  04A8  88               DEY
0508  04A9  C8        L313   INY
0509  04AA  B1 A8            LDA (N+2),Y
0510  04AC  C5 A6            CMP N
0511  04AE  F0 F9            BEQ L313
0512  04B0  94 04            STY 4,X
0513  04B2  B1 A8     L318   LDA (N+2),Y

fig-FORTH for 6502, Rel 1.1   ......PAGE 0012

LINE # LOC     CODE       LINE

0514  04B4  D0 0E            BNE L327
0515  04B6  94 02            STY 2,X
0516  04B8  94 00            STY 0,X
0517  04BA  98               TYA
0518  04BB  D5 04            CMP 4,X
0519  04BD  D0 02            BNE L326
0520  04BF  F6 02            INC 2,X
0521  04C1  4C 44 02  L326   JMP NEXT
0522  04C4  94 02     L327   STY 2,X
0523  04C6  C8               INY
0524  04C7  C5 A6            CMP N
0525  04C9  D0 E7            BNE L318
0526  04CB  94 00            STY 0,X
0527  04CD  4C 44 02         JMP NEXT
0528  04D0            ;
0529  04D0            ;                             EMIT
0530  04D0            ;                             SCREEN 21 LINE 5
0531  04D0            ;
0532  04D0  84        L337   .BYTE $84,'EMI',$D4
0532  04D1  45 4D 49
0532  04D4  D4
0533  04D5  8E 04            .WORD L301          ;  LINK TO ENCLOSE
0534  04D7  F1 15     EMIT   .WORD XEMIT            Vector to code for EMIT
0535  04D9            ;
0536  04D9            ;                             KEY
0537  04D9            ;                             SCREEN 21 LINE 7
0538  04D9            ;
0539  04D9  83        L344   .BYTE $83,'KE',$D9
0539  04DA  4B 45
0539  04DC  D9
0540  04DD  D0 04            .WORD L337          ;  LINK TO EMIT
0541  04DF  0C 16     KEY    .WORD XKEY             Vector to code for KEY
0542  04E1            ;
0543  04E1            ;                             ?TERMINAL
0544  04E1            ;                             SCREEN 21 LINE 9
0545  04E1            ;
0546  04E1  89        L351   .BYTE $89,'?TERMINA',$CC
0546  04E2  3F 54
0546  04E4  45 52 4D
0546  04E7  49 4E 41
0546  04EA  CC
0547  04EB  D9 04            .WORD L344          ;  LINK TO KEY
0548  04ED  16 16     QTERM  .WORD XQTER            Vector to code for ?TERMINA
0549  04EF            ;
0550  04EF            ;                             CR
0551  04EF            ;                             SCREEN 21 LINE 11
0552  04EF            ;
0553  04EF  82        L358   .BYTE $82,'C',$D2
0553  04F0  43
0553  04F1  D2
0554  04F2  E1 04            .WORD L351          ;  LINK TO ?TERMINAL
0555  04F4  21 16     CR     .WORD XCR              Vector to code for CR
0556  04F6            ;
0557  04F6            ;                             CMOVE
0558  04F6            ;                             SCREEN 22 LINE 1
0559  04F6            ;
0560  04F6  85        L365   .BYTE $85,'CMOV',$C5

fig-FORTH for 6502, Rel 1.1   ......PAGE 0013

LINE # LOC     CODE       LINE

0560  04F7  43 4D
0560  04F9  4F 56
0560  04FB  C5
0561  04FC  EF 04            .WORD L358 ;  LINK TO CR
0562  04FE  00 05     CMOVE  .WORD *+2
0563  0500  A9 03            LDA #3
0564  0502  20 04 03         JSR SETUP
0565  0505  C4 A6     L370   CPY N
0566  0507  D0 07            BNE L375
0567  0509  C6 A7            DEC N+1
0568  050B  10 03            BPL L375
0569  050D  4C 44 02         JMP NEXT
0570  0510  B1 AA     L375   LDA (N+4),Y
0571  0512  91 A8            STA (N+2),Y
0572  0514  C8               INY
0573  0515  D0 EE            BNE L370
0574  0517  E6 AB            INC N+5
0575  0519  E6 A9            INC N+3
0576  051B  4C 05 05         JMP L370
0577  051E            ;
0578  051E            ;                             U*
0579  051E            ;                             SCREEN 23 LINE 1
0580  051E            ;
0581  051E  82        L386   .BYTE $82,'U',$AA
0581  051F  55
0581  0520  AA
0582  0521  F6 04            .WORD L365          ;  LINK TO CMOVE
0583  0523  25 05     USTAR  .WORD *+2
0584  0525  B5 02            LDA 2,X
0585  0527  85 A6            STA N
0586  0529  94 02            STY 2,X
0587  052B  B5 03            LDA 3,X
0588  052D  85 A7            STA N+1
0589  052F  94 03            STY 3,X
0590  0531  A0 10            LDY #16     for 16 bits
0591  0533  16 02     L396   ASL 2,X
0592  0535  36 03            ROL 3,X
0593  0537  36 00            ROL 0,X
0594  0539  36 01            ROL 1,X
0595  053B  90 13            BCC L411
0596  053D  18               CLC
0597  053E  A5 A6            LDA N
0598  0540  75 02            ADC 2,X
0599  0542  95 02            STA 2,X
0600  0544  A5 A7            LDA N+1
0601  0546  75 03            ADC 3,X
0602  0548  95 03            STA 3,X
0603  054A  A9 00            LDA #0
0604  054C  75 00            ADC 0,X
0605  054E  95 00            STA 0,X
0606  0550  88        L411   DEY
0607  0551  D0 E0            BNE L396
0608  0553  4C 44 02         JMP NEXT
0609  0556            ;
0610  0556            ;                             U/
0611  0556            ;                             SCREEN 24 LINE 1

fig-FORTH for 6502, Rel 1.1   ......PAGE 0014

LINE # LOC     CODE       LINE

0612  0556            ;
0613  0556  82        L418   .BYTE $82,'U',$AF
0613  0557  55
0613  0558  AF
0614  0559  1E 05            .WORD L386          ;  LINK TO U*
0615  055B  5D 05     USLAS  .WORD *+2
0616  055D  B5 04            LDA 4,X
0617  055F  B4 02            LDY 2,X
0618  0561  94 04            STY 4,X
0619  0563  0A               ASL A
0620  0564  95 02            STA 2,X
0621  0566  B5 05            LDA 5,X
0622  0568  B4 03            LDY 3,X
0623  056A  94 05            STY 5,X
0624  056C  2A               ROL A
0625  056D  95 03            STA 3,X
0626  056F  A9 10            LDA #16     for 16 bits
0627  0571  85 A6            STA N
0628  0573  36 04     L433   ROL 4,X
0629  0575  36 05            ROL 5,X
0630  0577  38               SEC
0631  0578  B5 04            LDA 4,X
0632  057A  F5 00            SBC 0,X
0633  057C  A8               TAY
0634  057D  B5 05            LDA 5,X
0635  057F  F5 01            SBC 1,X
0636  0581  90 04            BCC L444
0637  0583  94 04            STY 4,X
0638  0585  95 05            STA 5,X
0639  0587  36 02     L444   ROL 2,X
0640  0589  36 03            ROL 3,X
0641  058B  C6 A6            DEC N
0642  058D  D0 E4            BNE L433
0643  058F  4C EE 03         JMP POP
0644  0592            ;
0645  0592            ;                             AND
0646  0592            ;                             SCREEN 25 LINE 2
0647  0592            ;
0648  0592  83        L453   .BYTE $83,'AN',$C4
0648  0593  41 4E
0648  0595  C4
0649  0596  56 05            .WORD L418          ;  LINK TO U/
0650  0598  9A 05     ANDD   .WORD *+2
0651  059A  B5 00            LDA 0,X
0652  059C  35 02            AND 2,X
0653  059E  48               PHA
0654  059F  B5 01            LDA 1,X
0655  05A1  35 03            AND 3,X
0656  05A3            ;
0657  05A3  E8        BINARY INX
0658  05A4  E8               INX
0659  05A5  4C 3F 02         JMP PUT
0660  05A8            ;
0661  05A8            ;                             OR
0662  05A8            ;                             SCREEN 25 LINE 7

fig-FORTH for 6502, Rel 1.1   ......PAGE 0015

LINE # LOC     CODE       LINE

0663  05A8            ;
0664  05A8  82        L469   .BYTE $82,'O',$D2
0664  05A9  4F
0664  05AA  D2
0665  05AB  92 05            .WORD L453          ;  LINK TO AND
0666  05AD  AF 05     OR     .WORD *+2
0667  05AF  B5 00            LDA 0,X
0668  05B1  15 02            ORA 2,X
0669  05B3  48               PHA
0670  05B4  B5 01            LDA 1,X
0671  05B6  15 03            ORA 3,X
0672  05B8  E8               INX
0673  05B9  E8               INX
0674  05BA  4C 3F 02         JMP PUT
0675  05BD            ;
0676  05BD            ;                             XOR
0677  05BD            ;                             SCREEN 25 LINE 11
0678  05BD            ;
0679  05BD  83        L484   .BYTE $83,'XO',$D2
0679  05BE  58 4F
0679  05C0  D2
0680  05C1  A8 05            .WORD L469          ;  LINK TO OR
0681  05C3  C5 05     XOR    .WORD *+2
0682  05C5  B5 00            LDA 0,X
0683  05C7  55 02            EOR 2,X
0684  05C9  48               PHA
0685  05CA  B5 01            LDA 1,X
0686  05CC  55 03            EOR 3,X
0687  05CE  E8               INX
0688  05CF  E8               INX
0689  05D0  4C 3F 02         JMP PUT
0690  05D3            ;
0691  05D3            ;                             SP@
0692  05D3            ;                             SCREEN 26 LINE 1
0693  05D3            ;
0694  05D3  83        L499   .BYTE $83,'SP',$C0
0694  05D4  53 50
0694  05D6  C0
0695  05D7  BD 05            .WORD L484          ;  LINK TO XOR
0696  05D9  DB 05     SPAT   .WORD *+2
0697  05DB  8A               TXA
0698  05DC            ;
0699  05DC  48        PUSH0A PHA
0700  05DD  A9 00            LDA #0
0701  05DF  4C 3D 02         JMP PUSH
0702  05E2            ;
0703  05E2            ;                             SP!
0704  05E2            ;                             SCREEN 26 LINE 5
0705  05E2            ;
0706  05E2  83        L511   .BYTE $83,'SP',$A1
0706  05E3  53 50
0706  05E5  A1
0707  05E6  D3 05            .WORD L499          ;  LINK TO SP@
0708  05E8  EA 05     SPSTO  .WORD *+2
0709  05EA  A0 06            LDY #6

fig-FORTH for 6502, Rel 1.1   ......PAGE 0016

LINE # LOC     CODE       LINE

0710  05EC  B1 B3            LDA (UP),Y  load data stack pointer (X-reg)
0711  05EE  AA               TAX         silent user variable S0.
0712  05EF  4C 44 02         JMP NEXT
0713  05F2            ;
0714  05F2            ;                             RP!
0715  05F2            ;                             SCREEN 26 LINE 8
0716  05F2            ;
0717  05F2  83        L522   .BYTE $83,'RP',$A1
0717  05F3  52 50
0717  05F5  A1
0718  05F6  E2 05            .WORD L511          ;  LINK TO SP!
0719  05F8  FA 05     RPSTO  .WORD *+2
0720  05FA  86 B5            STX XSAVE    load return stack pointer
0721  05FC  A0 08            LDY #8       (machine stack pointer) from
0722  05FE  B1 B3            LDA (UP),Y   silent user variable R0.
0723  0600  AA               TAX
0724  0601  9A               TXS
0725  0602  A6 B5            LDX XSAVE
0726  0604  4C 44 02         JMP NEXT
0727  0607            ;
0728  0607            ;                             ;S
0729  0607            ;                             SCREEN 26 LINE 12
0730  0607            ;
0731  0607  82        L536   .BYTE $82,';',$D3
0731  0608  3B
0731  0609  D3
0732  060A  F2 05            .WORD L522          ;  LINK TO RP!
0733  060C  0E 06     SEMIS  .WORD *+2
0734  060E  68               PLA
0735  060F  85 AE            STA IP
0736  0611  68               PLA
0737  0612  85 AF            STA IP+1
0738  0614  4C 44 02         JMP NEXT
0739  0617            ;
0740  0617            ;                             LEAVE
0741  0617            ;                             SCREEN 27 LINE 1
0742  0617            ;
0743  0617  85        L548   .BYTE $85,'LEAV',$C5
0743  0618  4C 45
0743  061A  41 56
0743  061C  C5
0744  061D  07 06            .WORD L536          ;  LINK TO ;S
0745  061F  21 06     LEAVE  .WORD *+2
0746  0621  86 B5            STX XSAVE
0747  0623  BA               TSX
0748  0624  BD 01 01         LDA $101,X
0749  0627  9D 03 01         STA $103,X
0750  062A  BD 02 01         LDA $102,X
0751  062D  9D 04 01         STA $104,X
0752  0630  A6 B5            LDX XSAVE
0753  0632  4C 44 02         JMP NEXT
0754  0635            ;
0755  0635            ;                             >R
0756  0635            ;                             SCREEN 27 LINE 5
0757  0635            ;
0758  0635  82        L563   .BYTE $82,'>',$D2

fig-FORTH for 6502, Rel 1.1   ......PAGE 0017

LINE # LOC     CODE       LINE

0758  0636  3E
0758  0637  D2
0759  0638  17 06            .WORD L548          ;  LINK TO LEAVE
0760  063A  3C 06     TOR    .WORD *+2
0761  063C  B5 01            LDA 1,X      move high byte
0762  063E  48               PHA
0763  063F  B5 00            LDA 0,X      then low byte
0764  0641  48               PHA          to return stack
0765  0642  E8               INX
0766  0643  E8               INX          popping off data stack
0767  0644  4C 44 02         JMP NEXT
0768  0647            ;
0769  0647            ;                             R>
0770  0647            ;                             SCREEN 27 LINE 8
0771  0647            ;
0772  0647  82        L577   .BYTE $82,'R',$BE
0772  0648  52
0772  0649  BE
0773  064A  35 06            .WORD L563          ;  LINK TO >R
0774  064C  4E 06     RFROM  .WORD *+2
0775  064E  CA               DEX          make room on data stack
0776  064F  CA               DEX
0777  0650  68               PLA          high byte
0778  0651  95 00            STA 0,X
0779  0653  68               PLA          then low byte
0780  0654  95 01            STA 1,X      restored to data stack
0781  0656  4C 44 02         JMP NEXT
0782  0659            ;
0783  0659            ;                             R
0784  0659            ;                             SCREEN 27 LINE 11
0785  0659            ;
0786  0659  81        L591   .BYTE $81,$D2
0786  065A  D2
0787  065B  47 06            .WORD L577          ;  LINK TO R>
0788  065D  5F 06     R      .WORD *+2
0789  065F  86 B5            STX XSAVE
0790  0661  BA               TSX          address return stack.
0791  0662  BD 01 01         LDA $101,X   copy bottom value
0792  0665  48               PHA          to data stack.
0793  0666  BD 02 01         LDA $102,X
0794  0669  A6 B5            LDX XSAVE
0795  066B  4C 3D 02         JMP PUSH
0796  066E            ;
0797  066E            ;                             0=
0798  066E            ;                             SCREEN 28 LINE 2
0799  066E            ;
0800  066E  82        L605   .BYTE $82,'0',$BD
0800  066F  30
0800  0670  BD
0801  0671  59 06            .WORD L591          ;  LINK TO R
0802  0673  75 06     ZEQU   .WORD *+2
0803  0675  B5 00            LDA 0,X
0804  0677  15 01            ORA 1,X
0805  0679  94 01            STY 1,X
0806  067B  D0 01            BNE L613

fig-FORTH for 6502, Rel 1.1   ......PAGE 0018

LINE # LOC     CODE       LINE

0807  067D  C8               INY
0808  067E  94 00     L613   STY 0,X
0809  0680  4C 44 02         JMP NEXT
0810  0683            ;
0811  0683            ;                             0<
0812  0683            ;                             SCREEN 28 LINE 6
0813  0683            ;
0814  0683  82        L619   .BYTE $82,'0',$BC
0814  0684  30
0814  0685  BC
0815  0686  6E 06            .WORD L605          ;  LINK TO 0=
0816  0688  8A 06     ZLESS  .WORD *+2
0817  068A  16 01            ASL 1,X
0818  068C  98               TYA
0819  068D  2A               ROL A
0820  068E  94 01            STY 1,X
0821  0690  95 00            STA 0,X
0822  0692  4C 44 02         JMP NEXT
0823  0695            ;
0824  0695            ;
0825  0695            ;                             +
0826  0695            ;                             SCREEN 29 LINE 1
0827  0695            ;
0828  0695  81        L632   .BYTE $81,$AB
0828  0696  AB
0829  0697  83 06            .WORD L619          ;  LINK TO V-ADJ
0830  0699  9B 06     PLUS   .WORD *+2
0831  069B  18               CLC
0832  069C  B5 00            LDA 0,X
0833  069E  75 02            ADC 2,X
0834  06A0  95 02            STA 2,X
0835  06A2  B5 01            LDA 1,X
0836  06A4  75 03            ADC 3,X
0837  06A6  95 03            STA 3,X
0838  06A8  E8               INX
0839  06A9  E8               INX
0840  06AA  4C 44 02         JMP NEXT
0841  06AD            ;
0842  06AD            ;                             D+
0843  06AD            ;                             SCREEN 29 LINE 4
0844  06AD            ;
0845  06AD  82        L649   .BYTE $82,'D',$AB
0845  06AE  44
0845  06AF  AB
0846  06B0  95 06            .WORD L632          ;  LINK TO +
0847  06B2  B4 06     DPLUS  .WORD *+2
0848  06B4  18               CLC
0849  06B5  B5 02            LDA 2,X
0850  06B7  75 06            ADC 6,X
0851  06B9  95 06            STA 6,X
0852  06BB  B5 03            LDA 3,X
0853  06BD  75 07            ADC 7,X
0854  06BF  95 07            STA 7,X
0855  06C1  B5 00            LDA 0,X
0856  06C3  75 04            ADC 4,X

fig-FORTH for 6502, Rel 1.1   ......PAGE 0019

LINE # LOC     CODE       LINE

0857  06C5  95 04            STA 4,X
0858  06C7  B5 01            LDA 1,X
0859  06C9  75 05            ADC 5,X
0860  06CB  95 05            STA 5,X
0861  06CD  4C EC 03         JMP POPTWO
0862  06D0            ;
0863  06D0            ;                             MINUS
0864  06D0            ;                             SCREEN 29 LINE 9
0865  06D0            ;
0866  06D0  85        L670   .BYTE $85,'MINU',$D3
0866  06D1  4D 49
0866  06D3  4E 55
0866  06D5  D3
0867  06D6  AD 06            .WORD L649          ;  LINK TO D+
0868  06D8  DA 06     MINUS  .WORD *+2
0869  06DA  38               SEC
0870  06DB  98               TYA
0871  06DC  F5 00            SBC 0,X
0872  06DE  95 00            STA 0,X
0873  06E0  98               TYA
0874  06E1  F5 01            SBC 1,X
0875  06E3  95 01            STA 1,X
0876  06E5  4C 44 02         JMP NEXT
0877  06E8            ;
0878  06E8            ;                             DMINUS
0879  06E8            ;                             SCREEN 29 LINE 12
0880  06E8            ;
0881  06E8  86        L685   .BYTE $86,'DMINU',$D3
0881  06E9  44 4D
0881  06EB  49 4E 55
0881  06EE  D3
0882  06EF  D0 06            .WORD L670          ;  LINK TO MINUS
0883  06F1  F3 06     DMINU  .WORD *+2
0884  06F3  38               SEC
0885  06F4  98               TYA
0886  06F5  F5 02            SBC 2,X
0887  06F7  95 02            STA 2,X
0888  06F9  98               TYA
0889  06FA  F5 03            SBC 3,X
0890  06FC  95 03            STA 3,X
0891  06FE  4C DB 06         JMP MINUS+3
0892  0701            ;
0893  0701            ;                             OVER
0894  0701            ;                             SCREEN 30 LINE 1
0895  0701            ;
0896  0701  84        L700   .BYTE $84,'OVE',$D2
0896  0702  4F 56 45
0896  0705  D2
0897  0706  E8 06            .WORD L685          ;  LINK TO DMINUS
0898  0708  0A 07     OVER   .WORD *+2
0899  070A  B5 02            LDA 2,X
0900  070C  48               PHA
0901  070D  B5 03            LDA 3,X
0902  070F  4C 3D 02         JMP PUSH
0903  0712            ;
0904  0712            ;                             DROP
0905  0712            ;                             SCREEN 30 LINE 4

fig-FORTH for 6502, Rel 1.1   ......PAGE 0020

LINE # LOC     CODE       LINE

0906  0712            ;
0907  0712  84        L711   .BYTE $84,'DRO',$D0
0907  0713  44 52 4F
0907  0716  D0
0908  0717  01 07            .WORD L700          ;  LINK TO OVER
0909  0719  EE 03     DROP   .WORD POP
0910  071B            ;
0911  071B            ;                             SWAP
0912  071B            ;                             SCREEN 30 LINE 8
0913  071B            ;
0914  071B  84        L718   .BYTE $84,'SWA',$D0
0914  071C  53 57 41
0914  071F  D0
0915  0720  12 07            .WORD L711          ;  LINK TO DROP
0916  0722  24 07     SWAP   .WORD *+2
0917  0724  B5 02            LDA 2,X
0918  0726  48               PHA
0919  0727  B5 00            LDA 0,X
0920  0729  95 02            STA 2,X
0921  072B  B5 03            LDA 3,X
0922  072D  B4 01            LDY 1,X
0923  072F  94 03            STY 3,X
0924  0731  4C 3F 02         JMP PUT
0925  0734            ;
0926  0734            ;                             DUP
0927  0734            ;                             SCREEN 30 LINE 12
0928  0734            ;
0929  0734  83        L733   .BYTE $83,'DU',$D0
0929  0735  44 55
0929  0737  D0
0930  0738  1B 07            .WORD L718          ;  LINK TO SWAP
0931  073A  3C 07     DUP    .WORD *+2
0932  073C  B5 00            LDA 0,X
0933  073E  48               PHA
0934  073F  B5 01            LDA 1,X
0935  0741  4C 3D 02         JMP PUSH
0936  0744            ;
0937  0744            ;                             +!
0938  0744            ;                             SCREEN 31 LINE 2
0939  0744            ;
0940  0744  82        L744   .BYTE $82,'+',$A1
0940  0745  2B
0940  0746  A1
0941  0747  34 07            .WORD L733          ;  LINK TO DUP
0942  0749  4B 07     PSTOR  .WORD *+2
0943  074B  18               CLC
0944  074C  A1 00            LDA (0,X)    fetch 16-bit value addressed
0945  074E  75 02            ADC 2,X      by bottom of stack, adding to
0946  0750  81 00            STA (0,X)    second item on stack, and
0947  0752  F6 00            INC 0,X      return to memory.
0948  0754  D0 02            BNE L754
0949  0756  F6 01            INC 1,X
0950  0758  A1 00     L754   LDA (0,X)
0951  075A  75 03            ADC 3,X
0952  075C  81 00            STA (0,X)

fig-FORTH for 6502, Rel 1.1   ......PAGE 0021

LINE # LOC     CODE       LINE

0953  075E  4C EC 03         JMP POPTWO
0954  0761            ;
0955  0761            ;                             TOGGLE
0956  0761            ;                             SCREEN 31 LINE 7
0957  0761            ;
0958  0761  86        L762   .BYTE $86,'TOGGL',$C5
0958  0762  54 4F
0958  0764  47 47 4C
0958  0767  C5
0959  0768  44 07            .WORD L744          ;  LINK TO + !
0960  076A  6C 07     TOGGL  .WORD *+2
0961  076C  A1 02            LDA (2,X)    complement bits in memory address
0962  076E  55 00            EOR 0,X      second on stack, by pattern
0963  0770  81 02            STA (2,X)    on bottom of stack.
0964  0772  4C EC 03         JMP POPTWO
0965  0775            ;
0966  0775            ;                             @
0967  0775            ;                             SCREEN 32 LINE 1
0968  0775            ;
0969  0775  81        L773   .BYTE $81,$C0
0969  0776  C0
0970  0777  61 07            .WORD L762          ;  LINK TO TOGGLE
0971  0779  7B 07     AT     .WORD *+2
0972  077B  A1 00            LDA (0,X)
0973  077D  48               PHA
0974  077E  F6 00            INC 0,X
0975  0780  D0 02            BNE L781
0976  0782  F6 01            INC 1,X
0977  0784  A1 00     L781   LDA (0,X)
0978  0786  4C 3F 02         JMP PUT
0979  0789            ;
0980  0789            ;                             C@
0981  0789            ;                             SCREEN 32 LINE 5
0982  0789            ;
0983  0789  82        L787   .BYTE $82,'C',$C0
0983  078A  43
0983  078B  C0
0984  078C  75 07            .WORD L773          ;  LINK TO @
0985  078E  90 07     CAT    .WORD *+2
0986  0790  A1 00            LDA (0,X)    fetch byte addressed by bottom
0987  0792  95 00            STA 0,X      of stack to stack, zeroing
0988  0794  94 01            STY 1,X      the high byte.
0989  0796  4C 44 02         JMP NEXT
0990  0799            ;
0991  0799            ;                             !
0992  0799            ;                             SCREEN 32 LINE 8
0993  0799            ;
0994  0799  81        L798   .BYTE $81,$A1
0994  079A  A1
0995  079B  89 07            .WORD L787          ;  LINK TO C@
0996  079D  9F 07     STORE  .WORD *+2
0997  079F  B5 02            LDA 2,X
0998  07A1  81 00            STA (0,X)    store second 16-bit value on stack
0999  07A3  F6 00            INC 0,X      to memory as addresses by
1000  07A5  D0 02            BNE L806
1001  07A7  F6 01            INC 1,X      bottom of stack.

fig-FORTH for 6502, Rel 1.1   ......PAGE 0022

LINE # LOC     CODE       LINE

1002  07A9  B5 03     L806   LDA 3,X
1003  07AB  81 00            STA (0,X)
1004  07AD  4C EC 03         JMP POPTWO
1005  07B0            ;
1006  07B0            ;                             C!
1007  07B0            ;                             SCREEN 32 LINE 12
1008  07B0            ;
1009  07B0  82        L813   .BYTE $82,'C',$A1
1009  07B1  43
1009  07B2  A1
1010  07B3  99 07            .WORD L798          ;  LINK TO !
1011  07B5  B7 07     CSTOR  .WORD *+2
1012  07B7  B5 02            LDA 2,X
1013  07B9  81 00            STA (0,X)
1014  07BB  4C EC 03         JMP POPTWO
1015  07BE            ;
1016  07BE            ;                             :
1017  07BE            ;                             SCREEN 33 LINE 2
1018  07BE            ;
1019  07BE  C1        L823   .BYTE $C1,$BA
1019  07BF  BA
1020  07C0  B0 07            .WORD L813          ;  LINK TO C!
1021  07C2  D6 07     COLON  .WORD DOCOL
1022  07C4  42 0B            .WORD QEXEC
1023  07C6  FE 0A            .WORD SCSP
1024  07C8  58 09            .WORD CURR
1025  07CA  79 07            .WORD AT
1026  07CC  4B 09            .WORD CON
1027  07CE  9D 07            .WORD STORE
1028  07D0  36 10            .WORD CREAT
1029  07D2  C3 0B            .WORD RBRAC
1030  07D4  12 0C            .WORD PSCOD
1031  07D6            ;
1032  07D6  A5 AF     DOCOL  LDA IP+1
1033  07D8  48               PHA
1034  07D9  A5 AE            LDA IP
1035  07DB  48               PHA
1036  07DC  20 BE 02         JSR TCOLON     Mark the start of a traced : def.
1037  07DF  18               CLC
1038  07E0  A5 B1            LDA W
1039  07E2  69 02            ADC #2
1040  07E4  85 AE            STA IP
1041  07E6  98               TYA
1042  07E7  65 B2            ADC W+1
1043  07E9  85 AF            STA IP+1
1044  07EB  4C 44 02         JMP NEXT
1045  07EE            ;
1046  07EE            ;
1047  07EE            ;                             ;
1048  07EE            ;                             SCREEN 33 LINE 9
1049  07EE            ;
1050  07EE  C1        L853   .BYTE $C1,$BB
1050  07EF  BB
1051  07F0  BE 07            .WORD L823          ;  LINK TO :
1052  07F2  D6 07            .WORD DOCOL

fig-FORTH for 6502, Rel 1.1   ......PAGE 0023

LINE # LOC     CODE       LINE

1053  07F4  6A 0B            .WORD QCSP
1054  07F6  9F 0B            .WORD COMP
1055  07F8  0C 06            .WORD SEMIS
1056  07FA  D7 0B            .WORD SMUDG
1057  07FC  B5 0B            .WORD LBRAC
1058  07FE  0C 06            .WORD SEMIS
1059  0800            ;
1060  0800            ;
1061  0800            ;                             CONSTANT
1062  0800            ;                             SCREEN 34 LINE 1
1063  0800            ;
1064  0800  88        L867   .BYTE $88,'CONSTAN',$D4
1064  0801  43 4F
1064  0803  4E 53 54
1064  0806  41 4E
1064  0808  D4
1065  0809  EE 07            .WORD L853          ;  LINK TO ;
1066  080B  D6 07     CONST  .WORD DOCOL
1067  080D  36 10            .WORD CREAT
1068  080F  D7 0B            .WORD SMUDG
1069  0811  D9 09            .WORD COMMA
1070  0813  12 0C            .WORD PSCOD
1071  0815            ;
1072  0815  A0 02     DOCON  LDY #2
1073  0817  B1 B1            LDA (W),Y
1074  0819  48               PHA
1075  081A  C8               INY
1076  081B  B1 B1            LDA (W),Y
1077  081D  4C 3D 02         JMP PUSH
1078  0820            ;
1079  0820            ;                             VARIABLE
1080  0820            ;                             SCREEN 34 LINE 5
1081  0820            ;
1082  0820  88        L885   .BYTE $88,'VARIABL',$C5
1082  0821  56 41
1082  0823  52 49 41
1082  0826  42 4C
1082  0828  C5
1083  0829  00 08            .WORD L867          ;  LINK TO CONSTANT
1084  082B  D6 07     VAR    .WORD DOCOL
1085  082D  0B 08            .WORD CONST
1086  082F  12 0C            .WORD PSCOD
1087  0831            ;
1088  0831  18        DOVAR  CLC
1089  0832  A5 B1            LDA W
1090  0834  69 02            ADC #2
1091  0836  48               PHA
1092  0837  98               TYA
1093  0838  65 B2            ADC W+1
1094  083A  4C 3D 02         JMP PUSH
1095  083D            ;
1096  083D            ;
1097  083D            ;
1098  083D             .FILE FOR2/1       ; LINK TO NEXT FILE
1099  083D            ;
1100  083D            ;                             USER
1101  083D            ;                             SCREEN 34 LINE 10
1102  083D            ;
1103  083D  84        L902   .BYTE $84,'USE',$D2

fig-FORTH for 6502, Rel 1.1   ......PAGE 0024

LINE # LOC     CODE       LINE

1103  083E  55 53 45
1103  0841  D2
1104  0842  20 08            .WORD L885          ;  LINK TO VARIABLE
1105  0844  D6 07     USER   .WORD DOCOL
1106  0846  0B 08            .WORD CONST
1107  0848  12 0C            .WORD PSCOD
1108  084A            ;
1109  084A  A0 02     DOUSE  LDY #2
1110  084C  18               CLC
1111  084D  B1 B1            LDA (W),Y
1112  084F  65 B3            ADC UP
1113  0851  48               PHA
1114  0852  A9 00            LDA #0
1115  0854  65 B4            ADC UP+1
1116  0856  4C 3D 02         JMP PUSH
1117  0859            ;
1118  0859            ;                             0
1119  0859            ;                             SCREEN 35 LINE 2
1120  0859            ;
1121  0859  81        L920   .BYTE $81,$B0
1121  085A  B0
1122  085B  3D 08            .WORD L902          ;  LINK TO USER
1123  085D  15 08     ZERO   .WORD DOCON
1124  085F  00 00            .WORD 0
1125  0861            ;
1126  0861            ;                             1
1127  0861            ;                             SCREEN 35 LINE 2
1128  0861            ;
1129  0861  81        L928   .BYTE $81,$B1
1129  0862  B1
1130  0863  59 08            .WORD L920          ;  LINK TO 0
1131  0865  15 08     ONE    .WORD DOCON
1132  0867  01 00            .WORD 1
1133  0869            ;
1134  0869            ;                             2
1135  0869            ;                             SCREEN 35 LINE 3
1136  0869            ;
1137  0869  81        L936   .BYTE $81,$B2
1137  086A  B2
1138  086B  61 08            .WORD L928          ;  LINK TO 1
1139  086D  15 08     TWO    .WORD DOCON
1140  086F  02 00            .WORD 2
1141  0871            ;
1142  0871            ;                             3
1143  0871            ;                             SCREEN 35 LINE 3
1144  0871            ;
1145  0871  81        L944   .BYTE $81,$B3
1145  0872  B3
1146  0873  69 08            .WORD L936          ;  LINK TO 2
1147  0875  15 08     THREE  .WORD DOCON
1148  0877  03 00            .WORD 3
1149  0879            ;
1150  0879            ;                             BL
1151  0879            ;                             SCREEN 35 LINE 4
1152  0879            ;

fig-FORTH for 6502, Rel 1.1   ......PAGE 0025

LINE # LOC     CODE       LINE

1153  0879  82        L952   .BYTE $82,'B',$CC
1153  087A  42
1153  087B  CC
1154  087C  71 08            .WORD L944          ;  LINK TO 3
1155  087E  15 08     BL     .WORD DOCON
1156  0880  20 00            .WORD $20
1157  0882            ;
1158  0882            ;                             C/L
1159  0882            ;                             SCREEN 35 LINE 5
1160  0882            ;                             Characters per line
1161  0882  83        L960   .BYTE $83,'C/',$CC
1161  0883  43 2F
1161  0885  CC
1162  0886  79 08            .WORD L952          ;  LINK TO BL
1163  0888  15 08     CSLL   .WORD DOCON
1164  088A  40 00            .WORD 64
1165  088C            ;
1166  088C            ;                             FIRST
1167  088C            ;                             SCREEN 35 LINE 7
1168  088C            ;
1169  088C  85        L968   .BYTE $85,'FIRS',$D4
1169  088D  46 49
1169  088F  52 53
1169  0891  D4
1170  0892  82 08            .WORD L960          ;  LINK TO C/L
1171  0894  15 08     FIRST  .WORD DOCON
1172  0896  60 3B            .WORD DAREA  bottom of disk buffer area
1173  0898            ;
1174  0898            ;                             LIMIT
1175  0898            ;                             SCREEN 35 LINE 8
1176  0898            ;
1177  0898  85        L976   .BYTE $85,'LIMI',$D4
1177  0899  4C 49
1177  089B  4D 49
1177  089D  D4
1178  089E  8C 08            .WORD L968          ;  LINK TO FIRST
1179  08A0  15 08     LIMIT  .WORD DOCON
1180  08A2  80 3F            .WORD UAREA  buffers end at user area
1181  08A4            ;
1182  08A4            ;                             B/BUF
1183  08A4            ;                             SCREEN 35 LINE 9
1184  08A4            ;                             Bytes per buffer
1185  08A4  85        L984   .BYTE $85,'B/BU',$C6
1185  08A5  42 2F
1185  08A7  42 55
1185  08A9  C6
1186  08AA  98 08            .WORD L976          ;  LINK TO LIMIT
1187  08AC  15 08     BBUF   .WORD DOCON
1188  08AE  80 00            .WORD SSIZE   sector size
1189  08B0            ;
1190  08B0            ;                             B/SCR
1191  08B0            ;                             SCREEN 35 LINE 10
1192  08B0            ;                             Blocks per screen
1193  08B0  85        L992   .BYTE $85,'B/SC',$D2
1193  08B1  42 2F
1193  08B3  53 43
1193  08B5  D2
1194  08B6  A4 08            .WORD L984          ;  LINK TO B/BUF
1195  08B8  15 08     BSCR   .WORD DOCON

fig-FORTH for 6502, Rel 1.1   ......PAGE 0026

LINE # LOC     CODE       LINE

1196  08BA  08 00            .WORD 8      blocks to make one screen.
1197  08BC            ;
1198  08BC            ;                             +ORIGIN
1199  08BC            ;                             SCREEN 35 LINE 12
1200  08BC            ;
1201  08BC  87        L1000  .BYTE $87,'+ORIGI',$CE
1201  08BD  2B 4F
1201  08BF  52 49 47
1201  08C2  49
1201  08C3  CE
1202  08C4  B0 08            .WORD L992          ;  LINK TO B/SCR
1203  08C6  D6 07     PORIG  .WORD DOCOL
1204  08C8  2A 02            .WORD LIT,ORIG
1204  08CA  00 02
1205  08CC  99 06            .WORD PLUS
1206  08CE  0C 06            .WORD SEMIS
1207  08D0            ;
1208  08D0            ;                             TIB
1209  08D0            ;                             SCREEN 36 LINE 4
1210  08D0            ;
1211  08D0  83        L1010  .BYTE $83,'TI',$C2
1211  08D1  54 49
1211  08D3  C2
1212  08D4  BC 08            .WORD L1000         ;  LINK TO +ORIGIN
1213  08D6  4A 08     TIB    .WORD DOUSE
1214  08D8  0A               .BYTE $A
1215  08D9            ;
1216  08D9            ;                             WIDTH
1217  08D9            ;                             SCREEN 36 LINE 5
1218  08D9            ;
1219  08D9  85        L1018  .BYTE $85,'WIDT',$C8
1219  08DA  57 49
1219  08DC  44 54
1219  08DE  C8
1220  08DF  D0 08            .WORD L1010         ;  LINK TO TIB
1221  08E1  4A 08     WIDTH  .WORD DOUSE
1222  08E3  0C               .BYTE $C
1223  08E4            ;
1224  08E4            ;                             WARNING
1225  08E4            ;                             SCREEN 36 LINE 6
1226  08E4            ;
1227  08E4  87        L1026  .BYTE $87,'WARNIN',$C7
1227  08E5  57 41
1227  08E7  52 4E 49
1227  08EA  4E
1227  08EB  C7
1228  08EC  D9 08            .WORD L1018         ;  LINK TO WIDTH
1229  08EE  4A 08     WARN   .WORD DOUSE
1230  08F0  0E               .BYTE $E
1231  08F1            ;
1232  08F1            ;                             FENCE
1233  08F1            ;                             SCREEN 36 LINE 7
1234  08F1            ;
1235  08F1  85        L1034  .BYTE $85,'FENC',$C5
1235  08F2  46 45
1235  08F4  4E 43
1235  08F6  C5
1236  08F7  E4 08            .WORD L1026         ;  LINK TO WARNING
1237  08F9  4A 08     FENCE  .WORD DOUSE
1238  08FB  10               .BYTE $10
1239  08FC            ;

fig-FORTH for 6502, Rel 1.1   ......PAGE 0027

LINE # LOC     CODE       LINE

1240  08FC            ;                             DP
1241  08FC            ;                             SCREEN 36 LINE 8
1242  08FC            ;
1243  08FC  82        L1042  .BYTE $82,'D',$D0
1243  08FD  44
1243  08FE  D0
1244  08FF  F1 08            .WORD L1034         ;  LINK TO FENCE
1245  0901  4A 08     DP     .WORD DOUSE
1246  0903  12               .BYTE $12
1247  0904            ;
1248  0904            ;                             VOC-LINK
1249  0904            ;                             SCREEN 36 LINE 9
1250  0904            ;
1251  0904  88        L1050  .BYTE $88,'VOC-LIN',$CB
1251  0905  56 4F
1251  0907  43 2D 4C
1251  090A  49 4E
1251  090C  CB
1252  090D  FC 08            .WORD L1042         ;  LINK TO DP
1253  090F  4A 08     VOCL   .WORD DOUSE
1254  0911  14               .BYTE $14
1255  0912            ;
1256  0912            ;                             BLK
1257  0912            ;                             SCREEN 36 LINE 10
1258  0912            ;
1259  0912  83        L1058  .BYTE $83,'BL',$CB
1259  0913  42 4C
1259  0915  CB
1260  0916  04 09            .WORD L1050         ;  LINK TO VOC-LINK
1261  0918  4A 08     BLK    .WORD DOUSE
1262  091A  16               .BYTE $16
1263  091B            ;
1264  091B            ;                             IN
1265  091B            ;                             SCREEN 36 LINE 11
1266  091B            ;
1267  091B  82        L1066  .BYTE $82,'I',$CE
1267  091C  49
1267  091D  CE
1268  091E  12 09            .WORD L1058         ;  LINK TO BLK
1269  0920  4A 08     IN     .WORD DOUSE
1270  0922  18               .BYTE $18
1271  0923            ;
1272  0923            ;                             OUT
1273  0923            ;                             SCREEN 36 LINE 12
1274  0923            ;
1275  0923  83        L1074  .BYTE $83,'OU',$D4
1275  0924  4F 55
1275  0926  D4
1276  0927  1B 09            .WORD L1066         ;  LINK TO IN
1277  0929  4A 08     OUT    .WORD DOUSE
1278  092B  1A               .BYTE $1A
1279  092C            ;
1280  092C            ;                             SCR
1281  092C            ;                             SCREEN 36 LINE 13
1282  092C            ;
1283  092C  83        L1082  .BYTE $83,'SC',$D2
1283  092D  53 43

fig-FORTH for 6502, Rel 1.1   ......PAGE 0028

LINE # LOC     CODE       LINE

1283  092F  D2
1284  0930  23 09            .WORD L1074         ;  LINK TO OUT
1285  0932  4A 08     SCR    .WORD DOUSE
1286  0934  1C               .BYTE $1C
1287  0935            ;
1288  0935            ;                             OFFSET
1289  0935            ;                             SCREEN 37 LINE 1
1290  0935            ;
1291  0935  86        L1090  .BYTE $86,'OFFSE',$D4
1291  0936  4F 46
1291  0938  46 53 45
1291  093B  D4
1292  093C  2C 09            .WORD L1082         ;  LINK TO SCR
1293  093E  4A 08     OFSET  .WORD DOUSE
1294  0940  1E               .BYTE $1E
1295  0941            ;
1296  0941            ;                             CONTEXT
1297  0941            ;                             SCREEN 37 LINE 2
1298  0941            ;
1299  0941  87        L1098  .BYTE $87,'CONTEX',$D4
1299  0942  43 4F
1299  0944  4E 54 45
1299  0947  58
1299  0948  D4
1300  0949  35 09            .WORD L1090         ;  LINK TO OFFSET
1301  094B  4A 08     CON    .WORD DOUSE
1302  094D  20               .BYTE $20
1303  094E            ;
1304  094E            ;                             CURRENT
1305  094E            ;                             SCREEN 37 LINE 3
1306  094E            ;
1307  094E  87        L1106  .BYTE $87,'CURREN',$D4
1307  094F  43 55
1307  0951  52 52 45
1307  0954  4E
1307  0955  D4
1308  0956  41 09            .WORD L1098         ;  LINK TO CONTEXT
1309  0958  4A 08     CURR   .WORD DOUSE
1310  095A  22               .BYTE $22
1311  095B            ;
1312  095B            ;                             STATE
1313  095B            ;                             SCREEN 37 LINE 4
1314  095B            ;
1315  095B  85        L1114  .BYTE $85,'STAT',$C5
1315  095C  53 54
1315  095E  41 54
1315  0960  C5
1316  0961  4E 09            .WORD L1106         ;  LINK TO CURRENT
1317  0963  4A 08     STATE  .WORD DOUSE
1318  0965  24               .BYTE $24
1319  0966            ;
1320  0966            ;                             BASE
1321  0966            ;                             SCREEN 37 LINE 5
1322  0966            ;
1323  0966  84        L1122  .BYTE $84,'BAS',$C5
1323  0967  42 41 53
1323  096A  C5
1324  096B  5B 09            .WORD L1114         ;  LINK TO STATE
1325  096D  4A 08     BASE   .WORD DOUSE
1326  096F  26               .BYTE $26
1327  0970            ;

fig-FORTH for 6502, Rel 1.1   ......PAGE 0029

LINE # LOC     CODE       LINE

1328  0970            ;                             DPL
1329  0970            ;                             SCREEN 37 LINE 6
1330  0970            ;
1331  0970  83        L1130  .BYTE $83,'DP',$CC
1331  0971  44 50
1331  0973  CC
1332  0974  66 09            .WORD L1122         ;  LINK TO BASE
1333  0976  4A 08     DPL    .WORD DOUSE
1334  0978  28               .BYTE $28
1335  0979            ;
1336  0979            ;                             FLD
1337  0979            ;                             SCREEN 37 LINE 7
1338  0979            ;
1339  0979  83        L1138  .BYTE $83,'FL',$C4
1339  097A  46 4C
1339  097C  C4
1340  097D  70 09            .WORD L1130         ;  LINK TO DPL
1341  097F  4A 08     FLD    .WORD DOUSE
1342  0981  2A               .BYTE $2A
1343  0982            ;
1344  0982            ;                             CSP
1345  0982            ;                             SCREEN 37 LINE 8
1346  0982            ;
1347  0982  83        L1146  .BYTE $83,'CS',$D0
1347  0983  43 53
1347  0985  D0
1348  0986  79 09            .WORD L1138         ;  LINK TO FLD
1349  0988  4A 08     CSP    .WORD DOUSE
1350  098A  2C               .BYTE $2C
1351  098B            ;
1352  098B            ;                             R#
1353  098B            ;                             SCREEN 37 LINE 9
1354  098B            ;
1355  098B  82        L1154  .BYTE $82,'R',$A3
1355  098C  52
1355  098D  A3
1356  098E  82 09            .WORD L1146         ;  LINK TO CSP
1357  0990  4A 08     RNUM   .WORD DOUSE
1358  0992  2E               .BYTE $2E
1359  0993            ;
1360  0993            ;                             HLD
1361  0993            ;                             SCREEN 37 LINE 10
1362  0993            ;
1363  0993  83        L1162  .BYTE $83,'HL',$C4
1363  0994  48 4C
1363  0996  C4
1364  0997  8B 09            .WORD L1154         ;  LINK TO R#
1365  0999  4A 08     HLD    .WORD DOUSE
1366  099B  30               .BYTE $30
1367  099C            ;
1368  099C            ;                             1+
1369  099C            ;                             SCREEN 38 LINE 1
1370  099C            ;
1371  099C  82        L1170  .BYTE $82,'1',$AB
1371  099D  31

fig-FORTH for 6502, Rel 1.1   ......PAGE 0030

LINE # LOC     CODE       LINE

1371  099E  AB
1372  099F  93 09            .WORD L1162         ;  LINK TO HLD
1373  09A1  D6 07     ONEP   .WORD DOCOL
1374  09A3  65 08            .WORD ONE
1375  09A5  99 06            .WORD PLUS
1376  09A7  0C 06            .WORD SEMIS
1377  09A9            ;
1378  09A9            ;                             2+
1379  09A9            ;                             SCREEN 38 LINE 2
1380  09A9            ;
1381  09A9  82        L1180  .BYTE $82,'2',$AB
1381  09AA  32
1381  09AB  AB
1382  09AC  9C 09            .WORD L1170         ;  LINK TO 1+
1383  09AE  D6 07     TWOP   .WORD DOCOL
1384  09B0  6D 08            .WORD TWO
1385  09B2  99 06            .WORD PLUS
1386  09B4  0C 06            .WORD SEMIS
1387  09B6            ;
1388  09B6            ;                             HERE
1389  09B6            ;                             SCREEN 38 LINE 3
1390  09B6            ;
1391  09B6  84        L1190  .BYTE $84,'HER',$C5
1391  09B7  48 45 52
1391  09BA  C5
1392  09BB  A9 09            .WORD L1180         ;  LINK TO 2+
1393  09BD  D6 07     HERE   .WORD DOCOL
1394  09BF  01 09            .WORD DP
1395  09C1  79 07            .WORD AT
1396  09C3  0C 06            .WORD SEMIS
1397  09C5            ;
1398  09C5            ;                             ALLOT
1399  09C5            ;                             SCREEN 38 LINE 4
1400  09C5            ;
1401  09C5  85        L1200  .BYTE $85,'ALLO',$D4
1401  09C6  41 4C
1401  09C8  4C 4F
1401  09CA  D4
1402  09CB  B6 09            .WORD L1190         ;  LINK TO HERE
1403  09CD  D6 07     ALLOT  .WORD DOCOL
1404  09CF  01 09            .WORD DP
1405  09D1  49 07            .WORD PSTOR
1406  09D3  0C 06            .WORD SEMIS
1407  09D5            ;
1408  09D5            ;                             ,
1409  09D5            ;                             SCREEN 38 LINE 5
1410  09D5            ;
1411  09D5  81        L1210  .BYTE $81,$AC
1411  09D6  AC
1412  09D7  C5 09            .WORD L1200         ;  LINK TO ALLOT
1413  09D9  D6 07     COMMA  .WORD DOCOL
1414  09DB  BD 09            .WORD HERE
1415  09DD  9D 07            .WORD STORE
1416  09DF  6D 08            .WORD TWO
1417  09E1  CD 09            .WORD ALLOT
1418  09E3  0C 06            .WORD SEMIS

fig-FORTH for 6502, Rel 1.1   ......PAGE 0031

LINE # LOC     CODE       LINE

1419  09E5            ;
1420  09E5            ;                             C,
1421  09E5            ;                             SCREEN 38 LINE 6
1422  09E5            ;
1423  09E5  82        L1222  .BYTE $82,'C',$AC
1423  09E6  43
1423  09E7  AC
1424  09E8  D5 09            .WORD L1210         ;  LINK TO ,
1425  09EA  D6 07     CCOMM  .WORD DOCOL
1426  09EC  BD 09            .WORD HERE
1427  09EE  B5 07            .WORD CSTOR
1428  09F0  65 08            .WORD ONE
1429  09F2  CD 09            .WORD ALLOT
1430  09F4  0C 06            .WORD SEMIS
1431  09F6            ;
1432  09F6            ;                             -
1433  09F6            ;                             SCREEN 38 LINE 7
1434  09F6            ;
1435  09F6  81        L1234  .BYTE $81,$AD
1435  09F7  AD
1436  09F8  E5 09            .WORD L1222         ;  LINK TO C,
1437  09FA  D6 07     SUB    .WORD DOCOL
1438  09FC  D8 06            .WORD MINUS
1439  09FE  99 06            .WORD PLUS
1440  0A00  0C 06            .WORD SEMIS
1441  0A02            ;
1442  0A02            ;                             =
1443  0A02            ;                             SCREEN 38 LINE 8
1444  0A02            ;
1445  0A02  81        L1244  .BYTE $81,$BD
1445  0A03  BD
1446  0A04  F6 09            .WORD L1234         ;  LINK TO -
1447  0A06  D6 07     EQUAL  .WORD DOCOL
1448  0A08  FA 09            .WORD SUB
1449  0A0A  73 06            .WORD ZEQU
1450  0A0C  0C 06            .WORD SEMIS
1451  0A0E            ;
1452  0A0E            ;                             U<
1453  0A0E            ;                             Unsigned less than
1454  0A0E            ;
1455  0A0E  82        L1246  .BYTE $82,'U',$BC
1455  0A0F  55
1455  0A10  BC
1456  0A11  02 0A            .WORD L1244
1457  0A13  D6 07     ULESS  .WORD DOCOL
1458  0A15  FA 09            .WORD SUB    subtract two values
1459  0A17  88 06            .WORD ZLESS   test sign
1460  0A19  0C 06            .WORD SEMIS
1461  0A1B            ;
1462  0A1B            ;                             <
1463  0A1B            ;                              Altered from model
1464  0A1B            ;                             SCREEN 38 LINE 9
1465  0A1B            ;
1466  0A1B  81        L1254  .BYTE $81,$BC
1466  0A1C  BC

fig-FORTH for 6502, Rel 1.1   ......PAGE 0032

LINE # LOC     CODE       LINE

1467  0A1D  0E 0A            .WORD L1246    LINK TO U<
1468  0A1F  21 0A     LESS   .WORD *+2
1469  0A21  38               SEC
1470  0A22  B5 02            LDA 2,X
1471  0A24  F5 00            SBC 0,X      subtract
1472  0A26  B5 03            LDA 3,X
1473  0A28  F5 01            SBC 1,X
1474  0A2A  94 03            STY 3,X          zero hi byte
1475  0A2C  50 02            BVC L1258
1476  0A2E  49 80            EOR #$80         correct overflow
1477  0A30  10 01     L1258  BPL L1260
1478  0A32  C8               INY              invert boolean
1479  0A33  94 02     L1260  STY 2,X        leave boolean
1480  0A35  4C EE 03         JMP POP
1481  0A38            ;
1482  0A38            ;                             >
1483  0A38            ;                             SCREEN 38 LINE 10
1484  0A38            ;
1485  0A38  81        L1264  .BYTE $81,$BE
1485  0A39  BE
1486  0A3A  1B 0A            .WORD L1254         ;  LINK TO <
1487  0A3C  D6 07     GREAT  .WORD DOCOL
1488  0A3E  22 07            .WORD SWAP
1489  0A40  1F 0A            .WORD LESS
1490  0A42  0C 06            .WORD SEMIS
1491  0A44            ;
1492  0A44            ;                             ROT
1493  0A44            ;                             SCREEN 38 LINE 11
1494  0A44            ;
1495  0A44  83        L1274  .BYTE $83,'RO',$D4
1495  0A45  52 4F
1495  0A47  D4
1496  0A48  38 0A            .WORD L1264         ;  LINK TO >
1497  0A4A  D6 07     ROT    .WORD DOCOL
1498  0A4C  3A 06            .WORD TOR
1499  0A4E  22 07            .WORD SWAP
1500  0A50  4C 06            .WORD RFROM
1501  0A52  22 07            .WORD SWAP
1502  0A54  0C 06            .WORD SEMIS
1503  0A56            ;
1504  0A56            ;                             SPACE
1505  0A56            ;                             SCREEN 38 LINE 12
1506  0A56            ;
1507  0A56  85        L1286  .BYTE $85,'SPAC',$C5
1507  0A57  53 50
1507  0A59  41 43
1507  0A5B  C5
1508  0A5C  44 0A            .WORD L1274         ;  LINK TO ROT
1509  0A5E  D6 07     SPACE  .WORD DOCOL
1510  0A60  7E 08            .WORD BL
1511  0A62  D7 04            .WORD EMIT
1512  0A64  0C 06            .WORD SEMIS
1513  0A66            ;
1514  0A66            ;                             -DUP
1515  0A66            ;                             SCREEN 38 LINE 13
1516  0A66            ;

fig-FORTH for 6502, Rel 1.1   ......PAGE 0033

LINE # LOC     CODE       LINE

1517  0A66  84        L1296  .BYTE $84,'-DU',$D0
1517  0A67  2D 44 55
1517  0A6A  D0
1518  0A6B  56 0A            .WORD L1286         ;  LINK TO SPACE
1519  0A6D  D6 07     DDUP   .WORD DOCOL
1520  0A6F  3A 07            .WORD DUP
1521  0A71  56 03            .WORD ZBRAN
1522  0A73  04 00     L1301  .WORD $4            L1303-L1301
1523  0A75  3A 07            .WORD DUP
1524  0A77  0C 06     L1303  .WORD SEMIS
1525  0A79            ;
1526  0A79            ;                             TRAVERSE
1527  0A79            ;                             SCREEN 39 LINE 14
1528  0A79            ;
1529  0A79  88        L1308  .BYTE $88,'TRAVERS',$C5
1529  0A7A  54 52
1529  0A7C  41 56 45
1529  0A7F  52 53
1529  0A81  C5
1530  0A82  66 0A            .WORD L1296         ;  LINK TO -DUP
1531  0A84  D6 07     TRAV   .WORD DOCOL
1532  0A86  22 07            .WORD SWAP
1533  0A88  08 07     L1312  .WORD OVER
1534  0A8A  99 06            .WORD PLUS
1535  0A8C  67 02            .WORD CLIT
1536  0A8E  7F               .BYTE $7F
1537  0A8F  08 07            .WORD OVER
1538  0A91  8E 07            .WORD CAT
1539  0A93  1F 0A            .WORD LESS
1540  0A95  56 03            .WORD ZBRAN
1541  0A97  F1 FF     L1320  .WORD $FFF1         L1312-L1320
1542  0A99  22 07            .WORD SWAP
1543  0A9B  19 07            .WORD DROP
1544  0A9D  0C 06            .WORD SEMIS
1545  0A9F            ;
1546  0A9F            ;                             LATEST
1547  0A9F            ;                             SCREEN 39 LINE 6
1548  0A9F            ;
1549  0A9F  86        L1328  .BYTE $86,'LATES',$D4
1549  0AA0  4C 41
1549  0AA2  54 45 53
1549  0AA5  D4
1550  0AA6  79 0A            .WORD L1308         ;  LINK TO TRAVERSE
1551  0AA8  D6 07     LATES  .WORD DOCOL
1552  0AAA  58 09            .WORD CURR
1553  0AAC  79 07            .WORD AT
1554  0AAE  79 07            .WORD AT
1555  0AB0  0C 06            .WORD SEMIS
1556  0AB2            ;
1557  0AB2            ;                             LFA
1558  0AB2            ;                             SCREEN 39 LINE 11
1559  0AB2            ;
1560  0AB2  83        L1339  .BYTE $83,'LF',$C1
1560  0AB3  4C 46
1560  0AB5  C1
1561  0AB6  9F 0A            .WORD L1328         ;  LINK TO LATEST
1562  0AB8  D6 07     LFA    .WORD DOCOL
1563  0ABA  67 02            .WORD CLIT

fig-FORTH for 6502, Rel 1.1   ......PAGE 0034

LINE # LOC     CODE       LINE

1564  0ABC  04               .BYTE 4
1565  0ABD  FA 09            .WORD SUB
1566  0ABF  0C 06            .WORD SEMIS
1567  0AC1            ;
1568  0AC1            ;                             CFA
1569  0AC1            ;                             SCREEN 39 LINE 12
1570  0AC1            ;
1571  0AC1  83        L1350  .BYTE $83,'CF',$C1
1571  0AC2  43 46
1571  0AC4  C1
1572  0AC5  B2 0A            .WORD L1339         ;  LINK TO LFA
1573  0AC7  D6 07     CFA    .WORD DOCOL
1574  0AC9  6D 08            .WORD TWO
1575  0ACB  FA 09            .WORD SUB
1576  0ACD  0C 06            .WORD SEMIS
1577  0ACF            ;
1578  0ACF            ;                             NFA
1579  0ACF            ;                             SCREEN 39 LINE 13
1580  0ACF            ;
1581  0ACF  83        L1360  .BYTE $83,'NF',$C1
1581  0AD0  4E 46
1581  0AD2  C1
1582  0AD3  C1 0A            .WORD L1350         ;  LINK TO CFA
1583  0AD5  D6 07     NFA    .WORD DOCOL
1584  0AD7  67 02            .WORD CLIT
1585  0AD9  05               .BYTE $5
1586  0ADA  FA 09            .WORD SUB
1587  0ADC  2A 02            .WORD LIT,$FFFF
1587  0ADE  FF FF
1588  0AE0  84 0A            .WORD TRAV
1589  0AE2  0C 06            .WORD SEMIS
1590  0AE4            ;
1591  0AE4            ;                             PFA
1592  0AE4            ;                             SCREEN 39 LINE 1
1593  0AE4            ;
1594  0AE4  83        L1373  .BYTE $83,'PF',$C1
1594  0AE5  50 46
1594  0AE7  C1
1595  0AE8  CF 0A            .WORD L1360         ;  LINK TO NFA
1596  0AEA  D6 07     PFA    .WORD DOCOL
1597  0AEC  65 08            .WORD ONE
1598  0AEE  84 0A            .WORD TRAV
1599  0AF0  67 02            .WORD CLIT
1600  0AF2  05               .BYTE 5
1601  0AF3  99 06            .WORD PLUS
1602  0AF5  0C 06            .WORD SEMIS
1603  0AF7            ;
1604  0AF7            ;                             !CSP
1605  0AF7            ;                             SCREEN 40 LINE 1
1606  0AF7            ;
1607  0AF7  84        L1386  .BYTE $84,'!CS',$D0
1607  0AF8  21 43 53
1607  0AFB  D0
1608  0AFC  E4 0A            .WORD L1373          ;  LINK TO PFA
1609  0AFE  D6 07     SCSP   .WORD DOCOL

fig-FORTH for 6502, Rel 1.1   ......PAGE 0035

LINE # LOC     CODE       LINE

1610  0B00  D9 05            .WORD SPAT
1611  0B02  88 09            .WORD CSP
1612  0B04  9D 07            .WORD STORE
1613  0B06  0C 06            .WORD SEMIS
1614  0B08            ;
1615  0B08            ;                             ?ERROR
1616  0B08            ;                             SCREEN 40 LINE 3
1617  0B08            ;
1618  0B08  86        L1397  .BYTE $86,'?ERRO',$D2
1618  0B09  3F 45
1618  0B0B  52 52 4F
1618  0B0E  D2
1619  0B0F  F7 0A            .WORD L1386         ;  LINK TO !CSP
1620  0B11  D6 07     QERR   .WORD DOCOL
1621  0B13  22 07            .WORD SWAP
1622  0B15  56 03            .WORD ZBRAN
1623  0B17  08 00     L1402  .WORD 8            L1406-L1402
1624  0B19  CD 0F            .WORD ERROR
1625  0B1B  37 03            .WORD BRAN
1626  0B1D  04 00     L1405  .WORD 4            L1407-L1405
1627  0B1F  19 07     L1406  .WORD DROP
1628  0B21  0C 06     L1407  .WORD SEMIS
1629  0B23            ;
1630  0B23            ;                             ?COMP
1631  0B23            ;                             SCREEN 40 LINE 6
1632  0B23            ;
1633  0B23  85        L1412  .BYTE $85,'?COM',$D0
1633  0B24  3F 43
1633  0B26  4F 4D
1633  0B28  D0
1634  0B29  08 0B            .WORD L1397         ;  LINK TO ?ERROR
1635  0B2B  D6 07     QCOMP  .WORD DOCOL
1636  0B2D  63 09            .WORD STATE
1637  0B2F  79 07            .WORD AT
1638  0B31  73 06            .WORD ZEQU
1639  0B33  67 02            .WORD CLIT
1640  0B35  11               .BYTE $11
1641  0B36  11 0B            .WORD QERR
1642  0B38  0C 06            .WORD SEMIS
1643  0B3A            ;
1644  0B3A            ;                             ?EXEC
1645  0B3A            ;                             SCREEN 40 LINE 8
1646  0B3A            ;
1647  0B3A  85        L1426  .BYTE $85,'?EXE',$C3
1647  0B3B  3F 45
1647  0B3D  58 45
1647  0B3F  C3
1648  0B40  23 0B            .WORD L1412         ;  LINK TO ?COMP
1649  0B42  D6 07     QEXEC  .WORD DOCOL
1650  0B44  63 09            .WORD STATE
1651  0B46  79 07            .WORD AT
1652  0B48  67 02            .WORD CLIT
1653  0B4A  12               .BYTE $12
1654  0B4B  11 0B            .WORD QERR
1655  0B4D  0C 06            .WORD SEMIS
1656  0B4F            ;
1657  0B4F            ;                             ?PAIRS
1658  0B4F            ;                             SCREEN 40 LINE 10

fig-FORTH for 6502, Rel 1.1   ......PAGE 0036

LINE # LOC     CODE       LINE

1659  0B4F            ;
1660  0B4F  86        L1439  .BYTE $86,'?PAIR',$D3
1660  0B50  3F 50
1660  0B52  41 49 52
1660  0B55  D3
1661  0B56  3A 0B            .WORD L1426         ;  LINK TO ?EXEC
1662  0B58  D6 07     QPAIR  .WORD DOCOL
1663  0B5A  FA 09            .WORD SUB
1664  0B5C  67 02            .WORD CLIT
1665  0B5E  13               .BYTE $13
1666  0B5F  11 0B            .WORD QERR
1667  0B61  0C 06            .WORD SEMIS
1668  0B63            ;
1669  0B63            ;                             ?CSP
1670  0B63            ;                             SCREEN 40 LINE 12
1671  0B63            ;
1672  0B63  84        L1451  .BYTE $84,'?CS',$D0
1672  0B64  3F 43 53
1672  0B67  D0
1673  0B68  4F 0B            .WORD L1439         ;  LINK TO ?PAIRS
1674  0B6A  D6 07     QCSP   .WORD DOCOL
1675  0B6C  D9 05            .WORD SPAT
1676  0B6E  88 09            .WORD CSP
1677  0B70  79 07            .WORD AT
1678  0B72  FA 09            .WORD SUB
1679  0B74  67 02            .WORD CLIT
1680  0B76  14               .BYTE $14
1681  0B77  11 0B            .WORD QERR
1682  0B79  0C 06            .WORD SEMIS
1683  0B7B            ;
1684  0B7B            ;                             ?LOADING
1685  0B7B            ;                             SCREEN 40 LINE 14
1686  0B7B            ;
1687  0B7B  88        L1466  .BYTE $88,'?LOADIN',$C7
1687  0B7C  3F 4C
1687  0B7E  4F 41 44
1687  0B81  49 4E
1687  0B83  C7
1688  0B84  63 0B            .WORD L1451         ;  LINK TO ?CSP
1689  0B86  D6 07     QLOAD  .WORD DOCOL
1690  0B88  18 09            .WORD BLK
1691  0B8A  79 07            .WORD AT
1692  0B8C  73 06            .WORD ZEQU
1693  0B8E  67 02            .WORD CLIT
1694  0B90  16               .BYTE $16
1695  0B91  11 0B            .WORD QERR
1696  0B93  0C 06            .WORD SEMIS
1697  0B95            ;
1698  0B95            ;                             COMPILE
1699  0B95            ;                             SCREEN 41 LINE 2
1700  0B95            ;
1701  0B95  87        L1480  .BYTE $87,'COMPIL',$C5
1701  0B96  43 4F
1701  0B98  4D 50 49
1701  0B9B  4C
1701  0B9C  C5
1702  0B9D  7B 0B            .WORD L1466         ;  LINK TO ?LOADING
1703  0B9F  D6 07     COMP   .WORD DOCOL
1704  0BA1  2B 0B            .WORD QCOMP
1705  0BA3  4C 06            .WORD RFROM

fig-FORTH for 6502, Rel 1.1   ......PAGE 0037

LINE # LOC     CODE       LINE

1706  0BA5  3A 07            .WORD DUP
1707  0BA7  AE 09            .WORD TWOP
1708  0BA9  3A 06            .WORD TOR
1709  0BAB  79 07            .WORD AT
1710  0BAD  D9 09            .WORD COMMA
1711  0BAF  0C 06            .WORD SEMIS
1712  0BB1            ;
1713  0BB1            ;                             [
1714  0BB1            ;                             SCREEN 41 LINE 5
1715  0BB1            ;
1716  0BB1  C1        L1495  .BYTE $C1,$DB
1716  0BB2  DB
1717  0BB3  95 0B            .WORD L1480         ;  LINK TO COMPILE
1718  0BB5  D6 07     LBRAC  .WORD DOCOL
1719  0BB7  5D 08            .WORD ZERO
1720  0BB9  63 09            .WORD STATE
1721  0BBB  9D 07            .WORD STORE
1722  0BBD  0C 06            .WORD SEMIS
1723  0BBF            ;
1724  0BBF            ;
1725  0BBF            ;                             ]
1726  0BBF            ;                             SCREEN 41 LINE 7
1727  0BBF            ;
1728  0BBF  81        L1507  .BYTE $81,$DD
1728  0BC0  DD
1729  0BC1  B1 0B            .WORD L1495         ;  LINK TO [
1730  0BC3  D6 07     RBRAC  .WORD DOCOL
1731  0BC5  67 02            .WORD CLIT
1732  0BC7  C0               .BYTE $C0
1733  0BC8  63 09            .WORD STATE
1734  0BCA  9D 07            .WORD STORE
1735  0BCC  0C 06            .WORD SEMIS
1736  0BCE            ;
1737  0BCE            ;                             SMUDGE
1738  0BCE            ;                             SCREEN 41 LINE 9
1739  0BCE            ;
1740  0BCE  86        L1519  .BYTE $86,'SMUDG',$C5
1740  0BCF  53 4D
1740  0BD1  55 44 47
1740  0BD4  C5
1741  0BD5  BF 0B            .WORD L1507         ;  LINK TO ]
1742  0BD7  D6 07     SMUDG  .WORD DOCOL
1743  0BD9  A8 0A            .WORD LATES
1744  0BDB  67 02            .WORD CLIT
1745  0BDD  20               .BYTE $20
1746  0BDE  6A 07            .WORD TOGGL
1747  0BE0  0C 06            .WORD SEMIS
1748  0BE2            ;
1749  0BE2            ;                             HEX
1750  0BE2            ;                             SCREEN 41 LINE 11
1751  0BE2            ;
1752  0BE2  83        L1531  .BYTE $83,'HE',$D8
1752  0BE3  48 45
1752  0BE5  D8
1753  0BE6  CE 0B            .WORD L1519         ;  LINK TO SMUDGE
1754  0BE8  D6 07     HEX    .WORD DOCOL

fig-FORTH for 6502, Rel 1.1   ......PAGE 0038

LINE # LOC     CODE       LINE

1755  0BEA  67 02            .WORD CLIT
1756  0BEC  10               .BYTE 16
1757  0BED  6D 09            .WORD BASE
1758  0BEF  9D 07            .WORD STORE
1759  0BF1  0C 06            .WORD SEMIS
1760  0BF3            ;
1761  0BF3            ;                             DECIMAL
1762  0BF3            ;                             SCREEN 41 LINE 13
1763  0BF3            ;
1764  0BF3  87        L1543  .BYTE $87,'DECIMA',$CC
1764  0BF4  44 45
1764  0BF6  43 49 4D
1764  0BF9  41
1764  0BFA  CC
1765  0BFB  E2 0B            .WORD L1531         ;  LINK TO HEX
1766  0BFD  D6 07     DECIM  .WORD DOCOL
1767  0BFF  67 02            .WORD CLIT
1768  0C01  0A               .BYTE 10
1769  0C02  6D 09            .WORD BASE
1770  0C04  9D 07            .WORD STORE
1771  0C06  0C 06            .WORD SEMIS
1772  0C08            ;
1773  0C08            ;                             (;CODE)
1774  0C08            ;                             SCREEN 42 LINE 2
1775  0C08            ;
1776  0C08  87        L1555  .BYTE $87,'(;CODE',$A9
1776  0C09  28 3B
1776  0C0B  43 4F 44
1776  0C0E  45
1776  0C0F  A9
1777  0C10  F3 0B            .WORD L1543         ;  LINK TO DECIMAL
1778  0C12  D6 07     PSCOD  .WORD DOCOL
1779  0C14  4C 06            .WORD RFROM
1780  0C16  A8 0A            .WORD LATES
1781  0C18  EA 0A            .WORD PFA
1782  0C1A  C7 0A            .WORD CFA
1783  0C1C  9D 07            .WORD STORE
1784  0C1E  0C 06            .WORD SEMIS
1785  0C20            ;
1786  0C20            ;                             ;CODE
1787  0C20            ;                             SCREEN 42 LINE 6
1788  0C20            ;
1789  0C20  C5        L1568  .BYTE $C5,';COD',$C5
1789  0C21  3B 43
1789  0C23  4F 44
1789  0C25  C5
1790  0C26  08 0C            .WORD L1555         ;  LINK TO (;CODE)
1791  0C28  D6 07            .WORD DOCOL
1792  0C2A  6A 0B            .WORD QCSP
1793  0C2C  9F 0B            .WORD COMP
1794  0C2E  12 0C            .WORD PSCOD
1795  0C30  B5 0B            .WORD LBRAC
1796  0C32  D7 0B            .WORD SMUDG
1797  0C34  0C 06            .WORD SEMIS
1798  0C36            ;
1799  0C36            ;
1800  0C36            ;                             <BUILDS
1801  0C36            ;                             SCREEN 43 LINE 2
1802  0C36            ;
1803  0C36  87        L1582  .BYTE $87,'<BUILD',$D3

fig-FORTH for 6502, Rel 1.1   ......PAGE 0039

LINE # LOC     CODE       LINE

1803  0C37  3C 42
1803  0C39  55 49 4C
1803  0C3C  44
1803  0C3D  D3
1804  0C3E  20 0C            .WORD L1568         ;  LINK TO ;CODE
1805  0C40  D6 07     BUILD  .WORD DOCOL
1806  0C42  5D 08            .WORD ZERO
1807  0C44  0B 08            .WORD CONST
1808  0C46  0C 06            .WORD SEMIS
1809  0C48            ;
1810  0C48            ;                             DOES>
1811  0C48            ;                             SCREEN 43 LINE 4
1812  0C48            ;
1813  0C48  85        L1592  .BYTE $85,'DOES',$BE
1813  0C49  44 4F
1813  0C4B  45 53
1813  0C4D  BE
1814  0C4E  36 0C            .WORD L1582         ;  LINK TO <BUILDS
1815  0C50  D6 07     DOES   .WORD DOCOL
1816  0C52  4C 06            .WORD RFROM
1817  0C54  A8 0A            .WORD LATES
1818  0C56  EA 0A            .WORD PFA
1819  0C58  9D 07            .WORD STORE
1820  0C5A  12 0C            .WORD PSCOD
1821  0C5C            ;
1822  0C5C  A5 AF     DODOE  LDA IP+1
1823  0C5E  48               PHA
1824  0C5F  A5 AE            LDA IP
1825  0C61  48               PHA
1826  0C62  A0 02            LDY #2
1827  0C64  B1 B1            LDA (W),Y
1828  0C66  85 AE            STA IP
1829  0C68  C8               INY
1830  0C69  B1 B1            LDA (W),Y
1831  0C6B  85 AF            STA IP+1
1832  0C6D  18               CLC
1833  0C6E  A5 B1            LDA W
1834  0C70  69 04            ADC #4
1835  0C72  48               PHA
1836  0C73  A5 B2            LDA W+1
1837  0C75  69 00            ADC #0
1838  0C77  4C 3D 02         JMP PUSH
1839  0C7A            ;
1840  0C7A            ;                             COUNT
1841  0C7A            ;                             SCREEN 44 LINE 1
1842  0C7A            ;
1843  0C7A  85        L1622  .BYTE $85,'COUN',$D4
1843  0C7B  43 4F
1843  0C7D  55 4E
1843  0C7F  D4
1844  0C80  48 0C            .WORD L1592         ;  LINK TO DOES>
1845  0C82  D6 07     COUNT  .WORD DOCOL
1846  0C84  3A 07            .WORD DUP
1847  0C86  A1 09            .WORD ONEP
1848  0C88  22 07            .WORD SWAP
1849  0C8A  8E 07            .WORD CAT
1850  0C8C  0C 06            .WORD SEMIS
1851  0C8E            ;
1852  0C8E            ;                             TYPE

fig-FORTH for 6502, Rel 1.1   ......PAGE 0040

LINE # LOC     CODE       LINE

1853  0C8E            ;                             SCREEN 44 LINE 2
1854  0C8E            ;
1855  0C8E  84        L1634  .BYTE $84,'TYP',$C5
1855  0C8F  54 59 50
1855  0C92  C5
1856  0C93  7A 0C            .WORD L1622         ;  LINK TO COUNT
1857  0C95  D6 07     TYPE   .WORD DOCOL
1858  0C97  6D 0A            .WORD DDUP
1859  0C99  56 03            .WORD ZBRAN
1860  0C9B  18 00     L1639  .WORD $18           L1651-L1639
1861  0C9D  08 07            .WORD OVER
1862  0C9F  99 06            .WORD PLUS
1863  0CA1  22 07            .WORD SWAP
1864  0CA3  DE 03            .WORD PDO
1865  0CA5  F7 03     L1644  .WORD I
1866  0CA7  8E 07            .WORD CAT
1867  0CA9  D7 04            .WORD EMIT
1868  0CAB  77 03            .WORD PLOOP
1869  0CAD  F8 FF     L1648  .WORD $FFF8         L1644-L1648
1870  0CAF  37 03            .WORD BRAN
1871  0CB1  04 00     L1650  .WORD $4            L1652-L1650
1872  0CB3  19 07     L1651  .WORD DROP
1873  0CB5  0C 06     L1652  .WORD SEMIS
1874  0CB7            ;
1875  0CB7            ;                             -TRAILING
1876  0CB7            ;                             SCREEN 44 LINE 5
1877  0CB7            ;
1878  0CB7  89        L1657  .BYTE $89,'-TRAILIN',$C7
1878  0CB8  2D 54
1878  0CBA  52 41 49
1878  0CBD  4C 49 4E
1878  0CC0  C7
1879  0CC1  8E 0C            .WORD L1634         ;  LINK TO TYPE
1880  0CC3  D6 07     DTRAI  .WORD DOCOL
1881  0CC5  3A 07            .WORD DUP
1882  0CC7  5D 08            .WORD ZERO
1883  0CC9  DE 03            .WORD PDO
1884  0CCB  08 07     L1663  .WORD OVER
1885  0CCD  08 07            .WORD OVER
1886  0CCF  99 06            .WORD PLUS
1887  0CD1  65 08            .WORD ONE
1888  0CD3  FA 09            .WORD SUB
1889  0CD5  8E 07            .WORD CAT
1890  0CD7  7E 08            .WORD BL
1891  0CD9  FA 09            .WORD SUB
1892  0CDB  56 03            .WORD ZBRAN
1893  0CDD  08 00     L1672  .WORD 8             L1676-L1672
1894  0CDF  1F 06            .WORD LEAVE
1895  0CE1  37 03            .WORD BRAN
1896  0CE3  06 00     L1675  .WORD 6             L1678-L1675
1897  0CE5  65 08     L1676  .WORD ONE
1898  0CE7  FA 09            .WORD SUB
1899  0CE9  77 03     L1678  .WORD PLOOP
1900  0CEB  E0 FF     L1679  .WORD $FFE0         L1663-L1679
1901  0CED  0C 06            .WORD SEMIS
1902  0CEF            ;
1903  0CEF            ;                             (.")

fig-FORTH for 6502, Rel 1.1   ......PAGE 0041

LINE # LOC     CODE       LINE

1904  0CEF            ;                             SCREEN 44 LINE 8
1905  0CEF            ;
1906  0CEF  84        L1685  .BYTE $84,'(."',$A9
1906  0CF0  28 2E 22
1906  0CF3  A9
1907  0CF4  B7 0C            .WORD L1657         ;  LINK TO -TRAILING
1908  0CF6  D6 07     PDOTQ  .WORD DOCOL
1909  0CF8  5D 06            .WORD R
1910  0CFA  82 0C            .WORD COUNT
1911  0CFC  3A 07            .WORD DUP
1912  0CFE  A1 09            .WORD ONEP
1913  0D00  4C 06            .WORD RFROM
1914  0D02  99 06            .WORD PLUS
1915  0D04  3A 06            .WORD TOR
1916  0D06  95 0C            .WORD TYPE
1917  0D08  0C 06            .WORD SEMIS
1918  0D0A            ;
1919  0D0A            ;                             ."
1920  0D0A            ;                             SCREEN 44 LINE 12
1921  0D0A            ;
1922  0D0A  C2        L1701  .BYTE $C2,'.',$A2
1922  0D0B  2E
1922  0D0C  A2
1923  0D0D  EF 0C            .WORD L1685         ;  LINK TO PDOTQ
1924  0D0F  D6 07            .WORD DOCOL
1925  0D11  67 02            .WORD CLIT
1926  0D13  22               .BYTE $22
1927  0D14  63 09            .WORD STATE
1928  0D16  79 07            .WORD AT
1929  0D18  56 03            .WORD ZBRAN
1930  0D1A  14 00     L1709  .WORD $14           L1719-L1709
1931  0D1C  9F 0B            .WORD COMP
1932  0D1E  F6 0C            .WORD PDOTQ
1933  0D20  70 0E            .WORD WORD
1934  0D22  BD 09            .WORD HERE
1935  0D24  8E 07            .WORD CAT
1936  0D26  A1 09            .WORD ONEP
1937  0D28  CD 09            .WORD ALLOT
1938  0D2A  37 03            .WORD BRAN
1939  0D2C  0A 00     L1718  .WORD $A            L1723-L1718
1940  0D2E  70 0E     L1719  .WORD WORD
1941  0D30  BD 09            .WORD HERE
1942  0D32  82 0C            .WORD COUNT
1943  0D34  95 0C            .WORD TYPE
1944  0D36  0C 06     L1723  .WORD SEMIS
1945  0D38            ;
1946  0D38            ;
1947  0D38            ;                             EXPECT
1948  0D38            ;                             SCREEN 45 LINE 2
1949  0D38            ;
1950  0D38  86        L1729  .BYTE $86,'EXPEC',$D4
1950  0D39  45 58
1950  0D3B  50 45 43
1950  0D3E  D4
1951  0D3F  0A 0D            .WORD L1701         ;  LINK TO ."
1952  0D41  D6 07     EXPEC  .WORD DOCOL

fig-FORTH for 6502, Rel 1.1   ......PAGE 0042

LINE # LOC     CODE       LINE

1953  0D43  08 07            .WORD OVER
1954  0D45  99 06            .WORD PLUS
1955  0D47  08 07            .WORD OVER
1956  0D49  DE 03            .WORD PDO
1957  0D4B  DF 04     L1736  .WORD KEY
1958  0D4D  3A 07            .WORD DUP
1959  0D4F  67 02            .WORD CLIT
1960  0D51  0E               .BYTE $E
1961  0D52  C6 08            .WORD PORIG
1962  0D54  79 07            .WORD AT
1963  0D56  06 0A            .WORD EQUAL
1964  0D58  56 03            .WORD ZBRAN
1965  0D5A  1F 00     L1744  .WORD $1F           L1760-L1744
1966  0D5C  19 07            .WORD DROP
1967  0D5E  67 02            .WORD CLIT
1968  0D60  08               .BYTE 08
1969  0D61  08 07            .WORD OVER
1970  0D63  F7 03            .WORD I
1971  0D65  06 0A            .WORD EQUAL
1972  0D67  3A 07            .WORD DUP
1973  0D69  4C 06            .WORD RFROM
1974  0D6B  6D 08            .WORD TWO
1975  0D6D  FA 09            .WORD SUB
1976  0D6F  99 06            .WORD PLUS
1977  0D71  3A 06            .WORD TOR
1978  0D73  FA 09            .WORD SUB
1979  0D75  37 03            .WORD BRAN
1980  0D77  27 00     L1759  .WORD $27           L1779-L1759
1981  0D79  3A 07     L1760  .WORD DUP
1982  0D7B  67 02            .WORD CLIT
1983  0D7D  0D               .BYTE $0D
1984  0D7E  06 0A            .WORD EQUAL
1985  0D80  56 03            .WORD ZBRAN
1986  0D82  0E 00     L1765  .WORD $0E            L1772-L1765
1987  0D84  1F 06            .WORD LEAVE
1988  0D86  19 07            .WORD DROP
1989  0D88  7E 08            .WORD BL
1990  0D8A  5D 08            .WORD ZERO
1991  0D8C  37 03            .WORD BRAN
1992  0D8E  04 00     L1771  .WORD 04            L1773-L1771
1993  0D90  3A 07     L1772  .WORD DUP
1994  0D92  F7 03     L1773  .WORD I
1995  0D94  B5 07            .WORD CSTOR
1996  0D96  5D 08            .WORD ZERO
1997  0D98  F7 03            .WORD I
1998  0D9A  A1 09            .WORD ONEP
1999  0D9C  9D 07            .WORD STORE
2000  0D9E  D7 04     L1779  .WORD EMIT
2001  0DA0  77 03            .WORD PLOOP
2002  0DA2  A9 FF     L1781  .WORD $FFA9         L1736-L1781
2003  0DA4  19 07            .WORD DROP
2004  0DA6  0C 06            .WORD SEMIS
2005  0DA8            ;
2006  0DA8            ;                             QUERY
2007  0DA8            ;                             SCREEN 45 LINE 9

fig-FORTH for 6502, Rel 1.1   ......PAGE 0043

LINE # LOC     CODE       LINE

2008  0DA8            ;
2009  0DA8  85        L1788  .BYTE $85,'QUER',$D9
2009  0DA9  51 55
2009  0DAB  45 52
2009  0DAD  D9
2010  0DAE  38 0D            .WORD L1729         ;  LINK TO EXPECT
2011  0DB0  D6 07     QUERY  .WORD DOCOL
2012  0DB2  D6 08            .WORD TIB
2013  0DB4  79 07            .WORD AT
2014  0DB6  67 02            .WORD CLIT
2015  0DB8  50               .BYTE 80     80 characters from terminal
2016  0DB9  41 0D            .WORD EXPEC
2017  0DBB  5D 08            .WORD ZERO
2018  0DBD  20 09            .WORD IN
2019  0DBF  9D 07            .WORD STORE
2020  0DC1  0C 06            .WORD SEMIS
2021  0DC3            ;
2022  0DC3            ;                             X
2023  0DC3            ;                             SCREEN 45 LINE 11
2024  0DC3            ;                             Actually ASCII null
2025  0DC3  C1        L1804  .BYTE $C1,$80
2025  0DC4  80
2026  0DC5  A8 0D            .WORD L1788         ;  LINK TO QUERY
2027  0DC7  D6 07            .WORD DOCOL
2028  0DC9  18 09            .WORD BLK
2029  0DCB  79 07            .WORD AT
2030  0DCD  56 03            .WORD ZBRAN
2031  0DCF  2A 00     L1810  .WORD $2A           L1830-L1810
2032  0DD1  65 08            .WORD ONE
2033  0DD3  18 09            .WORD BLK
2034  0DD5  49 07            .WORD PSTOR
2035  0DD7  5D 08            .WORD ZERO
2036  0DD9  20 09            .WORD IN
2037  0DDB  9D 07            .WORD STORE
2038  0DDD  18 09            .WORD BLK
2039  0DDF  79 07            .WORD AT
2040  0DE1  5D 08            .WORD ZERO,BSCR
2040  0DE3  B8 08
2041  0DE5  5B 05            .WORD USLAS
2042  0DE7  19 07            .WORD DROP        fixed from model
2043  0DE9  73 06            .WORD ZEQU
2044  0DEB  56 03            .WORD ZBRAN
2045  0DED  08 00     L1824  .WORD 8             L1828-L1824
2046  0DEF  42 0B            .WORD QEXEC
2047  0DF1  4C 06            .WORD RFROM
2048  0DF3  19 07            .WORD DROP
2049  0DF5  37 03     L1828  .WORD BRAN
2050  0DF7  06 00     L1829  .WORD 6             L1832-L1829
2051  0DF9  4C 06     L1830  .WORD RFROM
2052  0DFB  19 07            .WORD DROP
2053  0DFD  0C 06     L1832  .WORD SEMIS
2054  0DFF            ;
2055  0DFF            ;
2056  0DFF            ;                             FILL
2057  0DFF            ;                             SCREEN 46 LINE 1
2058  0DFF            ;

fig-FORTH for 6502, Rel 1.1   ......PAGE 0044

LINE # LOC     CODE       LINE

2059  0DFF  84        L1838  .BYTE $84,'FIL',$CC
2059  0E00  46 49 4C
2059  0E03  CC
2060  0E04  C3 0D            .WORD L1804         ;  LINK TO X
2061  0E06  D6 07     FILL   .WORD DOCOL
2062  0E08  22 07            .WORD SWAP
2063  0E0A  3A 06            .WORD TOR
2064  0E0C  08 07            .WORD OVER
2065  0E0E  B5 07            .WORD CSTOR
2066  0E10  3A 07            .WORD DUP
2067  0E12  A1 09            .WORD ONEP
2068  0E14  4C 06            .WORD RFROM
2069  0E16  65 08            .WORD ONE
2070  0E18  FA 09            .WORD SUB
2071  0E1A  FE 04            .WORD CMOVE
2072  0E1C  0C 06            .WORD SEMIS
2073  0E1E            ;
2074  0E1E            ;                            ERASE
2075  0E1E            ;                            SCREEN 46 LINE 4
2076  0E1E            ;
2077  0E1E  85        L1856  .BYTE $85,'ERAS',$C5
2077  0E1F  45 52
2077  0E21  41 53
2077  0E23  C5
2078  0E24  FF 0D            .WORD L1838         ;  LINK TO FILL
2079  0E26  D6 07     ERASE  .WORD DOCOL
2080  0E28  5D 08            .WORD ZERO
2081  0E2A  06 0E            .WORD FILL
2082  0E2C  0C 06            .WORD SEMIS
2083  0E2E            ;
2084  0E2E            ; BLANKS
2085  0E2E            ; SCREEN 46 LINE 7
2086  0E2E            ;
2087  0E2E  86        L1866  .BYTE $86,'BLANK',$D3
2087  0E2F  42 4C
2087  0E31  41 4E 4B
2087  0E34  D3
2088  0E35  1E 0E            .WORD L1856         ;  LINK TO ERASE
2089  0E37  D6 07     BLANK  .WORD DOCOL
2090  0E39  7E 08            .WORD BL
2091  0E3B  06 0E            .WORD FILL
2092  0E3D  0C 06            .WORD SEMIS
2093  0E3F            ;
2094  0E3F            ;
2095  0E3F             .FILE FOR3/1
2096  0E3F            ;
2097  0E3F            ;                             HOLD
2098  0E3F            ;                             SCREEN 46 LINE 10
2099  0E3F            ;
2100  0E3F  84        L1876  .BYTE $84,'HOL',$C4
2100  0E40  48 4F 4C
2100  0E43  C4
2101  0E44  2E 0E            .WORD L1866         ;  LINK TO BLANKS
2102  0E46  D6 07     HOLD   .WORD DOCOL
2103  0E48  2A 02            .WORD LIT,$FFFF
2103  0E4A  FF FF
2104  0E4C  99 09            .WORD HLD

fig-FORTH for 6502, Rel 1.1   ......PAGE 0045

LINE # LOC     CODE       LINE

2105  0E4E  49 07            .WORD PSTOR
2106  0E50  99 09            .WORD HLD
2107  0E52  79 07            .WORD AT
2108  0E54  B5 07            .WORD CSTOR
2109  0E56  0C 06            .WORD SEMIS
2110  0E58            ;
2111  0E58            ;                             PAD
2112  0E58            ;                             SCREEN 46 LINE 13
2113  0E58            ;
2114  0E58  83        L1890  .BYTE $83,'PA',$C4
2114  0E59  50 41
2114  0E5B  C4
2115  0E5C  3F 0E            .WORD L1876         ;  LINK TO HOLD
2116  0E5E  D6 07     PAD    .WORD DOCOL
2117  0E60  BD 09            .WORD HERE
2118  0E62  67 02            .WORD CLIT
2119  0E64  44               .BYTE 68  PAD is 68 bytes above here.
2120  0E65  99 06            .WORD PLUS
2121  0E67  0C 06            .WORD SEMIS
2122  0E69            ;
2123  0E69            ;                             WORD
2124  0E69            ;                             SCREEN 47 LINE 1
2125  0E69            ;
2126  0E69  84        L1902  .BYTE $84,'WOR',$C4
2126  0E6A  57 4F 52
2126  0E6D  C4
2127  0E6E  58 0E            .WORD L1890         ;  LINK TO PAD
2128  0E70  D6 07     WORD   .WORD DOCOL
2129  0E72  18 09            .WORD BLK
2130  0E74  79 07            .WORD AT
2131  0E76  56 03            .WORD ZBRAN
2132  0E78  0C 00     L1908  .WORD $C            L1914-L1908
2133  0E7A  18 09            .WORD BLK
2134  0E7C  79 07            .WORD AT
2135  0E7E  D5 14            .WORD BLOCK
2136  0E80  37 03            .WORD BRAN
2137  0E82  06 00     L1913  .WORD $6            L1916-L1913
2138  0E84  D6 08     L1914  .WORD TIB
2139  0E86  79 07            .WORD AT
2140  0E88  20 09     L1916  .WORD IN
2141  0E8A  79 07            .WORD AT
2142  0E8C  99 06            .WORD PLUS
2143  0E8E  22 07            .WORD SWAP
2144  0E90  98 04            .WORD ENCL
2145  0E92  BD 09            .WORD HERE
2146  0E94  67 02            .WORD CLIT
2147  0E96  22               .BYTE $22
2148  0E97  37 0E            .WORD BLANK
2149  0E99  20 09            .WORD IN
2150  0E9B  49 07            .WORD PSTOR
2151  0E9D  08 07            .WORD OVER
2152  0E9F  FA 09            .WORD SUB
2153  0EA1  3A 06            .WORD TOR
2154  0EA3  5D 06            .WORD R
2155  0EA5  BD 09            .WORD HERE

fig-FORTH for 6502, Rel 1.1   ......PAGE 0046

LINE # LOC     CODE       LINE

2156  0EA7  B5 07            .WORD CSTOR
2157  0EA9  99 06            .WORD PLUS
2158  0EAB  BD 09            .WORD HERE
2159  0EAD  A1 09            .WORD ONEP
2160  0EAF  4C 06            .WORD RFROM
2161  0EB1  FE 04            .WORD CMOVE
2162  0EB3  0C 06            .WORD SEMIS
2163  0EB5            ;
2164  0EB5            ;                             UPPER
2165  0EB5            ;                             SCREEN 47 LINE 12
2166  0EB5            ;
2167  0EB5  85        L1943  .BYTE $85,'UPPE',$D2
2167  0EB6  55 50
2167  0EB8  50 45
2167  0EBA  D2
2168  0EBB  69 0E            .WORD L1902         ;  LINK TO WORD
2169  0EBD  D6 07     UPPER  .WORD DOCOL
2170  0EBF  08 07            .WORD OVER         This routine converts text to u
2171  0EC1  99 06            .WORD PLUS         case.  It allows interpretation
2172  0EC3  22 07            .WORD SWAP         from a terminal without a shift
2173  0EC5  DE 03            .WORD PDO          lock.
2174  0EC7  F7 03     L1950  .WORD I
2175  0EC9  8E 07            .WORD CAT
2176  0ECB  67 02            .WORD CLIT
2177  0ECD  5F               .BYTE $5F
2178  0ECE  3C 0A            .WORD GREAT
2179  0ED0  56 03            .WORD ZBRAN
2180  0ED2  09 00     L1956  .WORD 09           L1961-L1956
2181  0ED4  F7 03            .WORD I
2182  0ED6  67 02            .WORD CLIT
2183  0ED8  20               .BYTE $20
2184  0ED9  6A 07            .WORD TOGGL
2185  0EDB  77 03     L1961  .WORD PLOOP
2186  0EDD  EA FF     L1962  .WORD $FFEA        L1950-L1962
2187  0EDF  0C 06            .WORD SEMIS
2188  0EE1            ;
2189  0EE1            ;                             (NUMBER)
2190  0EE1            ;                             SCREEN 48 LINE 1
2191  0EE1            ;
2192  0EE1  88        L1968  .BYTE $88,'(NUMBER',$A9
2192  0EE2  28 4E
2192  0EE4  55 4D 42
2192  0EE7  45 52
2192  0EE9  A9
2193  0EEA  B5 0E            .WORD L1943         ;  LINK TO UPPER
2194  0EEC  D6 07     PNUMB  .WORD DOCOL
2195  0EEE  A1 09     L1971  .WORD ONEP
2196  0EF0  3A 07            .WORD DUP
2197  0EF2  3A 06            .WORD TOR
2198  0EF4  8E 07            .WORD CAT
2199  0EF6  6D 09            .WORD BASE
2200  0EF8  79 07            .WORD AT
2201  0EFA  01 04            .WORD DIGIT
2202  0EFC  56 03            .WORD ZBRAN
2203  0EFE  2C 00     L1979  .WORD $2C           L2001-L1979
2204  0F00  22 07            .WORD SWAP
2205  0F02  6D 09            .WORD BASE
2206  0F04  79 07            .WORD AT

fig-FORTH for 6502, Rel 1.1   ......PAGE 0047

LINE # LOC     CODE       LINE

2207  0F06  23 05            .WORD USTAR
2208  0F08  19 07            .WORD DROP
2209  0F0A  4A 0A            .WORD ROT
2210  0F0C  6D 09            .WORD BASE
2211  0F0E  79 07            .WORD AT
2212  0F10  23 05            .WORD USTAR
2213  0F12  B2 06            .WORD DPLUS
2214  0F14  76 09            .WORD DPL
2215  0F16  79 07            .WORD AT
2216  0F18  A1 09            .WORD ONEP
2217  0F1A  56 03            .WORD ZBRAN
2218  0F1C  08 00     L1994  .WORD 8             L1998-L1994
2219  0F1E  65 08            .WORD ONE
2220  0F20  76 09            .WORD DPL
2221  0F22  49 07            .WORD PSTOR
2222  0F24  4C 06     L1998  .WORD RFROM
2223  0F26  37 03            .WORD BRAN
2224  0F28  C6 FF     L2000  .WORD $FFC6         L1971-L2000
2225  0F2A  4C 06     L2001  .WORD RFROM
2226  0F2C  0C 06            .WORD SEMIS
2227  0F2E            ;
2228  0F2E            ;                             NUMBER
2229  0F2E            ;                             SCREEN 48 LINE 6
2230  0F2E            ;
2231  0F2E  86        L2007  .BYTE $86,'NUMBE',$D2
2231  0F2F  4E 55
2231  0F31  4D 42 45
2231  0F34  D2
2232  0F35  E1 0E            .WORD L1968         ;  LINK TO (NUMBER)
2233  0F37  D6 07     NUMBER .WORD DOCOL
2234  0F39  5D 08            .WORD ZERO
2235  0F3B  5D 08            .WORD ZERO
2236  0F3D  4A 0A            .WORD ROT
2237  0F3F  3A 07            .WORD DUP
2238  0F41  A1 09            .WORD ONEP
2239  0F43  8E 07            .WORD CAT
2240  0F45  67 02            .WORD CLIT
2241  0F47  2D               .BYTE $2D
2242  0F48  06 0A            .WORD EQUAL
2243  0F4A  3A 07            .WORD DUP
2244  0F4C  3A 06            .WORD TOR
2245  0F4E  99 06            .WORD PLUS
2246  0F50  2A 02            .WORD LIT,$FFFF
2246  0F52  FF FF
2247  0F54  76 09     L2023  .WORD DPL
2248  0F56  9D 07            .WORD STORE
2249  0F58  EC 0E            .WORD PNUMB
2250  0F5A  3A 07            .WORD DUP
2251  0F5C  8E 07            .WORD CAT
2252  0F5E  7E 08            .WORD BL
2253  0F60  FA 09            .WORD SUB
2254  0F62  56 03            .WORD ZBRAN
2255  0F64  15 00     L2031  .WORD $15           L2042-L2031
2256  0F66  3A 07            .WORD DUP
2257  0F68  8E 07            .WORD CAT
2258  0F6A  67 02            .WORD CLIT

fig-FORTH for 6502, Rel 1.1   ......PAGE 0048

LINE # LOC     CODE       LINE

2259  0F6C  2E               .BYTE $2E
2260  0F6D  FA 09            .WORD SUB
2261  0F6F  5D 08            .WORD ZERO
2262  0F71  11 0B            .WORD QERR
2263  0F73  5D 08            .WORD ZERO
2264  0F75  37 03            .WORD BRAN
2265  0F77  DD FF     L2041  .WORD $FFDD         L2023-L2041
2266  0F79  19 07     L2042  .WORD DROP
2267  0F7B  4C 06            .WORD RFROM
2268  0F7D  56 03            .WORD ZBRAN
2269  0F7F  04 00     L2045  .WORD 4             L2047-L2045
2270  0F81  F1 06            .WORD DMINU
2271  0F83  0C 06     L2047  .WORD SEMIS
2272  0F85            ;
2273  0F85            ;                             -FIND
2274  0F85            ;                             SCREEN 48 LINE 12
2275  0F85            ;
2276  0F85  85        L2052  .BYTE $85,'-FIN',$C4
2276  0F86  2D 46
2276  0F88  49 4E
2276  0F8A  C4
2277  0F8B  2E 0F            .WORD L2007        ;  LINK TO NUMBER
2278  0F8D  D6 07     DFIND  .WORD DOCOL
2279  0F8F  7E 08            .WORD BL
2280  0F91  70 0E            .WORD WORD
2281  0F93  BD 09            .WORD HERE    ) Optional allowing free use
2282  0F95  82 0C            .WORD COUNT   | case from terminal.
2283  0F97  BD 0E            .WORD UPPER   )
2284  0F99  BD 09            .WORD HERE
2285  0F9B  4B 09            .WORD CON
2286  0F9D  79 07            .WORD AT
2287  0F9F  79 07            .WORD AT
2288  0FA1  32 04            .WORD PFIND
2289  0FA3  3A 07            .WORD DUP
2290  0FA5  73 06            .WORD ZEQU
2291  0FA7  56 03            .WORD ZBRAN
2292  0FA9  0A 00     L2068  .WORD $A            L2073-L2068
2293  0FAB  19 07            .WORD DROP
2294  0FAD  BD 09            .WORD HERE
2295  0FAF  A8 0A            .WORD LATES
2296  0FB1  32 04            .WORD PFIND
2297  0FB3  0C 06     L2073  .WORD SEMIS
2298  0FB5            ;
2299  0FB5            ;                             (ABORT)
2300  0FB5            ;                             SCREEN 49 LINE 2
2301  0FB5            ;
2302  0FB5  87        L2078  .BYTE $87,'(ABORT',$A9
2302  0FB6  28 41
2302  0FB8  42 4F 52
2302  0FBB  54
2302  0FBC  A9
2303  0FBD  85 0F            .WORD L2052         ;  LINK TO -FIND
2304  0FBF  D6 07     PABOR  .WORD DOCOL
2305  0FC1  1D 12            .WORD ABORT
2306  0FC3  0C 06            .WORD SEMIS
2307  0FC5            ;
2308  0FC5            ;                             ERROR
2309  0FC5            ;                             SCREEN 49 LINE 4

fig-FORTH for 6502, Rel 1.1   ......PAGE 0049

LINE # LOC     CODE       LINE

2310  0FC5            ;
2311  0FC5  85        L2087  .BYTE $85,'ERRO',$D2
2311  0FC6  45 52
2311  0FC8  52 4F
2311  0FCA  D2
2312  0FCB  B5 0F            .WORD L2078         ;  LINK TO (ABORT)
2313  0FCD  D6 07     ERROR  .WORD DOCOL
2314  0FCF  EE 08            .WORD WARN
2315  0FD1  79 07            .WORD AT
2316  0FD3  88 06            .WORD ZLESS
2317  0FD5  56 03            .WORD ZBRAN
2318  0FD7  04 00     L2094  .WORD $4            L2096-L2094
2319  0FD9  BF 0F            .WORD PABOR
2320  0FDB  BD 09     L2096  .WORD HERE
2321  0FDD  82 0C            .WORD COUNT
2322  0FDF  95 0C            .WORD TYPE
2323  0FE1  F6 0C            .WORD PDOTQ
2324  0FE3  04               .BYTE 4,'  ? '
2324  0FE4  20 20
2324  0FE6  3F 20
2325  0FE8  6C 15            .WORD MESS
2326  0FEA  E8 05            .WORD SPSTO
2327  0FEC  19 07            .WORD DROP,DROP    ; make room for 2 error
2327  0FEE  19 07
2328  0FF0  20 09            .WORD IN
2329  0FF2  79 07            .WORD AT
2330  0FF4  18 09            .WORD BLK
2331  0FF6  79 07            .WORD AT
2332  0FF8  EE 11            .WORD QUIT
2333  0FFA  0C 06            .WORD SEMIS
2334  0FFC            ;
2335  0FFC            ;                             ID.
2336  0FFC            ;                             SCREEN 49 LINE 9
2337  0FFC            ;
2338  0FFC  83        L2113  .BYTE $83,'ID',$AE
2338  0FFD  49 44
2338  0FFF  AE
2339  1000  C5 0F            .WORD L2087         ;  LINK TO ERROR
2340  1002  D6 07     IDDOT  .WORD DOCOL
2341  1004  5E 0E            .WORD PAD
2342  1006  67 02            .WORD CLIT
2343  1008  20               .BYTE $20
2344  1009  67 02            .WORD CLIT
2345  100B  5F               .BYTE $5F
2346  100C  06 0E            .WORD FILL
2347  100E  3A 07            .WORD DUP
2348  1010  EA 0A            .WORD PFA
2349  1012  B8 0A            .WORD LFA
2350  1014  08 07            .WORD OVER
2351  1016  FA 09            .WORD SUB
2352  1018  5E 0E            .WORD PAD
2353  101A  22 07            .WORD SWAP
2354  101C  FE 04            .WORD CMOVE
2355  101E  5E 0E            .WORD PAD
2356  1020  82 0C            .WORD COUNT
2357  1022  67 02            .WORD CLIT
2358  1024  1F               .BYTE $1F

fig-FORTH for 6502, Rel 1.1   ......PAGE 0050

LINE # LOC     CODE       LINE

2359  1025  98 05            .WORD ANDD
2360  1027  95 0C            .WORD TYPE
2361  1029  5E 0A            .WORD SPACE
2362  102B  0C 06            .WORD SEMIS
2363  102D            ;
2364  102D            ;                             CREATE
2365  102D            ;                             SCREEN 50 LINE 2
2366  102D            ;
2367  102D  86        L2142  .BYTE $86,'CREAT',$C5
2367  102E  43 52
2367  1030  45 41 54
2367  1033  C5
2368  1034  FC 0F            .WORD L2113         ;  LINK TO ID.
2369  1036  D6 07     CREAT  .WORD DOCOL
2370  1038  D6 08            .WORD TIB     )
2371  103A  BD 09            .WORD HERE    | 6502 only, assures  room exists
2372  103C  67 02            .WORD CLIT    | in dictionary.
2373  103E  A0               .BYTE $A0     |
2374  103F  99 06            .WORD PLUS    |
2375  1041  13 0A            .WORD ULESS   |
2376  1043  6D 08            .WORD TWO     |
2377  1045  11 0B            .WORD QERR    )
2378  1047  8D 0F            .WORD DFIND
2379  1049  56 03            .WORD ZBRAN
2380  104B  0F 00     L2155  .WORD $0F           L2163-L2155
2381  104D  19 07            .WORD DROP
2382  104F  D5 0A            .WORD NFA
2383  1051  02 10            .WORD IDDOT
2384  1053  67 02            .WORD CLIT
2385  1055  04               .BYTE 4
2386  1056  6C 15            .WORD MESS
2387  1058  5E 0A            .WORD SPACE
2388  105A  BD 09     L2163  .WORD HERE
2389  105C  3A 07            .WORD DUP
2390  105E  8E 07            .WORD CAT
2391  1060  E1 08            .WORD WIDTH
2392  1062  79 07            .WORD AT
2393  1064  D2 12            .WORD MIN
2394  1066  A1 09            .WORD ONEP
2395  1068  CD 09            .WORD ALLOT
2396  106A  01 09            .WORD DP      )  6502 only. The code field musn'
2397  106C  8E 07            .WORD CAT     |   straddle page boundaries.
2398  106E  67 02            .WORD CLIT    |
2399  1070  FD               .BYTE $FD     |
2400  1071  06 0A            .WORD EQUAL   |
2401  1073  CD 09            .WORD ALLOT   )
2402  1075  3A 07            .WORD DUP
2403  1077  67 02            .WORD CLIT
2404  1079  A0               .BYTE $A0
2405  107A  6A 07            .WORD TOGGL
2406  107C  BD 09            .WORD HERE
2407  107E  65 08            .WORD ONE
2408  1080  FA 09            .WORD SUB
2409  1082  67 02            .WORD CLIT
2410  1084  80               .BYTE $80
2411  1085  6A 07            .WORD TOGGL

fig-FORTH for 6502, Rel 1.1   ......PAGE 0051

LINE # LOC     CODE       LINE

2412  1087  A8 0A            .WORD LATES
2413  1089  D9 09            .WORD COMMA
2414  108B  58 09            .WORD CURR
2415  108D  79 07            .WORD AT
2416  108F  9D 07            .WORD STORE
2417  1091  BD 09            .WORD HERE
2418  1093  AE 09            .WORD TWOP
2419  1095  D9 09            .WORD COMMA
2420  1097  0C 06            .WORD SEMIS
2421  1099            ;
2422  1099            ;                             [COMPILE]
2423  1099            ;                             SCREEN 51 LINE 2
2424  1099            ;
2425  1099  C9        L2200  .BYTE $C9,'[COMPILE',$DD
2425  109A  5B 43
2425  109C  4F 4D 50
2425  109F  49 4C 45
2425  10A2  DD
2426  10A3  2D 10            .WORD L2142         ;  LINK TO CREATE
2427  10A5  D6 07            .WORD DOCOL
2428  10A7  8D 0F            .WORD DFIND
2429  10A9  73 06            .WORD ZEQU
2430  10AB  5D 08            .WORD ZERO
2431  10AD  11 0B            .WORD QERR
2432  10AF  19 07            .WORD DROP
2433  10B1  C7 0A            .WORD CFA
2434  10B3  D9 09            .WORD COMMA
2435  10B5  0C 06            .WORD SEMIS
2436  10B7            ;
2437  10B7            ;
2438  10B7            ;                             LITERAL
2439  10B7            ;                             SCREEN 51 LINE 5
2440  10B7            ;
2441  10B7  C7        L2216  .BYTE $C7,'LITERA',$CC
2441  10B8  4C 49
2441  10BA  54 45 52
2441  10BD  41
2441  10BE  CC
2442  10BF  99 10            .WORD L2200         ;  LINK TO [COMPILE]
2443  10C1  D6 07     LITER  .WORD DOCOL
2444  10C3  63 09            .WORD STATE
2445  10C5  79 07            .WORD AT
2446  10C7  56 03            .WORD ZBRAN
2447  10C9  08 00     L2222  .WORD 8             L2226-L2222
2448  10CB  9F 0B            .WORD COMP
2449  10CD  2A 02            .WORD LIT
2450  10CF  D9 09            .WORD COMMA
2451  10D1  0C 06     L2226  .WORD SEMIS
2452  10D3            ;
2453  10D3            ;
2454  10D3            ;                             DLITERAL
2455  10D3            ;                             SCREEN 51 LINE 8
2456  10D3            ;
2457  10D3  C8        L2232  .BYTE $C8,'DLITERA',$CC
2457  10D4  44 4C
2457  10D6  49 54 45
2457  10D9  52 41
2457  10DB  CC
2458  10DC  B7 10            .WORD L2216         ;  LINK TO LITERAL
2459  10DE  D6 07     DLIT   .WORD DOCOL
2460  10E0  63 09            .WORD STATE

fig-FORTH for 6502, Rel 1.1   ......PAGE 0052

LINE # LOC     CODE       LINE

2461  10E2  79 07            .WORD AT
2462  10E4  56 03            .WORD ZBRAN
2463  10E6  08 00     L2238  .WORD 8             L2242-L2238
2464  10E8  22 07            .WORD SWAP
2465  10EA  C1 10            .WORD LITER
2466  10EC  C1 10            .WORD LITER
2467  10EE  0C 06     L2242  .WORD SEMIS
2468  10F0            ;
2469  10F0            ;
2470  10F0            ;                             ?STACK
2471  10F0            ;                             SCREEN 51 LINE 13
2472  10F0            ;
2473  10F0  86        L2248  .BYTE $86,'?STAC',$CB
2473  10F1  3F 53
2473  10F3  54 41 43
2473  10F6  CB
2474  10F7  D3 10            .WORD L2232         ;  LINK TO DLITERAL
2475  10F9  D6 07     QSTAC  .WORD DOCOL
2476  10FB  67 02            .WORD CLIT
2477  10FD  9E               .BYTE TOS
2478  10FE  D9 05            .WORD SPAT
2479  1100  13 0A            .WORD ULESS
2480  1102  65 08            .WORD ONE
2481  1104  11 0B            .WORD QERR
2482  1106  D9 05            .WORD SPAT
2483  1108  67 02            .WORD CLIT
2484  110A  20               .BYTE BOS
2485  110B  13 0A            .WORD ULESS
2486  110D  67 02            .WORD CLIT
2487  110F  07               .BYTE 7
2488  1110  11 0B            .WORD QERR
2489  1112  0C 06            .WORD SEMIS
2490  1114            ;
2491  1114            ;                             INTERPRET
2492  1114            ;                             SCREEN 52 LINE 2
2493  1114            ;
2494  1114  89        L2269  .BYTE $89,'INTERPRE',$D4
2494  1115  49 4E
2494  1117  54 45 52
2494  111A  50 52 45
2494  111D  D4
2495  111E  F0 10            .WORD L2248         ;  LINK TO ?STACK
2496  1120  D6 07     INTER  .WORD DOCOL
2497  1122  8D 0F     L2272  .WORD DFIND
2498  1124  56 03            .WORD ZBRAN
2499  1126  1E 00     L2274  .WORD $1E           L2289-L2274
2500  1128  63 09            .WORD STATE
2501  112A  79 07            .WORD AT
2502  112C  1F 0A            .WORD LESS
2503  112E  56 03            .WORD ZBRAN
2504  1130  0A 00     L2279  .WORD $A            L2284-L2279
2505  1132  C7 0A            .WORD CFA
2506  1134  D9 09            .WORD COMMA
2507  1136  37 03            .WORD BRAN
2508  1138  06 00     L2283  .WORD $6            L2286-L2283
2509  113A  C7 0A     L2284  .WORD CFA
2510  113C  1F 03            .WORD EXEC
2511  113E  F9 10     L2286  .WORD QSTAC

fig-FORTH for 6502, Rel 1.1   ......PAGE 0053

LINE # LOC     CODE       LINE

2512  1140  37 03            .WORD BRAN
2513  1142  1C 00     L2288  .WORD $1C           L2302-L2288
2514  1144  BD 09     L2289  .WORD HERE
2515  1146  37 0F            .WORD NUMBER
2516  1148  76 09            .WORD DPL
2517  114A  79 07            .WORD AT
2518  114C  A1 09            .WORD ONEP
2519  114E  56 03            .WORD ZBRAN
2520  1150  08 00     L2295  .WORD 8             L2299-L2295
2521  1152  DE 10            .WORD DLIT
2522  1154  37 03            .WORD BRAN
2523  1156  06 00     L2298  .WORD $6            L2301-L2298
2524  1158  19 07     L2299  .WORD DROP
2525  115A  C1 10            .WORD LITER
2526  115C  F9 10     L2301  .WORD QSTAC
2527  115E  37 03     L2302  .WORD BRAN
2528  1160  C2 FF     L2303  .WORD $FFC2         L2272-L2303
2529  1162            ;
2530  1162            ;
2531  1162            ;                             IMMEDIATE
2532  1162            ;                             SCREEN 53 LINE 1
2533  1162            ;
2534  1162  89        L2309  .BYTE $89,'IMMEDIAT',$C5
2534  1163  49 4D
2534  1165  4D 45 44
2534  1168  49 41 54
2534  116B  C5
2535  116C  14 11            .WORD L2269         ;  LINK TO INTERPRET
2536  116E  D6 07            .WORD DOCOL
2537  1170  A8 0A            .WORD LATES
2538  1172  67 02            .WORD CLIT
2539  1174  40               .BYTE $40
2540  1175  6A 07            .WORD TOGGL
2541  1177  0C 06            .WORD SEMIS
2542  1179            ;
2543  1179            ;                             VOCABULARY
2544  1179            ;                             SCREEN 53 LINE 4
2545  1179            ;
2546  1179  8A        L2321  .BYTE $8A,'VOCABULAR',$D9
2546  117A  56 4F
2546  117C  43 41 42
2546  117F  55 4C 41
2546  1182  52
2546  1183  D9
2547  1184  62 11            .WORD L2309         ;  LINK TO IMMEDIATE
2548  1186  D6 07            .WORD DOCOL
2549  1188  40 0C            .WORD BUILD
2550  118A  2A 02            .WORD LIT,$A081
2550  118C  81 A0
2551  118E  D9 09            .WORD COMMA
2552  1190  58 09            .WORD CURR
2553  1192  79 07            .WORD AT
2554  1194  C7 0A            .WORD CFA
2555  1196  D9 09            .WORD COMMA
2556  1198  BD 09            .WORD HERE
2557  119A  0F 09            .WORD VOCL
2558  119C  79 07            .WORD AT
2559  119E  D9 09            .WORD COMMA
2560  11A0  0F 09            .WORD VOCL
2561  11A2  9D 07            .WORD STORE

fig-FORTH for 6502, Rel 1.1   ......PAGE 0054

LINE # LOC     CODE       LINE

2562  11A4  50 0C            .WORD DOES
2563  11A6  AE 09     DOVOC  .WORD TWOP
2564  11A8  4B 09            .WORD CON
2565  11AA  9D 07            .WORD STORE
2566  11AC  0C 06            .WORD SEMIS
2567  11AE            ;
2568  11AE            ;                             FORTH
2569  11AE            ;                             SCREEN 53 LINE 9
2570  11AE            ;
2571  11AE  C5        L2346  .BYTE $C5,'FORT',$C8
2571  11AF  46 4F
2571  11B1  52 54
2571  11B3  C8
2572  11B4  79 11            .WORD L2321         ;  LINK TO VOCABULARY
2573  11B6  5C 0C     FORTH  .WORD DODOE
2574  11B8  A6 11            .WORD DOVOC
2575  11BA  81 A0            .WORD $A081
2576  11BC  64 1A     XFOR   .WORD NTOP points to top name in FORTH
2577  11BE  00 00     VL0    .WORD 0 last vocabulary link ends at zero
2578  11C0            ;
2579  11C0            ;                             DEFINITIONS
2580  11C0            ;                             SCREEN 53 LINE 11
2581  11C0            ;
2582  11C0  8B        L2357  .BYTE $8B,'DEFINITION',$D3
2582  11C1  44 45
2582  11C3  46 49 4E
2582  11C6  49 54 49
2582  11C9  4F 4E
2582  11CB  D3
2583  11CC  AE 11            .WORD L2346         ;  LINK TO VOCABULARY
2584  11CE  D6 07     DEFIN  .WORD DOCOL
2585  11D0  4B 09            .WORD CON
2586  11D2  79 07            .WORD AT
2587  11D4  58 09            .WORD CURR
2588  11D6  9D 07            .WORD STORE
2589  11D8  0C 06            .WORD SEMIS
2590  11DA            ;
2591  11DA            ;                             (
2592  11DA            ;                             SCREEN 53 LINE 14
2593  11DA            ;
2594  11DA  C1        L2369  .BYTE $C1,$A8
2594  11DB  A8
2595  11DC  C0 11            .WORD L2357         ;  LINK TO DEFINITIONS
2596  11DE  D6 07            .WORD DOCOL
2597  11E0  67 02            .WORD CLIT
2598  11E2  29               .BYTE $29
2599  11E3  70 0E            .WORD WORD
2600  11E5  0C 06            .WORD SEMIS
2601  11E7            ;
2602  11E7            ;
2603  11E7            ;                             QUIT
2604  11E7            ;                             SCREEN 54 LINE 2
2605  11E7            ;
2606  11E7  84        L2381  .BYTE $84,'QUI',$D4
2606  11E8  51 55 49
2606  11EB  D4
2607  11EC  DA 11            .WORD L2369         ;  LINK TO (
2608  11EE  D6 07     QUIT   .WORD DOCOL
2609  11F0  5D 08            .WORD ZERO

fig-FORTH for 6502, Rel 1.1   ......PAGE 0055

LINE # LOC     CODE       LINE

2610  11F2  18 09            .WORD BLK
2611  11F4  9D 07            .WORD STORE
2612  11F6  B5 0B            .WORD LBRAC
2613  11F8  F8 05     L2388  .WORD RPSTO
2614  11FA  F4 04            .WORD CR
2615  11FC  B0 0D            .WORD QUERY
2616  11FE  20 11            .WORD INTER
2617  1200  63 09            .WORD STATE
2618  1202  79 07            .WORD AT
2619  1204  73 06            .WORD ZEQU
2620  1206  56 03            .WORD ZBRAN
2621  1208  07 00     L2396  .WORD 7            L2399-L2396
2622  120A  F6 0C            .WORD PDOTQ
2623  120C  02               .BYTE 2,'OK'
2623  120D  4F 4B
2624  120F  37 03     L2399  .WORD BRAN
2625  1211  E7 FF     L2400  .WORD $FFE7         L2388-L2400
2626  1213  0C 06            .WORD SEMIS
2627  1215            ;
2628  1215            ;                             ABORT
2629  1215            ;                             SCREEN 54 LINE 7
2630  1215            ;
2631  1215  85        L2406  .BYTE $85,'ABOR',$D4
2631  1216  41 42
2631  1218  4F 52
2631  121A  D4
2632  121B  E7 11            .WORD L2381         ;  LINK TO QUIT
2633  121D  D6 07     ABORT  .WORD DOCOL
2634  121F  E8 05            .WORD SPSTO
2635  1221  FD 0B            .WORD DECIM
2636  1223  68 14            .WORD DR0
2637  1225  F4 04            .WORD CR
2638  1227  F6 0C            .WORD PDOTQ
2639  1229  0E               .BYTE 14,'fig-FORTH  1.0'
2639  122A  66 69
2639  122C  67 2D 46
2639  122F  4F 52 54
2639  1232  48 20 20
2639  1235  31 2E 30
2640  1238  B6 11            .WORD FORTH
2641  123A  CE 11            .WORD DEFIN
2642  123C  EE 11            .WORD QUIT
2643  123E            ;
2644  123E            ;
2645  123E            ;                             COLD
2646  123E            ;                             SCREEN 55 LINE 1
2647  123E            ;
2648  123E  84        L2423  .BYTE $84,'COL',$C4
2648  123F  43 4F 4C
2648  1242  C4
2649  1243  15 12            .WORD L2406         ;  LINK TO ABORT
2650  1245  47 12     COLD   .WORD *+2
2651  1247  AD 0C 02         LDA ORIG+$0C    ; from cold start area
2652  124A  8D BC 11         STA FORTH+6
2653  124D  AD 0D 02         LDA ORIG+$0D
2654  1250  8D BD 11         STA FORTH+7
2655  1253  A0 15            LDY #$15
2656  1255  D0 02            BNE L2433
2657  1257  A0 0F     WARM   LDY #$0F
2658  1259  AD 10 02  L2433  LDA ORIG+$10

fig-FORTH for 6502, Rel 1.1   ......PAGE 0056

LINE # LOC     CODE       LINE

2659  125C  85 B3            STA UP
2660  125E  AD 11 02         LDA ORIG+$11
2661  1261  85 B4            STA UP+1
2662  1263  B9 0C 02  L2437  LDA ORIG+$0C,Y
2663  1266  91 B3            STA (UP),Y
2664  1268  88               DEY
2665  1269  10 F8            BPL L2437
2666  126B  A9 12            LDA #>ABORT   ; actually #>(ABORT+2)
2667  126D  85 AF            STA IP+1
2668  126F  A9 1F            LDA #<ABORT+2
2669  1271  85 AE            STA IP
2670  1273  D8               CLD
2671  1274  A9 6C            LDA #$6C
2672  1276  85 B0            STA W-1
2673  1278  4C FA 05         JMP RPSTO+2      And off we go!
2674  127B            ;
2675  127B            ;                             S->D
2676  127B            ;                             SCREEN 56 LINE 1
2677  127B            ;
2678  127B  84        L2453  .BYTE $84,'S->',$C4
2678  127C  53 2D 3E
2678  127F  C4
2679  1280  3E 12            .WORD L2423         ;  LINK TO COLD
2680  1282  D6 07     STOD   .WORD DOCOL
2681  1284  3A 07            .WORD DUP
2682  1286  88 06            .WORD ZLESS
2683  1288  D8 06            .WORD MINUS
2684  128A  0C 06            .WORD SEMIS
2685  128C            ;
2686  128C            ;                             +-
2687  128C            ;                             SCREEN 56 LINE 4
2688  128C            ;
2689  128C  82        L2464  .BYTE $82,'+',$AD
2689  128D  2B
2689  128E  AD
2690  128F  7B 12            .WORD L2453         ;  LINK TO S->D
2691  1291  D6 07     PM     .WORD DOCOL
2692  1293  88 06            .WORD ZLESS
2693  1295  56 03            .WORD ZBRAN
2694  1297  04 00     L2469  .WORD 4            L2471-L2469
2695  1299  D8 06            .WORD MINUS
2696  129B  0C 06     L2471  .WORD SEMIS
2697  129D            ;
2698  129D            ;                             D+-
2699  129D            ;                             SCREEN 56 LINE 6
2700  129D            ;
2701  129D  83        L2476  .BYTE $83,'D+',$AD
2701  129E  44 2B
2701  12A0  AD
2702  12A1  8C 12            .WORD L2464         ;  LINK TO +-
2703  12A3  D6 07     DPM    .WORD DOCOL
2704  12A5  88 06            .WORD ZLESS
2705  12A7  56 03            .WORD ZBRAN
2706  12A9  04 00     L2481  .WORD 4            L2483-L2481
2707  12AB  F1 06            .WORD DMINU

fig-FORTH for 6502, Rel 1.1   ......PAGE 0057

LINE # LOC     CODE       LINE

2708  12AD  0C 06     L2483  .WORD SEMIS
2709  12AF            ;
2710  12AF            ;                             ABS
2711  12AF            ;                             SCREEN 56 LINE 9
2712  12AF            ;
2713  12AF  83        L2488  .BYTE $83,'AB',$D3
2713  12B0  41 42
2713  12B2  D3
2714  12B3  9D 12            .WORD L2476         ;  LINK TO D+-
2715  12B5  D6 07     ABS    .WORD DOCOL
2716  12B7  3A 07            .WORD DUP
2717  12B9  91 12            .WORD PM
2718  12BB  0C 06            .WORD SEMIS
2719  12BD            ;
2720  12BD            ;                             DABS
2721  12BD            ;                             SCREEN 56 LINE 10
2722  12BD            ;
2723  12BD  84        L2498  .BYTE $84,'DAB',$D3
2723  12BE  44 41 42
2723  12C1  D3
2724  12C2  AF 12            .WORD L2488         ;  LINK TO ABS
2725  12C4  D6 07     DABS   .WORD DOCOL
2726  12C6  3A 07            .WORD DUP
2727  12C8  A3 12            .WORD DPM
2728  12CA  0C 06            .WORD SEMIS
2729  12CC            ;
2730  12CC            ;                             MIN
2731  12CC            ;                             SCREEN 56 LINE 12
2732  12CC            ;
2733  12CC  83        L2508  .BYTE $83,'MI',$CE
2733  12CD  4D 49
2733  12CF  CE
2734  12D0  BD 12            .WORD L2498         ;  LINK TO DABS
2735  12D2  D6 07     MIN    .WORD DOCOL
2736  12D4  08 07            .WORD OVER
2737  12D6  08 07            .WORD OVER
2738  12D8  3C 0A            .WORD GREAT
2739  12DA  56 03            .WORD ZBRAN
2740  12DC  04 00     L2515  .WORD 4             L2517-L2515
2741  12DE  22 07            .WORD SWAP
2742  12E0  19 07     L2517  .WORD DROP
2743  12E2  0C 06            .WORD SEMIS
2744  12E4            ;
2745  12E4            ;                             MAX
2746  12E4            ;                             SCREEN 56 LINE 14
2747  12E4            ;
2748  12E4  83        L2523  .BYTE $83,'MA',$D8
2748  12E5  4D 41
2748  12E7  D8
2749  12E8  CC 12            .WORD L2508         ;  LINK TO MIN
2750  12EA  D6 07     MAX    .WORD DOCOL
2751  12EC  08 07            .WORD OVER
2752  12EE  08 07            .WORD OVER
2753  12F0  1F 0A            .WORD LESS
2754  12F2  56 03            .WORD ZBRAN

fig-FORTH for 6502, Rel 1.1   ......PAGE 0058

LINE # LOC     CODE       LINE

2755  12F4  04 00     L2530  .WORD 4             L2532-L2530
2756  12F6  22 07            .WORD SWAP
2757  12F8  19 07     L2532  .WORD DROP
2758  12FA  0C 06            .WORD SEMIS
2759  12FC            ;
2760  12FC            ;                             M*
2761  12FC            ;                             SCREEN 57 LINE 1
2762  12FC            ;
2763  12FC  82        L2538  .BYTE $82,'M',$AA
2763  12FD  4D
2763  12FE  AA
2764  12FF  E4 12            .WORD L2523         ;  LINK TO MAX
2765  1301  D6 07     MSTAR  .WORD DOCOL
2766  1303  08 07            .WORD OVER
2767  1305  08 07            .WORD OVER
2768  1307  C3 05            .WORD XOR
2769  1309  3A 06            .WORD TOR
2770  130B  B5 12            .WORD ABS
2771  130D  22 07            .WORD SWAP
2772  130F  B5 12            .WORD ABS
2773  1311  23 05            .WORD USTAR
2774  1313  4C 06            .WORD RFROM
2775  1315  A3 12            .WORD DPM
2776  1317  0C 06            .WORD SEMIS
2777  1319            ;
2778  1319            ;                             M/
2779  1319            ;                             SCREEN 57 LINE 3
2780  1319            ;
2781  1319  82        L2556  .BYTE $82,'M',$AF
2781  131A  4D
2781  131B  AF
2782  131C  FC 12            .WORD L2538         ;  LINK TO M*
2783  131E  D6 07     MSLAS  .WORD DOCOL
2784  1320  08 07            .WORD OVER
2785  1322  3A 06            .WORD TOR
2786  1324  3A 06            .WORD TOR
2787  1326  C4 12            .WORD DABS
2788  1328  5D 06            .WORD R
2789  132A  B5 12            .WORD ABS
2790  132C  5B 05            .WORD USLAS
2791  132E  4C 06            .WORD RFROM
2792  1330  5D 06            .WORD R
2793  1332  C3 05            .WORD XOR
2794  1334  91 12            .WORD PM
2795  1336  22 07            .WORD SWAP
2796  1338  4C 06            .WORD RFROM
2797  133A  91 12            .WORD PM
2798  133C  22 07            .WORD SWAP
2799  133E  0C 06            .WORD SEMIS
2800  1340            ;
2801  1340            ;                             *
2802  1340            ;                             SCREEN 57 LINE 7
2803  1340            ;
2804  1340  81        L2579  .BYTE $81,$AA
2804  1341  AA

fig-FORTH for 6502, Rel 1.1   ......PAGE 0059

LINE # LOC     CODE       LINE

2805  1342  19 13            .WORD L2556         ;  LINK TO M/
2806  1344  D6 07     STAR   .WORD DOCOL
2807  1346  23 05            .WORD USTAR
2808  1348  19 07            .WORD DROP
2809  134A  0C 06            .WORD SEMIS
2810  134C            ;
2811  134C            ;                             /MOD
2812  134C            ;                             SCREEN 57 LINE 8
2813  134C            ;
2814  134C  84        L2589  .BYTE $84,'/MO',$C4
2814  134D  2F 4D 4F
2814  1350  C4
2815  1351  40 13            .WORD L2579         ;  LINK TO *
2816  1353  D6 07     SLMOD  .WORD DOCOL
2817  1355  3A 06            .WORD TOR
2818  1357  82 12            .WORD STOD
2819  1359  4C 06            .WORD RFROM
2820  135B  1E 13            .WORD MSLAS
2821  135D  0C 06            .WORD SEMIS
2822  135F            ;
2823  135F            ;                             /
2824  135F            ;                             SCREEN 57 LINE 9
2825  135F            ;
2826  135F  81        L2601  .BYTE $81,$AF
2826  1360  AF
2827  1361  4C 13            .WORD L2589         ;  LINK TO /MOD
2828  1363  D6 07     SLASH  .WORD DOCOL
2829  1365  53 13            .WORD SLMOD
2830  1367  22 07            .WORD SWAP
2831  1369  19 07            .WORD DROP
2832  136B  0C 06            .WORD SEMIS
2833  136D            ;
2834  136D            ;                             MOD
2835  136D            ;                             SCREEN 57 LINE 10
2836  136D            ;
2837  136D  83        L2612  .BYTE $83,'MO',$C4
2837  136E  4D 4F
2837  1370  C4
2838  1371  5F 13            .WORD L2601         ;  LINK TO /
2839  1373  D6 07     MOD    .WORD DOCOL
2840  1375  53 13            .WORD SLMOD
2841  1377  19 07            .WORD DROP
2842  1379  0C 06            .WORD SEMIS
2843  137B            ;
2844  137B            ;                             */MOD
2845  137B            ;                             SCREEN 57 LINE 11
2846  137B            ;
2847  137B  85        L2622  .BYTE $85,'*/MO',$C4
2847  137C  2A 2F
2847  137E  4D 4F
2847  1380  C4
2848  1381  6D 13            .WORD L2612         ;  LINK TO MOD
2849  1383  D6 07     SSMOD  .WORD DOCOL
2850  1385  3A 06            .WORD TOR
2851  1387  01 13            .WORD MSTAR
2852  1389  4C 06            .WORD RFROM

fig-FORTH for 6502, Rel 1.1   ......PAGE 0060

LINE # LOC     CODE       LINE

2853  138B  1E 13            .WORD MSLAS
2854  138D  0C 06            .WORD SEMIS
2855  138F            ;
2856  138F            ;                             */
2857  138F            ;                             SCREEN 57 LINE 13
2858  138F            ;
2859  138F  82        L2634  .BYTE $82,'*',$AF
2859  1390  2A
2859  1391  AF
2860  1392  7B 13            .WORD L2622         ;  LINK TO */MOD
2861  1394  D6 07     SSLAS  .WORD DOCOL
2862  1396  83 13            .WORD SSMOD
2863  1398  22 07            .WORD SWAP
2864  139A  19 07            .WORD DROP
2865  139C  0C 06            .WORD SEMIS
2866  139E            ;
2867  139E            ;                             M/MOD
2868  139E            ;                             SCREEN 57 LINE 14
2869  139E            ;
2870  139E  85        L2645  .BYTE $85,'M/MO',$C4
2870  139F  4D 2F
2870  13A1  4D 4F
2870  13A3  C4
2871  13A4  8F 13            .WORD L2634         ;  LINK TO */
2872  13A6  D6 07     MSMOD  .WORD DOCOL
2873  13A8  3A 06            .WORD TOR
2874  13AA  5D 08            .WORD ZERO
2875  13AC  5D 06            .WORD R
2876  13AE  5B 05            .WORD USLAS
2877  13B0  4C 06            .WORD RFROM
2878  13B2  22 07            .WORD SWAP
2879  13B4  3A 06            .WORD TOR
2880  13B6  5B 05            .WORD USLAS
2881  13B8  4C 06            .WORD RFROM
2882  13BA  0C 06            .WORD SEMIS
2883  13BC            ;
2884  13BC            ;                             USE
2885  13BC            ;                             SCREEN 58 LINE 1
2886  13BC            ;
2887  13BC  83        L2662  .BYTE $83,'US',$C5
2887  13BD  55 53
2887  13BF  C5
2888  13C0  9E 13            .WORD L2645         ;  LINK TO M/MOD
2889  13C2  31 08     USE    .WORD DOVAR
2890  13C4  60 3B            .WORD DAREA
2891  13C6            ;
2892  13C6            ;                             PREV
2893  13C6            ;                             SCREEN 58 LINE 2
2894  13C6            ;
2895  13C6  84        L2670  .BYTE $84,'PRE',$D6
2895  13C7  50 52 45
2895  13CA  D6
2896  13CB  BC 13            .WORD L2662         ;  LINK TO USE
2897  13CD  31 08     PREV   .WORD DOVAR
2898  13CF  60 3B            .WORD DAREA
2899  13D1            ;

fig-FORTH for 6502, Rel 1.1   ......PAGE 0061

LINE # LOC     CODE       LINE

2900  13D1            ;                             +BUF
2901  13D1            ;                             SCREEN 58 LINE 4
2902  13D1            ;
2903  13D1  84        L2678  .BYTE $84,'+BU',$C6
2903  13D2  2B 42 55
2903  13D5  C6
2904  13D6  C6 13            .WORD L2670         ;  LINK TO PREV
2905  13D8  D6 07     PBUF   .WORD DOCOL
2906  13DA  2A 02            .WORD LIT
2907  13DC  84 00            .WORD SSIZE+4    holds block #, one sector, two nu
2908  13DE  99 06            .WORD PLUS
2909  13E0  3A 07            .WORD DUP
2910  13E2  A0 08            .WORD LIMIT
2911  13E4  06 0A            .WORD EQUAL
2912  13E6  56 03            .WORD ZBRAN
2913  13E8  06 00     L2688  .WORD 6            L2691-L2688
2914  13EA  19 07            .WORD DROP
2915  13EC  94 08            .WORD FIRST
2916  13EE  3A 07     L2691  .WORD DUP
2917  13F0  CD 13            .WORD PREV
2918  13F2  79 07            .WORD AT
2919  13F4  FA 09            .WORD SUB
2920  13F6  0C 06            .WORD SEMIS
2921  13F8            ;
2922  13F8            ;                             UPDATE
2923  13F8            ;                             SCREEN 58 LINE 8
2924  13F8            ;
2925  13F8  86        L2700  .BYTE $86,'UPDAT',$C5
2925  13F9  55 50
2925  13FB  44 41 54
2925  13FE  C5
2926  13FF  D1 13            .WORD L2678         ;  LINK TO +BUF
2927  1401  D6 07     UPDAT  .WORD DOCOL
2928  1403  CD 13            .WORD PREV
2929  1405  79 07            .WORD AT
2930  1407  79 07            .WORD AT
2931  1409  2A 02            .WORD LIT,$8000
2931  140B  00 80
2932  140D  AD 05            .WORD OR
2933  140F  CD 13            .WORD PREV
2934  1411  79 07            .WORD AT
2935  1413  9D 07            .WORD STORE
2936  1415  0C 06            .WORD SEMIS
2937  1417            ;
2938  1417            ;                            FLUSH
2939  1417            ;
2940  1417  85        L2705  .BYTE $85,'FLUS',$C8
2940  1418  46 4C
2940  141A  55 53
2940  141C  C8
2941  141D  F8 13            .WORD L2700        ; LINK TO UPDATE
2942  141F  D6 07            .WORD DOCOL
2943  1421  A0 08            .WORD LIMIT,FIRST,SUB
2943  1423  94 08
2943  1425  FA 09
2944  1427  AC 08            .WORD BBUF,CLIT
2944  1429  67 02

fig-FORTH for 6502, Rel 1.1   ......PAGE 0062

LINE # LOC     CODE       LINE

2945  142B  04               .BYTE 4
2946  142C  99 06            .WORD PLUS,SLASH,ONEP
2946  142E  63 13
2946  1430  A1 09
2947  1432  5D 08            .WORD ZERO,PDO
2947  1434  DE 03
2948  1436  2A 02     L2835  .WORD LIT,$7FFF,BUFFR
2948  1438  FF 7F
2948  143A  8D 14
2949  143C  19 07            .WORD DROP,PLOOP
2949  143E  77 03
2950  1440  F6 FF     L2839  .WORD $FFF6       L2835-L2839
2951  1442  0C 06            .WORD SEMIS
2952  1444            ;
2953  1444            ;
2954  1444            ;                             EMPTY-BUFFERS
2955  1444            ;                             SCREEN 58 LINE 11
2956  1444            ;
2957  1444  8D        L2716  .BYTE $8D,'EMPTY-BUFFER',$D3
2957  1445  45 4D
2957  1447  50 54 59
2957  144A  2D 42 55
2957  144D  46 46 45
2957  1450  52
2957  1451  D3
2958  1452  17 14            .WORD L2705         ;  LINK TO FLUSH
2959  1454  D6 07            .WORD DOCOL
2960  1456  94 08            .WORD FIRST
2961  1458  A0 08            .WORD LIMIT
2962  145A  08 07            .WORD OVER
2963  145C  FA 09            .WORD SUB
2964  145E  26 0E            .WORD ERASE
2965  1460  0C 06            .WORD SEMIS
2966  1462            ;
2967  1462            ;                             DR0
2968  1462            ;                             SCREEN 58 LINE 14
2969  1462            ;
2970  1462  83        L2729  .BYTE $83,'DR',$B0
2970  1463  44 52
2970  1465  B0
2971  1466  44 14            .WORD L2716         ;  LINK TO EMPTY-BUFFERS
2972  1468  D6 07     DR0    .WORD DOCOL
2973  146A  5D 08            .WORD ZERO
2974  146C  3E 09            .WORD OFSET
2975  146E  9D 07            .WORD STORE
2976  1470  0C 06            .WORD SEMIS
2977  1472            ;
2978  1472            ;                             DR1
2979  1472            ;                             SCREEN 58 LINE 15
2980  1472            ;
2981  1472  83        L2740  .BYTE $83,'DR',$B1
2981  1473  44 52
2981  1475  B1
2982  1476  62 14            .WORD L2729         ;  LINK TO DR0
2983  1478  D6 07            .WORD DOCOL
2984  147A  2A 02            .WORD LIT,SECTR    sectors per drive
2984  147C  20 03
2985  147E  3E 09            .WORD OFSET
2986  1480  9D 07            .WORD STORE

fig-FORTH for 6502, Rel 1.1   ......PAGE 0063

LINE # LOC     CODE       LINE

2987  1482  0C 06            .WORD SEMIS
2988  1484            ;
2989  1484            ;                             BUFFER
2990  1484            ;                             SCREEN 59 LINE 1
2991  1484            ;
2992  1484  86        L2751  .BYTE $86,'BUFFE',$D2
2992  1485  42 55
2992  1487  46 46 45
2992  148A  D2
2993  148B  72 14            .WORD L2740         ;  LINK TO DR1
2994  148D  D6 07     BUFFR  .WORD DOCOL
2995  148F  C2 13            .WORD USE
2996  1491  79 07            .WORD AT
2997  1493  3A 07            .WORD DUP
2998  1495  3A 06            .WORD TOR
2999  1497  D8 13     L2758  .WORD PBUF
3000  1499  56 03            .WORD ZBRAN
3001  149B  FC FF     L2760  .WORD $FFFC         L2758-L2760
3002  149D  C2 13            .WORD USE
3003  149F  9D 07            .WORD STORE
3004  14A1  5D 06            .WORD R
3005  14A3  79 07            .WORD AT
3006  14A5  88 06            .WORD ZLESS
3007  14A7  56 03            .WORD ZBRAN
3008  14A9  14 00     L2767  .WORD $14           L2776-L2767
3009  14AB  5D 06            .WORD R
3010  14AD  AE 09            .WORD TWOP
3011  14AF  5D 06            .WORD R
3012  14B1  79 07            .WORD AT
3013  14B3  2A 02            .WORD LIT,$7FFF
3013  14B5  FF 7F
3014  14B7  98 05            .WORD ANDD
3015  14B9  5D 08            .WORD ZERO
3016  14BB  89 16            .WORD RSLW
3017  14BD  5D 06     L2776  .WORD R
3018  14BF  9D 07            .WORD STORE
3019  14C1  5D 06            .WORD R
3020  14C3  CD 13            .WORD PREV
3021  14C5  9D 07            .WORD STORE
3022  14C7  4C 06            .WORD RFROM
3023  14C9  AE 09            .WORD TWOP
3024  14CB  0C 06            .WORD SEMIS
3025  14CD            ;
3026  14CD            ;                             BLOCK
3027  14CD            ;                             SCREEN 60 LINE 1
3028  14CD            ;
3029  14CD  85        L2788  .BYTE $85,'BLOC',$CB
3029  14CE  42 4C
3029  14D0  4F 43
3029  14D2  CB
3030  14D3  84 14            .WORD L2751         ;  LINK TO BUFFER
3031  14D5  D6 07     BLOCK  .WORD DOCOL
3032  14D7  3E 09            .WORD OFSET
3033  14D9  79 07            .WORD AT
3034  14DB  99 06            .WORD PLUS
3035  14DD  3A 06            .WORD TOR
3036  14DF  CD 13            .WORD PREV

fig-FORTH for 6502, Rel 1.1   ......PAGE 0064

LINE # LOC     CODE       LINE

3037  14E1  79 07            .WORD AT
3038  14E3  3A 07            .WORD DUP
3039  14E5  79 07            .WORD AT
3040  14E7  5D 06            .WORD R
3041  14E9  FA 09            .WORD SUB
3042  14EB  3A 07            .WORD DUP
3043  14ED  99 06            .WORD PLUS
3044  14EF  56 03            .WORD ZBRAN
3045  14F1  34 00     L2804  .WORD $34           L2830-L2804
3046  14F3  D8 13     L2805  .WORD PBUF
3047  14F5  73 06            .WORD ZEQU
3048  14F7  56 03            .WORD ZBRAN
3049  14F9  14 00     L2808  .WORD $14           L2818-L2808
3050  14FB  19 07            .WORD DROP
3051  14FD  5D 06            .WORD R
3052  14FF  8D 14            .WORD BUFFR
3053  1501  3A 07            .WORD DUP
3054  1503  5D 06            .WORD R
3055  1505  65 08            .WORD ONE
3056  1507  89 16            .WORD RSLW
3057  1509  6D 08            .WORD TWO
3058  150B  FA 09            .WORD SUB
3059  150D  3A 07     L2818  .WORD DUP
3060  150F  79 07            .WORD AT
3061  1511  5D 06            .WORD R
3062  1513  FA 09            .WORD SUB
3063  1515  3A 07            .WORD DUP
3064  1517  99 06            .WORD PLUS
3065  1519  73 06            .WORD ZEQU
3066  151B  56 03            .WORD ZBRAN
3067  151D  D6 FF     L2826  .WORD $FFD6         L2805-L2826
3068  151F  3A 07            .WORD DUP
3069  1521  CD 13            .WORD PREV
3070  1523  9D 07            .WORD STORE
3071  1525  4C 06     L2830  .WORD RFROM
3072  1527  19 07            .WORD DROP
3073  1529  AE 09            .WORD TWOP
3074  152B  0C 06            .WORD SEMIS       ; END OF BLOCK
3075  152D            ;
3076  152D            ;
3077  152D             .FILE FOR4/2
3078  152D            ; START OF FORTH4
3079  152D            ;
3080  152D            ;
3081  152D            ;
3082  152D            ;                             (LINE)
3083  152D            ;                             SCREEN 61 LINE 2
3084  152D            ;
3085  152D  86        L2838  .BYTE $86,'(LINE',$A9
3085  152E  28 4C
3085  1530  49 4E 45
3085  1533  A9
3086  1534  CD 14            .WORD L2788         ;  LINK TO BLOCK
3087  1536  D6 07     PLINE  .WORD DOCOL
3088  1538  3A 06            .WORD TOR
3089  153A  88 08            .WORD CSLL

fig-FORTH for 6502, Rel 1.1   ......PAGE 0065

LINE # LOC     CODE       LINE

3090  153C  AC 08            .WORD BBUF
3091  153E  83 13            .WORD SSMOD
3092  1540  4C 06            .WORD RFROM
3093  1542  B8 08            .WORD BSCR
3094  1544  44 13            .WORD STAR
3095  1546  99 06            .WORD PLUS
3096  1548  D5 14            .WORD BLOCK
3097  154A  99 06            .WORD PLUS
3098  154C  88 08            .WORD CSLL
3099  154E  0C 06            .WORD SEMIS
3100  1550            ;
3101  1550            ;                             .LINE
3102  1550            ;                             SCREEN 61 LINE 6
3103  1550            ;
3104  1550  85        L2857  .BYTE $85,'.LIN',$C5
3104  1551  2E 4C
3104  1553  49 4E
3104  1555  C5
3105  1556  2D 15            .WORD L2838         ;  LINK TO (LINE)
3106  1558  D6 07     DLINE  .WORD DOCOL
3107  155A  36 15            .WORD PLINE
3108  155C  C3 0C            .WORD DTRAI
3109  155E  95 0C            .WORD TYPE
3110  1560  0C 06            .WORD SEMIS
3111  1562            ;
3112  1562            ;                             MESSAGE
3113  1562            ;                             SCREEN 61 LINE 9
3114  1562            ;
3115  1562  87        L2868  .BYTE $87,'MESSAG',$C5
3115  1563  4D 45
3115  1565  53 53 41
3115  1568  47
3115  1569  C5
3116  156A  50 15            .WORD L2857         ;  LINK TO .LINE
3117  156C  D6 07     MESS   .WORD DOCOL
3118  156E  EE 08            .WORD WARN
3119  1570  79 07            .WORD AT
3120  1572  56 03            .WORD ZBRAN
3121  1574  1B 00     L2874  .WORD $1B           L2888-L2874
3122  1576  6D 0A            .WORD DDUP
3123  1578  56 03            .WORD ZBRAN
3124  157A  11 00     L2877  .WORD $11           L2886-L2877
3125  157C  67 02            .WORD CLIT
3126  157E  04               .BYTE 4
3127  157F  3E 09            .WORD OFSET
3128  1581  79 07            .WORD AT
3129  1583  B8 08            .WORD BSCR
3130  1585  63 13            .WORD SLASH
3131  1587  FA 09            .WORD SUB
3132  1589  58 15            .WORD DLINE
3133  158B  37 03     L2886  .WORD BRAN
3134  158D  0D 00     L2887  .WORD 13            L2891-L2887
3135  158F  F6 0C     L2888  .WORD PDOTQ
3136  1591  06               .BYTE 6,'MSG # '
3136  1592  4D 53
3136  1594  47 20 23
3136  1597  20
3137  1598  5D 19            .WORD DOT
3138  159A  0C 06     L2891  .WORD SEMIS
3139  159C            ;

fig-FORTH for 6502, Rel 1.1   ......PAGE 0066

LINE # LOC     CODE       LINE

3140  159C            ;                             LOAD
3141  159C            ;                             SCREEN 62 LINE 2
3142  159C            ;
3143  159C  84        L2896  .BYTE $84,'LOA',$C4
3143  159D  4C 4F 41
3143  15A0  C4
3144  15A1  62 15            .WORD L2868         ;  LINK TO MESSAGE
3145  15A3  D6 07     LOAD   .WORD DOCOL
3146  15A5  18 09            .WORD BLK
3147  15A7  79 07            .WORD AT
3148  15A9  3A 06            .WORD TOR
3149  15AB  20 09            .WORD IN
3150  15AD  79 07            .WORD AT
3151  15AF  3A 06            .WORD TOR
3152  15B1  5D 08            .WORD ZERO
3153  15B3  20 09            .WORD IN
3154  15B5  9D 07            .WORD STORE
3155  15B7  B8 08            .WORD BSCR
3156  15B9  44 13            .WORD STAR
3157  15BB  18 09            .WORD BLK
3158  15BD  9D 07            .WORD STORE
3159  15BF  20 11            .WORD INTER
3160  15C1  4C 06            .WORD RFROM
3161  15C3  20 09            .WORD IN
3162  15C5  9D 07            .WORD STORE
3163  15C7  4C 06            .WORD RFROM
3164  15C9  18 09            .WORD BLK
3165  15CB  9D 07            .WORD STORE
3166  15CD  0C 06            .WORD SEMIS
3167  15CF            ;
3168  15CF            ;                             -->
3169  15CF            ;                             SCREEN 62 LINE 6
3170  15CF            ;
3171  15CF  C3        L2924  .BYTE $C3,'--',$BE
3171  15D0  2D 2D
3171  15D2  BE
3172  15D3  9C 15            .WORD L2896         ;  LINK TO LOAD
3173  15D5  D6 07            .WORD DOCOL
3174  15D7  86 0B            .WORD QLOAD
3175  15D9  5D 08            .WORD ZERO
3176  15DB  20 09            .WORD IN
3177  15DD  9D 07            .WORD STORE
3178  15DF  B8 08            .WORD BSCR
3179  15E1  18 09            .WORD BLK
3180  15E3  79 07            .WORD AT
3181  15E5  08 07            .WORD OVER
3182  15E7  73 13            .WORD MOD
3183  15E9  FA 09            .WORD SUB
3184  15EB  18 09            .WORD BLK
3185  15ED  49 07            .WORD PSTOR
3186  15EF  0C 06            .WORD SEMIS
3187  15F1            ;
3188  15F1            ;     XEMIT writes one ascii
3189  15F1            ;
3190  15F1  98        XEMIT  TYA

fig-FORTH for 6502, Rel 1.1   ......PAGE 0067

LINE # LOC     CODE       LINE

3191  15F2  38               SEC
3192  15F3  A0 1A            LDY #$1A
3193  15F5  71 B3            ADC (UP),Y
3194  15F7  91 B3            STA (UP),Y
3195  15F9  C8               INY         ; bump user variable OUT
3196  15FA  A9 00            LDA #0
3197  15FC  71 B3            ADC (UP),Y
3198  15FE  91 B3            STA (UP),Y
3199  1600  B5 00            LDA 0,X     ; fetch character to output
3200  1602  86 B5            STX XSAVE
3201  1604  20 C1 D2         JSR OUTCH   ; and display it
3202  1607  A6 B5            LDX XSAVE
3203  1609  4C EE 03         JMP POP
3204  160C            ;
3205  160C            ;      XKEY reads one terminal keystroke to stack
3206  160C            ;
3207  160C  86 B5     XKEY   STX XSAVE
3208  160E  20 DC D1         JSR INCH       ;    might otherwise clobber it while
3209  1611  A6 B5            LDX XSAVE      ;    inputing a character to accumulator
3210  1613  4C DC 05         JMP PUSH0A
3211  1616            ;
3212  1616            ;      XQTER leaves a boolean representing terminal break
3213  1616            ;
3214  1616  AD 00 C0  XQTER  LDA $C000   ;  System dependent port test
3215  1619  CD 01 C0         CMP $C001
3216  161C  29 01            AND #1
3217  161E  4C DC 05         JMP PUSH0A
3218  1621            ;
3219  1621            ;        XCR displays a CR and LF to terminal
3220  1621            ;
3221  1621  86 B5     XCR    STX XSAVE
3222  1623  20 F1 D0         JSR TCR      ; Use monitor call
3223  1626  A6 B5            LDX XSAVE
3224  1628  4C 44 02         JMP NEXT
3225  162B            ;
3226  162B            ;                            -DISC
3227  162B            ;                            Machine level sector read/write
3228  162B  85        L3030  .BYTE $85,'-DIS',$C3
3228  162C  2D 44
3228  162E  49 53
3228  1630  C3
3229  1631  CF 15            .WORD L2924            ; Link to -->
3230  1633  35 16     DDISC  .WORD *+2
3231  1635  B5 00            LDA 0,X
3232  1637  8D 0C C6         STA $C60C
3233  163A  8D 0D C6         STA $C60D     ; Store sector number
3234  163D  B5 02            LDA 2,X
3235  163F  8D 0A C6         STA $C60A
3236  1642  8D 0B C6         STA $C60B     ; Store track number
3237  1645  B5 04            LDA 4,X
3238  1647  8D CD C4         STA $C4CD
3239  164A  8D CE C4         STA $C4CE     ; Store drive number
3240  164D  86 B5            STX XSAVE
3241  164F  AD DA C4         LDA $C4DA     ; Sense read or write
3242  1652  D0 06            BNE L3032
3243  1654  20 FE E1         JSR $E1FE

fig-FORTH for 6502, Rel 1.1   ......PAGE 0068

LINE # LOC     CODE       LINE

3244  1657  4C 5D 16         JMP L3040
3245  165A  20 62 E2  L3032  JSR $E262
3246  165D  20 EF E3  L3040  JSR $E3EF      ; Head up motor off
3247  1660  A6 B5            LDX XSAVE
3248  1662  AD E1 C4         LDA $C4E1      ; Report error code
3249  1665  95 04            STA 4,X
3250  1667  4C EC 03         JMP POPTWO
3251  166A            ;
3252  166A            ;                              -BCD
3253  166A            ;                             Convert binary value to BCD
3254  166A            ;
3255  166A  84        L3050  .BYTE $84,'-BC',$C4
3255  166B  2D 42 43
3255  166E  C4
3256  166F  2B 16            .WORD L3030       ; link to -DISC
3257  1671  D6 07     DBCD   .WORD DOCOL
3258  1673  5D 08            .WORD ZERO,CLIT
3258  1675  67 02
3259  1677  0A               .BYTE 10
3260  1678  5B 05            .WORD USLAS,CLIT
3260  167A  67 02
3261  167C  10               .BYTE 16
3262  167D  44 13            .WORD STAR,OR,SEMIS
3262  167F  AD 05
3262  1681  0C 06
3263  1683            ;
3264  1683            ;                                R/W
3265  1683            ;                                Read or write one sector
3266  1683  83        L3060  .BYTE $83,'R/',$D7
3266  1684  52 2F
3266  1686  D7
3267  1687  6A 16            .WORD L3050       ; link to -BCD
3268  1689  D6 07     RSLW   .WORD DOCOL
3269  168B  73 06            .WORD ZEQU,LIT,$C4DA,CSTOR
3269  168D  2A 02
3269  168F  DA C4
3269  1691  B5 07
3270  1693  22 07            .WORD SWAP,ZERO,STORE
3270  1695  5D 08
3270  1697  9D 07
3271  1699  5D 08            .WORD ZERO,OVER,GREAT,OVER
3271  169B  08 07
3271  169D  3C 0A
3271  169F  08 07
3272  16A1  2A 02            .WORD LIT,SECTL-1,GREAT,OR,CLIT
3272  16A3  3F 06
3272  16A5  3C 0A
3272  16A7  AD 05
3272  16A9  67 02
3273  16AB  06               .BYTE 6
3274  16AC  11 0B            .WORD QERR
3275  16AE  5D 08            .WORD ZERO,LIT,SECTR,USLAS,ONEP
3275  16B0  2A 02
3275  16B2  20 03
3275  16B4  5B 05

fig-FORTH for 6502, Rel 1.1   ......PAGE 0069

LINE # LOC     CODE       LINE

3275  16B6  A1 09
3276  16B8  22 07            .WORD SWAP,ZERO,CLIT
3276  16BA  5D 08
3276  16BC  67 02
3277  16BE  12               .BYTE $12
3278  16BF  5B 05            .WORD USLAS,DBCD,SWAP,ONEP
3278  16C1  71 16
3278  16C3  22 07
3278  16C5  A1 09
3279  16C7  71 16            .WORD DBCD,DDISC,CLIT
3279  16C9  33 16
3279  16CB  67 02
3280  16CD  08               .BYTE 8
3281  16CE  11 0B            .WORD QERR
3282  16D0  0C 06            .WORD SEMIS
3283  16D2            ;
3284  16D2            ;
3285  16D2            ;
3286  16D2  0C 06            .WORD SEMIS
3287  16D4            ;
3288  16D4            ;                             '
3289  16D4            ;                             SCREEN 72 LINE 2
3290  16D4            ;
3291  16D4  C1        L3202  .BYTE $C1,$A7
3291  16D5  A7
3292  16D6  83 16            .WORD L3060         ;  LINK TO R/W
3293  16D8  D6 07     TICK   .WORD DOCOL
3294  16DA  8D 0F            .WORD DFIND
3295  16DC  73 06            .WORD ZEQU
3296  16DE  5D 08            .WORD ZERO
3297  16E0  11 0B            .WORD QERR
3298  16E2  19 07            .WORD DROP
3299  16E4  C1 10            .WORD LITER
3300  16E6  0C 06            .WORD SEMIS
3301  16E8            ;
3302  16E8            ;
3303  16E8            ;                             FORGET
3304  16E8            ;                             Altered from Model
3305  16E8            ;                             SCREEN 72 LINE 6
3306  16E8            ;
3307  16E8  86        L3217  .BYTE $86,'FORGE',$D4
3307  16E9  46 4F
3307  16EB  52 47 45
3307  16EE  D4
3308  16EF  D4 16            .WORD L3202    LINK TO ' TICK
3309  16F1  D6 07     FORG   .WORD DOCOL
3310  16F3  D8 16            .WORD TICK,NFA,DUP
3310  16F5  D5 0A
3310  16F7  3A 07
3311  16F9  F9 08            .WORD FENCE,AT,ULESS,CLIT
3311  16FB  79 07
3311  16FD  13 0A
3311  16FF  67 02
3312  1701  15               .BYTE $15
3313  1702  11 0B            .WORD QERR,TOR,VOCL,AT
3313  1704  3A 06

fig-FORTH for 6502, Rel 1.1   ......PAGE 0070

LINE # LOC     CODE       LINE

3313  1706  0F 09
3313  1708  79 07
3314  170A  5D 06     L3220  .WORD R,OVER,ULESS
3314  170C  08 07
3314  170E  13 0A
3315  1710  56 03            .WORD ZBRAN,L3225-*
3315  1712  12 00
3316  1714  B6 11            .WORD FORTH,DEFIN,AT,DUP
3316  1716  CE 11
3316  1718  79 07
3316  171A  3A 07
3317  171C  0F 09            .WORD VOCL,STORE
3317  171E  9D 07
3318  1720  37 03            .WORD BRAN,$FFFF-24+1      L3220-*
3318  1722  E8 FF
3319  1724  3A 07     L3225  .WORD DUP,CLIT
3319  1726  67 02
3320  1728  04               .BYTE 4
3321  1729  FA 09            .WORD SUB
3322  172B  EA 0A     L3228  .WORD PFA,LFA,AT
3322  172D  B8 0A
3322  172F  79 07
3323  1731  3A 07            .WORD DUP,R,ULESS
3323  1733  5D 06
3323  1735  13 0A
3324  1737  56 03            .WORD ZBRAN,$FFFF-14+1     L3228-*
3324  1739  F2 FF
3325  173B  08 07            .WORD OVER,TWO,SUB,STORE
3325  173D  6D 08
3325  173F  FA 09
3325  1741  9D 07
3326  1743  79 07            .WORD AT,DDUP,ZEQU
3326  1745  6D 0A
3326  1747  73 06
3327  1749  56 03            .WORD ZBRAN,$FFFF-39+1     L3225-*
3327  174B  D9 FF
3328  174D  4C 06            .WORD RFROM,DP,STORE
3328  174F  01 09
3328  1751  9D 07
3329  1753  0C 06            .WORD SEMIS
3330  1755            ;
3331  1755            ;                             BACK
3332  1755            ;                             SCREEN 73 LINE 1
3333  1755            ;
3334  1755  84        L3250  .BYTE $84,'BAC',$CB
3334  1756  42 41 43
3334  1759  CB
3335  175A  E8 16            .WORD L3217         ;  LINK TO FORGET
3336  175C  D6 07     BACK   .WORD DOCOL
3337  175E  BD 09            .WORD HERE
3338  1760  FA 09            .WORD SUB
3339  1762  D9 09            .WORD COMMA
3340  1764  0C 06            .WORD SEMIS
3341  1766            ;
3342  1766            ;                             BEGIN

fig-FORTH for 6502, Rel 1.1   ......PAGE 0071

LINE # LOC     CODE       LINE

3343  1766            ;                             SCREEN 73 LINE 3
3344  1766            ;
3345  1766  C5        L3261  .BYTE $C5,'BEGI',$CE
3345  1767  42 45
3345  1769  47 49
3345  176B  CE
3346  176C  55 17            .WORD L3250  ;  LINK TO BACK
3347  176E  D6 07            .WORD DOCOL
3348  1770  2B 0B            .WORD QCOMP
3349  1772  BD 09            .WORD HERE
3350  1774  65 08            .WORD ONE
3351  1776  0C 06            .WORD SEMIS
3352  1778            ;
3353  1778            ;
3354  1778            ;                             ENDIF
3355  1778            ;                             SCREEN 73 LINE 5
3356  1778            ;
3357  1778  C5        L3273  .BYTE $C5,'ENDI',$C6
3357  1779  45 4E
3357  177B  44 49
3357  177D  C6
3358  177E  66 17            .WORD L3261         ;  LINK TO BEGIN
3359  1780  D6 07     ENDIF  .WORD DOCOL
3360  1782  2B 0B            .WORD QCOMP
3361  1784  6D 08            .WORD TWO
3362  1786  58 0B            .WORD QPAIR
3363  1788  BD 09            .WORD HERE
3364  178A  08 07            .WORD OVER
3365  178C  FA 09            .WORD SUB
3366  178E  22 07            .WORD SWAP
3367  1790  9D 07            .WORD STORE
3368  1792  0C 06            .WORD SEMIS
3369  1794            ;
3370  1794            ;
3371  1794            ;                             THEN
3372  1794            ;                             SCREEN 73 LINE 7
3373  1794            ;
3374  1794  C4        L3290  .BYTE $C4,'THE',$CE
3374  1795  54 48 45
3374  1798  CE
3375  1799  78 17            .WORD L3273         ;  LINK TO ENDIF
3376  179B  D6 07            .WORD DOCOL
3377  179D  80 17            .WORD ENDIF
3378  179F  0C 06            .WORD SEMIS
3379  17A1            ;
3380  17A1            ;
3381  17A1            ;                             DO
3382  17A1            ;                             SCREEN 73 LINE 9
3383  17A1            ;
3384  17A1  C2        L3300  .BYTE $C2,'D',$CF
3384  17A2  44
3384  17A3  CF
3385  17A4  94 17            .WORD L3290         ;  LINK TO THEN
3386  17A6  D6 07            .WORD DOCOL
3387  17A8  9F 0B            .WORD COMP
3388  17AA  DE 03            .WORD PDO
3389  17AC  BD 09            .WORD HERE

fig-FORTH for 6502, Rel 1.1   ......PAGE 0072

LINE # LOC     CODE       LINE

3390  17AE  75 08            .WORD THREE
3391  17B0  0C 06            .WORD SEMIS
3392  17B2            ;
3393  17B2            ;
3394  17B2            ;                             LOOP
3395  17B2            ;                             SCREEN 73 LINE 11
3396  17B2            ;
3397  17B2  C4        L3313  .BYTE $C4,'LOO',$D0
3397  17B3  4C 4F 4F
3397  17B6  D0
3398  17B7  A1 17            .WORD L3300         ;  LINK TO DO
3399  17B9  D6 07            .WORD DOCOL
3400  17BB  75 08            .WORD THREE
3401  17BD  58 0B            .WORD QPAIR
3402  17BF  9F 0B            .WORD COMP
3403  17C1  77 03            .WORD PLOOP
3404  17C3  5C 17            .WORD BACK
3405  17C5  0C 06            .WORD SEMIS
3406  17C7            ;
3407  17C7            ;
3408  17C7            ;                             +LOOP
3409  17C7            ;                             SCREEN 73 LINE 13
3410  17C7            ;
3411  17C7  C5        L3327  .BYTE $C5,'+LOO',$D0
3411  17C8  2B 4C
3411  17CA  4F 4F
3411  17CC  D0
3412  17CD  B2 17            .WORD L3313         ;  LINK TO LOOP
3413  17CF  D6 07            .WORD DOCOL
3414  17D1  75 08            .WORD THREE
3415  17D3  58 0B            .WORD QPAIR
3416  17D5  9F 0B            .WORD COMP
3417  17D7  A7 03            .WORD PPLOO
3418  17D9  5C 17            .WORD BACK
3419  17DB  0C 06            .WORD SEMIS
3420  17DD            ;
3421  17DD            ;
3422  17DD            ;                             UNTIL
3423  17DD            ;                             SCREEN 73 LINE 15
3424  17DD            ;
3425  17DD  C5        L3341  .BYTE $C5,'UNTI',$CC
3425  17DE  55 4E
3425  17E0  54 49
3425  17E2  CC
3426  17E3  C7 17            .WORD L3327         ;  LINK TO +LOOP
3427  17E5  D6 07     UNTIL  .WORD DOCOL
3428  17E7  65 08            .WORD ONE
3429  17E9  58 0B            .WORD QPAIR
3430  17EB  9F 0B            .WORD COMP
3431  17ED  56 03            .WORD ZBRAN
3432  17EF  5C 17            .WORD BACK
3433  17F1  0C 06            .WORD SEMIS
3434  17F3            ;
3435  17F3            ;
3436  17F3            ;                             END
3437  17F3            ;                             SCREEN 74 LINE 1
3438  17F3            ;

fig-FORTH for 6502, Rel 1.1   ......PAGE 0073

LINE # LOC     CODE       LINE

3439  17F3  C3        L3355  .BYTE $C3,'EN',$C4
3439  17F4  45 4E
3439  17F6  C4
3440  17F7  DD 17            .WORD L3341         ;  LINK TO UNTIL
3441  17F9  D6 07            .WORD DOCOL
3442  17FB  E5 17            .WORD UNTIL
3443  17FD  0C 06            .WORD SEMIS
3444  17FF            ;
3445  17FF            ;
3446  17FF            ;                             AGAIN
3447  17FF            ;                             SCREEN 74 LINE 3
3448  17FF            ;
3449  17FF  C5        L3365  .BYTE $C5,'AGAI',$CE
3449  1800  41 47
3449  1802  41 49
3449  1804  CE
3450  1805  F3 17            .WORD L3355            LINK TO END
3451  1807  D6 07     AGAIN  .WORD DOCOL
3452  1809  65 08            .WORD ONE
3453  180B  58 0B            .WORD QPAIR
3454  180D  9F 0B            .WORD COMP
3455  180F  37 03            .WORD BRAN
3456  1811  5C 17            .WORD BACK
3457  1813  0C 06            .WORD SEMIS
3458  1815            ;
3459  1815            ;
3460  1815            ;                             REPEAT
3461  1815            ;                             SCREEN 74 LINE 5
3462  1815            ;
3463  1815  C6        L3379  .BYTE $C6,'REPEA',$D4
3463  1816  52 45
3463  1818  50 45 41
3463  181B  D4
3464  181C  FF 17            .WORD L3365         ;  LINK TO AGAIN
3465  181E  D6 07            .WORD DOCOL
3466  1820  3A 06            .WORD TOR
3467  1822  3A 06            .WORD TOR
3468  1824  07 18            .WORD AGAIN
3469  1826  4C 06            .WORD RFROM
3470  1828  4C 06            .WORD RFROM
3471  182A  6D 08            .WORD TWO
3472  182C  FA 09            .WORD SUB
3473  182E  80 17            .WORD ENDIF
3474  1830  0C 06            .WORD SEMIS
3475  1832            ;
3476  1832            ;
3477  1832            ;                             IF
3478  1832            ;                             SCREEN 74 LINE 8
3479  1832            ;
3480  1832  C2        L3396  .BYTE $C2,'I',$C6
3480  1833  49
3480  1834  C6
3481  1835  15 18            .WORD L3379         ;  LINK TO REPEAT
3482  1837  D6 07     IF     .WORD DOCOL
3483  1839  9F 0B            .WORD COMP
3484  183B  56 03            .WORD ZBRAN
3485  183D  BD 09            .WORD HERE

fig-FORTH for 6502, Rel 1.1   ......PAGE 0074

LINE # LOC     CODE       LINE

3486  183F  5D 08            .WORD ZERO
3487  1841  D9 09            .WORD COMMA
3488  1843  6D 08            .WORD TWO
3489  1845  0C 06            .WORD SEMIS
3490  1847            ;
3491  1847            ;
3492  1847            ;                             ELSE
3493  1847            ;                             SCREEN 74 LINE 10
3494  1847            ;
3495  1847  C4        L3411  .BYTE $C4,'ELS',$C5
3495  1848  45 4C 53
3495  184B  C5
3496  184C  32 18            .WORD L3396         ;  LINK TO IF
3497  184E  D6 07            .WORD DOCOL
3498  1850  6D 08            .WORD TWO
3499  1852  58 0B            .WORD QPAIR
3500  1854  9F 0B            .WORD COMP
3501  1856  37 03            .WORD BRAN
3502  1858  BD 09            .WORD HERE
3503  185A  5D 08            .WORD ZERO
3504  185C  D9 09            .WORD COMMA
3505  185E  22 07            .WORD SWAP
3506  1860  6D 08            .WORD TWO
3507  1862  80 17            .WORD ENDIF
3508  1864  6D 08            .WORD TWO
3509  1866  0C 06            .WORD SEMIS
3510  1868            ;
3511  1868            ;
3512  1868            ;                             WHILE
3513  1868            ;                             SCREEN 74 LINE 13
3514  1868            ;
3515  1868  C5        L3431  .BYTE $C5,'WHIL',$C5
3515  1869  57 48
3515  186B  49 4C
3515  186D  C5
3516  186E  47 18            .WORD L3411         ;  LINK TO ELSE
3517  1870  D6 07            .WORD DOCOL
3518  1872  37 18            .WORD IF
3519  1874  AE 09            .WORD TWOP
3520  1876  0C 06            .WORD SEMIS
3521  1878            ;
3522  1878            ;
3523  1878            ;                             SPACES
3524  1878            ;                             SCREEN 75 LINE 1
3525  1878            ;
3526  1878  86        L3442  .BYTE $86,'SPACE',$D3
3526  1879  53 50
3526  187B  41 43 45
3526  187E  D3
3527  187F  68 18            .WORD L3431         ;  LINK TO WHILE
3528  1881  D6 07     SPACS  .WORD DOCOL
3529  1883  5D 08            .WORD ZERO
3530  1885  EA 12            .WORD MAX
3531  1887  6D 0A            .WORD DDUP
3532  1889  56 03            .WORD ZBRAN
3533  188B  0C 00     L3449  .WORD $0C           L3455-L3449
3534  188D  5D 08            .WORD ZERO

fig-FORTH for 6502, Rel 1.1   ......PAGE 0075

LINE # LOC     CODE       LINE

3535  188F  DE 03            .WORD PDO
3536  1891  5E 0A     L3452  .WORD SPACE
3537  1893  77 03            .WORD PLOOP
3538  1895  FC FF     L3454  .WORD $FFFC         L3452-L3454
3539  1897  0C 06     L3455  .WORD SEMIS
3540  1899            ;
3541  1899            ;                             <#
3542  1899            ;                             SCREEN 75 LINE 3
3543  1899            ;
3544  1899  82        L3460  .BYTE $82,'<',$A3
3544  189A  3C
3544  189B  A3
3545  189C  78 18            .WORD L3442         ;  LINK TO SPACES
3546  189E  D6 07     BDIGS  .WORD DOCOL
3547  18A0  5E 0E            .WORD PAD
3548  18A2  99 09            .WORD HLD
3549  18A4  9D 07            .WORD STORE
3550  18A6  0C 06            .WORD SEMIS
3551  18A8            ;
3552  18A8            ;                             #>
3553  18A8            ;                             SCREEN 75 LINE 5
3554  18A8            ;
3555  18A8  82        L3471  .BYTE $82,'#',$BE
3555  18A9  23
3555  18AA  BE
3556  18AB  99 18            .WORD L3460         ;  LINK TO <#
3557  18AD  D6 07     EDIGS  .WORD DOCOL
3558  18AF  19 07            .WORD DROP
3559  18B1  19 07            .WORD DROP
3560  18B3  99 09            .WORD HLD
3561  18B5  79 07            .WORD AT
3562  18B7  5E 0E            .WORD PAD
3563  18B9  08 07            .WORD OVER
3564  18BB  FA 09            .WORD SUB
3565  18BD  0C 06            .WORD SEMIS
3566  18BF            ;
3567  18BF            ;                             SIGN
3568  18BF            ;                             SCREEN 75 LINE 7
3569  18BF            ;
3570  18BF  84        L3486  .BYTE $84,'SIG',$CE
3570  18C0  53 49 47
3570  18C3  CE
3571  18C4  A8 18            .WORD L3471         ;  LINK TO #>
3572  18C6  D6 07     SIGN   .WORD DOCOL
3573  18C8  4A 0A            .WORD ROT
3574  18CA  88 06            .WORD ZLESS
3575  18CC  56 03            .WORD ZBRAN
3576  18CE  07 00     L3492  .WORD $7            L3496-L3492
3577  18D0  67 02            .WORD CLIT
3578  18D2  2D               .BYTE $2D
3579  18D3  46 0E            .WORD HOLD
3580  18D5  0C 06     L3496  .WORD SEMIS
3581  18D7            ;
3582  18D7            ;                             #
3583  18D7            ;                             SCREEN 75 LINE 9

fig-FORTH for 6502, Rel 1.1   ......PAGE 0076

LINE # LOC     CODE       LINE

3584  18D7            ;
3585  18D7  81        L3501  .BYTE $81,$A3
3585  18D8  A3
3586  18D9  BF 18            .WORD L3486         ;  LINK TO SIGN
3587  18DB  D6 07     DIG    .WORD DOCOL
3588  18DD  6D 09            .WORD BASE
3589  18DF  79 07            .WORD AT
3590  18E1  A6 13            .WORD MSMOD
3591  18E3  4A 0A            .WORD ROT
3592  18E5  67 02            .WORD CLIT
3593  18E7  09               .BYTE 9
3594  18E8  08 07            .WORD OVER
3595  18EA  1F 0A            .WORD LESS
3596  18EC  56 03            .WORD ZBRAN
3597  18EE  07 00     L3513  .WORD 7            L3517-L3513
3598  18F0  67 02            .WORD CLIT
3599  18F2  07               .BYTE 7
3600  18F3  99 06            .WORD PLUS
3601  18F5  67 02     L3517  .WORD CLIT
3602  18F7  30               .BYTE $30
3603  18F8  99 06            .WORD PLUS
3604  18FA  46 0E            .WORD HOLD
3605  18FC  0C 06            .WORD SEMIS
3606  18FE            ;
3607  18FE            ;                             #S
3608  18FE            ;                             SCREEN 75 LINE 12
3609  18FE            ;
3610  18FE  82        L3526  .BYTE $82,'#',$D3
3610  18FF  23
3610  1900  D3
3611  1901  D7 18            .WORD L3501         ;  LINK TO #
3612  1903  D6 07     DIGS   .WORD DOCOL
3613  1905  DB 18     L3529  .WORD DIG
3614  1907  08 07            .WORD OVER
3615  1909  08 07            .WORD OVER
3616  190B  AD 05            .WORD OR
3617  190D  73 06            .WORD ZEQU
3618  190F  56 03            .WORD ZBRAN
3619  1911  F4 FF     L3535  .WORD $FFF4         L3529-L3535
3620  1913  0C 06            .WORD SEMIS
3621  1915            ;
3622  1915            ;                             D.R
3623  1915            ;                             SCREEN 76 LINE 1
3624  1915            ;
3625  1915  83        L3541  .BYTE $83,'D.',$D2
3625  1916  44 2E
3625  1918  D2
3626  1919  FE 18            .WORD L3526         ;  LINK TO #S
3627  191B  D6 07     DDOTR  .WORD DOCOL
3628  191D  3A 06            .WORD TOR
3629  191F  22 07            .WORD SWAP
3630  1921  08 07            .WORD OVER
3631  1923  C4 12            .WORD DABS
3632  1925  9E 18            .WORD BDIGS
3633  1927  03 19            .WORD DIGS

fig-FORTH for 6502, Rel 1.1   ......PAGE 0077

LINE # LOC     CODE       LINE

3634  1929  C6 18            .WORD SIGN
3635  192B  AD 18            .WORD EDIGS
3636  192D  4C 06            .WORD RFROM
3637  192F  08 07            .WORD OVER
3638  1931  FA 09            .WORD SUB
3639  1933  81 18            .WORD SPACS
3640  1935  95 0C            .WORD TYPE
3641  1937  0C 06            .WORD SEMIS
3642  1939            ;
3643  1939            ;                             D.
3644  1939            ;                             SCREEN 76 LINE 5
3645  1939            ;
3646  1939  82        L3562  .BYTE $82,'D',$AE
3646  193A  44
3646  193B  AE
3647  193C  15 19            .WORD L3541         ;  LINK TO D.R
3648  193E  D6 07     DDOT   .WORD DOCOL
3649  1940  5D 08            .WORD ZERO
3650  1942  1B 19            .WORD DDOTR
3651  1944  5E 0A            .WORD SPACE
3652  1946  0C 06            .WORD SEMIS
3653  1948            ;
3654  1948            ;                             .R
3655  1948            ;                             SCREEN 76 LINE 7
3656  1948            ;
3657  1948  82        L3573  .BYTE $82,'.',$D2
3657  1949  2E
3657  194A  D2
3658  194B  39 19            .WORD L3562         LINK TO D.
3659  194D  D6 07     DOTR   .WORD DOCOL
3660  194F  3A 06            .WORD TOR
3661  1951  82 12            .WORD STOD
3662  1953  4C 06            .WORD RFROM
3663  1955  1B 19            .WORD DDOTR
3664  1957  0C 06            .WORD SEMIS
3665  1959            ;
3666  1959            ;                             .
3667  1959            ;                             SCREEN 76 LINE 9
3668  1959            ;
3669  1959  81        L3585  .BYTE $81,$AE
3669  195A  AE
3670  195B  48 19            .WORD L3573         ;  LINK TO .R
3671  195D  D6 07     DOT    .WORD DOCOL
3672  195F  82 12            .WORD STOD
3673  1961  3E 19            .WORD DDOT
3674  1963  0C 06            .WORD SEMIS
3675  1965            ;
3676  1965            ;                             ?
3677  1965            ;                             SCREEN 76 LINE 11
3678  1965            ;
3679  1965  81        L3595  .BYTE $81,$BF
3679  1966  BF
3680  1967  59 19            .WORD L3585         ;  LINK TO .
3681  1969  D6 07     QUES   .WORD DOCOL
3682  196B  79 07            .WORD AT

fig-FORTH for 6502, Rel 1.1   ......PAGE 0078

LINE # LOC     CODE       LINE

3683  196D  5D 19            .WORD DOT
3684  196F  0C 06            .WORD SEMIS
3685  1971            ;
3686  1971            ;                             LIST
3687  1971            ;                             SCREEN 77 LINE 2
3688  1971            ;
3689  1971  84        L3605  .BYTE $84,'LIS',$D4
3689  1972  4C 49 53
3689  1975  D4
3690  1976  65 19            .WORD L3595         ;  LINK TO ?
3691  1978  D6 07     LIST   .WORD DOCOL
3692  197A  FD 0B            .WORD DECIM
3693  197C  F4 04            .WORD CR
3694  197E  3A 07            .WORD DUP
3695  1980  32 09            .WORD SCR
3696  1982  9D 07            .WORD STORE
3697  1984  F6 0C            .WORD PDOTQ
3698  1986  06               .BYTE 6,'SCR # '
3698  1987  53 43
3698  1989  52 20 23
3698  198C  20
3699  198D  5D 19            .WORD DOT
3700  198F  67 02            .WORD CLIT
3701  1991  10               .BYTE 16
3702  1992  5D 08            .WORD ZERO
3703  1994  DE 03            .WORD PDO
3704  1996  F4 04     L3620  .WORD CR
3705  1998  F7 03            .WORD I
3706  199A  75 08            .WORD THREE
3707  199C  4D 19            .WORD DOTR
3708  199E  5E 0A            .WORD SPACE
3709  19A0  F7 03            .WORD I
3710  19A2  32 09            .WORD SCR
3711  19A4  79 07            .WORD AT
3712  19A6  58 15            .WORD DLINE
3713  19A8  77 03            .WORD PLOOP
3714  19AA  EC FF     L3630  .WORD $FFEC         L3620-L3630
3715  19AC  F4 04            .WORD CR
3716  19AE  0C 06            .WORD SEMIS
3717  19B0            ;
3718  19B0            ;                             INDEX
3719  19B0            ;                             SCREEN 77 LINE 7
3720  19B0            ;
3721  19B0  85        L3637  .BYTE $85,'INDE',$D8
3721  19B1  49 4E
3721  19B3  44 45
3721  19B5  D8
3722  19B6  71 19            .WORD L3605         ;  LINK TO LIST
3723  19B8  D6 07            .WORD DOCOL
3724  19BA  F4 04            .WORD CR
3725  19BC  A1 09            .WORD ONEP
3726  19BE  22 07            .WORD SWAP
3727  19C0  DE 03            .WORD PDO
3728  19C2  F4 04     L3647  .WORD CR
3729  19C4  F7 03            .WORD I
3730  19C6  75 08            .WORD THREE
3731  19C8  4D 19            .WORD DOTR
3732  19CA  5E 0A            .WORD SPACE

fig-FORTH for 6502, Rel 1.1   ......PAGE 0079

LINE # LOC     CODE       LINE

3733  19CC  5D 08            .WORD ZERO
3734  19CE  F7 03            .WORD I
3735  19D0  58 15            .WORD DLINE
3736  19D2  ED 04            .WORD QTERM
3737  19D4  56 03            .WORD ZBRAN
3738  19D6  04 00     L3657  .WORD 4             L3659-L3657
3739  19D8  1F 06            .WORD LEAVE
3740  19DA  77 03     L3659  .WORD PLOOP
3741  19DC  E6 FF     L3660  .WORD $FFE6         L3647-L3660
3742  19DE  67 02            .WORD CLIT
3743  19E0  0C               .BYTE $0C     FORM FEED FOR PRINTER
3744  19E1  D7 04            .WORD EMIT
3745  19E3  0C 06            .WORD SEMIS
3746  19E5            ;
3747  19E5            ;                             TRIAD
3748  19E5            ;                             SCREEN 77 LINE 12
3749  19E5            ;
3750  19E5  85        L3666  .BYTE $85,'TRIA',$C4
3750  19E6  54 52
3750  19E8  49 41
3750  19EA  C4
3751  19EB  B0 19            .WORD L3637         ;  LINK TO INDEX
3752  19ED  D6 07            .WORD DOCOL
3753  19EF  75 08            .WORD THREE
3754  19F1  63 13            .WORD SLASH
3755  19F3  75 08            .WORD THREE
3756  19F5  44 13            .WORD STAR
3757  19F7  75 08            .WORD THREE
3758  19F9  08 07            .WORD OVER
3759  19FB  99 06            .WORD PLUS
3760  19FD  22 07            .WORD SWAP
3761  19FF  DE 03            .WORD PDO
3762  1A01  F4 04     L3681  .WORD CR
3763  1A03  F7 03            .WORD I
3764  1A05  78 19            .WORD LIST
3765  1A07  77 03            .WORD PLOOP
3766  1A09  F8 FF     L3685  .WORD $FFF8         L3681-L3685
3767  1A0B  F4 04            .WORD CR
3768  1A0D  67 02            .WORD CLIT
3769  1A0F  0F               .BYTE $F
3770  1A10  6C 15            .WORD MESS
3771  1A12  F4 04            .WORD CR
3772  1A14  67 02            .WORD CLIT
3773  1A16  0C               .BYTE $0C     FORM FEED FOR PRINTER
3774  1A17  D7 04            .WORD EMIT
3775  1A19  0C 06            .WORD SEMIS
3776  1A1B            ;
3777  1A1B            ;                             VLIST
3778  1A1B            ;                             SCREEN 78 LINE 2
3779  1A1B            ;
3780  1A1B  85        L3696  .BYTE $85,'VLIS',$D4
3780  1A1C  56 4C
3780  1A1E  49 53
3780  1A20  D4
3781  1A21  E5 19            .WORD L3666         ;  LINK TO TRIAD
3782  1A23  D6 07     VLIST  .WORD DOCOL
3783  1A25  67 02            .WORD CLIT

fig-FORTH for 6502, Rel 1.1   ......PAGE 0080

LINE # LOC     CODE       LINE

3784  1A27  80               .BYTE $80
3785  1A28  29 09            .WORD OUT
3786  1A2A  9D 07            .WORD STORE
3787  1A2C  4B 09            .WORD CON
3788  1A2E  79 07            .WORD AT
3789  1A30  79 07            .WORD AT
3790  1A32  29 09     L3706  .WORD OUT
3791  1A34  79 07            .WORD AT
3792  1A36  88 08            .WORD CSLL
3793  1A38  3C 0A            .WORD GREAT
3794  1A3A  56 03            .WORD ZBRAN
3795  1A3C  0A 00     L3711  .WORD $A            L3716-L3711
3796  1A3E  F4 04            .WORD CR
3797  1A40  5D 08            .WORD ZERO
3798  1A42  29 09            .WORD OUT
3799  1A44  9D 07            .WORD STORE
3800  1A46  3A 07     L3716  .WORD DUP
3801  1A48  02 10            .WORD IDDOT
3802  1A4A  5E 0A            .WORD SPACE
3803  1A4C  5E 0A            .WORD SPACE
3804  1A4E  EA 0A            .WORD PFA
3805  1A50  B8 0A            .WORD LFA
3806  1A52  79 07            .WORD AT
3807  1A54  3A 07            .WORD DUP
3808  1A56  73 06            .WORD ZEQU
3809  1A58  ED 04            .WORD QTERM
3810  1A5A  AD 05            .WORD OR
3811  1A5C  56 03            .WORD ZBRAN
3812  1A5E  D4 FF     L3728  .WORD $FFD4         L3706-L3728
3813  1A60  19 07            .WORD DROP
3814  1A62  0C 06            .WORD SEMIS
3815  1A64            ;
3816  1A64            ;                             MON
3817  1A64            ;                             SCREEN 79 LINE 3
3818  1A64            ;
3819  1A64  83        NTOP   .BYTE $83,'MO',$CE
3819  1A65  4D 4F
3819  1A67  CE
3820  1A68  1B 1A            .WORD L3696         ;  LINK TO VLIST
3821  1A6A  6C 1A     MON    .WORD *+2
3822  1A6C  86 B5            STX XSAVE
3823  1A6E  00               BRK             BREAK TO MONITOR WHICH IS ASSU
3824  1A6F  A6 B5            LDX XSAVE       TO SAVE THIS AS RE-ENTRY POINT
3825  1A71  4C 44 02         JMP NEXT
3826  1A74            ;
3827  1A74            TOP    .END FOR1/1  ; END OF LISTING

ERRORS = 0000 <0000>