frakswe

FORTH800 Assembly Sourcecode

Nov 20th, 2022
211
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Z80 Assembler 105.06 KB | Source Code | 0 0
  1.           TITLE 'FORTH800 FÖR ABC 800'
  2. ;****************************
  3. ;
  4. ; FORTH FOR ABC80
  5. ;
  6. ; BOB JOHNSEN
  7. ;
  8. ; 1982.06.06
  9. ;
  10. ; MODIFIED FOR ABC 800
  11. ;
  12. ; MATS KNUTS  ABC-Klubben <746>
  13. ;
  14. ; 1982.09.30
  15. ;
  16. ;
  17. ;****************************
  18. FIGREL    EQU   1
  19. FIGREV    EQU   1
  20. USRVER    EQU   6
  21. ;
  22. ; ASCII CHAR USED
  23. ;
  24. ABL       EQU   20H  ; SPACE
  25. ACR       EQU   0DH  ; CR
  26. ADOT      EQU   02EH ; PERIOD
  27. BELL      EQU   07H  ; BELL
  28. BSIN      EQU   08H  ; INPUT BS
  29. BSOUT     EQU   08H  ; OUTPUT BS
  30. DLE       EQU   10H  ; CTRL-P
  31. LF        EQU   0AH  ; LF
  32. FF        EQU   0CH  ; FF
  33. ;
  34. ; MEMORY ALLOCATION
  35. ;
  36. ; IN THE FOLLOWING LIST OF EQUATES
  37. ; * WILL INDICATE VALUES THAT MUST BE ALTERED FOR 40 CHAR. SCREENS
  38. ; ** WILL INDICATE VALUES THAT MUST BE ALTERED FOR 16K MEMORY
  39. ; THE CURRENT VALUES ARE APPROPRIATE FOR 80 CHAR. SCREEN AND 32K
  40. ;
  41. EM        EQU   0F500H            ; TOP OF MEMORY +1 = LIMIT
  42. BPSCR     EQU   1024 ; BYTES/SCREEN  * (768)
  43. SPDRV2    EQU   612  ; SECTORS/DRIVE (DOUBLE DENS) * (615)
  44. SPDRV1    EQU   292  ; SECTORS/DRIVE (SINGLE DENS) * (294)
  45. CPLL      EQU   64   ; C/L EDITING                 * (36)
  46. LPSCR     EQU   16   ; LINES/SCREEN                * (21)
  47. NSCR      EQU   10   ; #SCREENS                    * (12) ** (2)
  48. KBBUF     EQU   BPSCR ; BYTES/BUFFER
  49. US        EQU   40H  ; USER VARIABLES SPACE
  50. RTS       EQU   0A0H ; RETURN STACK AND TERM. BUFFER SPACE
  51. ;
  52. CO        EQU   KBBUF+4 ;DISK BUFFER +2 HEADER +2 TAIL
  53. NBUF      EQU   NSCR*BPSCR/KBBUF   ; # BUFFERS
  54. BUF1      EQU   EM-CO*NBUF        ; ADDR FIRST DISC BUFFER
  55. INITR0    EQU   BUF1-US ; (R0)
  56. INITS0    EQU   INITR0-RTS ; (S0)
  57. ;
  58. NAMFLD    EQU   0FE00H ; PRINTERFILNAMN I POKEAREAN
  59. KOL       EQU   0FF52H ; 65012 I ABC 80
  60. RAD       EQU   0FF53H ; 65011 I ABC 80
  61. TGBF      EQU   0FFE2H ; 65013 I ABC 80  TANGENTBORDSFLAGGA
  62. ;
  63. ;----------------------------------------------------------------------
  64. ;
  65.           ORG     8000H ; ** (0C000H)
  66. ORIG      NOP
  67.           JP      CLD
  68.           NOP
  69.           JP      WRM
  70.           DEFB    FIGREL
  71.           DEFB    FIGREV
  72.           DEFB    USRVER
  73.           DEFB    0EH
  74.           DEFW    TASK-7
  75.           DEFW    BSIN
  76.           DEFW    INITR0
  77. ;
  78. ;<<<<< FOLLOWING USED BY COLD
  79. ; MUST BE IN SAME ORDER AS USER VARIABLES
  80. ;
  81.           DEFW    INITS0
  82.           DEFW    INITR0
  83.           DEFW    INITS0
  84.           DEFW    1FH
  85.           DEFW    1
  86.           DEFW    INITDP
  87.           DEFW    INITDP
  88.           DEFW    FORTH+8
  89. ;
  90. ;<<<<< END DATA USED BY COLD
  91. ;
  92.           DEFW    0
  93.           DEFW    0B250H
  94. UP        DEFW    INITR0
  95. RPP       DEFW    INITR0
  96. ;
  97. ;----------------------------------------------------------
  98. ;
  99. ; NEXT, THE FORTH ADDRESS INTERPRETER
  100. ; (POST INCREMENTING VERSION)
  101. ;
  102. DPUSH     PUSH  DE
  103. HPUSH     PUSH  HL
  104. NEXT      LD    A,(BC)
  105.           INC   BC
  106.           LD    L,A
  107.           LD    A,(BC)
  108.           INC   BC
  109.           LD    H,A
  110. NEXT1     LD    E,(HL)
  111.           INC   HL
  112.           LD    D,(HL)
  113.           EX    DE,HL
  114.           JP    (HL)
  115. ;
  116. ; FORTH DICTIONARY
  117. ;
  118. DP0       DEFB     83H  ; LIT
  119.           DEFM     'LI'
  120.           DEFB     'T'+80H
  121.           DEFW     0  ; MARK END OF DICTIONARY
  122. LIT       DEFW     $+2
  123.           LD    A,(BC)
  124.           INC   BC
  125.           LD    L,A
  126.           LD    A,(BC)
  127.           INC   BC
  128.           LD    H,A
  129.           JR    HPUSH
  130.           DEFB     87H  ; EXECUTE
  131.           DEFM     'EXECUT'
  132.           DEFB     'E'+80H
  133.           DEFW     LIT-6
  134. EXEC      DEFW     $+2
  135.           POP   HL
  136.           JR    NEXT1
  137.           DEFB     86H  ; BRANCH
  138.           DEFM     'BRANC'
  139.           DEFB     'H'+80H
  140.           DEFW     EXEC-0AH
  141. BRAN      DEFW     $+2
  142. BRAN1     LD    H,B
  143.           LD    L,C
  144.           LD    E,(HL)
  145.           INC   HL
  146.           LD    D,(HL)
  147.           DEC   HL
  148.           ADD   HL,DE
  149.           LD    C,L
  150.           LD    B,H
  151.           JP    NEXT
  152. ;
  153.           DEFB     87H  ; 0BRANCH
  154.           DEFM     '0BRANC'
  155.           DEFB     'H'+80H
  156.           DEFW     BRAN-9
  157. ZBRAN     DEFW     $+2
  158.           POP HL
  159.           LD    A,L
  160.           OR    H
  161.           JR    Z,BRAN1
  162.           INC   BC
  163.           INC   BC
  164.           JP    NEXT
  165. ;
  166.           DEFB     86H  ; (LOOP)
  167.           DEFM     '(LOOP'
  168.           DEFB     ')'+80H
  169.           DEFW     ZBRAN-0AH
  170. XLOOP     DEFW     $+2
  171.           LD    DE,1
  172. XLOO1     LD    HL,(RPP)
  173.           LD    A,(HL)
  174.           ADD   A,E
  175.           LD    (HL),A
  176.           LD    E,A
  177.           INC   HL
  178.           LD    A,(HL)
  179.           ADC   A,D
  180.           LD    (HL),A
  181.           INC   HL
  182.           INC   D
  183.           DEC   D
  184.           LD    D,A
  185.           JP    M,XLOO2
  186.           LD    A,E
  187.           SUB   (HL)
  188.           LD    A,D
  189.           INC   HL
  190.           SBC   A,(HL)
  191.           JR    XLOO3
  192. XLOO2     LD    A,(HL)
  193.           SUB   E
  194.           INC   HL
  195.           LD    A,(HL)
  196.           SBC   A,D
  197. ;
  198. XLOO3     JP    M,BRAN1
  199.           INC   HL
  200.           LD    (RPP),HL
  201.           INC   BC
  202.           INC   BC
  203.           JP    NEXT
  204. ;
  205.           DEFB     87H  ; (+LOOP)
  206.           DEFM     '(+LOOP'
  207.           DEFB     ')'+80H
  208.           DEFW     XLOOP-9
  209. XPLOO     DEFW     $+2
  210.           POP   DE
  211.           JR    XLOO1
  212. ;
  213.           DEFB     84H  ; (DO)
  214.           DEFM     '(DO'
  215.           DEFB     ')'+80H
  216.           DEFW     XPLOO-0AH
  217. XDO       DEFW     $+2
  218.           LD    HL,(RPP)
  219.           DEC   HL
  220.           DEC   HL
  221.           DEC   HL
  222.           DEC   HL
  223.           LD    (RPP),HL
  224.           POP   DE
  225.           LD    (HL),E
  226.           INC   HL
  227.           LD    (HL),D
  228.           POP   DE
  229.           INC   HL
  230.           LD    (HL),E
  231.           INC   HL
  232.           LD    (HL),D
  233.  
  234.           JP    NEXT
  235. ;
  236.           DEFB     81H  ; I
  237.           DEFB     'I'+80H
  238.           DEFW     XDO-7
  239. IDO       DEFW     $+2
  240.           LD    HL,(RPP)
  241.           LD    E,(HL)
  242.           INC   HL
  243.           LD    D,(HL)
  244.           PUSH  DE
  245.           JP    NEXT
  246. ;
  247.           DEFB     85H  ; DIGIT
  248.           DEFM     'DIGI'
  249.           DEFB     'T'+80H
  250.           DEFW     IDO-4
  251. DIGIT     DEFW     $+2
  252.           POP   HL
  253.           POP   DE
  254.           LD    A,E
  255.           SUB   30H
  256.           JP    M,DIGI2
  257.           CP    0AH
  258.           JP    M,DIGI1
  259.           SUB   7
  260.           CP    0AH
  261.           JP    M,DIGI2
  262. DIGI1     CP    L
  263.           JP    P,DIGI2
  264.           LD    E,A
  265.           LD    HL,1
  266.           JP    DPUSH
  267. DIGI2     LD    L,H
  268.           JP    HPUSH
  269. ;
  270.           DEFB     86H  ; (FIND)
  271.           DEFM     '(FIND'
  272.           DEFB     ')'+80H
  273.           DEFW     DIGIT-8
  274. PFIND     DEFW     $+2
  275.           POP   DE
  276. PFIN1     POP   HL
  277.           PUSH  HL
  278.           LD    A,(DE)
  279.           XOR   (HL)
  280.           AND   3FH
  281.           JR    NZ,PFIN4
  282. PFIN2     INC   HL
  283.           INC   DE
  284.           LD    A,(DE)
  285.           XOR   (HL)
  286.           ADD   A,A
  287.           JR    NZ,PFIN3
  288.           JR    NC,PFIN2
  289.           LD    HL,5
  290.           ADD   HL,DE
  291.           EX    (SP),HL
  292. PFIN6     DEC   DE
  293.           LD    A,(DE)
  294.           OR    A
  295.           JP    P,PFIN6
  296.           LD    E,A
  297.           LD    D,0
  298.           LD    HL,1
  299.           JP    DPUSH
  300. PFIN3     JR    C,PFIN5
  301. PFIN4     INC   DE
  302.           LD    A,(DE)
  303.           OR    A
  304.           JP    P,PFIN4
  305. PFIN5     INC   DE
  306.           EX    DE,HL
  307.           LD    E,(HL)
  308.           INC   HL
  309.           LD    D,(HL)
  310.           LD    A,D
  311.           OR    E
  312.           JP    NZ,PFIN1
  313.           POP   HL
  314.           LD    HL,0
  315.           JP    HPUSH
  316. ;
  317. ;
  318. ; THIS VERSION OF ENCLOSE IS TAKEN FROM FORTH DIMENSIONS
  319. ; III/2 AND IS APPROPRIATE IF DISK BUFFERS ARE 256 BYTES OR MORE
  320.           DEFB     87H  ; ENCLOSE
  321.           DEFM     'ENCLOS'
  322.           DEFB     'E'+80H
  323.           DEFW     PFIND-9
  324. ENCL      DEFW     $+2
  325.           POP   DE
  326.           POP   HL
  327.           PUSH  HL
  328.           LD    A,E
  329.           LD    DE,-1
  330.           DEC   HL
  331. ENCL1     INC   HL
  332.           INC   DE
  333.           CP    (HL)
  334.           JR    Z,ENCL1
  335.           PUSH  DE
  336.           PUSH  AF
  337.           LD    A,(HL)
  338.           AND   A
  339.           JR    NZ,ENCL2
  340.           POP   AF
  341.           INC   DE
  342.           PUSH  DE
  343.           DEC   DE
  344.           PUSH  DE
  345.           JP    NEXT
  346. ENCL2     POP   AF
  347.           INC   HL
  348.           INC   DE
  349.           CP    (HL)
  350.           JR    Z,ENCL4
  351.           PUSH  AF
  352.           LD    A,(HL)
  353.           AND   A
  354.           JR    NZ,ENCL2
  355.           POP   AF
  356.           PUSH  DE
  357.           PUSH  DE
  358.           JP    NEXT
  359. ENCL4     PUSH  DE
  360.           INC   DE
  361.           PUSH  DE
  362.           JP    NEXT
  363. ;
  364.           DEFB     84H  ; EMIT
  365.           DEFM     'EMI'
  366.           DEFB     'T'+80H
  367.           DEFW     ENCL-0AH
  368. EMIT      DEFW     DOCOL
  369.           DEFW     PEMIT
  370.           DEFW     ONE
  371.           DEFW     OUTT
  372.           DEFW     PSTOR
  373.           DEFW     SEMIS
  374. ;
  375.           DEFB     83H  ; KEY
  376.           DEFM     'KE'
  377.           DEFB     'Y'+80H
  378.           DEFW     EMIT-7
  379. KEY       DEFW     $+2
  380.           JP    PKEY
  381. ;
  382.           DEFB     89H  ; ?TERMINAL
  383.           DEFM     '?TERMINA'
  384.           DEFB     'L'+80H
  385.           DEFW     KEY-6
  386. QTERM     DEFW     $+2
  387.           LD    HL,0
  388.           JP    PQTER
  389. ;
  390.           DEFB     82H  ; CR
  391.           DEFB     'C'
  392.           DEFB     'R'+80H
  393.           DEFW     QTERM-0CH
  394. CR        DEFW     $+2
  395.           JP    PCR
  396. ;
  397.           DEFB     85H  ; CMOVE
  398.           DEFM     'CMOV'
  399.           DEFB     'E'+80H
  400.           DEFW     CR-5
  401. CMOVE     DEFW     $+2
  402.           LD    (SAVEBC),BC
  403.           POP   BC                ; # BYTES TO BE TRANSFERRED
  404.           POP   DE                ; DESTINATION
  405.           POP   HL                ; SOURCE
  406.           LD    A,B               ; TEST IF ZERO FROM START
  407.           OR    C
  408.           JR    Z,CMOV1
  409.           LDIR  ; START TRANSFER
  410. CMOV1     LD    BC,(SAVEBC)
  411.           JP    NEXT
  412. ;
  413.           DEFB    86H  ; <CMOVE
  414.           DEFM     '<CMOV'
  415.           DEFB     'E'+80H
  416.           DEFW     CMOVE-8
  417. MCMOVE    DEFW  $+2
  418.           LD    (SAVEBC),BC
  419.           POP   BC
  420.           POP   HL
  421.           ADD   HL,BC
  422.           EX    DE,HL
  423.           POP   HL
  424.           ADD   HL,BC
  425.           LD    A,B
  426.           OR    C
  427.           JR    Z,MCMOV1
  428.           DEC   DE
  429.           DEC   HL
  430.           LDDR
  431. MCMOV1    LD    BC,(SAVEBC)
  432.           JP    NEXT
  433.           DEFB     82H  ; U*
  434.           DEFB     'U'
  435.           DEFB     '*'+80H
  436.           DEFW     MCMOVE-9
  437. USTAR     DEFW     $+2
  438.           POP   DE
  439.           POP   HL
  440.           PUSH  BC
  441.           LD    B,H
  442.           LD    A,L
  443.           CALL  MPYX
  444.           PUSH  HL
  445.           LD    H,A
  446.           LD    A,B
  447.           LD    B,H
  448.           CALL  MPYX
  449.           POP   DE
  450.           LD    C,D
  451.           ADD   HL,BC
  452.           ADC   A,0
  453.           LD    D,L
  454.           LD    L,H
  455.           LD    H,A
  456.           POP   BC
  457.           PUSH  DE
  458.           JP    HPUSH
  459. ;
  460. ;  MULTIPLY PRIMITIVE
  461. ;
  462. MPYX      LD    HL,0
  463.           LD    C,8
  464. MPYX1     ADD   HL,HL
  465.           RLA
  466.           JR    NC,MPYX2
  467.           ADD   HL,DE
  468.           ADC   A,0
  469. MPYX2     DEC   C
  470.           JR    NZ,MPYX1
  471.           RET
  472. ;
  473.           DEFB  82H ; U/
  474.           DEFB  'U'
  475.           DEFB  '/'+80H
  476.           DEFW  USTAR-5
  477. USLAS     DEFW  $+2
  478.           LD    HL,4
  479.           ADD   HL,SP
  480.           LD    E,(HL)
  481.           LD    (HL),C
  482.           INC   HL
  483.           LD    D,(HL)
  484.           LD    (HL),B
  485.           POP   BC
  486.           POP   HL
  487.           LD    A,L
  488.           SUB   C
  489.           LD    A,H
  490.           SBC   A,B
  491.           JR    C,USLA1
  492.           LD    HL,0FFFFH
  493.           LD    DE,0FFFFH
  494.           JR    USLA7
  495. USLA1     LD    A,16
  496. USLA2     ADD   HL,HL
  497.           RLA
  498.           EX    DE,HL
  499.           ADD   HL,HL
  500.           JR    NC,USLA3
  501.           INC   DE
  502.           AND   A
  503. USLA3     EX    DE,HL
  504.           RRA
  505.           PUSH  AF
  506.           JR    NC,USLA4
  507.           LD    A,L
  508.           SUB   C
  509.           LD    L,A
  510.           LD    A,H
  511.           SBC   A,B
  512.           LD    H,A
  513.           JR    USLA5
  514. USLA4     LD    A,L
  515.           SUB   C
  516.           LD    L,A
  517.           LD    A,H
  518.           SBC   A,B
  519.           LD    H,A
  520.           JR    NC,USLA5
  521.           ADD   HL,BC
  522.           DEC   DE
  523. USLA5     INC   DE
  524. USLA6     POP   AF
  525.           DEC   A
  526.           JR    NZ,USLA2
  527. USLA7     POP   BC
  528.           PUSH  HL
  529.           PUSH  DE
  530.           JP    NEXT
  531. ;
  532.           DEFB     83H  ; AND
  533.           DEFM     'AN'
  534.           DEFB     'D'+80H
  535.           DEFW     USLAS-5
  536. ANDD      DEFW     $+2
  537.           POP   DE
  538.           POP   HL
  539.           LD    A,E
  540.           AND   L
  541.           LD    L,A
  542.           LD    A,D
  543.           AND   H
  544.           LD    H,A
  545.           JP    HPUSH
  546. ;
  547.           DEFB     82H  ; OR
  548.           DEFB     'O'
  549.           DEFB     'R'+80H
  550.           DEFW     ANDD-6
  551. ORR       DEFW     $+2
  552.           POP   DE
  553.           POP   HL
  554.           LD    A,E
  555.           OR    L
  556.           LD    L,A
  557.           LD    A,D
  558.           OR    H
  559.           LD    H,A
  560.           JP    HPUSH
  561. ;
  562.           DEFB     83H  ; XOR
  563.           DEFM     'XO'
  564.           DEFB     'R'+80H
  565.           DEFW     ORR-5
  566. XORR      DEFW     $+2
  567.           POP   DE
  568.           POP   HL
  569.           LD    A,E
  570.           XOR   L
  571.           LD    L,A
  572.           LD    A,D
  573.           XOR   H
  574.           LD    H,A
  575.           JP    HPUSH
  576. ;
  577.           DEFB     83H  ; SP@
  578.           DEFM     'SP'
  579.           DEFB     '@'+80H
  580.           DEFW     XORR-6
  581. SPAT      DEFW     $+2
  582.           LD    HL,0
  583.           ADD   HL,SP
  584.           JP    HPUSH
  585. ;
  586.           DEFB     83H  ; SP!
  587.           DEFM     'SP'
  588.           DEFB     '!'+80H
  589.           DEFW     SPAT-6
  590. SPSTO     DEFW     $+2
  591.           LD    HL,(UP)
  592.           LD    DE,6
  593.           ADD   HL,DE
  594.           LD    E,(HL)
  595.           INC   HL
  596.           LD    D,(HL)
  597.           EX    DE,HL
  598.           LD    SP,HL
  599.           JP    NEXT
  600. ;
  601.           DEFB     83H  ; RP@
  602.           DEFM     'RP'
  603.           DEFB     '@'+80H
  604.           DEFW     SPSTO-6
  605. RPAT      DEFW     $+2
  606.           LD    HL,(RPP)
  607.           JP    HPUSH
  608. ;
  609.           DEFB     83H  ; RP!
  610.           DEFM     'RP'
  611.           DEFB     '!'+80H
  612.           DEFW     RPAT-6
  613. RPSTO     DEFW     $+2
  614.           LD    HL,(UP)
  615.           LD    DE,8
  616.           ADD   HL,DE
  617.           LD    E,(HL)
  618.           INC   HL
  619.           LD    D,(HL)
  620.           EX    DE,HL
  621.           LD    (RPP),HL
  622.           JP    NEXT
  623. ;
  624.           DEFB     82H  ; ;S
  625.           DEFB     ';'
  626.           DEFB     'S'+80H
  627.           DEFW     RPSTO-6
  628. SEMIS     DEFW     $+2
  629.           LD    HL,(RPP)
  630.           LD    C,(HL)
  631.           INC   HL
  632.           LD    B,(HL)
  633.           INC   HL
  634.           LD    (RPP),HL
  635.           JP    NEXT
  636. ;
  637.           DEFB     85H  ; LEAVE
  638.           DEFM     'LEAV'
  639.           DEFB     'E'+80H
  640.           DEFW     SEMIS-5
  641. LEAVE     DEFW     $+2
  642.           LD    HL,(RPP)
  643.           LD    E,(HL)
  644.           INC   HL
  645.           LD    D,(HL)
  646.           INC   HL
  647.           LD    (HL),E
  648.           INC   HL
  649.           LD    (HL),D
  650.           JP    NEXT
  651. ;
  652.           DEFB     82H  ; >R
  653.           DEFB     '>'
  654.           DEFB     'R'+80H
  655.           DEFW     LEAVE-8
  656. TOR       DEFW     $+2
  657.           POP   DE
  658.           LD    HL,(RPP)
  659.           DEC   HL
  660.           DEC   HL
  661.           LD    (RPP),HL
  662.           LD    (HL),E
  663.           INC   HL
  664.           LD    (HL),D
  665.           JP    NEXT
  666. ;
  667.           DEFB     82H  ; R>
  668.           DEFB     'R'
  669.           DEFB     '>'+80H
  670.           DEFW     TOR-5
  671. FROMR     DEFW     $+2
  672.           LD    HL,(RPP)
  673.           LD    E,(HL)
  674.           INC   HL
  675.           LD    D,(HL)
  676.           INC   HL
  677.           LD    (RPP),HL
  678.           PUSH  DE
  679.           JP    NEXT
  680. ;
  681.           DEFB     81H  ; R
  682.           DEFB     'R'+80H
  683.           DEFW     FROMR-5
  684. RR1       DEFW     IDO+2
  685. ;
  686.           DEFB     82H  ; 0=
  687.           DEFB     '0'
  688.           DEFB     '='+80H
  689.           DEFW     RR1-4
  690. ZEQU      DEFW     $+2
  691.           POP   HL
  692.           LD    A,L
  693.           OR    H
  694.           LD    HL,0
  695.           JR    NZ,ZEQU1
  696.           INC   HL
  697. ZEQU1     JP    HPUSH
  698. ;
  699.           DEFB     82H  ; 0<
  700.           DEFB     '0'
  701.           DEFB     '<'+80H
  702.           DEFW     ZEQU-5
  703. ZLESS     DEFW     $+2
  704.           POP   HL
  705.           ADD   HL,HL
  706.           LD    HL,0
  707.           JR    NC,ZLES1
  708.           INC   HL
  709. ZLES1     JP    HPUSH
  710. ;
  711.           DEFB     81H  ; +
  712.           DEFB     '+'+80H
  713.           DEFW     ZLESS-5
  714. PLUS      DEFW     $+2
  715.           POP   DE
  716.           POP   HL
  717.           ADD   HL,DE
  718.           JP    HPUSH
  719. ;
  720.           DEFB     82H  ; D+
  721.           DEFB     'D'
  722.           DEFB     '+'+80H
  723.           DEFW     PLUS-4
  724. DPLUS     DEFW     $+2
  725.           LD    HL,6
  726.           ADD   HL,SP
  727.           LD    E,(HL)
  728.           LD    (HL),C
  729.           INC   HL
  730.           LD    D,(HL)
  731.           LD    (HL),B
  732.           POP   BC
  733.           POP   HL
  734.           ADD   HL,DE
  735.           EX    DE,HL
  736.           POP   HL
  737.           LD    A,L
  738.           ADC   A,C
  739.           LD    L,A
  740.           LD    A,H
  741.           ADC   A,B
  742.           LD    H,A
  743.           POP   BC
  744.           PUSH  DE
  745.           JP    HPUSH
  746. ;
  747.           DEFB     85H  ; MINUS
  748.           DEFM     'MINU'
  749.           DEFB     'S'+80H
  750.           DEFW     DPLUS-5
  751. MINUS     DEFW     $+2
  752.           POP   HL
  753.           LD    A,L
  754.           CPL
  755.           LD    L,A
  756.           LD    A,H
  757.           CPL
  758.           LD    H,A
  759.           INC   HL
  760.           JP    HPUSH
  761. ;
  762.           DEFB     86H  ; DMINUS
  763.           DEFM     'DMINU'
  764.           DEFB     'S'+80H
  765.           DEFW     MINUS-8
  766. DMINU     DEFW     $+2
  767.           POP   HL
  768.           POP   DE
  769.           SUB   A
  770.           SUB   E
  771.           LD    E,A
  772.           LD    A,0
  773.           SBC   A,D
  774.           LD    D,A
  775.           LD    A,0
  776.           SBC   A,L
  777.           LD    L,A
  778.           LD    A,0
  779.           SBC   A,H
  780.           LD    H,A
  781.           PUSH  DE
  782.           JP    HPUSH
  783. ;
  784.           DEFB     84H  ; OVER
  785.           DEFM     'OVE'
  786.           DEFB     'R'+80H
  787.           DEFW     DMINU-9
  788. OVER      DEFW     $+2
  789.           POP   DE
  790.           POP   HL
  791.           PUSH  HL
  792.           JP    DPUSH
  793. ;
  794.           DEFB     84H  ; DROP
  795.           DEFM     'DRO'
  796.           DEFB     'P'+80H
  797.           DEFW     OVER-7
  798. DROP      DEFW     $+2
  799.           POP   HL
  800.           JP    NEXT
  801. ;
  802.           DEFB     84H  ; SWAP
  803.           DEFM     'SWA'
  804.           DEFB     'P'+80H
  805.           DEFW     DROP-7
  806. SWAP      DEFW     $+2
  807.           POP   HL
  808.           EX    (SP),HL
  809.           JP    HPUSH
  810. ;
  811.           DEFB     83H  ; DUP
  812.           DEFM     'DU'
  813.           DEFB     'P'+80H
  814.           DEFW     SWAP-7
  815. DUP       DEFW     $+2
  816.           POP   HL
  817.           PUSH  HL
  818.           JP    HPUSH
  819. ;
  820.           DEFB     84H  ; 2DUP
  821.           DEFM     '2DU'
  822.           DEFB     'P'+80H
  823.           DEFW     DUP-6
  824. TDUP      DEFW     $+2
  825.           POP   HL
  826.           POP   DE
  827.           PUSH  DE
  828.           PUSH  HL
  829.           JP    DPUSH
  830. ;
  831.           DEFB     82H  ; PLUS STORE
  832.           DEFB     '+'
  833.           DEFB     '!'+80H
  834.           DEFW     TDUP-7
  835. PSTOR     DEFW     $+2
  836.           POP   HL
  837.           POP   DE
  838.           LD    A,(HL)
  839.           ADD   A,E
  840.           LD    (HL),A
  841.           INC   HL
  842.           LD    A,(HL)
  843.           ADC   A,D
  844.           LD    (HL),A
  845.           JP    NEXT
  846. ;
  847.           DEFB     86H  ; TOGGLE
  848.           DEFM     'TOGGL'
  849.           DEFB     'E'+80H
  850.           DEFW     PSTOR-5
  851. TOGGL     DEFW     $+2
  852.           POP   DE
  853.           POP   HL
  854.           LD    A,(HL)
  855.           XOR   E
  856.           LD    (HL),A
  857.           JP    NEXT
  858. ;
  859.           DEFB     81H  ; @
  860.           DEFB     '@'+80H
  861.           DEFW     TOGGL-9
  862. AT        DEFW     $+2
  863.           POP   HL
  864.           LD    E,(HL)
  865.           INC   HL
  866.           LD    D,(HL)
  867.           PUSH  DE
  868.           JP    NEXT
  869. ;
  870.           DEFB     82H  ; C@
  871.           DEFB     'C'
  872.           DEFB     '@'+80H
  873.           DEFW     AT-4
  874. CAT       DEFW     $+2
  875.           POP   HL
  876.           LD    L,(HL)
  877.           LD    H,0
  878.           JP    HPUSH
  879. ;
  880.           DEFB     82H  ; 2@
  881.           DEFB     '2'
  882.           DEFB     '@'+80H
  883.           DEFW     CAT-5
  884. TAT       DEFW     $+2
  885.           POP   HL
  886.           LD    DE,2
  887.           ADD   HL,DE
  888.           LD    E,(HL)
  889.           INC   HL
  890.           LD    D,(HL)
  891.           PUSH  DE
  892.           LD    DE,-3
  893.           ADD   HL,DE
  894.           LD    E,(HL)
  895.           INC   HL
  896.           LD    D,(HL)
  897.           PUSH  DE
  898.           JP    NEXT
  899.           DEFB     81H  ; STORE
  900.           DEFB     '!'+80H
  901.           DEFW     TAT-5
  902. STORE     DEFW     $+2
  903.           POP   HL
  904.           POP   DE
  905.           LD    (HL),E
  906.           INC   HL
  907.           LD    (HL),D
  908.           JP    NEXT
  909. ;
  910.           DEFB     82H  ; C STORE
  911.           DEFB     'C'
  912.           DEFB     '!'+80H
  913.           DEFW     STORE-4
  914. CSTOR     DEFW     $+2
  915.           POP   HL
  916.           POP   DE
  917.           LD    (HL),E
  918.           JP    NEXT
  919. ;
  920.           DEFB     82H  ; 2 STORE
  921.           DEFB     '2'
  922.           DEFB     '!'+80H
  923.           DEFW     CSTOR-5
  924. TSTOR     DEFW     $+2
  925.           POP   HL
  926.           POP   DE
  927.           LD    (HL),E
  928.           INC   HL
  929.           LD    (HL),D
  930.           INC   HL
  931.           POP   DE
  932.           LD    (HL),E
  933.           INC   HL
  934.           LD    (HL),D
  935.           JP    NEXT
  936. ;
  937.           DEFB     0C1H  ; :
  938.           DEFB     ':'+80H
  939.           DEFW     TSTOR-5
  940. COLON     DEFW     DOCOL
  941.           DEFW     QEXEC
  942.           DEFW     SCSP
  943.           DEFW     CURR
  944.           DEFW     AT
  945.           DEFW     CONT
  946.           DEFW     STORE
  947.           DEFW     CREAT
  948.           DEFW     RBRAC
  949.           DEFW     PSCOD
  950. DOCOL     LD    HL,(RPP)
  951.           DEC   HL
  952.           LD    (HL),B
  953.           DEC   HL
  954.           LD    (HL),C
  955.           LD    (RPP),HL
  956.           INC   DE
  957.           LD    C,E
  958.           LD    B,D
  959.           JP    NEXT
  960. ;
  961.           DEFB     0C1H  ; ;
  962.           DEFB     ';'+80H
  963.           DEFW     COLON-4
  964. SEMI      DEFW     DOCOL
  965.           DEFW     QCSP
  966.           DEFW     COMP
  967.           DEFW     SEMIS
  968.           DEFW     SMUDG
  969.           DEFW     LBRAC
  970.           DEFW     SEMIS
  971. ;
  972.           DEFB     84H  ; NOOP
  973.           DEFM     'NOO'
  974.           DEFB     'P'+80H
  975.           DEFW     SEMI-4
  976. NOOP      DEFW     DOCOL
  977.           DEFW     SEMIS
  978. ;
  979.           DEFB     88H  ; CONSTANT
  980.           DEFM     'CONSTAN'
  981.           DEFB     'T'+80H
  982.           DEFW     NOOP-7
  983. CON       DEFW     DOCOL
  984.           DEFW     CREAT
  985.           DEFW     SMUDG
  986.           DEFW     COMMA
  987.           DEFW     PSCOD
  988. DOCON     INC   DE
  989.           EX    DE,HL
  990.           LD    E,(HL)
  991.           INC   HL
  992.           LD    D,(HL)
  993.           PUSH  DE
  994.           JP    NEXT
  995. ;
  996.           DEFB     88H  ; VARIABLE
  997.           DEFM     'VARIABL'
  998.           DEFB     'E'+80H
  999.           DEFW     CON-0BH
  1000. VAR       DEFW     DOCOL
  1001.           DEFW     CON
  1002.           DEFW     PSCOD
  1003. DOVAR     INC   DE
  1004.           PUSH  DE
  1005.           JP    NEXT
  1006. ;
  1007.           DEFB     84H  ; USER
  1008.           DEFM     'USE'
  1009.           DEFB     'R'+80H
  1010.           DEFW     VAR-0BH
  1011. USER      DEFW     DOCOL
  1012.           DEFW     CON
  1013.           DEFW     PSCOD
  1014. DOUSE     INC   DE
  1015.           EX    DE,HL
  1016.           LD    E,(HL)
  1017.           LD    D,0
  1018.           LD    HL,(UP)
  1019.           ADD   HL,DE
  1020.           JP    HPUSH
  1021. ;
  1022.           DEFB     81H  ; 0
  1023.           DEFB     '0'+80H
  1024.           DEFW     USER-7
  1025. ZERO      DEFW     DOCON
  1026.           DEFW     0
  1027. ;
  1028.           DEFB     81H  ; 1
  1029.           DEFB     '1'+80H
  1030.           DEFW     ZERO-4
  1031. ONE       DEFW     DOCON
  1032.           DEFW     1
  1033. ;
  1034.           DEFB     81H  ; 2
  1035.           DEFB     '2'+80H
  1036.           DEFW     ONE-4
  1037. TWO       DEFW     DOCON
  1038.           DEFW     2
  1039. ;
  1040.           DEFB     81H  ; 3
  1041.           DEFB     '3'+80H
  1042.           DEFW     TWO-4
  1043. THREE     DEFW     DOCON
  1044.           DEFW     3
  1045. ;
  1046.           DEFB     82H  ; BL
  1047.           DEFB     'B'
  1048.           DEFB     'L'+80H
  1049.           DEFW     THREE-4
  1050. BL        DEFW     DOCON
  1051.           DEFW     20H
  1052. ;
  1053.           DEFB     83H  ; C/L
  1054.           DEFM     'C/'
  1055.           DEFB     'L'+80H
  1056.           DEFW     BL-5
  1057. CSLL      DEFW     DOCON
  1058.           DEFW     CPLL ; 35 CHAR/LINE ON ABC80
  1059. ;
  1060.           DEFB     85H  ; FIRST
  1061.           DEFM     'FIRS'
  1062.           DEFB     'T'+80H
  1063.           DEFW     CSLL-6
  1064. FIRST     DEFW     DOCON
  1065.           DEFW     BUF1
  1066. ;
  1067.           DEFB     85H  ; LIMIT
  1068.           DEFM     'LIMI'
  1069.           DEFB     'T'+80H
  1070.           DEFW     FIRST-8
  1071. LIMIT     DEFW     DOCON
  1072.           DEFW     EM
  1073. ;
  1074.           DEFB     85H  ; B/BUF
  1075.           DEFM     'B/BU'
  1076.           DEFB     'F'+80H
  1077.           DEFW     LIMIT-8
  1078. BBUF      DEFW     DOCON
  1079.           DEFW     KBBUF
  1080. ;
  1081.           DEFB     85H  ; B/SCR
  1082.           DEFM     'B/SC'
  1083.           DEFB     'R'+80H
  1084.           DEFW     BBUF-8
  1085. BSCR      DEFW     DOCON
  1086.           DEFW     BPSCR/KBBUF
  1087. ;
  1088.           DEFB     87H  ; +ORIGIN
  1089.           DEFM     '+ORIGI'
  1090.           DEFB     'N'+80H
  1091.           DEFW     BSCR-8
  1092. PORIG     DEFW     DOCOL
  1093.           DEFW     LIT
  1094.           DEFW     ORIG
  1095.           DEFW     PLUS
  1096.           DEFW     SEMIS
  1097. ;
  1098. ; USER VARIABLES
  1099. ;
  1100.           DEFB     82H  ; S0
  1101.           DEFB     'S'
  1102.           DEFB     '0'+80H
  1103.           DEFW     PORIG-0AH
  1104. SZERO     DEFW     DOUSE
  1105.           DEFW     6
  1106. ;
  1107.           DEFB     82H  ; R0
  1108.           DEFB     'R'
  1109.           DEFB     '0'+80H
  1110.           DEFW     SZERO-5
  1111. RZERO     DEFW     DOUSE
  1112.           DEFW     8
  1113. ;
  1114.           DEFB     83H  ; TIB
  1115.           DEFM     'TI'
  1116.           DEFB     'B'+80H
  1117.           DEFW     RZERO-5
  1118. TIB       DEFW     DOUSE
  1119.           DEFB     0AH
  1120. ;
  1121.           DEFB     85H  ; WIDTH
  1122.           DEFM     'WIDT'
  1123.           DEFB     'H'+80H
  1124.           DEFW     TIB-6
  1125. WIDTH     DEFW     DOUSE
  1126.           DEFB     0CH
  1127. ;
  1128.           DEFB     87H  ; WARNING
  1129.           DEFM     'WARNIN'
  1130.           DEFB     'G'+80H
  1131.           DEFW     WIDTH-8
  1132. WARN      DEFW     DOUSE
  1133.           DEFB     0EH
  1134. ;
  1135.           DEFB     85H  ; FENCE
  1136.           DEFM     'FENC'
  1137.           DEFB     'E'+80H
  1138.           DEFW     WARN-0AH
  1139. FENCE     DEFW     DOUSE
  1140.           DEFB     10H
  1141. ;
  1142.           DEFB     82H  ; DP
  1143.           DEFB     'D'
  1144.           DEFB     'P'+80H
  1145.           DEFW     FENCE-8
  1146. DP        DEFW     DOUSE
  1147.           DEFB     12H
  1148. ;
  1149.           DEFB     88H  ; VOC-LINK
  1150.           DEFM     'VOC-LIN'
  1151.           DEFB     'K'+80H
  1152.           DEFW     DP-5
  1153. VOCL      DEFW     DOUSE
  1154.           DEFW     14H
  1155. ;
  1156.           DEFB     83H  ; BLK
  1157.           DEFM     'BL'
  1158.           DEFB     'K'+80H
  1159.           DEFW     VOCL-0BH
  1160. BLK       DEFW     DOUSE
  1161.           DEFB     16H
  1162. ;
  1163.           DEFB     82H  ; IN
  1164.           DEFB     'I'
  1165.           DEFB     'N'+80H
  1166.           DEFW     BLK-6
  1167. INN       DEFW     DOUSE
  1168.           DEFB     18H
  1169. ;
  1170.           DEFB     83H  ; OUT
  1171.           DEFM     'OU'
  1172.           DEFB     'T'+80H
  1173.           DEFW     INN-5
  1174. OUTT      DEFW     DOUSE
  1175.           DEFB     1AH
  1176. ;
  1177.           DEFB     83H  ; SCR
  1178.           DEFM     'SC'
  1179.           DEFB     'R'+80H
  1180.           DEFW     OUTT-6
  1181. SCR       DEFW     DOUSE
  1182.           DEFB     1CH
  1183. ;
  1184.           DEFB     86H  ; OFFSET
  1185.           DEFM     'OFFSE'
  1186.           DEFB     'T'+80H
  1187.           DEFW     SCR-6
  1188. OFSET     DEFW     DOUSE
  1189.           DEFB     1EH
  1190. ;
  1191.           DEFB     87H  ; CONTEXT
  1192.           DEFM     'CONTEX'
  1193.           DEFB     'T'+80H
  1194.           DEFW     OFSET-9
  1195. CONT      DEFW     DOUSE
  1196.           DEFB     20H
  1197. ;
  1198.           DEFB     87H  ; CURRENT
  1199.           DEFM     'CURREN'
  1200.           DEFB     'T'+80H
  1201.           DEFW     CONT-0AH
  1202. CURR      DEFW     DOUSE
  1203.           DEFB     22H
  1204. ;
  1205.           DEFB     85H  ; STATE
  1206.           DEFM     'STAT'
  1207.           DEFB     'E'+80H
  1208.           DEFW     CURR-0AH
  1209. STATE     DEFW     DOUSE
  1210.           DEFB     24H
  1211. ;
  1212.           DEFB     84H  ; BASE
  1213.           DEFM     'BAS'
  1214.           DEFB     'E'+80H
  1215.           DEFW     STATE-8
  1216. BASE      DEFW     DOUSE
  1217.           DEFB     26H
  1218. ;
  1219.           DEFB     83H  ; DPL
  1220.           DEFM     'DP'
  1221.           DEFB     'L'+80H
  1222.           DEFW     BASE-7
  1223. DPL       DEFW     DOUSE
  1224.           DEFB     28H
  1225. ;
  1226.           DEFB     83H  ; FLD
  1227.           DEFM     'FL'
  1228.           DEFB     'D'+80H
  1229.           DEFW     DPL-6
  1230. FLD       DEFW     DOUSE
  1231.           DEFB     2AH
  1232. ;
  1233.           DEFB     83H  ; CSP
  1234.           DEFM     'CS'
  1235.           DEFB     'P'+80H
  1236.           DEFW     FLD-6
  1237. CSPP      DEFW     DOUSE
  1238.           DEFB     2CH
  1239. ;
  1240.           DEFB     82H  ; R#
  1241.           DEFB     'R'
  1242.           DEFB     '#'+80H
  1243.           DEFW     CSPP-6
  1244. RNUM      DEFW     DOUSE
  1245.           DEFB     2EH
  1246. ;
  1247.           DEFB     83H  ; HLD
  1248.           DEFM     'HL'
  1249.           DEFB     'D'+80H
  1250.           DEFW     RNUM-5
  1251. HLD       DEFW     DOUSE
  1252.           DEFW     30H
  1253. ;
  1254. ; END OF USER VARIABLES
  1255. ;
  1256.           DEFB     82H  ; 1+
  1257.           DEFB     '1'
  1258.           DEFB     '+'+80H
  1259.           DEFW     HLD-6
  1260. ONEP      DEFW     DOCOL
  1261.           DEFW     ONE
  1262.           DEFW     PLUS
  1263.           DEFW     SEMIS
  1264. ;
  1265.           DEFB     82H  ; 2+
  1266.           DEFB     '2'
  1267.           DEFB     '+'+80H
  1268.           DEFW     ONEP-5
  1269. TWOP      DEFW     DOCOL
  1270.           DEFW     TWO
  1271.           DEFW     PLUS
  1272.           DEFW     SEMIS
  1273. ;
  1274.           DEFB     84H  ; HERE
  1275.           DEFM     'HER'
  1276.           DEFB     'E'+80H
  1277.           DEFW     TWOP-5
  1278. HERE      DEFW     DOCOL
  1279.           DEFW     DP
  1280.           DEFW     AT
  1281.           DEFW     SEMIS
  1282. ;
  1283.           DEFB     85H  ; ALLOT
  1284.           DEFM     'ALLO'
  1285.           DEFB     'T'+80H
  1286.           DEFW     HERE-7
  1287. ALLOT     DEFW     DOCOL
  1288.           DEFW     DP
  1289.           DEFW     PSTOR
  1290.           DEFW     SEMIS
  1291. ;
  1292.           DEFB     81H  ; ,
  1293.           DEFB     ','+80H
  1294.           DEFW     ALLOT-8
  1295. COMMA     DEFW     DOCOL
  1296.           DEFW     HERE
  1297.           DEFW     STORE
  1298.           DEFW     TWO
  1299.           DEFW     ALLOT
  1300.           DEFW     SEMIS
  1301. ;
  1302.           DEFB     82H  ; C,
  1303.           DEFB     'C'
  1304.           DEFB     ','+80H
  1305.           DEFW     COMMA-4
  1306. CCOMM     DEFW     DOCOL
  1307.           DEFW     HERE
  1308.           DEFW     CSTOR
  1309.           DEFW     ONE
  1310.           DEFW     ALLOT
  1311.           DEFW     SEMIS
  1312. ;
  1313. ; SUBROUTINE USED BY - AND <
  1314. ;
  1315. SSUB      LD    A,L
  1316.           SUB   E
  1317.           LD    L,A
  1318.           LD    A,H
  1319.           SBC   A,D
  1320.           LD    H,A
  1321.           RET
  1322. ;
  1323.           DEFB     81H ; -
  1324.           DEFB     '-'+80H
  1325.           DEFW     CCOMM-5
  1326. SUBB      DEFW     $+2
  1327.           POP   DE
  1328.           POP   HL
  1329.           CALL  SSUB
  1330.           JP    HPUSH
  1331. ;
  1332.           DEFB     81H ; =
  1333.           DEFB     '='+80H
  1334.           DEFW     SUBB-4
  1335. EQUAL     DEFW     DOCOL
  1336.           DEFW     SUBB
  1337.           DEFW     ZEQU
  1338.           DEFW     SEMIS
  1339. ;
  1340.           DEFB     81H  ; <
  1341.           DEFB     '<'+80H
  1342.           DEFW     EQUAL-4
  1343. LESS      DEFW     $+2
  1344.           POP   DE
  1345.           POP   HL
  1346.           LD    A,D
  1347.           XOR   H
  1348.           JP    M,LES1
  1349.           CALL  SSUB
  1350. LES1      INC   H
  1351.           DEC   H
  1352.           JP    M,LES2
  1353.           LD    HL,0
  1354.           JP    HPUSH
  1355. LES2      LD    HL,1
  1356.           JP    HPUSH
  1357. ;
  1358.           DEFB     82H  ; U<
  1359.           DEFB     'U'
  1360.           DEFB     '<'+80H
  1361.           DEFW     LESS-4
  1362. ULESS     DEFW     DOCOL
  1363.           DEFW     TDUP
  1364.           DEFW     XORR
  1365.           DEFW     ZLESS
  1366.           DEFW     ZBRAN
  1367.           DEFW     ULES1-$
  1368.           DEFW     DROP
  1369.           DEFW     ZLESS
  1370.           DEFW     ZEQU
  1371.           DEFW     BRAN
  1372.           DEFW     ULES2-$
  1373. ULES1     DEFW     SUBB
  1374.           DEFW     ZLESS
  1375. ULES2     DEFW     SEMIS
  1376. ;
  1377.           DEFB     81H  ; >
  1378.           DEFB     '>'+80H
  1379.           DEFW     ULESS-5
  1380. GREAT     DEFW     DOCOL
  1381.           DEFW     SWAP
  1382.           DEFW     LESS
  1383.           DEFW     SEMIS
  1384. ;
  1385.           DEFB     83H  ; ROT
  1386.           DEFM     'RO'
  1387.           DEFB     'T'+80H
  1388.           DEFW     GREAT-4
  1389. ROT       DEFW     $+2
  1390.           POP   DE
  1391.           POP   HL
  1392.           EX    (SP),HL
  1393.           JP    DPUSH
  1394. ;
  1395.           DEFB     85H  ; SPACE
  1396.           DEFM     'SPAC'
  1397.           DEFB     'E'+80H
  1398.           DEFW     ROT-6
  1399. SPACE     DEFW     DOCOL
  1400.           DEFW     BL
  1401.           DEFW     EMIT
  1402.           DEFW     SEMIS
  1403. ;
  1404.           DEFB     84H  ; -DUP
  1405.           DEFM     '-DU'
  1406.           DEFB     'P'+80H
  1407.           DEFW     SPACE-8
  1408. DDUP      DEFW     DOCOL
  1409.           DEFW     DUP
  1410.           DEFW     ZBRAN
  1411.           DEFW     DDUP1-$
  1412.           DEFW     DUP
  1413. DDUP1     DEFW     SEMIS
  1414. ;
  1415.           DEFB     88H  ; TRAVERSE
  1416.           DEFM     'TRAVERS'
  1417.           DEFB     'E'+80H
  1418.           DEFW     DDUP-7
  1419. TRAV      DEFW     DOCOL
  1420.           DEFW     SWAP
  1421. TRAV1     DEFW     OVER
  1422.           DEFW     PLUS
  1423.           DEFW     LIT
  1424.           DEFW     7FH
  1425.           DEFW     OVER
  1426.           DEFW     CAT
  1427.           DEFW     LESS
  1428.           DEFW     ZBRAN
  1429.           DEFW     TRAV1-$
  1430.           DEFW     SWAP
  1431.           DEFW     DROP
  1432.           DEFW     SEMIS
  1433. ;
  1434.           DEFB     86H  ; LATEST
  1435.           DEFM     'LATES'
  1436.           DEFB     'T'+80H
  1437.           DEFW     TRAV-0BH
  1438. LATES     DEFW     DOCOL
  1439.           DEFW     CURR
  1440.           DEFW     AT
  1441.           DEFW     AT
  1442.           DEFW     SEMIS
  1443. ;
  1444.           DEFB     83H  ; LFA
  1445.           DEFM     'LF'
  1446.           DEFB     'A'+80H
  1447.           DEFW     LATES-9
  1448. LFA       DEFW     DOCOL
  1449.           DEFW     LIT
  1450.           DEFW     4
  1451.           DEFW     SUBB
  1452.           DEFW     SEMIS
  1453. ;
  1454.           DEFB     83H  ; CFA
  1455.           DEFM     'CF'
  1456.           DEFB     'A'+80H
  1457.           DEFW     LFA-6
  1458. CFA       DEFW     DOCOL
  1459.           DEFW     TWO
  1460.           DEFW     SUBB
  1461.           DEFW     SEMIS
  1462. ;
  1463.           DEFB     83H  ; NFA
  1464.           DEFM     'NF'
  1465.           DEFB     'A'+80H
  1466.           DEFW     CFA-6
  1467. NFA       DEFW     DOCOL
  1468.           DEFW     LIT
  1469.           DEFW     5
  1470.           DEFW     SUBB
  1471.           DEFW     LIT
  1472.           DEFW     -1
  1473.           DEFW     TRAV
  1474.           DEFW     SEMIS
  1475. ;
  1476.           DEFB     83H  ; PFA
  1477.           DEFM     'PF'
  1478.           DEFB     'A'+80H
  1479.           DEFW     NFA-6
  1480. PFA       DEFW     DOCOL
  1481.           DEFW     ONE
  1482.           DEFW     TRAV
  1483.           DEFW     LIT
  1484.           DEFW     5
  1485.           DEFW     PLUS
  1486.           DEFW     SEMIS
  1487. ;
  1488.           DEFB     84H  ; STORE CSP
  1489.           DEFM     '!CS'
  1490.           DEFB     'P'+80H
  1491.           DEFW     PFA-6
  1492. SCSP      DEFW     DOCOL
  1493.           DEFW     SPAT
  1494.           DEFW     CSPP
  1495.           DEFW     STORE
  1496.           DEFW     SEMIS
  1497. ;
  1498.           DEFB     86H  ; ?ERROR
  1499.           DEFM     '?ERRO'
  1500.           DEFB     'R'+80H
  1501.           DEFW     SCSP-7
  1502. QERR      DEFW     DOCOL
  1503.           DEFW     SWAP
  1504.           DEFW     ZBRAN
  1505.           DEFW     QERR1-$
  1506.           DEFW     ERROR
  1507.           DEFW     BRAN
  1508.           DEFW     QERR2-$
  1509. QERR1     DEFW     DROP
  1510. QERR2     DEFW     SEMIS
  1511. ;
  1512.           DEFB     85H  ; ?COMP
  1513.           DEFM     '?COM'
  1514.           DEFB     'P'+80H
  1515.           DEFW     QERR-9
  1516. QCOMP     DEFW     DOCOL
  1517.           DEFW     STATE
  1518.           DEFW     AT
  1519.           DEFW     ZEQU
  1520.           DEFW     LIT
  1521.           DEFW     LPSCR+1
  1522.           DEFW     QERR
  1523.           DEFW     SEMIS
  1524. ;
  1525.           DEFB     85H  ; ?EXEC
  1526.           DEFM     '?EXE'
  1527.           DEFB     'C'+80H
  1528.           DEFW     QCOMP-8
  1529. QEXEC     DEFW     DOCOL
  1530.           DEFW     STATE
  1531.           DEFW     AT
  1532.           DEFW     LIT
  1533.           DEFW     LPSCR+2
  1534.           DEFW     QERR
  1535.           DEFW     SEMIS
  1536. ;
  1537.           DEFB     86H  ; ?PAIRS
  1538.           DEFM     '?PAIR'
  1539.           DEFB     'S'+80H
  1540.           DEFW     QEXEC-8
  1541. QPAIR     DEFW     DOCOL
  1542.           DEFW     SUBB
  1543.           DEFW     LIT
  1544.           DEFW     LPSCR+3
  1545.           DEFW     QERR
  1546.           DEFW     SEMIS
  1547. ;
  1548.           DEFB     84H  ; ?CSP
  1549.           DEFM     '?CS'
  1550.           DEFB     'P'+80H
  1551.           DEFW     QPAIR-9
  1552. QCSP      DEFW     DOCOL
  1553.           DEFW     SPAT
  1554.           DEFW     CSPP
  1555.           DEFW     AT
  1556.           DEFW     SUBB
  1557.           DEFW     LIT
  1558.           DEFW     LPSCR+4
  1559.           DEFW     QERR
  1560.           DEFW     SEMIS
  1561. ;
  1562.           DEFB     88H  ; ?LOADING
  1563.           DEFM     '?LOADIN'
  1564.           DEFB     'G'+80H
  1565.           DEFW     QCSP-7
  1566. QLOAD     DEFW     DOCOL
  1567.           DEFW     BLK
  1568.           DEFW     AT
  1569.           DEFW     ZEQU
  1570.           DEFW     LIT
  1571.           DEFW     LPSCR+6
  1572.           DEFW     QERR
  1573.           DEFW     SEMIS
  1574. ;
  1575.           DEFB     87H  ; COMPILE
  1576.           DEFM     'COMPIL'
  1577.           DEFB     'E'+80H
  1578.           DEFW     QLOAD-0BH
  1579. COMP      DEFW     DOCOL
  1580.           DEFW     QCOMP
  1581.           DEFW     FROMR
  1582.           DEFW     DUP
  1583.           DEFW     TWOP
  1584.           DEFW     TOR
  1585.           DEFW     AT
  1586.           DEFW     COMMA
  1587.           DEFW     SEMIS
  1588. ;
  1589.           DEFB     0C1H  ; [
  1590.           DEFB     '['+80H
  1591.           DEFW     COMP-0AH
  1592. LBRAC     DEFW     DOCOL
  1593.           DEFW     ZERO
  1594.           DEFW     STATE
  1595.           DEFW     STORE
  1596.           DEFW     SEMIS
  1597. ;
  1598.           DEFB     81H  ; ]
  1599.           DEFB     ']'+80H
  1600.           DEFW     LBRAC-4
  1601. RBRAC     DEFW     DOCOL
  1602.           DEFW     LIT
  1603.           DEFW     0C0H
  1604.           DEFW     STATE
  1605.           DEFW     STORE
  1606.           DEFW     SEMIS
  1607. ;
  1608.           DEFB     86H  ; SMUDGE
  1609.           DEFM     'SMUDG'
  1610.           DEFB     'E'+80H
  1611.           DEFW     RBRAC-4
  1612. SMUDG     DEFW     DOCOL
  1613.           DEFW     LATES
  1614.           DEFW     LIT
  1615.           DEFW     20H
  1616.           DEFW     TOGGL
  1617.           DEFW     SEMIS
  1618. ;
  1619.           DEFB     83H  ; HEX
  1620.           DEFM     'HE'
  1621.           DEFB     'X'+80H
  1622.           DEFW     SMUDG-9
  1623. HEX       DEFW     DOCOL
  1624.           DEFW     LIT
  1625.           DEFW     10H
  1626.           DEFW     BASE
  1627.           DEFW     STORE
  1628.           DEFW     SEMIS
  1629. ;
  1630.           DEFB     87H  ; DECIMAL
  1631.           DEFM     'DECIMA'
  1632.           DEFB     'L'+80H
  1633.           DEFW     HEX-6
  1634. DECI      DEFW     DOCOL
  1635.           DEFW     LIT
  1636.           DEFW     0AH
  1637.           DEFW     BASE
  1638.           DEFW     STORE
  1639.           DEFW     SEMIS
  1640. ;
  1641.           DEFB     87H  ; (;CODE)
  1642.           DEFM     '(;CODE'
  1643.           DEFB     ')'+80H
  1644.           DEFW     DECI-0AH
  1645. PSCOD     DEFW     DOCOL
  1646.           DEFW     FROMR
  1647.           DEFW     LATES
  1648.           DEFW     PFA
  1649.           DEFW     CFA
  1650.           DEFW     STORE
  1651.           DEFW     SEMIS
  1652. ;
  1653.           DEFB     0C5H  ; ;CODE
  1654.           DEFM     ';COD'
  1655.           DEFB     'E'+80H
  1656.           DEFW     PSCOD-0AH
  1657. SEMIC     DEFW     DOCOL
  1658.           DEFW     QCSP
  1659.           DEFW     COMP
  1660.           DEFW     PSCOD
  1661.           DEFW     LBRAC
  1662. SEMI1     DEFW     NOOP  ; (ASSEMBLER)
  1663.           DEFW     SEMIS
  1664. ;
  1665.           DEFB     87H  ; <BUILDS
  1666.           DEFM     '<BUILD'
  1667.           DEFB     'S'+80H
  1668.           DEFW     SEMIC-8
  1669. BUILD     DEFW     DOCOL
  1670.           DEFW     ZERO
  1671.           DEFW     CON
  1672.           DEFW     SEMIS
  1673. ;
  1674.           DEFB     85H  ; DOES>
  1675.           DEFM     'DOES'
  1676.           DEFB     '>'+80H
  1677.           DEFW     BUILD-0AH
  1678. DOES      DEFW     DOCOL
  1679.           DEFW     FROMR
  1680.           DEFW     LATES
  1681.           DEFW     PFA
  1682.           DEFW     STORE
  1683.           DEFW     PSCOD
  1684. DODOE     LD    HL,(RPP)
  1685.           DEC   HL
  1686.           LD    (HL),B
  1687.           DEC   HL
  1688.           LD    (HL),C
  1689.           LD    (RPP),HL
  1690.           INC   DE
  1691.           EX    DE,HL
  1692.           LD    C,(HL)
  1693.           INC   HL
  1694.           LD    B,(HL)
  1695.           INC   HL
  1696.           JP    HPUSH
  1697. ;
  1698.           DEFB     85H  ; COUNT
  1699.           DEFM     'COUN'
  1700.           DEFB     'T'+80H
  1701.           DEFW     DOES-8
  1702. COUNT     DEFW     DOCOL
  1703.           DEFW     DUP
  1704.           DEFW     ONEP
  1705.           DEFW     SWAP
  1706.           DEFW     CAT
  1707.           DEFW     SEMIS
  1708. ;
  1709.           DEFB     84H  ; TYPE
  1710.           DEFM     'TYP'
  1711.           DEFB     'E'+80H
  1712.           DEFW     COUNT-8
  1713. TYPE      DEFW     DOCOL
  1714.           DEFW     DDUP
  1715.           DEFW     ZBRAN
  1716.           DEFW     TYPE1-$
  1717.           DEFW     OVER
  1718.           DEFW     PLUS
  1719.           DEFW     SWAP
  1720.           DEFW     XDO
  1721. TYPE2     DEFW     IDO
  1722.           DEFW     CAT
  1723.           DEFW     LIT
  1724.           DEFW     127
  1725.           DEFW     ANDD
  1726.           DEFW     EMIT
  1727.           DEFW     XLOOP
  1728.           DEFW     TYPE2-$
  1729.           DEFW     BRAN
  1730.           DEFW     TYPE3-$
  1731. TYPE1     DEFW     DROP
  1732. TYPE3     DEFW     SEMIS
  1733. ;
  1734.           DEFB     89H  ; -TRAILING
  1735.           DEFM     '-TRAILIN'
  1736.           DEFB     'G'+80H
  1737.           DEFW     TYPE-7
  1738. DTRAI     DEFW     DOCOL
  1739.           DEFW     DUP
  1740.           DEFW     ZERO
  1741.           DEFW     XDO
  1742. DTRA1     DEFW     OVER
  1743.           DEFW     OVER
  1744.           DEFW     PLUS
  1745.           DEFW     ONE
  1746.           DEFW     SUBB
  1747.           DEFW     CAT
  1748.           DEFW     BL
  1749.           DEFW     SUBB
  1750.           DEFW     ZBRAN
  1751.           DEFW     DTRA2-$
  1752.           DEFW     LEAVE
  1753.           DEFW     BRAN
  1754.           DEFW     DTRA3-$
  1755. DTRA2     DEFW     ONE
  1756.           DEFW     SUBB
  1757. DTRA3     DEFW     XLOOP
  1758.           DEFW     DTRA1-$
  1759.           DEFW     SEMIS
  1760. ;
  1761.           DEFB     84H  ; (.")
  1762.           DEFM     '(."'
  1763.           DEFB     ')'+80H
  1764.           DEFW     DTRAI-0CH
  1765. PDOTQ     DEFW     DOCOL
  1766.           DEFW     RR1
  1767.           DEFW     COUNT
  1768.           DEFW     DUP
  1769.           DEFW     ONEP
  1770.           DEFW     FROMR
  1771.           DEFW     PLUS
  1772.           DEFW     TOR
  1773.           DEFW     TYPE
  1774.           DEFW     SEMIS
  1775. ;
  1776.           DEFB     0C2H  ; ."
  1777.           DEFB     '.'
  1778.           DEFB     '"'+80H
  1779.           DEFW     PDOTQ-7
  1780. DOTQ      DEFW     DOCOL
  1781.           DEFW     LIT
  1782.           DEFW     22H
  1783.           DEFW     STATE
  1784.           DEFW     AT
  1785.           DEFW     ZBRAN
  1786.           DEFW     DOTQ1-$
  1787.           DEFW     COMP
  1788.           DEFW     PDOTQ
  1789.           DEFW     WORD
  1790.           DEFW     HERE
  1791.           DEFW     CAT
  1792.           DEFW     ONEP
  1793.           DEFW     ALLOT
  1794.           DEFW     BRAN
  1795.           DEFW     DOTQ2-$
  1796. DOTQ1     DEFW     WORD
  1797.           DEFW     HERE
  1798.           DEFW     COUNT
  1799.           DEFW     TYPE
  1800. DOTQ2     DEFW     SEMIS
  1801. ;
  1802. ; EXPECT ESPECIALLY FOR ABC80
  1803. ;
  1804.           DEFB     86H  ; EXPECT
  1805.           DEFM     'EXPEC'
  1806.           DEFB     'T'+80H
  1807.           DEFW     DOTQ-5
  1808. EXPEC     DEFW     $+2
  1809.           LD    (SAVEBC),BC
  1810.           POP   BC
  1811.           POP   HL
  1812.           PUSH  HL
  1813.           CALL  0005
  1814.           LD    A,0DH
  1815.           POP   HL
  1816.           DEC   HL
  1817. EXPE1     INC   HL
  1818.           CP    (HL)
  1819.           JR    NZ,EXPE1
  1820.           LD    (HL),0
  1821.           INC   HL
  1822.           LD    (HL),0
  1823.           INC   HL
  1824.           LD    (HL),0
  1825.           LD    BC,20H  ; BLANK
  1826.           CALL  COUT
  1827.           LD    BC,(SAVEBC)
  1828.           JP    NEXT
  1829. ;
  1830.           DEFB     85H  ; QUERY
  1831.           DEFM     'QUER'
  1832.           DEFB     'Y'+80H
  1833.           DEFW     EXPEC-9
  1834. QUERY     DEFW     DOCOL
  1835.           DEFW     TIB
  1836.           DEFW     AT
  1837.           DEFW     LIT
  1838.           DEFW     50H
  1839.           DEFW     EXPEC
  1840.           DEFW     ZERO
  1841.           DEFW     INN
  1842.           DEFW     STORE
  1843.           DEFW     SEMIS
  1844. ;
  1845.           DEFB     0C1H  ; 0 (NULL)
  1846.           DEFB     80H
  1847.           DEFW     QUERY-8
  1848. NULL      DEFW     DOCOL
  1849.           DEFW     BLK
  1850.           DEFW     AT
  1851.           DEFW     ZBRAN
  1852.           DEFW     NULL1-$
  1853.           DEFW     ONE
  1854.           DEFW     BLK
  1855.           DEFW     PSTOR
  1856.           DEFW     ZERO
  1857.           DEFW     INN
  1858.           DEFW     STORE
  1859.           DEFW     BLK
  1860.           DEFW     AT
  1861.           DEFW     BSCR
  1862.           DEFW     ONE
  1863.           DEFW     SUBB
  1864.           DEFW     ANDD
  1865.           DEFW     ZEQU
  1866.           DEFW     ZBRAN
  1867.           DEFW     NULL2-$
  1868.           DEFW     QEXEC
  1869.           DEFW     FROMR
  1870.           DEFW     DROP
  1871. NULL2     DEFW     BRAN
  1872.           DEFW     NULL3-$
  1873. NULL1     DEFW     FROMR
  1874.           DEFW     DROP
  1875. NULL3     DEFW     SEMIS
  1876. ;
  1877.           DEFB     84H  ; FILL
  1878.           DEFM     'FIL'
  1879.           DEFB     'L'+80H
  1880.           DEFW     NULL-4
  1881. FILL      DEFW     $+2
  1882.           LD    (SAVEBC),BC
  1883.           POP   BC  ; C=CHAR
  1884.           POP   DE  ; COUNTER
  1885.           POP   HL  ; ADDRESS
  1886. FILL1     LD    A,D
  1887.           OR    E
  1888.           JR    Z,FILL2
  1889.           LD    (HL),C
  1890.           DEC   DE
  1891.           INC   HL
  1892.           JR    FILL1
  1893. FILL2     LD    BC,(SAVEBC)
  1894.           JP    NEXT
  1895. ;
  1896.           DEFB     85H  ; ERASE
  1897.           DEFM     'ERAS'
  1898.           DEFB     'E'+80H
  1899.           DEFW     FILL-7
  1900. ERASEE    DEFW     DOCOL
  1901.           DEFW     ZERO
  1902.           DEFW     FILL
  1903.           DEFW     SEMIS
  1904. ;
  1905.           DEFB     86H  ; BLANKS
  1906.           DEFM     'BLANK'
  1907.           DEFB     'S'+80H
  1908.           DEFW     ERASEE-8
  1909. BLANK     DEFW     DOCOL
  1910.           DEFW     BL
  1911.           DEFW     FILL
  1912.           DEFW     SEMIS
  1913. ;
  1914.           DEFB     84H  ; HOLD
  1915.           DEFM     'HOL'
  1916.           DEFB     'D'+80H
  1917.           DEFW     BLANK-9
  1918. HOLD      DEFW     DOCOL
  1919.           DEFW     LIT
  1920.           DEFW     -1
  1921.           DEFW     HLD
  1922.           DEFW     PSTOR
  1923.           DEFW     HLD
  1924.           DEFW     AT
  1925.           DEFW     CSTOR
  1926.           DEFW     SEMIS
  1927. ;
  1928.           DEFB     83H  ; PAD
  1929.           DEFM     'PA'
  1930.           DEFB     'D'+80H
  1931.           DEFW     HOLD-7
  1932. PAD       DEFW     DOCOL
  1933.           DEFW     HERE
  1934.           DEFW     LIT
  1935.           DEFW     44H
  1936.           DEFW     PLUS
  1937.           DEFW     SEMIS
  1938. ;
  1939.           DEFB     84H  ; WORD
  1940.           DEFM     'WOR'
  1941.           DEFB     'D'+80H
  1942.           DEFW     PAD-6
  1943. WORD      DEFW     DOCOL
  1944.           DEFW     BLK
  1945.           DEFW     AT
  1946.           DEFW     ZBRAN
  1947.           DEFW     WORD1-$
  1948.           DEFW     BLK
  1949.           DEFW     AT
  1950.           DEFW     BLOCK
  1951.           DEFW     BRAN
  1952.           DEFW     WORD2-$
  1953. WORD1     DEFW     TIB
  1954.           DEFW     AT
  1955. WORD2     DEFW     INN
  1956.           DEFW     AT
  1957.           DEFW     PLUS
  1958.           DEFW     SWAP
  1959.           DEFW     ENCL
  1960.           DEFW     HERE
  1961.           DEFW     LIT
  1962.           DEFW     22H
  1963.           DEFW     BLANK
  1964.           DEFW     INN
  1965.           DEFW     PSTOR
  1966.           DEFW     OVER
  1967.           DEFW     SUBB
  1968.           DEFW     TOR
  1969.           DEFW     RR1
  1970.           DEFW     HERE
  1971.           DEFW     CSTOR
  1972.           DEFW     PLUS
  1973.           DEFW     HERE
  1974.           DEFW     ONEP
  1975.           DEFW     FROMR
  1976.           DEFW     CMOVE
  1977.           DEFW     SEMIS
  1978. ;
  1979.           DEFB     88H  ; (NUMBER)
  1980.           DEFM     '(NUMBER'
  1981.           DEFB     ')'+80H
  1982.           DEFW     WORD-7
  1983. PNUMB     DEFW     DOCOL
  1984. PNUM1     DEFW     ONEP
  1985.           DEFW     DUP
  1986.           DEFW     TOR
  1987.           DEFW     CAT
  1988.           DEFW     BASE
  1989.           DEFW     AT
  1990.           DEFW     DIGIT
  1991.           DEFW     ZBRAN
  1992.           DEFW     PNUM2-$
  1993.           DEFW     SWAP
  1994.           DEFW     BASE
  1995.           DEFW     AT
  1996.           DEFW     USTAR
  1997.           DEFW     DROP
  1998.           DEFW     ROT
  1999.           DEFW     BASE
  2000.           DEFW     AT
  2001.           DEFW     USTAR
  2002.           DEFW     DPLUS
  2003.           DEFW     DPL
  2004.           DEFW     AT
  2005.           DEFW     ONEP
  2006.           DEFW     ZBRAN
  2007.           DEFW     PNUM3-$
  2008.           DEFW     ONE
  2009.           DEFW     DPL
  2010.           DEFW     PSTOR
  2011. PNUM3     DEFW     FROMR
  2012.           DEFW     BRAN
  2013.           DEFW     PNUM1-$
  2014. PNUM2     DEFW     FROMR
  2015.           DEFW     SEMIS
  2016. ;
  2017.           DEFB     86H  ; NUMBER
  2018.           DEFM     'NUMBE'
  2019.           DEFB     'R'+80H
  2020.           DEFW     PNUMB-0BH
  2021. NUMB      DEFW     DOCOL
  2022.           DEFW     ZERO
  2023.           DEFW     ZERO
  2024.           DEFW     ROT
  2025.           DEFW     DUP
  2026.           DEFW     ONEP
  2027.           DEFW     CAT
  2028.           DEFW     LIT
  2029.           DEFW     2DH
  2030.           DEFW     EQUAL
  2031.           DEFW     DUP
  2032.           DEFW     TOR
  2033.           DEFW     PLUS
  2034.           DEFW     LIT
  2035.           DEFW     -1
  2036. NUMB1     DEFW     DPL
  2037.           DEFW     STORE
  2038.           DEFW     PNUMB
  2039.           DEFW     DUP
  2040.           DEFW     CAT
  2041.           DEFW     BL
  2042.           DEFW     SUBB
  2043.           DEFW     ZBRAN
  2044.           DEFW     NUMB2-$
  2045.           DEFW     DUP
  2046.           DEFW     CAT
  2047.           DEFW     LIT
  2048.           DEFW     2EH
  2049.           DEFW     SUBB
  2050.           DEFW     ZERO
  2051.           DEFW     QERR
  2052.           DEFW     ZERO
  2053.           DEFW     BRAN
  2054.           DEFW     NUMB1-$
  2055. NUMB2     DEFW     DROP
  2056.           DEFW     FROMR
  2057.           DEFW     ZBRAN
  2058.           DEFW     NUMB3-$
  2059.           DEFW     DMINU
  2060. NUMB3     DEFW     SEMIS
  2061. ;
  2062.           DEFB     85H  ; -FIND
  2063.           DEFM     '-FIN'
  2064.           DEFB     'D'+80H
  2065.           DEFW     NUMB-9
  2066. DFIND     DEFW     DOCOL
  2067.           DEFW     BL
  2068.           DEFW     WORD
  2069.           DEFW     HERE
  2070.           DEFW     CONT
  2071.           DEFW     AT
  2072.           DEFW     AT
  2073.           DEFW     PFIND
  2074.           DEFW     DUP
  2075.           DEFW     ZEQU
  2076.           DEFW     ZBRAN
  2077.           DEFW     DFIN1-$
  2078.           DEFW     DROP
  2079.           DEFW     HERE
  2080.           DEFW     LATES
  2081.           DEFW     PFIND
  2082. DFIN1     DEFW     SEMIS
  2083. ;
  2084.           DEFB     87H  ; (ABORT)
  2085.           DEFM     '(ABORT'
  2086.           DEFB     ')'+80H
  2087.           DEFW     DFIND-8
  2088. PABOR     DEFW     DOCOL
  2089.           DEFW     ABORT
  2090.           DEFW     SEMIS
  2091. ;
  2092.           DEFB     85H  ; ERROR
  2093.           DEFM     'ERRO'
  2094.           DEFB     'R'+80H
  2095.           DEFW     PABOR-0AH
  2096. ERROR     DEFW     DOCOL
  2097.           DEFW     WARN
  2098.           DEFW     AT
  2099.           DEFW     ZLESS
  2100.           DEFW     ZBRAN
  2101.           DEFW     ERRO1-$
  2102.           DEFW     PABOR
  2103. ERRO1     DEFW     HERE
  2104.           DEFW     COUNT
  2105.           DEFW     TYPE
  2106.           DEFW     PDOTQ
  2107.           DEFB     2
  2108.           DEFM     '? '
  2109.           DEFW     MESS
  2110.           DEFW     SPSTO
  2111.           DEFW     BLK
  2112.           DEFW     AT
  2113.           DEFW     DDUP
  2114.           DEFW     ZBRAN
  2115.           DEFW     ERRO2-$
  2116.           DEFW     INN
  2117.           DEFW     AT
  2118.           DEFW     SWAP
  2119. ERRO2     DEFW     QUIT
  2120. ;
  2121.           DEFB     83H  ; ID.
  2122.           DEFM     'ID'
  2123.           DEFB     '.'+80H
  2124.           DEFW     ERROR-8
  2125. IDDOT     DEFW     DOCOL
  2126.           DEFW     PAD
  2127.           DEFW     LIT
  2128.           DEFW     20H
  2129.           DEFW     LIT
  2130.           DEFW     5FH
  2131.           DEFW     FILL
  2132.           DEFW     DUP
  2133.           DEFW     PFA
  2134.           DEFW     LFA
  2135.           DEFW     OVER
  2136.           DEFW     SUBB
  2137.           DEFW     PAD
  2138.           DEFW     SWAP
  2139.           DEFW     CMOVE
  2140.           DEFW     PAD
  2141.           DEFW     COUNT
  2142.           DEFW     LIT
  2143.           DEFW     1FH
  2144.           DEFW     ANDD
  2145.           DEFW     TYPE
  2146.           DEFW     SPACE
  2147.           DEFW     SEMIS
  2148. ;
  2149.           DEFB     86H  ; CREATE
  2150.           DEFM     'CREAT'
  2151.           DEFB     'E'+80H
  2152.           DEFW     IDDOT-6
  2153. CREAT     DEFW     DOCOL
  2154.           DEFW     DFIND
  2155.           DEFW     ZBRAN
  2156.           DEFW     CREA1-$
  2157.           DEFW     DROP
  2158.           DEFW     NFA
  2159.           DEFW     IDDOT
  2160.           DEFW     LIT
  2161.           DEFW     4
  2162.           DEFW     MESS
  2163.           DEFW     SPACE
  2164. CREA1     DEFW     HERE
  2165.           DEFW     DUP
  2166.           DEFW     CAT
  2167.           DEFW     WIDTH
  2168.           DEFW     AT
  2169.           DEFW     MIN
  2170.           DEFW     ONEP
  2171.           DEFW     ALLOT
  2172.           DEFW     DUP
  2173.           DEFW     LIT
  2174.           DEFW     0A0H
  2175.           DEFW     TOGGL
  2176.           DEFW     HERE
  2177.           DEFW     ONE
  2178.           DEFW     SUBB
  2179.           DEFW     LIT
  2180.           DEFW     80H
  2181.           DEFW     TOGGL
  2182.           DEFW     LATES
  2183.           DEFW     COMMA
  2184.           DEFW     CURR
  2185.           DEFW     AT
  2186.           DEFW     STORE
  2187.           DEFW     HERE
  2188.           DEFW     TWOP
  2189.           DEFW     COMMA
  2190.           DEFW     SEMIS
  2191. ;
  2192.           DEFB     0C9H  ; [COMPILE]
  2193.           DEFM     '[COMPILE'
  2194.           DEFB     ']'+80H
  2195.           DEFW     CREAT-9
  2196. BCOMP     DEFW     DOCOL
  2197.           DEFW     DFIND
  2198.           DEFW     ZEQU
  2199.           DEFW     ZERO
  2200.           DEFW     QERR
  2201.           DEFW     DROP
  2202.           DEFW     CFA
  2203.           DEFW     COMMA
  2204.           DEFW     SEMIS
  2205. ;
  2206.           DEFB     0C7H  ; LITERAL
  2207.           DEFM     'LITERA'
  2208.           DEFB     'L'+80H
  2209.           DEFW     BCOMP-0CH
  2210. LITER     DEFW     DOCOL
  2211.           DEFW     STATE
  2212.           DEFW     AT
  2213.           DEFW     ZBRAN
  2214.           DEFW     LITE1-$
  2215.           DEFW     COMP
  2216.           DEFW     LIT
  2217.           DEFW     COMMA
  2218. LITE1     DEFW     SEMIS
  2219. ;
  2220.           DEFB     0C8H  ; DLITERAL
  2221.           DEFM     'DLITERA'
  2222.           DEFB     'L'+80H
  2223.           DEFW     LITER-0AH
  2224. DLITE     DEFW     DOCOL
  2225.           DEFW     STATE
  2226.           DEFW     AT
  2227.           DEFW     ZBRAN
  2228.           DEFW     DLIT1-$
  2229.           DEFW     SWAP
  2230.           DEFW     LITER
  2231.           DEFW     LITER
  2232. DLIT1     DEFW     SEMIS
  2233. ;
  2234.           DEFB     86H  ; ?STACK
  2235.           DEFM     '?STAC'
  2236.           DEFB     'K'+80H
  2237.           DEFW     DLITE-0BH
  2238. QSTAC     DEFW     DOCOL
  2239.           DEFW     SPAT
  2240.           DEFW     SZERO
  2241.           DEFW     AT
  2242.           DEFW     SWAP
  2243.           DEFW     ULESS
  2244.           DEFW     ONE
  2245.           DEFW     QERR
  2246.           DEFW     SPAT
  2247.           DEFW     HERE
  2248.           DEFW     LIT
  2249.           DEFW     80H
  2250.           DEFW     PLUS
  2251.           DEFW     ULESS
  2252.           DEFW     LIT
  2253.           DEFW     7
  2254.           DEFW     QERR
  2255.           DEFW     SEMIS
  2256. ;
  2257.           DEFB     89H  ; INTERPRET
  2258.           DEFM     'INTERPRE'
  2259.           DEFB     'T'+80H
  2260.           DEFW     QSTAC-9
  2261. INTER     DEFW     DOCOL
  2262. INTE1     DEFW     DFIND
  2263.           DEFW     ZBRAN
  2264.           DEFW     INTE2-$
  2265.           DEFW     STATE
  2266.           DEFW     AT
  2267.           DEFW     LESS
  2268.           DEFW     ZBRAN
  2269.           DEFW     INTE3-$
  2270.           DEFW     CFA
  2271.           DEFW     COMMA
  2272.           DEFW     BRAN
  2273.           DEFW     INTE4-$
  2274. INTE3     DEFW     CFA
  2275.           DEFW     EXEC
  2276. INTE4     DEFW     QSTAC
  2277.           DEFW     BRAN
  2278.           DEFW     INTE5-$
  2279. INTE2     DEFW     HERE
  2280.           DEFW     NUMB
  2281.           DEFW     DPL
  2282.           DEFW     AT
  2283.           DEFW     ONEP
  2284.           DEFW     ZBRAN
  2285.           DEFW     INTE6-$
  2286.           DEFW     DLITE
  2287.           DEFW     BRAN
  2288.           DEFW     INTE7-$
  2289. INTE6     DEFW     DROP
  2290.           DEFW     LITER
  2291. INTE7     DEFW     QSTAC
  2292. INTE5     DEFW     BRAN
  2293.           DEFW     INTE1-$
  2294. ;
  2295.           DEFB     89H  ; IMMEDIATE
  2296.           DEFM     'IMMEDIAT'
  2297.           DEFB     'E'+80H
  2298.           DEFW     INTER-0CH
  2299. IMMED     DEFW     DOCOL
  2300.           DEFW     LATES
  2301.           DEFW     LIT
  2302.           DEFW     40H
  2303.           DEFW     TOGGL
  2304.           DEFW     SEMIS
  2305. ;
  2306.           DEFB     8AH  ; VOCABULARY
  2307.           DEFM     'VOCABULAR'
  2308.           DEFB     'Y'+80H
  2309.           DEFW     IMMED-0CH
  2310. VOCAB     DEFW     DOCOL
  2311.           DEFW     BUILD
  2312.           DEFW     LIT
  2313.           DEFW     0A081H
  2314.           DEFW     COMMA
  2315.           DEFW     CURR
  2316.           DEFW     AT
  2317.           DEFW     CFA
  2318.           DEFW     COMMA
  2319.           DEFW     HERE
  2320.           DEFW     VOCL
  2321.           DEFW     AT
  2322.           DEFW     COMMA
  2323.           DEFW     VOCL
  2324.           DEFW     STORE
  2325.           DEFW     DOES
  2326. DOVOC     DEFW     TWOP
  2327.           DEFW     CONT
  2328.           DEFW     STORE
  2329.           DEFW     SEMIS
  2330. ;
  2331.           DEFB     0C5H  ; FORTH
  2332.           DEFM     'FORT'
  2333.           DEFB     'H'+80H
  2334.           DEFW     VOCAB-0DH
  2335. FORTH     DEFW     DODOE
  2336.           DEFW     DOVOC
  2337.           DEFW     0A081H
  2338.           DEFW     TASK-7
  2339.           DEFW     0  ; END OF VOCABULARY LIST
  2340. ;
  2341.           DEFB     8BH  ; DEFINITIONS
  2342.           DEFM     'DEFINITION'
  2343.           DEFB     'S'+80H
  2344.           DEFW     FORTH-8
  2345. DEFIN     DEFW     DOCOL
  2346.           DEFW     CONT
  2347.           DEFW     AT
  2348.           DEFW     CURR
  2349.           DEFW     STORE
  2350.           DEFW     SEMIS
  2351. ;
  2352.           DEFB     0C1H  ; (
  2353.           DEFB     '('+80H
  2354.           DEFW     DEFIN-0EH
  2355. PAREN     DEFW     DOCOL
  2356.           DEFW     LIT
  2357.           DEFW     29H
  2358.           DEFW     WORD
  2359.           DEFW     SEMIS
  2360. ;
  2361.           DEFB     84H  ; QUIT
  2362.           DEFM     'QUI'
  2363.           DEFB     'T'+80H
  2364.           DEFW     PAREN-4
  2365. QUIT      DEFW     DOCOL
  2366.           DEFW     ZERO
  2367.           DEFW     BLK
  2368.           DEFW     STORE
  2369.           DEFW     LBRAC
  2370. QUIT1     DEFW     RPSTO
  2371.           DEFW     CR
  2372.           DEFW     QUERY
  2373.           DEFW     INTER
  2374.           DEFW     STATE
  2375.           DEFW     AT
  2376.           DEFW     ZEQU
  2377.           DEFW     ZBRAN
  2378.           DEFW     QUIT2-$
  2379.           DEFW     PDOTQ
  2380.           DEFB     2
  2381.           DEFB     111
  2382.           DEFB     107
  2383. QUIT2     DEFW     BRAN
  2384.           DEFW     QUIT1-$
  2385. ;
  2386.           DEFB     85H  ; ABORT
  2387.           DEFM     'ABOR'
  2388.           DEFB     'T'+80H
  2389.           DEFW     QUIT-7
  2390. ABORT     DEFW     DOCOL
  2391.           DEFW     SPSTO
  2392.           DEFW     DECI
  2393.           DEFW     QSTAC
  2394.           DEFW     PAGE
  2395.           DEFW     DOTCPU
  2396.           DEFW     PDOTQ
  2397.           DEFB     0DH
  2398.           DEFM     'FIG-FORTH '
  2399.           DEFB     FIGREL+30H
  2400.           DEFB     ADOT
  2401.           DEFB     FIGREV+30H
  2402.           DEFW     FORTH
  2403.           DEFW     DEFIN
  2404.           DEFW     QUIT
  2405. ;
  2406. WRM       LD    BC,WRM1
  2407.           JP    NEXT
  2408. WRM1      DEFW     WARM
  2409. ;
  2410.           DEFB     84H  ; WARM
  2411.           DEFM     'WAR'
  2412.           DEFB     'M'+80H
  2413.           DEFW     ABORT-8
  2414. WARM      DEFW     DOCOL
  2415.           DEFW     MTBUF
  2416.           DEFW     ABORT
  2417. ;
  2418. CLD       LD    BC,CLD1
  2419.           LD    HL,(ORIG+12H)
  2420.           LD    SP,HL
  2421.           JP    NEXT
  2422. CLD1      DEFW     COLD
  2423. ;
  2424.           DEFB     84H  ; COLD
  2425.           DEFM     'COL'
  2426.           DEFB     'D'+80H
  2427.           DEFW     WARM-7
  2428. COLD      DEFW     DOCOL
  2429.           DEFW     MTBUF
  2430.           DEFW     ZERO
  2431.           DEFW     DENSTY
  2432.           DEFW     STORE
  2433.           DEFW     LIT
  2434.           DEFW     BUF1
  2435.           DEFW     USE
  2436.           DEFW     STORE
  2437.           DEFW     LIT
  2438.           DEFW     BUF1
  2439.           DEFW     PREV
  2440.           DEFW     STORE
  2441.           DEFW     DRZER
  2442.           DEFW     LIT
  2443.           DEFW     0
  2444.           DEFW     LIT
  2445.           DEFW     EPRINT
  2446.           DEFW     STORE
  2447. ;
  2448.           DEFW     LIT
  2449.           DEFW     ORIG+12H
  2450.           DEFW     LIT
  2451.           DEFW     UP
  2452.           DEFW     AT
  2453.           DEFW     LIT
  2454.           DEFW     6
  2455.           DEFW     PLUS
  2456.           DEFW     LIT
  2457.           DEFW     10H
  2458.           DEFW     CMOVE
  2459.           DEFW     LIT
  2460.           DEFW     ORIG+0CH
  2461.           DEFW     AT
  2462.           DEFW     LIT
  2463.           DEFW     FORTH+6
  2464.           DEFW     STORE
  2465.           DEFW     ABORT
  2466. ;
  2467.           DEFB     84H  ; S->D
  2468.           DEFM     'S->'
  2469.           DEFB     'D'+80H
  2470.           DEFW     COLD-7
  2471. STOD      DEFW     $+2
  2472.           POP   DE
  2473.           LD    HL,0
  2474.           LD    A,D
  2475.           AND   80H
  2476.           JR    Z,STOD1
  2477.           DEC   HL
  2478. STOD1     JP    DPUSH
  2479. ;
  2480.           DEFB     82H  ; +-
  2481.           DEFB     '+'
  2482.           DEFB     '-'+80H
  2483.           DEFW     STOD-7
  2484. PM        DEFW     DOCOL
  2485.           DEFW     ZLESS
  2486.           DEFW     ZBRAN
  2487.           DEFW     PM1-$
  2488.           DEFW     MINUS
  2489. PM1       DEFW     SEMIS
  2490. ;
  2491.           DEFB     83H  ; D+-
  2492.           DEFM     'D+'
  2493.           DEFB     '-'+80H
  2494.           DEFW     PM-5
  2495. DPM       DEFW     DOCOL
  2496.           DEFW     ZLESS
  2497.           DEFW     ZBRAN
  2498.           DEFW     DPM1-$
  2499.           DEFW     DMINU
  2500. DPM1      DEFW     SEMIS
  2501. ;
  2502.           DEFB     83H  ; ABS
  2503.           DEFM     'AB'
  2504.           DEFB     'S'+80H
  2505.           DEFW     DPM-6
  2506. ABS       DEFW     DOCOL
  2507.           DEFW     DUP
  2508.           DEFW     PM
  2509.           DEFW     SEMIS
  2510. ;
  2511.           DEFB     84H  ; DABS
  2512.           DEFM     'DAB'
  2513.           DEFB     'S'+80H
  2514.           DEFW     ABS-6
  2515. DABS      DEFW     DOCOL
  2516.           DEFW     DUP
  2517.           DEFW     DPM
  2518.           DEFW     SEMIS
  2519. ;
  2520.           DEFB     83H  ; MIN
  2521.           DEFM     'MI'
  2522.           DEFB     'N'+80H
  2523.           DEFW     DABS-7
  2524. MIN       DEFW     DOCOL
  2525.           DEFW     TDUP
  2526.           DEFW     GREAT
  2527.           DEFW     ZBRAN
  2528.           DEFW     MIN1-$
  2529.           DEFW     SWAP
  2530. MIN1      DEFW     DROP
  2531.           DEFW     SEMIS
  2532. ;
  2533.           DEFB     83H  ; MAX
  2534.           DEFM     'MA'
  2535.           DEFB     'X'+80H
  2536.           DEFW     MIN-6
  2537. MAX       DEFW     DOCOL
  2538.           DEFW     TDUP
  2539.           DEFW     LESS
  2540.           DEFW     ZBRAN
  2541.           DEFW     MAX1-$
  2542.           DEFW     SWAP
  2543. MAX1      DEFW     DROP
  2544.           DEFW     SEMIS
  2545. ;
  2546.           DEFB     82H  ; M*
  2547.           DEFB     'M'
  2548.           DEFB     '*'+80H
  2549.           DEFW     MAX-6
  2550. MSTAR     DEFW     DOCOL
  2551.           DEFW     TDUP
  2552.           DEFW     XORR
  2553.           DEFW     TOR
  2554.           DEFW     ABS
  2555.           DEFW     SWAP
  2556.           DEFW     ABS
  2557.           DEFW     USTAR
  2558.           DEFW     FROMR
  2559.           DEFW     DPM
  2560.           DEFW     SEMIS
  2561. ;
  2562.           DEFB     82H  ; M/
  2563.           DEFB     'M'
  2564.           DEFB     '/'+80H
  2565.           DEFW     MSTAR-5
  2566. MSLAS     DEFW     DOCOL
  2567.           DEFW     OVER
  2568.           DEFW     TOR
  2569.           DEFW     TOR
  2570.           DEFW     DABS
  2571.           DEFW     RR1
  2572.           DEFW     ABS
  2573.           DEFW     USLAS
  2574.           DEFW     FROMR
  2575.           DEFW     RR1
  2576.           DEFW     XORR
  2577.           DEFW     PM
  2578.           DEFW     SWAP
  2579.           DEFW     FROMR
  2580.           DEFW     PM
  2581.           DEFW     SWAP
  2582.           DEFW     SEMIS
  2583. ;
  2584.           DEFB     81H  ; *
  2585.           DEFB     '*'+80H
  2586.           DEFW     MSLAS-5
  2587. STAR      DEFW     DOCOL
  2588.           DEFW     MSTAR
  2589.           DEFW     DROP
  2590.           DEFW     SEMIS
  2591. ;
  2592.           DEFB     84H  ; /MOD
  2593.           DEFM     '/MO'
  2594.           DEFB     'D'+80H
  2595.           DEFW     STAR-4
  2596. SLMOD     DEFW     DOCOL
  2597.           DEFW     TOR
  2598.           DEFW     STOD
  2599.           DEFW     FROMR
  2600.           DEFW     MSLAS
  2601.           DEFW     SEMIS
  2602. ;
  2603.           DEFB     81H  ; /
  2604.           DEFB     '/'+80H
  2605.           DEFW     SLMOD-7
  2606. SLASH     DEFW     DOCOL
  2607.           DEFW     SLMOD
  2608.           DEFW     SWAP
  2609.           DEFW     DROP
  2610.           DEFW     SEMIS
  2611. ;
  2612.           DEFB     83H  ; MOD
  2613.           DEFM     'MO'
  2614.           DEFB     'D'+80H
  2615.           DEFW     SLASH-4
  2616. MODD      DEFW     DOCOL
  2617.           DEFW     SLMOD
  2618.           DEFW     DROP
  2619.           DEFW     SEMIS
  2620. ;
  2621.           DEFB     85H  ; */MOD
  2622.           DEFM     '*/MO'
  2623.           DEFB     'D'+80H
  2624.           DEFW     MODD-6
  2625. SSMOD     DEFW     DOCOL
  2626.           DEFW     TOR
  2627.           DEFW     MSTAR
  2628.           DEFW     FROMR
  2629.           DEFW     MSLAS
  2630.           DEFW     SEMIS
  2631. ;
  2632.           DEFB     82H  ; */
  2633.           DEFB     '*'
  2634.           DEFB     '/'+80H
  2635.           DEFW     SSMOD-8
  2636. SSLA      DEFW     DOCOL
  2637.           DEFW     SSMOD
  2638.           DEFW     SWAP
  2639.           DEFW     DROP
  2640.           DEFW     SEMIS
  2641. ;
  2642.           DEFB     85H  ; M/MOD
  2643.           DEFM     'M/MO'
  2644.           DEFB     'D'+80H
  2645.           DEFW     SSLA-5
  2646. MSMOD     DEFW     DOCOL
  2647.           DEFW     TOR
  2648.           DEFW     ZERO
  2649.           DEFW     RR1
  2650.           DEFW     USLAS
  2651.           DEFW     FROMR
  2652.           DEFW     SWAP
  2653.           DEFW     TOR
  2654.           DEFW     USLAS
  2655.           DEFW     FROMR
  2656.           DEFW     SEMIS
  2657. ;
  2658.           DEFB     86H  ; (LINE)
  2659.           DEFM     '(LINE'
  2660.           DEFB     ')'+80H
  2661.           DEFW     MSMOD-8
  2662. PLINE     DEFW     DOCOL
  2663.           DEFW     TOR
  2664.           DEFW     CSLL
  2665.           DEFW  LIT
  2666.           DEFW  LPSCR*CPLL
  2667.           DEFW     SSMOD
  2668.           DEFW     FROMR
  2669.           DEFW     BSCR
  2670.           DEFW     STAR
  2671.           DEFW     PLUS
  2672.           DEFW     BLOCK
  2673.           DEFW     PLUS
  2674.           DEFW     CSLL
  2675.           DEFW     SEMIS
  2676. ;
  2677.           DEFB     85H  ; .LINE
  2678.           DEFM     '.LIN'
  2679.           DEFB     'E'+80H
  2680.           DEFW     PLINE-9
  2681. DLINE     DEFW     DOCOL
  2682.           DEFW     PLINE
  2683.           DEFW     DTRAI
  2684.           DEFW     TYPE
  2685.           DEFW     SEMIS
  2686. ;
  2687.           DEFB     87H  ; MESSAGE
  2688.           DEFM     'MESSAG'
  2689.           DEFB     'E'+80H
  2690.           DEFW     DLINE-8
  2691. MESS      DEFW     DOCOL
  2692.           DEFW     WARN
  2693.           DEFW     AT
  2694.           DEFW     ZBRAN
  2695.           DEFW     MESS1-$
  2696.           DEFW     DDUP
  2697.           DEFW     ZBRAN
  2698.           DEFW     MESS2-$
  2699.           DEFW     LIT
  2700.           DEFW     4
  2701.           DEFW     OFSET
  2702.           DEFW     AT
  2703.           DEFW     BSCR
  2704.           DEFW     SLASH
  2705.           DEFW     SUBB
  2706.           DEFW     DLINE
  2707.           DEFW     SPACE
  2708. MESS2     DEFW     BRAN
  2709.           DEFW     MESS3-$
  2710. MESS1     DEFW     PDOTQ
  2711.           DEFB     6
  2712.           DEFM     'MSG # '
  2713.           DEFW     DOT
  2714. MESS3     DEFW     SEMIS
  2715. ;
  2716. ;------------------------------
  2717. ;
  2718. ;  8080 PORT FETCH AND STORE
  2719. ;  ( SELF MODIFYING CODE, NOT REENTRANT )
  2720. ;
  2721.           DEFB     82H  ; P@ PORT FETCH
  2722.           DEFB     'P'
  2723.           DEFB     '@'+80H
  2724.           DEFW     MESS-0AH
  2725. PTAT      DEFW     $+2
  2726.           POP   DE  ; E <- PORT#
  2727.           LD    HL,$+5
  2728.           LD    (HL),E
  2729.           IN    A,(0)
  2730.           LD    L,A
  2731.           LD    H,0
  2732.           JP    HPUSH
  2733. ;
  2734.           DEFB     82H  ; "PORT STORE"
  2735.           DEFB     'P'
  2736.           DEFB     '!'+80H
  2737.           DEFW     PTAT-5
  2738. PTSTO     DEFW     $+2
  2739.           POP   DE
  2740.           LD    HL,$+7
  2741.           LD    (HL),E
  2742.           POP   HL  ; H <- CDATA
  2743.           LD    A,L
  2744.           OUT   (0),A
  2745.           JP    NEXT
  2746. ;
  2747. ;-----------------------------
  2748. ; DISK INTERFACE
  2749. ;
  2750. ; DOUBLE DENSITY
  2751. SPT2      EQU   8  ; SECTORS/TRACK
  2752. TRKS2     EQU   80  ; # TRACKS
  2753. ; SINGLE DENSITY
  2754. SPT1      EQU   8  ; SECTORS/TRACK
  2755. TRKS1     EQU   40  ; # TRACKS
  2756. BPS       EQU   256  ; BYTES/SECTOR
  2757. MXDRV     EQU   2  ; MAX # DRIVES
  2758. ;
  2759. ; FORTH VARIABLES AND CONSTANTS USED IN DISK INTERFACE
  2760. ;
  2761.           DEFB     85H  ; DRIVE ( CURRENT DRIVE # )
  2762.           DEFM     'DRIV'
  2763.           DEFB     'E'+80H
  2764.           DEFW     PTSTO-5
  2765. DRIVE     DEFW     DOVAR
  2766.           DEFW     0
  2767. ;
  2768.           DEFB     83H  ; SEC ( SECTOR # )
  2769.           DEFM     'SE'
  2770.           DEFB     'C'+80H
  2771.           DEFW     DRIVE-8
  2772. SEC       DEFW     DOVAR
  2773.           DEFW     0
  2774. ;
  2775.           DEFB     85H  ; TRACK ( TRACK # )
  2776.           DEFM     'TRAC'
  2777.           DEFB     'K'+80H
  2778.           DEFW     SEC-6
  2779. TRACK     DEFW     DOVAR
  2780.           DEFW     0
  2781. ;
  2782.           DEFB     83H  ; USE ( ADDR OF NEXT BUFFER TO USE )
  2783.           DEFM     'US'
  2784.           DEFB     'E'+80H
  2785.           DEFW     TRACK-8
  2786. USE       DEFW     DOVAR
  2787.           DEFW     BUF1
  2788. ;
  2789.           DEFB     84H  ; PREV
  2790.           DEFM     'PRE'
  2791.           DEFB     'V'+80H
  2792.           DEFW     USE-6
  2793. PREV      DEFW     DOVAR
  2794.           DEFW     BUF1
  2795. ;
  2796.           DEFB     87H  ; SEC/BLK ( # SECTORS/BLOCK )
  2797.           DEFM     'SEC/BL'
  2798.           DEFB     'K'+80H
  2799.           DEFW     PREV-7
  2800. SPBLK     DEFW     DOCON
  2801.           DEFW     KBBUF/BPS
  2802. ;
  2803.           DEFB     85H  ; #BUFF ( NUMBER OF BUFFERS )
  2804.           DEFM     '#BUF'
  2805.           DEFB     'F'+80H
  2806.           DEFW     SPBLK-10
  2807. NOBUF     DEFW     DOCON
  2808.           DEFW     NBUF
  2809. ;
  2810.           DEFB     87H  ; DENSITY ( 0 = SINGLE, 1 = DOUBLE )
  2811.           DEFM     'DENSIT'
  2812.           DEFB     'Y'+80H
  2813.           DEFW     NOBUF-8
  2814. DENSTY    DEFW     DOVAR
  2815.           DEFW     0
  2816. ;
  2817.           DEFB     8AH  ; DISK-ERROR ( DISK ERROR STATUS )
  2818.           DEFM     'DISK-ERRO'
  2819.           DEFB     'R'+80H
  2820.           DEFW     DENSTY-10
  2821. DSKERR    DEFW     DOVAR
  2822.           DEFW     0
  2823. ;
  2824. ; DISK INTERFACE HIGH-LEVEL ROUTINES
  2825. ;
  2826.           DEFB     84H  ; +BUF ( ADVANCE BUFFER )
  2827.           DEFM     '+BU'
  2828.           DEFB     'F'+80H
  2829.           DEFW     DSKERR-13
  2830. PBUF      DEFW     DOCOL
  2831.           DEFW     LIT
  2832.           DEFW     CO
  2833.           DEFW     PLUS
  2834.           DEFW     DUP
  2835.           DEFW     LIMIT
  2836.           DEFW     EQUAL
  2837.           DEFW     ZBRAN
  2838.           DEFW     PBUF1-$
  2839.           DEFW     DROP
  2840.           DEFW     FIRST
  2841. PBUF1     DEFW     DUP
  2842.           DEFW     PREV
  2843.           DEFW     AT
  2844.           DEFW     SUBB
  2845.           DEFW     SEMIS
  2846. ;
  2847.           DEFB     86H  ; UPDATE
  2848.           DEFM     'UPDAT'
  2849.           DEFB     'E'+80H
  2850.           DEFW     PBUF-7
  2851. UPDAT     DEFW     DOCOL
  2852.           DEFW     PREV
  2853.           DEFW     AT
  2854.           DEFW     AT
  2855.           DEFW     LIT
  2856.           DEFW     8000H
  2857.           DEFW     ORR
  2858.           DEFW     PREV
  2859.           DEFW     AT
  2860.           DEFW     STORE
  2861.           DEFW     SEMIS
  2862. ;
  2863.           DEFB     8DH  ; EMPTY-BUFFERS
  2864.           DEFM     'EMPTY-BUFFER'
  2865.           DEFB     'S'+80H
  2866.           DEFW     UPDAT-9
  2867. MTBUF     DEFW     DOCOL
  2868.           DEFW     FIRST
  2869.           DEFW     LIMIT
  2870.           DEFW     OVER
  2871.           DEFW     SUBB
  2872.           DEFW     ERASEE
  2873.           DEFW     SEMIS
  2874. ;
  2875.           DEFB     83H  ; DR0
  2876.           DEFM     'DR'
  2877.           DEFB     '0'+80H
  2878.           DEFW     MTBUF-16
  2879. DRZER     DEFW     DOCOL
  2880.           DEFW     ZERO
  2881.           DEFW     OFSET
  2882.           DEFW     STORE
  2883.           DEFW     SEMIS
  2884. ;
  2885. SPBLKK    EQU   KBBUF/BPS ; SECTORS/BLOCK
  2886. SCRDV1    EQU   SPDRV1/SPBLKK  ; SCREENS PER DRIVE 1
  2887. SCRDV2    EQU   SPDRV2/SPBLKK  ; SCREENS PER DRIVE 2
  2888.           DEFB     83H  ; DR1
  2889.           DEFM     'DR'
  2890.           DEFB     '1'+80H
  2891.           DEFW     DRZER-6
  2892. DRONE     DEFW     DOCOL
  2893.           DEFW     DENSTY
  2894.           DEFW     AT
  2895.           DEFW     ZBRAN
  2896.           DEFW     DRON1-$
  2897.           DEFW     LIT
  2898.           DEFW     SCRDV2
  2899.           DEFW     BRAN
  2900.           DEFW     DRON2-$
  2901. DRON1     DEFW     LIT
  2902.           DEFW     SCRDV1
  2903. DRON2     DEFW     OFSET
  2904.           DEFW     STORE
  2905.           DEFW     SEMIS
  2906. ;
  2907.           DEFB     86H  ; BUFFER
  2908.           DEFM     'BUFFE'
  2909.           DEFB     'R'+80H
  2910.           DEFW     DRONE-6
  2911. BUFFE     DEFW     DOCOL
  2912.           DEFW     USE
  2913.           DEFW     AT
  2914.           DEFW     DUP
  2915.           DEFW     TOR
  2916. BUFF1     DEFW     PBUF
  2917.           DEFW     ZBRAN
  2918.           DEFW     BUFF1-$
  2919.           DEFW     USE
  2920.           DEFW     STORE
  2921.           DEFW     RR1
  2922.           DEFW     AT
  2923.           DEFW     ZLESS
  2924.           DEFW     ZBRAN
  2925.           DEFW     BUFF2-$
  2926.           DEFW     RR1
  2927.           DEFW     TWOP
  2928.           DEFW     RR1
  2929.           DEFW     AT
  2930.           DEFW     LIT
  2931.           DEFW     7FFFH
  2932.           DEFW     ANDD
  2933.           DEFW     ZERO
  2934.           DEFW     RSLW
  2935. BUFF2     DEFW     RR1
  2936.           DEFW     STORE
  2937.           DEFW     RR1
  2938.           DEFW     PREV
  2939.           DEFW     STORE
  2940.           DEFW     FROMR
  2941.           DEFW     TWOP
  2942.           DEFW     SEMIS
  2943. ;
  2944.           DEFB     85H  ; BLOCK
  2945.           DEFM     'BLOC'
  2946.           DEFB     'K'+80H
  2947.           DEFW     BUFFE-9
  2948. BLOCK     DEFW     DOCOL
  2949.           DEFW     OFSET
  2950.           DEFW     AT
  2951.           DEFW     PLUS
  2952.           DEFW     TOR
  2953.           DEFW     PREV
  2954.           DEFW     AT
  2955.           DEFW     DUP
  2956.           DEFW     AT
  2957.           DEFW     RR1
  2958.           DEFW     SUBB
  2959.           DEFW     DUP
  2960.           DEFW     PLUS
  2961.           DEFW     ZBRAN
  2962.           DEFW     BLOC1-$
  2963. BLOC2     DEFW     PBUF
  2964.           DEFW     ZEQU
  2965.           DEFW     ZBRAN
  2966.           DEFW     BLOC3-$
  2967.           DEFW     DROP
  2968.           DEFW     RR1
  2969.           DEFW     BUFFE
  2970.           DEFW     DUP
  2971.           DEFW     RR1
  2972.           DEFW     ONE
  2973.           DEFW     RSLW
  2974.           DEFW     TWO
  2975.           DEFW     SUBB
  2976. BLOC3     DEFW     DUP
  2977.           DEFW     AT
  2978.           DEFW     RR1
  2979.           DEFW     SUBB
  2980.           DEFW     DUP
  2981.           DEFW     PLUS
  2982.           DEFW     ZEQU
  2983.           DEFW     ZBRAN
  2984.           DEFW     BLOC2-$
  2985.           DEFW     DUP
  2986.           DEFW     PREV
  2987.           DEFW     STORE
  2988. BLOC1     DEFW     FROMR
  2989.           DEFW     DROP
  2990.           DEFW     TWOP
  2991.           DEFW     SEMIS
  2992. ;
  2993. ; LOW LEVEL ROUTINES
  2994.           DEFB     89H  ; SET-DRIVE
  2995.           DEFM     'SET-DRIV'
  2996.           DEFB     'E'+80H
  2997.           DEFW     BLOCK-8
  2998. SETDRV    DEFW     $+2
  2999.           LD    A,(DRIVE+2)
  3000.           LD    (64769),A
  3001.           JP    NEXT
  3002. ;
  3003. ; CALCULATES DRIVE#, TRACK# & SECTOR#
  3004. ;
  3005.           DEFB     87H  ; T&SCALC
  3006.           DEFM     'T&SCAL'
  3007.           DEFB     'C'+80H
  3008.           DEFW     SETDRV-12
  3009. TSCALC    DEFW     DOCOL
  3010.           DEFW     DENSTY
  3011.           DEFW     AT
  3012.           DEFW     ZBRAN
  3013.           DEFW     TSCALS-$
  3014.           DEFW     LIT
  3015.           DEFW     SPDRV2
  3016.           DEFW     SLMOD
  3017.           DEFW     LIT
  3018.           DEFW     MXDRV
  3019.           DEFW     MIN
  3020.           DEFW     DUP
  3021.           DEFW     DRIVE
  3022.           DEFW     AT
  3023.           DEFW     EQUAL
  3024.           DEFW     ZBRAN
  3025.           DEFW     TSCAL1-$
  3026.           DEFW     DROP
  3027.           DEFW     BRAN
  3028.           DEFW     TSCAL2-$
  3029. TSCAL1    DEFW     DRIVE
  3030.           DEFW     STORE
  3031.           DEFW     SETDRV
  3032. TSCAL2    DEFW     LIT
  3033.           DEFW     25    ; DISPLACEMENT
  3034.           DEFW     PLUS
  3035.           DEFW     LIT
  3036.           DEFW     SPT2
  3037.           DEFW     SLMOD
  3038.           DEFW     TRACK
  3039.           DEFW     STORE
  3040.           DEFW     SEC
  3041.           DEFW     STORE
  3042.           DEFW     SEMIS
  3043. ; SINGLE DENSITY
  3044. TSCALS    DEFW     LIT
  3045.           DEFW     SPDRV1
  3046.           DEFW     SLMOD
  3047.           DEFW     LIT
  3048.           DEFW     MXDRV
  3049.           DEFW     MIN
  3050.           DEFW     DUP
  3051.           DEFW     DRIVE
  3052.           DEFW     AT
  3053.           DEFW     EQUAL
  3054.           DEFW     ZBRAN
  3055.           DEFW     TSCAL3-$
  3056.           DEFW     DROP
  3057.           DEFW     BRAN
  3058.           DEFW     TSCAL4-$
  3059. TSCAL3    DEFW     DRIVE
  3060.           DEFW     STORE
  3061.           DEFW     SETDRV
  3062. TSCAL4    DEFW     LIT
  3063.           DEFW     25   ; DISPLACEMENT
  3064.           DEFW     PLUS
  3065.           DEFW     LIT
  3066.           DEFW     SPT1
  3067.           DEFW     SLMOD
  3068.           DEFW     TRACK
  3069.           DEFW     STORE
  3070.           DEFW     SEC
  3071.           DEFW     STORE
  3072.           DEFW     SEMIS
  3073. ;
  3074. ;SEC-READ
  3075. ; READ A SECTOR AND TRANSFER TO MEMORY POINTED OUT BY USE
  3076. ;
  3077. ; SPECIFIC FOR ABC80
  3078. ;
  3079.           DEFB     88H  ; SEC-READ
  3080.           DEFM     'SEC-REA'
  3081.           DEFB     'D'+80H
  3082.           DEFW     TSCALC-10
  3083. SECRD     DEFW     $+2
  3084.           LD    (SAVEBC),BC
  3085.           LD    A,(SEC+2)
  3086.           LD    B,5
  3087. SECR1     SLA   A
  3088.           DJNZ  SECR1
  3089.           LD    E,A
  3090.           LD    A,(TRACK+2)
  3091.           LD    D,A
  3092.           CALL  24678  ; TRANSFER SECTOR TO MEM STARTING 62720
  3093.           LD    DE,(USE+2) ; DESINATION
  3094.           LD    HL,62720   ; SOURCE
  3095.           LD    BC,BPS     ; COUNT
  3096.           LDIR
  3097.           LD    BC,(SAVEBC)
  3098.           LD    A,(64789)
  3099.           LD    (DSKERR+2),A
  3100.           JP    NEXT
  3101. ;
  3102. ; SEC-WRITE
  3103. ; TRANSFER FROM MEM TO DISKBUFF AT 62720, THEN WRITE ON DISK
  3104. ; SPECIFIC FOR ABC80
  3105. ;
  3106.           DEFB     89H  ; SEC-WRITE
  3107.           DEFM     'SEC-WRIT'
  3108.           DEFB     'E'+80H
  3109.           DEFW     SECRD-11
  3110. SECWT     DEFW     $+2
  3111.           LD    (SAVEBC),BC
  3112.           LD    BC,BPS
  3113.           LD    DE,62720  ; DESTINATION
  3114.           LD    HL,(USE+2) ; SOURCE
  3115.           LDIR
  3116.           LD    A,(SEC+2)
  3117.           LD    B,5
  3118. SECW1     SLA   A
  3119.           DJNZ  SECW1
  3120.           LD    E,A
  3121.           LD    A,(TRACK+2)
  3122.           LD    D,A
  3123.           CALL  24675  ; WRITE SECTOR
  3124.           LD    A,(64789) ; ERROR FLAG
  3125.           LD    (DSKERR+2),A
  3126.           LD    BC,(SAVEBC)
  3127.           JP    NEXT
  3128. ;
  3129.           DEFB     83H  ; R/W
  3130.           DEFM     'R/'
  3131.           DEFB     'W'+80H
  3132.           DEFW     SECWT-12
  3133. RSLW      DEFW     DOCOL
  3134.           DEFW     USE
  3135.           DEFW     AT
  3136.           DEFW     TOR
  3137.           DEFW     SWAP
  3138.           DEFW  ONE
  3139.           DEFW  SUBB
  3140.           DEFW     SPBLK
  3141.           DEFW     STAR
  3142.           DEFW     ROT
  3143.           DEFW     USE
  3144.           DEFW     STORE
  3145.           DEFW     SPBLK
  3146.           DEFW     ZERO
  3147.           DEFW     XDO
  3148. RSLW1     DEFW     OVER
  3149.           DEFW     OVER
  3150.           DEFW     TSCALC
  3151.           DEFW     ZBRAN
  3152.           DEFW     RSLW2-$
  3153.           DEFW     SECRD
  3154.           DEFW     BRAN
  3155.           DEFW     RSLW2+2-$
  3156. RSLW2     DEFW     SECWT
  3157.           DEFW     ONEP
  3158.           DEFW     LIT
  3159.           DEFW     BPS
  3160.           DEFW     USE
  3161.           DEFW     PSTOR
  3162.           DEFW     XLOOP
  3163.           DEFW     RSLW1-$
  3164.           DEFW     DROP
  3165.           DEFW     DROP
  3166.           DEFW     FROMR
  3167.           DEFW     USE
  3168.           DEFW     STORE
  3169.           DEFW  QDISK
  3170.           DEFW     SEMIS
  3171. ;
  3172.           DEFB     85H  ; FLUSH
  3173.           DEFM     'FLUS'
  3174.           DEFB     'H'+80H
  3175.           DEFW     RSLW-6
  3176. FLUSH     DEFW     DOCOL
  3177.           DEFW     NOBUF
  3178.           DEFW     ONEP
  3179.           DEFW     ZERO
  3180.           DEFW     XDO
  3181. FLUS1     DEFW     ZERO
  3182.           DEFW     BUFFE
  3183.           DEFW     DROP
  3184.           DEFW     XLOOP
  3185.           DEFW     FLUS1-$
  3186.           DEFW     SEMIS
  3187. ;
  3188.           DEFB     84H  ; LOAD
  3189.           DEFM     'LOA'
  3190.           DEFB     'D'+80H
  3191.           DEFW     FLUSH-8
  3192. LOAD      DEFW     DOCOL
  3193.           DEFW     BLK
  3194.           DEFW     AT
  3195.           DEFW     TOR
  3196.           DEFW     INN
  3197.           DEFW     AT
  3198.           DEFW     TOR
  3199.           DEFW     ZERO
  3200.           DEFW     INN
  3201.           DEFW     STORE
  3202.           DEFW     BSCR
  3203.           DEFW     STAR
  3204.           DEFW     BLK
  3205.           DEFW     STORE
  3206.           DEFW     INTER
  3207.           DEFW     FROMR
  3208.           DEFW     INN
  3209.           DEFW     STORE
  3210.           DEFW     FROMR
  3211.           DEFW     BLK
  3212.           DEFW     STORE
  3213.           DEFW     SEMIS
  3214. ;
  3215.           DEFB     0C3H  ; -->
  3216.           DEFM     '--'
  3217.           DEFB     '>'+80H
  3218.           DEFW     LOAD-7
  3219. ARROW     DEFW     DOCOL
  3220.           DEFW     QLOAD
  3221.           DEFW     ZERO
  3222.           DEFW     INN
  3223.           DEFW     STORE
  3224.           DEFW     BSCR
  3225.           DEFW     BLK
  3226.           DEFW     AT
  3227.           DEFW     OVER
  3228.           DEFW     MODD
  3229.           DEFW     SUBB
  3230.           DEFW     BLK
  3231.           DEFW     PSTOR
  3232.           DEFW     SEMIS
  3233. ;
  3234. ; CONSOLE AND PRINTER INTERFACE
  3235. ;
  3236.           DEFB  83H  ; ?PR
  3237.           DEFM  '?P'
  3238.           DEFB  'R'+80H
  3239.           DEFW  ARROW-6
  3240. QPR       DEFW  DOCON
  3241. EPRINT    DEFW     0  ; ENABLE PRINTER VARIABLE
  3242. ;
  3243.           DEFB  83H  ; #CR
  3244.           DEFM  '#C'
  3245.           DEFB  'R'+80H
  3246.           DEFW  QPR-6
  3247. NRCR      DEFW  DOVAR
  3248.           DEFW  0
  3249. CHROUT    DEFW  0
  3250. ; ( 0 = DISABLED, 1 = ENABLED )
  3251. CSTAT     LD    A,0
  3252.           PUSH  HL
  3253.           LD    HL,TGBF
  3254.           BIT   7,(HL)
  3255.           POP   HL
  3256.           RET   Z
  3257.           LD    A,0FFH
  3258.           RET
  3259. ;
  3260. CIN       PUSH  BC
  3261.           PUSH  IX
  3262.           CALL  0002H
  3263.           RES   7,A
  3264.           POP   IX
  3265.           POP   BC
  3266.           RET
  3267. ;
  3268. COUT      PUSH  HL
  3269.           LD    B,0DH
  3270.           LD    (CHROUT),BC
  3271.           LD    BC,1
  3272.           LD    HL,CHROUT
  3273.           PUSH  IX
  3274.           CALL  000BH
  3275.           POP   IX
  3276.           POP   HL
  3277.           RET
  3278. ;
  3279. CPOUT     CALL  COUT
  3280.           EX    DE,HL
  3281.           LD    A,(EPRINT)
  3282.           BIT   0,A
  3283.           RET   Z
  3284. ;
  3285. ; USE OPTIONSPROM   7-2  OR 7-1
  3286. ;
  3287.           PUSH  DE
  3288.           PUSH  BC
  3289.           LD    HL,NAMFLD+15
  3290.           LD    A,1        
  3291.           CP    (HL)
  3292.           JR    Z,LADD  ; FILNAMN FINNS
  3293.           LD    A,32
  3294.           LD    B,14
  3295.           LD    HL,NAMFLD
  3296. N[STA     LD    (HL),A
  3297.           INC   HL
  3298.           DJNZ  N[STA
  3299. ;
  3300. LADD      POP   BC
  3301.           LD    HL,NAMFLD
  3302.           LD    DE,NAMFLD
  3303.           LD    IX,PRBLK
  3304.           LD    (IX+5),1
  3305.           LD    (IX+6),0
  3306.           EX    AF,AF'
  3307.          EXX
  3308.          LD    HL,7117H  ; UNDERSÖK PROM
  3309.          LD    A,24H     ; 24H OM NYTT 92H OM GAMMALT
  3310.          CP    (HL)      ; KOLLA OM KOD ÄR 1
  3311.          JR    Z,PROM72  ; DET VAR DET NYA HOPPA
  3312.          EXX
  3313.          EX    AF,AF'
  3314.           LD    A,0
  3315.           CALL  710DH                              
  3316.           JR    PR71
  3317. PROM72    EXX  
  3318.           EX    AF,AF'
  3319.          LD    A,0
  3320.          CALL  7124H
  3321. PR71      LD    HL,CHROUT
  3322.          POP   DE
  3323.          LD    (HL),E
  3324.          LD    BC,1
  3325.          LD    A,4      ; PRINTKOMMANDO
  3326.          EX    AF,AF'
  3327.           EXX
  3328.           LD    HL,7117H
  3329.           LD    A,24H
  3330.           CP    (HL)
  3331.           JR    Z,PRO72
  3332.           EXX
  3333.           EX    AF,AF'
  3334.          JP    710DH
  3335. PRO72     EXX
  3336.          EX    AF,AF'
  3337.           JP    7124H                              
  3338. ;
  3339. LOW       EQU   0
  3340. HIGH      EQU   8
  3341. ;
  3342. PQTER     CALL  CSTAT
  3343.           LD    HL,0
  3344.           OR    A
  3345.           JR    Z,PQTE1
  3346.           INC   L
  3347. PQTE1     JP    HPUSH
  3348. ;
  3349. PKEY      CALL  CIN
  3350.           LD    L,A
  3351.           LD    H,0
  3352.           JP    HPUSH
  3353. ;
  3354. PEMIT     DEFW  $+2  ; (EMIT)
  3355.           POP   HL
  3356.           PUSH  BC
  3357.           LD    C,L
  3358.           CALL  CPOUT
  3359.           POP   BC
  3360.           JP    NEXT
  3361. ;
  3362. PCR       PUSH  BC
  3363.           LD    C,ACR
  3364.           LD    L,C
  3365.           CALL  CPOUT
  3366.           LD    C,LF
  3367.           LD    L,C
  3368.           CALL  CPOUT
  3369.           LD    HL,(NRCR+2)
  3370.           INC   HL
  3371.           LD    (NRCR+2),HL
  3372.           POP   BC
  3373.           JP    NEXT
  3374. ;
  3375. ; END OF INTERFACE ROUTINES
  3376. ;
  3377.           DEFB     0C1H  ; ' (TICK)
  3378.           DEFB     0A7H
  3379.           DEFW     NRCR-6
  3380. TICK      DEFW     DOCOL
  3381.           DEFW     DFIND
  3382.           DEFW     ZEQU
  3383.           DEFW     ZERO
  3384.           DEFW     QERR
  3385.           DEFW     DROP
  3386.           DEFW     LITER
  3387.           DEFW     SEMIS
  3388. ;
  3389.           DEFB     86H  ; FORGET
  3390.           DEFM     'FORGE'
  3391.           DEFB     'T'+80H
  3392.           DEFW     TICK-4
  3393. FORG      DEFW     DOCOL
  3394.           DEFW     CURR
  3395.           DEFW     AT
  3396.           DEFW     CONT
  3397.           DEFW     AT
  3398.           DEFW     SUBB
  3399.           DEFW     LIT
  3400.           DEFW     LPSCR+8
  3401.           DEFW     QERR
  3402.           DEFW     TICK
  3403.           DEFW     DUP
  3404.           DEFW     FENCE
  3405.           DEFW     AT
  3406.           DEFW     LESS
  3407.           DEFW     LIT
  3408.           DEFW     LPSCR+5
  3409.           DEFW     QERR
  3410.           DEFW     DUP
  3411.           DEFW     NFA
  3412.           DEFW     DP
  3413.           DEFW     STORE
  3414.           DEFW     LFA
  3415.           DEFW     AT
  3416.           DEFW     CONT
  3417.           DEFW     AT
  3418.           DEFW     STORE
  3419.           DEFW     SEMIS
  3420. ;
  3421.           DEFB     84H  ; BACK
  3422.           DEFM     'BAC'
  3423.           DEFB     'K'+80H
  3424.           DEFW     FORG-9
  3425. BACK      DEFW     DOCOL
  3426.           DEFW     HERE
  3427.           DEFW     SUBB
  3428.           DEFW     COMMA
  3429.           DEFW     SEMIS
  3430. ;
  3431.           DEFB     0C5H  ; BEGIN
  3432.           DEFM     'BEGI'
  3433.           DEFB     'N'+80H
  3434.           DEFW     BACK-7
  3435. BEGIN     DEFW     DOCOL
  3436.           DEFW     QCOMP
  3437.           DEFW     HERE
  3438.           DEFW     ONE
  3439.           DEFW     SEMIS
  3440. ;
  3441.           DEFB     0C5H  ; ENDIF
  3442.           DEFM     'ENDI'
  3443.           DEFB     'F'+80H
  3444.           DEFW     BEGIN-8
  3445. ENDIFF    DEFW     DOCOL
  3446.           DEFW     QCOMP
  3447.           DEFW     TWO
  3448.           DEFW     QPAIR
  3449.           DEFW     HERE
  3450.           DEFW     OVER
  3451.           DEFW     SUBB
  3452.           DEFW     SWAP
  3453.           DEFW     STORE
  3454.           DEFW     SEMIS
  3455. ;
  3456.           DEFB     0C4H  ; THEN
  3457.           DEFM     'THE'
  3458.           DEFB     'N'+80H
  3459.           DEFW     ENDIFF-8
  3460. THEN      DEFW     DOCOL
  3461.           DEFW     ENDIFF
  3462.           DEFW     SEMIS
  3463. ;
  3464.           DEFB     0C2H  ; DO
  3465.           DEFB     'D'
  3466.           DEFB     'O'+80H
  3467.           DEFW     THEN-7
  3468. DO        DEFW     DOCOL
  3469.           DEFW     COMP
  3470.           DEFW     XDO
  3471.           DEFW     HERE
  3472.           DEFW     THREE
  3473.           DEFW     SEMIS
  3474. ;
  3475.           DEFB     0C4H  ; LOOP
  3476.           DEFM     'LOO'
  3477.           DEFB     'P'+80H
  3478.           DEFW     DO-5
  3479. LOOP      DEFW     DOCOL
  3480.           DEFW     THREE
  3481.           DEFW     QPAIR
  3482.           DEFW     COMP
  3483.           DEFW     XLOOP
  3484.           DEFW     BACK
  3485.           DEFW     SEMIS
  3486. ;
  3487.           DEFB     0C5H  ; +LOOP
  3488.           DEFM     '+LOO'
  3489.           DEFB     'P'+80H
  3490.           DEFW     LOOP-7
  3491. PLOOP     DEFW     DOCOL
  3492.           DEFW     THREE
  3493.           DEFW     QPAIR
  3494.           DEFW     COMP
  3495.           DEFW     XPLOO
  3496.           DEFW     BACK
  3497.           DEFW     SEMIS
  3498. ;
  3499.           DEFB     0C5H  ; UNTIL
  3500.           DEFM     'UNTI'
  3501.           DEFB     'L'+80H
  3502.           DEFW     PLOOP-8
  3503. UNTIL     DEFW     DOCOL
  3504.           DEFW     ONE
  3505.           DEFW     QPAIR
  3506.           DEFW     COMP
  3507.           DEFW     ZBRAN
  3508.           DEFW     BACK
  3509.           DEFW     SEMIS
  3510. ;
  3511.           DEFB     0C3H  ; END
  3512.           DEFM     'EN'
  3513.           DEFB     'D'+80H
  3514.           DEFW     UNTIL-8
  3515. ENDD      DEFW     DOCOL
  3516.           DEFW     UNTIL
  3517.           DEFW     SEMIS
  3518. ;
  3519.           DEFB     0C5H  ; AGAIN
  3520.           DEFM     'AGAI'
  3521.           DEFB     'N'+80H
  3522.           DEFW     ENDD-6
  3523. AGAIN     DEFW     DOCOL
  3524.           DEFW     ONE
  3525.           DEFW     QPAIR
  3526.           DEFW     COMP
  3527.           DEFW     BRAN
  3528.           DEFW     BACK
  3529.           DEFW     SEMIS
  3530. ;
  3531.           DEFB     0C6H  ; REPEAT
  3532.           DEFM     'REPEA'
  3533.           DEFB     'T'+80H
  3534.           DEFW     AGAIN-8
  3535. REPEA     DEFW     DOCOL
  3536.           DEFW     TOR
  3537.           DEFW     TOR
  3538.           DEFW     AGAIN
  3539.           DEFW     FROMR
  3540.           DEFW     FROMR
  3541.           DEFW     TWO
  3542.           DEFW     SUBB
  3543.           DEFW     ENDIFF
  3544.           DEFW     SEMIS
  3545. ;
  3546.           DEFB     0C2H  ; IF
  3547.           DEFB     'I'
  3548.           DEFB     'F'+80H
  3549.           DEFW     REPEA-9
  3550. IFF       DEFW     DOCOL
  3551.           DEFW     COMP
  3552.           DEFW     ZBRAN
  3553.           DEFW     HERE
  3554.           DEFW     ZERO
  3555.           DEFW     COMMA
  3556.           DEFW     TWO
  3557.           DEFW     SEMIS
  3558. ;
  3559.           DEFB     0C4H  ; ELSE
  3560.           DEFM     'ELS'
  3561.           DEFB     'E'+80H
  3562.           DEFW     IFF-5
  3563. ELSEE     DEFW     DOCOL
  3564.           DEFW     TWO
  3565.           DEFW     QPAIR
  3566.           DEFW     COMP
  3567.           DEFW     BRAN
  3568.           DEFW     HERE
  3569.           DEFW     ZERO
  3570.           DEFW     COMMA
  3571.           DEFW     SWAP
  3572.           DEFW     TWO
  3573.           DEFW     ENDIFF
  3574.           DEFW     TWO
  3575.           DEFW     SEMIS
  3576. ;
  3577.           DEFB     0C5H  ; WHILE
  3578.           DEFM     'WHIL'
  3579.           DEFB     'E'+80H
  3580.           DEFW     ELSEE-7
  3581. WHILE     DEFW     DOCOL
  3582.           DEFW     IFF
  3583.           DEFW     TWOP
  3584.           DEFW     SEMIS
  3585. ;
  3586.           DEFB     86H  ; SPACES
  3587.           DEFM     'SPACE'
  3588.           DEFB     'S'+80H
  3589.           DEFW     WHILE-8
  3590. SPACS     DEFW     DOCOL
  3591.           DEFW     ZERO
  3592.           DEFW     MAX
  3593.           DEFW     DDUP
  3594.           DEFW     ZBRAN
  3595.           DEFW     SPAX1-$
  3596.           DEFW     ZERO
  3597.           DEFW     XDO
  3598. SPAX2     DEFW     SPACE
  3599.           DEFW     XLOOP
  3600.           DEFW     SPAX2-$
  3601. SPAX1     DEFW     SEMIS
  3602. ;
  3603.           DEFB     82H  ; <#
  3604.           DEFB     '<'
  3605.           DEFB     '#'+80H
  3606.           DEFW     SPACS-9
  3607. BDIGS     DEFW     DOCOL
  3608.           DEFW     PAD
  3609.           DEFW     HLD
  3610.           DEFW     STORE
  3611.           DEFW     SEMIS
  3612. ;
  3613.           DEFB     82H  ; #>
  3614.           DEFB     '#'
  3615.           DEFB     '>'+80H
  3616.           DEFW     BDIGS-5
  3617. EDIGS     DEFW     DOCOL
  3618.           DEFW     DROP
  3619.           DEFW     DROP
  3620.           DEFW     HLD
  3621.           DEFW     AT
  3622.           DEFW     PAD
  3623.           DEFW     OVER
  3624.           DEFW     SUBB
  3625.           DEFW     SEMIS
  3626. ;
  3627.           DEFB     84H  ; SIGN
  3628.           DEFM     'SIG'
  3629.           DEFB     'N'+80H
  3630.           DEFW     EDIGS-5
  3631. SIGN      DEFW     DOCOL
  3632.           DEFW     ROT
  3633.           DEFW     ZLESS
  3634.           DEFW     ZBRAN
  3635.           DEFW     SIGN1-$
  3636.           DEFW     LIT
  3637.           DEFW     2DH
  3638.           DEFW     HOLD
  3639. SIGN1     DEFW     SEMIS
  3640. ;
  3641.           DEFB     81H  ; #
  3642.           DEFB     '#'+80H
  3643.           DEFW     SIGN-7
  3644. DIG       DEFW     DOCOL
  3645.           DEFW     BASE
  3646.           DEFW     AT
  3647.           DEFW     MSMOD
  3648.           DEFW     ROT
  3649.           DEFW     LIT
  3650.           DEFW     9
  3651.           DEFW     OVER
  3652.           DEFW     LESS
  3653.           DEFW     ZBRAN
  3654.           DEFW     DIG1-$
  3655.           DEFW     LIT
  3656.           DEFW     7
  3657.           DEFW     PLUS
  3658. DIG1      DEFW     LIT
  3659.           DEFW     30H
  3660.           DEFW     PLUS
  3661.           DEFW     HOLD
  3662.           DEFW     SEMIS
  3663. ;
  3664.           DEFB     82H  ; #S
  3665.           DEFB     '#'
  3666.           DEFB     'S'+80H
  3667.           DEFW     DIG-4
  3668. DIGS      DEFW     DOCOL
  3669. DIGS1     DEFW     DIG
  3670.           DEFW     OVER
  3671.           DEFW     OVER
  3672.           DEFW     ORR
  3673.           DEFW     ZEQU
  3674.           DEFW     ZBRAN
  3675.           DEFW     DIGS1-$
  3676.           DEFW     SEMIS
  3677. ;
  3678.           DEFB     83H  ; D.R
  3679.           DEFM     'D.'
  3680.           DEFB     'R'+80H
  3681.           DEFW     DIGS-5
  3682. DDOTR     DEFW     DOCOL
  3683.           DEFW     TOR
  3684.           DEFW     SWAP
  3685.           DEFW     OVER
  3686.           DEFW     DABS
  3687.           DEFW     BDIGS
  3688.           DEFW     DIGS
  3689.           DEFW     SIGN
  3690.           DEFW     EDIGS
  3691.           DEFW     FROMR
  3692.           DEFW     OVER
  3693.           DEFW     SUBB
  3694.           DEFW     SPACS
  3695.           DEFW     TYPE
  3696.           DEFW     SEMIS
  3697. ;
  3698.           DEFB     82H  ; .R
  3699.           DEFB     '.'
  3700.           DEFB     'R'+80H
  3701.           DEFW     DDOTR-6
  3702. DOTR      DEFW     DOCOL
  3703.           DEFW     TOR
  3704.           DEFW     STOD
  3705.           DEFW     FROMR
  3706.           DEFW     DDOTR
  3707.           DEFW     SEMIS
  3708. ;
  3709.           DEFB     82H  ; D.
  3710.           DEFB     'D'
  3711.           DEFB     '.'+80H
  3712.           DEFW     DOTR-5
  3713. DDOT      DEFW     DOCOL
  3714.           DEFW     ZERO
  3715.           DEFW     DDOTR
  3716.           DEFW     SPACE
  3717.           DEFW     SEMIS
  3718. ;
  3719.           DEFB     81H  ; .
  3720.           DEFB     '.'+80H
  3721.           DEFW     DDOT-5
  3722. DOT       DEFW     DOCOL
  3723.           DEFW     STOD
  3724.           DEFW     DDOT
  3725.           DEFW     SEMIS
  3726. ;
  3727.           DEFB     81H  ; ?
  3728.           DEFB     '?'+80H
  3729.           DEFW     DOT-4
  3730. QUES      DEFW     DOCOL
  3731.           DEFW     AT
  3732.           DEFW     DOT
  3733.           DEFW     SEMIS
  3734. ;
  3735.           DEFB     82H  ; U.
  3736.           DEFB     'U'
  3737.           DEFB     '.'+80H
  3738.           DEFW     QUES-4
  3739. UDOT      DEFW     DOCOL
  3740.           DEFW     ZERO
  3741.           DEFW     DDOT
  3742.           DEFW     SEMIS
  3743. ;
  3744.           DEFB     85H  ; VLIST
  3745.           DEFM     'VLIS'
  3746.           DEFB     'T'+80H
  3747.           DEFW     UDOT-5
  3748. VLIST     DEFW     DOCOL
  3749.           DEFW     LIT
  3750.           DEFW     80H
  3751.           DEFW     OUTT
  3752.           DEFW     STORE
  3753.           DEFW     CONT
  3754.           DEFW     AT
  3755.           DEFW     AT
  3756. VLIS1     DEFW     OUTT
  3757.           DEFW     AT
  3758.           DEFW     CSLL
  3759.           DEFW     GREAT
  3760.           DEFW     ZBRAN
  3761.           DEFW     VLIS2-$
  3762.           DEFW     CR
  3763.           DEFW     ZERO
  3764.           DEFW     OUTT
  3765.           DEFW     STORE
  3766. VLIS2     DEFW     DUP
  3767.           DEFW     IDDOT
  3768.           DEFW     SPACE
  3769.           DEFW     SPACE
  3770.           DEFW     PFA
  3771.           DEFW     LFA
  3772.           DEFW     AT
  3773.           DEFW     DUP
  3774.           DEFW     ZEQU
  3775.           DEFW     QTERM
  3776.           DEFW     ORR
  3777.           DEFW     ZBRAN
  3778.           DEFW     VLIS1-$
  3779.           DEFW     DROP
  3780.           DEFW     SEMIS
  3781. ;
  3782. ; EXIT SYSTEM
  3783. ;
  3784.           DEFB     83H  ; BYE
  3785.           DEFM     'BY'
  3786.           DEFB     'E'+80H
  3787.           DEFW     VLIST-8
  3788. BYE       DEFW     $+2
  3789.           JP    0
  3790. ;
  3791.           DEFB     84H  ; LIST
  3792.           DEFM     'LIS'
  3793.           DEFB     'T'+80H
  3794.           DEFW     BYE-6
  3795. LIST      DEFW     DOCOL
  3796.           DEFW     DECI
  3797.           DEFW     CR
  3798.           DEFW     DUP
  3799.           DEFW     SCR
  3800.           DEFW     STORE
  3801.           DEFW     PDOTQ
  3802.           DEFB     6
  3803.           DEFM     'SCR # '
  3804.           DEFW     DOT
  3805.           DEFW     LIT
  3806.           DEFW     LPSCR ; 23 LINES FOR ABC80
  3807.           DEFW     ZERO
  3808.           DEFW     XDO
  3809. LIST1     DEFW     CR
  3810.           DEFW     IDO
  3811.           DEFW     LIT
  3812.           DEFW     2
  3813.           DEFW     DOTR
  3814.           DEFW     SPACE
  3815.           DEFW     IDO
  3816.           DEFW     SCR
  3817.           DEFW     AT
  3818.           DEFW     DLINE
  3819.           DEFW     QTERM
  3820.           DEFW     ZBRAN
  3821.           DEFW     LIST2-$
  3822.           DEFW     LEAVE
  3823. LIST2     DEFW     XLOOP
  3824.           DEFW     LIST1-$
  3825.           DEFW     CR
  3826.           DEFW     SEMIS
  3827. ;
  3828.           DEFB     85H  ; INDEX
  3829.           DEFM     'INDE'
  3830.           DEFB     'X'+80H
  3831.           DEFW     LIST-7
  3832. INDEX     DEFW     DOCOL
  3833.           DEFW  PAGE
  3834.           DEFW     CR
  3835.           DEFW     ONEP
  3836.           DEFW     SWAP
  3837.           DEFW     XDO
  3838. INDE1     DEFW     CR
  3839.           DEFW     IDO
  3840.           DEFW     LIT
  3841.           DEFW     3
  3842.           DEFW     DOTR
  3843.           DEFW     SPACE
  3844.           DEFW     ZERO
  3845.           DEFW     IDO
  3846.           DEFW     DLINE
  3847.           DEFW     QTERM
  3848.           DEFW     ZBRAN
  3849.           DEFW     INDE2-$
  3850.           DEFW     LEAVE
  3851. INDE2     DEFW     XLOOP
  3852.           DEFW     INDE1-$
  3853.           DEFW     SEMIS
  3854. ;
  3855.           DEFB     85H  ; TRIAD
  3856.           DEFM     'TRIA'
  3857.           DEFB     'D'+80H
  3858.           DEFW     INDEX-8
  3859. TRIAD     DEFW     DOCOL
  3860.           DEFW  PAGE
  3861.           DEFW     LIT
  3862.           DEFW     3
  3863.           DEFW     SLASH
  3864.           DEFW     LIT
  3865.           DEFW     3
  3866.           DEFW     STAR
  3867.           DEFW     LIT
  3868.           DEFW     3
  3869.           DEFW     OVER
  3870.           DEFW     PLUS
  3871.           DEFW     SWAP
  3872.           DEFW     XDO
  3873. TRIA1     DEFW     CR
  3874.           DEFW     IDO
  3875.           DEFW     LIST
  3876.           DEFW     QTERM
  3877.           DEFW     ZBRAN
  3878.           DEFW     TRIA2-$
  3879.           DEFW     LEAVE
  3880. TRIA2     DEFW     XLOOP
  3881.           DEFW     TRIA1-$
  3882.           DEFW     CR
  3883.           DEFW     SEMIS
  3884. ;
  3885.           DEFB     84H  ; .CPU
  3886.           DEFM     '.CP'
  3887.           DEFB     'U'+80H
  3888.           DEFW     TRIAD-8
  3889. DOTCPU    DEFW     DOCOL
  3890.           DEFW     BASE
  3891.           DEFW     AT
  3892.           DEFW     LIT
  3893.           DEFW     36
  3894.           DEFW     BASE
  3895.           DEFW     STORE
  3896.           DEFW     LIT
  3897.           DEFW     22H
  3898.           DEFW     PORIG
  3899.           DEFW     TAT
  3900.           DEFW     DDOT
  3901.           DEFW     BASE
  3902.           DEFW     STORE
  3903.           DEFW     SEMIS
  3904. ;
  3905.           DEFB     0C9H  ; /COMPILE/
  3906.           DEFM     '/COMPILE'
  3907.           DEFB     '/'+80H
  3908.           DEFW     DOTCPU-7
  3909. SLACOM    DEFW     DOCOL
  3910.           DEFW     BCOMP
  3911.           DEFW     SEMIS
  3912. ;
  3913.           DEFB     84H  ; PAGE
  3914.           DEFM     'PAG'
  3915.           DEFB     'E'+80H
  3916.           DEFW     SLACOM-12
  3917. PAGE      DEFW     $+2
  3918.           LD    (SAVEBC),BC
  3919.           PUSH  IX
  3920.           PUSH  BC
  3921.           PUSH  HL
  3922.           LD    BC,1  ; TEXTLÄNGD
  3923.           LD    HL,CLS ;PEKARE TILL TEXT
  3924.           CALL  0BH    ;OUTSTR
  3925.           POP   HL
  3926.           POP   BC
  3927.           POP   IX
  3928.           LD    BC,(SAVEBC)
  3929.           JP    NEXT
  3930. ;
  3931.           DEFB     0C2H  ; LB
  3932.           DEFB     'L'
  3933.           DEFB     'B'+80H
  3934.           DEFW     PAGE-7
  3935. LB        DEFW     DOCOL
  3936.           DEFW     LBRAC
  3937.           DEFW     SEMIS
  3938. ;
  3939.           DEFB     85H  ; PR-ON
  3940.           DEFM     'PR-O'
  3941.           DEFB     'N'+80H
  3942.           DEFW     LB-5
  3943. PRON      DEFW  $+2
  3944.           LD    HL,1        
  3945.           LD    (EPRINT),HL
  3946.           JP    NEXT
  3947. PRBLK     DEFS  30
  3948. ;
  3949.           DEFB     86H  ; PR-OFF
  3950.           DEFM     'PR-OF'
  3951.           DEFB     'F'+80H
  3952.           DEFW     PRON-8
  3953. PROFF     DEFW     $+2
  3954.           LD    HL,0
  3955.           LD    (EPRINT),HL
  3956.           JP    NEXT
  3957. ;
  3958. ;
  3959.           DEFB     87H  ; CURADDR
  3960.           DEFM     'CURADD'
  3961.           DEFB     'R'+80H
  3962.           DEFW     PROFF-9
  3963. CURADD    DEFW     $+2
  3964.           LD    (SAVEBC),BC
  3965.           POP   DE  ; Y
  3966.           POP   BC  ; X
  3967.           LD    D,C
  3968. ;
  3969. ; BILDADRESSBER[KNING ABC 800
  3970. ;
  3971.           PUSH  DE
  3972.           LD    A,(0FF54H) ; 40/80 TKN  
  3973.                            ;65364
  3974.           PUSH  AF    
  3975.           CP    80
  3976.           JR    Z,TKN40
  3977.           LD    A,E
  3978.           SRL   A
  3979.           SRL   A
  3980.           SRL   A
  3981.           LD    L,A
  3982.           ADD   A,A
  3983.           ADD   A,A
  3984.           ADD   A,L
  3985.           ADD   A,A
  3986.           ADD   A,A
  3987.           ADD   A,A
  3988.           LD    L,A
  3989.           LD    A,E
  3990.           AND   7
  3991.           SRL   A
  3992.           ADD   A,7CH
  3993.           LD    H,A
  3994.           LD    A,E
  3995.           AND   1
  3996.           RRCA
  3997.           ADD   A,L
  3998.           LD    L,A
  3999.           POP   AF
  4000.           POP   DE
  4001.           LD    E,D
  4002.           LD    D,0
  4003.           ADD   HL,DE
  4004.           JR    KLAR
  4005. ;
  4006. ;         40 TECKENS BERÄKNING
  4007. ;
  4008. TKN40     LD    A,E
  4009.           ADD   A,A
  4010.           ADD   A,A
  4011.           ADD   A,E
  4012.           ADD   A,A
  4013.           LD    L,A
  4014.           LD    H,0
  4015.           ADD   HL,HL
  4016.           ADD   HL,HL
  4017.           ADD   HL,HL
  4018.           LD    A,H
  4019.           ADD   A,120
  4020.           LD    H,A
  4021.           POP   AF
  4022.           POP   DE
  4023.           LD    E,D
  4024.           LD    D,0
  4025.           ADD   HL,DE
  4026. ;        
  4027. ;
  4028. KLAR      PUSH  HL           ; LÄGG ADRESSEN PÅ STACKEN
  4029.           LD    BC,(SAVEBC)
  4030.           JP    NEXT
  4031. ;
  4032.           DEFB  85H  ; ?DISK
  4033.           DEFM  '?DIS'
  4034.           DEFB  'K'+80H
  4035.           DEFW  CURADD-10
  4036. QDISK     DEFW     DOCOL
  4037.           DEFW     DSKERR
  4038.           DEFW     AT
  4039.           DEFW     ZBRAN
  4040.           DEFW     QDSK1-$
  4041.           DEFW     CR
  4042.           DEFW     ERNUM
  4043.           DEFW     ERROR
  4044. QDSK1     DEFW     SEMIS
  4045. ;
  4046.           DEFB  84H  ; ERR#
  4047.           DEFM  'ERR'
  4048.           DEFB  '#'+80H
  4049.           DEFW     QDISK-8
  4050. ERNUM     DEFW     $+2
  4051.           LD    DE,8
  4052.           LD    HL,DSKERR+2
  4053.           BIT   1,(HL)
  4054.           JR    Z,DER1
  4055.           LD    DE,12
  4056.           JR    DEREND
  4057. DER1      BIT   6,(HL)
  4058.           JR    Z,DER2
  4059.           LD    DE,10
  4060.           JR    DEREND
  4061. DER2      BIT   4,(HL)
  4062.           JR    Z,DER3
  4063.           LD    DE,11
  4064.           JR    DEREND
  4065. DER3      BIT   7,(HL)
  4066.           JR    Z,DEREND
  4067.           LD    DE,9
  4068. DEREND    EX    DE,HL
  4069.           JP    HPUSH
  4070. ;
  4071.           DEFB     84H ; NEXT
  4072.           DEFM     'NEX'
  4073.           DEFB     'T'+80H
  4074.           DEFW     ERNUM-7  
  4075. NEXTT     DEFW     DOCON
  4076.           DEFW     NEXT
  4077. ;
  4078.           DEFB     84H ;  BECE
  4079.           DEFM     'BEC'
  4080.           DEFB     'E'+80H
  4081.           DEFW     NEXTT-7
  4082. BECE      DEFW     DOVAR
  4083. SAVEBC    DEFW     0
  4084. ;
  4085. RETSTK    LD    HL,(RPP)
  4086.           ADD   HL,DE
  4087.           LD    E,(HL)
  4088.           INC   HL
  4089.           LD    D,(HL)
  4090.           PUSH  DE
  4091.           JP    NEXT
  4092. ;
  4093.           DEFB     82H  ; IPRIME
  4094.           DEFB     'I'
  4095.           DEFB     39+80H
  4096.           DEFW     BECE-7  
  4097. IPRIM     DEFW     $+2
  4098.           LD    DE,2
  4099.           JP    RETSTK
  4100. ;
  4101.           DEFB     81H  ; J
  4102.           DEFB     'J'+80H
  4103.           DEFW     IPRIM-5
  4104. JAY       DEFW     $+2
  4105.           LD    DE,4
  4106.           JP    RETSTK
  4107. ;
  4108.           DEFB     82H  ; JPRIME
  4109.           DEFB     'J'
  4110.           DEFB     39+80H
  4111.           DEFW     JAY-4
  4112. JPRIM     DEFW     $+2
  4113.           LD    DE,6
  4114.           JP    RETSTK
  4115. ;
  4116.           DEFB     85H  ; 2DROP
  4117.           DEFM     '2DRO'
  4118.           DEFB     'P'+80H
  4119.           DEFW     JPRIM-5
  4120. TODROP    DEFW     $+2
  4121.           POP   HL
  4122.           POP   HL
  4123.           JP    NEXT
  4124. ;
  4125.           DEFB     85H  ; 2SWAP
  4126.           DEFM     '2SWA'
  4127.           DEFB     'P'+80H
  4128.           DEFW     TODROP-8
  4129. TOSWAP    DEFW     $+2
  4130.           POP   DE
  4131.           POP   HL
  4132.           EXX
  4133.           POP   DE
  4134.           POP   HL
  4135.           EXX
  4136.           PUSH  HL
  4137.           PUSH  DE
  4138.           EXX
  4139.           PUSH  HL
  4140.           PUSH  DE
  4141.           EXX
  4142.           JP    NEXT
  4143. ;
  4144.           DEFB     89H  ; CCONSTANT
  4145.           DEFM     'CCONSTAN'
  4146.           DEFB     'T'+80H
  4147.           DEFW     TOSWAP-8
  4148. CCON      DEFW     DOCOL
  4149.           DEFW     CREAT
  4150.           DEFW     SMUDG
  4151.           DEFW     CCOMM
  4152.           DEFW     PSCOD
  4153. DOCCON    INC   DE
  4154.           EX    DE,HL
  4155.           LD    L,(HL)
  4156.           LD    H,0
  4157.           JP    HPUSH
  4158. ;
  4159.           DEFB     89H  ; CVARIABLE
  4160.           DEFM     'CVARIABL'
  4161.           DEFB     'E'+80H
  4162.           DEFW     CCON-12
  4163. CVAR      DEFW     DOCOL
  4164.           DEFW     CCON
  4165.           DEFW     PSCOD
  4166. DOCVAR    INC   DE
  4167.           PUSH  DE
  4168.           JP    NEXT
  4169. ;
  4170.           DEFB     84H  ; XCUR
  4171.           DEFM     'XCU'
  4172.           DEFB     'R'+80H
  4173.           DEFW     CVAR-12
  4174. XCUR      DEFW     DOCON
  4175.           DEFW     KOL  
  4176. ;
  4177.           DEFB     84H  ; YCUR
  4178.           DEFM     'YCU'
  4179.           DEFB     'R'+80H
  4180.           DEFW     XCUR-7
  4181. YCUR      DEFW     DOCON
  4182.           DEFW     RAD  
  4183. ;        
  4184.           DEFB     86H ; PRCODE
  4185.           DEFM     'PRCOD'
  4186.           DEFB     'E'+80H
  4187.           DEFW     YCUR-7
  4188. PRCODE    DEFW     DOCON
  4189.           DEFW     NAMFLD
  4190. ;
  4191.           DEFB     85H  ; CLOCK
  4192.           DEFM     'CLOC'
  4193.           DEFB     'K'+80H
  4194.           DEFW     PRCODE-9
  4195. CLOCK     DEFW     DOCON
  4196.           DEFW     65525  ; 1/94 DELS SEKUND
  4197. ;
  4198.  
  4199.  
  4200.           DEFB     89H  ; TERMINAL!
  4201.           DEFM     'TERMINAL'
  4202.           DEFB     '!'+80H
  4203.           DEFW     CLOCK-8
  4204. TERMST    DEFW     $+2
  4205.           LD    A,0
  4206.           LD    (TGBF),A
  4207.           JP    NEXT
  4208. ;
  4209.           DEFB     86H  ; BINARY
  4210.           DEFM     'BINAR'
  4211.           DEFB     'Y'+80H
  4212.           DEFW     TERMST-12
  4213. BINARY    DEFW     DOCOL
  4214.           DEFW     TWO
  4215.           DEFW     BASE
  4216.           DEFW     STORE
  4217.           DEFW     SEMIS
  4218. ;
  4219.           DEFB     82H  ; 0>
  4220.           DEFB     '0'
  4221.           DEFB     '>'+80H
  4222.           DEFW     BINARY-9
  4223. ZGREAT    DEFW     $+2
  4224.           POP   DE
  4225.           LD    HL,0
  4226.           BIT   7,D
  4227.           JP    NZ,HPUSH
  4228.           LD    A,E
  4229.           OR    D
  4230.           JP    Z,HPUSH
  4231.           INC   HL
  4232.           JP    HPUSH
  4233. ;
  4234.           DEFB     82H  ; RB
  4235.           DEFB     'R'
  4236.           DEFB     'B'+80H
  4237.           DEFW     ZGREAT-5
  4238. RB        DEFW     DOCOL
  4239.           DEFW     RBRAC
  4240.           DEFW     SEMIS
  4241. ;
  4242.           DEFB     81H  ; H
  4243.           DEFB     'H'+80H
  4244.           DEFW     RB-5
  4245. HH        DEFW     DOUSE
  4246.           DEFB     12H
  4247. ;
  4248.           DEFB     83H  ; NOT
  4249.           DEFM     'NO'
  4250.           DEFB     'T'+80H
  4251.           DEFW     HH-4
  4252. NOTT      DEFW     ZEQU+2
  4253. ;
  4254.           DEFB     85H  ; OCTAL
  4255.           DEFM     'OCTA'
  4256.           DEFB     'L'+80H
  4257.           DEFW     NOTT-6
  4258. OCTAL     DEFW     DOCOL
  4259.           DEFW     LIT
  4260.           DEFW     8
  4261.           DEFW     BASE
  4262.           DEFW     STORE
  4263.           DEFW     SEMIS
  4264. ;
  4265. ; VEDIT FOR ABC80
  4266. ;
  4267. YXCUR      DEFW     $+2 ; YXCUR
  4268.           LD    HL,RAD  
  4269.           POP   DE
  4270.           LD    (HL),E
  4271. ;         INC   HL        ; FÖR ABC 80
  4272.           DEC   HL        ; FÖR ABC 800
  4273.           POP   DE
  4274.           LD    (HL),E
  4275.           JP    NEXT
  4276. ;
  4277. DOTCUR     DEFW     DOCOL
  4278.            DEFW     RNUM
  4279.            DEFW     AT
  4280.            DEFW     CSLL
  4281.            DEFW     SLMOD
  4282.            DEFW     TWOP
  4283.            DEFW     SWAP
  4284.            DEFW     THREE
  4285.            DEFW     PLUS
  4286.            DEFW     SWAP
  4287.            DEFW     YXCUR
  4288.            DEFW     SEMIS
  4289. ;
  4290. STCUR      DEFW     DOCOL ; !CUR
  4291.            DEFW     ZERO
  4292.            DEFW     MAX
  4293.            DEFW     LIT
  4294.            DEFW     CPLL*LPSCR-1
  4295.            DEFW     MIN
  4296.            DEFW     RNUM
  4297.            DEFW     STORE
  4298.            DEFW     SEMIS
  4299. ;
  4300. PCUR       DEFW     DOCOL ; +CUR
  4301.            DEFW     RNUM
  4302.            DEFW     AT
  4303.            DEFW     PLUS
  4304.            DEFW     STCUR
  4305.            DEFW     SEMIS
  4306. ;
  4307. PDTCUR     DEFW     DOCOL ; +.CUR
  4308.            DEFW     PCUR
  4309.            DEFW     DOTCUR
  4310.            DEFW     SEMIS
  4311. ;
  4312. PLIN       DEFW     DOCOL ; +LIN
  4313.            DEFW     RNUM
  4314.            DEFW     AT
  4315.            DEFW     CSLL
  4316.            DEFW     SLASH
  4317.            DEFW     ONEP
  4318.            DEFW     CSLL
  4319.            DEFW     STAR
  4320.            DEFW     STCUR
  4321.            DEFW     SEMIS
  4322. ;
  4323. HOM        DEFW     DOCOL ; HOM
  4324.            DEFW     ZERO
  4325.            DEFW     RNUM
  4326.            DEFW     STORE
  4327.            DEFW     SEMIS
  4328. ;
  4329. LIMITS     DEFW     DOCOL
  4330.            DEFW     LIT
  4331.            DEFW     LPSCR
  4332.            DEFW     ZERO
  4333.            DEFW     XDO
  4334. LIM1       DEFW     CSLL
  4335.            DEFW     THREE
  4336.            DEFW     PLUS
  4337.            DEFW     IDO
  4338.            DEFW     TWOP
  4339.            DEFW     YXCUR
  4340.            DEFW     LIT
  4341.            DEFW     127
  4342.            DEFW     PEMIT
  4343.            DEFW     XLOOP
  4344.           DEFW  LIM1-$
  4345.            DEFW     SEMIS
  4346. ;
  4347. STBLK      DEFW     DOCOL ; !BLK
  4348.            DEFW     SCR
  4349.            DEFW     AT
  4350.            DEFW     BLOCK
  4351.            DEFW     RNUM
  4352.            DEFW     AT
  4353.            DEFW     PLUS
  4354.            DEFW     CSTOR
  4355.            DEFW     UPDAT
  4356.            DEFW     ONE
  4357.            DEFW     PDTCUR
  4358.            DEFW     SEMIS
  4359. ;
  4360.           DEFB  85H ; VEDIT
  4361.           DEFM  'VEDI'
  4362.           DEFB  'T'+80H
  4363.           DEFW     OCTAL-8
  4364. VEDIT     DEFW     DOCOL
  4365.           DEFW     PAGE
  4366.           DEFW     LIST
  4367.           DEFW     LIMITS
  4368.           DEFW     HOM
  4369.           DEFW     DOTCUR
  4370. VEDIT1    DEFW     KEY
  4371.           DEFW     DUP
  4372.           DEFW     ZEQU
  4373.           DEFW     ZBRAN
  4374.           DEFW     VEDIT1+22-$
  4375.           DEFW     DROP
  4376.           DEFW     ZERO
  4377.           DEFW     LIT
  4378.           DEFW     LPSCR+2
  4379.           DEFW     YXCUR
  4380.           DEFW     SEMIS
  4381.           DEFW     DUP ; VEDIT2
  4382.           DEFW     LIT
  4383.           DEFW     8   ; <- LEFT
  4384.           DEFW     EQUAL
  4385.           DEFW     ZBRAN
  4386.           DEFW     VEDIT3-$
  4387.           DEFW     ONE
  4388.           DEFW     MINUS
  4389.           DEFW     PDTCUR
  4390.           DEFW     DROP
  4391.           DEFW     BRAN
  4392.           DEFW     VEDIT1-$
  4393. VEDIT3    DEFW     DUP
  4394.           DEFW     LIT
  4395.           DEFW     13   ; RETURN-KEY MEANS DOWN
  4396.           DEFW     EQUAL
  4397.           DEFW     ZBRAN
  4398.           DEFW     VEDIT4-$
  4399.           DEFW  CSLL
  4400.           DEFW     PDTCUR
  4401.           DEFW  DROP
  4402.           DEFW     BRAN
  4403.           DEFW     VEDIT1-$
  4404. VEDIT4    DEFW  DUP
  4405.           DEFW  LIT
  4406.           DEFW  94  ; ^ MEANS UP
  4407.           DEFW  EQUAL
  4408.           DEFW  ZBRAN
  4409.           DEFW  VEDIT5-$
  4410.           DEFW  DROP
  4411.           DEFW  CSLL
  4412.           DEFW  MINUS
  4413.           DEFW  PDTCUR
  4414.           DEFW  BRAN
  4415.           DEFW  VEDIT1-$
  4416. VEDIT5    DEFW  DUP
  4417.           DEFW  LIT
  4418.           DEFW  9  ; -> RIGHT
  4419.           DEFW  EQUAL
  4420.           DEFW  ZBRAN
  4421.           DEFW  VEDIT7-$
  4422.           DEFW  DROP
  4423.           DEFW  ONE
  4424.           DEFW  PDTCUR
  4425.           DEFW  BRAN
  4426.           DEFW  VEDIT1-$
  4427. VEDIT7    DEFW  DUP
  4428.           DEFW  DUP
  4429.           DEFW  LIT
  4430.           DEFW  32
  4431.           DEFW  LESS
  4432.           DEFW  SWAP
  4433.           DEFW  LIT
  4434.           DEFW  127
  4435.           DEFW  GREAT
  4436.           DEFW  PLUS
  4437.           DEFW  ZBRAN
  4438.           DEFW  VEDIT8-$
  4439.           DEFW  DROP
  4440.           DEFW  BRAN
  4441.           DEFW  VEDIT1-$
  4442. VEDIT8    DEFW  DUP
  4443.           DEFW  PEMIT
  4444.           DEFW  STBLK
  4445.           DEFW  BRAN
  4446.           DEFW  VEDIT1-$
  4447. ;
  4448.           DEFB  85H ; CLEAR
  4449.           DEFM  'CLEA'
  4450.           DEFB  'R'+80H
  4451.           DEFW  VEDIT-8
  4452. CLEAR     DEFW  DOCOL
  4453.           DEFW  BLOCK
  4454.           DEFW  LIT
  4455.           DEFW  BPSCR
  4456.           DEFW  BLANK
  4457.           DEFW  SEMIS
  4458. ;
  4459.           DEFB  84H ; TASK
  4460.           DEFM  'TAS'
  4461.           DEFB  'K'+80H
  4462.           DEFW  CLEAR-8
  4463. TASK      DEFW  DOCOL
  4464.           DEFW  SEMIS
  4465. ;
  4466. CLS       DEFB  12   ; FORMFEED FÖR ATT SLÄCKA SKÄRMEN
  4467. ;
  4468. INITDP    DEFS  EM-$
  4469.           END   ORIG
  4470.  
Add Comment
Please, Sign In to add comment