home *** CD-ROM | disk | FTP | other *** search
/ Shareware Overload / ShartewareOverload.cdr / progm / mvpforth.zip / MVPFORTH.ASM < prev    next >
Assembly Source File  |  1980-01-01  |  60KB  |  4,963 lines

  1. PAGE 60,96
  2. TITLE 'MVPFORTH VERSION 1.0405.03  - 21 APRIL 83'
  3. ;
  4. ;      MVPFORTH KERNEL VERSION 1.0405.03
  5. ;
  6. ;      A FORTH OPERATING SYSSTEM 
  7. ;
  8. ;      FORTH THE IBM PERSONAL COMPUTER
  9. ;
  10. ;
  11. ;        PREPARED FOR
  12. ;
  13. ;     MOUNTAIN VIEW PRESS, INC.
  14. ;           PO BOX 4656
  15. ;     MOUNTAIN VIEW, CA 94040
  16. ;
  17. ;         IMPLEMENTATION BY
  18. ;
  19. ;        HAYDON ENTERPRISES
  20. ;          BOX 429 ROUTE 2
  21. ;        LA HONDA, CA 94020
  22. ;
  23. ;
  24. ;THIS PUBLICATION IS PLACED IN THE PUBLIC 
  25. ;DOMAIN.  PERMISSION TO DISTRIBUTE IS GRANTED
  26. ;BY THE INCLUSION OF CREDIT TO MOUNTAIN VIEW
  27. ;PRESS, INC., AND HAYDON ENTERPRISES. 
  28. ;
  29. ;
  30. ;THIS IMPLEMENTATION INCLUDES THE ENTIRE 
  31. ;FORTH-79 REQUIRED WORD SET.  THE BOOK
  32. ;"ALL ABOUT FORTH"  BY GLEN B. HAYDON FULLY
  33. ;DOCUMENTS MVPFORTH. IT IS AVAILABLE FROM 
  34. ;MOUNTAIN VIEW PRESS, INC.  
  35. ;
  36. ;THE IMPLEMENTATION HAS BEEN TRANSCRIBED FROM
  37. ;THE ORIGINAL CROSS COMPILER VER. 1.0000.02 .
  38. ;IT WILL ASSEMBLE WITH "MASM.COM" UNDER MDOS
  39. ;VER. 1.0 OR 1.1 . 
  40. ;
  41. ;UPDATE: ?STACK, BUFFER, COLD, LIST
  42. ;20 FEB 1983
  43.   
  44. ;THE PUBLISHED MVP-FORTH SOURCE LISTING FOR
  45. ;THE IBM - PC HAS BEEN EDITED.  THE DELETED 
  46. ;PORTIONS HAVE BEEN COMMENTED OUT, AND THE
  47. ;NEW PORTIONS HAVE BEEN LABELED " ; 1.0405.03".
  48. ;21 APRIL 1983
  49.  
  50. PAGE
  51. ;
  52. ;THE FORTH REGISTERS ARE ASSIGNED ACCORDING
  53. ;TO FIG-FORTH FOR THE 8086/88, VERSION 1.0,
  54. ;AS IMPLEMENTED BY THOMAS NEWMAN, 27444
  55. ;BERENDA WAY, HAYWARD, CA 94544, AND MADE
  56. ;AVAILABLE BY THE FORTH INTEREST GROUP, 
  57. ;BOX 1105, SAN CARLOS, CA 94070.
  58. ;
  59. ;FORTH REGISTERS
  60. ;
  61. ;FORTH    8088  FORTH PRESERVATION RULES
  62. ;
  63. ; IP     SI   INTERPRETER POINTER.
  64. ;          MUST BE PRESERVED 
  65. ;          ACROSS FORTH WORDS. 
  66. ;
  67. ; W     DX   WORKING REGISTER.
  68. ;          JUMP TO 'DPUSH' WILL 
  69. ;          PUSH CONTENTS ONTO THE
  70. ;          PARAMETER STACK BEFORE
  71. ;          EXECUTING 'APUSH'.
  72. ;
  73. ; SP     SP   PARAMETER STACK POINTER.
  74. ;          MUST BE PRESERVED ACROSS
  75. ;          FORTH WORDS.  THIS IS ALSO
  76. ;          THE SYSTEM STACK, WHICH 
  77. ;          IS SOMETIMES CALLED THE
  78. ;          HARDWARE STACK  -HS .
  79. ;
  80. ; RP     BP   RETURN STACK POINTER.
  81. ;          MUST BE PRESERVED ACROSS
  82. ;          FORTH WORDS. 
  83. ;
  84. ;
  85. ;IN ADDITION, THE 8088 CODE SEGMENT, DATA
  86. ;SEGMENT AND STACK SEGMENT REGISTERS ( CS,
  87. ;DS, AND SS, MUST BE PRESERVED ACROSS 
  88. ;FORTH WORDS.
  89. ;
  90. ;THE OTHER REGISTERS OF THE 8088 CPU MAY 
  91. ;BE USED FREELY. 
  92. ;
  93. ;10 AUGUST 1982
  94. PAGE
  95. ;
  96. ;    EQUATES:
  97. ;
  98. ABL    EQU    20H
  99. ACR    EQU    0DH
  100. AMINUS    EQU    2DH
  101. ADOT    EQU    2EH
  102. BELL    EQU    07H
  103. ALF    EQU    0AH
  104. FFEED    EQU    0CH
  105. ADEL    EQU    7FH
  106. ADLE    EQU    10H
  107. BSOUT    EQU    08H
  108. BSIN    EQU    08H
  109. ;
  110. ;
  111. ;
  112. BPS    EQU    80H
  113. EM    EQU    6000H
  114. HDBT    EQU    404H
  115. NBUF    EQU    02H
  116. BUF1    EQU    EM-HDBT*NBUF
  117. US    EQU    52H
  118. INITR0    EQU    BUF1-US
  119. RTS    EQU    0A0H
  120. INITSP0 EQU    INITR0-RTS
  121. ;
  122. STACK    SEGMENT        PARA STACK 
  123.     DB    200H  DUP( 0 ) 
  124. STACK    ENDS
  125. ;
  126. FSEG    SEGMENT        COMMON
  127.     ASSUME        CS:FSEG,SS:STACK,DS:FSEG,ES:FSEG
  128. PAGE
  129. ;
  130.     ORG    100H
  131. ;
  132. ORIG:    MOV    AX,CS
  133.     MOV    DS,AX
  134.     MOV    SS,AX
  135.     MOV    ES,AX
  136.     MOV    SI,TCOLD
  137.     MOV    SP,INITUSER
  138.     MOV    BP,RPP
  139.     JMP    NEXT
  140. TCOLD    DW    TCOLD1
  141. TCOLD1    DW    COLD
  142. ;
  143. ;
  144. INITFORTH    DW    RBRAC-4
  145. INITUSER    DW    INITSP0
  146. ;
  147.     DW    INITR0
  148.     DW    INITSP0
  149.     DW    01FH
  150.     DW    01H
  151. ;
  152. ;
  153. INITFENCE    DW    RBRAC-4
  154. INITDP        DW    RBRAC+0CH
  155. INITVOCLINK    DW    FORTH+6
  156. ;
  157. ;
  158.     DW    ADFIND
  159.     DW    AQTERM
  160.     DW    AABORT
  161.     DW    ABLOCK
  162.     DW    ACRA
  163.     DW    AEMIT
  164.     DW    AEXPECT
  165.     DW    AINTER
  166.     DW    AKEY
  167.     DW    ALOAD
  168.     DW    ANUM
  169.     DW    APAGE
  170.     DW    ARSLW
  171.     DW    ATSCALC
  172.     DW    AV79
  173.     DW    AWORD
  174. UP    DW    INITR0
  175. RPP    DW    INITR0
  176. ;
  177. ;
  178. ;
  179. PAGE
  180. ;
  181. ;
  182. ;
  183. DPUSH:    PUSH    DX
  184. APUSH:    PUSH    AX
  185. NEXT:    MOV    AX,[SI]
  186.     INC    SI
  187.     INC    SI
  188.     MOV    BX,AX
  189. NEXT1:    MOV    DX,BX
  190.     INC    DX
  191.     JMP    WORD PTR [BX]
  192. ;
  193. ;
  194. ;
  195. DP0    DB    81H    ;  STORE 
  196.     DB    '!'+80H
  197.     DW    0
  198. STORE    DW    $+2
  199.     POP    BX
  200.     POP    AX
  201.     MOV    [BX],AX
  202.     JMP    NEXT
  203. ;
  204.     DB    82H        ;  STOREL
  205.     DB    '!'
  206.     DB    'L'+80H
  207.     DW    STORE-4
  208. STOREL    DW    $+2
  209.     POP    BX
  210.     POP    DS
  211.     POP    AX
  212.     MOV    [BX],AX
  213.     MOV    BX,CS
  214.     MOV    DS,BX
  215.     JMP    NEXT
  216. ;
  217.     DB    81H    ;  #
  218.     DB    '#'+80H
  219.     DW    STOREL-5
  220. DIG    DW    DOCOL
  221.     DW    BASE
  222.     DW    ATT     
  223.     DW    MSMOD
  224.     DW    ROT
  225.     DW    LIT
  226.     DW    9
  227.     DW    OVER
  228.     DW    LESS
  229.     DW    ZBRAN
  230.     DW    OFFSET DIG1-$
  231.     DW    LIT
  232.     DW    7
  233.     DW    PLUS
  234. DIG1    DW    LIT
  235.     DW    30H
  236.     DW    PLUS
  237.     DW    HOLD
  238.     DW    EXIT
  239. ;
  240.     DB    82H    ;  #>
  241.     DB    '#'
  242.     DB    '>'+80H
  243.     DW    DIG-4
  244. EDIGS    DW    DOCOL
  245.     DW    DDROP
  246.     DW    HLD
  247.     DW    ATT
  248.     DW    PAD
  249.     DW    OVER
  250.     DW    SUBB
  251.     DW    EXIT
  252. ;
  253.     DB    85H    ;  #BUFF
  254.     DB    '#BUF'
  255.     DB    'F'+80H
  256.     DW    EDIGS-5
  257. NOBUF    DW    DOCON
  258.     DW    NBUF
  259. ;
  260.     DB    82H    ;  #S
  261.     DB    '#'
  262.     DB    'S'+80H
  263.     DW    NOBUF-8
  264. DIGS    DW    DOCOL
  265. DIGS1    DW    DIG
  266.     DW    DDUP
  267.     DW    ORR
  268.     DW    NOTT
  269.     DW    ZBRAN
  270.     DW    OFFSET DIGS1-$
  271.     DW    EXIT
  272. ;
  273.     DB    0C1H    ;  '
  274.     DB    0A7H
  275.     DW    DIGS-5
  276. TICK    DW    DOCOL
  277.     DW    DFIND
  278.     DW    NOTT
  279.     DW    AABORTQ
  280.     DB    09H
  281.     DB    'NOT FOUND'
  282.     DW    DROP
  283.     DW    LITER
  284.     DW    EXIT
  285. ;
  286.     DB    86H    ;  '-FIND
  287.     DB    27H,'-FIN'
  288.     DB    'D'+80H
  289.     DW    TICK-4
  290. TDFIND    DW    DOUSE
  291.     DW    16H
  292. ;
  293.     DB    8AH    ;  '?TERMINAL
  294.     DB    27H,'?TERMINA'
  295.     DB    'L'+80H
  296.     DW    TDFIND-9
  297. TQTERM    DW    DOUSE
  298.     DW    18H
  299. ;
  300.     DB    86H    ;  'ABORT
  301.     DB    27H,'ABOR'
  302.     DB    'T'+80H
  303.     DW    TQTERM-0DH
  304. TABORT    DW    DOUSE
  305.     DW    1AH
  306. ;
  307.     DB    86H    ;  'BLOCK
  308.     DB    27H,'BLOC'
  309.     DB    'K'+80H
  310.     DW    TABORT-9
  311. TBLOCK    DW    DOUSE
  312.     DW    1CH
  313. ;
  314.     DB    83H    ;  'CR
  315.     DB    27H,'C'
  316.     DB    'R'+80H
  317.     DW    TBLOCK-9
  318. TCR    DW    DOUSE
  319.     DW    1EH
  320. ;
  321.     DB    85H    ;  'EMIT
  322.     DB    27H,'EMI'
  323.     DB    'T'+80H
  324.     DW    TCR-6
  325. TEMIT    DW    DOUSE
  326.     DW    20H
  327. ;
  328.     DB    87H    ;  'EXPECT
  329.     DB    27H,'EXPEC'
  330.     DB    'T'+80H
  331.     DW    TEMIT-8
  332. TEXPECT DW    DOUSE
  333.     DW    22H
  334. ;
  335.     DB    8AH    ;  'INTERPRET
  336.     DB    27H,'INTERPRE'
  337.     DB    'T'+80H
  338.     DW    TEXPECT-0AH
  339. TINTER    DW    DOUSE
  340.     DW    24H
  341. ;
  342.     DB    84H    ;  'KEY
  343.     DB    27H,'KE'
  344.     DB    'Y'+80H
  345.     DW    TINTER-0DH
  346. TKEY    DW    DOUSE
  347.     DW    26H
  348. ;
  349.     DB    85H    ;  'LOAD
  350.     DB    27H,'LOA'
  351.     DB    'D'+80H
  352.     DW    TKEY-7
  353. TLOAD    DW    DOUSE
  354.     DW    28H
  355. ;
  356.     DB    87H    ;  'NUMBER
  357.     DB    27H,'NUMBE'
  358.     DB    'R'+80H
  359.     DW    TLOAD-8
  360. TNUM    DW    DOUSE
  361.     DW    2AH
  362. ;
  363.     DB    85H    ;  'PAGE
  364.     DB    27H,'PAG'
  365.     DB    'E'+80H
  366.     DW    TNUM-0AH
  367. TPAGE    DW    DOUSE
  368.     DW    2CH
  369. ;
  370.     DB    84H    ;  'R/W
  371.     DB    27H,'R/'
  372.     DB    'W'+80H
  373.     DW    TPAGE-8
  374. TRSLW    DW    DOUSE
  375.     DW    2EH
  376. ;
  377.     DB    87H    ;  'STREAM
  378.     DB    27H,'STREA'
  379.     DB    'M'+80H
  380.     DW    TRSLW-7
  381. TSTREAM DW    DOCOL
  382.     DW    BLK
  383.     DW    ATT
  384.     DW    QDUP
  385.     DW    ZBRAN
  386.     DW    TSTRM1-$
  387.     DW    BLOCK
  388.     DW    BRAN
  389.     DW    TSTRM2-$
  390. TSTRM1    DW    TIB
  391.     DW    ATT
  392. TSTRM2    DW    TOIN
  393.     DW    ATT
  394.     DW    PLUS
  395.     DW    EXIT
  396. ;
  397.     DB    88H    ;  'T&SCALC
  398.     DB    27H,'T&SCAL'
  399.     DB    'C'+80H
  400.     DW    TSTREAM-0AH
  401. TTSCALC DW    DOUSE
  402.     DW    30H
  403. ;
  404.     DB    8BH    ;  'VOCABULARY
  405.     DB    27H,'VOCABULAR'
  406.     DB    'Y'+80H
  407.     DW    TTSCALC-0BH
  408. TVOCAB    DW    DOUSE
  409.     DW    32H
  410. ;
  411.     DB    85H    ;  'WORD
  412.     DB    27H,'WOR'
  413.     DB    'D'+80H
  414.     DW    TVOCAB-0EH
  415. TWORD    DW    DOUSE
  416.     DW    34H
  417. ;
  418.     DB    0C1H    ;  (
  419.     DB    '('+80H
  420.     DW    TWORD-8
  421. PAREN    DW    DOCOL
  422.     DW    LIT
  423.     DW    0FFFFH
  424.     DW    TOIN
  425.     DW    PSTOR
  426.     DW    LIT
  427.     DW    29H
  428.     DW    WORDD
  429.     DW    CAT
  430.     DW    ONEP
  431.     DW    HERE
  432.     DW    PLUS
  433.     DW    CAT
  434.     DW    LIT
  435.     DW    29H
  436.     DW    EQUAL
  437.     DW    NOTT
  438.     DW    QSTREAM
  439.     DW    EXIT
  440. ;
  441.     DB    81H    ;  *
  442.     DB    '*'+80H
  443.     DW    PAREN-4
  444. STAR    DW    DOCOL
  445.     DW    USTAR
  446.     DW    DROP
  447.     DW    EXIT
  448. ;
  449.     DB    82H    ;  */
  450.     DB    '*'
  451.     DB    '/'+80H
  452.     DW    STAR-4
  453. SSLA    DW    DOCOL
  454.     DW    SSMOD
  455.     DW    SWAP
  456.     DW    DROP
  457.     DW    EXIT
  458. ;
  459.     DB    85H    ;  */MOD
  460.     DB    '*/MO'
  461.     DB    'D'+80H
  462.     DW    SSLA-5
  463. SSMOD    DW    DOCOL
  464.     DW    TOR
  465.     DW    MSTAR
  466.     DW    FROMR
  467.     DW    MSLAS
  468.     DW    EXIT
  469. ;
  470.     DB    81H    ;  +
  471.     DB    '+'+80H
  472.     DW    SSMOD-8
  473. PLUS    DW    $+2
  474.     POP    AX
  475.     POP    BX
  476.     ADD    AX,BX
  477.     JMP    APUSH
  478. ;
  479.     DB    82H    ;  +STORE
  480.     DB    '+'
  481.     DB    '!'+80H
  482.     DW    PLUS-4
  483. PSTOR    DW    $+2
  484.     POP    BX
  485.     POP    AX
  486.     ADD    [BX],AX
  487.     JMP    NEXT
  488. ;
  489.     DB    82H    ;  +-
  490.     DB    '+'
  491.     DB    '-'+80H
  492.     DW    PSTOR-5
  493. PM    DW    DOCOL
  494.     DW    ZLESS
  495.     DW    ZBRAN
  496.     DW    OFFSET PM1-$
  497.     DW    NEG
  498. PM1    DW    EXIT
  499. ;
  500.     DB    84H    ;  +BUF
  501.     DB    '+BU'
  502.     DB    'F'+80H
  503.     DW    PM-5
  504. PBUF    DW    DOCOL
  505.     DW    LIT
  506.     DW    HDBT
  507.     DW    PLUS
  508.     DW    DUPP
  509.     DW    LIMIT
  510.     DW    EQUAL
  511.     DW    ZBRAN
  512.     DW    OFFSET PBUF1-$
  513.     DW    DROP
  514.     DW    FIRST
  515. PBUF1    DW    DUPP
  516.     DW    PREV
  517.     DW    ATT
  518.     DW    SUBB
  519.     DW    EXIT
  520. ;
  521.     DB    0C5H    ;  +LOOP
  522.     DB    '+LOO'
  523.     DB    'P'+80H
  524.     DW    PBUF-7
  525. PLOOP    DW    DOCOL
  526.     DW    LIT
  527.     DW    3
  528.     DW    QPAIR
  529.     DW    COMP
  530.     DW    APLOOP
  531.     DW    HERE
  532.     DW    SUBB
  533.     DW    COMMA
  534.     DW    EXIT
  535. ;
  536.     DB    81H    ;  ,
  537.     DB    ','+80H
  538.     DW    PLOOP-8
  539. COMMA    DW    DOCOL
  540.     DW    HERE
  541.     DW    STORE
  542.     DW    TWO
  543.     DW    ALLOT
  544.     DW    EXIT
  545. ;
  546.     DB    81H    ;  -
  547.     DB    '-'+80H
  548.     DW    COMMA-4
  549. SUBB    DW    $+2
  550.     POP    DX
  551.     POP    AX
  552.     SUB    AX,DX
  553.     JMP    APUSH
  554. ;
  555.     DB    85H    ;  -FIND
  556.     DB    '-FIN'
  557.     DB    'D'+80H
  558.     DW    SUBB-4
  559. DFIND    DW    DOCOL
  560.     DW    TDFIND
  561.     DW    ATT
  562.     DW    EXEC
  563.     DW    EXIT
  564. ;
  565.     DB    89H    ;  -TRAILING
  566.     DB    '-TRAILIN'
  567.     DB    'G'+80H
  568.     DW    DFIND-8
  569. DTRAI    DW    DOCOL
  570.     DW    DUPP
  571.     DW    ZERO
  572.     DW    ADO
  573. DTRAI1    DW    DDUP
  574.     DW    PLUS
  575.     DW    ONEM
  576.     DW    CAT
  577.     DW    BLL
  578.     DW    SUBB
  579.     DW    ZBRAN
  580.     DW    OFFSET DTRAI2-$
  581.     DW    LEAVE
  582.     DW    BRAN
  583.     DW    OFFSET DTRAI3-$
  584. DTRAI2    DW    ONEM
  585. DTRAI3    DW    ALOOP
  586.     DW    OFFSET DTRAI1-$
  587.     DW    EXIT
  588. ;
  589.     DB    81H    ;  .
  590.     DB    '.'+80H
  591.     DW    DTRAI-0CH
  592. DOT    DW    DOCOL
  593.     DW    STOD
  594.     DW    DDOT
  595.     DW    EXIT
  596. ;
  597.     DB    0C2H    ;  ."
  598.     DB    '.'
  599.     DB    '"'+80H
  600.     DW    DOT-4
  601. DOTQ    DW    DOCOL
  602.     DW    TSTREAM
  603.     DW    CAT
  604.     DW    LIT
  605.     DW    22H
  606.     DW    EQUAL
  607.     DW    ZBRAN
  608.     DW    OFFSET DOTQ1-$
  609.     DW    ONE
  610.     DW    TOIN
  611.     DW    PSTOR
  612.     DW    BRAN
  613.     DW    OFFSET DOTQ2-$
  614. DOTQ1    DW    LIT
  615.     DW    22H
  616.     DW    STATE
  617.     DW    ATT
  618.     DW    ZBRAN
  619.     DW    OFFSET DOTQ3-$
  620.     DW    COMP
  621.     DW    ADOTQ
  622. DOTQ3    DW    WORDD
  623.     DW    DUPP
  624.     DW    CAT
  625.     DW    ONEP
  626.     DW    OVER
  627.     DW    PLUS
  628.     DW    CAT
  629.     DW    LIT
  630.     DW    22H
  631.     DW    EQUAL
  632.     DW    NOTT
  633.     DW    QSTREAM
  634.     DW    STATE
  635.     DW    ATT
  636.     DW    ZBRAN
  637.     DW    OFFSET DOTQ4-$
  638.     DW    CAT
  639.     DW    ONEP
  640.     DW    ALLOT
  641.     DW    BRAN
  642.     DW    OFFSET DOTQ2-$
  643. DOTQ4    DW    COUNT
  644.     DW    TYPEE
  645. DOTQ2    DW    EXIT
  646. ;
  647.     DB    85H    ;  .LINE
  648.     DB    '.LIN'
  649.     DB    'E'+80H
  650.     DW    DOTQ-5
  651. DLINE    DW    DOCOL
  652.     DW    ALINE
  653.     DW    DTRAI
  654.     DW    TYPEE
  655.     DW    EXIT
  656. ;
  657.     DB    82H    ;  .R
  658.     DB    '.'
  659.     DB    'R'+80H
  660.     DW    DLINE-8
  661. DOTR    DW    DOCOL
  662.     DW    TOR
  663.     DW    STOD
  664.     DW    FROMR
  665.     DW    DDOTR
  666.     DW    EXIT
  667. ;
  668.     DB    81H    ;  /
  669.     DB    '/'+80H
  670.     DW    DOTR-5
  671. SLASH    DW    DOCOL
  672.     DW    SLMOD
  673.     DW    SWAP
  674.     DW    DROP
  675.     DW    EXIT
  676. ;
  677.     DB    0C5H    ;  /LOOP
  678.     DB    '/LOO'
  679.     DB    'P'+80H
  680.     DW    SLASH-4
  681. UPLOOP    DW    DOCOL
  682.     DW    LIT
  683.     DW    3
  684.     DW    QPAIR
  685.     DW    COMP
  686.     DW    AUPLOOP
  687.     DW    HERE
  688.     DW    SUBB
  689.     DW    COMMA
  690.     DW    EXIT
  691. ;
  692.     DB    84H    ;  /MOD
  693.     DB    '/MO'
  694.     DB    'D'+80H
  695.     DW    UPLOOP-8
  696. SLMOD    DW    DOCOL
  697.     DW    TOR
  698.     DW    STOD
  699.     DW    FROMR
  700.     DW    MSLAS
  701.     DW    EXIT
  702. ;
  703.     DB    81H    ;  0
  704.     DB    '0'+80H
  705.     DW    SLMOD-7
  706. ZERO    DW    DOCON
  707.     DW    00
  708. ;
  709.     DB    82H    ;  0<
  710.     DB    '0'
  711.     DB    '<'+80H
  712.     DW    ZERO-4
  713. ZLESS    DW    $+2
  714.     POP    AX
  715.     OR    AX,AX
  716.     MOV    AX,1
  717.     JS    ZLES1
  718.     DEC    AX
  719. ZLES1:    JMP    APUSH
  720. ;
  721.     DB    82H    ;  0=
  722.     DB    '0'
  723.     DB    '='+80H
  724.     DW    ZLESS-5
  725. ZEQU    DW    DOCOL
  726.     DW    NOTT
  727.     DW    EXIT
  728. ;
  729.     DB    82H    ;  0>
  730.     DB    '0'
  731.     DB    '>'+80H
  732.     DW    ZEQU-5
  733. ZGREAT    DW    DOCOL
  734.     DW    ZERO
  735.     DW    GREAT
  736.     DW    EXIT
  737. ;
  738.     DB    87H    ;  0BRANCH
  739.     DB    '0BRANC'
  740.     DB    'H'+80H
  741.     DW    ZGREAT-5
  742. ZBRAN    DW    $+2
  743.     POP    AX
  744.     OR    AX,AX
  745.     JZ    ZBRAN1
  746.     INC    SI
  747.     INC    SI
  748.     JMP    NEXT
  749. ZBRAN1: JMP    BRAN1
  750. ;
  751.     DB    81H    ;  1
  752.     DB    '1'+80H
  753.     DW    ZBRAN-0AH
  754. ONE    DW    DOCON
  755.     DW    01
  756. ;
  757.     DB    82H    ;  1+
  758.     DB    '1'
  759.     DB    '+'+80H 
  760.     DW    ONE-4
  761. ONEP    DW    $+2
  762.     POP    AX
  763.     INC    AX
  764.     JMP    APUSH
  765. ;
  766.     DB    82H    ;  1-
  767.     DB    '1'
  768.     DB    '-'+80H
  769.     DW    ONEP-5
  770. ONEM    DW    $+2
  771.     POP    AX
  772.     DEC    AX
  773.     JMP    APUSH
  774. ;
  775.     DB    81H    ;  2
  776.     DB    '2'+80H
  777.     DW    ONEM-5
  778. TWO    DW    DOCON
  779.     DW    02
  780. ;
  781.     DB    82H    ;  2*
  782.     DB    '2'
  783.     DB    '*'+80H
  784.     DW    TWO-4
  785. TWOST    DW    $+2
  786.     POP    AX
  787.     ADD    AX,AX
  788.     JMP    APUSH
  789. ;
  790.     DB    82H    ;    2+
  791.     DB    '2'
  792.     DB    '+'+80H
  793.     DW    TWOST-5
  794. TWOP    DW    $+2
  795.     POP    AX
  796.     INC    AX
  797.     INC    AX
  798.     JMP    APUSH
  799. ;
  800.     DB    82H    ;  2-
  801.     DB    '2'
  802.     DB    '-'+80H
  803.     DW    TWOP-5
  804. TWOM    DW    $+2
  805.     POP    AX
  806.     DEC    AX
  807.     DEC    AX
  808.     JMP    APUSH
  809. ;
  810.     DB    82H    ;  2/
  811.     DB    '2'
  812.     DB    '/'+80H
  813.     DW    TWOM-5
  814. TWOSL    DW    DOCOL
  815.     DW    TWO
  816.     DW    SLASH
  817.     DW    EXIT
  818. ;
  819.     DB    8BH    ;  79-STANDARD
  820.     DB    '79-STANDAR'
  821.     DB    'D'+80H
  822.     DW    TWOSL-5
  823. STAND    DW    DOCOL
  824.     DW    EXIT
  825. ;
  826.     DB    81H    ;  :
  827.     DB    ':'+80H
  828.     DW    STAND-0EH
  829. COLON    DW    DOCOL
  830.     DW    SPAT
  831.     DW    CSP
  832.     DW    STORE
  833.     DW    CURR
  834.     DW    ATT
  835.     DW    CONT
  836.     DW    STORE
  837.     DW    CREATE
  838.     DW    SMUDG
  839.     DW    RBRAC
  840.     DW    ASCODE
  841. DOCOL:    INC    DX
  842.     DEC    BP
  843.     DEC    BP
  844.     MOV    [BP],SI
  845.     MOV    SI,DX
  846.     JMP    NEXT
  847. ;
  848.     DB    0C1H    ;  ;
  849.     DB    ';'+80H
  850.     DW    COLON-4
  851. SEMI    DW    DOCOL
  852.     DW    QCSP
  853.     DW    COMP
  854.     DW    EXIT
  855.     DW    SMUDG
  856.     DW    LBRAC
  857.     DW    EXIT
  858. ;
  859.     DB    81H    ;  <
  860.     DB    '<'+80H
  861.     DW    SEMI-4
  862. LESS    DW    $+2
  863.     POP    DX
  864.     POP    AX
  865.     MOV    BX,DX
  866.     XOR    BX,AX
  867.     JS    LES1
  868.     SUB    AX,DX
  869. LES1:    OR    AX,AX
  870.     MOV    AX,0
  871.     JNS    LES2
  872.     INC    AX
  873. LES2:    JMP    APUSH
  874. ;
  875.     DB    82H    ;  <#
  876.     DB    '<'
  877.     DB    '#'+80H
  878.     DW    LESS-4
  879. BDIGS    DW    DOCOL
  880.     DW    PAD
  881.     DW    HLD
  882.     DW    STORE
  883.     DW    EXIT
  884. ;
  885.     DB    87H    ;  <+LOOP>
  886.     DB    '<+LOOP'
  887.     DB    '>'+80H
  888.     DW    BDIGS-5
  889. APLOOP    DW    $+2
  890.     POP    BX
  891.     JMP    ALOOP1
  892. ;
  893.     DB    87H    ;  <-FIND>
  894.     DB    '<-FIND'
  895.     DB    '>'+80H
  896.     DW    APLOOP-0AH
  897. ADFIND    DW    DOCOL
  898.     DW    BLL
  899.     DW    WORDD
  900.     DW    CONT
  901.     DW    ATT
  902.     DW    ATT
  903.     DW    AFIND
  904.     DW    EXIT
  905. ;
  906.     DB    84H    ;  <.">
  907.     DB    '<."'
  908.     DB    '>'+80H
  909.     DW    ADFIND-0AH
  910. ADOTQ    DW    DOCOL
  911.     DW    RAT
  912.     DW    COUNT
  913.     DW    DUPP
  914.     DW    ONEP
  915.     DW    FROMR
  916.     DW    PLUS
  917.     DW    TOR
  918.     DW    TYPEE
  919.     DW    EXIT
  920. ;
  921.     DB    87H    ;  </LOOP>
  922.     DB    '</LOOP'
  923.     DB    '>'+80H
  924.     DW    ADOTQ-7
  925. AUPLOOP DW    $+2
  926.     POP    BX
  927.     ADD    [BP],BX
  928.     JB    AUPLO1
  929.     MOV    AX,[BP]
  930.     SUB    AX,2[BP]
  931.     JNB    AUPLO1
  932.     JMP    BRAN1
  933. AUPLO1: ADD    BP,4H
  934.     INC    SI
  935.     INC    SI
  936.     JMP    NEXT
  937. ;
  938.     DB    87H    ;  <;CODE>
  939.     DB    '<;CODE'
  940.     DB    '>'+80H
  941.     DW    AUPLOOP-0AH
  942. ASCODE    DW    DOCOL
  943.     DW    FROMR
  944.     DW    LATES
  945.     DW    PFA
  946.     DW    CFA
  947.     DW    STORE
  948.     DW    EXIT
  949. ;
  950.     DB    88H    ;  <<CMOVE>
  951.     DB    '<<CMOVE'
  952.     DB    '>'+80H
  953.     DW    ASCODE-0AH
  954. ADCMOVE DW    $+2
  955.     MOV     BX,SI
  956.     POP    CX
  957.     POP    DI
  958.     ADD    DI,CX
  959.     DEC    DI
  960.     POP    SI
  961.     ADD    SI,CX
  962.     DEC    SI
  963.     STD
  964. REP    MOVSB
  965.     CLD
  966.     MOV    SI,BX
  967.     JMP    NEXT
  968. ;
  969.     DB    8BH        ;  <?TERMINAL>     ( ---    C , F )
  970.     DB    '<?TERMINAL'
  971.     DB    '>'+80H
  972.     DW    ADCMOVE-0BH
  973. ;AQTERM    DW    $+2
  974. ;    PUSH    DS
  975. ;    PUSH    BX
  976. ;    MOV    BX,40H
  977. ;    MOV    DS,BX
  978. ;    MOV    BX,1AH
  979. ;    MOV    CX,[BX]
  980. ;    MOV    AX,CX
  981. ;    MOV    BX,1CH
  982. ;    SUB    AX,[BX]
  983. ;    MOV    [BX],CX
  984. ;    JZ    AQTER1
  985. ;    MOV    AX,[BX]
  986. ;    MOV    BX,AX
  987. ;    MOV    AX,[BX]
  988. ;    SUB    AH,AH
  989. ;AQTER1: POP    BX
  990. ;    POP    DS
  991. ;    JMP    APUSH
  992. AQTERM    DW    DOCOL            ; 1.0405.03
  993.     DW    LIT            ; 1.0405.03
  994.     DW    0600H            ; 1.0405.03
  995.     DW    ZERO            ; 1.0405.03
  996.     DW    ZERO            ; 1.0405.03
  997.     DW    LIT            ; 1.0405.03
  998.     DW    0FFH            ; 1.0405.03
  999.     DW    LIT            ; 1.0405.03
  1000.     DW    21H            ; 1.0405.03
  1001.     DW    INTCAL            ; 1.0405.03
  1002.     DW    LIT            ; 1.0405.03
  1003.     DW    0FFH            ; 1.0405.03
  1004.     DW    ANDD            ; 1.0405.03
  1005.     DW    EXIT            ; 1.0405.03
  1006. ;
  1007.     DB    88H    ;  <ABORT">
  1008.     DB    '<ABORT"'
  1009.     DB    '>'+80H
  1010.     DW    AQTERM-0EH
  1011. AABORTQ DW    DOCOL
  1012.     DW    ZBRAN
  1013.     DW    AABTQ1-$
  1014.     DW    WHERE
  1015.     DW    CR
  1016.     DW    RAT
  1017.     DW    COUNT
  1018.     DW    TYPEE
  1019.     DW    SPSTO
  1020.     DW    QUIT
  1021.     DW    BRAN
  1022.     DW    AABTQ2-$
  1023. AABTQ1    DW    FROMR
  1024.     DW    DUPP
  1025.     DW    CAT
  1026.     DW    PLUS
  1027.     DW    ONEP
  1028.     DW    TOR
  1029. AABTQ2    DW    EXIT
  1030. ;
  1031.     DB    87H    ;  <ABORT>
  1032.     DB    '<ABORT'
  1033.     DB    '>'+80H
  1034.     DW    AABORTQ-0BH
  1035. AABORT    DW    DOCOL
  1036.     DW    SPSTO
  1037.     DW    QSTAC
  1038.     DW    FORTH
  1039.     DW    DEFIN
  1040.     DW    QUIT
  1041.     DW    EXIT
  1042. ;
  1043.     DB    87H    ;  <BLOCK>
  1044.     DB    '<BLOCK'
  1045.     DB    '>'+80H
  1046.     DW    AABORT-0AH
  1047. ABLOCK    DW    DOCOL
  1048.     DW    OFSET
  1049.     DW    ATT
  1050.     DW    PLUS
  1051.     DW    TOR
  1052.     DW    PREV
  1053.     DW    ATT
  1054.     DW    DUPP
  1055.     DW    ATT
  1056.     DW    RAT
  1057.     DW    SUBB
  1058.     DW    TWOST
  1059.     DW    ZBRAN
  1060.     DW    OFFSET ABLOCK3-$
  1061. ABLOCK1 DW    PBUF
  1062.     DW    NOTT
  1063.     DW    ZBRAN
  1064.     DW    OFFSET ABLOCK2-$
  1065.     DW    DROP
  1066.     DW    RAT
  1067.     DW    BUFFE
  1068.     DW    DUPP
  1069.     DW    RAT
  1070.     DW    ONE
  1071.     DW    RSLW
  1072.     DW    TWOM
  1073. ABLOCK2 DW    DUPP
  1074.     DW    ATT
  1075.     DW    RAT
  1076.     DW    SUBB
  1077.     DW    TWOST
  1078.     DW    NOTT
  1079.     DW    ZBRAN
  1080.     DW    OFFSET ABLOCK1-$
  1081.     DW    DUPP
  1082.     DW    PREV
  1083.     DW    STORE
  1084. ABLOCK3 DW    FROMR
  1085.     DW    DROP
  1086.     DW    TWOP
  1087.     DW    EXIT
  1088. ;
  1089.     DB    86H    ;  <CMOVE
  1090.     DB    '<CMOV'
  1091.     DB    'E'+80H
  1092.     DW    ABLOCK-0AH
  1093. DCMOVE    DW    DOCOL
  1094.     DW    DUPP
  1095.     DW    ONE
  1096.     DW    LESS
  1097.     DW    ZBRAN
  1098.     DW    DCMOVE1-$
  1099.     DW    DDROP
  1100.     DW    DROP
  1101.     DW    BRAN
  1102.     DW    DCMOVE2-$
  1103. DCMOVE1 DW    ADCMOVE
  1104. DCMOVE2 DW    EXIT
  1105. ;
  1106.     DB    87H    ;  <CMOVE>
  1107.     DB    '<CMOVE'
  1108.     DB    '>'+80H
  1109.     DW    DCMOVE-09
  1110. ACMOVE    DW    $+2
  1111.     CLD
  1112.     MOV    BX,SI
  1113.     POP    CX
  1114.     POP    DI
  1115.     POP    SI
  1116.     MOV    AX,DS
  1117.     MOV    ES,AX
  1118. REP    MOVSB
  1119.     MOV    SI,BX
  1120.     JMP    NEXT
  1121. ;
  1122.     DB    84H    ;  <CR>
  1123.     DB    '<CR'
  1124.     DB    '>'+80H
  1125.     DW    ACMOVE-0AH
  1126. ACRA    DW    DOCOL
  1127.     DW    LIT
  1128.     DW    0DH
  1129.     DW    EMIT
  1130.     DW    LIT
  1131.     DW    0AH
  1132.     DW    EMIT
  1133.     DW    ZERO
  1134.     DW    OUTT
  1135.     DW    STORE
  1136.     DW    EXIT
  1137. ;
  1138.     DB    84H    ;  <DO>
  1139.     DB    '<DO'
  1140.     DB    '>'+80H
  1141.     DW    ACRA-7
  1142. ADO    DW    $+2
  1143.     POP    DX
  1144.     POP    AX
  1145.     XCHG    BP,SP
  1146.     PUSH    AX
  1147.     PUSH    DX
  1148.     XCHG    BP,SP
  1149.     JMP    NEXT
  1150. ;
  1151.     DB    86H    ;  <EMIT>
  1152.     DB    '<EMIT'
  1153.     DB    '>'+80H
  1154.     DW    ADO-7
  1155. AEMIT    DW    DOCOL
  1156.     DW    EPRINT
  1157.     DW    ATT
  1158.     DW    ZBRAN
  1159.     DW    OFFSET AEMIT1-$
  1160.     DW    DUPP
  1161. ;    DW    ZERO
  1162. ;    DW    ZERO
  1163. ;    DW    ZERO
  1164. ;    DW    LIT
  1165. ;    DW    17H
  1166.     DW    LIT            ; 1.0405.03
  1167.     DW    0500H            ; 1.0405.03
  1168.     DW    ZERO            ; 1.0405.03
  1169.     DW    ROT            ; 1.0405.03
  1170.     DW    ZERO            ; 1.0405.03
  1171.     DW    SWAP            ; 1.0405.03
  1172.     DW    LIT            ; 1.0405.03
  1173.     DW    21H            ; 1.0405.03
  1174.     DW    INTCAL
  1175.     DW    DROP
  1176. AEMIT1    DW    LIT
  1177. ;    DW    0E00H
  1178. ;    DW    PLUS
  1179. ;    DW    LIT
  1180. ;    DW    07H
  1181. ;    DW    ZERO
  1182. ;    DW    ZERO
  1183. ;    DW    LIT
  1184. ;    DW    10H
  1185.     DW    0200H            ; 1.0405.03
  1186.     DW    ZERO            ; 1.0405.03
  1187.     DW    ROT            ; 1.0405.03
  1188.     DW    ZERO            ; 1.0405.03
  1189.     DW    SWAP            ; 1.0405.03
  1190.     DW    LIT            ; 1.0405.03
  1191.     DW    21H            ; 1.0405.03
  1192.     DW    INTCAL
  1193.     DW    DROP
  1194.     DW    ONE
  1195.     DW    OUTT
  1196.     DW    PSTOR
  1197.     DW    EXIT
  1198. ;
  1199.     DB    88H    ;  <EXPECT>
  1200.     DB    '<EXPECT'
  1201.     DB    '>'+80H
  1202.     DW    AEMIT-9
  1203. AEXPECT DW    DOCOL
  1204.     DW    OVER
  1205.     DW    PLUS
  1206.     DW    OVER
  1207.     DW    ADO
  1208. AEXPEC1 DW    KEY
  1209.     DW    DUPP
  1210.     DW    LIT
  1211.     DW    8
  1212.     DW    EQUAL
  1213.     DW    OVER
  1214.     DW    LIT
  1215.     DW    7FH
  1216.     DW    EQUAL
  1217.     DW    ORR
  1218.     DW    ZBRAN
  1219.     DW    OFFSET AEXPEC4-$
  1220.     DW    DROP
  1221.     DW    DUPP
  1222.     DW    IDO
  1223.     DW    EQUAL
  1224.     DW    DUPP
  1225.     DW    FROMR
  1226.     DW    TWOM
  1227.     DW    PLUS
  1228.     DW    TOR
  1229.     DW    ZBRAN
  1230.     DW    OFFSET AEXPEC2-$
  1231.     DW    LIT
  1232.     DW    7
  1233.     DW    BRAN
  1234.     DW    OFFSET AEXPEC3-$
  1235. AEXPEC2 DW    LIT
  1236.     DW    8
  1237.     DW    DUPP
  1238.     DW    EMIT
  1239.     DW    LIT
  1240.     DW    20H
  1241.     DW    EMIT
  1242.     DW    LIT
  1243.     DW    0FFFDH
  1244.     DW    OUTT
  1245.     DW    PSTOR
  1246. AEXPEC3 DW    BRAN
  1247.     DW    OFFSET AEXPEC7-$
  1248. AEXPEC4 DW    DUPP
  1249.     DW    LIT
  1250.     DW    0DH
  1251.     DW    EQUAL
  1252.     DW    ZBRAN
  1253.     DW    OFFSET AEXPEC5-$
  1254.     DW    LEAVE
  1255.     DW    DROP
  1256.     DW    BLL
  1257.     DW    ZERO
  1258.     DW    BRAN
  1259.     DW    OFFSET AEXPEC6-$
  1260. AEXPEC5 DW    DUPP
  1261. AEXPEC6 DW    IDO
  1262.     DW    CSTOR
  1263.     DW    ZERO
  1264.     DW    IDO
  1265.     DW    ONEP
  1266.     DW    STORE
  1267. AEXPEC7 DW    EMIT
  1268.     DW    ONE
  1269.     DW    AUPLOOP
  1270.     DW    OFFSET AEXPEC1-$
  1271.     DW    DROP
  1272.     DW    EXIT
  1273. ;
  1274.     DB    86H    ;  <FILL>
  1275.     DB    '<FILL'
  1276.     DB    '>'+80H
  1277.     DW    AEXPECT-0BH
  1278. AFILL    DW    $+2
  1279.     POP    AX
  1280.     POP    CX
  1281.     POP    DI
  1282.     MOV    BX,DS
  1283.     MOV    ES,BX
  1284.     CLD
  1285.     REP    STOSB
  1286.     JMP    NEXT
  1287. ;
  1288.     DB    86H    ;  <FIND>
  1289.     DB    '<FIND'
  1290.     DB    '>'+80H
  1291.     DW    AFILL-9
  1292. AFIND    DW    $+2
  1293.     MOV    AX,DS
  1294.     MOV    ES,AX
  1295.     POP    BX
  1296.     POP    CX
  1297. AFIND1: MOV    DI,CX
  1298.     MOV    AL,[BX]
  1299.     MOV    DL,AL
  1300.     XOR    AL,[DI]
  1301.     AND    AL,3FH
  1302.     JNZ    AFIND3
  1303. AFIND2: INC    BX
  1304.     INC    DI
  1305.     MOV    AL,[BX]
  1306.     XOR    AL,[DI]
  1307.     ADD    AL,AL
  1308.     JNZ    AFIND3
  1309.     JNB    AFIND2
  1310.     ADD    BX,5
  1311.     PUSH    BX
  1312.     MOV    AX,1
  1313.     SUB    DH,DH
  1314.     JMP    DPUSH
  1315. AFIND3: INC    BX
  1316.     JB    AFIND4
  1317.     MOV    AL,[BX]
  1318.     ADD    AL,AL
  1319.     JMP    AFIND3
  1320. AFIND4: MOV    BX,[BX]
  1321.     OR    BX,BX
  1322.     JNZ    AFIND1
  1323.     MOV    AX,0
  1324.     JMP    APUSH
  1325. ;
  1326.     DB    8BH    ;  <INTERPRET>
  1327.     DB    '<INTERPRET'
  1328.     DB    '>'+80H
  1329.     DW    AFIND-9
  1330. AINTER    DW    DOCOL
  1331. AINTER1 DW    DFIND
  1332.     DW    ZBRAN
  1333.     DW    OFFSET AINTER4-$
  1334.     DW    STATE
  1335.     DW    ATT
  1336.     DW    LESS
  1337.     DW    ZBRAN
  1338.     DW    OFFSET AINTER2-$
  1339.     DW    CFA
  1340.     DW    COMMA
  1341.     DW    BRAN
  1342.     DW    OFFSET AINTER3-$
  1343. AINTER2 DW    CFA
  1344.     DW    EXEC
  1345. AINTER3 DW    BRAN
  1346.     DW    OFFSET AINTER6-$
  1347. AINTER4 DW    HERE
  1348.     DW    NUM
  1349.     DW    DPL
  1350.     DW    ATT
  1351.     DW    ONEP
  1352.     DW    ZBRAN
  1353.     DW    OFFSET AINTER5-$
  1354.     DW    DLITE
  1355.     DW    BRAN
  1356.     DW    OFFSET AINTER6-$
  1357. AINTER5 DW    DROP
  1358.     DW    LITER
  1359. AINTER6 DW    QSTAC
  1360.     DW    BRAN
  1361.     DW    OFFSET AINTER1-$
  1362.     DW    EXIT
  1363. ;
  1364.     DB    85H    ;  <KEY>
  1365.     DB    '<KEY'
  1366.     DB    '>'+80H
  1367.     DW    AINTER-0EH
  1368. AKEY    DW    DOCOL
  1369. ;AKEY1    DW    ZERO
  1370. AKEY1    DW    LIT            ; 1.0405.03
  1371.     DW    0700H            ; 1.0405.03
  1372.     DW    ZERO
  1373.     DW    ZERO
  1374.     DW    ZERO
  1375.     DW    LIT
  1376. ;    DW    16H
  1377.     DW    21H            ; 1.0405.03
  1378.     DW    INTCAL
  1379.     DW    LIT
  1380.     DW    0FFH
  1381.     DW    ANDD
  1382.     DW    DUPP
  1383.     DW    LIT
  1384.     DW    10H
  1385.     DW    SUBB
  1386.     DW    NOTT
  1387.     DW    ZBRAN
  1388.     DW    OFFSET AKEY2-$
  1389.     DW    DROP
  1390.     DW    ONE
  1391.     DW    EPRINT
  1392.     DW    ATT
  1393.     DW    XORR
  1394.     DW    EPRINT
  1395.     DW    STORE
  1396.     DW    BRAN
  1397.     DW    OFFSET AKEY1-$
  1398. AKEY2    DW    EXIT
  1399. ;
  1400.     DB    86H    ;  <LINE>
  1401.     DB    '<LINE'
  1402.     DB    '>'+80H
  1403.     DW    AKEY-8
  1404. ALINE    DW    DOCOL
  1405.     DW    BLOCK
  1406.     DW    SWAP
  1407.     DW    CSLL
  1408.     DW    STAR
  1409.     DW    PLUS
  1410.     DW    CSLL
  1411.     DW    EXIT
  1412. ;
  1413.     DB    86H    ;  <LOAD>
  1414.     DB    '<LOAD'
  1415.     DB    '>'+80H
  1416.     DW    ALINE-9
  1417. ALOAD    DW    DOCOL
  1418.     DW    QDUP
  1419.     DW    NOTT
  1420.     DW    AABORTQ
  1421.     DB    0AH
  1422.     DB    'UNLOADABLE'
  1423.     DW    BLK
  1424.     DW    ATT
  1425.     DW    TOR
  1426.     DW    TOIN
  1427.     DW    ATT
  1428.     DW    TOR
  1429.     DW    ZERO
  1430.     DW    TOIN
  1431.     DW    STORE
  1432.     DW    BLK
  1433.     DW    STORE
  1434.     DW    INTER
  1435.     DW    FROMR
  1436.     DW    TOIN
  1437.     DW    STORE
  1438.     DW    FROMR
  1439.     DW    BLK
  1440.     DW    STORE
  1441.     DW    EXIT
  1442. ;
  1443.     DB    86H    ;  <LOOP>
  1444.     DB    '<LOOP'
  1445.     DB    '>'+80H
  1446.     DW    ALOAD-9
  1447. ALOOP    DW    $+2
  1448.     MOV    BX,1H
  1449. ALOOP1: MOV    CX,[BP]
  1450.     ADD    [BP],BX
  1451.     JS    ALOOP2
  1452.     MOV    AX,CX
  1453.     AND    AX,BX
  1454.     JNS    ALOOP3
  1455. ALOOP2: MOV    AX,CX
  1456.     OR    AX,BX
  1457.     JNS    ALOOP8
  1458. ALOOP3: MOV    AX,[BP]
  1459.     SUB    AX,2[BP]
  1460.     JS    ALOOP7
  1461.     MOV    AX,[BP]
  1462.     AND    AX,AX
  1463.     JS    ALOOP5
  1464. ALOOP4: MOV    AX,BX
  1465.     AND    AX,AX
  1466.     JNS    ALOOP8
  1467.     JMP    BRAN1
  1468. ALOOP5: MOV    AX,2[BP]
  1469.     AND    AX,AX
  1470.     JS    ALOOP4
  1471. ALOOP6: MOV    AX,BX
  1472.     AND    AX,AX
  1473.     JS    ALOOP8
  1474.     JMP    BRAN1
  1475. ALOOP7: MOV    AX,[BP]
  1476.     AND    AX,AX
  1477.     JS    ALOOP6
  1478.     JMP    ALOOP5
  1479. ALOOP8: ADD    BP,4H
  1480.     INC    SI
  1481.     INC    SI
  1482.     JMP    NEXT
  1483. ;
  1484.     DB    88H    ;  <NUMBER>
  1485.     DB    '<NUMBER'
  1486.     DB    '>'+80H
  1487.     DW    ALOOP-9
  1488. ANUM    DW    DOCOL
  1489.     DW    ZERO
  1490.     DW    ZERO
  1491.     DW    ROT
  1492.     DW    DUPP
  1493.     DW    ONEP
  1494.     DW    CAT
  1495.     DW    LIT
  1496.     DW    2DH
  1497.     DW    EQUAL
  1498.     DW    DUPP
  1499.     DW    TOR
  1500.     DW    PLUS
  1501.     DW    LIT
  1502.     DW    0FFFFH
  1503.     DW    DPL
  1504.     DW    STORE
  1505.     DW    CONV
  1506.     DW    DUPP
  1507.     DW    CAT
  1508.     DW    BLL
  1509.     DW    GREAT
  1510.     DW    ZBRAN
  1511.     DW    OFFSET ANUM1-$
  1512.     DW    DUPP
  1513.     DW    CAT
  1514.     DW    LIT
  1515.     DW    2EH
  1516.     DW    EQUAL
  1517.     DW    NOTT
  1518.     DW    AABORTQ
  1519.     DB    0EH
  1520.     DB    'NOT RECOGNIZED'
  1521.     DW    ZERO
  1522.     DW    DPL
  1523.     DW    STORE
  1524.     DW    CONV
  1525.     DW    DUPP
  1526.     DW    CAT
  1527.     DW    BLL
  1528.     DW    GREAT
  1529.     DW    AABORTQ
  1530.     DB    0EH
  1531.     DB    'NOT RECOGNIZED'
  1532. ANUM1    DW    DROP
  1533.     DW    FROMR
  1534.     DW    ZBRAN
  1535.     DW    OFFSET ANUM2-$
  1536.     DW    DNEG
  1537. ANUM2    DW    EXIT
  1538. ;
  1539.     DB    86H    ;  <PAGE>
  1540.     DB    '<PAGE'
  1541.     DB    '>'+80H
  1542.     DW    ANUM-0BH
  1543. APAGE    DW    DOCOL
  1544. ;    DW    ZERO
  1545. ;    DW    ZERO
  1546. ;    DW    ZERO
  1547. ;    DW    ZERO
  1548. ;    DW    LIT
  1549. ;    DW    10H
  1550. ;    DW    INTCAL
  1551. ;    DW    DROP
  1552.     DW    LIT            ; 1.0405.03
  1553.     DW    0DH            ; 1.0405.03
  1554.     DW    EMIT            ; 1.0405.03
  1555.     DW    LIT            ; 1.0405.03
  1556.     DW    0AH            ; 1.0405.03
  1557.     DW    EMIT            ; 1.0405.03
  1558.     DW    EXIT
  1559. ;
  1560.     DB    85H    ;  <R/W>
  1561.     DB    '<R/W'
  1562.     DB    '>'+80H
  1563.     DW    APAGE-9
  1564. ARSLW    DW    DOCOL
  1565.     DW    USEE
  1566.     DW    ATT
  1567.     DW    TOR
  1568.     DW    ROT
  1569.     DW    USEE
  1570.     DW    STORE
  1571.     DW    SWAP
  1572.     DW    MAXDRV
  1573.     DW    ZERO
  1574.     DW    ADO
  1575. ARSLW1    DW    IDO
  1576.     DW    DRDEN
  1577.     DW    DENSTY
  1578.     DW    STORE
  1579.     DW    DUPP
  1580.     DW    BPDRV
  1581.     DW    SUBB
  1582.     DW    LIT
  1583.     DW    0FFFFH
  1584.     DW    GREAT
  1585.     DW    ZBRAN
  1586.     DW    ARSLW3-$
  1587.     DW    BPDRV
  1588.     DW    SUBB
  1589.     DW    IDO
  1590.     DW    ONEP
  1591.     DW    MAXDRV
  1592.     DW    EQUAL
  1593.     DW    ZBRAN
  1594.     DW    ARSLW2-$
  1595.     DW    FROMR
  1596.     DW    FROMR
  1597.     DW    DDROP
  1598.     DW    FROMR
  1599.     DW    USEE
  1600.     DW    STORE
  1601.     DW    ONE
  1602.     DW    AABORTQ
  1603.     DB    12H
  1604.     DB    'BLOCK OUT OF RANGE'
  1605. ARSLW2    DW    BRAN
  1606.     DW    ARSLW4-$
  1607. ARSLW3    DW    IDO
  1608.     DW    DRIVE
  1609.     DW    STORE
  1610.     DW    LEAVE
  1611. ARSLW4    DW    ALOOP
  1612.     DW    ARSLW1-$
  1613.     DW    SPBLK
  1614.     DW    STAR
  1615.     DW    SPBLK
  1616.     DW    ZERO
  1617.     DW    ADO
  1618. ARSLW5    DW    DDUP
  1619.     DW    TSCALC
  1620.     DW    ZBRAN
  1621.     DW    ARSLW6-$
  1622.     DW    SECRD
  1623.     DW    BRAN
  1624.     DW    ARSLW7-$
  1625. ARSLW6    DW    SECWT
  1626. ARSLW7    DW    ONEP
  1627.     DW    LIT
  1628.     DW    404H
  1629.     DW    LIT
  1630.     DW    4
  1631.     DW    SUBB
  1632.     DW    SPBLK
  1633.     DW    SLASH
  1634.     DW    USEE
  1635.     DW    PSTOR
  1636.     DW    ALOOP
  1637.     DW    ARSLW5-$
  1638.     DW    DDROP
  1639.     DW    FROMR
  1640.     DW    USEE
  1641.     DW    STORE
  1642.     DW    EXIT
  1643. ;
  1644.     DB    89H    ;  <T&SCALC>
  1645.     DB    '<T&SCALC'
  1646.     DB    '>'+80H
  1647.     DW    ARSLW-8
  1648. ATSCALC DW    DOCOL
  1649. ;    DW    SPT
  1650. ;    DW    SLMOD
  1651. ;    DW    TRACK
  1652. ;    DW    STORE
  1653. ;    DW    DEN
  1654. ;    DW    DRIVE
  1655. ;    DW    ATT
  1656. ;    DW    TWOST
  1657. ;    DW    PLUS
  1658. ;    DW    ATT
  1659. ;    DW    ONE
  1660. ;    DW    EQUAL
  1661. ;    DW    ZBRAN
  1662. ;    DW    ATSCAL2-$
  1663. ;    DW    LIT
  1664. ;    DW    08H
  1665. ;    DW    SLMOD
  1666. ;    DW    DRIVE
  1667. ;    DW    ATT
  1668. ;    DW    LIT
  1669. ;    DW    0FH
  1670. ;    DW    ANDD
  1671. ;    DW    SWAP
  1672. ;    DW    ZBRAN
  1673. ;    DW    ATSCAL1-$
  1674. ;    DW    LIT
  1675. ;    DW    100H
  1676. ;    DW    PLUS
  1677. ;ATSCAL1 DW    DRIVE
  1678. ;    DW    STORE
  1679. ;ATSCAL2 DW    ONEP
  1680.     DW    DENSTY            ; 1.0405.03
  1681.     DW    ATT            ; 1.0405.03
  1682.     DW    ONE            ; 1.0405.03
  1683.     DW    EQUAL            ; 1.0405.03
  1684.     DW    ZBRAN            ; 1.0405.03
  1685.     DW    ATSCAL2-$        ; 1.0405.03
  1686.     DW    SPT            ; 1.0405.03
  1687.     DW    TWOST            ; 1.0405.03
  1688.     DW    SLMOD            ; 1.0405.03
  1689.     DW    SWAP            ; 1.0405.03
  1690.     DW    SPT            ; 1.0405.03
  1691.     DW    SLMOD            ; 1.0405.03
  1692.     DW    ZBRAN            ; 1.0405.03
  1693.     DW    ATSCAL1-$        ; 1.0405.03
  1694.     DW    LIT            ; 1.0405.03
  1695.     DW    140H        ; 320     1.0405.03
  1696.     DW    PLUS            ; 1.0405.03
  1697. ATSCAL1    DW    SWAP            ; 1.0405.03
  1698.     DW    SPT            ; 1.0405.03
  1699.     DW    STAR            ; 1.0405.03
  1700.     DW    PLUS            ; 1.0405.03
  1701. ATSCAL2    DW    SEC
  1702.     DW    STORE
  1703.     DW    EXIT
  1704. ;
  1705.     DB    8EH    ;  <VOCABULARY79>
  1706.     DB    '<VOCABULARY79'
  1707.     DB    '>'+80H
  1708.     DW    ATSCALC-0CH
  1709. AV79    DW    DOCOL
  1710.     DW    CREATE
  1711.     DW    LIT
  1712.     DW    0A081H
  1713.     DW    COMMA
  1714.     DW    LIT
  1715.     DW    FORTH+2
  1716.     DW    COMMA
  1717.     DW    HERE
  1718.     DW    VOCL
  1719.     DW    ATT
  1720.     DW    COMMA
  1721.     DW    VOCL
  1722.     DW    STORE
  1723.     DW    ASCODE
  1724. DOVOC    DB    0E8H
  1725.     DW    DODOES-$-2
  1726.     DW    TWOP
  1727.     DW    CONT
  1728.     DW    STORE
  1729.     DW    EXIT
  1730. ;
  1731.     DB    8FH    ;  <VOCABULARYFIG>
  1732.     DB    '<VOCABULARYFIG'
  1733.     DB    '>'+80H
  1734.     DW    AV79-11H
  1735. AVFIG    DW    DOCOL
  1736.     DW    CREATE
  1737.     DW    LIT
  1738.     DW    0A081H
  1739.     DW    COMMA
  1740.     DW    CURR
  1741.     DW    ATT
  1742.     DW    CFA
  1743.     DW    COMMA
  1744.     DW    HERE
  1745.     DW    VOCL
  1746.     DW    ATT
  1747.     DW    COMMA
  1748.     DW    VOCL
  1749.     DW    STORE
  1750.     DW    ASCODE
  1751.     DB    0E8H
  1752.     DW    DODOES-$-2
  1753.     DW    TWOP
  1754.     DW    CONT
  1755.     DW    STORE
  1756.     DW    EXIT
  1757. ;
  1758.     DB    86H    ;  <WORD>
  1759.     DB    '<WORD'
  1760.     DB    '>'+80H
  1761.     DW    AVFIG-12H
  1762. AWORD    DW    DOCOL
  1763.     DW    TSTREAM
  1764.     DW    SWAP
  1765.     DW    ENCL
  1766.     DW    DDUP
  1767.     DW    GREAT
  1768.     DW    ZBRAN
  1769.     DW    OFFSET AWORD1-$
  1770.     DW    DDROP
  1771.     DW    DDROP
  1772.     DW    ZERO
  1773.     DW    HERE
  1774.     DW    STORE
  1775.     DW    BRAN
  1776.     DW    OFFSET AWORD2-$
  1777. AWORD1    DW    TOIN
  1778.     DW    PSTOR
  1779.     DW    OVER
  1780.     DW    SUBB
  1781.     DW    DUPP
  1782.     DW    TOR
  1783.     DW    HERE
  1784.     DW    CSTOR
  1785.     DW    PLUS
  1786.     DW    HERE
  1787.     DW    ONEP
  1788.     DW    FROMR
  1789.     DW    DUPP
  1790.     DW    LIT
  1791.     DW    0FFH
  1792.     DW    GREAT
  1793.     DW    AABORTQ
  1794.     DB    0BH
  1795.     DB    'INPUT > 255'
  1796.     DW    ONEP
  1797.     DW    CMOVE
  1798. AWORD2    DW    HERE
  1799.     DW    EXIT
  1800. ;
  1801.     DB    81H        ;  =
  1802.     DB    '='+80H
  1803.     DW    AWORD-9
  1804. EQUAL    DW    DOCOL
  1805.     DW    SUBB
  1806.     DW    NOTT
  1807.     DW    EXIT
  1808. ;
  1809.     DB    81H        ;  >
  1810.     DB    '>'+80H
  1811.     DW    EQUAL-4
  1812. GREAT    DW    DOCOL
  1813.     DW    SWAP
  1814.     DW    LESS
  1815.     DW    EXIT
  1816. ;
  1817.     DB    83H        ;  >IN
  1818.     DB    '>I'
  1819.     DB    'N'+80H
  1820.     DW    GREAT-4
  1821. TOIN    DW    DOUSE
  1822.     DW    36H
  1823. ;
  1824.     DB    82H        ;  >R
  1825.     DB    '>'
  1826.     DB    'R'+80H
  1827.     DW    TOIN-6
  1828. TOR    DW    $+2
  1829.     POP    BX
  1830.     DEC    BP
  1831.     DEC    BP
  1832.     MOV    [BP],BX
  1833.     JMP    NEXT
  1834. ;
  1835.     DB    81H        ;  ?
  1836.     DB    '?'+80H
  1837.     DW    TOR-5
  1838. QUES    DW    DOCOL
  1839.     DW    ATT
  1840.     DW    DOT
  1841.     DW    EXIT
  1842. ;
  1843.     DB    85H        ;  ?COMP
  1844.     DB    '?COM'
  1845.     DB    'P'+80H
  1846.     DW    QUES-4
  1847. QCOMP    DW    DOCOL
  1848.     DW    STATE
  1849.     DW    ATT
  1850.     DW    NOTT
  1851.     DW    AABORTQ
  1852.     DB    0CH
  1853.     DB    'COMPILE ONLY'
  1854.     DW    EXIT
  1855. ;
  1856.     DB    8AH        ;  ?CONFIGURE
  1857.     DB    '?CONFIGUR'
  1858.     DB    'E'+80H
  1859.     DW    QCOMP-8
  1860. QCONF    DW    DOCOL
  1861.     DW    CR
  1862.     DW    CR
  1863.     DW    MAXDRV
  1864.     DW    DOT
  1865.     DW    ADOTQ
  1866.     DB    16H
  1867.     DB    'DRIVES WITH DENSITIES:'
  1868.     DW    MAXDRV
  1869.     DW    ZERO
  1870.     DW    ADO
  1871. QCONF1    DW    IDO
  1872.     DW    DRDEN
  1873.     DW    TWO
  1874.     DW    SPACS
  1875.     DW    DOT
  1876.     DW    ALOOP
  1877.     DW    QCONF1-$
  1878.     DW    CR
  1879.     DW    CR
  1880.     DW    ADOTQ
  1881.     DB    0CH
  1882.     DB    'DENSITY CODE'
  1883.     DW    CR
  1884.     DW    ADOTQ
  1885.     DB    0AH
  1886.     DB    '0 - 5-SSDD'
  1887.     DW    CR
  1888.     DW    ADOTQ
  1889.     DB    0AH
  1890.     DB    '1 - 5-DSDD'
  1891.     DW    CR
  1892.     DW    ADOTQ
  1893.     DB    0AH
  1894.     DB    '2 - 8-DSSD'
  1895.     DW    CR
  1896.     DW    ADOTQ
  1897.     DB    0AH
  1898.     DB    '3 - 8-SSDD'
  1899.     DW    CR
  1900.     DW    ADOTQ
  1901.     DB    0AH
  1902.     DB    '4 - 8-DSDD'
  1903.     DW    CR
  1904.     DW    ADOTQ
  1905.     DB    0BH
  1906.     DB    '5 - 8-SSEXT'
  1907.     DW    CR
  1908.     DW    ADOTQ
  1909.     DB    0BH
  1910.     DB    '6 - 8-DSEXT'
  1911.     DW    CR
  1912.     DW    EXIT
  1913. ;
  1914.     DB    84H        ;  ?CSP
  1915.     DB    '?CS'
  1916.     DB    'P'+80H
  1917.     DW    QCONF-0DH
  1918. QCSP    DW    DOCOL
  1919.     DW    SPAT
  1920.     DW    CSP
  1921.     DW    ATT
  1922.     DW    SUBB
  1923.     DW    AABORTQ
  1924.     DB    17H
  1925.     DB    'DEFINITION NOT FINISHED'
  1926.     DW    EXIT
  1927. ;
  1928.     DB    84H        ;  ?DUP
  1929.     DB    '?DU'
  1930.     DB    'P'+80H
  1931.     DW    QCSP-7
  1932. QDUP    DW    DOCOL
  1933.     DW    DUPP
  1934.     DW    ZBRAN
  1935.     DW    QDUP1-$
  1936.     DW    DUPP
  1937. QDUP1    DW    EXIT
  1938. ;
  1939.     DB    88H        ;  ?LOADING
  1940.     DB    '?LOADIN'
  1941.     DB    'G'+80H
  1942.     DW    QDUP-7
  1943. QLOAD    DW    DOCOL
  1944.     DW    BLK
  1945.     DW    ATT
  1946.     DW    NOTT
  1947.     DW    AABORTQ
  1948.     DB    0CH
  1949.     DB    'LOADING ONLY'
  1950.     DW    EXIT
  1951. ;
  1952.     DB    86H        ;  ?PAIRS
  1953.     DB    '?PAIR'
  1954.     DB    'S'+80H
  1955.     DW    QLOAD-0BH
  1956. QPAIR    DW    DOCOL
  1957.     DW    SUBB
  1958.     DW    AABORTQ
  1959.     DB    17H
  1960.     DB    'CONDITIONALS NOT PAIRED'
  1961.     DW    EXIT
  1962. ;
  1963.     DB    86H        ;  ?STACK
  1964.     DB    '?STAC'
  1965.     DB    'K'+80H
  1966.     DW    QPAIR-9
  1967. QSTAC    DW    DOCOL
  1968.     DW    SPAT
  1969.     DW    SZERO
  1970.     DW    SWAP
  1971.     DW    ULESS
  1972.     DW    AABORTQ
  1973.     DB    13H
  1974.     DB    'STACK OUT OF BOUNDS'
  1975.     DW    SPAT
  1976.     DW    HERE
  1977.     DW    LIT
  1978.     DW    80H
  1979.     DW    PLUS
  1980.     DW    ULESS
  1981.     DW    AABORTQ
  1982.     DB    0AH
  1983.     DB    'FULL STACK'
  1984.     DW    EXIT
  1985. ;
  1986.     DB    87H        ;  ?STREAM
  1987.     DB    '?STREA'
  1988.     DB    'M'+80H
  1989.     DW    QSTAC-9
  1990. QSTREAM DW    DOCOL
  1991.     DW    AABORTQ
  1992.     DB    16H
  1993.     DB    'INPUT STREAM EXHAUSTED'
  1994.     DW    EXIT
  1995. ;
  1996.     DB    89H        ;  ?TERMINAL
  1997.     DB    '?TERMINA'
  1998.     DB    'L'+80H
  1999.     DW    QSTREAM-0AH
  2000. QTERM    DW    DOCOL
  2001.     DW    TQTERM
  2002.     DW    ATT
  2003.     DW    EXEC
  2004.     DW    EXIT
  2005. ;
  2006.     DB    81H        ;  @
  2007.     DB    '@'+80H
  2008.     DW    QTERM-0CH
  2009. ATT    DW    $+2
  2010.     POP    BX
  2011.     MOV    AX,[BX]
  2012.     JMP    APUSH
  2013. ;
  2014.     DB    82H        ;  @L
  2015.     DB    '@'
  2016.     DB    'L'+80H
  2017.     DW    ATT-4
  2018. ATL    DW    $+2
  2019.     POP    BX
  2020.     POP    DS
  2021.     MOV    AX,[BX]
  2022.     MOV    BX,CS
  2023.     MOV    DS,BX
  2024.     JMP    APUSH
  2025. ;
  2026.     DB    85H        ;  ABORT
  2027.     DB    'ABOR'
  2028.     DB    'T'+80H
  2029.     DW    ATL-5
  2030. ABORT    DW    DOCOL
  2031.     DW    TABORT
  2032.     DW    ATT
  2033.     DW    EXEC
  2034.     DW    EXIT
  2035. ;
  2036.     DB    0C6H        ;  ABORT"
  2037.     DB    'ABORT'
  2038.     DB    '"'+80H
  2039.     DW    ABORT-8
  2040. ABORTQ    DW    DOCOL
  2041.     DW    QCOMP
  2042.     DW    COMP
  2043.     DW    AABORTQ
  2044.     DW    TSTREAM
  2045.     DW    CAT
  2046.     DW    LIT
  2047.     DW    22H
  2048.     DW    EQUAL
  2049.     DW    ZBRAN
  2050.     DW    ABORTQ1-$
  2051.     DW    ONE
  2052.     DW    TOIN
  2053.     DW    PSTOR
  2054.     DW    ZERO
  2055.     DW    CCOMM
  2056.     DW    BRAN
  2057.     DW    ABORTQ2-$
  2058. ABORTQ1 DW    LIT
  2059.     DW    22H
  2060.     DW    WORDD
  2061.     DW    DUPP
  2062.     DW    CAT
  2063.     DW    ONEP
  2064.     DW    SWAP
  2065.     DW    OVER
  2066.     DW    PLUS
  2067.     DW    CAT
  2068.     DW    LIT
  2069.     DW    22H
  2070.     DW    EQUAL
  2071.     DW    NOTT
  2072.     DW    QSTREAM
  2073.     DW    ALLOT
  2074. ABORTQ2 DW    EXIT
  2075. ;
  2076.     DB    83H        ;  ABS
  2077.     DB    'AB'
  2078.     DB    'S'+80H
  2079.     DW    ABORTQ-9
  2080. ABSS    DW    DOCOL
  2081.     DW    DUPP
  2082.     DW    PM
  2083.     DW    EXIT
  2084. ;
  2085.     DB    0C5H        ;  AGAIN
  2086.     DB    'AGAI'
  2087.     DB    'N'+80H
  2088.     DW    ABSS-6
  2089. AGAIN    DW    DOCOL
  2090.     DW    ONE
  2091.     DW    QPAIR
  2092.     DW    COMP
  2093.     DW    BRAN
  2094.     DW    HERE
  2095.     DW    SUBB
  2096.     DW    COMMA
  2097.     DW    EXIT
  2098. ;
  2099.     DB    85H        ;  ALLOT
  2100.     DB    'ALLO'
  2101.     DB    'T'+80H
  2102.     DW    AGAIN-8
  2103. ALLOT    DW    DOCOL
  2104.     DW    DP
  2105.     DW    PSTOR
  2106.     DW    EXIT
  2107. ;
  2108.     DB    83H        ;  AND
  2109.     DB    'AN'
  2110.     DB    'D'+80H
  2111.     DW    ALLOT-8
  2112. ANDD    DW    $+2
  2113.     POP    BX
  2114.     POP    AX
  2115.     AND    AX,BX
  2116.     JMP    APUSH
  2117. ;
  2118.     DB    85H        ;  APUSH
  2119.     DB    'APUS'
  2120.     DB    'H'+80H
  2121.     DW    ANDD-6
  2122. APUSHH    DW    DOCON
  2123.     DW    APUSH
  2124. ;
  2125.     DB    84H        ;  BASE
  2126.     DB    'BAS'
  2127.     DB    'E'+80H
  2128.     DW    APUSHH-8
  2129. BASE    DW    DOUSE
  2130.     DW    38H
  2131. ;
  2132.     DB    0C5H        ;  BEGIN
  2133.     DB    'BEGI'
  2134.     DB    'N'+80H
  2135.     DW    BASE-7
  2136. BEGIN    DW    DOCOL
  2137.     DW    QCOMP
  2138.     DW    HERE
  2139.     DW    ONE
  2140.     DW    EXIT
  2141. ;
  2142.     DB    82H        ;  BL
  2143.     DB    'B'
  2144.     DB    'L'+80H
  2145.     DW    BEGIN-8
  2146. BLL    DW    DOCON
  2147.     DW    20H
  2148. ;
  2149.     DB    85H        ;  BLANK
  2150.     DB    'BLAN'
  2151.     DB    'K'+80H
  2152.     DW    BLL-5
  2153. BLANK    DW    DOCOL
  2154.     DW    BLL
  2155.     DW    FILL
  2156.     DW    EXIT
  2157. ;
  2158.     DB    83H        ;  BLK
  2159.     DB    'BL'
  2160.     DB    'K'+80H
  2161.     DW    BLANK-8
  2162. BLK    DW    DOUSE
  2163.     DW    3AH
  2164. ;
  2165.     DB    87H        ;  BLK/DRV
  2166.     DB    'BLK/DR'
  2167.     DB    'V'+80H
  2168.     DW    BLK-6
  2169. BPDR    DW    DOVAR
  2170.     DW    0A0H
  2171.     DW    140H
  2172.     DW    1F4H
  2173.     DW    1F4H
  2174.     DW    3E8H
  2175.     DW    268H
  2176.     DW    4D0H
  2177. ;
  2178.     DB    85H        ;  BLOCK 
  2179.     DB    'BLOC'
  2180.     DB    'K'+80H
  2181.     DW    BPDR-0AH
  2182. BLOCK    DW    DOCOL
  2183.     DW    TBLOCK
  2184.     DW    ATT
  2185.     DW    EXEC
  2186.     DW    EXIT
  2187. ;
  2188.     DB    85H        ;  BPDRV
  2189.     DB    'BPDR'
  2190.     DB    'V'+80H
  2191.     DW    BLOCK-8
  2192. BPDRV    DW    DOCOL
  2193.     DW    DENSTY
  2194.     DW    ATT
  2195.     DW    LIT
  2196.     DW    6H
  2197.     DW    MIN
  2198.     DW    TWOST
  2199.     DW    BPDR
  2200.     DW    PLUS
  2201.     DW    ATT
  2202.     DW    EXIT
  2203. ;
  2204.     DB    86H        ;  BRANCH
  2205.     DB    'BRANC'
  2206.     DB    'H'+80H
  2207.     DW    BPDRV-8
  2208. BRAN    DW    $+2
  2209. BRAN1:    ADD    SI,[SI]
  2210.     JMP    NEXT
  2211. ;
  2212.     DB    86H        ;  BUFFER
  2213.     DB    'BUFFE'
  2214.     DB    'R'+80H
  2215.     DW    BRAN-9
  2216. BUFFE    DW    DOCOL
  2217.     DW    USEE
  2218.     DW    ATT
  2219.     DW    PREV
  2220.     DW    ATT
  2221.     DW    EQUAL
  2222.     DW    ZBRAN
  2223.     DW    BUFF1-$
  2224.     DW    USEE
  2225.     DW    ATT
  2226.     DW    PBUF
  2227.     DW    DROP
  2228.     DW    USEE
  2229.     DW    STORE
  2230. BUFF1    DW    USEE
  2231.     DW    ATT
  2232.     DW    DUPP
  2233.     DW    TOR
  2234. BUFF2    DW    PBUF
  2235.     DW    ZBRAN
  2236.     DW    OFFSET BUFF2-$
  2237.     DW    USEE
  2238.     DW    STORE
  2239.     DW    RAT
  2240.     DW    ATT
  2241.     DW    ZLESS
  2242.     DW    ZBRAN
  2243.     DW    OFFSET BUFF3-$
  2244.     DW    RAT
  2245.     DW    TWOP
  2246.     DW    RAT
  2247.     DW    ATT     
  2248.     DW    LIT
  2249.     DW    7FFFH
  2250.     DW    ANDD
  2251.     DW    ZERO
  2252.     DW    RSLW
  2253. BUFF3    DW    RAT
  2254.     DW    STORE
  2255.     DW    RAT
  2256.     DW    PREV
  2257.     DW    STORE
  2258.     DW    FROMR
  2259.     DW    TWOP
  2260.     DW    EXIT
  2261. ;
  2262.     DB    83H        ;  BYE
  2263.     DB    'BY'
  2264.     DB    'E'+80H
  2265.     DW    BUFFE-9
  2266. BYE    DW    DOCOL
  2267.     DW    FREEZE
  2268.     DW    ZERO
  2269.     DW    ZERO
  2270.     DW    SYSCALL
  2271.     DW    EXIT
  2272. ;
  2273.     DB    82H        ;  CSTORE
  2274.     DB    'C'
  2275.     DB    '!'+80H
  2276.     DW    BYE-6
  2277. CSTOR    DW    $+2
  2278.     POP    BX
  2279.     POP    AX
  2280.     MOV    [BX],AL
  2281.     JMP    NEXT
  2282. ;
  2283.     DB    83H        ;  CSTOREL
  2284.     DB    'C!'
  2285.     DB    'L'+80H
  2286.     DW    CSTOR-5
  2287. CSTORL    DW    $+2
  2288.     POP    BX
  2289.     POP    DS
  2290.     POP    AX
  2291.     MOV    [BX],AL
  2292.     MOV    BX,CS
  2293.     MOV    DS,BX
  2294.     JMP    NEXT
  2295. ;
  2296.     DB    82H        ;  C,
  2297.     DB    'C'
  2298.     DB    ','+80H
  2299.     DW    CSTORL-6
  2300. CCOMM    DW    DOCOL
  2301.     DW    HERE
  2302.     DW    CSTOR
  2303.     DW    ONE
  2304.     DW    ALLOT
  2305.     DW    EXIT
  2306. ;
  2307.     DB    83H        ;  C/L
  2308.     DB    'C/'
  2309.     DB    'L'+80H
  2310.     DW    CCOMM-5
  2311. CSLL    DW    DOCON
  2312.     DW    40H
  2313. ;
  2314.     DB    82H        ;  C@
  2315.     DB    'C'
  2316.     DB    '@'+80H
  2317.     DW    CSLL-6
  2318. CAT    DW    $+2
  2319.     POP    BX
  2320.     MOV    AL,[BX]
  2321.     SUB    AH,AH
  2322.     JMP    APUSH
  2323. ;
  2324.     DB    83H        ;  C@L
  2325.     DB    'C@'
  2326.     DB    'L'+80H
  2327.     DW    CAT-5
  2328. CATL    DW    $+2
  2329.     POP    BX
  2330.     POP    DS
  2331.     MOV    AL,[BX]
  2332.     SUB    AH,AH
  2333.     MOV    BX,CS
  2334.     MOV    DS,BX
  2335.     JMP    APUSH
  2336. ;
  2337.     DB    83H        ;  CFA
  2338.     DB    'CF'
  2339.     DB    'A'+80H
  2340.     DW    CATL-6
  2341. CFA    DW    DOCOL
  2342.     DW    TWOM
  2343.     DW    EXIT
  2344. ;
  2345.     DB    86H        ;  CHANGE
  2346.     DB    'CHANG'
  2347.     DB    'E'+80H
  2348.     DW    CFA-6
  2349. CHANGE    DW    DOCOL
  2350.     DW    FREEZE
  2351.     DW    LIMIT
  2352.     DW    LIT
  2353.     DW    404H
  2354.     DW    NOBUF
  2355.     DW    STAR
  2356.     DW    SUBB
  2357.     DW    DUPP
  2358.     DW    LIT
  2359.     DW    FIRST+2
  2360.     DW    STORE
  2361.     DW    LIT
  2362.     DW    US
  2363.     DW    SUBB
  2364.     DW    DUPP
  2365.     DW    LIT
  2366.     DW    RTS
  2367.     DW    SUBB
  2368.     DW    DUPP
  2369.     DW    LIT
  2370.     DW    INITUSER
  2371.     DW    STORE
  2372.     DW    LIT
  2373.     DW    INITUSER+4
  2374.     DW    STORE
  2375.     DW    DUPP
  2376.     DW    LIT
  2377.     DW    INITUSER+2
  2378.     DW    STORE
  2379.     DW    LIT
  2380.     DW    UP
  2381.     DW    OVER
  2382.     DW    LIT
  2383.     DW    RPP
  2384.     DW    LIT
  2385.     DW    ORIG
  2386.     DW    HERE
  2387.     DW    STORE
  2388.     DW    HERE
  2389.     DW    ROT
  2390.     DW    ROT
  2391.     DW    STORE
  2392.     DW    ROT
  2393.     DW    ROT
  2394.     DW    STORE
  2395.     DW    EXEC
  2396.     DW    EXIT
  2397. ;
  2398.     DB    85H        ;  CLEAR
  2399.     DB    'CLEA'
  2400.     DB    'R'+80H
  2401.     DW    CHANGE-9
  2402. CLEAR    DW    DOCOL
  2403.     DW    OFSET
  2404.     DW    ATT
  2405.     DW    PLUS
  2406.     DW    BUFFE
  2407.     DW    LIT
  2408.     DW    400H
  2409.     DW    BLL
  2410.     DW    FILL    
  2411.     DW    UPDAT
  2412.     DW    EXIT
  2413. ;
  2414.     DB    85H        ;  CMOVE
  2415.     DB    'CMOV'
  2416.     DB    'E'+80H
  2417.     DW    CLEAR-8
  2418. CMOVE    DW    DOCOL
  2419.     DW    DUPP
  2420.     DW    ONE
  2421.     DW    LESS
  2422.     DW    ZBRAN
  2423.     DW    CMOVE1-$
  2424.     DW    DDROP
  2425.     DW    DROP
  2426.     DW    BRAN
  2427.     DW    CMOVE2-$
  2428. CMOVE1    DW    ACMOVE
  2429. CMOVE2    DW    EXIT
  2430. ;
  2431.     DB    84H        ;  COLD
  2432.     DB    'COL'
  2433.     DB    'D'+80H
  2434.     DW    CMOVE-8
  2435. COLD    DW    DOCOL
  2436.     DW    MTBUF
  2437.     DW    LIT
  2438.     DW    INITUSER
  2439.     DW    LIT
  2440.     DW    UP
  2441.     DW    ATT
  2442.     DW    LIT
  2443.     DW    6
  2444.     DW    PLUS
  2445.     DW    LIT
  2446.     DW    30H
  2447.     DW    CMOVE
  2448.     DW    PAGEE
  2449.     DW    ADOTQ
  2450.     DB    1DH
  2451.     DB    'MVP-FORTH   VERSION 1.0405.03'
  2452.     DW    CR
  2453.     DW    ONE
  2454.     DW    DENSTY
  2455.     DW    STORE
  2456.     DW    FIRST
  2457.     DW    USEE
  2458.     DW    STORE
  2459.     DW    FIRST
  2460.     DW    PREV
  2461.     DW    STORE
  2462.     DW    DR0
  2463.     DW    ZERO
  2464.     DW    EPRINT
  2465.     DW    STORE
  2466.     DW    LIT
  2467.     DW    INITFORTH
  2468.     DW    ATT
  2469.     DW    LIT
  2470.     DW    FORTH+2
  2471.     DW    TWOP
  2472.     DW    STORE
  2473.     DW    DEC
  2474. ;    DW    LIT
  2475. ;    DW    40H
  2476. ;    DW    LIT
  2477. ;    DW    40H
  2478. ;    DW    LIT
  2479. ;    DW    17H
  2480. ;    DW    STOREL
  2481.     DW    ABORT
  2482.     DW    EXIT
  2483. ;
  2484.     DB    87H        ;  COMPILE
  2485.     DB    'COMPIL'
  2486.     DB    'E'+80H
  2487.     DW    COLD-7
  2488. COMP    DW    DOCOL
  2489.     DW    QCOMP
  2490.     DW    FROMR
  2491.     DW    DUPP
  2492.     DW    TWOP
  2493.     DW    TOR
  2494.     DW    ATT
  2495.     DW    COMMA
  2496.     DW    EXIT
  2497. ;
  2498.     DB    89H        ;  CONFIGURE
  2499.     DB    'CONFIGUR'
  2500.     DB    'E'+80H
  2501.     DW    COMP-0AH
  2502. CONF    DW    DOCOL
  2503.     DW    QCONF
  2504.     DW    CR
  2505.     DW    ADOTQ
  2506.     DB    13H
  2507.     DB    'NUMBER OF DRIVES ? '
  2508.     DW    KEY
  2509.     DW    LIT
  2510.     DW    31H
  2511.     DW    SUBB
  2512.     DW    DUPP
  2513.     DW    LIT
  2514.     DW    5
  2515.     DW    ULESS    
  2516.     DW    NOTT
  2517.     DW    AABORTQ
  2518.     DB    0FH
  2519.     DB    'TOO MANY DRIVES'
  2520.     DW    DUPP
  2521.     DW    LIT
  2522.     DW    31H
  2523.     DW    PLUS
  2524.     DW    EMIT
  2525.     DW    ONEP
  2526.     DW    LIT
  2527.     DW    MAXDRV+2
  2528.     DW    STORE
  2529.     DW    MAXDRV 
  2530.     DW    ZERO
  2531.     DW    ADO
  2532. CONF1    DW    CR
  2533.     DW    ADOTQ
  2534.     DB    6
  2535.     DB    'DRIVE '
  2536.     DW    IDO
  2537.     DW    DOT
  2538.     DW    ADOTQ
  2539.     DB    2
  2540.     DB    '? '
  2541.     DW    KEY
  2542.     DW    LIT
  2543.     DW    30H
  2544.     DW    SUBB
  2545.     DW    DUPP
  2546.     DW    LIT
  2547.     DW    7
  2548.     DW    ULESS
  2549.     DW    NOTT
  2550.     DW    AABORTQ
  2551.     DB    0CH
  2552.     DB    'OUT OF RANGE'
  2553.     DW    DUPP
  2554.     DW    LIT
  2555.     DW    30H
  2556.     DW    PLUS
  2557.     DW    EMIT
  2558.     DW    IDO
  2559.     DW    TWOST
  2560.     DW    DEN
  2561.     DW    PLUS
  2562.     DW    STORE
  2563.     DW    ALOOP
  2564.     DW    CONF1-$ 
  2565.     DW    DR0
  2566.     DW    CR
  2567.     DW    CR
  2568.     DW    ADOTQ
  2569.     DB    0DH
  2570.     DB    'DR0 SELECTED '
  2571.     DW    CR
  2572.     DW    EXIT
  2573. ;
  2574.     DB    88H        ; CONSTANT
  2575.     DB    'CONSTAN'
  2576.     DB    'T'+80H
  2577.     DW    CONF-0CH
  2578. CON    DW    DOCOL
  2579.     DW    CREATE
  2580.     DW    COMMA
  2581.     DW    ASCODE
  2582. DOCON:    INC    DX
  2583.     MOV    BX,DX
  2584.     MOV    AX,[BX]
  2585.     JMP    APUSH
  2586. ;
  2587.     DB    87H        ;  CONTEXT
  2588.     DB    'CONTEX'
  2589.     DB    'T'+80H
  2590.     DW    CON-0BH
  2591. CONT    DW    DOUSE
  2592.     DW    3CH
  2593. ;
  2594.     DB    87H        ;  CONVERT
  2595.     DB    'CONVER'
  2596.     DB    'T'+80H
  2597.     DW    CONT-0AH
  2598. CONV    DW    DOCOL
  2599. CONV1    DW    ONEP
  2600.     DW    DUPP
  2601.     DW    TOR
  2602.     DW    CAT
  2603.     DW    BASE
  2604.     DW    ATT
  2605.     DW    DIGIT
  2606.     DW    ZBRAN
  2607.     DW    OFFSET CONV3-$
  2608.     DW    SWAP
  2609.     DW    BASE
  2610.     DW    ATT
  2611.     DW    USTAR
  2612.     DW    DROP
  2613.     DW    ROT
  2614.     DW    BASE
  2615.     DW    ATT
  2616.     DW    USTAR
  2617.     DW    DPLUS
  2618.     DW    DPL
  2619.     DW    ATT
  2620.     DW    ONEP
  2621.     DW    ZBRAN
  2622.     DW    OFFSET CONV2-$
  2623.     DW    ONE
  2624.     DW    DPL
  2625.     DW    PSTOR
  2626. CONV2    DW    FROMR
  2627.     DW    BRAN
  2628.     DW    OFFSET CONV1-$
  2629. CONV3    DW    FROMR
  2630.     DW    EXIT
  2631. ;
  2632.     DB    85H        ;  COUNT
  2633.     DB    'COUN'
  2634.     DB    'T'+80H
  2635.     DW    CONV-0AH
  2636. COUNT    DW    DOCOL
  2637.     DW    DUPP
  2638.     DW    ONEP
  2639.     DW    SWAP
  2640.     DW    CAT
  2641.     DW    EXIT
  2642. ;
  2643.     DB    82H        ;  CR
  2644.     DB    'C'
  2645.     DB    'R'+80H
  2646.     DW    COUNT-8
  2647. CR    DW    DOCOL
  2648.     DW    TCR
  2649.     DW    ATT
  2650.     DW    EXEC
  2651.     DW    EXIT
  2652. ;
  2653.     DB    86H        ;  CREATE
  2654.     DB    'CREAT'
  2655.     DB    'E'+80H
  2656.     DW    CR-5
  2657. CREATE    DW    DOCOL
  2658.     DW    BLL
  2659.     DW    WORDD
  2660.     DW    DUPP
  2661.     DW    DUPP
  2662.     DW    ONEP
  2663.     DW    CAT
  2664.     DW    ZERO
  2665.     DW    EQUAL
  2666.     DW    AABORTQ
  2667.     DB    1AH
  2668.     DB    'ATTEMPTED TO REDEFINE NULL'
  2669.     DW    DUPP
  2670.     DW    CONT
  2671.     DW    ATT
  2672.     DW    ATT
  2673.     DW    AFIND
  2674.     DW    ZBRAN
  2675.     DW    OFFSET CREA1-$
  2676.     DW    DDROP
  2677.     DW    WARN
  2678.     DW    ATT
  2679.     DW    ZBRAN
  2680.     DW    OFFSET CREA1-$
  2681.     DW    DUPP
  2682.     DW    COUNT
  2683.     DW    TYPEE
  2684.     DW    SPACE
  2685.     DW    ADOTQ
  2686.     DB    0DH
  2687.     DB    'ISN',27H,'T UNIQUE '
  2688. CREA1    DW    CAT
  2689.     DW    WIDTHH
  2690.     DW    ATT
  2691.     DW    MIN
  2692.     DW    ONEP
  2693.     DW    ALLOT
  2694.     DW    DUPP
  2695.     DW    LIT
  2696.     DW    80H
  2697.     DW    TOGGL
  2698.     DW    HERE
  2699.     DW    ONEM
  2700.     DW    LIT
  2701.     DW    80H
  2702.     DW    TOGGL
  2703.     DW    LATES
  2704.     DW    COMMA
  2705.     DW    TWO
  2706.     DW    ALLOT
  2707.     DW    CURR
  2708.     DW    ATT
  2709.     DW    STORE
  2710.     DW    ASCODE
  2711. DOVAR:    INC    DX
  2712.     PUSH    DX
  2713.     JMP    NEXT 
  2714. ;
  2715.     DB    83H        ;  CSP
  2716.     DB    'CS'
  2717.     DB    'P'+80H
  2718.     DW    CREATE-9
  2719. CSP    DW    DOUSE
  2720.     DW    3EH
  2721. ;
  2722.     DB    87H        ; CURRENT
  2723.     DB    'CURREN'
  2724.     DB    'T'+80H
  2725.     DW    CSP-6
  2726. CURR    DW    DOUSE
  2727.     DW    40H
  2728. ;
  2729.     DB    82H        ;  DSTORE
  2730.     DB    'D'
  2731.     DB    '!'+80H
  2732.     DW    CURR-0AH
  2733. DSTOR    DW    $+2
  2734.     POP    BX
  2735.     POP    AX
  2736.     MOV    [BX],AX
  2737.     POP    AX
  2738.     MOV    2[BX],AX
  2739.     JMP    NEXT
  2740. ;
  2741.     DB    82H          ;  D+
  2742.     DB    'D'
  2743.     DB    '+'+80H
  2744.     DW    DSTOR-5
  2745. DPLUS    DW    $+2
  2746.     POP    AX
  2747.     POP    DX
  2748.     POP    BX
  2749.     POP    CX
  2750.     ADD    DX,CX
  2751.     ADC    AX,BX
  2752.     JMP    DPUSH
  2753. ;
  2754.     DB    83H        ;  D+-
  2755.     DB    'D+'
  2756.     DB    '-'+80H
  2757.     DW    DPLUS-5
  2758. DPM    DW    DOCOL
  2759.     DW    ZLESS
  2760.     DW    ZBRAN
  2761.     DW    OFFSET DPM1-$
  2762.     DW    DNEG
  2763. DPM1    DW    EXIT
  2764. ;
  2765.     DB    82H        ;  D.
  2766.     DB    'D'
  2767.     DB    '.'+80H
  2768.     DW    DPM-6
  2769. DDOT    DW    DOCOL
  2770.     DW    ZERO
  2771.     DW    DDOTR
  2772.     DW    SPACE
  2773.     DW    EXIT
  2774. ;
  2775.     DB    83H        ;  D.R
  2776.     DB    'D.'
  2777.     DB    'R'+80H
  2778.     DW    DDOT-5
  2779. DDOTR    DW    DOCOL
  2780.     DW    DEPTH
  2781.     DW    LIT
  2782.     DW    3
  2783.     DW    LESS
  2784.     DW    AABORTQ
  2785.     DB    0BH
  2786.     DB    'EMPTY STACK'
  2787.     DW    TOR
  2788.     DW    SWAP
  2789.     DW    OVER
  2790.     DW    DUPP
  2791.     DW    DPM
  2792.     DW    BDIGS
  2793.     DW    DIGS
  2794.     DW    ROT
  2795.     DW    SIGN
  2796.     DW    EDIGS
  2797.     DW    FROMR
  2798.     DW    OVER
  2799.     DW    SUBB
  2800.     DW    SPACS
  2801.     DW    TYPEE
  2802.     DW    EXIT
  2803. ;
  2804.     DB    82H        ;  D<
  2805.     DB    'D'
  2806.     DB    '<'+80H
  2807.     DW    DDOTR-6
  2808. DLESS    DW    DOCOL
  2809.     DW    ROT
  2810.     DW    DDUP
  2811.     DW    EQUAL
  2812.     DW    ZBRAN
  2813.     DW    DLESS1-$
  2814.     DW    ROT
  2815.     DW    ROT
  2816.     DW    DNEG
  2817.     DW    DPLUS
  2818.     DW    ZLESS
  2819.     DW    BRAN
  2820.     DW    DLESS2-$
  2821. DLESS1    DW    SWAP
  2822.     DW    LESS
  2823.     DW    SWAP
  2824.     DW    DROP
  2825. DLESS2    DW    SWAP
  2826.     DW    DROP
  2827.     DW    EXIT
  2828. ;
  2829.     DB    84H        ;  DABS
  2830.     DB    'DAB'
  2831.     DB    'S'+80H
  2832.     DW    DLESS-5
  2833. DABS    DW    DOCOL
  2834.     DW    DUPP
  2835.     DW    DPM
  2836.     DW    EXIT
  2837. ;
  2838.     DB    85H        ;  DDROP
  2839.     DB    'DDRO'
  2840.     DB    'P'+80H
  2841.     DW    DABS-7
  2842. DDROP    DW    $+2
  2843.     POP    BX
  2844.     POP    BX
  2845.     JMP    NEXT
  2846. ;
  2847.     DB    84H        ;  DDUP
  2848.     DB    'DDU'
  2849.     DB    'P'+80H
  2850.     DW    DDROP-8
  2851. DDUP    DW    $+2
  2852.     POP    AX
  2853.     POP    DX
  2854.     PUSH    DX
  2855.     PUSH    AX
  2856.     JMP    DPUSH
  2857. ;
  2858.     DB    87H        ;  DECIMAL
  2859.     DB    'DECIMA'
  2860.     DB    'L'+80H
  2861.     DW    DDUP-7
  2862. DEC    DW    DOCOL
  2863.     DW    LIT
  2864.     DW    0AH
  2865.     DW    BASE
  2866.     DW    STORE
  2867.     DW    EXIT
  2868. ;
  2869.     DB    8BH        ;  DEFINITIONS
  2870.     DB    'DEFINITION'
  2871.     DB    'S'+80H
  2872.     DW    DEC-0AH
  2873. DEFIN    DW    DOCOL
  2874.     DW    CONT
  2875.     DW    ATT
  2876.     DW    CURR
  2877.     DW    STORE
  2878.     DW    EXIT
  2879. ;
  2880.     DB    83H        ;  DEN
  2881.     DB    'DE'    
  2882.     DB    'N'+80H
  2883.     DW    DEFIN-0EH
  2884. DEN    DW    DOVAR
  2885.     DW    0
  2886.     DW    0
  2887.     DW    1
  2888.     DW    1
  2889.     DW    1
  2890. ;
  2891.     DB    87H        ;  DENSITY
  2892.     DB    'DENSIT'
  2893.     DB    'Y'+80H
  2894.     DW    DEN-6
  2895. DENSTY    DW    DOVAR
  2896.     DW    0
  2897. ;
  2898.     DB    85H        ;  DEPTH
  2899.     DB    'DEPT'
  2900.     DB    'H'+80H
  2901.     DW    DENSTY-0AH
  2902. DEPTH    DW    DOCOL
  2903.     DW    SPAT
  2904.     DW    SZERO
  2905.     DW    SWAP
  2906.     DW    SUBB
  2907.     DW    TWOSL
  2908.     DW    EXIT
  2909. ;
  2910.     DB    85H        ;  DIGIT
  2911.     DB    'DIGI'
  2912.     DB    'T'+80H
  2913.     DW    DEPTH-8
  2914. DIGIT    DW    $+2
  2915.     POP    DX
  2916.     POP    AX
  2917.     SUB    AL,'0'
  2918.     JB    DIGI2
  2919.     CMP    AL,9H
  2920.     JBE    DIGI1
  2921.     SUB    AL,7H
  2922.     CMP    AL,0AH
  2923.     JB    DIGI2
  2924. DIGI1:    CMP    AL,DL
  2925.     JAE    DIGI2
  2926.     SUB    DX,DX
  2927.     MOV    DL,AL
  2928.     MOV    AL,01H
  2929.     JMP    DPUSH
  2930. DIGI2:    SUB    AX,AX
  2931.     JMP    APUSH
  2932. ;
  2933.     DB    8AH        ;  DISK-ERROR
  2934.     DB    'DISK-ERRO'
  2935.     DB    'R'+80H
  2936.     DW    DIGIT-8
  2937. DSKERR    DW    DOVAR
  2938.     DW    0
  2939. ;
  2940.     DB    0C8H        ;  DLITERAL
  2941.     DB    'DLITERA'
  2942.     DB    'L'+80H
  2943.     DW    DSKERR-0DH
  2944. DLITE    DW    DOCOL
  2945.     DW    STATE
  2946.     DW    ATT
  2947.     DW    ZBRAN
  2948.     DW    OFFSET DLITE1-$
  2949.     DW    SWAP
  2950.     DW    LITER
  2951.     DW    LITER
  2952. DLITE1    DW    EXIT
  2953. ;
  2954.     DB    87H        ;  DNEGATE
  2955.     DB    'DNEGAT'
  2956.     DB    'E'+80H
  2957.     DW    DLITE-0BH
  2958. DNEG    DW    $+2
  2959.     POP    BX
  2960.     POP    CX
  2961.     SUB    AX,AX
  2962.     MOV    DX,AX
  2963.     SUB    DX,CX
  2964.     SBB    AX,BX
  2965.     JMP    DPUSH
  2966. ;
  2967.     DB    0C2H        ;  DO
  2968.     DB    'D'
  2969.     DB    'O'+80H
  2970.     DW    DNEG-0AH
  2971. DO    DW    DOCOL
  2972.     DW    COMP
  2973.     DW    ADO
  2974.     DW    HERE
  2975.     DW    LIT
  2976.     DW    3
  2977.     DW    EXIT
  2978. ;
  2979.     DB    0C5H        ;  DOES>
  2980.     DB    'DOES'
  2981.     DB    '>'+80H
  2982.     DW    DO-5
  2983. DOES    DW    DOCOL
  2984.     DW    QCSP
  2985.     DW    COMP
  2986.     DW    ASCODE
  2987.     DW    LIT
  2988.     DW    0E8H
  2989.     DW    CCOMM
  2990.     DW    LIT
  2991.     DW    DODOES
  2992.     DW    HERE
  2993.     DW    TWOP
  2994.     DW    SUBB
  2995.     DW    COMMA
  2996.     DW    EXIT
  2997. ;
  2998. DODOES: INC    DX
  2999.     DEC    BP
  3000.     DEC    BP
  3001.     MOV    [BP],SI
  3002.     POP    SI
  3003.     PUSH    DX
  3004.     JMP    NEXT
  3005. ;
  3006.     DB    82H        ;  DP
  3007.     DB    'D'
  3008.     DB    'P'+80H
  3009.     DW    DOES-8
  3010. DP    DW    DOUSE
  3011.     DW    12H
  3012. ;
  3013.     DB    83H        ;  DPL
  3014.     DB    'DP'
  3015.     DB    'L'+80H
  3016.     DW    DP-5
  3017. DPL    DW    DOUSE
  3018.     DW    42H
  3019. ;
  3020.     DB    85H        ;  DPUSH
  3021.     DB    'DPUS'
  3022.     DB    'H'+80H
  3023.     DW    DPL-6
  3024. DPUS    DW    DOCON
  3025.     DW    DPUSH
  3026. ;
  3027.     DB    86H        ;  DR-DEN
  3028.     DB    'DR-DE'
  3029.     DB    'N'+80H
  3030.     DW    DPUS-8
  3031. DRDEN    DW    DOCOL
  3032.     DW    TWOST
  3033.     DW    DEN
  3034.     DW    PLUS
  3035.     DW    ATT
  3036.     DW    EXIT
  3037. ;
  3038.     DB    83H        ;  DR0
  3039.     DB    'DR'
  3040.     DB    '0'+80H
  3041.     DW    DRDEN-9
  3042. DR0    DW    DOCOL
  3043.     DW    ZERO
  3044.     DW    OFSET
  3045.     DW    STORE
  3046.     DW    EXIT
  3047. ;
  3048.     DB    83H        ;  DR1
  3049.     DB    'DR'
  3050.     DB    '1'+80H
  3051.     DW    DR0-6
  3052. DR1    DW    DOCOL
  3053.     DW    DR0
  3054.     DW    ZERO
  3055.     DW    SETDRX
  3056.     DW    EXIT
  3057. ;
  3058.     DB    83H        ; DR2
  3059.     DB    'DR'
  3060.     DB    '2'+80H
  3061.     DW    DR1-6
  3062. DR2    DW    DOCOL
  3063.     DW    DR1
  3064.     DW    ONE
  3065.     DW    SETDRX
  3066.     DW    EXIT
  3067. ;
  3068.     DB    83H        ;  DR3
  3069.     DB    'DR'
  3070.     DB    '3'+80H
  3071.     DW    DR2-6
  3072. DR3    DW    DOCOL
  3073.     DW    DR2
  3074.     DW    TWO
  3075.     DW    SETDRX
  3076.     DW    EXIT
  3077. ;
  3078.     DB    83H        ;  DR4
  3079.     DB    'DR'
  3080.     DB    '4'+80H
  3081.     DW    DR3-6
  3082. DR4    DW    DOCOL
  3083.     DW    DR3
  3084.     DW    LIT
  3085.     DW    3
  3086.     DW    SETDRX
  3087.     DW    EXIT
  3088. ;
  3089.     DB    85H        ;  DRIVE
  3090.     DB    'DRIV'
  3091.     DB    'E'+80H
  3092.     DW    DR4-6
  3093. DRIVE    DW    DOVAR
  3094.     DW    00
  3095. ;
  3096.     DB    84H        ;  DROP
  3097.     DB    'DRO'
  3098.     DB    'P'+80H
  3099.     DW    DRIVE-8
  3100. DROP    DW    $+2
  3101.     POP    AX
  3102.     JMP    NEXT 
  3103. ;
  3104.     DB    83H        ;  DUP
  3105.     DB    'DU'
  3106.     DB    'P'+80H
  3107.     DW    DROP-7
  3108. DUPP    DW    $+2
  3109.     POP    AX
  3110.     PUSH    AX
  3111.     JMP    APUSH
  3112. ;
  3113.     DB    0C4H        ;  ELSE
  3114.     DB    'ELS'
  3115.     DB    'E'+80H
  3116.     DW    DUPP-6
  3117. ELSEE    DW    DOCOL
  3118.     DW    TWO
  3119.     DW    QPAIR
  3120.     DW    COMP
  3121.     DW    BRAN
  3122.     DW    HERE
  3123.     DW    ZERO
  3124.     DW    COMMA
  3125.     DW    SWAP
  3126.     DW    TWO
  3127.     DW    THENN
  3128.     DW    TWO
  3129.     DW    EXIT
  3130. ;
  3131.     DB    84H        ;  EMIT
  3132.     DB    'EMI'
  3133.     DB    'T'+80H
  3134.     DW    ELSEE-7
  3135. EMIT    DW    DOCOL
  3136.     DW    TEMIT
  3137.     DW    ATT
  3138.     DW    EXEC
  3139.     DW    EXIT
  3140. ;
  3141.     DB    8DH        ;  EMPTY-BUFFERS
  3142.     DB    'EMPTY-BUFFER'
  3143.     DB    'S'+80H
  3144.     DW    EMIT-7
  3145. MTBUF    DW    DOCOL
  3146.     DW    FIRST
  3147.     DW    LIMIT
  3148.     DW    OVER
  3149.     DW    SUBB
  3150.     DW    ZERO
  3151.     DW    AFILL
  3152.     DW    NOBUF
  3153.     DW    ZERO
  3154.     DW    ADO
  3155. MTBUF1    DW    LIT
  3156.     DW    7FFFH
  3157.     DW    LIT
  3158.     DW    404H
  3159.     DW    IDO
  3160.     DW    STAR
  3161.     DW    FIRST
  3162.     DW    PLUS
  3163.     DW    STORE
  3164.     DW    ALOOP
  3165.     DW    OFFSET MTBUF1-$
  3166.     DW    EXIT
  3167. ;
  3168.     DB    87H        ;  ENCLOSE
  3169.     DB    'ENCLOS'
  3170.     DB    'E'+80H
  3171.     DW    MTBUF-10H
  3172. ENCL    DW    $+2
  3173.     POP    AX
  3174.     POP    BX
  3175.     PUSH    BX
  3176.     MOV    DX,0FFFFH
  3177.     DEC    BX
  3178. ENCL1:    INC    BX
  3179.     INC    DX
  3180.     CMP    AL,[BX]
  3181.     JZ    ENCL1
  3182.     PUSH    DX
  3183.     INC    BYTE PTR [BX]
  3184.     DEC    BYTE PTR [BX]
  3185.     JNZ    ENCL2
  3186.     INC    DX
  3187.     PUSH    DX
  3188.     DEC    DX
  3189.     PUSH    DX
  3190.     JMP    NEXT
  3191. ENCL2:    INC    BX
  3192.     INC    DX
  3193.     CMP    AL,[BX]
  3194.     JZ    ENCL3
  3195.     INC    BYTE PTR [BX]
  3196.     DEC    BYTE PTR [BX]
  3197.     JNZ    ENCL2
  3198.     PUSH    DX
  3199.     PUSH    DX
  3200.     JMP    NEXT
  3201. ENCL3:    PUSH    DX
  3202.     INC    DX
  3203.     PUSH    DX
  3204.     JMP    NEXT
  3205. ;
  3206.     DB    86H        ;  EPRINT
  3207.     DB    'EPRIN'
  3208.     DB    'T'+80H
  3209.     DW    ENCL-0AH
  3210. EPRINT    DW    DOVAR
  3211.     DW    0
  3212. ;
  3213.     DB    87H        ;  EXECUTE
  3214.     DB    'EXECUT'
  3215.     DB    'E'+80H
  3216.     DW    EPRINT-9
  3217. EXEC    DW    $+2
  3218.     POP    BX
  3219.     JMP    NEXT1
  3220. ;
  3221.     DB    84H        ;  EXIT
  3222.     DB    'EXI'
  3223.     DB    'T'+80H
  3224.     DW    EXEC-0AH
  3225. EXIT    DW    $+2
  3226.     MOV    SI,[BP]
  3227.     INC    BP
  3228.     INC    BP
  3229.     JMP    NEXT
  3230. ;
  3231.     DB    86H        ;  EXPECT
  3232.     DB    'EXPEC'
  3233.     DB    'T'+80H
  3234.     DW    EXIT-7
  3235. EXPEC    DW    DOCOL
  3236.     DW    TEXPECT
  3237.     DW    ATT
  3238.     DW    EXEC
  3239.     DW    EXIT
  3240. ;
  3241.     DB    85H        ;  FENCE
  3242.     DB    'FENC'
  3243.     DB    'E'+80H
  3244.     DW    EXPEC-9
  3245. FENCE    DW    DOUSE
  3246.     DW    10H
  3247. ;
  3248.     DB    84H        ;  FILL
  3249.     DB    'FIL'
  3250.     DB    'L'+80H
  3251.     DW    FENCE-8
  3252. FILL    DW    DOCOL
  3253.     DW    OVER
  3254.     DW    ZGREAT
  3255.     DW    ZBRAN
  3256.     DW    FILL1-$
  3257.     DW    AFILL
  3258.     DW    BRAN
  3259.     DW    FILL2-$
  3260. FILL1    DW    DDROP
  3261.     DW    DROP
  3262. FILL2    DW    EXIT
  3263. ;
  3264.     DB    84H        ;  FIND
  3265.     DB    'FIN'
  3266.     DB    'D'+80H
  3267.     DW    FILL-7
  3268. FIND    DW    DOCOL
  3269.     DW    DFIND
  3270.     DW    ZBRAN
  3271.     DW    FIND1-$
  3272.     DW    DROP
  3273.     DW    CFA
  3274.     DW    BRAN
  3275.     DW    FIND2-$
  3276. FIND1    DW    ZERO
  3277. FIND2    DW    EXIT
  3278. ;
  3279.     DB    85H        ;  FIRST
  3280.     DB    'FIRS'
  3281.     DB    'T'+80H
  3282.     DW    FIND-7
  3283. FIRST    DW    DOCON
  3284.     DW    BUF1
  3285. ;
  3286.     DB    83H        ;  FLD
  3287.     DB    'FL'
  3288.     DB    'D'+80H
  3289.     DW    FIRST-8
  3290. FLD    DW    DOUSE
  3291.     DW    44H
  3292. ;
  3293.     DB    86H        ;  FORGET
  3294.     DB    'FORGE'
  3295.     DB    'T'+80H
  3296.     DW    FLD-6
  3297. FORG    DW    DOCOL
  3298.     DW    BLL
  3299.     DW    WORDD
  3300.     DW    CURR
  3301.     DW    ATT
  3302.     DW    ATT
  3303.     DW    AFIND
  3304.     DW    ZEQU
  3305.     DW    AABORTQ
  3306.     DB    19H
  3307.     DB    'NOT IN CURRENT VOCABULARY'
  3308.     DW    DROP
  3309.     DW    NFA
  3310.     DW    DUPP
  3311.     DW    FENCE
  3312.     DW    ATT
  3313.     DW    ULESS
  3314.     DW    AABORTQ
  3315.     DB    17H
  3316.     DB    'IN PROTECTED DICTIONARY'
  3317.     DW    TOR
  3318.     DW    RAT
  3319.     DW    CONT
  3320.     DW    ATT
  3321.     DW    ULESS
  3322.     DW    ZBRAN
  3323.     DW    FORG1-$
  3324.     DW    FORTH
  3325. FORG1    DW    RAT
  3326.     DW    CURR
  3327.     DW    ATT
  3328.     DW    ULESS
  3329.     DW    ZBRAN
  3330.     DW    FORG2-$
  3331.     DW    FORTH
  3332.     DW    DEFIN
  3333. FORG2    DW    VOCL
  3334.     DW    ATT
  3335. FORG3    DW    RAT
  3336.     DW    OVER
  3337.     DW    ULESS
  3338.     DW    ZBRAN
  3339.     DW    FORG4-$
  3340.     DW    ATT
  3341.     DW    BRAN
  3342.     DW    FORG3-$
  3343. FORG4    DW    DUPP
  3344.     DW    VOCL
  3345.     DW    STORE
  3346. FORG5    DW    DUPP
  3347.     DW    LIT
  3348.     DW    4
  3349.     DW    SUBB
  3350. FORG6    DW    PFA
  3351.     DW    LFA
  3352.     DW    ATT
  3353.     DW    DUPP
  3354.     DW    RAT    
  3355.     DW    ULESS
  3356.     DW    ZBRAN
  3357.     DW    FORG6-$
  3358.     DW    OVER
  3359.     DW    TWOM
  3360.     DW    STORE
  3361.     DW    ATT
  3362.     DW    QDUP
  3363.     DW    ZEQU
  3364.     DW    ZBRAN
  3365.     DW    FORG5-$
  3366.     DW    FROMR
  3367.     DW    DP
  3368.     DW    STORE
  3369.     DW    EXIT
  3370. ;
  3371.     DB    0C5H        ;  FORTH
  3372.     DB    'FORT'
  3373.     DB    'H'+80H
  3374.     DW    FORG-9
  3375. FORTH    DW    DOVOC
  3376.     DW    0A081H
  3377.     DW    RBRAC-4
  3378.     DW    00
  3379. ;
  3380.     DB    86H        ;  FREEZE
  3381.     DB    'FREEZ'
  3382.     DB    'E'+80H
  3383.     DW    FORTH-8
  3384. FREEZE    DW    DOCOL
  3385.     DW    LIT
  3386.     DW    UP
  3387.     DW    ATT
  3388.     DW    LIT
  3389.     DW    6
  3390.     DW    PLUS
  3391.     DW    LIT
  3392.     DW    INITUSER
  3393.     DW    LIT
  3394.     DW    30H
  3395.     DW    CMOVE
  3396.     DW    LIT
  3397.     DW    FORTH+2
  3398.     DW    TWOP
  3399.     DW    ATT
  3400.     DW    LIT
  3401.     DW    INITFORTH
  3402.     DW    STORE
  3403.     DW    EXIT
  3404. ;
  3405.     DB    84H        ;  HERE
  3406.     DB    'HER'
  3407.     DB    'E'+80H
  3408.     DW    FREEZE-9
  3409. HERE    DW    DOCOL
  3410.     DW    DP
  3411.     DW    ATT
  3412.     DW    EXIT
  3413. ;
  3414.     DB    83H        ;  HEX
  3415.     DB    'HE'
  3416.     DB    'X'+80H
  3417.     DW    HERE-7
  3418. HEX    DW    DOCOL
  3419.     DW    LIT
  3420.     DW    10H
  3421.     DW    BASE
  3422.     DW    STORE
  3423.     DW    EXIT
  3424. ;
  3425.     DB    83H        ;  HLD
  3426.     DB    'HL'
  3427.     DB    'D'+80H
  3428.     DW    HEX-6
  3429. HLD    DW    DOUSE
  3430.     DW    46H
  3431. ;
  3432.     DB    84H        ;  HOLD
  3433.     DB    'HOL'
  3434.     DB    'D'+80H
  3435.     DW    HLD-6
  3436. HOLD    DW    DOCOL
  3437.     DW    LIT
  3438.     DW    0FFFFH
  3439.     DW    HLD
  3440.     DW    PSTOR
  3441.     DW    HLD
  3442.     DW    ATT
  3443.     DW    CSTOR
  3444.     DW    EXIT
  3445. ;
  3446.     DB    81H        ;  I
  3447.     DB    'I'+80H
  3448.     DW    HOLD-7
  3449. IDO    DW    $+2
  3450.     MOV    AX,[BP]
  3451.     JMP    APUSH
  3452. ;
  3453.     DB    82H        ;  I'
  3454.     DB    'I'
  3455.     DB    0A7H
  3456.     DW    IDO-4
  3457. IPDO    DW    $+2
  3458.     MOV    AX,[BP+2]
  3459.     JMP    APUSH
  3460. ;
  3461.     DB    0C2H        ;  IF
  3462.     DB    'I'
  3463.     DB    'F'+80H
  3464.     DW    IPDO-5
  3465. IFF    DW    DOCOL
  3466.     DW    COMP
  3467.     DW    ZBRAN
  3468.     DW    HERE
  3469.     DW    ZERO
  3470.     DW    COMMA
  3471.     DW    TWO
  3472.     DW    EXIT
  3473. ;
  3474.     DB    89H        ;  IMMEDIATE
  3475.     DB    'IMMEDIAT'
  3476.     DB    'E'+80H
  3477.     DW    IFF-5
  3478. IMMED    DW    DOCOL
  3479.     DW    LATES
  3480.     DW    LIT
  3481.     DW    40H
  3482.     DW    TOGGL
  3483.     DW    EXIT
  3484. ;
  3485.     DB    8AH        ;  INIT-FORTH
  3486.     DB    'INIT-FORT'
  3487.     DB    'H'+80H
  3488.     DW    IMMED-0CH
  3489. IFORTH    DW    DOCON
  3490.     DW    INITFORTH
  3491. ;
  3492.     DB    89H        ;  INIT-USER
  3493.     DB    'INIT-USE'
  3494.     DB    'R'+80H
  3495.     DW    IFORTH-0DH
  3496. IUSER    DW    DOCON
  3497.     DW    INITUSER
  3498. ;
  3499.     DB    87H        ;  INTCALL
  3500.     DB    'INTCAL'
  3501.     DB    'L'+80H
  3502.     DW    IUSER-0CH
  3503. INTCAL    DW    DOCOL
  3504.     DW    LIT
  3505.     DW    INTCA2+1
  3506.     DW    CSTOR
  3507.     DW    LIT
  3508.     DW    INTCA1
  3509.     DW    EXEC
  3510.     DW    EXIT
  3511. ;
  3512. INTCA1    DW    $+2
  3513.     POP    DX
  3514.     POP    CX
  3515.     POP    BX
  3516.     POP    AX
  3517.     PUSH    SI
  3518.     PUSH    BP
  3519. INTCA2: INT    0
  3520.     POP    BP
  3521.     POP    SI
  3522.     JMP    APUSH
  3523. ;
  3524.     DB    89H        ;  INTERPRET
  3525.     DB    'INTERPRE'
  3526.     DB    'T'+80H
  3527.     DW    INTCAL-0AH
  3528. INTER    DW    DOCOL
  3529.     DW    TINTER
  3530.     DW    ATT
  3531.     DW    EXEC
  3532.     DW    EXIT
  3533. ;
  3534. ;
  3535.     DB    81H        ;  J
  3536.     DB    'J'+80H
  3537.     DW    INTER-0CH
  3538. JDO    DW    $+2
  3539.     MOV    AX,[BP+4]
  3540.     JMP    APUSH
  3541. ;
  3542.     DB    83H        ;  KEY
  3543.     DB    'KE'
  3544.     DB    'Y'+80H
  3545.     DW    JDO-4
  3546. KEY    DW    DOCOL
  3547.     DW    TKEY
  3548.     DW    ATT
  3549.     DW    EXEC
  3550.     DW    EXIT
  3551. ;
  3552.     DB    86H        ;  LATEST
  3553.     DB    'LATES'
  3554.     DB    'T'+80H
  3555.     DW    KEY-6
  3556. LATES    DW    DOCOL
  3557.     DW    CURR
  3558.     DW    ATT
  3559.     DW    ATT
  3560.     DW    EXIT
  3561. ;
  3562.     DB    85H        ;  LEAVE
  3563.     DB    'LEAV'
  3564.     DB    'E'+80H
  3565.     DW    LATES-9
  3566. LEAVE    DW    $+2
  3567.     MOV    AX,[BP]
  3568.     MOV    2[BP],AX
  3569.     JMP    NEXT
  3570. ;
  3571.     DB    83H        ;  LFA
  3572.     DB    'LF'
  3573.     DB    'A'+80H
  3574.     DW    LEAVE-8
  3575. LFA    DW    DOCOL
  3576.     DW    LIT
  3577.     DW    4
  3578.     DW    SUBB
  3579.     DW    EXIT
  3580. ;
  3581.     DB    85H        ;  LIMIT
  3582.     DB    'LIMI'
  3583.     DB    'T'+80H
  3584.     DW    LFA-6
  3585. LIMIT    DW    DOCON
  3586.     DW    EM
  3587. ;
  3588.     DB    84H        ;  LIST
  3589.     DB    'LIS'
  3590.     DB    'T'+80H
  3591.     DW    LIMIT-8
  3592. LIST    DW    DOCOL
  3593.     DW    CR
  3594.     DW    DUPP
  3595.     DW    SCR
  3596.     DW    STORE
  3597.     DW    ADOTQ
  3598.     DB    5
  3599.     DB    'SCR #'
  3600.     DW    UDOT
  3601.     DW    LIT
  3602.     DW    10H
  3603.     DW    ZERO
  3604.     DW    ADO
  3605. LIST1    DW    CR
  3606.     DW    RAT
  3607.     DW    LIT
  3608.     DW    3
  3609.     DW    DOTR
  3610.     DW    SPACE
  3611.     DW    RAT
  3612.     DW    SCR
  3613.     DW    ATT
  3614.     DW    DLINE
  3615.     DW    QTERM
  3616.     DW    ZBRAN
  3617.     DW    OFFSET LIST2-$
  3618.     DW    LEAVE
  3619. LIST2    DW    ALOOP
  3620.     DW    OFFSET LIST1-$
  3621.     DW    CR
  3622.     DW    EXIT
  3623. ;
  3624.     DB    83H        ;  LIT
  3625.     DB    'LI'
  3626.     DB    'T'+80H
  3627.     DW    LIST-7
  3628. LIT    DW    $+2
  3629.     MOV    AX,[SI]
  3630.     INC    SI
  3631.     INC    SI
  3632.     JMP    APUSH
  3633. ;
  3634.     DB    0C7H        ;  LITERAL
  3635.     DB    'LITERA'
  3636.     DB    'L'+80H
  3637.     DW    LIT-6
  3638. LITER    DW    DOCOL
  3639.     DW    STATE
  3640.     DW    ATT
  3641.     DW    ZBRAN
  3642.     DW    OFFSET LITER1-$
  3643.     DW    COMP
  3644.     DW    LIT
  3645.     DW    COMMA
  3646. LITER1    DW    EXIT
  3647. ;
  3648.     DB    84H        ;  LOAD
  3649.     DB    'LOA'
  3650.     DB    'D'+80H
  3651.     DW    LITER-0AH
  3652. LOAD    DW    DOCOL
  3653.     DW    TLOAD
  3654.     DW    ATT
  3655.     DW    EXEC
  3656.     DW    EXIT
  3657. ;
  3658.     DB    0C4H        ;  LOOP
  3659.     DB    'LOO'
  3660.     DB    'P'+80H
  3661.     DW    LOAD-7
  3662. LOOP    DW    DOCOL
  3663.     DW    LIT
  3664.     DW    3
  3665.     DW    QPAIR
  3666.     DW    COMP
  3667.     DW    ALOOP
  3668.     DW    HERE
  3669.     DW    SUBB
  3670.     DW    COMMA
  3671.     DW    EXIT
  3672. ;
  3673.     DB    82H        ;  M*
  3674.     DB    'M'
  3675.     DB    '*'+80H
  3676.     DW    LOOP-7
  3677. MSTAR    DW    DOCOL
  3678.     DW    DDUP
  3679.     DW    XORR
  3680.     DW    TOR
  3681.     DW    ABSS
  3682.     DW    SWAP
  3683.     DW    ABSS
  3684.     DW    USTAR
  3685.     DW    FROMR
  3686.     DW    DPM
  3687.     DW    EXIT
  3688. ;
  3689.     DB    83H        ;  M*/
  3690.     DB    'M*'
  3691.     DB    '/'+80H
  3692.     DW    MSTAR-5
  3693. MSTARSL DW    DOCOL
  3694.     DW    DDUP
  3695.     DW    XORR
  3696.     DW    SWAP
  3697.     DW    ABSS
  3698.     DW    TOR
  3699.     DW    SWAP
  3700.     DW    ABSS
  3701.     DW    TOR
  3702.     DW    OVER
  3703.     DW    XORR
  3704.     DW    ROT
  3705.     DW    ROT
  3706.     DW    DABS
  3707.     DW    SWAP
  3708.     DW    RAT
  3709.     DW    USTAR
  3710.     DW    ROT
  3711.     DW    FROMR
  3712.     DW    USTAR
  3713.     DW    ROT    
  3714.     DW    ZERO
  3715.     DW    DPLUS
  3716.     DW    RAT
  3717.     DW    USLM
  3718.     DW    ROT
  3719.     DW    ROT
  3720.     DW    FROMR
  3721.     DW    USLM
  3722.     DW    SWAP
  3723.     DW    DROP
  3724.     DW    SWAP
  3725.     DW    ROT
  3726.     DW    DPM
  3727.     DW    EXIT
  3728. ;
  3729.     DB    82H        ;  M+
  3730.     DB    'M'
  3731.     DB    '+'+80H
  3732.     DW    MSTARSL-6
  3733. MPLUS    DW    DOCOL
  3734.     DW    STOD
  3735.     DW    DPLUS
  3736.     DW    EXIT
  3737. ;
  3738.     DB    82H        ;  M/
  3739.     DB    'M'
  3740.     DB    '/'+80H
  3741.     DW    MPLUS-5
  3742. MSLAS    DW    DOCOL
  3743.     DW    OVER
  3744.     DW    TOR
  3745.     DW    TOR
  3746.     DW    DUPP
  3747.     DW    DPM
  3748.     DW    RAT
  3749.     DW    ABSS
  3750.     DW    USLM
  3751.     DW    FROMR
  3752.     DW    RAT
  3753.     DW    XORR
  3754.     DW    PM
  3755.     DW    SWAP
  3756.     DW    FROMR
  3757.     DW    PM
  3758.     DW    SWAP
  3759.     DW    EXIT
  3760. ;
  3761.     DB    85H        ;  M/MOD
  3762.     DB    'M/MO'
  3763.     DB    'D'+80H
  3764.     DW    MSLAS-5
  3765. MSMOD    DW    DOCOL
  3766.     DW    TOR
  3767.     DW    ZERO
  3768.     DW    RAT
  3769.     DW    USLM
  3770.     DW    FROMR
  3771.     DW    SWAP
  3772.     DW    TOR
  3773.     DW    USLM
  3774.     DW    FROMR
  3775.     DW    EXIT
  3776. ;
  3777.     DB    83H        ;  MAX
  3778.     DB    'MA'
  3779.     DB    'X'+80H
  3780.     DW    MSMOD-8
  3781. MAX    DW    DOCOL
  3782.     DW    DDUP
  3783.     DW    LESS
  3784.     DW    ZBRAN
  3785.     DW    OFFSET MAX1-$
  3786.     DW    SWAP
  3787. MAX1    DW    DROP
  3788.     DW    EXIT
  3789. ;
  3790.     DB    87H        ;  MAX-DRV
  3791.     DB    'MAX-DR'
  3792.     DB    'V'+80H
  3793.     DW    MAX-6
  3794. MAXDRV    DW    DOCON
  3795.     DW    2
  3796.     DB    83H        ;  MIN
  3797.     DB    'MI'
  3798.     DB    'N'+80H
  3799.     DW    MAXDRV-0AH
  3800. MIN    DW    DOCOL
  3801.     DW    DDUP
  3802.     DW    GREAT
  3803.     DW    ZBRAN
  3804.     DW    OFFSET MIN1-$
  3805.     DW    SWAP
  3806. MIN1    DW    DROP
  3807.     DW    EXIT
  3808. ;
  3809.     DB    83H        ;  MOD
  3810.     DB    'MO'
  3811.     DB    'D'+80H
  3812.     DW    MIN-6
  3813. MODD    DW    DOCOL
  3814.     DW    SLMOD
  3815.     DW    DROP
  3816.     DW    EXIT
  3817. ;
  3818.     DB    84H        ;  MOVE
  3819.     DB    'MOV'
  3820.     DB    'E'+80H
  3821.     DW    MODD-6
  3822. MOVE    DW    DOCOL
  3823.     DW    ZERO
  3824.     DW    MAX
  3825.     DW    TWOST
  3826.     DW    ACMOVE
  3827.     DW    EXIT
  3828. ;
  3829.     DB    86H        ;  NEGATE
  3830.     DB    'NEGAT'
  3831.     DB    'E'+80H
  3832.     DW    MOVE-7
  3833. NEG    DW    $+2
  3834.     POP    AX
  3835.     NEG    AX
  3836.     JMP    APUSH
  3837. ;
  3838.     DB    84H        ;  NEXT
  3839.     DB    'NEX'
  3840.     DB    'T'+80H
  3841.     DW    NEG-9
  3842. CNEXT    DW    DOCON
  3843.     DW    NEXT
  3844. ;
  3845.     DB    85H        ;  NEXT1
  3846.     DB    'NEXT'
  3847.     DB    '1'+80H
  3848.     DW    CNEXT-7
  3849. CNEXT1    DW    DOCON
  3850.     DW    NEXT1
  3851. ;
  3852.     DB    83H        ;  NFA
  3853.     DB    'NF'
  3854.     DB    'A'+80H
  3855.     DW    CNEXT1-8
  3856. NFA    DW    DOCOL
  3857.     DW    LIT
  3858.     DW    5
  3859.     DW    SUBB
  3860.     DW    LIT
  3861.     DW    0FFFFH
  3862.     DW    TRAV
  3863.     DW    EXIT
  3864. ;
  3865.     DB    83H        ;  NOT
  3866.     DB    'NO'
  3867.     DB    'T'+80H
  3868.     DW    NFA-6
  3869. NOTT    DW    $+2
  3870.     POP    AX
  3871.     OR    AX,AX
  3872.     MOV    AX,1H
  3873.     JZ    NOT1
  3874.     DEC    AX
  3875. NOT1:    JMP    APUSH
  3876. ;
  3877.     DB    86H        ;  NUMBER
  3878.     DB    'NUMBE'
  3879.     DB    'R'+80H
  3880.     DW    NOTT-6
  3881. NUM    DW    DOCOL
  3882.     DW    TNUM
  3883.     DW    ATT
  3884.     DW    EXEC
  3885.     DW    EXIT
  3886. ;
  3887.     DB    86H        ;  OFFSET
  3888.     DB    'OFFSE'
  3889.     DB    'T'+80H
  3890.     DW    NUM-9
  3891. OFSET    DW    DOUSE
  3892.     DW    48H
  3893. ;
  3894.     DB    82H        ;  OR
  3895.     DB    'O'
  3896.     DB    'R'+80H
  3897.     DW    OFSET-9
  3898. ORR    DW    $+2
  3899.     POP    AX
  3900.     POP    BX
  3901.     OR    AX,BX
  3902.     JMP    APUSH
  3903. ;
  3904.     DB    83H        ;  OUT
  3905.     DB    'OU'
  3906.     DB    'T'+80H
  3907.     DW    ORR-5
  3908. OUTT    DW    DOUSE
  3909.     DW    4AH
  3910. ;
  3911.     DB    84H        ;  OVER
  3912.     DB    'OVE'
  3913.     DB    'R'+80H
  3914.     DW    OUTT-6
  3915. OVER    DW    $+2
  3916.     POP    DX
  3917.     POP    AX
  3918.     PUSH    AX
  3919.     JMP    DPUSH
  3920. ;
  3921.     DB    82H        ;  PSTORE
  3922.     DB    'P'
  3923.     DB    '!'+80H
  3924.     DW    OVER-7
  3925. PTSTOR    DW    $+2
  3926.     POP    DX
  3927.     POP    AX
  3928.     OUT    DX,AL
  3929.     JMP    NEXT 
  3930. ;
  3931.     DB    82H        ;  P@
  3932.     DB    'P'
  3933.     DB    '@'+80H
  3934.     DW    PTSTOR-5
  3935. PTAT    DW    $+2
  3936.     POP    DX
  3937.     IN    AL,DX
  3938.     SUB    AH,AH
  3939.     JMP    APUSH
  3940. ;
  3941.     DB    83H        ;  PAD
  3942.     DB    'PA'
  3943.     DB    'D'+80H
  3944.     DW    PTAT-5
  3945. PAD    DW    DOCOL
  3946.     DW    HERE
  3947.     DW    LIT
  3948.     DW    44H
  3949.     DW    PLUS
  3950.     DW    EXIT
  3951. ;
  3952.     DB    84H        ;  PAGE
  3953.     DB    'PAG'
  3954.     DB    'E'+80H
  3955.     DW    PAD-6
  3956. PAGEE    DW    DOCOL
  3957.     DW    TPAGE
  3958.     DW    ATT
  3959.     DW    EXEC
  3960.     DW    EXIT
  3961. ;
  3962.     DB    83H        ;  PFA
  3963.     DB    'PF'
  3964.     DB    'A'+80H
  3965.     DW    PAGEE-7
  3966. PFA    DW    DOCOL
  3967.     DW    ONE
  3968.     DW    TRAV
  3969.     DW    LIT
  3970.     DW    5
  3971.     DW    PLUS
  3972.     DW    EXIT
  3973. ;
  3974.     DB    84H        ;  PICK
  3975.     DB    'PIC'
  3976.     DB    'K'+80H
  3977.     DW    PFA-6
  3978. PICK    DW    DOCOL
  3979.     DW    DUPP
  3980.     DW    ONE
  3981.     DW    LESS
  3982.     DW    AABORTQ
  3983.     DB    11H
  3984.     DB    'PICK ARGUMENT < 1'
  3985.     DW    TWOST
  3986.     DW    SPAT
  3987.     DW    PLUS
  3988.     DW    ATT
  3989.     DW    EXIT
  3990. ;
  3991.     DB    82H        ;  PP
  3992.     DB    'P'
  3993.     DB    'P'+80H
  3994.     DW    PICK-7
  3995. PP    DW    DOCOL
  3996.     DW    DUPP
  3997.     DW    LIT
  3998.     DW    0FFF0H
  3999.     DW    ANDD
  4000.     DW    AABORTQ
  4001.     DB    0AH
  4002.     DB    'OFF SCREEN'
  4003.     DW    ONE
  4004.     DW    TEXT
  4005.     DW    PAD
  4006.     DW    ONEP
  4007.     DW    SWAP
  4008.     DW    SCR
  4009.     DW    ATT
  4010.     DW    ALINE
  4011.     DW    CMOVE
  4012.     DW    UPDAT
  4013.     DW    EXIT
  4014. ;
  4015.     DB    84H        ;  PREV
  4016.     DB    'PRE'
  4017.     DB    'V'+80H
  4018.     DW    PP-5
  4019. PREV    DW    DOVAR
  4020.     DW    BUF1
  4021. ;
  4022.     DB    83H        ; PWSTORE
  4023.     DB    'PW'
  4024.     DB    '!'+80H
  4025.     DW    PREV-7
  4026. PWSTOR    DW    $+2
  4027.     POP    DX
  4028.     POP    AX
  4029.     OUT    DX,AX
  4030.     JMP    NEXT
  4031. ;
  4032.     DB    83H        ; PW@ 
  4033.     DB    'PW'
  4034.     DB    '@'+80H
  4035.     DW    PWSTOR-6
  4036. PWAT    DW    $+2
  4037.     POP    DX
  4038.     IN    AX,DX
  4039.     JMP    APUSH
  4040. ;
  4041.     DB    85H        ;  QUERY
  4042.     DB    'QUER'
  4043.     DB    'Y'+80H
  4044.     DW    PWAT-6
  4045. QUERY    DW    DOCOL
  4046.     DW    TIB
  4047.     DW    ATT
  4048.     DW    LIT
  4049.     DW    50H
  4050.     DW    EXPEC
  4051.     DW    ZERO
  4052.     DW    TOIN
  4053.     DW    STORE
  4054.     DW    EXIT
  4055. ;
  4056.     DB    84H        ;  QUIT
  4057.     DB    'QUI'
  4058.     DB    'T'+80H
  4059.     DW    QUERY-8
  4060. QUIT    DW    DOCOL
  4061.     DW    ZERO
  4062.     DW    BLK
  4063.     DW    STORE
  4064.     DW    LBRAC
  4065. QUIT1    DW    CR
  4066.     DW    RPSTO
  4067.     DW    QUERY
  4068.     DW    INTER
  4069.     DW    STATE
  4070.     DW    ATT
  4071.     DW    NOTT
  4072.     DW    ZBRAN
  4073.     DW    OFFSET QUIT2-$
  4074.     DW    ADOTQ
  4075.     DB    2
  4076.     DB    'OK'
  4077. QUIT2    DW    BRAN
  4078.     DW    QUIT1-$
  4079.     DW    EXIT
  4080. ;
  4081.     DB    82H        ;  R#
  4082.     DB    'R'
  4083.     DB    '#'+80H
  4084.     DW    QUIT-7
  4085. RSHARP    DW    DOUSE
  4086.     DW    4CH
  4087. ;
  4088.     DB    83H        ;  R/W
  4089.     DB    'R/'
  4090.     DB    'W'+80H
  4091.     DW    RSHARP-5
  4092. RSLW    DW    DOCOL
  4093.     DW    TRSLW
  4094.     DW    ATT
  4095.     DW    EXEC
  4096.     DW    EXIT
  4097. ;
  4098.     DB    82H        ;  R0
  4099.     DB    'R'
  4100.     DB    '0'+80H
  4101.     DW    RSLW-6
  4102. RZERO    DW    DOUSE
  4103.     DW    08
  4104. ;
  4105.     DB    82H        ;  R>
  4106.     DB    'R'
  4107.     DB    '>'+80H
  4108.     DW    RZERO-5
  4109. FROMR    DW    $+2
  4110.     MOV    AX,[BP]
  4111.     INC    BP
  4112.     INC    BP
  4113.     JMP    APUSH
  4114. ;
  4115.     DB    82H        ;  R@
  4116.     DB    'R'
  4117.     DB    '@'+80H
  4118.     DW    FROMR-5
  4119. RAT    DW    $+2
  4120.     MOV    AX,[BP]
  4121.     JMP    APUSH
  4122. ;
  4123.     DB    0C6H        ;  REPEAT
  4124.     DB    'REPEA'
  4125.     DB    'T'+80H
  4126.     DW    RAT-5
  4127. REPEA    DW    DOCOL
  4128.     DW    TOR
  4129.     DW    TOR
  4130.     DW    AGAIN
  4131.     DW    FROMR
  4132.     DW    FROMR
  4133.     DW    TWOM
  4134.     DW    THENN
  4135.     DW    EXIT
  4136. ;
  4137.     DB    84H        ;  ROLL
  4138.     DB    'ROL'
  4139.     DB    'L'+80H
  4140.     DW    REPEA-9
  4141. ROLL    DW    DOCOL
  4142.     DW    DUPP
  4143.     DW    ONE
  4144.     DW    LESS
  4145.     DW    AABORTQ
  4146.     DB    11H
  4147.     DB    'ROLL ARGUMENT < 1'
  4148.     DW    ONEP
  4149.     DW    DUPP
  4150.     DW    PICK
  4151.     DW    SWAP
  4152.     DW    TWOST
  4153.     DW    SPAT
  4154.     DW    PLUS
  4155. ROLL1    DW    DUPP
  4156.     DW    TWOM
  4157.     DW    ATT
  4158.     DW    OVER
  4159.     DW    STORE
  4160.     DW    TWOM
  4161.     DW    SPAT
  4162.     DW    OVER
  4163.     DW    ULESS
  4164.     DW    NOTT
  4165.     DW    ZBRAN
  4166.     DW    ROLL1-$
  4167.     DW    DDROP
  4168.     DW    EXIT
  4169. ;
  4170.     DB    83H        ;  ROT
  4171.     DB    'RO'
  4172.     DB    'T'+80H
  4173.     DW    ROLL-7
  4174. ROT    DW    $+2
  4175.     POP    DX
  4176.     POP    BX
  4177.     POP    AX
  4178.     PUSH    BX
  4179.     JMP    DPUSH
  4180. ;
  4181.     DB    83H        ;  RPSTORE
  4182.     DB    'RP'
  4183.     DB    '!'+80H
  4184.     DW    ROT-6
  4185. RPSTO    DW    $+2
  4186.     MOV    BX,UP
  4187.     MOV    BP,8[BX]
  4188.     JMP    NEXT
  4189. ;
  4190.     DB    83H        ;  RP@
  4191.     DB    'RP'
  4192.     DB    '@'+80H
  4193.     DW    RPSTO-6
  4194. RPAT    DW    $+2
  4195.     MOV    AX,BP
  4196.     JMP    APUSH
  4197. ;
  4198.     DB    83H        ;  RPP
  4199.     DB    'RP'
  4200.     DB    'P'+80H
  4201.     DW    RPAT-6
  4202. RPPP    DW    DOCON
  4203.     DW    RPP
  4204. ;
  4205.     DB    84H        ;  S->D
  4206.     DB    'S->'
  4207.     DB    'D'+80H
  4208.     DW    RPPP-6
  4209. STOD    DW    $+2
  4210.     POP    DX
  4211.     SUB    AX,AX
  4212.     OR    DX,DX
  4213.     JNS    STOD1
  4214.     DEC    AX
  4215. STOD1:    JMP    DPUSH
  4216. ;
  4217.     DB    82H        ;  S0
  4218.     DB    'S'
  4219.     DB    '0'+80H
  4220.     DW    STOD-7
  4221. SZERO    DW    DOCOL
  4222.     DW    SPZERO
  4223.     DW    ATT
  4224.     DW    EXIT
  4225. ;
  4226.     DB    8CH        ;  SAVE-BUFFERS
  4227.     DB    'SAVE-BUFFER'
  4228.     DB    'S'+80H
  4229.     DW    SZERO-5
  4230. SAVBUF    DW    DOCOL
  4231.     DW    NOBUF
  4232.     DW    ONEP
  4233.     DW    ZERO
  4234.     DW    ADO
  4235. SAVBUF1 DW    LIT
  4236.     DW    7FFFH
  4237.     DW    BUFFE
  4238.     DW    DROP
  4239.     DW    ALOOP
  4240.     DW    OFFSET SAVBUF1-$
  4241.     DW    EXIT
  4242. ;
  4243.     DB    83H        ;  SCR
  4244.     DB    'SC'
  4245.     DB    'R'+80H
  4246.     DW    SAVBUF-0FH
  4247. SCR    DW    DOUSE
  4248.     DW    4EH
  4249. ;
  4250.     DB    83H        ;  SEC    
  4251.     DB    'SE'
  4252.     DB    'C'+80H
  4253.     DW    SCR-6
  4254. SEC    DW    DOVAR
  4255.     DW    0
  4256. ;
  4257.     DB    88H        ;  SEC-READ
  4258.     DB    'SEC-REA'
  4259.     DB    'D'+80H
  4260.     DW    SEC-6
  4261. ;SECRD    DW    DOCOL
  4262. ;    DW    LIT
  4263. ;    DW    201H
  4264. ;    DW    LIT
  4265. ;    DW    SECRW
  4266. ;    DW    EXEC
  4267. ;    DW    EXIT
  4268. ;
  4269. ;SECRW    DW    DOCOL
  4270. ;    DW    LIT
  4271. ;    DW    3
  4272. ;    DW    ZERO
  4273. ;    DW    ADO
  4274. ;SECRW1    DW    DUPP
  4275. ;    DW    USEE
  4276. ;    DW    ATT
  4277. ;    DW    TRACK
  4278. ;    DW    ATT
  4279. ;    DW    LIT
  4280. ;    DW    100H
  4281. ;    DW    STAR
  4282. ;    DW    SEC
  4283. ;    DW    ATT
  4284. ;    DW    PLUS
  4285. ;    DW    DRIVE
  4286. ;    DW    ATT
  4287. ;    DW    LIT
  4288. ;    DW    13H
  4289. ;    DW    INTCAL
  4290. ;    DW    DUPP
  4291. ;    DW    DSKERR
  4292. ;    DW    STORE
  4293. ;    DW    ZEQU
  4294. ;    DW    ZBRAN
  4295. ;    DW    OFFSET SECRW2-$
  4296. ;    DW    LEAVE
  4297. ;    DW    BRAN
  4298. ;    DW    OFFSET SECRW3-$
  4299. ;SECRW2    DW    ZERO
  4300. ;    DW    ZERO
  4301. ;    DW    ZERO
  4302. ;    DW    ZERO
  4303. ;    DW    LIT
  4304. ;    DW    13H
  4305. ;    DW    INTCAL
  4306. ;    DW    DROP
  4307. ;SECRW3    DW    ALOOP
  4308. ;    DW    OFFSET SECRW1-$
  4309. ;    DW    DROP
  4310. ;    DW    EXIT 
  4311. SECRD    DW    $+2            ; 1.0405.03
  4312.     MOV    AX,DRIVE+2        ; 1.0405.03
  4313.     MOV    BX,USEE+2        ; 1.0405.03
  4314.     MOV    CX,01H            ; 1.0405.03
  4315.     MOV    DX,SEC+2        ; 1.0405.03
  4316.     PUSH    SI            ; 1.0405.03
  4317.     PUSH    BP            ; 1.0405.03
  4318.     INT    25H            ; 1.0405.03
  4319.     POPF                ; 1.0405.03
  4320.     POP    BP            ; 1.0405.03
  4321.     POP    SI            ; 1.0405.03
  4322.     MOV    AH,0            ; 1.0405.03
  4323.     MOV    DSKERR+2,AX        ; 1.0405.03
  4324.     JMP    NEXT
  4325. ;
  4326.     DB    89H        ;  SEC-WRITE
  4327.     DB    'SEC-WRIT'
  4328.     DB    'E'+80H
  4329.     DW    SECRD-0BH
  4330. ;SECWT    DW    DOCOL
  4331. ;    DW    LIT
  4332. ;    DW    301H
  4333. ;    DW    LIT
  4334. ;    DW    SECRW
  4335. ;    DW    EXEC
  4336. ;    DW    EXIT
  4337. SECWT    DW    $+2            ; 1.0405.03
  4338.     MOV    AX,DRIVE+2        ; 1.0405.03
  4339.     MOV    BX,USEE+2        ; 1.0405.03
  4340.     MOV    CX,01H            ; 1.0405.03
  4341.     MOV    DX,SEC+2        ; 1.0405.03
  4342.     PUSH    SI            ; 1.0405.03
  4343.     PUSH    BP            ; 1.0405.03
  4344.     INT    26H            ; 1.0405.03
  4345.     POPF                ; 1.0404.03
  4346.     POP    BP            ; 1.0405.03
  4347.     POP    SI            ; 1.0405.03
  4348.     MOV    AH,0            ; 1.0405.03
  4349.     MOV    DSKERR+2,AX        ; 1.0405.03
  4350.     JMP    NEXT            ; 1.0405.03
  4351. ;
  4352.     DB    87H        ;  SEC/BLK
  4353.     DB    'SEC/BL'
  4354.     DB    'K'+80H
  4355.     DW    SECWT-0CH
  4356. SPBL    DW    DOVAR
  4357.     DW    2
  4358.     DW    2
  4359.     DW    8
  4360.     DW    8
  4361.     DW    8
  4362.     DW    8
  4363.     DW    8
  4364. ;
  4365.     DB    86H        ;  SEC/TR
  4366.     DB    'SEC/T'
  4367.     DB    'R'+80H
  4368.     DW    SPBL-0AH
  4369. SPTR    DW    DOVAR
  4370.     DW    8H
  4371.     DW    8H
  4372.     DW    1AH
  4373.     DW    34H
  4374.     DW    34H
  4375.     DW    40H
  4376.     DW    40H
  4377. ;
  4378.     DB    87H        ;  SET-DRX
  4379.     DB    'SET-DR'
  4380.     DB    'X'+80H
  4381.     DW    SPTR-9H
  4382. SETDRX    DW    DOCOL
  4383.     DW    DRDEN
  4384.     DW    DENSTY
  4385.     DW    STORE
  4386.     DW    BPDRV
  4387.     DW    OFSET
  4388.     DW    PSTOR
  4389.     DW    EXIT
  4390. ;
  4391.     DB    84H        ;  SIGN
  4392.     DB    'SIG'
  4393.     DB    'N'+80H
  4394.     DW    SETDRX-0AH
  4395. SIGN    DW    DOCOL
  4396.     DW    ZLESS
  4397.     DW    ZBRAN
  4398.     DW    OFFSET SIGN1-$
  4399.     DW    LIT
  4400.     DW    2DH
  4401.     DW    HOLD    
  4402. SIGN1    DW    EXIT
  4403. ;
  4404.     DB    86H        ;  SMUDGE
  4405.     DB    'SMUDG'
  4406.     DB    'E'+80H
  4407.     DW    SIGN-7
  4408. SMUDG    DW    DOCOL
  4409.     DW    LATES
  4410.     DW    LIT
  4411.     DW    20H
  4412.     DW    TOGGL
  4413.     DW    EXIT
  4414. ;
  4415.     DB    83H        ;  SPSTORE
  4416.     DB    'SP'
  4417.     DB    '!'+80H 
  4418.     DW    SMUDG-9
  4419. SPSTO    DW    $+2
  4420.     MOV    BX,UP
  4421.     MOV    SP,6[BX]
  4422.     JMP    NEXT
  4423. ;
  4424.     DB    83H        ;  SP0
  4425.     DB    'SP'
  4426.     DB    '0'+80H
  4427.     DW    SPSTO-6
  4428. SPZERO    DW    DOUSE
  4429.     DW    06
  4430. ;
  4431.     DB    83H        ;  SP@
  4432.     DB    'SP'
  4433.     DB    '@'+80H
  4434.     DW    SPZERO-6
  4435. SPAT    DW    $+2
  4436.     MOV    AX,SP
  4437.     JMP    APUSH
  4438. ;
  4439.     DB    85H        ;  SPACE
  4440.     DB    'SPAC'
  4441.     DB    'E'+80H
  4442.     DW    SPAT-6
  4443. SPACE    DW    DOCOL
  4444.     DW    BLL
  4445.     DW    EMIT
  4446.     DW    EXIT
  4447. ;
  4448.     DB    86H        ;  SPACES
  4449.     DB    'SPACE'
  4450.     DB    'S'+80H
  4451.     DW    SPACE-8
  4452. SPACS    DW    DOCOL
  4453.     DW    ZERO
  4454.     DW    MAX
  4455.     DW    QDUP
  4456.     DW    ZBRAN
  4457.     DW    OFFSET SPACS2-$
  4458.     DW    ZERO
  4459.     DW    ADO
  4460. SPACS1    DW    SPACE
  4461.     DW    ALOOP
  4462.     DW    OFFSET SPACS1-$
  4463. SPACS2    DW    EXIT
  4464. ;
  4465.     DB    85H        ;  SPBLK
  4466.     DB    'SPBL'
  4467.     DB    'K'+80H
  4468.     DW    SPACS-9
  4469. SPBLK    DW    DOCOL
  4470.     DW    DENSTY
  4471.     DW    ATT
  4472.     DW    LIT
  4473.     DW    6
  4474.     DW    MIN
  4475.     DW    TWOST
  4476.     DW    SPBL
  4477.     DW    PLUS
  4478.     DW    ATT
  4479.     DW    EXIT
  4480. ;
  4481.     DB    85H        ;  SPDRV
  4482.     DB    'SPDR'
  4483.     DB    'V'+80H
  4484.     DW    SPBLK-8
  4485. SPDRV    DW    DOCOL
  4486.     DW    BPDRV
  4487.     DW    SPBLK
  4488.     DW    STAR
  4489.     DW    EXIT
  4490. ;
  4491.     DB    83H        ;  SPT
  4492.     DB    'SP'
  4493.     DB    'T'+80H
  4494.     DW    SPDRV-8
  4495. SPT    DW    DOCOL
  4496.     DW    DENSTY
  4497.     DW    ATT
  4498.     DW    LIT
  4499.     DW    6
  4500.     DW    MIN
  4501.     DW    TWOST
  4502.     DW    SPTR
  4503.     DW    PLUS
  4504.     DW    ATT
  4505.     DW    EXIT
  4506. ;
  4507.     DB    85H        ;  STATE
  4508.     DB    'STAT'
  4509.     DB    'E'+80H
  4510.     DW    SPT-6
  4511. STATE    DW    DOUSE
  4512.     DW    50H
  4513. ;
  4514.     DB    84H        ;  SWAP
  4515.     DB    'SWA'
  4516.     DB    'P'+80H
  4517.     DW    STATE-8
  4518. SWAP    DW    $+2
  4519.     POP    DX
  4520.     POP    AX
  4521.     JMP    DPUSH
  4522. ;
  4523.     DB    87H        ;  SYSCALL
  4524.     DB    'SYSCAL'
  4525.     DB    'L'+80H
  4526.     DW    SWAP-7
  4527. SYSCALL DW    DOCOL
  4528.     DW    SWAP
  4529.     DW    LIT
  4530.     DW    100H
  4531.     DW    STAR
  4532.     DW    SWAP
  4533.     DW    ZERO
  4534.     DW    ZERO
  4535.     DW    ROT
  4536.     DW    LIT
  4537.     DW    21H
  4538.     DW    INTCAL
  4539.     DW    EXIT
  4540. ;
  4541.     DB    87H        ;  T&SCALC
  4542.     DB    'T&SCAL'
  4543.     DB    'C'+80H
  4544.     DW    SYSCALL-0AH
  4545. TSCALC    DW    DOCOL
  4546.     DW    TTSCALC
  4547.     DW    ATT
  4548.     DW    EXEC
  4549.     DW    EXIT
  4550. ;
  4551.     DB    84H        ;  TEXT
  4552.     DB    'TEX'
  4553.     DB    'T'+80H
  4554.     DW    TSCALC-0AH
  4555. TEXT    DW    DOCOL
  4556.     DW    HERE
  4557.     DW    CSLL
  4558.     DW    ONEP
  4559.     DW    BLANK
  4560.     DW    WORDD
  4561.     DW    BLL     
  4562.     DW    OVER
  4563.     DW    DUPP
  4564.     DW    CAT
  4565.     DW    PLUS
  4566.     DW    ONEP
  4567.     DW    CSTOR
  4568.     DW    PAD
  4569.     DW    CSLL
  4570.     DW    ONEP
  4571.     DW    CMOVE
  4572.     DW    EXIT
  4573. ;
  4574.     DB    0C4H        ;  THEN
  4575.     DB    'THE'
  4576.     DB    'N'+80H
  4577.     DW    TEXT-7
  4578. THENN    DW    DOCOL
  4579.     DW    QCOMP
  4580.     DW    TWO
  4581.     DW    QPAIR
  4582.     DW    HERE
  4583.     DW    OVER
  4584.     DW    SUBB
  4585.     DW    SWAP
  4586.     DW    STORE
  4587.     DW    EXIT
  4588. ;
  4589.     DB    83H        ;  TIB
  4590.     DB    'TI'    
  4591.     DB    'B'+80H
  4592.     DW    THENN-7
  4593. TIB    DW    DOUSE
  4594.     DW    0AH
  4595. ;
  4596.     DB    86H        ;  TOGGLE
  4597.     DB    'TOGGL'
  4598.     DB    'E'+80H
  4599.     DW    TIB-6
  4600. TOGGL    DW    $+2
  4601.     POP    AX
  4602.     POP    BX
  4603.     XOR    [BX],AL
  4604.     JMP    NEXT
  4605. ;
  4606.     DB    85H        ;  TRACK
  4607.     DB    'TRAC'
  4608.     DB    'K'+80H
  4609.     DW    TOGGL-9
  4610. TRACK    DW    DOVAR
  4611.     DW    0
  4612. ;
  4613.     DB    88H        ;  TRAVERSE
  4614.     DB    'TRAVERS'
  4615.     DB    'E'+80H
  4616.     DW    TRACK-8
  4617. TRAV    DW    DOCOL
  4618.     DW    SWAP
  4619. TRAV1    DW    OVER
  4620.     DW    PLUS
  4621.     DW    LIT
  4622.     DW    07FH
  4623.     DW    OVER
  4624.     DW    CAT
  4625.     DW    LESS
  4626.     DW    ZBRAN
  4627.     DW    OFFSET TRAV1-$
  4628.     DW    SWAP
  4629.     DW    DROP
  4630.     DW    EXIT
  4631. ;
  4632.     DB    84H        ;  TYPE
  4633.     DB    'TYP'
  4634.     DB    'E'+80H
  4635.     DW    TRAV-0BH
  4636. TYPEE    DW    DOCOL
  4637.     DW    DUPP
  4638.     DW    ZGREAT
  4639.     DW    ZBRAN
  4640.     DW    OFFSET TYPE2-$
  4641.     DW    OVER
  4642.     DW    PLUS
  4643.     DW    SWAP
  4644.     DW    ADO
  4645. TYPE1    DW    IDO
  4646.     DW    CAT
  4647.     DW    EMIT
  4648.     DW    ONE
  4649.     DW    AUPLOOP
  4650.     DW    OFFSET TYPE1-$
  4651.     DW    BRAN
  4652.     DW    OFFSET TYPE3-$
  4653. TYPE2    DW    DDROP
  4654. TYPE3    DW    EXIT
  4655. ;
  4656.     DB    82H        ;  U*
  4657.     DB    'U'
  4658.     DB    '*'+80H
  4659.     DW    TYPEE-7
  4660. USTAR    DW    $+2
  4661.     POP    AX
  4662.     POP    BX
  4663.     MUL    BX
  4664.     XCHG    AX,DX
  4665.     JMP    DPUSH
  4666. ;
  4667.     DB    82H        ;  U.
  4668.     DB    'U'
  4669.     DB    '.'+80H
  4670.     DW    USTAR-5
  4671. UDOT    DW    DOCOL
  4672.     DW    ZERO
  4673.     DW    DDOT
  4674.     DW    EXIT
  4675. ;
  4676.     DB    85H        ;  U/MOD
  4677.     DB    'U/MO'
  4678.     DB    'D'+80H
  4679.     DW    UDOT-5
  4680. USLM    DW    $+2
  4681.     POP    BX
  4682.     POP    DX
  4683.     POP    AX
  4684.     DIV    BX
  4685.     JMP    DPUSH
  4686. ;
  4687.     DB    82H        ;  U<
  4688.     DB    'U'
  4689.     DB    '<'+80H
  4690.     DW    USLM-8
  4691. ULESS    DW    DOCOL
  4692.     DW    ZERO
  4693.     DW    SWAP
  4694.     DW    ZERO
  4695.     DW    DLESS
  4696.     DW    EXIT
  4697. ;
  4698.     DB    0C5H        ;  UNTIL
  4699.     DB    'UNTI'
  4700.     DB    'L'+80H
  4701.     DW    ULESS-5
  4702. UNTIL    DW    DOCOL
  4703.     DW    ONE
  4704.     DW    QPAIR
  4705.     DW    COMP
  4706.     DW    ZBRAN
  4707.     DW    HERE
  4708.     DW    SUBB
  4709.     DW    COMMA
  4710.     DW    EXIT
  4711. ;
  4712.     DB    82H        ;  UP
  4713.     DB    'U'
  4714.     DB    'P'+80H
  4715.     DW    UNTIL-8
  4716. UPP    DW    DOCON
  4717.     DW    UP
  4718. ;
  4719.     DB    86H        ;  UPDATE
  4720.     DB    'UPDAT'
  4721.     DB    'E'+80H
  4722.     DW    UPP-5
  4723. UPDAT    DW    DOCOL
  4724.     DW    PREV
  4725.     DW    ATT
  4726.     DW    ATT
  4727.     DW    LIT
  4728.     DW    8000H
  4729.     DW    ORR
  4730.     DW    PREV
  4731.     DW    ATT
  4732.     DW    STORE
  4733.     DW    EXIT
  4734. ;    
  4735.     DB    83H        ;  USE
  4736.     DB    'US'
  4737.     DB    'E'+80H
  4738.     DW    UPDAT-9
  4739. USEE    DW    DOVAR
  4740.     DW    BUF1
  4741. ;
  4742.     DB    84H        ;  USER
  4743.     DB    'USE'
  4744.     DB    'R'+80H
  4745.     DW    USEE-6
  4746. USER    DW    DOCOL
  4747.     DW    CON
  4748.     DW    ASCODE
  4749. DOUSE:    INC    DX
  4750.     MOV    BX,DX
  4751.     MOV    BL,[BX]
  4752.     SUB    BH,BH
  4753.     MOV    DI,UP
  4754.     LEA    AX,[BX+DI]
  4755.     JMP    APUSH
  4756. ;
  4757.     DB    88H        ;  VARIABLE
  4758.     DB    'VARIABL'
  4759.     DB    'E'+80H
  4760.     DW    USER-7
  4761. VAR    DW    DOCOL    
  4762.     DW    CREATE
  4763.     DW    TWO
  4764.     DW    ALLOT
  4765.     DW    EXIT
  4766. ;
  4767.     DB    88H        ;  VOC-LINK
  4768.     DB    'VOC-LIN'
  4769.     DB    'K'+80H
  4770.     DW    VAR-0BH
  4771. VOCL    DW    DOUSE
  4772.     DW    14H
  4773. ;
  4774.     DB    8AH        ;  VOCABULARY
  4775.     DB    'VOCABULAR'
  4776.     DB    'Y'+80H
  4777.     DW    VOCL-0BH
  4778. VOC    DW    DOCOL
  4779.     DW    TVOCAB
  4780.     DW    ATT
  4781.     DW    EXEC
  4782.     DW    EXIT
  4783. ;
  4784.     DB    87H        ;  WARNING
  4785.     DB    'WARNIN'
  4786.     DB    'G'+80H
  4787.     DW    VOC-0DH
  4788. WARN    DW    DOUSE
  4789.     DW    0EH
  4790. ;
  4791.     DB    85H        ;  WHERE
  4792.     DB    'WHER'
  4793.     DB    'E'+80H
  4794.     DW    WARN-0AH
  4795. WHERE    DW    DOCOL
  4796.     DW    BLK
  4797.     DW    ATT
  4798.     DW    ZBRAN
  4799.     DW    WHERE1-$
  4800.     DW    BLK
  4801.     DW    ATT
  4802.     DW    DUPP
  4803.     DW    SCR
  4804.     DW    STORE
  4805.     DW    CR
  4806.     DW    CR
  4807.     DW    ADOTQ
  4808.     DB    5
  4809.     DB    'SCR# '
  4810.     DW    DUPP
  4811.     DW    DOT
  4812.     DW    TOIN
  4813.     DW    ATT
  4814.     DW    LIT
  4815.     DW    3FFH
  4816.     DW    MIN
  4817.     DW    CSLL
  4818.     DW    SLMOD
  4819.     DW    DUPP
  4820.     DW    ADOTQ
  4821.     DB    6
  4822.     DB    'LINE# '
  4823.     DW    DOT
  4824.     DW    CSLL
  4825.     DW    STAR
  4826.     DW    ROT
  4827.     DW    BLOCK
  4828.     DW    PLUS
  4829.     DW    CR
  4830.     DW    CR
  4831.     DW    CSLL
  4832.     DW    DTRAI
  4833.     DW    TYPEE
  4834.     DW    TOIN
  4835.     DW    ATT
  4836.     DW    LIT
  4837.     DW    3FFH
  4838.     DW    GREAT
  4839.     DW    PLUS
  4840.     DW    BRAN
  4841.     DW    WHERE2-$
  4842. WHERE1    DW    TOIN
  4843.     DW    ATT
  4844. WHERE2    DW    CR
  4845.     DW    HERE
  4846.     DW    CAT
  4847.     DW    DUPP
  4848.     DW    TOR
  4849.     DW    SUBB
  4850.     DW    HERE
  4851.     DW    RAT
  4852.     DW    PLUS
  4853.     DW    ONEP
  4854.     DW    CAT
  4855.     DW    LIT
  4856.     DW    20H
  4857.     DW    EQUAL
  4858.     DW    ZBRAN
  4859.     DW    WHERE3-$
  4860.     DW    ONEM
  4861. WHERE3    DW    SPACS
  4862.     DW    FROMR
  4863.     DW    ZERO
  4864.     DW    ADO
  4865. WHERE4    DW    LIT
  4866.     DW    5EH
  4867.     DW    EMIT
  4868.     DW    ALOOP
  4869.     DW    WHERE4-$
  4870.     DW    EXIT
  4871. ;
  4872.     DB    0C5H        ;  WHILE
  4873.     DB    'WHIL'
  4874.     DB    'E'+80H
  4875.     DW    WHERE-8
  4876. WHILE    DW    DOCOL
  4877.     DW    IFF
  4878.     DW    TWOP
  4879.     DW    EXIT
  4880. ;
  4881.     DB    85H        ;  WIDTH
  4882.     DB    'WIDT'
  4883.     DB    'H'+80H
  4884.     DW    WHILE-8
  4885. WIDTHH    DW    DOUSE
  4886.     DW    0CH
  4887. ;
  4888.     DB    84H        ;  WORD
  4889.     DB    'WOR'
  4890.     DB    'D'+80H
  4891.     DW    WIDTHH-8
  4892. WORDD    DW    DOCOL
  4893.     DW    TWORD
  4894.     DW    ATT
  4895.     DW    EXEC
  4896.     DW    EXIT
  4897. ;
  4898.     DB    0C0H        ;  X   (NULL)
  4899.     DB    80H
  4900.     DW    WORDD-7
  4901. NULL    DW    DOCOL
  4902.     DW    BLK
  4903.     DW    ATT
  4904.     DW    ZBRAN
  4905.     DW    OFFSET NULL1-$
  4906.     DW    STATE
  4907.     DW    ATT
  4908.     DW    QSTREAM
  4909. NULL1    DW    FROMR
  4910.     DW    DROP
  4911.     DW    EXIT
  4912. ;
  4913.     DB    83H        ;  XOR
  4914.     DB    'XO'
  4915.     DB    'R'+80H
  4916.     DW    NULL-4
  4917. XORR    DW    $+2
  4918.     POP    AX
  4919.     POP    BX
  4920.     XOR    AX,BX
  4921.     JMP    APUSH
  4922. ;
  4923.     DB    0C1H        ;  [
  4924.     DB    '['+80H
  4925.     DW    XORR-6
  4926. LBRAC    DW    DOCOL
  4927.     DW    ZERO
  4928.     DW    STATE
  4929.     DW    STORE
  4930.     DW    EXIT
  4931. ;
  4932.     DB    0C9H        ;  [COMPILE]
  4933.     DB    '[COMPILE'
  4934.     DB    ']'+80H
  4935.     DW    LBRAC-4
  4936. BCOMP    DW    DOCOL
  4937.     DW    QCOMP
  4938.     DW    DFIND
  4939.     DW    NOTT
  4940.     DW    AABORTQ
  4941.     DB    9
  4942.     DB    'NOT FOUND'
  4943.     DW    DROP
  4944.     DW    CFA
  4945.     DW    COMMA
  4946.     DW    EXIT
  4947. ;
  4948.     DB    81H        ;  ]
  4949.     DB    ']'+80H
  4950.     DW    BCOMP-0CH
  4951. RBRAC    DW    DOCOL
  4952.     DW    LIT
  4953.     DW    0C0H
  4954.     DW    STATE
  4955.     DW    STORE
  4956.     DW    EXIT
  4957. ;
  4958.     FSEG    ENDS
  4959. ;
  4960.     END    ORIG
  4961. ;
  4962.