;
;  CROMEMCO Z80 Macro Assembler v 3.07
;
cr              equ     0dh
lf              equ     0ah
tab             equ     9
beep            equ     9
squote          equ     27h
dquote          equ     22h
bdos            equ     5
cpm             equ     0
filext          equ     65h
sysfcb          equ     5ch

                org     100h

                jp      start

oneo3:          db      3ah
oneo4:          db      4fh
oneo5:          db      0
oneo6:          db      14h
oneo7:          db      0
oneo8:          db      40h
oneo9:          db      7

                db      'Copyright (c) 1978, '
                db      '1980 Cromemco, Inc.'

start:          LD      SP,(6)
                LD      IX,3F51H
                LD      DE,banner
                CALL    przstr
                CALL    pcrlf
                LD      HL,(6)
                LD      DE,4D57H
                CALL    delta16
                JP      C,nomem
                DEC     HL
                LD      (3FFCH),HL
                LD      HL,4C57H
                LD      (4C53H),HL
                LD      (4C55H),HL
                LD      SP,4A53H
                SUB     A
                LD      (43D2H),A
                LD      DE,4A53H
                LD      BC,200H
                CALL    blkinit
                CALL    psopint
                LD      A,(oneo6)
                AND     3CH
                LD      (IX+0),A
                LD      A,(oneo7)
                AND     7EH
                LD      (IX+1),A
                LD      A,(oneo8)
                AND     7CH
                LD      (IX+2),A
                LD      A,(oneo5)
                LD      (3F4FH),A
                LD      A,(oneo3)
                LD      (3F50H),A
                LD      A,(oneo4)
                LD      (3F4DH),A
                LD      DE,365BH
                LD      BC,16H
                CALL    blkblnk
                CALL    setupdt
                CALL    setuptm
                LD      HL,sysfcb
                LD      DE,38E8H
                LD      BC,z80ext
                CALL    setfn
                LD      DE,3D64H
                LD      BC,prnext
                CALL    setfn
                LD      DE,3CC0H
                LD      BC,relext
                CALL    setfn
                LD      DE,3E08H
                LD      BC,$$$ext
                CALL    setfn
                LD      DE,3EACH
                LD      BC,$$0ext
                CALL    setfn
                INC     HL
                LD      DE,497BH
                LD      BC,8
                LDIR
                LD      HL,81H
                CALL    skwhsp
onee6:          CALL    fdblnk
                CALL    skwhsp
                AND     A
                JR      Z,onef6
                PUSH    HL
                CALL    chkopt
                POP     HL
                JR      onee6

onef6:          LD      A,(filext)
                CALL    ckdrvlt
                LD      (38E8H),A
                CALL    opnsrc
                LD      A,(filext+1)
                CALL    toupper
                CP      'Z'
                JR      Z,noobj
                SET     0,(IX+0)
                CALL    ckdrvlt
                LD      (3CC0H),A
                LD      A,8
                LD      (33A1H),A
                LD      HL,3CBDH
                CALL    opnufil
noobj:          LD      A,(filext+2)
                CALL    toupper
                CP      'Z'
                JR      Z,noprn
                CP      'X'
                JR      Z,pr2scrn
                CP      'Y'
                JR      NZ,yopt
                SET     7,(IX+0)
                JR      ndpropt

noprn:          RES     2,(IX+0)
                RES     3,(IX+1)
                RES     3,(IX+0)
                JR      ndpropt

pr2scrn:        SET     6,(IX+0)
                JR      ndpropt

yopt:           CALL    ckdrvlt
                LD      (3D64H),A
                LD      HL,3D61H
                CALL    opnufil
                SET     1,(IX+0)
ndpropt:        BIT     2,(IX+0)         ;ck pr. opts.
                LD      HL,3E05H
                CALL    NZ,opnufil
                BIT     3,(IX+1)         ;ck pr. opts.
                LD      HL,3EA9H
                CALL    NZ,opnufil
                jp      prloop

ckdrvlt:        SUB     ' '
                RET     Z
                SUB     ' '
                JR      C,sdsker
                CP      9
                RET     C
sdsker:         LD      DE,selder
                JP      prquit

selder:         db      'Selected disk'
                db      ' error',cr,lf,0
z80ext:         db      'Z80'
relext:         db      'REL'
prnext:         db      'PRN'
$$$ext:         db      '$$$'
$$0ext:         db      '$$0'

chkopt:         LD      DE,optab
chopt1:         PUSH    HL
                LD      A,(DE)
                AND     A
                JR      Z,invopt
chknam:         CALL    cmpchr
                JR      NZ,skpone
                LD      A,(DE)
                INC     DE
                INC     HL
                RLA
                JR      NC,chknam
                POP     BC
                LD      B,H
                LD      C,L
                LD      A,(DE)
                LD      L,A
                INC     DE
                LD      A,(DE)
                LD      H,A
                JP      (HL)

skpone:         LD      A,(DE)
                INC     DE
                RLA
                JR      NC,skpone
                INC     DE
                INC     DE
                POP     HL
                JR      chopt1

invopt:         LD      DE,invopm
                JP      prquit

invopm:         db      'Invalid option',cr,lf,0

optab:          db      'RANG'
                db      'E'+128
                dw      rngcod

                db      'PARIT'
                db      'Y'+128
                dw      prtycd

                db      'XRE'
                db      'F'+128
                dw      xrfcod

                db      'NOXRE'
                db      'F'+128
                dw      noxrfcd

                db      'SYM'
                db      'B'+128
                dw      symbcd

                db      'PAGE'
                db      '='+128
                dw      pagecd

                db      'TOP'
                db      '='+128
                dw      topcod

                db      'WIDTH'
                db      '='+128
                dw      wdthcd

                db      'TRUNC'
                db      '='+128
                dw      trncod

                db      'MACRO'
                db      '='+128
                dw      macod

                db      'NOCON'
                db      'D'+128
                dw      nocond

                db      'NOGE'
                db      'N'+128
                dw      nogen

                db      'NOTEX'
                db      'T'+128
                dw      notxt

                db      'CON'
                db      'D'+128
                dw      condcd

                db      'GE'
                db      'N'+128
                dw      gencod

                db      'TEX'
                db      'T'+128
                dw      txtcod

                db      'LISTOF'
                db      'F'+128
                dw      lstoff

                db      'LISTO'
                db      'N'+128
                dw      lston

                db      'OPCOD'
                db     'E'+128
                dw      opcode

                db      'DEBU'
                db      'G'+128
                dw      dbug

                db      'HEX'
                db      '='+128
                dw      hxeqcd

                db      'HE'
                db      'X'+128
                dw      hexcod

                db      'DATE'
                db      '='+128
                dw      datcod

                db      'TIME'
                db      '='+128
                dw      timcod

                db      0

rngcod:         SET     4,(IX+0)
                RET

prtycd:         SET     5,(IX+0)
                RET

xrfcod:         SET     2,(IX+0)
                RET

noxrfcd:        RES     2,(IX+0)
                RET

symbcd:         SET     3,(IX+0)
                RET

pagecd:         LD      D,lf
                CALL    spagopt
                LD      (3F50H),A
                CP      0FFH
                JP      Z,invopt

                RET

topcod:         LD      D,0
                CALL    spagopt
                LD      (3F4FH),A
                RET

trncod:         SET     6,(IX+2)
                JR      wdthl

wdthcd:         RES     6,(IX+2)
wdthl:          LD      D,squote
                CALL    spagopt
                LD      (3F4DH),A
                RET

macod:          LD      HL,0
                LD      (4796H),HL
                LD      H,B
                LD      L,C
                JP      1D7FH

nocond:         SET     2,(IX+1)
                RES     5,(IX+1)
                RET

nogen:          SET     1,(IX+1)
                RES     6,(IX+1)
                RET

notxt:          SET     3,(IX+2)
                RES     2,(IX+2)
                RET

lstoff:         SET     5,(IX+2)
                RES     4,(IX+2)
                RET

lston:          SET     4,(IX+2)
                RES     5,(IX+2)
                RET

dbug:           SET     4,(IX+1)
                RET

opcode:         SET     3,(IX+1)
                RET

condcd:         SET     5,(IX+1)
                RES     2,(IX+1)
                RET

gencod:         SET     6,(IX+1)
                RES     1,(Ix+1)
                RET

txtcod:         SET     2,(IX+2)
                RES     3,(IX+2)
                RET

hexcod:         LD      DE,0
                JR      sethex

hxeqcd:         LD      H,B
                LD      L,C
                CALL    fdblnk
                CALL    2753H
                JP      C,invopt
sethex:         LD      (3FD7H),DE
                SET     0,(IX+2)
                LD      HL,hexext
                LD      DE,3CC9H
                LD      BC,3
                LDIR
                SUB     A
                LD      (3FDBH),A
                RET

hexext:         db      'HEX'

setupdt:        LD      C,8DH   ;get CDOS vers.
                CALL    bdos
                LD      A,B     ;(B) = version # (BCD)
                CP      1
                RET     C
                LD      C,90H   ;get date
                CALL    bdos
                LD      D,A
                OR      B
                OR      C
                RET     Z       ;date unavailable
                LD      A,D
sdatl:          CALL    date
                LD      DE,365BH
                LDIR
                RET

datcod:         CALL    cv2dec
                PUSH    AF
                CALL    cv2dec
                PUSH    AF
                CALL    cv2dec
                LD      C,A
                POP     AF
                POP     HL
                LD      B,H
                JR      sdatl

setuptm:        LD      C,8DH   ;get CDOS vers.
                CALL    bdos
                LD      A,B
                CP      1
                RET     C
                LD      C,92H   ;get time
                CALL    bdos
                LD      D,A
                OR      B
                OR      C
                RET     Z       ;not available
                LD      A,D
stiml:          CALL    fmtim
                LD      DE,3669H
                LD      BC,8
                LDIR
                RET

timcod:         CALL    cv2dec
                PUSH    AF
                CALL    cv2dec
                PUSH    AF
                CALL    cv2dec
                POP     BC
                POP     HL
                LD      C,H
                JR      stiml

cv2dec:         LD      H,B
                LD      L,C
                INC     HL
                INC     HL
                CALL    asc2bin
                JP      C,invopt
                LD      A,E
                RET

date:           PUSH    BC
                PUSH    AF
                LD      A,B
                CP      cr
                JR      C,dt1
                LD      B,0
                SUB     A
dt1:            ADD     A,A
                ADD     A,B
                LD      HL,tbomon
                CALL    hlplsa  ;index to proper month
                LD      DE,dtlin
                LD      BC,3
                LDIR            ;copy month
                POP     AF
                CALL    donina
                LD      (dtlin+4),HL     ;date
                POP     HL
                LD      A,L
                CALL    donina
                LD      (dtlin+10),HL    ;year
                LD      HL,dtlin
                LD      BC,12
                RET

dtlin:          db      'MON XX, 19XX'

tbomon:         db	'---'
                db      'Jan'
                db      'Feb'
                db      'Mar'
                db      'Apr'
                db      'May'
                db      'Jun'
                db      'Jul'
                db      'Aug'
                db      'Sep'
                db      'Oct'
                db      'Nov'
                db      'Dec'

fmtim:          PUSH    AF
                PUSH    BC
                LD      A,C
                CALL    donina
                LD      (timstr),HL
                POP     DE
                LD      A,D
                CALL    donina
                LD      (timstr+3),HL
                POP     AF
                CALL    donina
                LD      (timstr+6),HL
                LD      HL,timstr
                RET

timstr:         db      'XX:'
                db      'XX:'
                db      'XX'

donina:         LD      L,A
                LD      H,0
                LD      A,'0'
                CALL    cvtdecn
                LD      HL,(486DH)
                RET

spagopt:        PUSH    DE
                LD      H,B
                LD      L,C
                CALL    fdblnk
                CALL    asc2bin
                JR      C,spginv
                LD      A,D
                AND     A
                JR      NZ,spginv
                LD      A,E
                POP     DE
                CP      D
                RET     NC
spginv:         JP      invopt

fdblnk:         LD      A,(HL)
                CP      ' '
                RET     Z
                AND     A
                RET     Z
                INC     HL
                JR      fdblnk

prloop:         LD      A,1
                LD      (3F6CH),A
                CALL    initit
                LD      DE,4602H
                LD      BC,9AH
                SUB     A
                CALL    blkinit
                CALL    6D8H
                CALL    2E46H
                CALL    2BE1H
                LD      HL,3F6CH
                INC     (HL)
                CALL    opnsrc
                CALL    initit
                CALL    3134H
                CALL    313CH
                CALL    3183H
                CALL    3140H
                CALL    6D8H
                CALL    pcrlf
                CALL    7B6H
                LD      A,(3F7DH)
                AND     A
                CALL    Z,31C1H
                CALL    402H
                CALL    2D85H
                CALL    2BF6H
                BIT     3,(IX+0)
                CALL    NZ,0A63H
                BIT     2,(IX+0)
                LD      DE,xrfhed
                LD      HL,3E05H
                CALL    NZ,2E92H
                RES     2,(IX+0)
                BIT     3,(IX+1)
                LD      DE,opched
                LD      HL,3EA9H
                CALL    NZ,2E92H
                LD      B,0CH
                LD      HL,(4989H)
                BIT     0,L
                CALL    NZ,prbreg
                LD      A,(3F51H)
                AND     'B'
                CP      2
                CALL    Z,3701H
                LD      DE,eoamsg
prquit:         CALL    przstr
                JP      cpm

eoamsg:         db      cr,lf,'End of assembly'
                db      cr,lf,0

xrfhed:         db      'Symbol',tab,'   Value'
                db      '  Defn  References',cr
opched:         db      'Opcode',tab,'  Defn'
                db      '  References',cr

initit:         LD      HL,0
                LD      (3FFAH),HL
                LD      (4796H),HL
                LD      (4989H),HL
                SUB     A
                LD      (44D4H),A
                LD      (44D5H),A
                LD      (3F56H),A
                LD      (3F84H),A
                LD      (3F7DH),A
                LD      (3F7FH),A
                LD      (3FF8H),A
                LD      (3F83H),A
                LD      (3F55H),A
                LD      (IX+3),8
                LD      (3F85H),A
                LD      (4732H),A
                LD      DE,469CH
                LD      BC,32H
                CALL    blkinit
                LD      A,0FFH
                LD      (46A5H),A
                LD      (3F57H),A
                LD      DE,46CEH
                LD      HL,starst+1
                LD      BC,4
                LDIR
                LD      HL,sysfcb+1
                LD      BC,8
intlp:          LD      A,(HL)
                CP      ' '
                JR      Z,iit1
                LDI
                JP      PE,intlp
iit1:           LD      HL,starst
                LD      BC,6
                LDIR
                LD      A,1
                LD      (3F7AH),A
                LD      A,1
                LD      HL,0
                BIT     0,(IX+2)
                JR      Z,iit2
                SUB     A
                LD      HL,(3FD7H)
iit2:           LD      (3F6DH),A
                LD      (46A8H),HL
                RET

starst:         db      ' *** ',cr

                CALL    3478H
                JP      Z,7B6H
                SUB     A
                LD      (3F81H),A
                LD      (3F6EH),A
                LD      (3F84H),A
                LD      A,' '
                LD      (3F7EH),A
                CALL    85AH
                CALL    1F79H
                JR      NZ,6D8H
                CALL    7E5H
                JR      Z,6D8H
                LD      A,(3F64H)
                CP      ' '
                JR      Z,755H
                CALL    1991H
                JR      Z,6D8H
                BIT     0,(IX+1)
                JR      Z,711H
                CALL    1E7EH
                JR      Z,701H
                LD      DE,3F64H
                LD      HL,3EA9H
                LD      B,7FH
                BIT     3,(IX+1)
                CALL    NZ,3707H
                CALL    7AEH
                JR      NZ,764H
                BIT     7,(HL)
                CALL    NZ,77BH
                BIT     6,(HL)
                CALL    Z,786H
                BIT     5,(HL)
                CALL    Z,794H
                JR      Z,6D8H
                LD      A,(HL)
                LD      (3F80H),A
                AND     0FH
                INC     HL
                EX      DE,HL
                ADD     A,A
                LD      HL,0BF6H
                CALL    hlplsa
                LD      B,H
                LD      C,L
                LD      HL,(3F58H)
                CALL    gtbcind
                LD      A,(3F7DH)
                AND     A
                RET     NZ
                JP      6D8H

                CALL    786H
                LD      HL,(3F58H)
                CALL    2B20H
                CALL    28EBH
                JP      6D8H
 
                CALL    786H
                LD      HL,0
                LD      (3F86H),HL
                LD      (3F87H),HL
                LD      A,07H
                CALL    26DAH
                CALL    2864H
                JP      6D8H

                LD      A,(3F5CH)
                CP      ' '

                RET     Z
                LD      A,13H
                JP      26DAH

                PUSH    HL
                LD      A,(3F6DH)
                ADD     A,2
                LD      HL,(46A8H)
                CALL    8B0H
                POP     HL
                RET

                LD      A,(3F56H)
                CP      1
                RET     NZ
                LD      A,14H
                CALL    26DAH
                CALL    28EBH
                SUB     A
                RET

gtdeind:        LD      B,D        ;load BC with DE
                LD      C,E
gtbcind:        PUSH    HL         ;place (BC) on TOS
                LD      A,(BC)     ; and RET to that addr.
                LD      L,A
                INC     BC
                LD      A,(BC)
                LD      H,A
                EX      (SP),HL
                RET

                LD      DE,3F64H
                LD      A,'O'
                JP      96BH

                LD      B,0DH
                JP      352AH

                CALL    ckbits
                RET     NZ
                LD      A,(3F4FH)
                AND     A
                JR      NZ,7CBH
                LD      A,0FFH
                LD      (3F57H),A
                RET

                LD      A,(3F57H)
                CP      (IX-1)
                RET     NC
                CALL    7B6H
                JR      7CBH

                LD      A,cr
                LD      BC,64H
                CP      (HL)
                LDI
                RET     Z
                JP      PE,7DCH
                LD      (DE),A
                RET

                LD      A,(4798H)
                CP      '*'
                RET     NZ

                LD      HL,4799H
                LD      DE,486AH
                CALL    2820H
                PUSH    HL
                LD      HL,807H
                CALL    278EH
                LD      B,H
                LD      C,L
                POP     HL
                RET     NZ
                CALL    gtbcind
                CALL    28EBH
                SUB     A
                RET

                db      7,9
 
                db      'INCLUDE'
                dw      825h

                db      'MACLIB '
                dw      842h

                db      'RELLIB '
                dw      84bh

                db      0

                LD      A,(3F55H)
                CP      4
                JR      Z,83DH
                INC     A
                PUSH    HL
                CALL    350FH
                POP     DE
                CALL    3501H
                LD      A,cr
                JR      Z,83FH
                INC     (IX+4)
                RET

                LD      A,6
                JP      26DAH

                LD      A,(3F6CH)
                CP      1
                JP      Z,1D7FH
                RET

                LD      DE,3F5CH
                CALL    2820H
                CALL    2B20H
                LD      A,3
                EX      DE,HL
                JP      329FH

                LD      DE,3F5CH
                LD      BC,8
                CALL    blkblnk
                LD      HL,4798H
                CALL    skwhsp
                CALL    899H
                CP      ':'
                LD      HL,4798H
                CALL    Z,skwhsp
                LD      DE,3F5CH
                LD      BC,8
                CALL    8A0H
                JR      Z,887H
                LDI
                JP      PE,87AH
                CALL    899H
                CP      ':'
                JR      NZ,88CH
                INC     HL
                CALL    skwhsp
                LD      DE,3F64H
                CALL    2820H
                LD      (3F58H),HL
                RET

                CALL    8A0H
                RET     Z
                INC     HL
                JR      899H

                LD      A,(HL)
                CP      ' '
                RET     Z
                CP      tab
                RET     Z
                CP      ':'
                RET     Z
                CP      ';'
                RET     Z
                CP      cr
                RET

                LD      (486AH),HL
                LD      (486CH),A
                LD      DE,3F5CH
                LD      A,(DE)
                AND     7FH
                CP      ' '
                RET     Z
                SUB     A
                CALL    0A11H
                RET     NC
                CALL    90BH
                LD      D,A
                AND     60H
                CP      60H
                CALL    Z,901H
                BIT     7,D
                JR      NZ,8E7H
                LD      A,(486CH)
                AND     1FH
                JR      Z,8E7H
                SUB     D
                AND     1FH
                JR      NZ,8E4H
                LD      HL,(486AH)
                SBC     HL,BC
                CALL    NZ,906H
                LD      B,7EH
                LD      A,(486CH)
                AND     1FH
                JR      NZ,8F2H
                LD      B,7FH
                BIT     2,(IX+0)
                LD      DE,(3F5AH)
                LD      HL,3E05H
                CALL    NZ,3707H
                RET

                LD      A,2
                JP      26DAH

                LD      A,8
                JP      26DAH

                LD      A,'S'
                CALL    96BH
                JR      Z,91FH
                LD      A,'S'
                CALL    9C2H
                LD      BC,(486AH)
                LD      A,(486CH)
                RET

                LD      C,(HL)
                INC     HL
                LD      B,(HL)
                INC     HL
                LD      A,(486CH)
                LD      D,A
                AND     1FH
                JR      Z,965H
                LD      E,(HL)
                LD      A,(3F6CH)
                CP      2
                JR      Z,950H
                LD      A,E
                AND     1FH
                JR      Z,950H
                LD      A,D
                AND     E
                BIT     5,A
                JR      NZ,950H
                BIT     7,A
                JR      NZ,950H
                LD      A,E
                CP      '!'
                LD      A,'@'
                JR      Z,953H
                LD      A,D
                CP      '!'
                JR      Z,960H
                LD      E,60H
                LD      A,E
                AND     0E0H
                OR      D
                LD      DE,(486AH)
                DEC     HL
                LD      (HL),D
                DEC     HL
                LD      (HL),E
                INC     HL
                INC     HL
                LD      (HL),A
                RET

                LD      A,E
                OR      40H
                LD      (HL),A
                RET

                LD      A,D
                AND     40H
                OR      (HL)
                JR      95EH

                PUSH    BC
                CALL    psops
                LD      C,(HL)
                INC     HL
                LD      B,(HL)
                LD      A,B
                OR      C
                JR      Z,97FH
                LD      H,B
                LD      L,C
                CALL    9A0H
                JR      NZ,96FH
                POP     BC
                RET

                DEC     HL
                INC     A
                POP     BC
                RET

psops:          PUSH   BC
                PUSH   DE
                LD     B,8
poplp:          LD     C,A
                LD     A,(DE)
                CP     ' '
                JR     Z,psop1
                INC    DE
psop1:          CALL   toupper
                XOR    c
                RLCA
                DJNZ   poplp
                LD     HL,4A53H
                LD     C,A
                LD     B,0
                ADD    HL,BC
                ADD    HL,BC
                POP    DE
                POP    BC
                RET

                PUSH   DE
                PUSH   HL
                INC    HL
                INC    HL
                LD     C,(HL)
                INC    HL
                LD     (3F5AH),HL
                LD     B,8
                CALL   cmpchr
                JR     NZ,9BFH
                INC    DE
                INC    HL
                CP     ' '
                JR     NZ,9BBH
                LD     A,C
                CP     'O'
                JR     Z,9BDH
                DJNZ   9ABH
                SUB    A
                EX     (SP),HL
                POP    HL
                POP    DE
                RET

                PUSH   DE
                LD     BC,(4C55H)
                LD     (HL),C
                INC    HL
                LD     (HL),B
                LD     HL,12H
                ADD    HL,BC
                LD     DE,(3FFCH)
                CALL   delta16
                JR     NC,nomem
                POP    DE
                PUSH   DE
                LD     H,B
                LD     L,C
                LD     (HL),0
                INC    HL
                LD     (HL),0
                INC    HL
                LD     (HL),A
                INC    HL
                LD     (3F5AH),HL
                LD     BC,8
                EX     DE,HL
                LDIR
                LD     BC,3
                LD     HL,486AH
                LDIR
                EX     DE,HL
                LD     (4C55H),HL
                DEC    HL
                POP    DE
                RET

nomem:          LD     DE,nomemsg
                jp     prquit

nomemsg:        db     'Out of memory',cr,lf,0

                PUSH   BC
                PUSH   HL
                PUSH   DE
                EX     AF,AF'
                LD     H,D
                LD     L,E
                LD     A,(DE)
                CALL   25BFH
                JR     C,0A4AH
                LD     B,7
                INC    DE
                LD     A,(DE)
                CALL   25BFH
                JR     NC,0A2FH
                CALL   2819H
                JR     NC,0A2FH
                CP     ' '
                JR     NZ,0A4AH
                DJNZ   0A1FH
                CALL   250FH
                JR     Z,0A4AH
                CALL   24F8H
                JR     Z,0A4AH
                LD     DE,0A54H
                LD     B,8
                CALL   2528H
                JR     Z,0A4AH
                SCF
                POP    DE
                POP    HL
                POP    BC
                RET

                EX     AF,AF'
                CALL   Z,26C9H
                CALL   NZ,26D1H
                AND    A
                JR     0A46H

                db     2,2
                db     '$ '
                db     'I '
                db     'R '
                db     'SP'
                db     'IX'
                db     'IY'
                db     0

                LD     HL,0AE1H
                CALL   12F6H
                LD     DE,(4C53H)
                LD     HL,(4C55H)
                INC    DE
                INC    DE
                INC    HL
                INC    HL
                LD     (HL),0FFH
                LD     BC,0EH
                CALL   0AF4H
                AND    A
                SBC    HL,BC
                LD     B,9
                LD     C,5
                CALL   0B0DH
                LD     A,(3F4DH)
                ADD    A,3
                LD     H,0
                LD     L,A
                LD     DE,12H
                CALL   div16b
                LD     C,L
                LD     HL,(4C53H)
                INC    HL
                INC    HL
                LD     B,C
                LD     A,(HL)
                CP     0FFH
                JP     Z,07B6H
                CP     'S'
                JR     NZ,0ADBH
                PUSH   HL
                LD     D,8
                INC    HL
                PUSH   BC
                CALL   2806H
                INC    HL
                INC    HL
                LD     A,(HL)
                CP     0FFH
                JR     Z,0AC4H
                DEC    HL
                DEC    HL
                CALL   27F9H
                LD     A,(HL)
                AND    3FH
                LD     (3F6EH),A
                CALL   2B03H
                JR     0ACCH

                LD     HL,0AEEH
                LD     D,6
                CALL   2806H
                POP    BC
                POP    HL
                DJNZ   0AD6H
                CALL   7B6H
                LD     B,C
                JR     0ADBH

                PUSH   BC
                CALL   26F8H
                POP    BC
                LD     DE,0EH
                ADD    HL,DE
                JR     0A9BH

                db     'Symbol Table',cr

                db     ' Macro'

                PUSH   DE
                POP    IY
                LD     A,(IY+0)
                CP     0FFH
                RET    Z
                CP     'M'
                JR     NZ,0B09H
                LD     (IY+0),'S'
                LD     (IY+0BH),0FFH
                ADD    IY,BC
                JR     0AF7H

                LD     (3F78H),BC
                LD     A,B
                ADD    A,C
                LD     C,A
                LD     B,0
                LD     (3F72H),HL
                LD     (3F70H),DE
                CALL   delta16
                RET    Z
                RET    C
                ADD    HL,BC
                LD     (3F76H),HL
                LD     H,D
                LD     L,E
                ADD    HL,BC
                CALL   0B96H
                JR     C,0B28H
                LD     (3F74H),HL
                LD     HL,(3F76H)
                AND    A
                SBC    HL,BC
                CALL   0B96H
                JR     Z,0B3EH
                JR     NC,0B34H
                LD     (3F76H),HL
                PUSH   DE
                LD     DE,(3F74H)
                CALL   delta16
                JR     C,0B52H
                CALL   0BBBH
                EX     DE,HL
                POP    DE
                JR     0B28H

                POP    DE
                CALL   0BBBH
                AND    A
                SBC    HL,DE
                PUSH   HL
                LD     DE,(3F76H)
                LD     HL,(3F72H)
                AND    A
                SBC    HL,DE
                POP    DE
                AND    A
                SBC    HL, DE
                JR     NC,0B7DH
                LD     HL,(3F70H)
                PUSH   HL
                LD     HL,(3F76H)
                AND    A
                SBC    HL,BC
                PUSH   HL
                ADD    HL,BC
                ADD    HL,BC
                EX     DE,HL
                LD     HL,(3F72H)
                JR     0B8FH

                LD     HL,(3F76H)
                ADD    HL,BC
                PUSH   HL
                LD     HL,(3F72H)
                PUSH   HL
                LD     DE,(3F70H)
                LD     HL,(3F76H)
                SBC    HL,BC
                CALL   0B16H
                POP    HL
                POP    DE
                JR     0B16H

                PUSH   HL
                PUSH   DE
                PUSH   BC
                EX     DE,HL
                LD     BC,(3F78H)
                INC    B
                INC    C
                DEC    B
                JR     Z,0BACH
                CALL   cmpchr
                JR     NZ,0BB7H
                INC    DE
                INC    HL
                JR     0BA0H

                DEC    C
                JR     Z,0BB7H
                LD     A,(DE)
                CP     (HL)
                JR     NZ,0BB7H
                INC    DE
                INC    HL
                JR     0BACH

                POP    BC
                POP    DE
                POP    HL
                RET

                PUSH   BC
                PUSH   DE
                PUSH   HL
                LD     A,(DE)
                LDI
                DEC    HL
                LD     (HL),A
                INC    HL
                JP     PE,0BBEH
                POP    HL
                POP    DE
                POP    BC
                RET

psopint:        LD     DE,psoptb
psi1:           CALL   gethed
                RET    NZ
                LD     A,'O'
                CALL   psops
                PUSH   DE
                DEC    DE
                DEC    DE
                DEC    DE
                LDI
                LDD
                LD     (HL),E
                INC    HL
                LD     (HL),D
                POP    DE
                JR     psi1

gethed:         LD     A,(DE)
                INC    DE
                CP     0FFH
                JR     NZ,gethed
                LD     A,(DE)
                INC    DE
                CP     0FFH
                JR     NZ,gethed
                LD     A,(DE)
                INC    DE
                CP     'O'
                RET

                dw     gtdeind
                dw     1421h
                dw     1428h
                dw     1433h
                dw     144eh
                dw     1479h
                dw     149dh
                dw     14e9h
                dw     14ffh

psoptb:         dw     0ffffh
                db     4fh
                db     'EQU'
                db     20h,70h
                dw     10ach

                dw     0ffffh
                db     4fh
                db     'DEFL'
                db     20h,70h
                dw     10a8h

                dw     0ffffh
                db     4fh
                db     'DL'
                db     20h,70h
                dw     10a8h

                dw     0ffffh
                db     4fh
                db     'DEFV'
                db     20h,60h
                dw     10a0h

                dw     0ffffh
                db     4fh
                db     'DV'
                db     20h,60h
                dw     10a0h

                dw     0ffffh
                db     4fh
                db     'MACRO'
                db     20h,60h
                dw     1b7bh

                dw     0ffffh
                db     4fh
                db     'OMACRO'
                db     20h,60h
                dw     1b6eh

                dw     0ffffh
                db     4fh
                db     'EJECT'
                db     20h,0a0h
                dw     7bbh

                dw     0ffffh
                db     4fh
                db     'FORM'
                db     20h,0a0h
                dw     7bbh

                dw     0ffffh
                db     4fh
                db     'TITLE'
                db     20h,0a0h
                dw     12f1h

                dw     0ffffh
                db     4fh
                db     'TITLE2'
                db     20h,0a0h
                dw     12f6h

                dw     0ffffh
                db     4fh
                db     'SUBTTL'
                db     20h,0a0h
                dw     12f6h

                dw     0ffffh
                db     4fh
                db     'LIST'
                db     20h,0a0h
                dw     137bh

                dw     0ffffh
                db     4fh
                db     'NAME'
                db     20h,0a0h
                dw     11bbh

                dw     0ffffh
                db     4fh
                db     'EXT'
                db     20h,0a0h
                dw     11e1h

                dw     0ffffh
                db     4fh
                db     'EXTRN'
                db     20h,0a0h
                dw     11e1h

                dw     0ffffh
                db     4fh
                db     'ENTRY'
                db     20h,0a0h
                dw     11d9h

                dw     0ffffh
                db     4fh
                db     'GLOBAL'
                db     20h,0a0h
                dw     11ddh

                dw     0ffffh
                db     4fh
                db     'ABS'
                db     20h,80h
                dw     1298h

                dw     0ffffh
                db     4fh
                db     'REL'
                db     20h,80h
                dw     12adh

                dw     0ffffh
                db     4fh
                db     'DATA'
                db     20h,80h
                dw     12bbh

                dw     0ffffh
                db     4fh
                db     'COM'
                db     20h,80h
                dw     1213h

                dw     0ffffh
                db     4fh
                db     'ORG'
                db     20h,90h
                dw     127eh

                dw     0ffffh
                db     4fh
                db     'MEND'
                db     20h,0a0h
                dw     1d52h

                dw     0ffffh
                db     4fh
                db     'ENDM'
                db     20h,0a0h
                dw     1d52h

                dw     0ffffh
                db     4fh
                db     'MEXIT'
                db     20h,0a0h
                dw     1d73h

                dw     0ffffh
                db     4fh
                db     'EXITM'
                db     20h,0a0h
                dw     1d73h

                dw     0ffffh
                db     4fh
                db     'REM'
                db     20h,0a0h
                dw     12ffh

                dw     0ffffh
                db     4fh
                db     'CONMSG'
                db     20h,0a0h
                dw     1302h

                dw     0ffffh
                db     4fh
                db     'MNOTE'
                db     20h,0a0h
                dw     131bh

                dw     0ffffh
                db     4fh
                db     'IF'
                db     20h,0b0h
                dw     1f09h

                dw     0ffffh
                db     4fh
                db     'ELSE'
                db     20h,0a0h
                dw     1f45h

                dw     0ffffh
                db     4fh
                db     'ENDIF'
                db     20h,0a0h
                dw     1f5dh

                dw     0ffffh
                db     4fh
                db     'STRUCT'
                db     20h,90h
                dw     12c9h

                dw     0ffffh
                db     4fh
                db     'REPT'
                db     20h,30h
                dw     1830h

                dw     0ffffh
                db     4fh
                db     'IRP'
                db     20h,20h
                dw     1882h

                dw     0ffffh
                db     4fh
                db     'IRPC'
                db     20h,20h
                dw     1886h

                dw     0ffffh
                db     4fh
                db     'END'
                db     20h,20h
                dw     1356h

                dw     0ffffh
                db     4fh
                db     'EXX'
                db     20h,1
                db     0d9h

                dw     0ffffh
                db     4fh
                db     'DAA'
                db     20h,1
                db     27h

                dw     0ffffh
                db     4fh
                db     'CPL'
                db     20h,1
                db     2fh

                dw     0ffffH
                db     4fh
                db     'CCF'
                db     20h,1
                db     3fh

                dw     0ffffh
                db     4fh
                db     'SCF'
                db     20h,1
                db     37h

                dw     0ffffh
                db     4fh
                db     'DI'
                db     20h,1
                db     0f3h

                dw     0ffffh
                db     4fh
                db     'EI'
                db     20h,1
                db     0fbh

                dw     0ffffh
                db     4fh
                db     'NOP'
                db     20h,1
                db     0

                dw     0ffffh
                db     4fh
                db     'RLA'
                db     20h,1
                db     17h

                dw     0ffffh
                db     4fh
                db     'RRA'
                db     20h,1
                db     1fh

                dw     0ffffh
                db     4fh
                db     'HALT'
                db     20h,1
                db     76h

                dw     0ffffh
                db     4fh
                db     'RLCA'
                db     20h,1
                db     7

                dw     0ffffh
                db     4fh
                db     'RRCA'
                db     20h,1
                db     0fh

                dw     0ffffh
                db     4fh
                db     'LDI'
                db     20h,2
                db     0a0h

                dw     0ffffh
                db     4fh
                db     'LDD'
                db     20h,2
                db     0a8h

                dw     0ffffh
                db     4fh
                db     'CPI'
                db     20h,2
                db     0a1h

                dw     0ffffh
                db     4fh
                db     'CPD'
                db     20h,2
                db     0a9h

                dw     0ffffh
                db     4fh
                db     'NEG'
                db     20h,2
                db     44h

                dw     0ffffh
                db     4fh
                db     'IM0'
                db     20h,2
                db     46h

                dw     0ffffh
                db     4fH
                db     'IM1'
                db     20h,2
                db     56h

                dw     0ffffh
                db     4fh
                db     'IM2'
                db     20h,2
                db     5eh

                dw     0ffffh
                db     4fh
                db     'RLD'
                db     20h,2
                db     6fh

                dw     0ffffh
                db     4fh
                db     'RRD'
                db     20h,2
                db     67h

                dw     0ffffh
                db     4fh
                db     'INI'
                db     20h,2
                db     0a2h

                dw     0ffffh
                db     4fh
                db     'IND'
                db     20h,2
                db     0aah

                dw     0ffffh
                db     4fh
                db     'LDIR'
                db     20h,2
                db     0b0h

                dw     0ffffh
                db     4fh
                db     'LDDR'
                db     20h,2
                db     0b8h

                dw     0ffffh
                db     4fh
                db     'CPIR'
                db     20h,2
                db     0b1h

                dw     0ffffh
                db     4fh
                db     'CPDR'
                db     20h,2
                db     0b9h

                dw     0ffffh
                db     4fh
                db     'RETI'
                db     20h,2
                db     4dh

                dw     0ffffh
                db     4fh
                db     'RETN'
                db     20h,2
                db     45h

                dw     0ffffh
                db     4fh
                db     'INIR'
                db     20h,2
                db     0b2h

                dw     0ffffh
                db     4fh
                db     'INDR'
                db     20h,2
                db     0bah

                dw     0ffffh
                db     4fh
                db     'OUTI'
                db     20h,2
                db     0a3h

                dw     0ffffh
                db     4fh
                db     'OUTD'
                db     20h,2
                db     0abh

                dw     0ffffh
                db     4fh
                db     'OTIR'
                db     20h,2
                db     0b3h

                dw     0ffffh
                db     4fh
                db     'OTDR'
                db     20h,2
                db     0bbh

                dw     0ffffh
                db     4fh
                db     'LD'
                db     20h,0
                dw     16c3h

                dw     0ffffh
                db     4fh
                db     'EX'
                db     20h,0
                dw     1539h

                dw     0ffffh
                db     4fh
                db     'JR'
                db     20h,0
                dw     15a7h

                dw     0ffffh
                db     4fh
                db     'DB'
                db     20h,0
                dw     10f5h

                dw     0ffffh
                db     4fh
                db     'DM'
                db     20h,0
                dw     10fah

                dw     0ffffh
                db     4fh
                db     'DW'
                db     20h,0
                dw     1103h

                dw     0ffffh
                db     4fh
                db     'JP'
                db     20h,0
                dw     15c4h

                dw     0ffffh
                db     4fh
                db     'IN'
                db     20h,0
                dw     1631h

                dw     0ffffh
                db     4fh
                db     'DS'
                db     20h,30h
                dw     10dch

                dw     0ffffh
                db     4fh
                db     'IM'
                db     20h,0
                dw     1589h

                dw     0ffffh
                db     4fh
                db     'DJNZ'
                db     20h,0
                dw     159eh

                dw     0ffffh
                db     4fh
                db     'RET'
                db     20h,0
                dw     1655h

                dw     0ffffh
                db     4fh
                db     'RST'
                db     20h,0
                dw     1663h

                dw     0ffffh
                db     4fh
                db     'JSYS'
                db     20h,0
                dw     1674h

                dw     0ffffh
                db     4fh
                db     'ADD'
                db     20h,0
                dw     14b5h

                dw     0ffffh
                db     4fh
                db     'CALL'
                db     20h,0
                dw     167fh

                dw     0ffffh
                db     4fh
                db     'OUT'
                db     20h,0
                dw     1698h

                dw     0ffffh
                db     4fh
                db     'DEFB'
                db     20h,0
                dw     10f5h

                dw     0ffffh
                db     4fh
                db     'DEFM'
                db     20h,0
                dw     10fah

                dw     0ffffh
                db     4fh
                db     'DEFW'
                db     20h,0
                dw     1103h

                dw     0FFFFH
                db     4fh
                db     'DEFS'
                db     20h,30h
                dw     10dch

                dw     0FFFFH
                db     4fh
                db     'PUSH'
                db     20h,3
                db     0c5h
                db     0e5h

                dw     0ffffh
                db     4fh
                db     'POP'
                db     20h,3
                db     0c1h
                db     0e1h

                dw     0ffffh
                db     4fh
                db     'INC'
                db     20h,4
                db     3
                db     23h
                db     4
                db     34h

                dw     0ffffh
                db     4fh
                db     'DEC'
                db     20h,4
                db     0bh
                db     2bh
                db     5
                db     35h

                dw     0ffffh
                db     4fh
                db     'RLC'
                db     20h,5
                db     0

                dw     0ffffh
                db     4fh
                db     'RL'
                db     20h,5
                db     10h

                dw     0ffffh
                db     4fh
                db     'RRC'
                db     20h,5
                db     8

                dw     0ffffh
                db     4fh
                db     'RR'
                db     20h,5
                db     18h

                dw     0ffffh
                db     4fh
                db     'SLA'
                db     20h,5
                db     20h

                dw     0ffffh
                db     4fh
                db     'SRA'
                db     20h,5
                db     28h

                dw     0ffffh
                db     4fh
                db     'SRL'
                db     20h,5
                db     38h

                dw     0ffffh
                db     4fh
                db     'BIT'
                db     20h,6
                db     40h

                dw     0ffffh
                db     4fh
                db     'SET'
                db     20h,6
                db     0c0h

                dw     0ffffh
                db     4fh
                db     'RES'
                db     20h,6
                db     80h

                dw     0ffffh
                db     4fh
                db     'ADC'
                db     20h,7
                db     8
                db     4ah

                dw     0ffffh
                db     4fh
                db     'SBC'
                db     20h,7
                db     18h
                db     42h

                dw     0ffffh
                db     4fh
                db     'SUB'
                db     20h,8
                db     10H

                dw     0ffffh
                db     4fh
                db     'AND'
                db     20h,8
                db     20h

                dw     0ffffh
                db     4fh
                db     'XOR'
                db     20h,8
                db     28h

                dw     0ffffh
                db     4fh
                db     'OR'
                db     20h,8
                db     30h

                dw     0ffffh
                db     4fh
                db     'CP'
                db     20h,8
                db     38h

                dw     0ffffh
                db     0

                LD     A,(3F5CH)
                OR     80H
                LD     (3F5CH),A
                LD     A,80H
                JR     10ADH

                SUB    A
                PUSH   AF
                LD     A,(3F5CH)
                AND    7FH
                CP     20H
                CALL   Z,26CDH
                CALL   2042H
                CALL   2B20H
                LD     A,D
                AND    0BFH
                BIT    5,A
                CALL   NZ,10D3H
                LD     D,A
                POP    AF
                ADD    A,D
                PUSH   BC
                LD     H,B
                LD     L,C
                CALL   8B0H
                POP    BC
                JP     28F9H

                CALL   23F8H
                LD     BC,0
                LD     A,2
                RET

                CALL   2042H
                LD     A,D
                CP     2
                CALL   NZ,23F8H
                CALL   2B20H
                PUSH   BC
                CALL   28FFH
                POP    BC
                LD     A,1
                LD     (3F7AH),A
                JP     2B2CH

                CALL   1135H
                JR     116AH

                CALL   1135H
                LD     A,(DE)
                OR     80H
                LD     (DE),A
                JR     116AH

                CALL   2042H
                LD     (3F86H),BC
                CALL   25E8H
                PUSH   AF
                CALL   NZ,2B20H
                PUSH   HL
                LD     B,2
                CALL   2B69H
                POP    HL
                POP    AF
                RET    NZ
                CALL   2042H
                LD     (3F86H),BC
                CALL   25E8H
                PUSH   AF
                CALL   NZ,2B20H
                PUSH   HL
                LD     B,2
                CALL   28C8H
                LD     B,2
                CALL   2B6EH
                JR     1117H

                LD     DE,3F86H
                LD     BC,50H
                LD     A,(HL)
                CP     squote
                JR     NZ,115CH
                PUSH   HL
                INC    HL
                LD     A,C
                PUSH   AF
                CALL   2668H
                POP    AF
                SUB    C
                JR     Z,115BH
                DEC    A
                JR     Z,1158H
                POP    AF
                CALL   25E8H
                JR     Z,113BH
                DEC    DE
                JP     2B20H

                DEC    DE
                INC    C
                DEC    B
                POP    HL
                PUSH   DE
                PUSH   BC
                LD     A,B
                CALL   201CH
                POP    BC
                POP    DE
                LD     (DE),A
                INC    DE
                INC    B
                DEC    C
                JR     114FH

                PUSH   BC
                LD     A,B
                CP     5
                JR     C,1192H
                PUSH   BC
                LD     B,4
                CALL   2881H
                POP    BC
                CALL   11A9H
                JR     NZ,119AH
                LD     HL,3F8AH
                LD     A,B
                SUB    4
                LD     B,A
                JR     Z,119AH
                CP     5
                JR     C,1197H
                PUSH   BC
                LD     B,4
                CALL   28CBH
                POP    BC
                JR     117FH

                CALL   2881H
                JR     119AH

                CALL   28CBH
                POP    BC
                PUSH   BC
                LD     HL,3F86H
                CALL   32DCH
                POP    BC
                LD     C,B
                LD     B,0
                JP     2B2CH

                BIT    2,(IX+2)
                JR     NZ,11B9H
                BIT    3,(IX+2)
                RET    NZ
                BIT    3,(IX+3)
                RET

                SUB    A
                RET

                CALL   33A2H
                RET    NZ
                CALL   284FH
                JR     C,11D4H
                LD     DE,497BH
                CALL   2820H
                SUB    A
                CALL   0A11H
                CALL   2B20H
                JP     28EBH

                CALL   26D1H
                JR     11CEH

                LD     A,'@'
                JR     11E3H

                LD     A,'!'
                JR     11E3H

                LD     A,dquote
                CALL   33A2H
                RET    NZ
                PUSH   AF
                LD     A,(3F6CH)
                CP     2
                JR     Z,120EH
                LD     DE,3F5CH
                CALL   2820H
                SUB    A
                CALL   0A11H
                JR     NC,1205H
                POP    AF
                PUSH   AF
                PUSH   HL
                LD     HL,0
                CALL   8B0H
                POP    HL
                CALL   25E8H
                JR     Z,11E8H
                POP    AF
                JP     28EBH

                CALL   243FH
                JR     1205H

                CALL   33A2H
                RET    NZ
                LD     DE,3F5CH
                CALL   2820H
                CALL   2B20H
                LD     A,(DE)
                CP     ' '
                JR     Z,122CH
                SUB    A
                CALL   0A11H
                JP     NC,28EBH
                LD     A,(46A4H)
                LD     B,A
                LD     C,0
                LD     HL,4624H
                AND    A
                JR     Z,124BH
                PUSH   BC
                LD     DE,3F5CH
                LD     B,8
                CALL   27ACH
                JR     Z,1263H
                LD     DE,8
                ADD    HL,DE
                POP    BC
                INC    C
                DJNZ   1238H
                LD     A,C
                CP     0FH
                JR     Z,1276H
                INC    A
                LD     (46A4H),A
                EX     DE,HL
                LD     HL,3F5CH
                LD     BC,8
                LDIR
                LD     A,(46A4H)
                DEC    A
                LD     C,A
                PUSH   BC
                POP    HL
                PUSH   HL
                LD     H,0
                ADD    HL,HL
                LD     DE,46B0H
                ADD    HL,DE
                LD     E,(HL)
                INC    HL
                LD     D,(HL)
                EX     DE,HL
                POP    BC
                LD     A,C
                ADD    A,3
                JR     129FH

                LD     A,11H
                CALL   26DAH
                JP     28EBH

                CALL   2042H
                CALL   2B20H
                PUSH   DE
                PUSH   BC
                CALL   28F9H
                POP    HL
                POP    AF
                SUB    2
                LD     (3F6DH),A
                LD     A,1
                LD     (3F7AH),A
                JP     2B30H

                CALL   2B20H
                XOR    A
                LD     HL,(46AAH)
                LD     (46A8H),HL
                LD     (3F6DH),A
                LD     A,1
                LD     (3F7AH),A
                JP     28EBH

                CALL   33A2H
                RET    NZ
                CALL   2B20H
                LD     A,1
                LD     HL,(46ACH)
                JR     129FH

                CALL   33A2H
                RET    NZ
                CALL   2B20H
                LD     A,2
                LD     HL,(46AEH)
                JR     129FH

                LD     A,1
                LD     (3F56H),A
                CALL   2042H
                LD     A,D
                CP     2
                CALL   NZ,2031H
                CALL   2B20H
                LD     HL,(46A8H)
                LD     (46A6H),HL
                LD     A,(3F6DH)
                LD     (3F6FH),A
                LD     (46A8H),BC
                SUB    A
                LD     (3F6DH),A
                JP     28F9H

                LD     DE,46CEH
                JR     12F9H

                LD     DE,4732H
                CALL   7D7H
                JP     7BBH

                JP     351CH

                LD     A,cr
                LD     BC,64H
                PUSH   HL
                CPIR
                LD     (HL),lf
                INC    HL
                LD     (HL),0
                LD     A,(3F6CH)
                CP     2
                POP    DE
                CALL   Z,przstr
                JP     28EBH

                LD     A,cr
                LD     BC,64H
                PUSH   HL
                CPIR
                DEC    HL
                LD     (HL),0
                LD     A,1
                LD     (3F83H),A
                LD     A,16H
                LD     (3F81H),A
                LD     HL,1344H
                CALL   2B16H
                POP    HL
                CALL   351CH
                LD     HL,1350H
                CALL   2B16H
                CALL   2D57H
                RET

                db     '*** mnote -'
                db     0a0h,' ***',cr
                db     cr+128

                LD     A,1
                LD     (3F7DH),A
                LD     BC,0
                LD     D,2
                LD     A,(HL)
                CP     ';'
                JR     Z,136FH
                CP     cr
                JR     Z,136FH
                CALL   2042H
                CALL   2B20H

                PUSH   BC
                PUSH   DE
                CALL   28FFH
                POP    BC
                POP    DE
                DEC    B
                DEC    B
                JP     31C6H

                LD     A,(IX+3)
                PUSH   AF
                LD     DE,486AH
                CALL   2820H
                PUSH   HL
                LD     HL,13B6H
                CALL   278EH
                JR     NZ,13B0H
                LD     A,(HL)
                INC    HL
                LD     H,(HL)
                LD     L,A
                CALL   13B5H
                POP    HL
                CALL   25E8H
                JR     Z,137FH
                CALL   2B20H
                POP    AF
                LD     B,(IX+3)
                OR     B
                LD     (IX+3),A
                CALL   ckbits
                LD     (IX+3),B
                JP     Z,28EBH
                RET

                CALL   26D1H
                JR     1395H

                JP     (HL)

                db     6,8
                db     'ON    '
                dw     13f9h

                db     'OFF   '
                dw     13feh

                db     'GEN   '
                dw     1403h

                db     'NOGEN '
                dw     1408h

                db     'COND  '
                dw     140dh

                db     'NOCOND'
                dw     1412h

                db     'TEXT  '
                dw     1417h

                db     'NOTEXT'
                dw     141ch
                db     0

                RES    0,(IX+3)
                RET

                SET    0,(IX+3)
                RET

                RES    2,(IX+3)
                RET

                SET    2,(IX+3)
                RET

                RES    1,(IX+3)
                RET

                SET    1,(IX+3)
                RET

                RES    3,(IX+3)
                RET

                SET    3,(IX+3)
                RET

                LD     A,(DE)
                LD     (3F86H),A
                JP     285CH

                LD     A,(DE)
                LD     (IX+35H),0EDH
                LD     (3F87H),A
                JP     2860H

                PUSH   DE
                CALL   24D5H
                JR     Z,1444H
                CALL   24F8H
                CALL   NZ,26D1H
                EX     (SP),HL
                ADD    A,(HL)
                POP    HL
                JR     1422H

                LD     (3F86H),A
                SUB    A
                EX     (SP),HL
                INC    HL
                ADD    A,(HL)
                POP    HL
                JR     142DH

                PUSH   DE
                CALL   24D5H
                JR     Z,1444H
                CALL   24FDH
                JR     Z,143FH
                CALL   2517H
                JR     Z,1471H
                CALL   24E4H
                CALL   NZ,26D1H
                EX     (SP),HL
                INC    HL
                INC    HL
                INC    HL
                SUB    A
                ADD    A,(HL)
                POP    HL
                LD     (3F87H),A
                JP     2864H

                RLCA
                RLCA
                RLCA
                EX     (SP),HL
                INC    HL
                INC    HL
                JR     1440H

                PUSH   DE
                CALL   2517H
                JR     Z,1495H
                CALL   24E4H
                CALL   NZ,26D1H
                SUB    A
                EX     (SP),HL
                LD     (IX+36H),0CBH
                ADD    A,6
                ADD    A,(HL)
                POP    HL
                LD     (3F89H),A
                JP     2868H

                EX     (SP),HL
                ADD    A,(HL)

                LD     (IX+35H),0CBH
                JR     144BH

                PUSH   DE
                CALL   1FC6H
                PUSH   AF
                CALL   2514H
                JR     Z,14B0H
                CALL   24E4H
                CALL   NZ,26D1H
                POP    AF
                JR     1486H

                LD     D,A
                POP    AF
                ADD    A,D
                JR     1495H

                CALL   2520H
                JR     NZ,14C8H
                CALL   25DEH
                CALL   24FDH
                CALL   NZ,26D1H
                ADD    A,9
                JP     1422H

                CALL   24D5H
                LD     DE,26D8H
                JR     NZ,14FFH
                PUSH   AF
                CALL   25DEH
                POP    AF
                CP     0ddh
                JR     Z,14DEH
                CALL   2507H
                JR     14E1H

                CALL   2502H
                CALL   NZ,26D1H
                ADD    A,9
                JP     142DH

                PUSH   DE
                CALL   2520H
                JR     NZ,1500H
                CALL   25DEH
                LD     (IX+35H),0EDH
                CALL   24FDH
                CALL   NZ,26D1H
                JP     1448H

                PUSH   DE
                CALL   1529H
                CALL   2517H
                JR     Z,151BH
                CALL   24E4H
                JR     Z,1523H
                LD     A,0C6H
                EX     (SP),HL
                ADD    A,(HL)
                LD     (3F86H),A
                POP    HL
                CALL   2021H
                JP     142DH

                ADD    A,80H
                EX     (SP),HL
                ADD    A,(HL)
                POP    HL
                JP     1422H

                EX     (SP),HL
                LD     A,86H
                JP     1469H

                LD     A,(HL)
                CALL   toupper
                CP     'A'
                RET    NZ
                LD     D,H

                LD     E,L
                INC    HL
                CALL   25E8H
                RET    Z
                EX     DE,HL
                RET

                LD     DE,155BH
                CALL   2528H
                JP     Z,1422H
                INC    DE
                CALL   2528H
                JR     Z,153FH
                INC    DE
                CALL   2528H
                CALL   NZ,26D1H
                CP     0E3H
                JR     Z,153FH
                LD     (3F86H),A
                LD     A,0E3H
                JP     142DH

                db     5,6
                db     'DE,HL'
                db     0ebh,0

                db     6,7
                db     'AF,AF',squote
                db     8,0

                db     7,8
                db     '(SP),HL'
                db     0e3h

                db     '(SP),IX'
                db     0ddh

                db     '(SP),IY'
                db     0fdh,0

                CALL   2021H
                CP     3
                CALL   NC,2031H
                AND    A
                JR     Z,1599H
                RLA
                RLA
                RLA
                ADD    A,8
                ADD    A,'F'
                JP     1429H

                CALL   25E8H
                LD     (IX+35H),10H
                JR     15B6H

                LD     (IX+35H),18H
                CALL   2635H
                JR     NZ,15B6H
                LD     (3F86H),A
                CALL   25DEH
                CALL   1FFDH
                JP     142DH

; unref'ed code
                CALL   25F5H
                CALL   Z,26D1H
                JR     15B6H

                CALL   25F5H
                JR     Z,15D9H
                CALL   251BH
                JR     Z,15EAH
                CALL   24DFH
                JR     Z,15EFH
                LD     (IX+35H),0C3H
                JR     15E1H

                ADD    A,0C2H
                LD     (3F86H),A

                CALL   25DEH
                CALL   2042H
                CALL   15F4H
                JP     2B58H

                LD     A,0E9H
                JP     1422H

                LD     A,0E9H
                JP     142DH

                BIT    4,(IX+0)
                RET    Z
                LD     A,(3F86H)
                CP     0E0H
                RET    NC
                LD     A,(3F6DH)
                ADD    A,2
                CP     (IX+1DH)
                RET    NZ
                PUSH   HL
                LD     HL,(46A8H)
                INC    HL
                INC    HL
                LD     A,C
                SUB    L
                LD     L,A
                LD     A,B
                SBC    A,H
                JR     Z,161FH
                INC    A
                JR     NZ,162FH
                LD     A,L
                CP     80H
                JR     C,162FH
                JR     1624H

                LD     A,L
                CP     80H
                JR     NC,162FH
                LD     (IX+2DH),'R'
                LD     HL,(46A0H)
                INC    HL
                LD     (46A0H),HL
                POP    HL
                RET

                CALL   250FH
                CALL   NZ,26D1H
                PUSH   AF
                CALL   25DEH
                CALL   2525H
                JR     NZ,1645H
                POP    AF
                ADD    A,8
                JR     16BDH

                POP    AF
                CP     7
                CALL   NZ,26D1H
                LD     (IX+35H),0DBH
                CALL   2021H
                JP     142DH

                CALL   25F5H
                JR     Z,165EH
                LD     A,0C9H
                JR     1660H

                ADD    A,0C0H
                JP     1422H

                CALL   2021H
                LD     C,A
                AND    0C7H
                CALL   NZ,2031H
                LD     A,C
                AND    38H
                ADD    A,0C7H
                JP     1422H

                LD     A,0CFH
                LD     (3F86H),A
                CALL   2021H
                JP     142DH

                CALL   25F5H
                JR     Z,168EH
                LD     (IX+35H),0CDH
                CALL   2042H
                JP     2B58H

                ADD    A,0C4H
                LD     (3F86H),A
                CALL   25DEH
                JR     1688H

                CALL   2525H
                JR     Z,16B5H
                LD     (IX+35H),0D3H
                CALL   2021H
                EX     AF,AF'
                CALL   25DEH
                CALL   toupper
                CP     'A'
                CALL   NZ,26D1H
                INC    HL
                EX     AF,AF'
                JP     142DH

                CALL   250CH
                CALL   NZ,26D1H
                ADD    A,'('
                RLCA
                RLCA
                RLCA
                JP     1429H

                LD     DE,1703H
                CALL   2528H
                JP     Z,1429H
                LD     DE,1716H
                CALL   2528H
                JP     Z,1422H
                LD     DE,1735H
                CALL   2528H
                JR     Z,174AH
                CALL   250FH
                JR     Z,1757H
                CALL   251BH
                JP     Z,1798H
                CALL   24E4H
                JP     Z,17A4H
                CALL   2520H
                JP     Z,17BAH
                CALL   24FDH
                JP     Z,17C9H
                CALL   24D5H
                JP     Z,17E1H
                JP     17ECH

                db     3,4
                db     'A,I'
                db     57h

                db     'A,R'
                db     5fh

                db     'I,A'
                db     47h
 
                db     'R,A'
                db     4fh
                db     0

                db     6,7
                db     'A,(BC)'
                db     0ah

                db     'A,(DE)'
                db     1ah

                db     '(BC),A'
                db     2

                db     '(DE),A'
                db     12h
                db     0

                db     5,6
                db     'SP,HL'
                db     0f9h

                db     'SP,IX'
                db     0ddh

                db     'SP,IY'
                db     0fdh
                db     0

                LD     (3F86H),A
                CP     0F9H
                JP     Z,1422H
                LD     A,0F9H
                JP     142DH

                RLCA
                RLCA
                RLCA
                PUSH   AF
                CALL   2514H
                JR     Z,1777H
                CALL   24E4H
                JR     Z,177EH
                POP    BC
                LD     A,B
                CP     '8'
                JR     Z,1788H
                LD     A,B
                ADD    A,6
                LD     (3F86H),A
                CALL   2021H
                JP     142DH

                POP    BC
                ADD    A,B
                ADD    A,40H
                JP     1422H

                POP    BC
                LD     A,46H
                ADD    A,B
                LD     (3F87H),A
                JP     2864H

                LD     A,(HL)
                CP     '('
                JR     NZ,176BH
                LD     A,':'
                LD     (3F86H),A
                CALL   2042H
                JP     2B58H

                RLCA
                RLCA
                RLCA
                PUSH   AF
                CALL   250CH
                JR     Z,1777H
                POP    BC
                JR     176BH

                CALL   250CH
                JR     Z,17B6H
                LD     (IX+36H),36H
                CALL   2021H
                LD     (3F89H),A
                JP     2868H

                ADD    A,'p'
                JR     1782H

                CALL   25DEH
                CP     '('
                LD     B,' '
                JR     NZ,17C5H
                LD     B,')'
                INC    B
                LD     A,B
                JR     178FH

                LD     B,A
                CALL   25DEH
                CP     '('
                JR     NZ,17C5H
                LD     (IX+35H),0EDH
                LD     A,4BH
                ADD    A,B
                LD     (3F87H),A
                CALL   2042H
                JP     2B60H

                CALL   25DEH
                LD     A,'*'
                JR     Z,17D8H
                LD     A,'!'
                JR     17D8H

                LD     A,(HL)
                CP     '('
                CALL   NZ,26D1H
                CALL   2042H
                PUSH   BC
                CALL   25DEH
                CALL   toupper
                CP     'A'
                JR     Z,181DH
                CALL   24D5H
                JR     Z,1826H
                CALL   2520H
                JR     Z,182AH
                CALL   24FDH
                CALL   NZ,26D1H
                ADD    A,'C'
                LD     (IX+35H),0EDH
                LD     (IX+36H),A
                POP    BC
                JP     2B60H

                LD     (IX+35H),32H
                INC    HL
                POP    BC
                JP     2B58H

                LD     A,dquote
                JR     1816H

                LD     (IX+35H),dquote
                JR     1822H

                LD     A,(3F7FH)
                CP     8
                JR     Z,1871H
                CALL   2042H
                LD     A,D
                CP     2
                CALL   NZ,23F8H
                CALL   2B20H
                PUSH   BC
                CALL   28FFH
                POP    BC
                LD     A,B
                OR     C
                JP     Z,1CF8H
                PUSH   BC
                LD     HL,(3FFCH)
                PUSH   HL
                SUB    A
                LD     (3FFEH),A
                LD     BC,0
                CALL   1BDCH
                POP    HL
                DEC    HL
                DEC    HL
                DEC    HL
                LD     A,1
                CALL   19C5H
                POP    BC
                LD     (IY-8),C
                LD     (IY-7),B
                LD     HL,3F7FH
                INC    (HL)
                RET

                LD     A,6
                CALL   26DAH
                CALL   2858H
                JP     1CF8H

; the following ONE line is not ref'ed
                POP     AF
                CALL    26D1H
                JR      1876H

                LD      B,2
                JR      18B0H

                EX      DE,HL
                CALL    1ACFH
                JR      NZ,187DH
                CALL    1ACFH
                JR      Z,187DH
                LD      A,C
                AND     A
                JR      Z,187DH
                LD      B,C
                LD      D,C
                LD      C,0
                CALL    1CB5H
                JR      NZ,18A2H
                CP      squote
                JR      NZ,187DH
                INC     HL
                DJNZ    1899H
                JR      NZ,187DH
                LD      A,D
                CP      2
                JR      Z,18F5H
                LD      B,3
                JR      18B0H

                LD      A,(3F7FH)
                CP      8
                JR      Z,1871H
                LD      DE,(3F58H)
                LD      A,(DE)
                CP      '#'
                JR      NZ,187DH
                PUSH    BC
                CALL    1ACFH
                JR      NZ,18F4H
                POP     AF
                PUSH    AF
                CP      3
                JR      NZ,18CDH
                INC     DE
                PUSH    DE
                LD      B,0
                ADD     HL,BC
                PUSH    HL
                CALL    2858H
                POP     HL
                LD      (HL),cr
                CALL    1C3DH
                POP     HL
                LD      (3F58H),HL
                LD      HL,(3FFCH)
                DEC     HL
                DEC     HL
                DEC     HL
                POP     AF
                CALL    19C5H
                LD      BC,0
                CALL    1BDCH
                LD      HL,3F7FH
                INC     (HL)
                RET

                POP     BC
                CALL    2858H
                JP      1CF8H

;  this rather large chunk of code appears unref'ed
                LD      A,(3FF8H)
                AND     A
                RET     NZ
                PUSH    DE
                LD      E,(IY-8)
                LD      D,(IY-7)
                LD      A,(IY-9)
                ADD     A,A
                LD      HL,1912H
                CALL    hlplsa
                JP      (HL)

                JR      191AH

                JR      191EH

                JR      193BH

                JR      1942H

                POP     DE
                SUB     A
                INC     A
                RET

                DEC     DE
                LD      A,E
                OR      D
                JR      Z,195AH
                POP     HL
                LD      (IY-8),E
                LD      (IY-7),D
                CALL    1A03H
                LD      L,(IY-6)
                LD      H,(IY-5)
                LD      (IY-4),L
                LD      (IY-3),H
                SUB     A
                RET

                CALL    1ACFH
                JR      NZ,195AH
                JR      1923H

                LD      A,(DE)
                INC     DE
                CP      squote
                JR      NZ,1949H
                INC     DE
                LD      A,(DE)
                AND     A
                JR      Z,195AH
                CP      squote
                JR      NZ,1923H
                INC     DE
                LD      A,(DE)
                DEC     DE
                CP      squote
                JR      Z,1923H
                JR      195AH

                LD      E,(IY-6)
                LD      D,(IY-5)
                INC     DE
                INC     DE
                INC     DE
                POP     HL

                PUSH    DE
                LD      DE,(3FFCH)
                CALL    delta16
                POP     DE
                JR      Z,198AH
                JR      C,198AH
                LD      C,(HL)
                DEC     HL
                LD      B,(HL)
                INC     HL
                PUSH    BC
                POP     IY
                LD      (IY+0BH),E
                LD      (IY+0CH),D
                LDD
                LDD
                LD      A,(HL)
                LDD
                INC     A
                JR      NZ,1982H
                JR      1964H

                LD      (3FFCH),DE
                SUB     A
                INC     A
                RET

                LD      DE,3F64H
                CALL    1CC3H
                RET     NZ
                PUSH    HL
                CALL    786H
                CALL    1A11H
                POP     HL
                LD      A,(3F7FH)
                CP      8
                JR      Z,19BDH
                BIT     7,(HL)
                LD      A,12H
                CALL    NZ,26DAH
                DEC     HL
                LD      A,0
                CALL    19C5H
                CALL    2858H
                LD      HL,3F7FH
                INC     (HL)
                SUB     A
                RET

                LD      A,6
                CALL    26DAH
                JP      2858H

                PUSH    AF
                LD      A,(3F7FH)
                INC     A
                CALL    19F6H
                POP     AF
                LD      (IY-9),A
                LD      A,(3F55H)
                LD      (IY-0AH),A
                LD      (IY-6),L
                LD      (IY-5),H
                LD      (IY-4),L
                LD      (IY-3),H
                CALL    1A03H
                PUSH    IY
                POP     DE
                LD      (IY-8),E
                LD      (IY-7),D
                LD      HL,(3F58H)
                CALL    7D7H
                RET

                LD      IY,3FFEH
                LD      DE,6EH
                ADD     IY,DE
                DEC     A
                JR      NZ,19FDH
                RET

                LD      HL,(3FFAH)
                LD      (IY-2),L
                LD      (IY-1),H
                INC     HL
                LD      (3FFAH),HL
                RET

                BIT     0,(HL)
                JR      NZ,1A20H
                LD      B,0FFH
                LD      HL,3E05H
                BIT     2,(IX+0)
                JR      1A29H

                LD      B,7FH
                LD      HL,3EA9H
                BIT     3,(IX+1)
                LD      DE,3F64H
                CALL    NZ,3707H
                RET

                LD      A,(3F7FH)
                AND     A
                RET     Z
                CALL    19F6H
                LD      A,(3F55H)
                CP      (IY-0AH)
                JR      Z,1A42H
                SUB     A
                RET

                LD      HL,4798H
                LD      B,'d'
                LD      E,(IY-4)
                LD      D,(IY-3)
                LD      A,(DE)
                DEC     DE
                CP      0FFH
                JR      Z,1A6EH
                AND     A
                JP      M,1A63H
                LD      (HL),A
                CP      cr
                JR      Z,1A7DH
                INC     HL
                DJNZ    1A4DH
                DEC     HL
                INC     B
                JR      1A4DH

                LD      (IY-4),E
                LD      (IY-3),D
                CALL    1A86H
                JR      1A47H

                CALL    18FBH
                JR      Z,1A42H
                LD      HL,3F7FH
                DEC     (HL)
                SUB     A
                LD      (3FF8H),A
                JR      1A30H

                LD      (IY-4),E
                LD      (IY-3),D
                SUB     A
                INC     A
                RET

                PUSH    HL
                CP      0FEH
                JR      Z,1AB1H
                LD      E,(IY-8)
                LD      D,(IY-7)
                BIT     0,(IY-9)
                JR      NZ,1AC5H
                AND     7FH
                INC     A
                PUSH    AF

                CALL    1ACFH
                POP     AF
                DEC     A
                JR      NZ,1A9AH
                EX      DE,HL
                CALL    1B03H
                POP     HL
                LD      A,C
                OR      A
                RET     Z
                EX      DE,HL
                LDI
                EX      DE,HL
                DJNZ    1AA7H
                RET

                PUSH    BC
                LD      L,(IY-2)
                LD      H,(IY-1)
                LD      A,'0'
                CALL    cvtdecn
                POP     BC
                LD      DE,486BH
                LD      C,4
                JR      1AA6H

                LD      A,(DE)
                LD      C,1
                CP      squote
                JR      NZ,1AA6H
                INC     C
                JR      1AA6H

                EX      DE,HL
                CALL    skwhsp
                LD      D,H
                LD      E,L
                LD      C,0
                CALL    1CB5H
                INC     HL
                JR      C,1AE7H
                JR      NZ,1AD7H
                CP      ';'
                JR      Z,1AE7H
                CP      ','
                JR      NZ,1AD7H
                DEC     HL
                LD      A,L
                SUB     E
                LD      C,A
                PUSH    HL
                LD      A,C
                OR      A
                JR      Z,1AFDH
                DEC     HL
                LD      A,(HL)
                CP      9
                JR      Z,1AFAH
                CP      ' '
                JR      NZ,1AFDH
                DEC     C
                JR      1AECH

                POP     HL
                CALL    25E8H
                EX      DE,HL
                RET

                LD      L,(IY-4)
                LD      H,(IY-3)
                LD      A,(HL)
                CP      '('
                RET     NZ
                DEC     HL
                PUSH    BC
                PUSH    DE
                LD      DE,47FCH
                LD      BC,0
                INC     B
                CALL    1CB5H
                DEC     HL
                LD      (DE),A
                INC     DE
                JR      C,1B6BH
                JR      NZ,1B17H
                CP      '('
                JR      Z,1B16H
                CP      ')'
                JR      NZ,1B17H
                DJNZ    1B17H
                EX      DE,HL
                DEC     HL
                LD      (HL),';'
                LD      (IY-4),E
                LD      (IY-3),D
                PUSH    IY
                LD      HL,47FCH
                CALL    2021H
                PUSH    BC
                CALL    25E8H
                CALL    Z,2021H
                POP     HL
                POP     IY
                LD      H,C
                POP     DE
                POP     BC
                LD      A,C
                OR      A
                RET     Z
                LD      A,L
                CALL    1B65H
                LD      L,A
                LD      A,H
                CALL    1B65H
                CALL    1B61H
                DEC     L
                RET     Z
                RET     M
                INC     DE
                DEC     C
                RET     Z
                JR      1B59H

                CP      C
                RET     NC
                LD      C,A
                RET

                BIT     7,A
                RET     Z
                ADD     A,C
                INC     A
                RET

                POP     DE
                POP     BC
                RET

                LD      HL,3EA9H
                LD      B,'~'
                BIT     3,(IX+1)
                LD      C,1
                JR      1B86H

                LD      HL,3E05H
                LD      B,0FEH
                BIT     2,(IX+0)
                LD      C,0
                LD      DE,3F5CH
                CALL    NZ,3707H
                LD      DE,3F5CH
                LD      A,(DE)
                CP      ' '
                JR      Z,1BD1H
                CALL    1CC3H
                JR      NZ,1BB2H
                LD      A,(3F6CH)
                CP      2
                JR      Z,1BA2H
                SET     7,(HL)
                BIT     7,(HL)
                LD      A,12H
                CALL    NZ,26DAH
                CALL    1C3DH
                CALL    28EBH
                JP      1CF8H

                LD      A,C
                PUSH    AF
                LD      BC,(3FFCH)
                LD      (486AH),BC
                LD      BC,(4C55H)
                PUSH    BC
                SUB     A
                LD      (486CH),A
                LD      A,'M'
                CALL    9C2H
                CALL    1C3DH
                POP     BC
                POP     AF
                JR      1BDCH

                LD      A,5
                CALL    26DAH
                CALL    28EBH
                JP      1CF8H

                LD      HL,(3FFCH)
                LD      (HL),C
                DEC     HL
                LD      (HL),B
                DEC     HL
                LD      (HL),A
                DEC     HL
                LD      A,1
                LD      (3FF9H),A
                EX      DE,HL
                PUSH    DE
                CALL    1CD0H
                JR      C,1C35H
                PUSH    AF
                CALL    28EBH
                POP     AF
                JR      Z,1C35H
                POP     DE
                LD      HL,(4C55H)
                LD      BC,64H
                ADD     HL,BC
                CALL    delta16
                JP      NC,nomem
                LD      HL,4798H
                LD      C,0
                CALL    1CB5H
                JR      NZ,1C15H
                CP      ';'
                CALL    Z,1C27H
                PUSH    BC
                PUSH    DE
                CP      '#'
                CALL    Z,1C6EH
                POP     DE
                POP     BC
                LD      (DE),A
                DEC     DE
                INC     HL
                CP      cr
                JR      NZ,1C0BH
                JR      1BEBH

                INC     HL
                CP      (HL)
                DEC     HL
                RET     NZ
                INC     DE
                EX      DE,HL
                CALL    skwhsp
                EX      DE,HL
                DEC     DE
                LD      A,cr
                RET

                POP     HL
                LD      (HL),0FFH
                DEC     HL
                LD      (3FFCH),HL
                RET

                LD      HL,(3F58H)
                LD      DE,3FFEH
                LD      BC,64H
                CALL    skwhsp
                CP      cr
                JR      Z,1C6BH
                CP      ';'

                JR      Z,1C6BH
                CP      '#'

                CALL    NZ,26D1H
                LDI
                CALL    skwhsp
                CP      cr
                JR      Z,1C6BH
                CP      ';'
                JR      Z,1C6BH
                CP      ','
                JR      NZ,1C56H
                LDI
                JR      1C46H

                SUB     A
                LD      (DE),A
                RET

                LD      DE,1CB1H
                LD      B,4
                CALL    27ACH
                JR      NZ,1C7FH
                LD      DE,3
                ADD     HL,DE
                LD      A,0FEH
                RET

                LD      DE,3FFEH
                LD      B,80H
                LD      A,(DE)
                AND     A
                JR      Z,1CAFH
                CP      ','
                JR      Z,1CA8H
                PUSH    HL
                LD      A,(DE)
                AND     A
                JR      Z,1CABH
                CP      ','
                JR      Z,1CABH
                CALL    cmpchr
                JR      NZ,1C9EH
                INC     HL
                INC     DE
                JR      1C8DH

                POP     HL
                LD      A,(DE)
                INC     DE
                AND     A
                JR      Z,1CAFH
                CP      ','
                JR      NZ,1C9FH
                INC     B
                JR      1C8CH

                POP     AF
                DEC     HL
                LD      A,B
                RET

                LD      A,(HL)
                RET

                INC     HL
                LD      D,E
                LD      E,C
                LD      C,L
                LD      A,(HL)
                CP      cr
                SCF
                RET     Z
                CP      squote
                JR      NZ,1CBFH
                INC     C
                OR      A
                BIT     0,C
                RET

                LD      A,'M'
                CALL    96BH
                RET     NZ
                LD      A,(HL)
                INC     HL
                LD      H,(HL)
                LD      L,A
                DEC     HL
                DEC     HL
                RET

                BIT     7,(IX+1)
                JR      Z,1CDBH
                CALL    34BDH
                JR      1CDEH

                CALL    3478H
                SCF
                RET     Z
                CALL    85AH
                LD      HL,3FF9H
                CALL    1D09H
                JR      NZ,1CEFH
                DEC     (HL)
                CALL    77BH
                CALL    1D19H
                JR      NZ,1CF5H
                INC     (HL)
                LD      A,(HL)
                OR      A
                RET

                LD      A,1
                LD      (3FF9H),A
                CALL    1CD0H
                RET     C
                JP      Z,28EBH
                CALL    28EBH
                JR      1CFDH

                LD      DE,1D0EH
                JR      1D1CH

                db      4,4
                db      'MEND'

                db      'ENDM'

                db      0

                LD      DE,1D25H
                PUSH    HL
                LD      HL,3F64H
                CALL    2528H
                POP     HL
                RET

                db      6,7
                db      'OMACRO'
                db      81h

                db      'MACRO '
                db      80h

                db      'REPT  '
                db      0

                db      'IRP   '
                db      0

                db      'IRPC  '
                db      0

                db      'STRUCT'
                db      0

                db      0

                LD      A,(3F56H)
                AND     A
                JR      Z,1D6BH
                SUB     A
                LD      (3F56H),A
                LD      HL,(46A6H)
                LD      (46A8H),HL
                LD      A,(3F6FH)
                LD      (3F6DH),A
                JP      28EBH

                LD      A,10H
                CALL    26DAH
                JP      28EBH

                LD      A,(3F7FH)
                AND     A
                JR      Z,1D6BH
                LD      (3FF8H),A
                JP      28EBH

                LD      A,(43D2H)
                CP      10H
                JP      Z,1E1EH
                LD      (43D3H),A
                CALL    1DD5H
                SUB     A
                PUSH    AF
                CALL    34BDH
                JR      Z,1DC9H
                CALL    85AH
                CALL    1D19H
                JR      Z,1DA7H
                CALL    1D09H
                JR      NZ,1D8FH
                POP     AF
                JR      Z,1E18H
                DEC     A
                JR      1D8EH

                LD      B,A
                POP     AF
                JR      NZ,1DC6H
                BIT     7,B
                JR      Z,1DC6H
                LD      HL,4986H
                LD      DE,486AH
                LD      BC,3
                LDIR
                LD      DE,3F5CH
                LD      A,'L'
                CALL    96BH
                CALL    NZ,9C2H
                SUB     A
                INC     A
                JR      1D8EH

                POP     AF
                JR      NZ,1E18H
                RES     7,(IX+1)
                LD      HL,43D2H
                INC     (HL)
                RET

                SET     0,(IX+1)
                EX      DE,HL
                LD      HL,3C19H
                CALL    3501H
                JR      Z,1E24H

                LD      A,(43D2H)
                CALL    1E0EH
                EX      DE,HL
                LD      HL,4796H
                LD      BC,2
                LDIR
                LD      HL,3C1CH
                LD      BC,0EH
                LDIR
                LD      A,(43D2H)
                ADD     A,A
                ADD     A,A
                ADD     A,A
                ADD     A,A
                LD      (4983H),A
                LD      HL,0
                LD      (4984H),HL
                SET     7,(IX+1)
                RET

                ADD     A,A
                ADD     A,A
                ADD     A,A
                ADD     A,A
                LD      HL,43D4H
                JP      hlplsa

                LD      DE,1E2AH
                JP      prquit

                LD      DE,1E49H
                JP      prquit

                LD      DE,1E64H
                JP      prquit

                db      'MACRO library'
                db      ' mismatch error'
                db      cr,lf,0

                db      'Too many MACRO'
                db      ' libraries',cr,lf,0

                db      'MACRO library not'
                db      ' found',cr,lf,0

                LD      A,(3F6CH)
                DEC     A
                RET     NZ
                LD      DE,3F64H
                LD      A,'L'
                CALL    96BH
                RET     NZ
                LD      DE,(4796H)
                PUSH    DE
                PUSH    HL
                LD      A,(43D3H)
                LD      B,A
                LD      A,(HL)
                RRCA
                RRCA
                RRCA
                RRCA
                AND     0FH
                LD      C,A
                LD      (43D3H),A
                PUSH    BC
                CALL    1E0EH
                LD      DE,4796H
                LD      BC,2
                LDIR
                POP     BC
                LD      A,B
                CP      C
                JR      Z,1EBFH
                LD      DE,3C1CH
                LD      BC,0EH
                LDIR
                LD      A,0FFH
                LD      (3C28H),A
                POP     HL
                LD      A,(HL)
                AND     0FH
                LD      C,A
                INC     HL
                LD      D,(HL)
                INC     HL
                LD      E,(HL)
                LD      HL,3C19H
                CALL    38B0H
                SET     7,(IX+1)
                LD      HL,4798H
                LD      DE,47FCH
                LD      BC,64H
                LDIR
                CALL    34BDH
                CALL    85AH
                CALL    1D19H
                RRA
                JR      C,1EEEH
                CALL    1B7BH
                JR      1EF1H

                CALL    1B6EH
                RES     7,(IX+1)
                LD      HL,47FCH
                LD      DE,4798H
                LD      BC,64H
                LDIR
                POP     HL
                LD      (4796H),HL
                CALL    85AH
                SUB     A
                RET

                LD      A,(44D4H)
                CP      8
                JR      Z,1F3DH
                INC     A
                LD      (44D4H),A
                CALL    1F89H
                JR      NZ,1F35H
                CALL    2042H
                CALL    2B20H
                LD      A,D
                CP      2
                CALL    NZ,23F8H
                LD      A,B
                OR      C
                CP      1
                LD      HL,44D5H
                RL      (HL)
                CALL    1FAEH
                CALL    Z,28F9H
                RET

                SCF
                LD      HL,44D5H
                RL      (HL)
                JR      1F56H

                LD      A,6
                CALL    26DAH
                JP      28EBH

                LD      A,(44D4H)
                AND     A
                JR      Z,1F71H
                CALL    2B20H
                LD      A,(44D5H)
                XOR     1
                LD      (44D5H),A
                CALL    1FAEH
                CALL    Z,28EBH
                RET

                LD      A,(44D4H)
                AND     A
                JR      Z,1F71H
                CALL    2B20H
                LD      HL,44D4H
                DEC     (HL)
                LD      HL,44D5H
                SRL     (HL)
                JR      1F56H

                LD      A,0FH
                CALL    26DAH
                JP      28EBH

                CALL    1F89H
                CALL    NZ,1F93H
                RET     Z
                CALL    1FAEH
                CALL    Z,28EBH
                SUB     A
                INC     A
                RET

                LD      A,(3FF8H)
                AND     A
                RET     NZ
                LD      A,(44D5H)
                AND     A
                RET

                LD      DE,1F9CH
                LD      HL,3F64H
                jp      2528H

                db      5,5

                db      'IF   '
                db      'ELSE '
                db      'ENDIF'
                db      0

                LD      A,(3F83H)
                AND     A
                JR      NZ,1FC4H
                BIT     5,(IX+1)
                JR      NZ,1FC4H
                BIT     2,(IX+1)
                RET     NZ
                BIT     1,(IX+3)
                RET

                SUB     A
                RET

                CALL    2021H
                CP      8
                CALL    NC,2031H
                RLCA
                RLCA
                RLCA
                RET

                LD      A,(HL)
                CP      ')'
                JR      NZ,1FDFH
                INC     HL
                LD      BC,0
                LD      D,2
                LD      A,C
                RET

                CALL    2036H
                LD      A,D
                CP      2
                CALL    NZ,23F8H
                LD      A,B
                AND     A
                JR      Z,1FF5H
                INC     A
                JR      NZ,1FF9H
                LD      A,C
                CP      80H
                JR      C,1FF9H
                RET

                LD      A,C
                CP      80H
                RET     C
                LD      A,9
                JR      2033H

                CALL    2042H
                LD      A,(3F6DH)
                ADD     A,2
                CP      D
                CALL    NZ,23F8H
                LD      A,2
                LD      (3F6EH),A
                LD      DE,(46A8H)
                INC     DE
                INC     DE
                LD      A,C
                SUB     E
                LD      C,A
                LD      A,B
                SBC     A,D
                LD      B,A
                JR      1FE8H

                CALL    2043H
                JR      2024H

                CALL    2042H
                LD      A,D
                CP      2
                CALL    NZ,23F8H
                LD      A,B
                AND     A
                JR      Z,202FH
                INC     A
                LD      A,C
                RET     Z
                LD      A,0CH
                JP      26DAH

                SUB     A
                LD      (487EH),A
                LD      (4915H),A
                LD      BC,7FH
                JR      2098H

                SUB     A
                LD      (3FD6H),A
                SUB     A
                LD      (487EH),A
                LD      (4915H),A
                CALL    skwhsp
                CALL    21A7H
                JR      Z,2098H
                CALL    21B4H
                JR      Z,20CFH
                CALL    21BEH
                JR      Z,2098H
                LD      A,(HL)
                CP      squote
                JP      Z,20FDH
                CP      dquote
                JP      Z,20E6H
                CALL    2819H
                JP      NC,20F2H
                CALL    25BFH
                CALL    C,26C5H
                CALL    243FH
                CALL    2132H
                JP      Z,2129H
                CALL    skwhsp
                CALL    21B4H
                JR      Z,20CFH
                CALL    21E0H
                JR      NZ,20A9H
                PUSH    BC
                CALL    2184H
                POP     BC
                JR      Z,2098H

                CP      C
                JR      C,20A0H
                JR      Z,20A0H
                CALL    216BH
                JP      Z,2129H
                JR      204DH

                PUSH    BC
                CALL    228AH
                JP      C,2128H
                JR      208DH

                CALL    2184H
                JR      Z,20B5H
                CALL    228AH
                JR      C,2129H
                JR      20A9H

                CALL    214FH
                JR      Z,2129H
                LD      A,C
                CP      0FFH
                JR      Z,2129H
                AND     60H
                CP      ' '
                LD      A,C
                JR      Z,20C8H
                AND     1FH
                LD      (3F6EH),A
                LD      B,D
                LD      C,E
                LD      D,A
                RET

                CALL    2184H
                JR      Z,2129H
                CP      7FH
                JR      Z,20DFH
                CALL    228AH
                JR      C,2129H
                JR      20CFH

                CALL    2199H
                JR      Z,2129H
                JR      207FH

                INC     HL
                LD      D,H
                LD      E,L
                CALL    227FH
                JR      C,2129H
                LD      C,0FFH
                JR      2079H

                CALL    23FDH
                CALL    C,26C5H
                LD      C,2
                JP      2079H

                INC     HL
                LD      BC,2
                LD      DE,486AH
                CALL    2668H
                LD      DE,0
                JR      NC,2120H
                INC     B
                DEC     B
                JR      Z,2123H
                LD      DE,(486AH)
                DEC     B
                JR      Z,211CH
                LD      A,D
                LD      D,E
                LD      E,A
                JR      2123H

                LD      D,0
                JR      2123H

                CALL    26C5H
                LD      C,2
                JP      2079H

                POP     BC
                CALL    23F8H
                LD      BC,0
                LD      D,0
                RET

                LD      A,(487EH)
                CP      '2'
                RET     Z
                PUSH    HL
                INC     A
                LD      (487EH),A
                LD      HL,487CH
                LD      B,A
                ADD     A,B
                ADD     A,B
                CALL    hlplsa
                LD      (HL),E
                INC     HL
                LD      (HL),D
                INC     HL
                LD      (HL),C
                POP     HL
                SUB     A
                INC     A
                RET

                LD      A,(487EH)
                AND     A
                RET     Z
                PUSH    HL
                DEC     A
                LD      (487EH),A
                LD      HL,487FH
                LD      B,A
                ADD     A,B
                ADD     A,B
                CALL    hlplsa
                LD      E,(HL)
                INC     HL
                LD      D,(HL)
                INC     HL
                LD      C,(HL)
                POP     HL
                SUB     A
                INC     A
                RET

                LD      A,(4915H)
                CP      '2'
                RET     Z
                PUSH    HL
                INC     A
                LD      (4915H),A
                LD      HL,4914H
                ADD     A,A
                CALL    hlplsa
                LD      (HL),B
                INC     HL
                LD      (HL),C
                POP     HL
                SUB     A
                INC     A
                RET

                LD      A,(4915H)
                AND     A
                RET     Z
                PUSH    HL
                LD      HL,4914H
                ADD     A,A
                CALL    hlplsa
                LD      B,(HL)
                INC     HL
                LD      C,(HL)
                POP     HL
                SUB     A

                INC     A
                LD      A,C
                RET

                CALL    2184H
                RET     Z
                LD      A,(4915H)
                DEC     A
                LD      (4915H),A
                SUB     A
                INC     A
                RET

                LD      BC,7FH
                LD      A,(HL)
                INC     HL
                CP      '['
                RET     Z
                CP      '('
                RET     Z
                DEC     HL
                RET

                LD      A,(HL)
                INC     HL
                CP      ']'
                RET     Z
                CP      ')'
                RET     Z
                DEC     HL
                RET

                LD      DE,21C3H
                JR      21E3H

                db      '+'+128,86h,1
                db      '-'+128,8ch,1
                db      '^'+128,93h,1
                db      '~'+128,88h,4
                db      'NO','T'+128,88h,4
                db      'LO','W'+128,94h,8
                db      'HIG','H'+128,95h,8
                db      0

                LD      DE,21E5H
                JR      224DH

                db      '+'+128,6,3
                db      '-'+128,7,3
                db      '*'+128,1,2
                db      '/'+128,2,2
                db      '%'+128,3,2
                db      '&'+128,9,5
                db      '|'+128,10,6
                db      '>','>'+128,5,2
                db      '<','<'+128,4,2
                db      '>','='+128,18,7
                db      '<','='+128,17,7
                db      '<','>'+128,16,7
                db      '>'+128,13,7
                db      '<'+128,14,7
                db      '='+128,15,7
                db      'MO','D'+128,3,2
                db      'SH','L'+128,4,2
                db      'SH','R'+128,5,2
                db      'AN','D'+128,9,5
                db      'O','R'+128,10,6
                db      'XO','R'+128,11,6
                db      'L','T'+128,14,7
                db      'G','T'+128,13,7
                db      'E','Q'+128,15,7
                db      'N','E'+128,16,7
                db      'L','E'+128,17,7
                db      'G','E'+128,18,7
                db      0

                PUSH    HL
                LD      A,(DE)
                AND     A
                JR      Z,227CH

                CALL    cmpchr
                JR      NZ,2272H
                LD      A,(DE)
                INC     HL
                INC     DE
                AND     A
                JP      P,224EH
                AND     7FH
                CALL    25D4H
                JR      C,226AH
                CALL    284FH
                JR      NC,227CH
                POP     BC
                LD      A,(DE)
                LD      B,A
                INC     DE
                LD      A,(DE)
                LD      C,A
                SUB     A
                RET

                LD      A,(DE)
                INC     DE
                RLA
                JR      NC,2272H
                INC     DE
                INC     DE
                POP     HL
                JR      224DH

                POP     HL
                INC     A
                RET

                LD      A,(HL)
                CP      cr
                SCF
                RET     Z
                INC     HL
                CP      dquote
                JR      NZ,227FH
                RET

                PUSH    HL
                CALL    2199H
                JR      Z,22DFH
                LD      A,B
                AND     A
                JP      M,22CDH
                PUSH    BC
                CALL    214FH
                JR      Z,22DEH
                PUSH    DE
                PUSH    BC
                CALL    214FH
                JR      Z,22DCH
                EX      DE,HL
                POP     DE
                LD      B,C
                LD      C,E
                POP     DE
                EX      (SP),HL
                LD      A,H
                AND     7FH
                LD      HL,22E4H
                RLA
                CALL    hlplsa
                LD      A,(HL)
                INC     HL
                LD      H,(HL)
                LD      L,A
                PUSH    HL
                POP     IY
                POP     HL
                LD      A,2
                LD      (497AH),A
                CALL    22E2H
                EX      DE,HL
                LD      A,(497AH)
                LD      C,A
                CALL    2132H
                AND     A
                POP     HL
                RET

                PUSH    BC
                CALL    214FH
                JR      Z,22DEH
                EX      DE,HL
                LD      B,C
                LD      DE,0
                LD      C,2
                JR      22A7H

                POP     HL
                POP     HL
                POP     HL
                POP     HL
                SCF
                RET

                JP      (IY)

                dw      23f8h
                dw      2310h
                dw      2316h
                dw      231ch
                dw      2323h
                dw      232dh
                dw      233ah
                dw      2344h
                dw      233fh
                dw      234bh
                dw      2355h
                dw      235fh
                dw      2340h
                dw      236fh
                dw      2370h
                dw      237ah
                dw      2383h
                dw      238ah
                dw      238bh
                dw      2321h
                dw      236ah
                dw      2369h

                CALL    23C5H
                jp      mpy16b

                CALL    23C5H
                jp      div16b

                CALL    2316H
                EX      DE,HL
                RET

                INC     DE
                EX      DE,HL
                CALL    23C5H
                LD      A,D
                OR      E
                RET     Z
                ADD     HL,HL
                DEC     DE
                JR      2326H

                CALL    23C5H
                LD      A,D
                OR      E
                RET     Z
                SRL     H
                RR      L
                DEC     DE
                JR      2330H

                CALL    23D1H
                ADD     HL,DE
                RET

                DEC     DE
                EX      DE,HL
                LD      A,B
                LD      B,C
                LD      C,A
                CALL    23E2H
                AND     A
                SBC     HL,DE
                RET

                CALL    23C5H
                LD      A,H
                AND     D
                LD      H,A
                LD      A,L
                AND     E
                LD      L,A
                RET

                CALL    23C5H
                LD      A,H
                OR      D
                LD      H,A
                LD      A,L
                OR      E
                LD      L,A
                RET

                CALL    23C5H
                LD      A,H
                XOR     D
                LD      H,A
                LD      A,L
                XOR     E
                LD      L,A
                RET

                LD      L,H
                LD      H,0
                JP      23C5H

                EX      DE,HL
                CALL    2393H
                JP      M,237FH
                LD      HL,0
                RET

                CALL    2393H
                JR      NZ,2376H
                LD      HL,0FFFFH
                RET

                CALL    2393H
                JR      Z,2376H
                JR      237FH

                EX      DE,HL
                CALL    2393H
                JP      M,2376H
                JR      237FH

                CALL    239AH
                AND     A
                SBC     HL,DE
                RET

                LD      A,B
                CP      C
                JR      NZ,23F8H
                CP      0FFH
                RET     NZ
                LD      A,(HL)
                CP      dquote
                JR      Z,23B5H
                LD      A,(DE)
                CP      dquote
                JR      Z,23BEH
                CALL    cmpchr
                LD      A,(DE)
                JR      NZ,23BFH
                INC     DE
                INC     HL
                JR      23A1H

                LD      A,(DE)
                CP      dquote
                JR      Z,23BFH
                LD      L,0
                JR      23C0H

                SUB     A
                LD      L,(HL)
                LD      E,A
                LD      H,0
                LD      D,H
                RET

                CALL    23F3H
                LD      A,B
                CP      C
                JR      NZ,23F8H
                CP      2
                JR      NZ,23F8H
                RET

                LD      A,B
                CP      2
                LD      A,C
                JR      NZ,23DBH
                LD      (497AH),A
                RET

                CP      2
                LD      A,B
                JR      Z,23D7H
                JR      23F8H

                BIT     5,B
                JR      NZ,23E9H
                LD      A,B
                CP      C
                RET     Z
                LD      A,C
                CP      2
                JR      NZ,23F8H
                LD      A,B
                LD      (497AH),A
                RET

                LD      A,B
                OR      C
                BIT     5,A
                RET     Z
                LD      A,3
                JP      26DAH

                PUSH    HL
                INC     HL
                CALL    284FH
                JR      NC,23FEH
                DEC     HL
                POP     BC
                LD      A,(HL)
                CALL    toupper
                CP      'H'
                JR      Z,241EH
                CP      'D'
                JR      Z,2423H
                CP      'Q'
                JR      Z,2428H
                CP      'B'
                JR      Z,242DH
                INC     HL
                JP      asc2bin

                CALL    2753H
                INC     HL
                RET

                CALL    asc2bin
                INC     HL
                RET

                CALL    272BH
                INC     HL
                RET

                CALL    2740H
                INC     HL
                RET

mpy16b:         LD      C,89H     ;16-bit multiply
                CALL    bdos
                EX      DE,HL
                RET

div16b:         LD      C,8AH     ;16-bit divide
                CALL    bdos
                RET

                LD      DE,4860H
                CALL    2820H
                LD      A,(DE)
                CP      '$'
                JR      NZ,2451H
                INC     DE
                LD      A,(DE)
                DEC     DE
                CP      ' '
                JR      Z,24C2H
                PUSH    HL
                SUB     A
                INC     A
                CALL    0A11H
                JR      NC,24BBH
                LD      HL,0
                LD      (486AH),HL
                LD      (486CH),HL
                CALL    90BH
                LD      D,B
                LD      E,C
                LD      C,A
                AND     60H
                CP      60H
                CALL    Z,901H
                LD      A,C
                AND     3FH
                CALL    Z,2494H
                BIT     5,A
                JR      Z,247FH
                LD      DE,0
                LD      (3F7BH),HL
                LD      C,A
                PUSH    DE
                LD      HL,3E05H
                LD      DE,(3F5AH)
                LD      B,7FH
                BIT     2,(IX+0)
                CALL    NZ,3707H
                POP     DE
                POP     HL
                RET

                LD      A,(3F6CH)
                DEC     A
                JR      Z,24A0H
                CALL    26D5H
                LD      A,2
                RET

                LD      A,15H
                LD      (3F81H),A
                LD      A,(3F80H)
                BIT     4,A
                LD      A,2
                RET     Z
                LD      (3F84H),A
                LD      (3F83H),A
                LD      HL,(469CH)
                INC     HL
                LD      (469CH),HL
                RET

                LD      DE,0
                LD      C,2
                POP     HL
                RET

                PUSH    HL
                LD      HL,(46A8H)
                LD      A,(3FD6H)
                CALL    hlplsa
                EX      DE,HL
                POP     HL
                LD      A,(3F6DH)
                ADD     A,2
                LD      C,A
                RET

                LD      DE,253EH
                CALL    2528H
                LD      (3F86H),A
                RET

                LD      DE,2547H
                JR      24D8H

                LD      DE,2554H
                CALL    2528H
                RET     NZ
                PUSH    AF
                CALL    1FD2H
                LD      (3F88H),A
                LD      B,A
                POP     AF
                LD      (3F86H),A
                RET

                LD      DE,255FH
                JR      2528H

                LD      DE,256EH
                JR      2528H

                LD      DE,257DH
                JR      2528H

                LD      DE,258CH
                JR      2528H

                CALL    25DEH
                LD      DE,259BH
                JR      2528H

                CALL    25DEH
                CALL    250FH
                RET     Z
                LD      DE,25ACH
                JR      2528H

                LD      DE,25B4H
                JR      2528H

                LD      DE,25B9H
                PUSH    HL
                EX      DE,HL
                CALL    278EH
                EX      DE,HL
                JR      NZ,2536H
                ADD     HL,BC
                CALL    284FH
                JR      C,253AH
                SUB     A
                INC     A
                POP     HL
                RET

                SUB     A
                LD      A,(DE)
                POP     BC
                RET

                db      2,3

                db      'IX'
                db      0ddh
                db      'IY'
                db      0fdh
                db      0

                db      4,5

                db      '(IX)'
                db      0ddh
                db      '(IY)'
                db      0fdh
                db      0

                db      3,4

                db      '(IX'
                db      0ddh
                db      '(IY'
                db      0fdh
                db      0

                db      2,3

                db      'BC'
                db      0
                db      'DE'
                db      10h
                db      'HL'
                db      20h
                db      'AF'
                db      30h
                db      0

                db      2,3

                db      'BC'
                db      0
                db      'DE'
                db      10h
                db      'HL'
                db      20h
                db      'SP'
                db      30h
                db      0

                db      2,3

                db      'BC'
                db      0
                db      'DE'
                db      10h
                db      'IX'
                db      20h
                db      'SP'
                db      30h
                db      0

                db      2,3

                db      'BC'
                db      0
                db      'DE'
                db      10h
                db      'IY'
                db      20h
                db      'SP'
                db      30h
                db      0

                db      1,2
                db      'A'
                db      7
                db      'B'
                db      0
                db      'C'
                db      1

                db      'D'
                db      2
                db      'E'
                db      3
                db      'H'
                db      4
                db      'L'
                db      5
                db      0

                db      4,5

                db      '(HL)'
                db      6
                db      0

                db      2,2

                db      'HL'
                db      0

                db      3,3

                db      '(C)'
                db      0

                CALL    25D4H
                RET     NC
                CP      '.'
                RET     Z
                CP      '$'
                RET     Z
                CP      '_'
                RET     Z
                CP      '?'
                RET     Z
                CP      '@'
                RET     Z
                SCF
                RET

                CALL    toupper
                CP      'A'
                RET     C
                CP      '['
                CCF
                RET

                CALL    25E8H
                CALL    NZ,26D1H
                LD      A,(HL)
                CP      '('
                RET

                CALL    skwhsp
                LD      A,(HL)
                CP      ','
                RET     NZ
                INC     HL
                CALL    skwhsp
                SUB     A
                RET

                CALL    2635H
                JR      NZ,25FEH
                SUB     20H
                CP      A
                RET

                LD      DE,2620H
                CALL    2638H
                RET     NZ
                BIT     5,(IX+0)
                RET     Z
                CP      '('
                JR      Z,2612H
                CP      ' '
                JR      NZ,25FCH
                PUSH    HL
                LD      HL,(46A2H)
                INC     HL
                LD      (46A2H),HL
                LD      (IX+2DH),'P'
                POP     HL
                RET

                db      2,3

                db      'M '
                db      38h
                db      'P '
                db      30h
                db      'PE'
                db      28h
                db      'PO'
                db      20h
                db      'V '
                db      28h
                db      'NV'
                db      20h
                db      0

                LD      DE,264DH
                PUSH    DE
                LD      DE,486AH
                CALL    2820H
                EX      (SP),HL
                EX      DE,HL
                CALL    2528H
                JR      NZ,2648H
                POP     HL
                RET

                POP     HL
                LD      HL,(3F58H)
                RET

                db      2,3

                db      'C '
                db      38h
                db      'LT'
                db      38h
                db      'NC'
                db      30h
                db      'GE'
                db      30h
                db      'Z '
                db      28h
                db      'EQ'
                db      28h
                db      'NZ'
                db      20h
                db      'NE'
                db      20h
                db      0

                INC     C
                PUSH    BC
                PUSH    DE
                LD      A,(HL)
                CP      squote
                JR      Z,26A9H
                CP      '\'
                JR      Z,2684H
                LD      A,(HL)
                CP      cr
                JR      Z,26AFH
                POP     DE
                POP     BC
                AND     A
                DEC     C
                RET     Z
                LD      (DE),A
                INC     DE
                INC     HL
                INC     B
                JR      2669H

                INC     HL
                LD      A,(HL)
                CALL    toupper
                CP      'X'
                JR      Z,269AH
                EX      DE,HL
                LD      HL,26B4H
                CALL    278EH
                EX      DE,HL
                JR      NZ,2674H
                LD      A,(DE)
                JR      2679H

                INC     HL
                LD      B,H
                LD      C,L
                INC     HL
                INC     HL
                CALL    2753H
                CALL    C,26D1H
                DEC     HL
                LD      A,E
                JR      2679H

                INC     HL
                LD      A,(HL)
                CP      squote
                JR      Z,2679H
                POP     DE
                POP     BC
                DEC     C
                SCF
                RET

                db      1,1
                db      'N'
                db      0ah
                db      'L'
                db      0ah
                db      'F'
                db      0ch
                db      'R'
                db      0dh
                db      'B'
                db      8
                db      'T'
                db      9
                db      '0'
                db      0
                db      0

                LD      A,1
                JR      26DAH

                LD      A,4
                JR      26DAH

                LD      A,5
                JR      26DAH

                LD      A,0AH
                JR      26DAH

                LD      A,0BH
                LD      BC,0
                PUSH    AF
                LD      (IX+32H),1
                LD      A,(3F81H)
                AND     A
                JR      NZ,26ECH
                POP     AF
                LD      (3F81H),A
                LD      A,0
                RET

                POP     AF
                JR      26E9H

                CALL    26FBH
                CALL    26FEH
                CALL    26FEH
                CALL    26FBH
                CALL    26FEH
                LD      B,' '
                JP      352AH

hlplsa:         ADD     A,L
                LD      L,A
                RET     NC
                INC     H
                RET

                LD      A,L
                ADD     A,1
                DAA
                LD      L,A
                LD      A,H
                ADC     A,0
                DAA
                LD      H,A
                RET

asc2bin:        PUSH    HL      ; ???? maybe, not sure
                LD      HL,0
                ADD     HL,HL
                LD      D,H
                LD      E,L
                ADD     HL,HL
                ADD     HL,HL
                ADD     HL,DE
                LD      A,(BC)
                CALL    2819H
                JR      C,2729H
                CALL    2778H
                JR      NZ,2717H
                RET

                POP     HL
                RET

                PUSH    HL
                LD      HL,0
                ADD     HL,HL
                ADD     HL,HL
                ADD     HL,HL
                LD      A,(BC)
                SUB     '0'
                CP      8
                CCF
                JR      C,2729H
                CALL    2778H
                JR      NZ,272FH
                RET

                PUSH    HL
                LD      HL,0
                ADD     HL,HL
                LD      A,(BC)
                SUB     '0'
                CP      2
                CCF
                JR      C,2729H
                CALL    2778H
                JR      NZ,2744H
                RET

                PUSH    HL
                LD      HL,0
                ADD     HL,HL
                ADD     HL,HL
                ADD     HL,HL
                ADD     HL,HL
                LD      A,(BC)
                CALL    2767H
                JR      C,2729H
                CALL    2778H
                JR      NZ,2757H
                RET

                CALL    2819H
                RET     NC

                CALL    toupper
                CP      'A'
                RET     C
                CP      'G'
                CCF
                RET     C
                SUB     7
                RET

                AND     0FH
                CALL    hlplsa
                EX      DE,HL
                POP     HL
                EX      (SP),HL
                PUSH    HL
                INC     BC
                AND     A
                SBC     HL,BC
                POP     HL
                JR      NZ,278AH
                LD      A,(HL)
                RET

                EX      (SP),HL
                PUSH    HL
                EX      DE,HL
                RET

                CALL    2798H
                RET     NZ
                LD      C,B
                LD      B,0
                ADD     HL,BC
                SUB     A
                RET

                LD      B,(HL)
                INC     HL
                LD      C,(HL)
                INC     HL
                LD      A,(HL)
                AND     A
                JR      Z,27AAH
                CALL    27ACH
                RET     Z
                LD      A,C
                CALL    hlplsa
                JR      279CH

                INC     A
                RET

                PUSH    HL
                PUSH    DE
                PUSH    BC
                EX      DE,HL
                CALL    cmpchr
                JR      NZ,27B9H
                INC     HL
                INC     DE
                DJNZ    27B0H
                POP     BC
                POP     DE
                POP     HL
                RET

cmpchr:         LD      A,(DE)
                CALL    toupper
                PUSH    BC
                LD      B,A
                LD      A,(HL)
                CALL    toupper
                LD      C,A
                LD      A,B
                CP      C
                POP     BC
                RET

toupper:        AND     7FH
                CP      'a'
                RET     C
                CP      '{'
                RET     NC
                AND     5FH
                RET

delta16:        PUSH    HL
                AND     A
                SBC     HL,DE
                POP     HL
                RET

                LD      A,H
                CALL    27E2H
                LD      A,L
                LD      C,A
                RRA
                RRA
                RRA
                RRA
                CALL    27EBH
                LD      A,C
                AND     0FH
                ADD     A,'0'
                CP      ':'
                JR      C,27F5H
                ADD     A,7
                LD      B,A
                JP      352AH

                CALL    26FEH
                LD      E,(HL)
                INC     HL
                LD      D,(HL)
                INC     HL
                EX      DE,HL
                CALL    27DDH
                EX      DE,HL
                RET

                LD      B,(HL)
                CALL    352AH
                INC     HL
                DEC     D
                JR      NZ,2806H
                RET

blkblnk:        LD      A,' '
blkinit:        LD      (DE),A
                LD      H,D
                LD      L,E
                INC     DE
                DEC     BC
                LDIR
                RET

                CP      '0'
                RET     C
                CP      ':'
                CCF
                RET

                LD      BC,8
                PUSH    DE
                PUSH    HL
                CALL    blkblnk
                POP     HL
                POP     DE
                PUSH    DE
                LD      C,8
                CALL    284FH
                JR      C,2837H
                LDI
                JP      PE,282DH
                POP     DE
                CALL    283DH
                JR      skwhsp

                CALL    284FH
                RET     C

                INC     HL
                JR      283DH

skwhsp:         LD      A,(HL)
                CP      ' '

                JR      Z,skwhspl
                CP      9
                RET     NZ
skwhspl:        INC     HL
                JR      skwhsp

                LD      A,(HL)
                CALL    25BFH
                RET     NC
                CALL    2819H
                RET

                LD      B,0
                JR      2881H

                LD      B,1
                JR      286AH

                LD      B,2
                JR      286AH

                LD      B,3
                JR      286AH

                LD      B,4
                CALL    2B20H
                PUSH    BC
                CALL    2881H
                POP     BC
                PUSH    BC
                LD      HL,3F86H
                CALL    32DCH
                POP     BC
                SUB     A
                LD      C,B
                LD      B,0
                JP      2B2CH

                LD      A,(3F6CH)
                CP      2
                RET     NZ
                CALL    288DH
                JP      293BH

                PUSH    BC
                LD      HL,(46A8H)
                CALL    27DDH
                LD      A,(3F6DH)
                CALL    2AEFH
                CALL    26FEH
                LD      HL,3F86H
                POP     BC
                LD      C,4
                LD      A,B
                AND     A
                CALL    Z,28C3H
                JR      Z,28BBH
                PUSH    BC
                LD      A,(HL)
                CALL    27E2H
                POP     BC
                INC     HL
                DEC     C
                DJNZ    28AAH
                CALL    2B03H
                LD      A,C
                AND     A
                JR      Z,28C3H
                PUSH    BC
                CALL    26FBH
                POP     BC
                DEC     C
                JR      NZ,28BBH
                CALL    26FEH
                SUB     A
                RET

                LD      HL,3F86H
                LD      A,(3F6CH)
                CP      2
                RET     NZ
                PUSH    BC
                CALL    26F2H
                POP     BC
                LD      A,(HL)
                PUSH    BC
                CALL    27E2H
                POP     BC
                INC     HL
                DJNZ    28D6H
                PUSH    HL
                CALL    2B03H
                CALL    7B6H
                CALL    2969H
                POP     HL
                RET

                LD      A,(3F6CH)
                CP      2
                RET     NZ
                CALL    26EFH
                CALL    26F2H
                JR      2938H

                PUSH    BC
                CALL    26F5H
                JR      290CH

                PUSH    BC
                LD      HL,(46A8H)
                CALL    27DDH
                LD      A,(3F6DH)
                CALL    2AEFH
                CALL    26FEH
                LD      B,'('
                CALL    352AH
                POP     HL
                CALL    27DDH
                LD      A,(3F6EH)
                BIT     5,A
                JR      NZ,2923H
                CP      3
                JR      C,292DH
                CALL    2B03H
                LD      B,')'
                CALL    352AH
                JR      2935H

                LD      B,')'
                CALL    352AH
                CALL    26FEH
                CALL    26FEH
                CALL    26FBH
                LD      A,(3F7EH)
                LD      B,A
                CALL    352AH
                CALL    26FEH
                LD      HL,(4796H)
                CALL    27DDH
                LD      B,'+'
                LD      A,(3F7FH)
                AND     A
                JR      NZ,295DH
                LD      B,'-'
                LD      A,(3F56H)
                AND     A
                JR      NZ,295DH
                LD      B,' '
                CALL    352AH
                CALL    26FEH
                LD      HL,4798H
                CALL    351CH
                LD      A,(3F81H)
                AND     A
                RET     Z

                PUSH    AF
                LD      HL,2986H
                CALL    2B16H
                POP     AF
                CALL    2990H
                CALL    2B16H
                LD      HL,298AH
                CALL    2B16H
                CALL    2D57H
                RET

                db      '***',' '+128
                db      ' ***',cr,cr+128

                LD      HL,299DH
                LD      B,A
                DEC     B
                RET     Z
                LD      A,(HL)
                INC     HL
                RLA
                JR      NC,2996H
                JR      2994H

                db      'argument erro','r'+128
                db      'multiple definitio','n'+128
                db      'expression erro','r'+128
                db      'label erro','r'+128
                db      'missing labe','l'+128
                db      'nesting erro','r'+128
                db      'opcode erro','r'+128
                db      'phase erro','r'+128
                db      'range erro','r'+128
                db      'syntax erro','r'+128
                db      'undefined symbo','l'+128
                db      'value erro','r'+128
                db      'file not foun','d'+128
                db      'divide by zero erro','r'+128
                db      'no matching I','F'+128
                db      'no matching MACR','O'+128
                db      'too many COMMON','s'+128
                db      'multiple MACRO definitio','n'+128
                db      'label not allowe','d'+128
                db      'instruction not allowe','d'+128
                db      'undefined symbol on pass on','e'+128
                db      'mnot','e'+128

                CP      3
                JR      C,2AF5H
                LD      A,3
                LD      HL,2AFFH
                CALL    hlplsa
                LD      B,(HL)
                jp      352AH

                db      ' ',squote,dquote,'*'

                LD      A,(3F6EH)
                BIT     5,A
                JR      NZ,2B11H
                AND     A
                JR      Z,2AEFH
                SUB     2
                JR      2AEFH

                LD      B,'#'
                JP      352AH

                LD      B,(HL)
                CALL    352AH
                LD      A,(HL)
                INC     HL
                AND     A
                RET     M
                JR      2B16H

                CALL    skwhsp
                CP      ';'
                RET     Z
                CP      cr
                RET     Z
                JP      26D1H

                LD      HL,(46A8H)
                ADD     HL,BC
                LD      (46A8H),HL
                EX      DE,HL
                LD      A,(3F6DH)
                ADD     A,A
                PUSH    AF
                LD      HL,46AAH
                CALL    hlplsa
                LD      (HL),E
                INC     HL
                LD      (HL),D
                LD      HL,4600H
                POP     AF
                RET     Z
                CALL    hlplsa
                PUSH    HL
                LD      A,(HL)
                INC     HL
                LD      H,(HL)
                LD      L,A
                CALL    delta16
                POP     HL
                RET     NC
                LD      (HL),E
                INC     HL
                LD      (HL),D
                RET

                LD      (3F87H),BC
                LD      B,3
                JR      2B66H

                LD      (3F88H),BC
                LD      B,4
                CALL    2B20H
                PUSH    BC
                CALL    2881H
                POP     BC
                LD      A,(3F6CH)
                CP      2
                JR      NZ,2BA2H
                LD      HL,3F86H
                LD      A,B
                SUB     2
                JR      Z,2B86H
                LD      C,A
                LD      A,(HL)
                CALL    32C6H
                INC     HL
                DEC     C
                JR      NZ,2B7EH
                LD      E,(HL)
                INC     HL
                LD      D,(HL)
                LD      A,(3F6EH)
                BIT     5,A
                CALL    NZ,2BB2H
                LD      A,(3F6EH)
                AND     1FH
                CP      3
                JR      C,2BA8H
                SUB     2
                PUSH    BC
                LD      B,A
                CALL    3328H
                POP     BC
                LD      C,B
                LD      B,0
                JP      2B2CH

                LD      A,E
                CALL    32C6H
                LD      A,D
                CALL    32C6H
                JR      2BA2H

                PUSH    BC
                LD      A,D
                OR      E
                LD      B,0
                LD      A,9
                CALL    NZ,32E7H
                POP     BC
                LD      A,B
                SUB     2
                LD      HL,(46A8H)
                CALL    hlplsa
                EX      DE,HL
                LD      HL,(3F7BH)
                LD      A,(HL)
                LD      (3F6EH),A
                AND     0E0H
                LD      C,A
                LD      A,(3F6DH)
                ADD     A,2
                OR      C
                LD      (HL),A
                DEC     HL
                LD      A,(HL)
                LD      (HL),D
                LD      D,A
                DEC     HL
                LD      A,(HL)
                LD      (HL),E
                LD      E,A
                RET

                LD      (IX+33H),1
                LD      DE,(469CH)
                LD      HL,2C43H
                LD      A,D
                OR      E
                CALL    NZ,2C8FH
                LD      (IX+33H),0
                RET

                LD      (IX+33H),1
                LD      DE,(469EH)
                LD      HL,2C53H
                CALL    2C8FH
                LD      DE,(46A0H)
                LD      HL,2C5BH
                BIT     4,(IX+0)
                CALL    NZ,2C8FH
                LD      DE,(46A2H)
                LD      HL,2C67H
                BIT     5,(IX+0)
                CALL    NZ,2C8FH
                CALL    7B6H
                LD      DE,(4602H)
                LD      HL,2C74H
                LD      A,D
                OR      E
                CALL    NZ,2CA3H
                LD      DE,(4604H)
                LD      HL,2C83H
                LD      A,D
                OR      E
                CALL    NZ,2CA3H
                CALL    2CADH
                LD      (IX+33H),0
                RET

                db      'Pass One Errors'
                db      beep+128
                db      'Errors',beep,beep+128
                db      'Range Count',beep+128
                db      'Parity Count',beep+128
                db      'Program Length',beep+128
                db      'Data Length',beep+128

                CALL    2B16H
                EX      DE,HL
                LD      A,' '
                CALL    cvtdecn
                LD      HL,486BH
                LD      D,4
                CALL    2806H
                JP      7B6H

                CALL    2B16H
                EX      DE,HL
                CALL    2D17H
                JP      7B6H

                LD      A,(46A4H)
                AND     A
                RET     Z
                PUSH    AF
                LD      HL,2D08H
                CALL    2B16H
                LD      HL,4624H
                LD      DE,4606H
                LD      B,'/'
                CALL    352AH
                PUSH    HL
                LD      B,(HL)
                CALL    352AH
                LD      C,7
                INC     HL
                LD      A,(HL)
                CP      ' '
                JR      Z,2CDFH
                LD      B,A
                CALL    352AH
                DEC     C
                JR      NZ,2CCBH
                LD      B,'/'
                CALL    352AH
                JR      2CE9H

                LD      B,'/'
                CALL    352AH
                LD      B,9
                CALL    352AH
                LD      B,9
                CALL    352AH
                LD      A,(DE)
                LD      L,A
                INC     DE
                LD      A,(DE)
                LD      H,A
                INC     DE
                PUSH    DE
                CALL    2D17H
                CALL    7B6H
                POP     DE
                POP     HL
                LD      BC,8
                ADD     HL,BC
                POP     AF
                DEC     A
                PUSH    AF
                JR      NZ,2CBFH
                POP     AF
                RET

                db      'COMMON Lengths',cr+128

                CALL    27DDH
                SUB     A
                CALL    cvtdecn
                CALL    26FEH
                LD      B,'('
                CALL    352AH
                LD      HL,486AH
                LD      D,5
                LD      A,(HL)
                INC     HL
                OR      A
                LD      B,A
                CALL    NZ,352AH
                DEC     D
                JR      NZ,2D2BH
                LD      B,')'
                JP      352AH

cvtdecn:        PUSH    HL
                LD      DE,486AH
                LD      BC,5
                CALL    blkinit
                POP     HL
cvdcl:          PUSH    DE
                LD      DE,10
                CALL    div16b
                LD      A,E
                POP     DE
                ADD     A,'0'
                DEC     DE
                LD      (DE),A
                LD      A,H
                OR      L
                JR      NZ,cvdcl
                RET

                LD      HL,(469EH)
                INC     HL
                LD      (469EH),HL
                LD      A,(3F81H)
                LD      B,A
                SUB     A
                LD      (3F81H),A
                LD      (3F83H),A
                LD      A,(3F6CH)
                CP      2
                RET     NZ
                CALL    2E1BH
                RET     C
                LD      D,H
                LD      E,L
                ADD     HL,DE
                ADD     HL,DE
                LD      DE,44D3H
                ADD     HL,DE
                LD      (HL),B
                INC     HL
                LD      DE,(4796H)
                LD      (HL),D
                INC     HL
                LD      (HL),E
                RET

                CALL    2E1BH
                LD      A,H
                OR      L
                RET     Z
                CALL    7B6H
                PUSH    HL
                DEC     HL
                LD      D,H
                LD      E,L
                ADD     HL,DE
                ADD     HL,DE
                LD      DE,44D6H
                ADD     HL,DE
                LD      BC,3
                CALL    0B0DH
                POP     DE
                LD      HL,44D6H
                LD      B,0
                CALL    2E30H
                LD      A,(HL)
                CP      B
                JR      Z,2DDFH
                LD      B,A
                PUSH    HL
                PUSH    DE
                PUSH    BC
                CALL    7B6H
                LD      A,(HL)
                PUSH    AF
                LD      HL,2986H
                CALL    2B16H
                POP     AF
                CALL    2990H
                LD      C,1DH
                LD      B, (HL)
                CALL    352AH
                DEC     C
                LD      A,(HL)
                INC     HL
                RLA
                JR      NC,2DC0H
                CALL    26FEH
                LD      HL,2986H
                CALL    2B16H
                CALL    26FEH
                DEC     C
                JR      NZ,2DD3H
                POP     BC
                POP     DE
                POP     HL
                CALL    2E30H
                INC     HL
                PUSH    BC
                PUSH    DE
                LD      D,(HL)
                INC     HL
                LD      E,(HL)
                INC     HL
                EX      DE,HL
                CALL    27DDH
                CALL    26FEH
                EX      DE,HL
                POP     DE
                POP     BC
                DEC     DE
                LD      A,D
                OR      E
                JR      Z,2E0AH
                DEC     C
                JR      NZ,2DA7H
                LD      A,(HL)
                CP      B
                JR      NZ,2DA7H
                PUSH    HL
                PUSH    DE
                PUSH    BC
                LD      HL,2E10H
                CALL    2B16H
                POP     BC
                POP     DE
                POP     HL
                JR      2DA4H

                CALL    7B6H
                JP      7B6H

                DEC     C
                ADD     HL,BC
                ADD     HL,BC
                ADD     HL,BC
                ADD     HL,BC
                JR      NZ,2E37H
                JR      NZ,2E39H
                JR      NZ,2DBBH
                LD      HL,(469EH)
                LD      A,H
                AND     A
                JR      NZ,2E29H
                LD      A,L
                CP      'c'
                JR      Z,2E2EH
                JR      C,2E2EH
                LD      HL,64H
                SCF
                RET

                AND     A
                RET

                PUSH    HL
                PUSH    DE
                PUSH    BC
                LD      A,(3F4DH)
                SUB     26H

                LD      L,A
                LD      H,0
                LD      DE,5
                CALL    div16b
                POP     BC
                LD      C,L
                POP     DE
                POP     HL
                RET

                BIT     2,(IX+0)
                RET     Z
                LD      HL,(4C53H)
                LD      DE,(4C55H)
                CALL    delta16
                RET     NC
                PUSH    HL
                PUSH    HL
                POP     IY
                EX      DE,HL
                INC     DE
                INC     DE
                INC     DE
                LD      L,(IY+0BH)
                LD      H,(IY+0CH)
                LD      (4796H),HL
                LD      B,(IY+0DH)
                RES     7,B
                LD      A,(IY+2)
                CP      'S'
                JR      Z,2E85H
                LD      B,82H
                CP      'M'
                JR      NZ,2E8BH
                DEC     HL
                DEC     HL
                BIT     0,(HL)
                JR      NZ,2E8BH
                BIT     7,(HL)
                JR      Z,2E85H
                LD      B,0E2H
                LD      HL,3E05H
                CALL    3707H
                POP     HL
                LD      DE,0EH
                ADD     HL,DE
                JR      2E4EH

                PUSH    HL
                EX      DE,HL
                CALL    12F6H
                POP     HL
                PUSH    HL
                CALL    endfil
                POP     HL
                PUSH    HL
                CALL    opnfil
                SUB     A
                LD      (2F20H),A
                POP     HL
                PUSH    HL
                CALL    2F21H
                JR      C,2EB9H
                LD      HL,4C57H
                LD      (4860H),HL
                CALL    2F7CH
                POP     HL
                JP      delfil

                EX      AF,AF'
                LD      (2F1EH),DE
                POP     HL
                PUSH    HL
                INC     HL
                INC     HL
                INC     HL
                LD      DE,398CH
                LD      BC,21H
                LDIR
                LD      HL,3989H
                CALL    opnfil
                LD      (IY+0),0
                LD      HL,2F20H
                INC     (HL)
                LD      DE,4C57H
                LD      HL,3989H
                LD      A,(DE)
                CP      0FFH
                JR      Z,2EEBH
                LD      B,0BH
                CALL    multwrt
                JR      2EDFH

                EX      AF,AF'
                JR      NC,2EF6H
                POP     HL
                PUSH    HL
                CALL    2F21H
                EX      AF,AF'
                JR      2ED5H

                LD      DE,3989H
                CALL    endfil
                LD      A,(2F20H)
                LD      B,A
                LD      C,0
                LD      HL,4C57H
                ADD     HL,BC
                LD      DE,(6)
                CALL    delta16
                JP      NC,nomem
                LD      DE,(2F1EH)
                CALL    3094H
                CALL    2F7CH
                POP     HL
                JP      delfil

                dw      0

                db      0

                PUSH    HL
                LD      BC,0FFFFH
                LD      DE,4C57H
                INC     BC
                PUSH    BC
                PUSH    HL
                LD      HL,(6)
                LD      BC,0DH
                AND     A
                SBC     HL,BC
                CALL    delta16
                POP     HL
                JR      C,2F42H
                CALL    2F58H
                POP     BC
                JR      NC,2F28H
                PUSH    BC
                AND     A
                PUSH    AF
                LD      A,0FFH
                LD      (DE),A
                LD      HL,0FFF5H
                ADD     HL,DE
                LD      DE,4C57H
                LD      B,8
                LD      C,3
                CALL    0B0DH
                POP     AF
                POP     DE
                POP     HL
                RET

                CALL    2F72H
                JR      Z,2F70H
                CP      1AH
                JR      Z,2F70H
                LD      (DE),A
                INC     DE
                LD      B,0AH
                CALL    2F72H
                JR      Z,2F70H
                LD      (DE),A
                INC     DE
                DJNZ    2F65H
                AND     A
                RET

                SCF
                RET

                PUSH    HL
                PUSH    DE
                PUSH    BC
                CALL    getnxt
                POP     BC
                POP     DE
                POP     HL
                RET

                SUB     A
                LD      (3F5CH),A
                CALL    3056H
                JP      C,7B6H
                LD      D,8
                CALL    2806H
                CALL    26FEH
                BIT     2,(IX+0)
                JR      Z,2FC7H
                LD      A,(HL)
                AND     '~'
                CP      '~'
                JR      Z,2FC4H
                CALL    3031H
                CALL    352AH
                CALL    26FEH
                BIT     7,(HL)
                JR      Z,2FB0H
                LD      HL,302CH
                CALL    2B16H
                JR      2FB7H

                INC     HL
                CALL    304FH
                CALL    2B03H
                CALL    26FBH
                CALL    3056H
                JP      C,7B6H
                JR      NZ,3026H
                JR      2FCAH

                CALL    26EFH
                CALL    26FEH
                LD      A,(HL)
                INC     HL
                BIT     0,A
                JR      NZ,2FDAH
                CALL    304FH
                CALL    26FEH
                SUB     A
                EX      AF,AF'
                JR      3019H

                PUSH    AF
                CALL    26F5H
                SUB     A
                EX      AF,AF'
                EX      AF,AF'
                LD      B,A
                INC     A
                EX      AF,AF'
                LD      A,B
                ADD     A,A
                ADD     A,A
                ADD     A,B
                ADD     A,1DH
                LD      B,A
                LD      A,(3F4DH)
                SUB     B
                JR      NC,3007H

                 CALL   7B6H
                 LD     C,17H
                 BIT    2,(IX+0)
                 JR     NZ,2FFEH
                 LD     C,0FH
                 CALL   26FEH
                 DEC    C
                 JR     NZ,2FFEH
                 LD     A,1
                 EX     AF,AF'
                 POP    AF
                 BIT    0,A
                 JR     Z,3011H
                 CALL   26FEH
                 JR     3016H

                 LD     B,'#'
                 CALL   352AH
                 CALL   304FH
                 CALL   3056H
                 JP     C,7B6H
                 JR     NZ,3026H
                 LD     A,(HL)
                 PUSH   AF
                 INC    HL
                 JR     2FE0H

                 CALL   7B6H
                 JP     2F86H

                 db     'Macr','o'+128

                 LD     A,(HL)
                 AND    3FH
                 LD     (3F6EH),A
                 LD     B,'U'
                 RET    Z
                 LD     A,(HL)
                 AND    60H
                 LD     B,'M'
                 CP     60H
                 RET    Z
                 LD     B,'E'
                 CP     '@'
                 RET    Z
                 LD     B,'X'
                 CP     ' '
                 RET    Z
                 LD     B,' '
                 RET

                 LD     D,(HL)
                 INC    HL
                 LD     E,(HL)
                 EX     DE,HL
                 JP     27DDH

                 LD     A,(2F20H)
                 AND    A
                 JR     NZ,306EH
                 LD     HL,(4860H)
                 LD     A,(HL)
                 INC    A
                 SCF
                 RET    Z
                 EX     DE,HL
                 LD     HL,0BH
                 ADD    HL,DE
                 LD     (4860H),HL
                 EX     DE,HL
                 JR     3072H

                 CALL   30D6H
                 RET    C
                 LD     DE,3F5CH
                 LD     B,8
                 CALL   27ACH
                 LD     BC,8
                 JR     NZ,3089H
                 ADD    HL,BC
                 LD     A,(3F7EH)
                 XOR    (HL)
                 BIT    7,A
                 RET    Z
                 SBC    HL,BC
                 PUSH   HL
                 LDIR
                 LD     A,(HL)
                 LD     (3F7EH),A
                 POP    HL
                 SUB    A
                 INC    A
                 RET

                 LD     A,B
                 LD     BC,0
                 LD     HL,4C57H
                 EX     AF,AF'
                 PUSH   DE
                 PUSH   BC
                 PUSH   HL
                 LD     (HL),D
                 INC    HL
                 LD     (HL),E
                 LD     DE,0DH
                 ADD    HL,DE
                 EX     DE,HL
                 LD     HL,23H
                 ADD    HL,DE
                 LD     A,L
                 LD     (DE),A
                 INC    DE
                 LD     A,H
                 LD     (DE),A
                 INC    DE
                 LD     HL,398CH
                 LD     BC,21H
                 LDIR
                 POP    HL
                 POP    DE
                 PUSH   DE
                 PUSH   HL
                 LD     BC,0DH
                 ADD    HL,BC
                 CALL   389AH
                 POP    DE
                 PUSH   DE
                 CALL   310FH
                 POP    BC
                 POP    HL
                 POP    DE
                 ADD    HL,DE
                 PUSH   BC
                 EX     (SP),HL
                 POP    BC
                 INC    H
                 EX     AF,AF'
                 DEC    A
                 JR     NZ,309BH
                 RET

                 LD     H,8
                 LD     L,3
                 LD     (3F78H),HL
                 LD     DE,4C59H
                 LD     H,D
                 LD     L,E
                 LD     A,(2F20H)
                 LD     C,A
                 DEC    C
                 INC    D
                 PUSH   DE
                 LD     A,(DE)
                 INC    A
                 JR     Z,30F3H
                 CALL   0B96H
                 JR     C,30F3H
                 EX     DE,HL
                 POP    DE
                 DEC    C
                 JR     NZ,30E7H
                 LD     A,(HL)
                 INC    A
                 SCF
                 RET    Z
                 PUSH   HL
                 LD     BC,0BH
                 LD     DE,486AH
                 LDIR
                 POP    DE
                 DEC    DE
                 DEC    DE
                 CALL   310FH
                 LD     HL,486AH
                 AND    A
                 RET

                 PUSH   DE
                 LD     A,(DE)
                 LD     B,A
                 INC    DE
                 LD     A,(DE)
                 LD     C,A
                 INC    DE
                 OR     B
                 JR     NZ,311EH
                 LD     A,0FFH
                 LD     (DE),A
                 POP    DE
                 RET

                 PUSH   DE
                 DEC    BC
                 LD     A,C
                 DEC    DE
                 LD     (DE),A
                 LD     A,B
                 DEC    DE
                 LD     (DE),A
                 POP    DE
                 LD     HL,0BH
                 ADD    HL,DE
                 PUSH   DE
                 CALL   2F58H
                 POP    DE
                 JR     C,3119H
                 POP    DE
                 RET

                 LD     HL,497BH
                 LD     A,2
                 jp     329FH

                 LD     C,0
                 JR     3142H

                 LD     C,7
                 LD     HL,(4C53H)
                 LD     DE,(4C55H)
                 CALL   delta16
                 RET    NC
                 PUSH   HL
                 PUSH   HL
                 POP    IY
                 LD     A,(IY+2)
                 CP     'S'
                 JR     NZ,317CH
                 LD     A,(IY+0DH)
                 BIT    6,A
                 JR     Z,317CH
                 BIT    5,A
                 JR     NZ,317CH
                 AND    1FH
                 SUB    2
                 LD     B,A
                 LD     DE,3
                 ADD    HL,DE
                 LD     E,(IY+0BH)
                 LD     D,(IY+0CH)
                 LD     A,C

                 PUSH   BC
                 AND    A
                 CALL   NZ,3270H
                 CALL   329FH
                 POP    BC
                 POP    HL
                 LD     DE,0EH
                 ADD    HL,DE
                 JR     3145H

                 LD     BC,4606H
                 LD     HL,4624H
                 LD     A,(BC)
                 LD     E,A
                 INC    BC
                 LD     A,(BC)
                 LD     D,A
                 INC    BC
                 OR     E
                 JR     Z,319DH
                 PUSH   HL
                 PUSH   BC
                 LD     B,0
                 LD     A,5
                 CALL   329FH
                 POP    BC
                 POP    HL
                 LD     DE,8
                 ADD    HL,DE
                 LD     DE,469CH
                 CALL   delta16
                 JR     NZ,3189H
                 LD     DE,(4604H)
                 LD     A,D
                 OR     E
                 LD     B,0
                 LD     A,lf
                 CALL   NZ,32E7H
                 LD     DE,(4602H)
                 LD     B,1
                 LD     A,cr
                 JP     32E7H

                 LD     DE,0
                 LD     B,0
                 BIT    0,(IX+0)
                 RET    Z
                 LD     A,(3F6CH)
                 CP     2
                 RET    NZ
                 BIT    0,(IX+2)
                 JR     NZ,31F7H
                 PUSH   BC
                 PUSH   DE
                 CALL   3208H
                 POP    DE
                 POP    BC
                 LD     A,0EH
                 CALL   3270H
                 CALL   32E7H
                 CALL   338EH
                 LD     A,0FH
                 CALL   32E7H
                 CALL   338EH
                 LD     HL,3CBDH
                 JP     endfil

                 PUSH   DE
                 CALL   33FEH
                 POP    HL
                 LD     (3FD9H),HL
                 SUB    A
                 LD     (3FDBH),A
                 CALL   3403H
                 JR     31F1H

                 LD     HL,(4C53H)
                 LD     DE,(4C55H)
                 CALL   delta16
                 RET    NC

                 PUSH   HL
                 PUSH   HL
                 POP    IY
                 LD     A,(IY+2)
                 CP     'S'
                 JR     NZ,3246H
                 LD     A,(IY+0DH)
                 BIT    5,A
                 JR     Z,3246H
                 BIT    6,A
                 JR     NZ,3246H
                 AND    1FH
                 DEC    A
                 JR     Z,3246H
                 DEC    A
                 LD     B,A
                 LD     DE,3
                 ADD    HL,DE
                 LD     E,(IY+0BH)
                 LD     D,(IY+0CH)
                 OR     D
                 OR     E
                 JR     Z,3246H
                 CALL   3270H
                 LD     A,6
                 CALL   329FH
                 POP    HL
                 LD     DE,0EH
                 ADD    HL,DE
                 JR     320BH

                 PUSH   AF
                 LD     A,(3F7AH)
                 AND    A
                 JR     Z,326EH
                 PUSH   HL
                 PUSH   DE
                 PUSH   BC
                 LD     A,(3F6DH)
                 LD     B,A
                 CALL   3270H
                 LD     DE,(46A8H)
                 LD     A,0BH
                 CALL   32E7H
                 XOR    A
                 LD     (3F7AH),A
                 POP    BC
                 POP    DE
                 POP    HL
                 POP    AF
                 RET

                 PUSH   AF
                 PUSH   BC
                 PUSH   DE
                 PUSH   HL
                 LD     A,B
                 CP     3
                 JR     C,3299H
                 LD     A,(46A5H)
                 CP     B
                 JR     Z,3297H
                 LD     A,B
                 LD     (46A5H),A
                 SUB    3
                 LD     L,A
                 LD     H,0
                 LD     DE,8
                 CALL   mpy16b
                 LD     DE,4624H
                 ADD    HL,DE
                 LD     A,1
                 CALL   329FH
                 LD     A,3
                 POP    HL
                 POP    DE
                 POP    BC
                 LD     B,A
                 POP    AF
                 RET

                 PUSH   AF
                 LD     A,(HL)
                 CP     ' '
                 JR     Z,32BCH
                 PUSH   HL
                 PUSH   DE
                 LD     A,(oneo9)
                 LD     E,A
                 LD     D,0
                 LD     A,(HL)
                 CP     ' '
                 JR     Z,32B7H
                 INC    HL
                 INC    D
                 DEC    E
                 JR     NZ,32ADH
                 LD     C,D
                 POP    DE
                 POP    HL
                 JR     32C1H

                 LD     HL,32C5H
                 LD     C,1
                 POP    AF
                 jp     32E7H

                 AND    B
                 BIT    0,(IX+2)
                 JP     NZ,33ADH
                 CALL   324DH
                 AND    A
                 CALL   3354H
                 PUSH   BC
                 LD     B,8
                 CALL   334DH
                 POP    BC
                 RET

                 LD     A,B
                 AND    A
                 RET    Z
                 LD     A,(HL)
                 CALL   32C6H
                 INC    HL
                 DEC    B
                 JR     32DCH

                 BIT    0,(IX+2)
                 RET    NZ
                 PUSH   AF
                 XOR    A
                 CALL   331CH
                 POP    AF
                 PUSH   AF
                 PUSH   BC
                 LD     B,4
                 CALL   333FH
                 POP    BC
                 POP    AF
                 CP     0FH
                 RET    Z
                 CP     5
                 JR     C,330AH
                 PUSH   AF
                 CALL   3332H
                 POP    AF
                 CP     9
                 RET    NC
                 LD     A,C
                 LD     B,3
                 CALL   333FH
                 LD     A,(HL)
                 CALL   27CCH
                 CALL   32D4H
                 INC    HL
                 DEC    C
                 JR     NZ,3310H
                 RET

                 SCF
                 CALL   3354H
                 PUSH   BC
                 LD     B,2
                 CALL   333FH
                 POP    BC
                 RET

                 CALL   324DH
                 CALL   3270H
                 SCF
                 CALL   3354H
                 LD     A,B
                 CALL   3320H
                 LD     A,E
                 CALL   32D4H
                 LD     A,D
                 CALL   32D4H
                 RET

                 PUSH   BC
                 PUSH   AF
                 LD     A,9
                 SUB    B
                 LD     C,A
                 POP    AF
                 DEC    C
                 JR     Z,334CH
                 ADD    A,A
                 JR     3346H

                 POP    BC
                 ADD    A,A
                 CALL   3354H
                 DJNZ   334DH
                 RET

                 PUSH   AF
                 LD     A,(3F6CH)
                 CP     2
                 JR     NZ,3375H
                 BIT    0,(IX+0)
                 JR     Z,3375H
                 POP    AF
                 PUSH   AF
                 LD     A,(33A0H)
                 RLA
                 LD     (33A0H),A
                 LD     A,(33A1H)
                 DEC    A
                 LD     (33A1H),A
                 CALL   Z,3377H
                 POP    AF
                 RET

                 PUSH   HL
                 PUSH   DE
                 PUSH   BC
                 PUSH   AF
                 LD     A,(33A0H)
                 LD     HL,3CBDH
                 CALL   wrtnxt
                 LD     A,8
                 LD     (33A1H),A
                 POP    AF
                 POP    BC
                 POP    DE
                 POP    HL
                 RET

                 LD     A,(33A1H)
                 CP     8
                 RET    Z
                 LD     B,A
                 LD     A,(33A0H)
                 ADD    A,A
                 DJNZ   3398H
                 LD     (33A0H),A
                 JR     3377H

                 db     0
                 db     0

                 BIT    0,(IX+2)
                 RET    Z
                 CALL   28EBH
                 SUB    A
                 INC    A
                 RET

                 PUSH   AF
                 LD     A,(3F6CH)
                 CP     2
                 JR     Z,33B7H
                 POP    AF
                 RET

                 POP    AF
                 PUSH   HL
                 PUSH   DE
                 PUSH   BC
                 PUSH   AF
                 LD     A,(3F7AH)
                 AND    A
                 JR     Z,33D2H
                 CALL   33FEH
                 SUB    A
                 LD     (3F7AH),A
                 LD     (3FDBH),A
                 LD     HL,(46A8H)
                 LD     (3FD9H),HL
                 LD     HL,3FDCH
                 LD     A,(3FDBH)
                 CALL   hlplsa
                 POP    AF
                 LD     (HL),A
                 LD     A,(3FDBH)
                 INC    A
                 LD     (3FDBH),A
                 CP     1CH
                 JR     C,33FAH
                 CALL   33FEH
                 LD     HL,(3FD9H)
                 LD     A,1CH
                 CALL   hlplsa
                 LD     (3FD9H),HL
                 SUB    A
                 LD     (3FDBH),A
                 POP    BC
                 POP    DE
                 POP    HL
                 RET

                 LD     A,(3FDBH)
                 AND    A
                 RET    z
                 BIT    0,(IX+0)
                 RET    Z
                 LD     A,':'
                 CALL   3464H
                 LD     A,(3FDBH)
                 LD     B,A
                 LD     E,0
                 CALL   3443H
                 LD     HL,(3FD9H)
                 LD     A,H
                 CALL   3443H
                 LD     A,L
                 CALL   3443H
                 SUB    A
                 CALL   3443H
                 LD     HL,3FDCH
                 INC    B
                 DEC    B
                 JR     Z,3433H
                 LD     A,(HL)
                 CALL   3443H
                 INC    HL
                 JR     3429H

                 LD     A,E
                 NEG
                 CALL   3443H
                 LD     A,cr
                 CALL   3464H
                 LD     A,lf
                 JP     3464H

                 PUSH   AF
                 ADD    A,E
                 LD     E,A
                 POP    AF
                 PUSH   HL
                 PUSH   DE
                 PUSH   BC
                 PUSH   AF
                 RRA
                 RRA
                 RRA
                 RRA
                 CALL   345AH
                 POP    AF
                 CALL   345AH
                 POP    BC
                 POP    DE
                 POP    HL
                 RET

                 AND    0FH
                 CP     lf
                 JR     C,3462H
                 ADD    A,7
                 ADD    A,'0'
                 LD     HL,3CBDH
                 JP     wrtnxt

przstr:          LD     A,(DE)
                 AND    A
                 RET    Z
                 PUSH   DE
                 LD     E,A      ; (E) = char.
                 LD     C,2      ;write console
                 CALL   bdos
                 POP    DE
                 INC    DE
                 JR     przstr

                 CALL   1A30H
                 JR     NZ,3491H
                 CALL   34BDH
                 JR     NZ,3491H
                 LD     HL,3F55H
                 LD     A,(HL)
                 AND    A
                 RET    Z
                 DEC    (HL)
                 LD     HL,349DH
                 CALL   351CH
                 JR     3478H

                 LD     HL,(4796H)
                 CALL   2708H
                 LD     (4796H),HL
                 SUB    A
                 INC    A
                 RET

                 db     beep,beep,beep
                 db     '(***** end of'
                 db     ' include *****)'
                 db     cr

                 LD     HL,4983H
                 LD     DE,4986H
                 LD     BC,3
                 LDIR
                 LD     HL,3C19H
                 LD     A,(3F55H)
                 BIT    7,(IX+1)
                 CALL   Z,350FH

                 LD     DE,4798H
                 LD     B,'d'
                 PUSH   DE
                 PUSH   BC
                 CALL   getnxt
                 POP    BC
                 POP    DE
                 RET    Z
                 AND    7FH
                 CP     1AH
                 RET    Z
                 LD     (DE),A
                 CP     cr
                 JR     Z,34FFH
                 CP     tab
                 JR     Z,34F8H
                 CP     0EH
                 JR     Z,34F8H
                 CP     ' '
                 JR     C,34DAH
                 INC    DE
                 DJNZ   34DAH
                 INC    B
                 DEC    DE
                 JR     34DAH

                 INC    A
                 RET

                 PUSH   HL
                 INC    HL
                 INC    HL       ;HL -> filename
                 INC    HL
                 EX     DE,HL
                 LD     C,86H    ;Cnvrt. fn to fcb
                 CALL   bdos
                 POP    HL       ;DE -> FCB
                 JP     opnfil

                 LD     HL,fl&cl
                 AND    A
                 RET    Z
                 LD     DE,0A4H
                 ADD    HL,DE
                 DEC    A
                 JR     NZ,3517H
                 RET

                 LD     B,(HL)
                 LD     A,B
                 OR     A
                 RET    Z
                 CALL   352AH
                 LD     A,(HL)
                 CP     cr
                 RET    Z
                 INC    HL
                 JR     351CH

                 RES    7,B
                 CALL   ckbits
                 RET    NZ
                 PUSH   HL
                 PUSH   DE
                 PUSH   BC
                 LD     A,(3F57H)
                 CP     (IX-1)
                 CALL   NC,35B4H
                 LD     A,B
                 CP     cr
                 JR     NZ,354DH
                 CALL   prbreg
                 SUB    A
                 LD     (3F4EH),A
                 INC    (IX+6)
                 JR     3582H

                 LD     A,(3F4EH)
                 CP     (IX-4)
                 JR     C,356BH

                 BIT    6, (IX+2)
                 JR     NZ,3582H
                 CALL   7B6H
                 LD     B,9
                 CALL   352AH
                 CALL   352AH
                 CALL   352AH
                 POP    BC
                 PUSH   BC
                 LD     HL,3F4EH
                 INC    (HL)
                 LD     A,B
                 CP     9
                 JR     NZ,357FH
                 LD     A,(HL)
                 ADD    A,7
                 AND    0F8H
                 LD     (HL),A
                 CP     (IX-4)
                 JR     NC,3555H
                 CALL   prbreg
                 POP    BC
                 POP    DE
                 POP    HL
                 RET

ckbits:          LD     A,(3F83H)
                 AND    A
                 JR     NZ,cleara
                 BIT    4,(IX+2)
                 JR     NZ,cleara
                 BIT    5,(IX+2)
                 RET    NZ
                 BIT    0,(IX+3)
                 RET    NZ
                 BIT    6,(IX+1)
                 JR     NZ,cleara
                 BIT    1,(IX+1)
                 JR     NZ,cbits1
                 BIT    2,(IX+3)
                 RET    Z
cbits1:          LD     A,(3F7FH)
                 AND    A
                 RET

cleara:          SUB    A
                 RET

                 PUSH   BC
                 SET    1,(IX+2)
                 LD     A,(3F4FH)
                 AND    A
                 JR     NZ,35C6H
                 LD     B,0CH
                 CALL   prbreg
                 JR     35D7H

                 INC    (IX+6)
                 JR     NZ,35CEH
                 ADD    A,(IX-1)
                 LD     C,A
                 LD     B,cr
                 CALL   prbreg
                 DEC    C
                 JR     NZ,35CFH
                 SUB    A
                 LD     (3F57H),A
                 LD     (3F4EH),A
                 LD     HL,banner
                 CALL   351CH
                 LD     A,(3F4DH)
                 SUB    4BH
                 JR     NC,35ECH
                 SUB    A
                 SRA    A
                 LD     C,A
                 PUSH   BC
                 CALL   3627H
                 LD     HL,365BH
                 CALL   351CH

                 POP    BC
                 CALL   3627H
                 LD     HL,3672H
                 CALL   351CH
                 LD     HL,(4989H)
                 CALL   2708H
                 LD     (4989H),HL
                 CALL   27DDH
                 CALL   7B6H
                 LD     HL,46CEH
                 CALL   351CH
                 LD     HL,4732H
                 CALL   351CH
                 CALL   7B6H
                 RES    1,(IX+2)
                 POP    BC
                 RET

                 INC    C
                 DEC    C
                 RET    Z
                 CALL   26FEH
                 JR     3628H

banner:          db     'CROMEMCO Z80 Macro'
                 db     ' Assembler version'
                 db     ' 03.07 ',0

                 db     'MON XX, 19XX  XX:XX:XX'
                 db     0

                 db     ' Page ',0

prbreg:          LD     A,(3F84H)
                 AND    A
                 JR     NZ,368BH
                 LD     A,(3F6CH)
                 CP     2
                 RET    NZ
                 LD     A,(3F83H)
                 AND    A
                 JR     Z,3696H
                 BIT    1,(IX+2)
                 JR     NZ,3696H
                 CALL   pchar
                 JR     369DH

                 BIT    6,(IX+0)
                 CALL   NZ,pchar
                 PUSH   BC
                 BIT    7,(IX+0)
                 CALL   NZ,prtlst
                 LD     A,B
                 LD     HL,3D61H
                 BIT    1,(IX+0)
                 CALL   NZ,wrtnxt
                 POP    BC
                 LD     A,B
                 LD     B,lf
                 CP     cr
                 JR     Z,prbreg
                 RET

pcrlf:           LD     B,cr
                 CALL   pchar
                 LD     B,lf
pchar:           PUSH   BC
                 LD     E,B      ; (E) = char.
                 LD     C,2      ;write console
                 CALL   bdos
                 POP    BC
                 RET

prtlst:          LD     A,B
                 CP     tab
                 JR     Z,prlst5
                 CP     cr
                 JR     Z,prlst4
                 CP     ' '
                 JR     C,prlst2
                 LD     HL,lincnt
                 INC    (HL)
prlst2:          PUSH   HL
                 PUSH   DE
                 PUSH   BC
                 LD     E,B      ; (E) = char.
                 LD     C,5      ;write to list dev.
                 CALL   bdos
                 POP    BC
                 POP    DE
                 POP    HL
                 RET

prlst4:          SUB    A
                 LD     (lincnt),A
                 JR     prlst2

prlst5:          LD     A,(lincnt)
                 LD     B,A
                 AND    0F8H
                 ADD    A,8
                 SUB    B
                 LD     C,A
                 LD     B,' '
prlst6:          CALL   prtlst
                 DEC    C
                 JR     NZ,prlst6
                 RET

lincnt:          db     0

                 LD     HL,3D61H
                 JP     endfil

                 LD     A,(3F6CH)
                 DEC    A
                 RET    NZ
                 LD     A,(DE)
                 AND    A
                 RET    M
                 CP     ' '
                 RET    Z
                 PUSH   BC
                 PUSH   DE
                 PUSH   BC
                 LD     B,8
                 CALL   multwrt
                 POP    AF
                 CALL   wrtnxt
                 LD     A,(4797H)
                 CALL   wrtnxt
                 LD     A,(4796H)
                 CALL   wrtnxt
                 POP    DE
                 POP    BC
                 RET

setfn:           PUSH   HL
                 PUSH   BC
                 LD     BC,10H
                 LDIR
                 LD     HL,0FFF9H
                 ADD    HL,DE
                 EX     DE,HL
                 POP    HL
                 LD     BC,3
                 LDIR
                 POP    HL
                 RET

opnsrc:          LD     HL,fl&cl
                 CALL   opnfil
                 RET    NZ
                 LD     DE,nosrc
                 JP     prquit

nosrc:           db     'Source file not'
                 db     ' found',cr,lf,0

opnfil:          PUSH   HL
                 CALL   setbuf
                 LD     (IY+0FH),0
                 LD     (IY+0),80H
                 LD     (IY+23H),0
                 POP    DE
                 INC    DE
                 INC    DE
                 INC    DE        ; DE -> FCB
                 LD     C,0FH     ;open file
                 CALL   bdos
                 CP     0FFH      ;not found?
                 RET

opnufil:         PUSH   HL
                 CALL   setbuf
                 LD     (IY+0),0
                 LD     (IY+0FH),0
                 LD     (IY+23H),0
                 POP    DE
                 INC    DE
                 INC    DE
                 INC    DE        ; DE -> FCB
                 LD     C,13H     ;delete file
                 CALL   bdos
                 LD     C,16H     ;Create file
                 CALL   bdos
                 CP     0FFH
                 LD     C,0FH     ;open file
                 JP     NZ,bdos
                 LD     DE,nodrsp
                 JP     prquit

nodrsp:          db     'No directory space'
                 db     cr,lf,0

getnxt:          PUSH   HL
                 LD     A,(HL)
                 CP     80H
                 JR     NZ,gtnxtl
                 PUSH   HL
                 CALL   setbuf
                 POP    DE
                 INC    DE
                 INC    DE
                 INC    DE        ; DE -> FCB
                 LD     C,14H     ;read next rec.
                 CALL   bdos
                 DEC    A
                 POP    HL
                 RET    Z
                 PUSH   HL
                 LD     (HL),0
gtnxtl:          LD     A,(HL)
                 INC    (HL)
                 INC    HL
                 LD     E,(HL)
                 INC    HL
                 LD     D,(HL)
                 EX     DE,HL
                 CALL   hlplsa
                 EX     DE,HL
                 LD     HL,4985H
                 INC    (HL)
                 JR     NZ,gtnxt2
                 DEC    HL
                 INC    (HL)
                 JR     NZ,gtnxt2
                 DEC    HL
                 INC    (HL)
                 SUB    A
                 INC    A
gtnxt2:          LD     A,(DE)
                 POP    HL
                 RET

multwrt:         LD     A,(DE)
                 PUSH   DE
                 PUSH   BC
                 CALL   wrtnxt
                 POP    BC
                 POP    DE
                 INC    DE
                 DJNZ   multwrt
                 RET

wrtnxt:          PUSH   HL
                 PUSH   AF
                 LD     A,(HL)
                 INC    HL
                 LD     E,(HL)
                 INC    HL
                 LD     D,(HL)
                 EX     DE,HL
                 CALL   hlplsa
                 POP    AF
                 LD     (HL),A
                 POP    HL
                 INC    (HL)
                 LD     A,(HL)
                 CP     80H
                 RET    NZ
                 LD     (HL),0
                 PUSH   HL
                 PUSH   HL
                 CALL   setbuf
                 POP    DE
                 INC    DE
                 INC    DE
                 INC    DE       ; DE -> FCB
                 LD     C,15H    ;write nxt. rec.
                 CALL   bdos
                 POP    HL
                 AND    A
                 RET    Z
                 LD     DE,4
                 ADD    HL,DE
                 LD     DE,wrmgfn
                 LD     BC,8
                 LDIR
                 INC    DE
                 LD     BC,3
                 LDIR
                 LD     DE,wermsg
                 JP     prquit

wermsg:          db     'Write error, file - '
wrmgfn:          db     'FILENAME.EXT',cr,lf,0

endfil:          LD     A,1AH   ;logical EOF
                 CALL   wrtnxt
                 LD     A,(HL)
                 AND    A
                 JR     NZ,endfil
                 PUSH   HL
                 CALL   setbuf
                 POP    DE
                 INC    DE
                 INC    DE
                 INC    DE      ; DE -> FCB
                 LD     C,10H   ;close file
                 JP     bdos

delfil:          PUSH   HL
                 CALL   setbuf
                 POP    DE
                 INC    DE
                 INC    DE
                 INC    DE      ; DE -> FCB
                 LD     C,13H   ;delete file
                 jp     bdos

setbuf:          PUSH   HL
                 POP    IY
                 LD     DE,24H
                 ADD    HL,DE
                 EX     DE,HL   ; DE -> buffer
                 LD     (IY+1),E
                 LD     (IY+2),D
                 LD     C,1AH   ;set disk buffer
                 JP     bdos

                 PUSH   HL
                 SUB    A
                 LD     HL,0
                 LD     B,0BH
lp38al:          ADD    HL,DE
                 ADC    A,0
                 DJNZ   lp38al
                 LD     C,A
                 EX     DE,HL
                 POP    HL
                 PUSH   HL
                 POP    IY
                 LD     (IY+0FH),0FFH
                 PUSH   BC
                 PUSH   DE
                 CALL   setbuf
                 POP    DE
                 POP    BC
                 LD     A,E
                 AND    7FH
                 LD     (IY+0),A
                 LD     A,E
                 RLA
                 LD     A,D
                 RLA
                 AND    7FH
                 PUSH   AF
                 LD     A,C
                 RL     D
                 RLA
                 RL     D
                 RLA
                 CP     (IY+0FH)
                 LD     (IY+0FH),A
                 PUSH   IY
                 POP    DE
                 INC    DE
                 INC    DE
                 INC    DE       ; DE -> FCB
                 LD     C,0FH    ;open file
                 CALL   NZ,bdos
                 POP    AF
                 LD     (IY+23H),A
                 LD     C,14H    ;read nxt rec
                 JP     bdos

fl&cl:           LD     A,(DE)
                 CALL   wrtnxt
                 LD     A,(HL)
                 AND    A
                 JR     NZ,fl&cl-1
                 PUSH   HL
                 CALL   setbuf
                 POP    DE
                 INC    DE
                 INC    DE
                 INC    DE       ; DE ->FCB
                 LD     C,10H    ;close file
                 jp     bdos

                 PUSH   HL
                 CALL   setbuf
                 POP    DE
                 INC    DE

                 END

