OSDN Git Service

to LIT16, assembling okay
[fig-forth-68000/fig-forth-68000.git] / FIG68K.S
index 04f1ed7..a6bc5ee 100644 (file)
--- a/FIG68K.S
+++ b/FIG68K.S
@@ -319,7 +319,6 @@ FORTH:      DC.L    DODOES,DOVOC,$81A0,TASK-7
        DC.B    $CB\r
        DC.L    FORTH-8\r
 TASK:  DC.L    DOCOL,SEMIS\r
-       EVEN\r
 * \r
 REND   EQU     *       ( first empty location in dictionary )\r
 RSIZE  EQU     *-RBEG  ; So we can look at it.\r
@@ -446,11 +445,11 @@ DELINT    DC.L    4       ; initial carriage return delay
 * ######>> screen 13 <<\r
 * These are of questionable use anyway, \r
 * and are too much trouble to use with native subroutine call anyway.\r
-PULABX MOVE.L  (PSP)+,D0\r
-STABX  MOVE.L  D0,(A0)\r
+POPD0X MOVE.L  (PSP)+,D0       ; These may actually not end up being used.\r
+STD0X  MOVE.L  D0,(A0)\r
        BRA.S   NEXT\r
 GETX   MOVE.L  (A0),D0\r
-PUSHBA MOVE.L  D0,-(PSP)       ; fall through to NEXT\r
+PUSHD0 MOVE.L  D0,-(PSP)       ; fall through to NEXT\r
 \r
 * "NEXT" takes ?? cycles if TRACE is removed,\r
 *\r
@@ -476,18 +475,78 @@ PUSHBA    MOVE.L  D0,-(PSP)       ; fall through to NEXT
 *\r
 NEXT:  ; IP is a register.\r
 NEXT2  MOVE.L  (IP),W  ; get W which points to CFA of word to be done\r
-NEXT3  MOVE.L  (W),A2  ; get characteristic address, save cycles by not bumping.\r
+NEXT3  MOVE.L  (W),VEC ; get characteristic address, save cycles by not bumping.\r
 * These NOPs can be patched at run-time to JMP TRACE                          =\r
 * if a TRACE routine is available:                                =\r
        NOP                                                       =     \r
        NOP                                                       =\r
-       JMP     (A2)                                              =\r
+       JMP     (VEC)                                              =\r
 * In other words, with the call and the NOP,\r
-* there is room to patch the call with a JMP to your TRACE \r
+* there is room to patch the loop with a call to your TRACE \r
 * routine, which you have to provide.\r
 *                                                                 =\r
 * = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =\r
 \r
+       PAGE\r
+*\r
+* ======>>  1  <<\r
+* ( --- n )\r
+* Pushes the following natural width integer from the instruction stream\r
+* as a literal, or immediate value.\r
+*\r
+*      DC.L {OP}\r
+*      DC.L {OP}\r
+*      DC.L LIT\r
+*      DC.L LITERAL-TO-BE-PUSHED\r
+*      DC.L {OP}\r
+*\r
+* In native processor code, there should be a better way, use that instead.\r
+* More specifically, DO NOT CALL THIS from assembly language code.\r
+* (Note that there is no compile-only flag in the fig model.)\r
+*\r
+* See (FIND), or PFIND , for layout of the header format.\r
+*\r
+       EVEN\r
+       DC.B    $83\r
+       DC.B    'LI'    ; 'LIT' :       NOTE: this is different from LITERAL\r
+       DC.B    $D4     ; 'T'|'\x80'    ; character code for T, with high bit set.\r
+       DC.L    0       ; link of zero to terminate dictionary scan\r
+LIT    DC.L    *+NATWID        ; Note also that LIT is meaningless in native code.\r
+       MOVE.L  (IP)+,-(PSP)\r
+       BRA.S   NEXT\r
+*\r
+* ######>> screen 14 <<\r
+* ======>>  2  <<\r
+* ( --- n )\r
+* Save a little dictionary space by pushing a half-width value as a full-width value.\r
+* LIT8 won't work with the 68000 because of alignment problems,\r
+* But LIT16 will save a little space.\r
+* Pushes the following 16-bit word from the instruction stream\r
+* as a literal, or immediate value.\r
+\r
+*\r
+*      DC.L {OP}\r
+*      DC.L {OP}\r
+*      DC.L LIT16\r
+*      DC.W LITERAL-TO-BE-PUSHED\r
+*      DC.L {OP}\r
+*\r
+* If this is kept, it should have a header for TRACE to read.\r
+* If the data bus is wider than a byte, you don't want to do this.\r
+* Byte shaving like this is often counter-productive anyway.\r
+* Changing the name to LIT16, hoping that will be more understandable.\r
+* Also, see comments for LIT.\r
+* (Note that there is no compile-only flag in the fig model.)\r
+       EVEN\r
+       DC.B    0\r
+       DC.B    $85\r
+       DC.B    'LIT1'  ; 'LIT16' :     NOTE: this is different from LITERAL\r
+       DC.B    $B6\r
+       DC.L    LIT-6\r
+LIT16  DC.L    *+NATWID         (this was an invisible word, with no header)\r
+       MOVE.W  (IP)+,D0\r
+       EXT.W   D0\r
+       BRA.W   PUSHD0\r
 \r
 \r
 \r
@@ -561,81 +620,13 @@ RAMDSK    EQU     MASSLO
        PAGE\r
 \r
 \r
-       PAGE\r
-*\r
-* ======>>  1  <<\r
-* ( --- n )\r
-* Pushes the following natural width integer from the instruction stream\r
-* as a literal, or immediate value.\r
-*\r
-*      DC.L {OP}\r
-*      DC.L {OP}\r
-*      DC.L LIT\r
-*      DC.L LITERAL-TO-BE-PUSHED\r
-*      DC.L {OP}\r
-*\r
-* In native processor code, there should be a better way, use that instead.\r
-* More specifically, DO NOT CALL THIS from assembly language code.\r
-* (Note that there is no compile-only flag in the fig model.)\r
-*\r
-* See (FIND), or PFIND , for layout of the header format.\r
-*\r
-       FCB     $83\r
-       FCC     'LI'    ; 'LIT' :       NOTE: this is different from LITERAL\r
-       FCB     $D4     ; 'T'|'\x80'    ; character code for T, with high bit set.\r
-       FDB     0       ; link of zero to terminate dictionary scan\r
-LIT    FDB     *+NATWID        ; Note also that LIT is meaningless in native code.\r
-       LDD     ,Y++\r
-       PSHU    A,B\r
-       LBRA    NEXT\r
-*      LDX     IP\r
-*      LEAX 1,X        ; \r
-*      LEAX 1,X        ; \r
-*      STX     IP\r
-*      LDA 0,X\r
-*      LDB 1,X\r
-*      JMP     PUSHBA\r
-*\r
-* ######>> screen 14 <<\r
-* ======>>  2  <<\r
-* ( --- n )\r
-* Pushes the following byte from the instruction stream\r
-* as a literal, or immediate value.\r
-*\r
-*      FDB {OP}\r
-*      FDB {OP}\r
-*      FDB LIT8\r
-*      FCB LITERAL-TO-BE-PUSHED\r
-*      FDB {OP}\r
-*\r
-* If this is kept, it should have a header for TRACE to read.\r
-* If the data bus is wider than a byte, you don't want to do this.\r
-* Byte shaving like this is often counter-productive anyway.\r
-* Changing the name to LIT8, hoping that will be more understandable.\r
-* Also, see comments for LIT.\r
-* (Note that there is no compile-only flag in the fig model.)\r
-       FCB     $84\r
-       FCC     'LIT'   ; 'LIT8' :      NOTE: this is different from LITERAL\r
-       FCB     $B8\r
-       FDB     LIT-6\r
-LIT8   FDB     *+NATWID         (this was an invisible word, with no header)\r
-       LDB     ,Y+     ; This also is meaningless in native code.\r
-       CLRA\r
-       PSHU    A,B\r
-       LBRA    NEXT\r
-*      LDX     IP\r
-*      LEAX 1,X        ; \r
-*      STX     IP\r
-*      CLRA    ;\r
-*      LDB 1,X\r
-*      JMP     PUSHBA\r
 *\r
 * ( n off --- n )\r
 * off is offset in video buffer area.\r
        FCB     $87\r
        FCC     'SHOWTO'        ; 'SHOWTOS'\r
        FCB     $D3     ; 'S'\r
-       FDB     LIT8-7\r
+       FDB     LIT16-7\r
 SHOTOS FDB     *+NATWID\r
        LDX     #$400\r
        LDD     ,U++\r
@@ -1124,7 +1115,7 @@ FOUND     LEAX    2*NATWID,X
 *\r
 *      CLRA    ;\r
 *      CLRB    ;\r
-*      JMP     PUSHBA\r
+*      JMP     PUSHD0\r
 * PFNDCH       PSHS B  ; ** emulating CBA:\r
 *      CMPA ,S+        ; \r
 *      BEQ     PFNDBR\r
@@ -1147,13 +1138,13 @@ FOUND   LEAX    2*NATWID,X
 *      CLRA    ;\r
 *      PSHS A  ; \r
 *      LDB #1\r
-*      JMP     PUSHBA\r
+*      JMP     PUSHD0\r
 *\r
 *      PSHS A  ; Left over from a stray copy-paste, I guess.\r
 *      CLRA    ;\r
 *      PSHS A  ; \r
 *      LDB #1\r
-*      JMP     PUSHBA\r
+*      JMP     PUSHD0\r
 *\r
 * ######>> screen 20 <<\r
 * ======>>  12  <<\r
@@ -1262,7 +1253,7 @@ ENC0TR
 *      PSHS A  ; \r
 * *    advance and push NC\r
 *      INCB    ;\r
-*      JMP     PUSHBA\r
+*      JMP     PUSHD0\r
 *      found NUL before non-delimiter, therefore there is no word\r
 * ENCNUL       LDB N   found NUL\r
 *      PSHS B  ; \r
@@ -1275,7 +1266,7 @@ ENC0TR
 *      PSHS B  ; save EW\r
 *      PSHS A  ; \r
 * ENCL8        LDB N   save NC\r
-*      JMP     PUSHBA\r
+*      JMP     PUSHD0\r
 \r
        PAGE\r
 *\r
@@ -1345,7 +1336,7 @@ QTERM     FDB     *+NATWID
        LBRA    NEXT\r
 *      JSR     PQTER\r
 *      CLRB    ;\r
-*      JMP     PUSHBA  stack the flag\r
+*      JMP     PUSHD0  stack the flag\r
 *\r
 * ======>>  16  <<\r
 * ( --- )\r
@@ -1536,7 +1527,7 @@ USTAR4    STD     1,U
 *      BSR     USTARS\r
 *      LEAS 1,S        ; \r
 *      LEAS 1,S        ; \r
-*      JMP     PUSHBA\r
+*      JMP     PUSHD0\r
 *\r
 * The following is a subroutine which \r
 * multiplies top 2 words on stack,\r
@@ -1669,7 +1660,7 @@ AND       FDB     *+NATWID
 *      TFR S,X ; TSX : \r
 *      ANDB 1,X\r
 *      ANDA 0,X\r
-*      JMP     STABX\r
+*      JMP     STD0X\r
 *\r
 * ======>>  21  <<\r
 * ( n1 n2 --- n )\r
@@ -1689,7 +1680,7 @@ OR        FDB     *+NATWID
 *      TFR S,X ; TSX : \r
 *      ORB 1,X\r
 *      ORA 0,X\r
-*      JMP     STABX\r
+*      JMP     STD0X\r
 *      \r
 * ======>>  22  <<\r
 * ( n1 n2 --- n )\r
@@ -1709,7 +1700,7 @@ XOR       FDB     *+NATWID
 *      TFR S,X ; TSX : \r
 *      EORB 1,X\r
 *      EORA 0,X\r
-*      JMP     STABX\r
+*      JMP     STD0X\r
 *\r
 * ######>> screen 26 <<\r
 * ======>>  23  <<\r
@@ -1854,7 +1845,7 @@ FROMR     FDB     *+NATWID
 *      LEAX 1,X        ; \r
 *      LEAX 1,X        ; \r
 *      STX     RP\r
-*      JMP     PUSHBA\r
+*      JMP     PUSHD0\r
 *\r
 * ======>>  30  <<\r
 * ( --- n )             \r
@@ -1905,7 +1896,7 @@ ZEQUF     STD     ,U
 *      BNE     ZEQU2\r
 *      INCB    ;\r
 *ZEQU2 TFR S,X ; TSX : \r
-*      JMP     STABX\r
+*      JMP     STD0X\r
 *\r
 * ======>>  32  <<\r
 * ( n --- n<0 )\r
@@ -1927,9 +1918,9 @@ ZLESSF    STD     ,U
 *      BEQ     ZLESS2\r
 *      CLRA    ;               if neg.\r
 *      LDB #1\r
-*      JMP     STABX\r
+*      JMP     STD0X\r
 * ZLESS2       CLRB    ;\r
-*      JMP     STABX\r
+*      JMP     STD0X\r
 *\r
 * ######>> screen 29 <<\r
 * ======>>  33  <<\r
@@ -1948,7 +1939,7 @@ PLUS      FDB     *+NATWID
 *      TFR S,X ; TSX : \r
 *      ADDB 1,X\r
 *      ADCA 0,X\r
-*      JMP     STABX\r
+*      JMP     STD0X\r
 *\r
 * ======>>  34  <<\r
 * ( d1 d2 --- d1+d2 )\r
@@ -2048,7 +2039,7 @@ OVER      FDB     *+NATWID
 *      TFR S,X ; TSX : \r
 *      LDA 2,X\r
 *      LDB 3,X\r
-*      JMP     PUSHBA\r
+*      JMP     PUSHD0\r
 *\r
 * ======>>  38  <<\r
 * ( n --- )\r
@@ -2103,7 +2094,7 @@ DUP       FDB     *+NATWID
 *      PULS B  ; \r
 *      PSHS B  ; \r
 *      PSHS A  ; \r
-*      JMP PUSHBA\r
+*      JMP PUSHD0\r
 *\r
 * ######>> screen 31 <<\r
 * ======>>  41  <<\r
@@ -2189,7 +2180,7 @@ CAT       FDB     *+NATWID
 *      LDB 0,X\r
 *      LEAS 1,S        ; \r
 *      LEAS 1,S        ; \r
-*      JMP     PUSHBA\r
+*      JMP     PUSHD0\r
 *\r
 * ======>>  45  <<\r
 * ( n adr --- )\r
@@ -2206,7 +2197,7 @@ STORE     FDB     *+NATWID
 *      LDX     0,X     get address\r
 *      LEAS 1,S        ; \r
 *      LEAS 1,S        ; \r
-*      JMP     PULABX\r
+*      JMP     POPD0X\r
 *\r
 * ======>>  46  <<\r
 * ( b adr --- )\r
@@ -2313,7 +2304,7 @@ DOCON     LDD     NATWID,X        ; Get the first natural width word of the parameter field.
 * DOCON        LDX     W\r
 *      LDA 2,X \r
 *      LDB 3,X A & B now contain the constant\r
-*      JMP     PUSHBA\r
+*      JMP     PUSHD0\r
 *\r
 * Not in model, needed for abstraction:\r
 * ( --- NATWID )\r
@@ -2344,7 +2335,7 @@ NATP      FDB     *+NATWID
 *      TSX\r
 *      ADDB    1,X\r
 *      ADCA    ,X\r
-*      JMP     STABX\r
+*      JMP     STD0X\r
 *\r
 * ======>>  50  <<\r
 * ( init --- )\r
@@ -2373,7 +2364,7 @@ DOVAR     LEAX    NATWID,X        ; Point to the first natural width word of the parameters.
 *      LDB W+1\r
 *      ADDB #2\r
 *      ADCA #0 A,B now contain the address of the variable\r
-*      JMP     PUSHBA\r
+*      JMP     PUSHD0\r
 *\r
 * ======>>  51  <<\r
 * ( ub --- )\r
@@ -2420,7 +2411,7 @@ DOUSER    TFR     DP,A    ; Make a pointer to the direct page.
 *      LDB 3,X\r
 *      ADDB UP+1       add to users base address\r
 *      ADCA UP\r
-*      JMP     PUSHBA  push address of user's variable\r
+*      JMP     PUSHD0  push address of user's variable\r
 *\r
 * ######>> screen 35 <<\r
 * ======>>  52  <<\r
@@ -2951,7 +2942,7 @@ FALSE     LDD     #0
 * LESST        LDB #1\r
 * LESSX        CLRA    ;\r
 *      LEAS 1,S        ; \r
-*      JMP     PUSHBA\r
+*      JMP     PUSHD0\r
 *\r
 * ======>>  92  <<\r
 * ( n1 n2 --- n1>n2 )\r
@@ -3074,7 +3065,7 @@ SIGNUP    SEX     ; Couldn't they have called SignEXtend EXT instead?
 *      BPL     SIGNUP\r
 *      NEGB\r
 *      COMA\r
-* SIGNUP       JMP     STABX\r
+* SIGNUP       JMP     STD0X\r
 *\r
 * ======>>  98  <<\r
 * ( adr1 direction --- adr2 )\r
@@ -3097,7 +3088,7 @@ SIGNUP    SEX     ; Couldn't they have called SignEXtend EXT instead?
 *      LBRA    NEXT\r
 * Doing this in 6809 just because it can be done was getting too greedy.\r
 TRAV   FDB     DOCOL,SWAP\r
-TRAV2  FDB     OVER,PLUS,LIT8\r
+TRAV2  FDB     OVER,PLUS,LIT16\r
        FCB     $7F\r
        FDB     OVER,CAT,LESS,ZBRAN\r
        FDB     TRAV2-*-NATWID\r
@@ -3145,7 +3136,7 @@ LATEST    FDB     DOCOL,CURENT,AT,AT
        FCC     'LF'    ; 'LFA'\r
        FCB     $C1\r
        FDB     LATEST-9\r
-LFA    FDB     DOCOL,LIT8\r
+LFA    FDB     DOCOL,LIT16\r
 *      FCB     4\r
        FCB     2*NATWID\r
        FDB     SUB\r
@@ -3169,7 +3160,7 @@ CFA       FDB     DOCOL,NATWC,SUB
        FCC     'NF'    ; 'NFA'\r
        FCB     $C1\r
        FDB     CFA-6\r
-NFA    FDB     DOCOL,LIT8\r
+NFA    FDB     DOCOL,LIT16\r
 *      FCB     5\r
        FCB     NATWID*2+1\r
        FDB     SUB,ONE,MINUS,TRAV\r
@@ -3182,7 +3173,7 @@ NFA       FDB     DOCOL,LIT8
        FCC     'PF'    ; 'PFA'\r
        FCB     $C1\r
        FDB     NFA-6\r
-PFA    FDB     DOCOL,ONE,TRAV,LIT8\r
+PFA    FDB     DOCOL,ONE,TRAV,LIT16\r
 *      FCB     5\r
        FCB     NATWID*2+1\r
        FDB     PLUS\r
@@ -3239,7 +3230,7 @@ QERR3     FDB     SEMIS
        FCC     '?COM'  ; '?COMP'\r
        FCB     $D0\r
        FDB     QERR-9\r
-QCOMP  FDB     DOCOL,STATE,AT,ZEQU,LIT8\r
+QCOMP  FDB     DOCOL,STATE,AT,ZEQU,LIT16\r
        FCB     $11\r
        FDB     QERR\r
        FDB     SEMIS\r
@@ -3254,7 +3245,7 @@ QCOMP     FDB     DOCOL,STATE,AT,ZEQU,LIT8
        FCC     '?EXE'  ; '?EXEC'\r
        FCB     $C3\r
        FDB     QCOMP-8\r
-QEXEC  FDB     DOCOL,STATE,AT,LIT8\r
+QEXEC  FDB     DOCOL,STATE,AT,LIT16\r
        FCB     $12\r
        FDB     QERR\r
        FDB     SEMIS\r
@@ -3268,7 +3259,7 @@ QEXEC     FDB     DOCOL,STATE,AT,LIT8
        FCC     '?PAIR' ; '?PAIRS'\r
        FCB     $D3\r
        FDB     QEXEC-8\r
-QPAIRS FDB     DOCOL,SUB,LIT8\r
+QPAIRS FDB     DOCOL,SUB,LIT16\r
        FCB     $13\r
        FDB     QERR\r
        FDB     SEMIS\r
@@ -3284,7 +3275,7 @@ QPAIRS    FDB     DOCOL,SUB,LIT8
        FCC     '?CS'   ; '?CSP'\r
        FCB     $D0\r
        FDB     QPAIRS-9\r
-QCSP   FDB     DOCOL,SPAT,CSP,AT,SUB,LIT8\r
+QCSP   FDB     DOCOL,SPAT,CSP,AT,SUB,LIT16\r
        FCB     $14\r
        FDB     QERR\r
        FDB     SEMIS\r
@@ -3299,7 +3290,7 @@ QCSP      FDB     DOCOL,SPAT,CSP,AT,SUB,LIT8
        FCC     '?LOADIN'       ; '?LOADING'\r
        FCB     $C7\r
        FDB     QCSP-7\r
-QLOAD  FDB     DOCOL,BLK,AT,ZEQU,LIT8\r
+QLOAD  FDB     DOCOL,BLK,AT,ZEQU,LIT16\r
        FCB     $16\r
        FDB     QERR\r
        FDB     SEMIS\r
@@ -3334,7 +3325,7 @@ STCOMP    EQU     $C0
        FCB     $81     ]\r
        FCB     $DD\r
        FDB     LBRAK-4\r
-RBRAK  FDB     DOCOL,LIT8\r
+RBRAK  FDB     DOCOL,LIT16\r
        FCB     STCOMP\r
        FDB     STATE,STORE\r
        FDB     SEMIS\r
@@ -3347,7 +3338,7 @@ RBRAK     FDB     DOCOL,LIT8
        FCC     'SMUDG' ; 'SMUDGE'\r
        FCB     $C5\r
        FDB     RBRAK-4\r
-SMUDGE FDB     DOCOL,LATEST,LIT8\r
+SMUDGE FDB     DOCOL,LATEST,LIT16\r
        FCB     FSMUDG\r
        FDB     TOGGLE\r
        FDB     SEMIS\r
@@ -3360,7 +3351,7 @@ SMUDGE    FDB     DOCOL,LATEST,LIT8
        FCB     $D8\r
        FDB     SMUDGE-9\r
 HEX    FDB     DOCOL\r
-       FDB     LIT8\r
+       FDB     LIT16\r
        FCB     16      ; decimal sixteen\r
        FDB     BASE,STORE\r
        FDB     SEMIS\r
@@ -3373,7 +3364,7 @@ HEX       FDB     DOCOL
        FCB     $CC\r
        FDB     HEX-6\r
 DEC    FDB     DOCOL\r
-       FDB     LIT8\r
+       FDB     LIT16\r
        FCB     10      ; decimal ten\r
        FDB     BASE,STORE\r
        FDB     SEMIS\r
@@ -3615,7 +3606,7 @@ PDOTQ     FDB     DOCOL,R,COUNT,DUP,ONEP  ; IP/Y is post-inc.
        FCB     $A2\r
        FDB     PDOTQ-7\r
 DOTQ   FDB     DOCOL\r
-       FDB     LIT8\r
+       FDB     LIT16\r
        FCB     $22     ascii quote\r
        FDB     STATE,AT,ZBRAN\r
        FDB     DOTQ1-*-NATWID\r
@@ -3638,7 +3629,7 @@ DOTQ2     FDB     SEMIS
        FCC     '?STAC' ; '?STACK'\r
        FCB     $CB\r
        FDB     DOTQ-5\r
-QSTACK FDB     DOCOL,LIT8\r
+QSTACK FDB     DOCOL,LIT16\r
 *      FCB     $12\r
        FCB     SINIT-ORIG\r
 * But why use that instead of XSPZER (S0)?\r
@@ -3652,7 +3643,7 @@ QSTACK    FDB     DOCOL,LIT8
 QSTAC2 FDB     SPAT\r
 * Here, we compare with a value at least 128\r
 * higher than dict. ptr. (DICTPT)\r
-*      FDB     HERE,LIT8\r
+*      FDB     HERE,LIT16\r
 *      FCB     $80     ; This is a rough check anyway, leave it as is. \r
 * But shouldn't it be the terminal width?\r
        FDB     HERE,COLUMS,AT\r
@@ -3670,7 +3661,7 @@ QSTAC3    FDB     SEMIS
 *      FCC     4,?FREE\r
 *      FCB     $C5\r
 *      FDB     QSTACK-9\r
-*QFREE FDB     DOCOL,SPAT,HERE,LIT8\r
+*QFREE FDB     DOCOL,SPAT,HERE,LIT16\r
 *      FCB     $80\r
 *      FDB     PLUS,LESS,TWO,QERR,SEMIS        ; This TWO is not NATWID!\r
 *\r
@@ -3687,19 +3678,19 @@ QSTAC3  FDB     SEMIS
        FCB     $D4\r
        FDB     QSTACK-9\r
 EXPECT FDB     DOCOL,OVER,PLUS,OVER,XDO        ; brace the buffer area\r
-* EXPEC2       FDB     KEY,DUP,LIT8\r
+* EXPEC2       FDB     KEY,DUP,LIT16\r
 EXPEC2 FDB     KEY\r
 *      FDB     LIT,$1C,SHOTOS  ; DBG\r
-       FDB     DUP,LIT8\r
+       FDB     DUP,LIT16\r
        FCB     BACKSP-ORIG\r
        FDB     PORIG,AT,EQUAL,ZBRAN    ; check for backspacing \r
        FDB     EXPEC3-*-NATWID\r
-       FDB     DROP,LIT8\r
+       FDB     DROP,LIT16\r
        FCB     8       ( backspace character to emit )\r
        FDB     OVER,I,EQUAL,DUP,FROMR,TWO,SUB,PLUS     ; back I up TWO characters \r
        FDB     TOR,SUB,BRAN\r
        FDB     EXPEC6-*-NATWID\r
-EXPEC3 FDB     DUP,LIT8\r
+EXPEC3 FDB     DUP,LIT16\r
        FCB     $D      ( carriage return )\r
        FDB     EQUAL,ZBRAN\r
        FDB     EXPEC4-*-NATWID\r
@@ -3799,7 +3790,7 @@ HOLD      FDB     DOCOL,LIT,$FFFF,HLD,PSTORE,HLD,AT,CSTORE
        FCC     'PA'    ; 'PAD'\r
        FCB     $C4\r
        FDB     HOLD-7\r
-PAD    FDB     DOCOL,HERE,LIT8\r
+PAD    FDB     DOCOL,HERE,LIT16\r
        FCB     $44\r
        FDB     PLUS\r
        FDB     SEMIS\r
@@ -3822,7 +3813,7 @@ WORD      FDB     DOCOL,BLK,AT,ZBRAN
        FDB     BLK,AT,BLOCK,BRAN\r
        FDB     WORD3-*-NATWID\r
 WORD2  FDB     TIB,AT\r
-WORD3  FDB     IN,AT,PLUS,SWAP,ENCLOS,HERE,LIT8\r
+WORD3  FDB     IN,AT,PLUS,SWAP,ENCLOS,HERE,LIT16\r
        FCB     34\r
        FDB     BLANKS,IN,PSTORE,OVER,SUB,TOR,R,HERE\r
        FDB     CSTORE,PLUS,HERE,ONEP,FROMR,CMOVE\r
@@ -3865,13 +3856,13 @@ PNUMB4  FDB     FROMR
        FCC     'NUMBE' ; 'NUMBER'\r
        FCB     $D2\r
        FDB     PNUMB-11\r
-NUMB   FDB     DOCOL,ZERO,ZERO,ROT,DUP,ONEP,CAT,LIT8\r
+NUMB   FDB     DOCOL,ZERO,ZERO,ROT,DUP,ONEP,CAT,LIT16\r
        FCC     "-"     minus sign\r
        FDB     EQUAL,DUP,TOR,PLUS,LIT,$FFFF\r
 NUMB1  FDB     DPL,STORE,PNUMB,DUP,CAT,BL,SUB\r
        FDB     ZBRAN\r
        FDB     NUMB2-*-NATWID\r
-       FDB     DUP,CAT,LIT8\r
+       FDB     DUP,CAT,LIT16\r
        FCC     "."\r
        FDB     SUB,ZERO,QERR,ZERO,BRAN\r
        FDB     NUMB1-*-NATWID\r
@@ -3969,15 +3960,15 @@ IDFLAT  FDB     *+NATWID
        FCC     'ID'    ; 'ID.'\r
        FCB     $AE\r
        FDB     IDFLAT-9\r
-IDDOT  FDB     DOCOL,PAD,LIT8\r
+IDDOT  FDB     DOCOL,PAD,LIT16\r
        FCB     32\r
-       FDB     LIT8\r
+       FDB     LIT16\r
        FCB     $5F     ( underline )\r
        FDB     FILL,DUP,PFA,LFA,OVER,SUB,PAD\r
-*      FDB     SWAP,CMOVE,PAD,COUNT,LIT8\r
+*      FDB     SWAP,CMOVE,PAD,COUNT,LIT16\r
        FDB     SWAP,CMOVE,PAD\r
        FDB     IDFLAT\r
-       FDB     COUNT,LIT8\r
+       FDB     COUNT,LIT16\r
        FCB     31\r
        FDB     AND,TYPE,SPACE\r
        FDB     SEMIS\r
@@ -4001,13 +3992,13 @@ CREATE  FDB     DOCOL,DFIND,ZBRAN
        FCB     8\r
        FCB     7       ( bel )\r
        FCC     "redef: "\r
-       FDB     NFA,IDDOT,LIT8\r
+       FDB     NFA,IDDOT,LIT16\r
        FCB     4\r
        FDB     MESS,SPACE\r
 CREAT2 FDB     HERE,DUP,CAT,WIDTH,AT,MIN\r
-       FDB     ONEP,ALLOT,DUP,LIT8\r
+       FDB     ONEP,ALLOT,DUP,LIT16\r
        FCB     ($80|FSMUDG)            ; Bracket the name.\r
-       FDB     TOGGLE,HERE,ONE,SUB,LIT8\r
+       FDB     TOGGLE,HERE,ONE,SUB,LIT16\r
        FCB     $80\r
        FDB     TOGGLE,LATEST,COMMA,CURENT,AT,STORE\r
 *      FDB     HERE,TWOP,COMMA\r
@@ -4097,7 +4088,7 @@ INTER7    FDB     QSTACK,BRAN
        FCC     'IMMEDIAT'      ; 'IMMEDIATE'\r
        FCB     $C5\r
        FDB     INTERP-12\r
-IMMED  FDB     DOCOL,LATEST,LIT8\r
+IMMED  FDB     DOCOL,LATEST,LIT16\r
        FCB     FIMMED\r
        FDB     TOGGLE\r
        FDB     SEMIS\r
@@ -4143,7 +4134,7 @@ DEFIN     FDB     DOCOL,CONTXT,AT,CURENT,STORE
        FCB     $C1     immediate       (\r
        FCB     $A8\r
        FDB     DEFIN-14\r
-PAREN  FDB     DOCOL,LIT8\r
+PAREN  FDB     DOCOL,LIT16\r
        FCC     ")"\r
        FDB     WORD\r
        FDB     SEMIS\r
@@ -4524,7 +4515,7 @@ PREV      FDB     DOCON
        FCC     '+BU'   ; '+BUF'\r
        FCB     $C6\r
        FDB     PREV-7\r
-* PBUF FDB     DOCOL,LIT8\r
+* PBUF FDB     DOCOL,LIT16\r
 *      FCB     $84     ; This was a hard-wiring bug.\r
 PBUF   FDB     DOCOL,BBUF,BCTL,PLUS    ; Size of the buffer record.\r
 *      FDB     PLUS,DUP,LIMIT,EQUAL,ZBRAN\r
@@ -4583,7 +4574,7 @@ KILBUF    FDB     *+NATWID        ; DOCOL,UPDBIT,ONE,SUB,SWAP,STORE
        FCC     'KILL-BUFFER'   ; 'KILL-BUFFERS'\r
        FCB     $D3\r
        FDB     KILBUF-14\r
-KLBFS  FDB     DOCOL,FIRST,LIT8\r
+KLBFS  FDB     DOCOL,FIRST,LIT16\r
        FCB     4       ; Want to make sure it's only four.\r
        FDB     ZERO,XDO        ; It would be "cleaner" to let +BUF control the loop.\r
        FDB     DUP,KILBUF,PBUF,DROP,XLOOP\r
@@ -4712,9 +4703,9 @@ BLOCK5    FDB     FROMR,DROP,NATP
        FCC     '(LINE' ; '(LINE)'\r
        FCB     $A9\r
        FDB     BLOCK-8\r
-PLINE  FDB     DOCOL,TOR,LIT8\r
+PLINE  FDB     DOCOL,TOR,LIT16\r
        FCB     $40\r
-       FDB     BBUF,SSMOD,FROMR,BSCR,STAR,PLUS,BLOCK,PLUS,LIT8\r
+       FDB     BBUF,SSMOD,FROMR,BSCR,STAR,PLUS,BLOCK,PLUS,LIT16\r
        FCB     $40\r
        FDB     SEMIS\r
 *\r
@@ -4742,7 +4733,7 @@ MESS      FDB     DOCOL,WARN,AT,ZBRAN
        FDB     MESS3-*-NATWID\r
        FDB     DDUP,ZBRAN\r
        FDB     MESS3-*-NATWID\r
-       FDB     LIT8\r
+       FDB     LIT16\r
        FCB     4\r
        FDB     OFSET,AT,BSCR,SLASH,SUB,DLINE,BRAN\r
        FDB     MESS4-*-NATWID\r
@@ -5050,11 +5041,11 @@ TICK    FDB     DOCOL,DFIND,ZEQU,ZERO,QERR,DROP,LITER
        FCC     'FORGE' ; 'FORGET'\r
        FCB     $D4\r
        FDB     TICK-4\r
-FORGET FDB     DOCOL,CURENT,AT,CONTXT,AT,SUB,LIT8\r
+FORGET FDB     DOCOL,CURENT,AT,CONTXT,AT,SUB,LIT16\r
        FCB     $18\r
-       FDB     QERR,TICK,DUP,FENCE,AT,LESS,LIT8\r
+       FDB     QERR,TICK,DUP,FENCE,AT,LESS,LIT16\r
        FCB     $15\r
-       FDB     QERR,DUP,ZERO,PORIG,GREAT,LIT8\r
+       FDB     QERR,DUP,ZERO,PORIG,GREAT,LIT16\r
        FCB     $15\r
        FDB     QERR,DUP,NFA,DICTPT,STORE,LFA,AT,CONTXT,AT,STORE\r
        FDB     SEMIS\r
@@ -5326,7 +5317,7 @@ EDIGS     FDB     DOCOL,DROP,DROP,HLD,AT,PAD,OVER,SUB
        FDB     EDIGS-5\r
 SIGN   FDB     DOCOL,ROT,ZLESS,ZBRAN\r
        FDB     SIGN2-*-NATWID\r
-       FDB     LIT8\r
+       FDB     LIT16\r
        FCC     "-"     \r
        FDB     HOLD\r
 SIGN2  FDB     SEMIS\r
@@ -5338,14 +5329,14 @@ SIGN2   FDB     SEMIS
        FCB     $81     #\r
        FCB     $A3\r
        FDB     SIGN-7\r
-DIG    FDB     DOCOL,BASE,AT,MSMOD,ROT,LIT8\r
+DIG    FDB     DOCOL,BASE,AT,MSMOD,ROT,LIT16\r
        FCB     9\r
        FDB     OVER,LESS,ZBRAN\r
        FDB     DIG2-*-NATWID\r
-       FDB     LIT8\r
+       FDB     LIT16\r
        FCB     7\r
        FDB     PLUS\r
-DIG2   FDB     LIT8\r
+DIG2   FDB     LIT16\r
        FCC     "0"     ascii zero\r
        FDB     PLUS,HOLD\r
        FDB     SEMIS\r
@@ -5434,7 +5425,7 @@ QUEST     FDB     DOCOL,AT,DOT
 LIST   FDB     DOCOL,DEC,CR,DUP,SCR,STORE,PDOTQ\r
        FCB     6\r
        FCC     "SCR # "\r
-       FDB     DOT,LIT8\r
+       FDB     DOT,LIT16\r
        FCB     $10\r
        FDB     ZERO,XDO\r
 LIST2  FDB     CR,I,THREE\r
@@ -5479,7 +5470,7 @@ TRIAD2    FDB     CR,I
        FDB     LEAVE\r
 TRIAD3 FDB     XLOOP\r
        FDB     TRIAD2-*-NATWID\r
-       FDB     CR,LIT8\r
+       FDB     CR,LIT16\r
        FCB     $0F\r
        FDB     MESS,CR\r
        FDB     SEMIS\r
@@ -5493,10 +5484,10 @@ TRIAD3  FDB     XLOOP
        FCC     'VLIS'  ; 'VLIST'\r
        FCB     $D4\r
        FDB     TRIAD-8\r
-VLIST  FDB     DOCOL,LIT8\r
+VLIST  FDB     DOCOL,LIT16\r
        FCB     $80\r
        FDB     OUT,STORE,CONTXT,AT,AT\r
-VLIST1 FDB     OUT,AT,COLUMS,AT,LIT8\r
+VLIST1 FDB     OUT,AT,COLUMS,AT,LIT16\r
        FCB     32\r
        FDB     SUB,GREAT,ZBRAN\r
        FDB     VLIST2-*-NATWID\r
@@ -5517,7 +5508,7 @@ VLIST2    FDB     DUP,IDDOT,SPACE,SPACE,PFA,LFA,AT
 BEMIT  FDB     DOCOL\r
        FDB     DUP,BL,LESS,ZBRAN\r
        FDB     BEMITO-*-NATWID\r
-       FDB     DROP,LIT8\r
+       FDB     DROP,LIT16\r
        FCB     $2e     ; '.'\r
 BEMITO FDB     EMIT\r
        FDB     SEMIS\r
@@ -5539,13 +5530,13 @@ XDOTR   FDB     DOCOL
        FCB     $C5     ; 'E'\r
        FDB     XDOTR-6\r
 BLINE  FDB     DOCOL\r
-       FDB     DUP,LIT8\r
+       FDB     DUP,LIT16\r
        FCB     4\r
        FDB     PLUS,OVER,XDO\r
 BLINEX FDB     I,CAT,THREE,XDOTR,XLOOP\r
        FDB     BLINEX-*-NATWID\r
        FDB     SPACE,SPACE\r
-       FDB     DUP,LIT8\r
+       FDB     DUP,LIT16\r
        FCB     4\r
        FDB     PLUS,SWAP,XDO\r
 BLINEC FDB     I,CAT,BEMIT,XLOOP\r
@@ -5560,12 +5551,12 @@ BLINEC  FDB     I,CAT,BEMIT,XLOOP
        FDB     BLINE-8\r
 BDUMP  FDB     DOCOL\r
        FDB     CR,XDO\r
-BDUMPL FDB     I,LIT8\r
+BDUMPL FDB     I,LIT16\r
        FCB     4\r
-       FDB     XDOTR,LIT8\r
+       FDB     XDOTR,LIT16\r
        FCB     $3A\r
        FDB     EMIT,SPACE\r
-       FDB     I,BLINE,CR,LIT8\r
+       FDB     I,BLINE,CR,LIT16\r
        FCB     4\r
        FDB     XPLOOP\r
        FDB     BDUMPL-*-NATWID\r