; ; Cromemco CDOS Z80 Assembler version 2.15 ; cr equ 0dh lf equ 0ah tab equ 9 squote equ 27h bdos equ 5 cpm equ 0 deffcb equ 5ch dfcbfn equ deffcb+1 dfcbft equ deffcb+9 org 100h start: LD SP,3DCDH LD IX,35F4H LD DE,asmbnr CALL prtmsg CALL crlf LD HL,3DCFH LD (3DCDH),HL LD HL,(6) LD DE,40CFH CALL subdehl JP C,nomem SUB A LD (IX+0),A LD (IX+1),A LD (IX+2),A LD (35EEH),A LD A,'<' LD (35EFH),A LD A,'O' LD (35ECH),A LD HL,81H CALL fnonsp ;locate next non-space clnlp: CALL fnxtsp ;locate next space CALL fnonsp AND A JR Z,dofile PUSH HL CALL doopts POP HL JR clnlp dofile: LD DE,dfcbfn PUSH DE PUSH DE PUSH DE PUSH DE PUSH DE LD HL,fcbsrc CALL cpflnm POP DE LD HL,fcbprn CALL cpflnm POP DE LD HL,fcbrel CALL cpflnm POP DE LD HL,fcbtmp CALL cpflnm POP DE LD HL,fcb$$0 CALL cpflnm LD DE,3D59H POP HL LD BC,6 LDIR ; (dfcbft....+2) are the file extensions LD A,(dfcbft) CALL chkchar LD (fcbsrc+3),A CALL opnsrc LD A,(dfcbft+1) CALL toupr CP 'Z' JR Z,norel SET 0,(IX+0) CALL chkchar LD (fcbrel+3),A LD A,8 LD (dt2a2c),A LD HL,fcbrel CALL fildco norel: LD A,(dfcbft+2) CALL toupr CP 'Z' JR Z,noprn CP 'X' JR Z,seeX CP 'Y' JR NZ,doprn SET 7,(IX+0) JR noprn seeX: SET 6,(IX+0) JR noprn doprn: CALL chkchar LD (fcbprn+3),A LD HL,fcbprn CALL fildco SET 1,(IX+0) noprn: BIT 2,(IX+0) LD HL,fcbtmp CALL NZ,fildco BIT 3,(IX+1) LD HL,fcb$$0 CALL NZ,fildco JP mainlp chkchar: SUB 20H RET Z SUB 20H JR C,invchr CP 5 RET C invchr: LD DE,dsermsg JP pr&lv dsermsg: db 'selected disk' db ' error',cr,lf,0 doopts: LD DE,optab dopt1: PUSH HL LD A,(DE) AND A JP Z,invop laba: LD A,(DE) AND A JP M,labb CALL cmpstr CP (HL) JR NZ,labc INC DE INC HL JR laba labb: CALL cmpstr JR NZ,labd POP BC INC HL LD B,H LD C,L INC DE LD A,(DE) LD L,A INC DE LD A,(DE) LD H,A JP (HL) labc: LD A,(DE) AND A JP M,labd INC DE JR labc labd: INC DE INC DE INC DE POP HL JR dopt1 optab: db 'RANG','E'+128 dw rngcod db 'PARIT','Y'+128 dw parcod db 'XRE','F'+128 dw xrfcod db 'SYM','B'+128 dw symcod db 'PAGE','='+128 dw pgecod db 'TOP','='+128 dw topcod db 'WIDTH','='+128 dw wthcod db 'MACRO','='+128 dw macod db 'NOCON','D'+128 dw ncncod db 'NOGE','N'+128 dw ngncod db 'CON','D'+128 dw cndcod db 'GE','N'+128 dw gencod db 'OPCOD','E'+128 dw opdcod db 'DEBU','G'+128 dw dbgcod db 'HEX','='+128 dw hxecod db 'HE','X'+128 dw hxcod db 0 invop: LD DE,invopmsg JP pr&lv invopmsg: db 'invalid option',cr,lf,0 rngcod: SET 4,(IX+0) RET parcod: SET 5,(IX+0) RET xrfcod: SET 2,(IX+0) RET symcod: SET 3,(IX+0) RET pgecod: LD D,0AH CALL getnum LD (35EFH),A CP 0FFH JP Z,invop RET topcod: LD D,0 CALL getnum LD (35EEH),A RET wthcod: LD D,27H CALL getnum LD (35ECH),A RET macod: SET 0,(IX+1) LD H,B ;HL -> filename LD L,C LD DE,fcbext+3 ;DE -> FCB LD C,86H ;Convert filename to CALL bdos ; file control block LD HL,fcbext CALL filopn JR Z,nomaclb JP macros nomaclb: LD DE,mlnfmsg jp pr&lv mlnfmsg: db 'MACRO library not' db ' found',cr,lf,0 ncncod: SET 2,(IX+1) RES 5,(IX+1) RET ngncod: SET 1,(IX+1) RES 6,(IX+1) RET dbgcod: SET 4,(IX+1) RET opdcod: SET 3,(IX+1) RET cndcod: SET 5,(IX+1) RES 2,(IX+1) RET gencod: SET 6,(IX+1) RES 1,(IX+1) RET hxcod: LD HL,0 JR dohex hxecod: LD H,B LD L,C hxell: LD A,(HL) AND A JR Z,sethex CP ' ' JR Z,sethex INC HL JR hxell sethex: CALL cnvhxv JP C,invop EX DE,HL dohex: LD (3668H),HL SET 0,(IX+2) LD HL,hxftyp LD DE,relftyp LD BC,3 LDIR SUB A LD (flaghx),A RET hxftyp: db 'HEX' getnum: PUSH DE LD H,B LD L,C CALL fnxtsp CALL getval JP C,invop LD A,D AND A JP NZ,invop LD A,E POP DE CP D JP C,invop RET fnxtsp: LD A,(HL) CP ' ' RET Z AND A RET Z INC HL JR fnxtsp mainlp: LD (IX+14H),1 LD DE,(3DCDH) LD BC,3 LD HL,six9oh LDIR LD (3D5FH),DE LD HL,(6) DEC HL LD (HL),0 LD (366CH),HL CALL init41 LD DE,3A93H LD BC,7CH SUB A CALL fill CALL 524H LD HL,3608H INC (HL) CALL opnsrc CALL 27CCH CALL 27D4H CALL 27F6H CALL 2822H CALL init41 CALL 524H CALL crlf CALL prcr LD A,(360FH) AND A CALL Z,2865H CALL 24D7H CALL 235BH BIT 3,(IX+0) CALL NZ,825H BIT 2,(IX+0) LD DE,492H LD HL,fcbtmp CALL NZ,25A0H BIT 3,(IX+1) LD DE,4AAH LD HL,fcb$$0 CALL NZ,25A0H LD A,(35F4H) AND 42H CP 2 CALL Z,flushp CALL crlf LD DE,eofasm pr&lv: CALL prtmsg JP cpm six9oh: db 6,9,0 asmbnr: db 'CROMEMCO CDOS Z80' db ' ASSEMBLER version' db ' 02.15',cr,lf,0 eofasm: db 'end of assembly',cr,lf,0 db 'CROSS REFERENCE' db ' LISTING',cr db 'OPCODE CROSS REFERENCE' db ' LISTING',cr init41: LD A,0FFH LD (35F9H),A LD HL,0 LD (366AH),HL LD (3B8EH),HL SUB A LD (395EH),A LD (3615H),A LD (360FH),A LD (3611H),A LD (3614H),A LD (35F8H),A LD (IX+3),A LD (3616H),A LD DE,3B0FH LD BC,2EH CALL fill LD HL,1 LD (3D67H),HL LD A,0FFH LD (3B16H),A LD A,0DH LD (3B3DH),A LD A,1 LD (360BH),A LD A,1 LD HL,0 BIT 0,(IX+2) JR z,it411 SUB A LD HL,(3668H) it411: LD (3609H),A LD (3B17H),HL RET CALL 2B2FH JP Z,prcr LD HL,0 LD (3612H),HL XOR A LD (360AH),A LD (360CH),A LD (IX+1CH),20H CALL 684H JP Z,5C9H CALL 165FH JR NZ,524H CALL 644H JP Z,5D1H LD DE,35FCH LD HL,fcb$$0 BIT 3,(IX+1) CALL NZ,5F1H CALL 1234H JR C,524H BIT 0,(IX+1) JR Z,569H CALL 15BEH JR Z,559H LD HL,90BH CALL 5E9H JR Z,5DAH LD HL,92AH CALL 5E9H JR NZ,57EH CALL 5DEH JR 5DAH LD HL,(3B17H) LD A,(3609H) ADD A,2 CALL 6E0H LD HL,8D9H LD E,(HL) INC HL LD D,(HL) INC HL LD A,E OR D JR Z,5A5H PUSH HL EX DE,HL LD DE,35FCH LD B,5 CALL 605H JR Z,5B9H POP HL INC HL INC HL JR 58CH LD HL,0 LD (3617H),HL LD (3618H),HL LD A,7 CALL 1D9BH CALL 1FE4H JP 524H POP BC EX DE,HL LD HL,(35FAH) CALL 5FDH LD A,(360FH) AND A RET NZ JP 524H CALL 165FH JP NZ,524H JR 5D4H CALL prcr CALL 206AH JP 524H LD B,H LD C,L JR 5BBH LD A,(3602H) CP 20H RET Z LD A,13H JP 1D9BH LD DE,35FCH LD B,6 JP 605H LD A,(3608H) DEC A RET NZ LD B,'R' JP wrseq LD B,D LD C,E PUSH HL LD A,(BC) LD L,A INC BC LD A,(BC) LD H,A EX (SP),HL RET PUSH BC CALL 1EAEH LD A,C POP BC RET NZ INC DE DEC B RET Z DEC A JR NZ,60CH LD A,(DE) CP ' ' RET NZ INC DE DJNZ 612H RET prcr: LD B,cr JP outit LD A,(35EEH) AND A JR NZ,62AH LD B,0CH JP outit CALL prcr LD A,(35EFH) CP (IX+5) JR NZ,62AH RET LD A,0DH LD BC,50H CP (HL) LDI RET Z JP PE,63BH LD (DE),A RET LD HL,3B95H LD DE,67CH LD B,8 CALL 1ECCH RET NZ LD BC,8 ADD HL,BC CALL fnonsp LD A,(35F8H) CP 4 JR Z,675H INC A LD (35F8H),A PUSH HL CALL 2BD8H POP DE CALL 2BCAH JR NZ,673H DEC (IX+4) LD A,0DH JR 677H SUB A RET LD A,6 CALL 1D9BH JR 673H db '*INCLUDE' LD DE,3602H LD BC,6 CALL blkfil LD HL,3B95H LD A,(HL) CP ';' JR Z,6CCH LD A,(HL) CP ' ' JR Z,69EH CP tab JR NZ,6AAH CALL fnonsp PUSH HL CALL 1FA6H POP HL CP ':' JR NZ,6BAH LD B,6 LD DE,3602H CALL 1F8DH CALL 1FA6H CP ':' JR NZ,6BAH INC HL CALL fnonsp LD B,6 LD DE,35FCH CALL 1F8DH CALL fnonsp LD (35FAH),HL RET LD DE,3602H LD BC,6 CALL blkfil LD DE,35FCH LD BC,6 CALL blkfil SUB A RET PUSH AF LD DE,3602H LD A,(DE) CP ' ' POP BC RET Z PUSH BC PUSH DE PUSH HL SUB A CALL 7DAH POP BC POP DE JR NC,723H POP AF PUSH AF BIT 7,A JR NZ,704H LD A,(3608H) DEC A JR Z,725H POP HL DEC A RET NZ PUSH HL POP HL PUSH BC CALL 734H POP HL PUSH AF AND 60H CP 60H JR Z,71DH POP AF BIT 7,A RET NZ AND A SBC HL,BC RET Z LD A,8 JR 720H POP AF LD A,2 JP 1D9BH POP AF RET PUSH BC LD B,44H BIT 2,(IX+0) LD HL,fcbtmp CALL NZ,wrseq POP BC POP AF PUSH AF PUSH BC LD HL,(3DCDH) CALL 1EAEH POP BC JR Z,753H POP AF PUSH AF PUSH BC LD (3C46H),BC LD (3C48H),A LD BC,3 CALL 77FH DEC HL POP BC POP AF RET POP AF PUSH AF AND 1FH JR Z,775H POP AF LD (HL),C INC HL LD (HL),B INC HL LD D,A BIT 7,A JR Z,768H LD A,(HL) BIT 7,A JR NZ,770H LD A,(HL) AND 1FH LD A,(HL) JR Z,770H OR 60H AND 0E0H OR D LD (HL),A RET POP AF LD C,(HL) INC HL LD B,(HL) INC HL AND 40H OR (HL) LD (HL),A RET PUSH DE PUSH HL PUSH BC LD HL,(366CH) LD DE,(3D5FH) AND A SBC HL,DE LD BC,0AH SBC HL,BC JR C,nomem LD HL,6 ADD HL,DE POP BC ADD HL,BC LD (3D5FH),HL EX (SP),HL PUSH DE EX DE,HL AND A SBC HL,DE PUSH BC LD B,H LD C,L POP HL POP DE EX (SP),HL DEC DE DEC HL EX DE,HL LDDR INC HL EX DE,HL POP BC POP HL PUSH BC LD B,6 LD A,(HL) CALL toupr LD (DE),A INC HL INC DE DJNZ 7B4H POP BC LD HL,3C46H LDIR RET nomem: LD DE,nomemsg JP prt&ext nomemsg: db 'out of memory',cr,lf,0 EX AF,AF' LD A,(DE) CALL 1CC0H JR C,80FH PUSH DE LD B,5 INC DE LD A,(DE) CALL 1CC0H JR NC,7F4H CALL cknum JR NC,7F4H CP ' ' JR NZ,80EH DJNZ 7E4H POP HL CALL 1C13H JR Z,80FH CALL 1BFCH JR Z,80FH EX DE,HL LD HL,818H LD B,6 CALL 605H JR Z,80FH SCF RET POP DE EX AF,AF' CALL Z,1D86H CALL NZ,1D92H AND A RET db 2,2 db 'I ' db 'R ' db 'SP' db 'IX' db 'IY' db 0 LD HL,870H CALL 0DEEH LD HL,(3DCDH) CALL 87DH LD D,(HL) INC HL LD E,(HL) INC HL LD A,(35ECH) ADD A,2 RRA RRA RRA RRA AND 0FH LD B,A LD A,(HL) AND A jp Z,prcr PUSH BC PUSH DE PUSH HL CALL prtstg EX (SP),HL ADD HL,DE EX (SP),HL CALL 1F29H LD A,(HL) AND '?' LD (360AH),A CALL 2261H POP HL POP DE POP BC DJNZ 869H PUSH HL PUSH DE CALL prcr POP DE POP HL JR 835H PUSH BC CALL 1DC8H POP BC JR 841H db 'SYMBOL TABLE',cr PUSH HL LD B,0 INC HL LD C,(HL) INC HL PUSH HL LD DE,0 LD A,(HL) AND A JR Z,88FH INC DE ADD HL,BC JR 887H POP HL LD A,D OR E PUSH DE CALL NZ,899H POP DE POP HL RET DEC DE LD A,D OR E RET Z PUSH HL PUSH DE EX AF,AF' PUSH DE LD D,H LD E,L ADD HL,BC PUSH BC LD A,(DE) CP (HL) JP C,8D2H JP NZ,8C4H INC DE INC HL DEC C JP NZ,8A5H POP BC EX (SP),HL DEC HL LD A,H OR L EX (SP),HL JP NZ,8A4H POP HL POP DE POP HL EX AF,AF' JP C,899H RET SCF EX AF,AF' LD A,(DE) LDI DEC HL LD (HL),A INC HL JP PE,8C6H JP 8B3H ADD HL,BC EX DE,HL ADD HL,BC EX DE,HL JP 8B3H dw 99dh dw 0b38h dw 9c8h dw 0b38h dw 9dah dw 0b3fh dw 0a0dh dw 0b3fh dw 0a4ch dw 5fbh dw 0a7bh dw 5fbh dw 0ac6h dw 0b4ah dw 0ad5h dw 0b65h dw 0ae6h dw 0b90h dw 0b05h dw 0bb4h dw 0b14h dw 0c00h dw 0b21h dw 0c16h dw 0 db 5,7 db 'EQU ' dw 0c6ch db 'DEFL ' dw 0c68h db 'DL ' dw 0c68h db 'MACRO' dw 137dh db 0 db 5,7 db 'EJECT' dw 61fh db 'FORM ' dw 61fh db 'TITLE' dw 0deeh db 'LIST ' dw 0e1fh db 'NAME ' dw 0cb3h db 'EXT ' dw 0cdbh db 'EXTRN' dw 0cdbh db 'ENTRY' dw 0d14h db 'ABS ' dw 0dbdh db 'REL ' dw 0dd2h db 'DATA ' dw 0de0h db 'COM ' dw 0d4dh db 'MEND ' dw 1534h db 'REM ' dw 0df7h db 'IF ' dw 1604h db 'ENDIF' dw 1643h db 0 db 3,4 db 'EXX' EXX db 'DAA' DAA db 'CPL' CPL db 'CCF' CCF db 'SCF' SCF db 'DI ' DI db 'EI ' EI db 'NOP' NOP db 'RLA' RLA db 'RRA' RRA db 0 db 4,5 db 'HALT' HALT db 'RLCA' RLCA db 'RRCA' RRCA db 0 db 3,4 db 'LDI' db 0a0h db 'LDD' db 0a8h db 'CPI' db 0a1h db 'CPD' db 0a9h db 'NEG' db 44h db 'IM0' db 46h db 'IM1' db 56h db 'IM2' db 5eh db 'RLD' db 6fh db 'RRD' db 67h db 'INI' db 0a2h db 'IND' db 0aah db 0 db 4,5 db 'LDIR' db 0b0h db 'LDDR' db 0b8h db 'CPIR' db 0b1h db 'CPDR' db 0b9h db 'RETI' db 4dh db 'RETN' db 45h db 'INIR' db 0b2h db 'INDR' db 0bah db 'OUTI' db 0a3h db 'OUTD' db 0abh db 'OTIR' db 0b3h db 'OTDR' db 0bbh db 0 db 2,4 db 'LD' dw 10c7h db 'EX' dw 0eb6h db 'JR' dw 0f0fh db 'DB' dw 0f24h db 'DM' dw 0f29h db 'DW' dw 0fa1h db 'JP' dw 0fd3h db 'IN' dw 1040h db ' ' dw 0e9bh db 'DS' dw 0c9ah db 'IM' dw 0ea1h db 0 db 4,6 db 'DJNZ' dw 0f06h db 'RET ' dw 1064h db 'RST ' dw 1072h db 'ADD ' dw 0bcch db 'CALL' dw 1083h db 'OUT ' dw 109ch db 'DEFB' dw 0f24h db 'DEFM' dw 0f29h db 'DEFW' dw 0fa1h db 'DEFS' dw 0c9ah db 'ORG ' dw 0c51h db 'END ' dw 0dfah db 0 db 4,6 db 'PUSH' PUSH BC PUSH HL db 'POP ' POP BC POP HL db 0 db 3,7 db 'INC' INC BC INC HL INC B INC (HL) db 'DEC' DEC BC DEC HL DEC B DEC (HL) db 0 db 3,4 db 'RLC' db 0 db 'RL ' db 10h db 'RRC' db 8 db 'RR ' db 18h db 'SLA' db 20h db 'SRA' db 28h db 'SRL' db 38h db 0 db 3,4 db 'BIT' db 40h db 'SET' db 0c0h db 'RES' db 80h db 0 db 3,5 db 'ADC' db 8 db 4ah db 'SBC' db 18h db 42h db 0 db 3,4 db 'SUB' db 10h db 'AND' db 20h db 'XOR' db 28h db 'OR ' db 30h db 'CP ' db 38h db 0 LD A,(DE) LD (3617H),A JP 1FDCH LD A,(DE) LD (IX+23H),0EDH LD (3618H),A JP 1FE0H PUSH DE CALL 1BD0H JR Z,0B5BH CALL 1BFCH CALL NZ,1D92H EX (SP),HL ADD A,(HL) POP HL JR 0B39H LD (3617H),A SUB A EX (SP),HL INC HL ADD A,(HL) POP HL JR 0B44H PUSH DE CALL 1BD0H JR Z,0B5BH CALL 1C01H JR Z,0B56H CALL 1C1BH JR Z,0B88H CALL 1BDFH CALL NZ,1D92H EX (SP),HL INC HL INC HL INC HL SUB A ADD A,(HL) POP HL LD (3618H),A JP 1FE4H RLCA RLCA RLCA EX (SP),HL INC HL INC HL JR 0B57H PUSH DE CALL 1C1BH JR Z,0BACH CALL 1BE3H CALL NZ,1D92H SUB A EX (SP),HL LD (IX+24H),0CBH ADD A,6 ADD A,(HL) POP HL LD (361AH),A JP 1FE8H EX (SP),HL ADD A,(HL) LD (IX+23H),0CBH JR 0B62H PUSH DE CALL 16BCH PUSH AF CALL 1C18H JR Z,0BC7H CALL 1BE3H CALL NZ,1D92H POP AF JR 0B9DH LD D,A POP AF ADD A,D JR 0BACH CALL 1C24H JR NZ,0BDFH CALL 1CDEH CALL 1C01H CALL NZ,1D92H ADD A,9 JP 0B39H CALL 1BD0H LD DE,1D99H JR NZ,0C16H PUSH AF CALL 1CDEH POP AF CP 0DDH JR Z,0BF5H CALL 1C0BH JR 0BF8H CALL 1C06H CALL NZ,1D92H ADD A,9 JP 0B44H PUSH DE CALL 1C24H JR NZ,0C17H CALL 1CDEH LD (IX+23H),0EDH CALL 1C01H CALL NZ,1D92H JP 0B5FH PUSH DE CALL 0C43H CALL 1C1BH JR Z,0C35H CALL 1BDFH JR Z,0C3DH CALL 1726H LD (3618H),A LD A,0C6H EX (SP),HL ADD A,(HL) LD (3617H),A POP HL JP 22DCH ADD A,80H EX (SP),HL ADD A,(HL) POP HL JP 0B39H EX (SP),HL LD A,86H JP 0B80H LD A,(HL) CALL toupr CP 'A' RET NZ INC HL CALL 1CE8H RET Z DEC HL RET CALL 1747H PUSH DE PUSH BC CALL 1FD8H POP HL POP AF SUB 2 LD (3609H),A LD A,1 LD (360BH),A JP 229AH LD A,80H JR 0C6DH SUB A PUSH AF LD A,(3602H) CP 20H CALL Z,1D8EH CALL 1747H CALL 228AH LD A,D AND 0BFH BIT 5,A CALL NZ,0C91H LD D,A POP AF ADD A,D PUSH BC LD H,B LD L,C CALL 06E0H POP BC JP 2072H CALL 1AD8H LD BC,0 LD A,2 RET CALL 1747H LD A,D CP 2 CALL NZ,1D92H CALL 228AH PUSH BC CALL 2078H POP BC LD A,1 LD (360BH),A JP 2296H CALL 2A2DH RET NZ CALL 1FBAH JR Z,0CD6H LD DE,3D59H LD B,6 CALL 1F8DH CALL 1FA6H PUSH HL LD DE,3D59H SUB A CALL 7DAH POP HL CALL 228AH JP 206AH CALL 1D92H JR 0CD0H CALL 2A2DH RET NZ LD DE,3602H LD B,6 CALL 1F8DH CALL 1FA6H PUSH HL LD DE,3602H SUB A CALL 7DAH JR NC,0D03H LD A,(3608H) CP 2 JR Z,0D0CH LD HL,0 LD A,'"' CALL 6E0H POP HL CALL 1CE8H JR Z,0CDBH JP 206AH LD HL,3602H CALL 1B4FH JR 0D03H CALL 2A2DH RET NZ LD DE,3602H LD B,6 CALL 1F8DH CALL 1FA6H PUSH HL LD DE,3602H SUB A CALL 7DAH JR NC,0D3CH LD A,(3608H) CP 2 JR Z,0D45H LD HL,0 LD A,40H CALL 6E0H POP HL CALL 1CE8H JR Z,0D14H JP 206AH LD HL,3602H CALL 1B4FH JR 0D3CH CALL 2A2DH RET NZ LD DE,3602H LD B,6 CALL 1F8DH CALL 228AH LD DE,3602H LD A,(DE) CP ' ' JR Z,0D6BH SUB A CALL 7DAH jp NC,206AH LD A,(3B15H) LD B,A LD C,0 LD HL,3AB5H AND A JR Z,0D8AH PUSH BC LD DE,3602H LD B,6 CALL 1ECCH JR Z,0DA2H LD DE,6 ADD HL,DE POP BC INC C DJNZ 0D77H LD A,C CP 0FH JR Z,0DB5H INC A LD (3B15H),A EX DE,HL LD HL,3602H LD BC,6 LDIR LD A,(3B15H) DEC A LD C,A PUSH BC POP HL PUSH HL LD H,0 ADD HL,HL LD DE,3B1FH ADD HL,DE LD E,(HL) INC HL LD D,(HL) EX DE,HL POP BC LD A,C ADD A,3 JR 0DC4H LD A,11H CALL 1D9BH JP 206AH CALL 228AH XOR A LD HL,(3B19H) LD (3B17H),HL LD (3609H),A LD A,1 LD (360BH),A JP 206AH CALL 2A2DH RET NZ CALL 228AH LD A,1 LD HL,(3B1BH) JR 0DC4H CALL 2A2DH RET NZ CALL 228AH LD A,2 LD HL,(3B1DH) JR 0DC4H LD DE,3B3DH CALL 636H JP 61FH JP 2BE5H LD A,1 LD (360FH),A LD BC,0 LD D,2 LD A,(HL) CP ';' JR Z,0E13H CP 0DH JR Z,0E13H CALL 1747H CALL 228AH PUSH BC PUSH DE CALL 2078H POP BC POP DE DEC B DEC B JP 286AH LD B,6 LD DE,3C46H CALL 1F8DH PUSH HL LD HL,0E4AH LD DE,3C46H CALL 1EAEH JR NZ,0E45H LD A,(HL) INC HL LD H,(HL) LD L,A CALL 0E49H POP HL LD A,(HL) CP ',' INC HL JR Z,0E1FH DEC HL JP 206AH POP HL JP 1D92H JP (HL) db 6,8 db 'ON ' dw 0e7dh db 'OFF ' dw 0e82h db 'GEN ' dw 0e87h db 'NOGEN ' dw 0e8ch db 'COND ' dw 0e91h db 'NOCOND' dw 0e96h 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 CALL 228AH JP 206AH CALL 171AH CP 3 CALL NC,1736H AND A JR Z,0EB1H RLA RLA RLA ADD A,8 ADD A,46H JP 0B40H LD DE,0ED8H CALL 1C2CH JP Z,0B39H INC DE CALL 1C2CH JR Z,0EBCH INC DE CALL 1C2CH CALL NZ,1D92H CP 0E3H JR Z,0EBCH LD (3617H),A LD A,0E3H JP 0B44H db 5,6 db 'DE,HL' EX DE,HL db 0 db 6,7 db 'AF,AF',squote EX AF,AF' db 0 db 7,8 db '(SP),HL' EX (SP),HL db '(SP),IX' db 0ddh db '(SP),IY' db 0fdh db 0 CALL 1CE8H LD (IX+23H),10H JR 0F1EH LD (IX+23H),18H CALL 1D28H JR NZ,0F1EH LD (3617H),A CALL 1CDEH CALL 16F3H JP 0B44H CALL 0F32H JR 0F67H CALL 0F32H LD A,(DE) OR 80H LD (DE),A JR 0F67H LD DE,3617H LD BC,50H LD A,(HL) CP squote JR NZ,0F59H PUSH HL INC HL LD A,C PUSH AF CALL 1D65H POP AF SUB C JR Z,0F58H DEC A JR Z,0F55H POP AF CALL 1CE8H JR Z,0F38H DEC DE JP 228AH DEC DE INC C DEC B POP HL PUSH DE PUSH BC LD A,B CALL 1712H POP BC POP DE LD (DE),A INC DE INC B DEC C JR 0F4CH PUSH BC LD A,B CP 5 JR C,0F8AH PUSH BC LD B,4 CALL 200CH LD HL,361BH POP BC DEC B DEC B DEC B DEC B JR Z,0F92H LD A,B CP 5 JR C,0F8FH PUSH BC LD B,4 CALL 2050H JR 0F76H CALL 200CH JR 0F92H CALL 2050H POP BC PUSH BC LD HL, 3617H CALL 2969H POP BC LD C,B LD B,0 JP 2296H CALL 1747H LD (3617H),BC CALL 1CE8H PUSH AF CALL NZ,228AH PUSH HL LD B,2 CALL 22E2H POP HL POP AF RET NZ CALL 1747H LD (3617H),BC CALL 1CE8H PUSH AF CALL NZ,228AH PUSH HL LD B,2 CALL 204DH LD B,2 CALL 22E7H JR 0FB5H CALL 1CEEH JR Z,0FE8H CALL 1C1FH JR Z,0FF9H CALL 1BDAH JR Z,0FFEH LD (IX+23H),0C3H JR 0FF0H ADD A,0C2H LD (3617H),A CALL 1CDEH CALL 1747H CALL 1003H JP 22C2H LD A,0E9H JP 0B39H LD A,0E9H JP 0B44H BIT 4,(IX+0) RET Z LD A,(3617H) CP 0E0H RET NC LD A,(3609H) ADD A,2 CP (IX+16H) RET NZ PUSH HL LD HL,(3B17H) INC HL INC HL LD A,C SUB L LD L,A LD A,B SBC A,H JR Z,102EH INC A JR NZ,103EH LD A,L CP 80H JR C,103EH JR 1033H LD A,L CP 80H JR NC,103EH LD (IX+1CH),52H LD HL,(3B11H) INC HL LD (3B11H),HL POP HL RET CALL 1C13H CALL NZ,1D92H PUSH AF CALL 1CDEH CALL 1C29H JR NZ,1054H POP AF ADD A,8 JR 10C1H POP AF CP 7 CALL NZ,1D92H LD (IX+23H),0DBH CALL 1726H JP 22D8H CALL 1CEEH JR Z,106DH LD A,0C9H JR 106FH ADD A,0C0H JP 0B39H CALL 171AH LD C,A AND 0C7H CALL NZ,1736H LD A,C AND 38H ADD A,0C7H JP 0B39H CALL 1CEEH JR Z,1092H LD (IX+23H),0CDH CALL 1747H JP 22C2H ADD A,0C4H LD (3617H),A CALL 1CDEH JR 108CH CALL 1C29H JR Z,10B9H LD (IX+23H),0D3H CALL 1726H EX AF,AF' CALL 1CDEH CALL toupr CP 'A' CALL NZ,1D92H INC HL EX AF,AF' JP 22D8H CALL 1C10H CALL NZ,1D92H ADD A,28H RLCA RLCA RLCA JP 0B40H LD DE,1107H CALL 1C2CH JP Z,0B40H LD DE,111AH CALL 1C2CH JP Z,0B39H LD DE,1139H CALL 1C2CH JR Z,114EH CALL 1C13H JR Z,115BH CALL 1C1FH JP Z,119CH CALL 1BE8H JP Z,11A8H CALL 1C24H JP Z,11BEH CALL 1C01H JP Z,11CDH CALL 1BD0H JP Z,11E5H JP 11F0H db 3,4 db 'A,I' LD D,A db 'A,R' LD E,A db 'I,A' LD B,A db 'R,A' LD C,A db 0 db 6,7 db 'A,(BC)' LD A,(BC) db 'A,(DE)' LD A,(DE) db '(BC),A' LD (BC),A db '(DE),A' LD (DE),A db 0 db 5,6 db 'SP,HL' LD SP,HL db 'SP,IX' db 0ddh db 'SP,IY' db 0fdh db 0 LD (3617H),A CP 0F9H JP Z,0B39H LD A,0F9H JP 0B44H RLCA RLCA RLCA PUSH AF CALL 1C18H JR Z,117BH CALL 1BE8H JR Z,1182H POP BC LD A,B CP 38H JR Z,118CH LD A,B ADD A,6 LD (3617H),A CALL 1726H JP 22D8H POP BC ADD A,B ADD A,40H JP 0B39H POP BC LD A,'F' ADD A,B LD (3618H),A JP 1FE4H LD A,(HL) CP '(' JR NZ,116FH LD A,':' LD (3617H),A CALL 1747H JP 22C2H RLCA RLCA RLCA PUSH AF CALL 1C10H JR Z,117BH POP BC JR 116FH CALL 1C10H JR Z,11BAH LD (IX+24H),36H CALL 1726H LD (361AH),A JP 22DFH ADD A,70H JR 1186H CALL 1CDEH CP '(' LD B,' ' JR NZ,11C9H LD B,')' INC B LD A,B JR 1193H LD B,A CALL 1CDEH CP '(' JR NZ,11C9H LD (IX+23H),0EDH LD A,'K' ADD A,B LD (3618H),A CALL 1747H JP 22CDH CALL 1CDEH LD A,'*' JR Z,11DCH LD A,'!' JR 11DCH LD A,(HL) CP '(' CALL NZ,1D92H CALL 1747H PUSH BC CALL 1CDEH CALL toupr CP 'A' JR Z,1221H CALL 1BD0H JR Z,122AH CALL 1C24H JR Z,122EH CALL 1C01H CALL NZ,1D92H ADD A,'C' LD (IX+23H),0EDH LD (IX+24H),A POP BC JP 22CDH LD (IX+23H),32H INC HL POP BC JP 22C2H LD A,'"' JR 121AH LD (IX+23H),22H JR 1226H LD DE,35FCH CALL 149EH RET NC PUSH HL LD HL,(3B17H) LD A,(3609H) ADD A,2 CALL 6E0H POP HL LD A,(3611H) CP 8 JR Z,128EH BIT 7,(HL) LD A,12H CALL NZ,1D9BH PUSH HL LD HL,0 LD DE,54H LD A,(3611H) AND A JR Z,1267H ADD HL,DE DEC A JR NZ,1263H LD DE,36BEH ADD HL,DE POP DE DEC DE LD (HL),E INC HL LD (HL),D INC HL LD DE,(366AH) LD (HL),E INC HL LD (HL),D INC HL INC DE LD (366AH),DE EX DE,HL LD HL,(35FAH) CALL 636H CALL 1293H LD HL,3611H INC (HL) SCF RET LD A,6 CALL 1D9BH LD HL,1299H JP 1FD8H DEC C LD A,(3611H) AND A RET Z LD HL,0 LD DE,54H DEC A JR Z,2ABH ADD HL,DE JR 12A5H ;****** unref'd from here to next "******" LD DE,36BEH ADD HL,DE PUSH HL LD E,(HL) INC HL LD D,(HL) INC HL INC HL INC HL PUSH HL LD HL,3B95H LD B,'P' LD A,(DE) DEC DE CP 0FFH JR Z,12D2H AND A JP M,12E2H LD (HL),A CP cr JR Z,12DAH INC HL DJNZ 12BCH DEC HL INC B JR 12BCH POP HL POP HL LD HL,3611H DEC (HL) JR 129AH POP HL POP HL LD (HL),E INC HL LD (HL),D SUB A INC A RET CP 0FEH JR Z,133EH PUSH DE POP IY AND 7FH POP DE PUSH DE AND A JR Z,1304H PUSH AF LD A,(DE) CP cr JR Z,1303H CP ';' JR Z,1303H INC DE CP ',' JR NZ,12F1H POP AF DEC A JR 12EDH POP AF SUB A PUSH AF LD A,(DE) CP cr JR Z,1326H CP ';' JR Z,1337H CP squote JR Z,132CH CP ',' JR Z,1337H CP tab JR Z,135EH CP ' ' JR Z,135EH LD (HL),A INC HL INC DE DJNZ 1306H DEC HL INC B POP AF PUSH IY POP DE JR 12BCH POP AF AND A JR Z,1332H LD A,0FFH INC A PUSH AF LD A,(DE) JR 131FH POP AF PUSH AF AND A JR Z,1326H JR 1334H POP IY PUSH IY PUSH DE PUSH HL PUSH BC LD L,(IY-2) LD H,(IY-1) LD A,'0' CALL 2492H POP BC POP HL POP IY LD DE,3C47H LD A,cr LD (3C4BH),A JR 1304H POP AF PUSH AF AND A JR NZ,1334H PUSH DE INC DE LD A,(DE) CP ' ' JR Z,1364H CP tab JR Z,1364H POP DE CP ',' JR Z,1326H CP ';' JR Z,1326H CP cr JR Z,1326H JR 1334H ;************ LD DE,3602H LD A,(DE) CP ' ' JP Z,140EH CALL 149EH JR NC,13A8H LD A,(3608H) CP 2 JR Z,139BH SET 7,(HL) LD A,12H CALL 1D9BH JR 13A2H BIT 7,(HL) JR NZ,1394H CALL 1416H CALL 206AH JP 14BEH PUSH DE LD HL,fcb$$0 LD B,'D' BIT 3,(IX+1) CALL NZ,wrseq POP DE LD B,6 CALL 150FH SUB A CALL 1517H CALL 1416H LD A,1 PUSH AF BIT 7,(IX+1) JR Z,13D0H CALL 2B82H JR 13D3H CALL 2B2FH JR Z,1408H CALL 684H CALL 14EDH JR Z,13F9H CALL 14FEH JR Z,13F5H LD HL,3B95H LD A,(HL) CP '#' CALL Z,1453H CALL 1517H CP cr JR Z,13C5H INC HL JR 13E5H POP AF INC A JR 13FDH POP AF DEC A JR Z,1400H PUSH AF JR 13E2H LD A,0FFH CALL 1517H SUB A INC A RET POP AF CALL 1400H SUB A RET LD A,5 CALL 1D9BH jp 13A2H LD HL,(35FAH) LD DE,366EH LD BC,50H LD A,(HL) CP cr JR Z,1450H CP ';' JR Z,1450H CP '#' CALL NZ,1D92H LDI LD A,(HL) CP cr JR Z,1450H CP ';' JR Z,1450H CP ' ' JR Z,144BH CP tab JR Z,144BH CP ',' JR NZ,142DH LDI CALL fnonsp JR 141FH CALL fnonsp JR 142FH SUB A LD (DE),A RET LD DE,149AH LD B,4 CALL 1ECCH JR NZ,1464H LD DE,3 ADD HL,DE LD A,0FEH RET LD DE,366EH LD A,80H PUSH AF LD A,(DE) AND A JR Z,1497H CP ',' JR Z,148EH PUSH HL LD A,(DE) AND A JR Z,1493H CP ',' JR Z,1493H CALL cmpstr JR NZ,1484H INC HL INC DE JR 1473H POP HL LD A,(DE) INC DE AND A JR Z,1497H CP ',' JR NZ,1485H POP AF INC A PUSH AF JR 1472H POP BC DEC HL POP AF RET POP AF LD A,(HL) RET db '#SYM' l149e: LD HL,(6) DEC HL l14a2: LD A,(HL) AND A RET z PUSH DE LD B,6 l14a8: CALL cmpstr JR NZ,14B4H INC DE DEC HL DJNZ 14A8H POP DE SCF RET l14b4: POP DE l14b5: DEC HL LD A,(HL) CP 0FFH JR NZ,14B5H DEC HL JR 14A2H LD A,1 PUSH AF BIT 7,(IX+1) JR Z,14CCH CALL 2B82H JR 14CFH CALL 2B2FH JR Z,14EAH CALL 684H CALL 206AH CALL 14EDH JR Z,14E5H CALL 14FEH JR NZ,14C1H POP AF INC A JR 14C0H POP AF DEC A JR NZ,14C0H RET POP AF SCF RET LD HL,14F8H LD DE,35FCH LD B,6 jp 1ECCH db 'MEND ' LD HL,1509H LD DE,35FCH LD B,6 jp 1ECCH db 'MACRO ' LD A,(DE) CALL 1517H INC DE DJNZ 150FH RET PUSH HL PUSH DE PUSH BC PUSH AF LD HL,(366CH) LD (HL),A DEC HL LD (HL),0 LD (366CH),HL LD DE,(3D5FH) CALL subdehl JP Z,nomem POP AF POP BC POP DE POP HL RET LD A,10H CALL 1D9BH JP 206AH macros: LD HL,0 LD (3D61H),HL LD (3D62H),HL SET 7,(IX+1) LD HL,906H LD (3DCFH),HL LD HL,3DD1H PUSH HL SUB A PUSH AF CALL 2B82H JR Z,1590H CALL 684H JR Z,1555H CALL 644H JR Z,1555H CALL 14FEH JR Z,1574H CALL 14EDH JR NZ,1555H POP AF DEC A JR C,159DH JR 1554H POP AF INC A CP 1 JR NZ,1554H POP DE LD HL,3602H LD BC,6 LDIR LD HL,3D64H LD BC,3 LDIR PUSH DE LD A,1 JR 1554H POP AF POP HL LD (HL),0 INC HL LD (3DCDH),HL RES 7,(IX+1) RET LD DE,15A3H JP pr&lv db 'MACRO library' db ' file error',cr,lf,0 LD A,(3608H) DEC A RET NZ LD HL,3DCFH LD DE,35FCH CALL 1EAEH RET NZ LD C,(HL) INC HL LD D,(HL) INC HL LD E,(HL) LD HL,fcbext CALL opnfil SET 7,(IX+1) LD HL,3B95H LD DE,3BE5H LD BC,50H LDIR CALL 2B82H CALL 684H CALL 137DH RES 7,(IX+1) LD HL,3BE5H LD DE,3B95H LD BC,50H LDIR CALL 684H SUB A RET LD A,(395EH) CP 8 JR Z,163BH CALL 1747H CALL 228AH LD A,D CP 2 CALL NZ,1AD8H LD A,(395EH) INC A LD (395EH),A DEC A LD HL,395FH CALL addahl LD A,(395EH) DEC A JR Z,1631H DEC HL LD A,(HL) INC HL AND A JR Z,1633H LD A,B OR C LD (HL),A CALL 16A4H CALL Z,206AH RET LD A,6 CALL 1D9BH JP 206AH LD A,(395EH) AND A JR Z,1657H CALL 228AH CALL 16A4H CALL Z,206AH LD HL,395EH DEC (HL) RET LD A,10H CALL 1D9BH JP 206AH LD A,(395EH) AND A RET Z LD HL,395FH CALL addahl DEC HL LD A,(HL) AND A JR Z,1671H SUB A RET CALL 1682H RET Z CALL 1693H RET Z CALL 16A4H CALL Z,206AH SUB A INC A RET LD HL,168DH LD DE,35FCH LD B,6 JP 1ECCH db 'ENDIF ' LD HL,169EH LD DE,35FCH LD B,6 JP 1ECCH db 'IF ' LD A,(3614H) AND A JR NZ,16BAH BIT 5,(IX+1) JR NZ,16BAH BIT 2,(IX+1) RET NZ BIT 1,(IX+3) RET SUB A RET CALL 171AH CP 8 CALL NC,1736H RLCA RLCA RLCA RET LD A,(HL) CP ')' JR NZ,16D5H INC HL LD BC,0 LD D,2 LD A,C RET CALL 173BH LD A,D CP 2 CALL NZ,1AD8H LD A,B AND A JR Z,16EBH INC A JR NZ,16EFH LD A,C CP 80H JR C,16EFH RET LD A,C CP 80H RET C LD A,9 JR 1738H CALL 1747H LD A,(3609H) ADD A,2 CP D CALL NZ,1AD8H LD A,2 LD (360AH),A LD DE,(3B17H) INC DE INC DE LD A,C SUB E LD C,A LD A,B SBC A,D LD B,A JR 16DEH CALL 1748H CALL 1729H JR 171DH CALL 1726H PUSH AF LD A,D CP 2 CALL NZ,1AD8H POP AF RET CALL 1747H LD A,D CP 2 CALL NZ,1AD8H LD A,B AND A JR Z,1734H INC A LD A,C RET Z LD A,0CH JP 1D9BH SUB A LD (3C5AH),A LD (3CF2H),A LD BC,7FH JR 1797H SUB A LD (3667H),A SUB A LD (3C5AH),A LD (3CF2H),A CALL fnonsp CALL 189DH JR Z,1797H CALL 18AAH JR Z,17C8H CALL 18B4H JR Z,178BH LD A,(HL) CP squote JP Z,17E9H CALL cknum JR NC,17DFH CALL 1CC0H CALL C,1D82H CALL 1B4FH CALL 181EH JP Z,1815H CALL fnonsp CALL 18AAH JR Z,17C8H CALL 18D2H JR NZ,17A6H PUSH BC CALL 1870H POP BC JR Z,1797H CP C JR C,179EH JR Z,179EH CALL 1857H JR Z,1815H JR 1752H PUSH BC CALL 1970H JR C,1814H JR 178CH CALL 1870H JR Z,17B2H CALL 1970H JR C,1815H JR 17A6H CALL 183BH JR Z,1815H LD A,C AND 60H CP 20H LD A,C JR Z,17C1H AND 1FH LD (360AH),A LD B,D LD C,E LD D,A RET CALL 1870H JR Z,1815H CP 7FH JR Z,17D8H CALL 1970H JR C,1815H JR 17C8H CALL 1885H JR Z,1815H JR 177EH CALL 1AFAH CALL C,1D82H LD C,2 JR 1778H INC HL LD BC,2 LD DE,3C46H CALL 1D65H LD DE,0 JR NC,180CH INC B DEC B JR Z,180FH LD DE,(3C46H) DEC B JR Z,1808H LD A,D LD D,E LD E,A JR 180FH LD D,0 JR 180FH CALL 1D82H LD C,2 jp 1778H POP BC CALL 1AD8H LD BC,0 LD D,0 RET LD A,(3C5AH) CP '2' RET Z PUSH HL INC A LD (3C5AH),A LD HL,3C59H LD B,A ADD A,B ADD A,B CALL addahl LD (HL),E INC HL LD (HL),D INC HL LD (HL),C POP HL SUB A INC A RET LD A,(3C5AH) AND A RET Z PUSH HL DEC A LD (3C5AH),A LD HL,3C5CH LD B,A ADD A,B ADD A,B CALL addahl LD E,(HL) INC HL LD D,(HL) INC HL LD C,(HL) POP HL SUB A INC A RET LD A,(3CF2H) CP '2' RET Z PUSH HL INC A LD (3CF2H),A LD HL,3CF2H ADD A,A CALL addahl LD (HL),B INC HL LD (HL),C POP HL SUB A INC A RET LD A,(3CF2H) AND A RET Z PUSH HL LD HL,3CF2H ADD A,A CALL addahl LD B,(HL) INC HL LD C,(HL) POP HL SUB A INC A LD A,C RET CALL 1870H RET Z LD A,(3CF2H) DEC A LD (3CF2H),A SUB A INC A RET ;****** unref'd from here to next "******" LD A,(3CF2H) DEC A LD (3CF2H),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 EX DE,HL LD HL,18C5H CALL 192FH JR Z,18C3H LD HL,18CCH CALL 1942H EX DE,HL RET db '+' dw 286h db '-' dw 28ch db 0ffh db 'NO' db 0d4h dw 488h db 0 EX DE,HL LD HL,18E3H CALL 192FH JR Z,18E1H LD HL,18F9H CALL 1942H EX DE,HL RET db '+' dw 306h db '-' dw 307h db '*' dw 101h db '/' dw 102h db '>' dw 70dh db '<' dw 70eh db '=' dw 70fh db 0ffh db 'MO','D'+128 dw 103h db 'SH','L'+128 dw 104h db 'SH','R'+128 dw 105h db 'AN','D'+128 dw 509h db 'O','R'+128 dw 60ah db 'XO','R'+128 dw 60bh db 'L','T'+128 dw 70eh db 'G','T'+128 dw 70dh db 'E','Q'+128 dw 70fh db 'N','E'+128 dw 710h db 'L','E'+128 dw 711h db 'G','E'+128 dw 712h db 0 LD A,(HL) AND A RET M CALL cmpstr JR Z,193CH INC HL INC HL INC HL JR 192FH INC HL LD B,(HL) INC HL LD C,(HL) INC DE RET PUSH DE LD A,(HL) AND A JR Z,196DH CALL cmpstr JR NZ,1962H LD A,(HL) INC HL INC DE AND A JP P,1943H LD A,(DE) INC DE CP ' ' JR Z,195DH CP tab JR NZ,196DH POP BC LD B,(HL) INC HL LD C,(HL) RET LD A,(HL) INC HL AND A JP P,1962H INC HL INC HL POP DE JR 1942H POP DE INC A RET PUSH HL CALL 1885H JR Z,19C0H LD A,B AND A JP M,19AEH PUSH BC CALL 183BH JR Z,19BFH PUSH DE PUSH BC CALL 183BH JR Z,19BDH EX DE,HL POP DE LD B,C LD C,E POP DE EX (SP),HL LD A,H AND 7FH LD HL,19C5H RLA CALL addahl LD A,(HL) INC HL LD H,(HL) LD L,A PUSH HL POP IY POP HL CALL 19C3H EX DE,HL LD A,(3D58H) LD C,A CALL 181EH AND A POP HL RET PUSH BC CALL 183BH JR Z,19BFH EX DE,HL LD B,C LD DE,0 LD C,2 JR 198DH POP HL POP HL POP HL POP HL SCF RET JP (IY) dw 1ad8h dw 19ebh dw 19f1h dw 19f7h dw 19fch dw 1a06h dw 1a13h dw 1a1ch dw 1a23h dw 1a2eh dw 1a38h dw 1a42h dw 1a18h dw 1a4ch dw 1a5bh dw 1a68h dw 1a72h dw 1a7ch dw 1a89h CALL 1A94H JP 1B2FH CALL 1A94H JP 1B3BH CALL 19F1H EX DE,HL RET CALL 1A94H LD A,D OR E RET Z ADD HL,HL DEC DE JR 19FFH CALL 1A94H LD A,D OR E RET Z SRL H RR L DEC DE JR 1A09H CALL 1AA4H ADD HL,DE RET EX DE,HL LD A,B LD B,C LD C,A CALL 1ABEH AND A SBC HL,DE RET CALL 1A94H EX DE,HL LD HL,0FFFFH AND A SBC HL,DE RET CALL 1A94H LD A,H AND D LD H,A LD A,L AND E LD L, A RET CALL 1A94H LD A,H OR D LD H,A LD A,L OR E LD L,A RET CALL 1A94H LD A,H XOR D LD H,A LD A,L XOR E LD L,A RET CALL 1ABEH AND A SBC HL,DE JP M,1A64H JR Z,1A64H LD HL,0FFFFH RET CALL 1ABEH AND A SBC HL,DE JP M,1A57H LD HL,0 RET CALL 1ABEH AND A SBC HL,DE JR NZ,1A64H JR 1A57H CALL 1ABEH AND A SBC HL,DE JR Z,1A64H JR 1A57H CALL 1ABEH AND A SBC HL,DE JP M,1A57H JR Z,1A57H JR 1A64H CALL 1ABEH AND A SBC HL,DE JP M,1A64H JR 1A57H CALL 1AE0H LD A,B CP C JR NZ,1A9DH CP 2 CALL NZ,1AD8H LD (3D58H),A RET CALL 1AE0H LD A,B CP 2 JR NZ,1AB1H LD A,C LD (3D58H),A RET LD A,C CP 2 JR Z,1ABBH CALL 1AD8H JR 1AADH LD A,B JR 1AADH CALL 1AE0H LD A,B CP 2 JR Z,1A94H CP C JR Z,1AD1H LD A,C CP 2 JR Z,1AD3H CALL 1AD8H LD B,2 LD A,B LD (3D58H),A RET LD A,3 CALL 1D9BH LD B,2 RET LD A,B BIT 5,A JR NZ,1AEAH LD A,C BIT 5,A JR Z,1AF1H XOR A LD (360CH),A CALL 1AD8H LD A,B AND 1FH LD B,A LD A,C AND 1FH LD C,A RET PUSH HL INC HL CALL 1FBAH JR NZ,1AFBH DEC HL POP BC LD A,(HL) CALL toupr CP 'H' JR Z,1B1BH CP 'D' JR Z,1B20H CP 'Q' JR Z,1B25H CP 'B' JR Z,1B2AH INC HL JP getval CALL cnvhxv INC HL RET CALL getval INC HL RET CALL 1E34H INC HL RET CALL 1E4DH INC HL RET LD B,H LD C,L LD HL,0 LD A,D OR E RET Z ADD HL,BC DEC DE JR 1B34H LD BC,0FFFFH LD A,D OR E JP Z,1D8AH SBC HL,DE INC BC JR NC,1B43H JR Z,1B4BH ADD HL,DE EX DE,HL LD H,B LD L,C RET LD DE,3C3CH PUSH DE LD B,6 CALL 1F8DH CALL 1FA6H POP DE LD A,(3C3CH) CP '$' JR NZ,1B6AH LD A,(3C3DH) CP ' ' JR Z,1BBCH SUB A INC A PUSH HL PUSH DE CALL 7DAH POP DE JR NC,1BB5H PUSH DE SUB A LD BC,0 CALL 734H LD (360DH),HL PUSH AF AND 3FH JR Z,1BADH POP AF PUSH AF AND 60H CP 60H CALL Z,71EH POP AF POP DE PUSH BC PUSH AF LD HL,fcbtmp BIT 2,(IX+0) CALL NZ,5F1H POP AF POP DE POP HL AND 3FH LD C,A LD (3D58H),A BIT 5,A RET Z LD A,1 LD (360CH),A RET CALL 1D96H POP AF LD A,2 JR 1B85H LD DE,0 LD C,2 POP HL RET PUSH HL LD HL,(3B17H) LD A,(3667H) LD E,A LD D,0 ADD HL,DE EX DE,HL POP HL LD A,(3609H) ADD A,2 LD C,A RET LD DE,1C3FH CALL 1C2CH LD (3617H),A RET LD DE,1C48H JR 1BD3H LD A,3 JR 1BE5H LD A,4 LD (3C3BH),A LD DE,1C55H CALL 1C2CH RET NZ PUSH AF CALL 16C8H LD (3619H),A LD B,A POP AF LD (3617H),A RET LD DE,1C60H JR 1C2CH LD DE,1C6FH JR 1C2CH LD DE,1C7EH JR 1C2CH LD DE,1C8DH JR 1C2CH CALL 1CDEH LD DE,1C9CH JR 1C2CH CALL 1CDEH CALL 1C13H RET Z LD DE,1CADH JR 1C2CH LD DE,1CB5H JR 1C2CH LD DE,1CBAH PUSH HL EX DE,HL CALL 1EAEH EX DE,HL JR NZ,1C3AH ADD HL,BC CALL 1FBAH JR Z,1C3CH POP HL RET 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' RLCA db 'B' db 0 db 'C' db 1 db 'D' db 2 db 'E' INC BC db 'H' INC B db 'L' DEC B 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 1CD0H RET NC CP '.' JR Z,1CCEH CP '$' JR Z,1CCEH SCF RET AND A RET CP 'A' RET C CP '[' CCF RET NC CP 'a' RET C CP '{' CCF RET CALL 1CE8H CALL NZ,1D92H LD A,(HL) CP '(' RET LD A,(HL) CP ',' RET NZ INC HL RET CALL 1D28H JR NZ,1CF7H SUB ' ' CP A RET LD DE,1D19H CALL 1D2BH RET NZ BIT 5,(IX+0) RET Z CP '(' JR Z,1D0BH CP ' ' JR NZ,1CF5H PUSH HL LD HL,(3B13H) INC HL LD (3B13H),HL LD (IX+1CH),'P' POP HL RET db 2,3 db 'M ' db 38h db 'P ' db 30h db 'PE' db 28h db 'PO' db 20h db 0 LD DE,1D46H PUSH DE LD DE,3C46H PUSH DE LD B,3 CALL 1F8DH POP DE JR NZ,1D41H EX (SP),HL EX DE,HL CALL 1C2CH JR NZ,1D41H POP HL RET POP HL LD HL,(35FAH) RET db 2,3 db 'C ' db 38h db 'NC' db 30h db 'Z ' db 28h db 'NZ' db 20h db 0 ;****** unref'd from here to next "******" CALL 1747H LD A,D PUSH BC PUSH HL LD H,B LD L,C CALL 6E0H POP HL CALL 228AH POP HL ;******** INC C LD A,(HL) CP cr JR Z,1D7EH CP squote JR Z,1D77H DEC C RET Z LD (DE),A INC DE INC HL INC B JR 1D66H INC HL LD A,(HL) CP squote JR Z,1D6FH DEC C SCF RET ;****** unref'd from here to next "******" POP HL RET ;****** LD A,1 JR 1D9BH LD A,4 JR 1D9BH LD A,0EH JR 1D9BH LD A,5 JR 1D9BH LD A,0AH JR 1D9BH LD A,0BH LD BC,0 PUSH AF LD (IX+20H),1 LD A,(3612H) AND A JR NZ,1DADH POP AF LD (3612H),A LD A,0 RET POP AF JR 1DAAH ;****** unref'd from here to next "******" CALL 1DCBH CALL 1DCBH CALL 1DCBH CALL 1DC5H ;****** CALL 1DCBH CALL 1DCEH CALL 1DCEH CALL 1DCEH CALL 1DCEH CALL 1DCEH LD B,' ' JP outit ;****** unref'd from here to next "******" PUSH BC LD B,(HL) INC HL LD C,(HL) INC HL LD (35F0H),HL LD (35F2H),BC POP BC RET CALL 1DEDH RET Z LD A,(35F3H) ;****** addahl: ADD A,L LD L,A RET NC INC H RET ;****** unref'd from here to next "******" LD HL,(35F0H) PUSH HL LD A,(35F2H) CALL addahl LD (35F0H),HL POP HL LD A,(HL) AND A RET ;*********** LD A,E ADD A,L DAA LD L,A LD A,D ADC A,H DAA LD H,A RET LD B,H CALL 1E0CH LD B,L LD A,B RRA RRA RRA RRA CALL 1E15H LD A,B AND 0FH ADD A,30H LD (DE),A INC DE RET getval: PUSH HL LD HL,0 gv1: ADD HL,HL LD D,H LD E,L ADD HL,HL ADD HL,HL ADD HL,DE LD A,(BC) CALL cknum JR C,gv2 CALL onee98 JR NZ,gv1 RET gv2: POP HL RET PUSH HL LD HL,0 ADD HL,HL ADD HL,HL ADD HL,HL LD A,(BC) CP '0' JR C,1E4BH CP '8' CCF JR C,1E4BH CALL onee98 JR NZ,1E38H RET POP HL RET PUSH HL LD HL,0 ADD HL,HL LD A,(BC) CP '0' JR C,1E62H CP '2' CCF JR C,1E62H CALL onee98 JR NZ,1E51H RET POP HL RET db 'DM####' cnvhxv: PUSH HL LD HL,0 cvhv1: ADD HL,HL ADD HL,HL ADD HL,HL ADD HL,HL LD A, (BC) CALL chkhxv JR C,cvhv2 CALL onee98 JR NZ,cvhv1 RET cvhv2: POP HL RET chkhxv: CALL cknum JR NC,rethxv CP 'A' RET C CP 'G' JR C,adjhxv CP 'a' RET C CP 'g' CCF RET C adjhxv: ADD A,9 rethxv: AND 0FH RET onee98: AND 0FH CALL addahl EX DE,HL POP HL EX (SP),HL PUSH HL INC BC AND A SBC HL,BC POP HL JR NZ,oneeaa LD A,(HL) RET oneeaa: EX (SP),HL PUSH HL EX DE,HL RET CALL 1EB8H 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,1ECAH CALL 1ECCH RET Z LD A,C CALL addahl JR 1EBCH INC A RET PUSH HL PUSH DE PUSH BC EX DE,HL CALL cmpstr JR NZ,1ED9H INC HL INC DE DJNZ 1ED0H POP BC POP DE POP HL RET cmpstr: LD A,(DE) ;cmp. byte (DE) to (HL) AND 7FH ; (DE) is in A CALL toupr ; and (HL) is in C PUSH BC LD B,A LD A,(HL) AND 7FH CALL toupr LD C,A LD A,B CP C POP BC RET toupr: CP 'a' RET C CP '{' RET NC AND 5FH RET subdehl: PUSH HL AND A SBC HL,DE POP HL RET ;****** unref'd from here to next "******" CALL hxprhl JR 1F07H CALL hxpra JP 1DCEH hxprhl: LD A,H CALL hxpra LD A,L hxpra: LD C,A RRA RRA RRA RRA CALL cnvasc LD A,C cnvasc: AND 0FH ADD A,30H CP ':' JR C,numbr ADD A,7 numbr: LD B,A JP outit ;****** following call is unref'd CALL 01F29H CALL 1DCBH PUSH HL EXX POP HL LD A,(HL) INC HL LD H,(HL) LD L,A CALL hxprhl EXX INC HL INC HL RET ;****** unref'd from here to next CALL 1DCBH LD A,(HL) EXX CALL 1F50H CALL outit LD B,C CALL outit LD B,D CALL outit EXX INC HL RET LD BC,3030H LD D,B LD E,A LD A,":" INC E DEC E JR Z,1F69H INC D CP D JR NZ,1F58H LD D,"0" INC C CP C JR NZ,1F58H LD C,D INC B JR 1F58H LD A,'0' CP B RET NZ LD B,' ' CP C RET NZ LD C,B RET prtstg: LD B,(HL) ;print(?) (D) chars. CALL outit ; pointed to by (HL) INC HL DEC D JR NZ,prtstg RET blkfil: LD A,' ' fill: LD (DE),A LD H,D LD L,E INC DE DEC BC LDIR RET cknum: CP '0' RET C CP ':' CCF RET LD C,B LD B,0 PUSH BC PUSH DE PUSH HL CALL blkfil POP HL POP DE POP BC PUSH BC CALL 1FBAH POP BC RET Z LDI JP PO,1FBAH JR 1F99H PUSH BC CALL 1FBAH POP BC RET Z INC HL JR 1FA6H fnonsp: LD A,(HL) CP ' ' JR Z,fnsp1 CP tab RET NZ fnsp1: INC HL JR fnonsp PUSH DE EX DE,HL LD HL,1FC6H CALL 1EAEH EX DE,HL LD A,(HL) POP DE RET LD BC,2C01H LD A,(2D2BH) CPL LD HL,(2920H) INC A LD A,'=' DEC SP DEC C ADD HL,BC LD E,L NOP LD B,0 JR 1FEAH LD B,1 JR 1FEAH LD B,2 JR 1FEAH LD B,3 JR 1FEAH LD B,4 CALL 1FF0H JP 2296H CALL 228AH PUSH BC CALL 200CH POP BC LD A,(3608H) CP 2 JR NZ,2008H PUSH BC LD HL,3617H CALL 2969H POP BC SUB A LD C,B LD B,0 RET CALL 2012H JP 20B4H PUSH BC LD HL,(3B17H) CALL hxprhl LD A,(3609H) CALL 224DH CALL 1DCEH LD HL,3617H POP BC LD C,4 LD A,B AND A CALL Z,2048H JR Z,2040H PUSH BC LD A,(HL) CALL hxpra POP BC INC HL DEC C DJNZ 202FH CALL 2261H LD A,C AND A JR Z,2048H PUSH BC CALL 1DCBH POP BC DEC C JR NZ,2040H CALL 1DCEH SUB A RET LD HL,3617H PUSH BC CALL 1DBFH POP BC LD A,(HL) PUSH BC CALL hxpra POP BC INC HL DJNZ 2055H PUSH HL CALL 2261H CALL prcr CALL 20D7H POP HL RET CALL 1DBCH CALL 1DBFH JR 20B1H PUSH BC CALL 1DC2H JR 2085H PUSH BC LD HL,(3B17H) CALL hxprhl LD A,(3609H) CALL 224DH CALL 1DCEH LD B,'(' CALL outit POP HL CALL hxprhl LD A,(360AH) BIT 5,A JR NZ,209CH CP 3 JR C,20A6H CALL 2261H LD B,')' CALL outit JR 20AEH LD B,')' CALL outit CALL 1DCEH CALL 1DCEH CALL 1DCBH CALL 1DCEH LD A,(3610H) LD B,A CALL outit LD (3610H),A CALL 1DCEH LD A,(3611H) AND A LD A,' ' JR Z,20CEH LD A, '+' LD (3B94H),A LD HL,3B90H CALL 2BE5H LD A,(3612H) AND A RET Z PUSH AF CALL 24B8H LD HL,(3B0FH) INC HL LD (3B0FH),HL LD HL,2105H CALL 2280H POP AF CALL 210EH CALL 2280H LD HL,2109H CALL 2BE5H CALL prcr SUB A LD (3612H),A LD (3614H),A RET db '***',' '+128 db ' ***',cr LD HL,211CH LD B,A DEC B RET z LD A,(HL) INC HL AND A JP M,2112H JR 2114H db 'argument erro' db 'r'+128 db 'multiple definitio' db 'n'+128 db 'expression erro' db 'r'+128 db 'label erro' db 'r'+128 db 'missing labe' db 'l'+128 db 'nesting erro' db 'r'+128 db 'opcode erro' db 'r'+128 db 'phase erro' db 'r'+128 db 'range erro' db 'r'+128 db 'syntax erro' db 'r'+128 db 'undefined symbo' db 'l'+128 db 'value erro' db 'r'+128 db 'file not foun' db 'd'+128 db 'divide by zero erro' db 'r'+128 db 'no matching I' db 'F'+128 db 'no matching MACR' db 'O'+128 db 'too many COMMON' db 's'+128 db 'multiple MACRO' db ' definitio' db 'n'+128 db 'label not allowe' db 'd'+128 db 'instruction not' db ' allowe' db 'd'+128 CP 3 JR C,2253H LD A,3 LD HL,225DH CALL addahl LD B,(HL) JP outit db ' ',squote,'"*' LD A,(360AH) BIT 5,A JR NZ,227BH CP 5 JR NC,2273H AND A JR Z,2277H SUB 2 JR 2278H LD A,3 JR 2278H SUB A JP 224DH LD B,'#' JP outit LD B,(HL) CALL outit LD A,(HL) INC HL AND A RET M JR 2280H CALL fnonsp CP ';' RET Z CP cr RET Z JP 1D92H LD HL,(3B17H) ADD HL,BC LD (3B17H),HL EX DE,HL LD A,(3609H) ADD A,A PUSH AF LD HL,3B19H CALL addahl LD (HL),E INC HL LD (HL),D LD HL,3A91H POP AF RET Z CALL addahl PUSH HL LD A,(HL) INC HL LD H,(HL) LD L,A CALL subdehl POP HL RET NC LD (HL),E INC HL LD (HL),D RET LD (3618H),BC CALL 228AH LD B,3 JR 22E2H LD (3619H),BC CALL 228AH LD B,4 JR 22E2H LD (3618H),BC JP 1FE0H JP 1FE8H PUSH BC CALL 200CH POP BC PUSH BC LD DE,3617H LD A,B SUB 2 JR Z,22F9H LD C,A LD A,(DE) CALL 2953H INC DE DEC C JR NZ,22F1H LD A,(DE) LD B,A INC DE LD A,(DE) LD D,A LD E,B LD A,(360AH) AND 1FH SUB 2 JR C,231DH JR Z,231DH CP 3 JR NC,2327H CALL 2974H POP BC PUSH BC CALL 2333H POP BC LD C,B LD B,0 JP 2296H LD A,E CALL 2953H LD A,D CALL 2953H JR 2311H PUSH DE CALL 28DAH CALL 2908H POP DE LD A,3 JR 230EH LD A,(360CH) AND A RET Z LD A,(3608H) CP 2 RET NZ LD HL,(3B17H) LD C,B LD B,0 DEC BC DEC BC ADD HL,BC EX DE,HL LD HL,(360DH) LD A,(HL) AND 0E0H LD B,A LD A,(3609H) ADD A,2 OR B LD (HL),A DEC HL LD (HL),D DEC HL LD (HL),E RET LD (IX+21H),1 LD DE,(3B0FH) LD HL,23A8H CALL 23E4H LD DE,(3B11H) LD HL,23B0H BIT 4,(IX+0) CALL NZ,23E4H LD DE,(3B13H) LD HL,23BCH BIT 5,(IX+0) CALL NZ,23E4H CALL prcr LD DE,(3A93H) LD HL,23C9H LD A,D OR E CALL NZ,23F8H LD DE,(3A95H) LD HL,23D8H LD A,D OR E CALL NZ,23F8H CALL 2402H LD (IX+21H),0 RET db 'Errors',tab db tab+128 db 'Range Count' db tab+128 db 'Parity Count' db tab+128 db 'Program Length' db tab+128 db 'Data length' db tab+128 CALL 2280H EX DE,HL LD A,' ' CALL 2492H LD HL,3C47H LD D,4 CALL prtstg JP prcr CALL 2280H EX DE,HL CALL 246CH JP prcr LD A,(3B15H) AND A RET Z PUSH AF LD HL,245DH CALL 2280H LD HL,3AB5H LD DE,3A97H LD B,'/' CALL outit PUSH HL LD B,(HL) CALL outit LD C,5 INC HL LD A,(HL) CP ' ' JR Z,2434H LD B,A CALL outit DEC C JR NZ,2420H LD B,'/' CALL outit JR 243EH LD B,'/' CALL outit LD B,tab CALL outit LD B,tab CALL outit LD A,(DE) LD L,A INC DE LD A,(DE) LD H,A INC DE PUSH DE CALL 246CH CALL prcr POP DE POP HL LD BC,6 ADD HL,BC POP AF DEC A PUSH AF JR NZ,2414H POP AF RET db 'COMMON Lengths' db cr+128 CALL hxprhl LD A,' ' CALL 2492H CALL 1DCEH LD B,'(' CALL outit LD HL,3C46H LD D,5 LD A,(HL) CP ' ' JR NZ,248AH INC HL DEC D JR NZ,2481H CALL prtstg LD B,')' JP outit PUSH AF LD DE,3C4AH LD A,5 EX AF,AF' PUSH DE LD DE,0AH CALL 1B3BH LD A,E POP DE ADD A,30H LD (DE),A EX AF,AF' DEC DE DEC A JR NZ,2498H LD B,4 POP AF LD C,A INC DE LD A,(DE) CP 30H RET NZ LD A,C LD (DE),A DJNZ 24AEH RET LD A,(3608H) CP 2 RET NZ CALL 2575H RET C LD D,H LD E,L ADD HL, DE ADD HL, DE LD DE,3967H ADD HL,DE LD A,(3612H) LD (HL),A INC HL LD DE,(3B8EH) LD (HL),D INC HL LD (HL),E RET CALL 2575H LD A,H OR L RET Z CALL prcr PUSH HL EX DE,HL LD HL,3967H LD BC,3 CALL 899H POP DE LD HL,3967H LD B,0 CALL 258AH LD A,(HL) CP B JR Z,2538H LD B,A PUSH HL PUSH DE PUSH BC CALL prcr LD A,(HL) CALL 210EH LD B,'*' CALL outit CALL outit CALL outit CALL 1DCEH LD C,1EH LD B,(HL) CALL outit DEC C LD A,(HL) INC HL AND A jp P,2513H CALL 1DCEH LD B,'*' CALL outit CALL outit CALL outit CALL 1DCEH DEC C JR NZ,252CH POP BC POP DE POP HL CALL 258AH INC HL LD A,(HL) INC HL PUSH HL LD L,(HL) LD H,A PUSH BC CALL hxprhl POP BC POP HL INC HL DEC DE LD A,D OR E JR Z,2564H PUSH BC CALL 1DCEH POP BC DEC C JR NZ,24F4H LD A,(HL) CP B JR NZ,24F4H PUSH HL PUSH DE PUSH BC LD HL,256AH CALL 2280H POP BC POP DE POP HL JR 24F1H CALL prcr JP prcr DEC C ADD HL,BC ADD HL,BC ADD HL,BC ADD HL,BC JR NZ,2591H JR NZ,2593H JR NZ,2515H LD HL,(3B0FH) LD A,H AND A JR NZ,2583H LD A,L CP 'c' JR Z,2588H JR C,2588H LD HL,64H SCF RET AND A RET PUSH HL PUSH DE PUSH BC LD A,(35ECH) SUB '$' LD L,A LD H,0 LD DE,5 CALL 1B3BH POP BC LD C,L POP DE POP HL RET PUSH HL EX DE,HL CALL 0DEEH POP HL PUSH HL CALL wr&clos POP HL PUSH HL CALL filopn SUB A LD (262DH),A POP HL PUSH HL CALL 262EH JR C,25C7H LD HL,3DD1H LD (3C3CH),HL CALL 267CH POP HL JP delfil EX AF,AF' LD (262BH),DE POP HL PUSH HL INC HL INC HL INC HL LD DE,2FABH LD BC,21H LDIR LD HL,2FA8H CALL filopn LD (IY+0),0 LD HL,262DH INC (HL) LD DE,3DD1H LD HL,2FA8H LD A,(DE) AND A JR Z,25F8H LD B,tab CALL wrque JR 25EDH EX AF,AF' JR NC,2603H POP HL PUSH HL CALL 262EH EX AF,AF' JR 25E3H LD DE,2FA8H CALL wr&clos LD A,(262DH) LD B,A LD C,0 LD HL,3DCFH ADD HL,BC LD DE,(6) CALL subdehl jp NC,nomem LD DE,(262BH) CALL 271AH CALL 267CH POP HL JP delfil dw 0 db 0 PUSH HL LD DE,3DD1H LD HL,(6) LD BC,0AH AND A SBC HL,BC CALL subdehl JR C,2648H POP HL PUSH HL CALL 265AH JR NC,2632H AND A PUSH AF SUB A LD (DE),A LD HL,909H LD (3DCFH),HL LD HL,3DCFH CALL 87DH POP AF POP HL RET CALL 2672H RET C CP 1AH JR Z,2670H LD (DE),A INC DE LD B,8 CALL 2672H RET C LD (DE),A INC DE DJNZ 2666H AND A RET SCF RET PUSH HL PUSH DE PUSH BC CALL rdnxt POP BC POP DE POP HL RET CALL 26FEH JP Z,prcr PUSH HL LD D,6 CALL prtstg CALL 1DCBH POP HL LD DE,3C46H LD BC,6 LDIR LD A,(HL) CP 'D' INC HL JR NZ,26A4H CALL 26F7H CALL 1DCEH SUB A EX AF,AF' JR 26D9H PUSH AF CALL 1DC2H 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,13H LD B,A LD A,(35ECH) SUB B JR NC,26C7H CALL prcr CALL 1DBCH CALL 1DC2H LD A,1 EX AF,AF' POP AF CP 'D' JR Z,26D1H CALL 1DCEH JR 26D6H LD B,'#' CALL outit CALL 26F7H CALL 26FEH jp Z,prcr LD DE,3C46H LD B,6 CALL 1ECCH JR NZ,26F2H LD BC,6 ADD HL,BC LD A,(HL) PUSH AF INC HL JR 26AAH CALL prcr JR 2682H LD D,(HL) INC HL LD E,(HL) EX DE,HL JP hxprhl LD A,(262DH) AND A JR NZ,2716H LD HL,(3C3CH) LD A,(HL) AND A RET Z PUSH HL PUSH DE LD DE,9 ADD HL,DE LD (3C3CH),HL POP DE POP HL RET CALL 275DH RET LD A,B LD BC,0 LD HL,3DCFH EX AF,AF' PUSH DE PUSH BC PUSH HL LD (HL),D INC HL LD (HL),E LD DE,0BH 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,2FABH LD BC,21H LDIR POP HL POP DE PUSH DE PUSH HL LD BC,0BH ADD HL,BC CALL calcoff POP DE PUSH DE CALL 27AAH POP BC POP HL POP DE ADD HL,DE PUSH HL PUSH BC POP HL POP BC INC H EX AF,AF' DEC A JR NZ,2721H RET LD DE,3DCFH LD HL,2798H LD A,(262DH) LD C,A PUSH DE LD A,(DE) CP 0FFH JR Z,2777H INC DE INC DE LD B,tab CALL 1ECCH JR C,2777H EX DE,HL POP DE INC D DEC C JR NZ,2767H LD DE,2798H CALL subdehl RET Z PUSH HL LD BC,9 LD DE,27A1H LDIR POP DE DEC DE DEC DE CALL 27AAH LD HL,27A1H SUB A INC A RET db 0ffh,0ffh,0ffh,0ffh db 0ffh,0ffh,0ffh,0ffh db 0ffh db 0,0,0,0,0,0,0,0,0 PUSH DE LD A,(DE) LD B,A INC DE LD A,(DE) LD C,A OR B JR NZ,27B8H POP DE LD A,0FFH LD (DE),A RET POP DE PUSH DE DEC BC LD A,B LD (DE),A INC DE LD A,C LD (DE),A INC DE LD HL,9 ADD HL,DE CALL 265AH JR C,27B3H POP DE RET LD HL,3D59H LD A,2 jp two92f LD HL,(3DCDH) INC HL INC HL LD A,(HL) AND A RET Z PUSH HL LD DE,8 ADD HL,DE LD A,(HL) AND 60H CP 40H JR NZ,27EFH POP HL PUSH HL LD A,0 CALL two92f POP HL LD DE,9 ADD HL,DE JR 27D9H LD HL,(3DCDH) INC HL INC HL LD A,(HL) AND A RET Z PUSH HL LD DE,8 ADD HL,DE LD A,(HL) AND 60H CP 40H LD A,(HL) JR NZ,281BH AND 1FH SUB 2 LD B,A DEC HL LD D,(HL) DEC HL LD E,(HL) POP HL PUSH HL LD A,7 CALL two92f POP HL LD DE,9 ADD HL,DE JR 27FBH LD HL,3A97H LD B,0 LD E,(HL) INC HL LD D,(HL) INC HL LD A,D OR E JR Z,2845H PUSH HL PUSH BC LD HL,3AB5H LD A,B ADD A,A LD B,A ADD A,B ADD A,B CALL addahl LD B,0 LD A,5 CALL two92f POP BC POP HL INC B LD A,0FH CP B JR NZ,2827H LD DE,(3A95H) LD B,0 LD A,D OR E JR Z,285AH LD A,0AH CALL 297DH LD DE,(3A93H) LD B,1 LD A,0DH JP 297DH LD DE,0 LD B,0 BIT 0,(IX+0) RET Z LD A,(3608H) CP 2 RET NZ BIT 0,(IX+2) JR NZ,2898H PUSH BC PUSH DE CALL 28A9H POP DE POP BC LD A,0EH CALL 297DH CALL chkrel LD A,0FH CALL 297DH CALL chkrel LD HL,fcbrel jp wr&clos PUSH DE CALL whxlin POP HL LD (hexbuf),HL SUB A LD (flaghx),A CALL 2AB2H JR 2892H LD HL,(3DCDH) INC HL INC HL LD A,(HL) AND A RET Z PUSH HL LD DE,8 ADD HL,DE LD A,(HL) AND 60H CP 20H LD A,(HL) JR NZ,28D3H AND 1FH SUB 2 LD B,A DEC HL LD D,(HL) DEC HL LD E,(HL) POP HL PUSH HL LD A,B OR D OR E JR Z,28D3H LD A,6 CALL two92f POP HL LD DE,9 ADD HL,DE JR 28AEH PUSH AF LD A,(360BH) AND A JR Z,2906H PUSH HL PUSH DE PUSH BC LD A,(3609H) CP 3 JR C,28F2H CALL 2908H LD A,3 JR 28F5H LD A,(3609H) LD B,A LD DE,(3B17H) LD A,0BH CALL 297DH XOR A LD (360BH),A POP BC POP DE POP HL POP AF RET PUSH HL PUSH DE PUSH BC PUSH AF LD B,A LD A,(3B16H) CP B JR Z,292AH LD A,B LD (3B16H),A SUB 3 LD L,A LD H,0 ADD HL,HL LD D,H LD E,L ADD HL,DE ADD HL,DE LD DE,3AB5H ADD HL,DE LD A,1 CALL two92f POP AF POP BC POP DE POP HL RET two92f: PUSH AF LD A,(HL) CP ' ' JR Z,two949 PUSH HL PUSH DE LD DE,6 two93a: LD A,(HL) CP ' ' JR Z,two944 INC HL INC D DEC E JR NZ,two93a two944: LD C,D POP DE POP HL JR 294EH two949: LD HL,two952 LD C,1 POP AF JP 297DH two952: AND B BIT 0,(IX+2) jp NZ,2A3DH CALL 28DAH AND A CALL bufrel PUSH BC LD B,8 CALL 29D6H POP BC RET LD A,B AND A RET Z LD A,(HL) CALL 2953H INC HL DEC B JR 2969H CALL 28DAH SCF CALL bufrel JR 29BCH BIT 0,(IX+2) RET NZ PUSH AF XOR A CALL 29B0H POP AF PUSH AF PUSH BC LD B,4 CALL 29C8H POP BC POP AF CP 0FH RET z CP 5 JR C,two9a1 PUSH AF LD A,B CALL 29BCH POP AF CP 0AH RET NC two9a1: LD A,C LD B,3 CALL 29C8H two9a7: LD A,(HL) CALL 2961H INC HL DEC C JR NZ,two9a7 RET SCF CALL bufrel PUSH BC LD B,2 CALL 29C8H POP BC RET CALL 29B4H LD A,E CALL 2961H LD A,D CALL 2961H RET PUSH BC PUSH AF LD A,9 SUB B LD C,A POP AF DEC c JR Z,29D5H ADD A,A JR 29CFH POP BC ADD A,A CALL bufrel DJNZ 29D6H RET bufrel: PUSH AF LD A,(3608H) CP 2 JR NZ,twoa00 BIT 0,(IX+0) JR Z,twoa00 POP AF PUSH AF LD A,(dt2a2b) RLA LD (dt2a2b),A LD A,(dt2a2c) DEC A LD (dt2a2c),A JR NZ,twoa00 CALL wrtrel twoa00: POP AF RET wrtrel: PUSH HL PUSH DE PUSH BC PUSH AF LD A,(dt2a2b) LD HL,fcbrel CALL wrnxt LD A,8 LD (dt2a2c),A POP AF POP BC POP DE POP HL RET chkrel: LD A,(dt2a2c) CP 8 RET Z LD B,A LD A,(dt2a2b) twoa23: ADD A,A DJNZ twoa23 LD (dt2a2b),A JR wrtrel dt2a2b: db 0 dt2a2c: db 0 BIT 0,(IX+2) RET Z LD A,14H CALL 1D9BH CALL 206AH SUB A INC A RET PUSH AF LD A,(3608H) CP 2 JR Z,2A47H POP AF RET POP AF PUSH HL PUSH DE PUSH BC PUSH AF LD A,(360BH) AND A JR Z,twoa62 CALL whxlin SUB A LD (360BH),A LD (flaghx),A LD HL,(3B17H) LD (hexbuf),HL twoa62: LD HL,hexdat LD A,(flaghx) CALL addahl POP AF LD (HL),A LD A,(flaghx) INC A LD (flaghx),A CP 1CH JR C,twoa8a CALL whxlin LD HL,(hexbuf) LD A,1CH CALL addahl LD (hexbuf),HL SUB A LD (flaghx),A twoa8a: POP BC POP DE POP HL RET hexbuf: db 0,0 flaghx: db 0 hexdat: db 0,0,0,0,0,0,0 db 0,0,0,0,0,0,0 db 0,0,0,0,0,0,0 db 0,0,0,0,0,0,0 whxlin: LD A,(flaghx) AND A RET Z BIT 0,(IX+0) RET Z LD A,':' CALL twob13 LD A,(flaghx) LD B,A LD E,0 CALL byt2hx LD HL,(hexbuf) LD A,H CALL byt2hx LD A,L CALL byt2hx SUB A CALL byt2hx LD HL,hexdat INC B twoad8: DEC B JR Z,twoae2 LD A,(HL) CALL byt2hx INC HL JR twoad8 twoae2: LD A,E NEG CALL byt2hx LD A,cr CALL twob13 LD A,lf JP twob13 byt2hx: PUSH AF ADD A,E LD E,A POP AF PUSH HL PUSH DE PUSH BC PUSH AF RRA RRA RRA RRA CALL snd2hx POP AF CALL snd2hx POP BC POP DE POP HL RET snd2hx: AND 0FH CP lf JR C,twob11 ADD A,7 twob11: ADD A,30H twob13: LD HL,fcbrel JP wrnxt prt&ext: CALL prtmsg JP cpm prtmsg: LD A,(DE) ;(DE)->msg. AND A RET Z PUSH DE LD E,A ;(E)=character LD D,0 LD C,2 ;write console CALL bdos POP DE INC DE JR prtmsg LD HL,(3B8EH) LD DE,1 CALL 1DFEH LD (3B8EH),HL LD DE,3B90H LD HL,(3B8EH) CALL 1E07H LD A,' ' LD (3B94H),A CALL 129AH RET NZ CALL 2B82H RET NZ LD A,(35F8H) AND A RET Z DEC A LD (35F8H),A LD HL,2B62H CALL 2BE5H JR 2B4DH db tab,tab,tab db '(***** end of' db ' include *****)' db cr LD HL,3D61H LD DE,3D64H LD BC,3 LDIR LD HL,3B95H LD B,'P' PUSH HL PUSH BC BIT 7,(IX+1) LD HL,fcbext JR NZ,2BA3H LD A,(35F8H) CALL 2BD8H CALL rdnxt POP BC POP HL RET Z CP 1AH RET Z LD (HL),A CP cr JR Z,2BC4H CP tab JR Z,2BBDH CP 0EH JR Z,2BBDH CP ' ' JR C,2B92H INC HL DJNZ 2B92H INC B DEC HL JR 2B92H LD A,B SUB 'P' JR Z,2B82H RET PUSH HL INC HL INC HL INC HL EX DE,HL LD C,86H ;convert filename to CALL bdos ; FCB POP HL JP filopn LD HL,fcbsrc AND A RET Z LD DE,24H ADD HL,DE DEC A JR NZ,2BE0H RET LD B,(HL) CALL outit LD A,(HL) CP cr RET Z INC HL JR 2BE5H outit: LD A,B AND 7FH LD B,A PUSH HL PUSH DE PUSH BC LD A,(3614H) AND A JR NZ,outit2 BIT 0,(IX+3) JR NZ,outit9 BIT 6,(IX+1) JR NZ,outit2 BIT 1,(IX+1) JR NZ,outit1 BIT 2,(IX+3) JR Z,outit2 outit1: LD A,(3611H) AND A JR NZ,outit9 outit2: LD A,B CP 0CH JR NZ,outit3 CALL outita JR outit9 outit3: LD A,(35F9H) CP (IX-5) JR C,outit4 CALL outita POP BC PUSH BC outit4: LD A,B CP cr JR NZ,outit5 CALL twod01 SUB A LD (35EDH),A INC (IX+5) JR outit9 outit5: LD A,(35EDH) CP (IX-8) JR C,outit7 outit6: CALL prcr LD B,tab CALL outit CALL outit CALL outit POP BC PUSH BC outit7: LD A, B CP 9 JR NZ,outit8 LD A,(35EDH) AND 0F8H ADD A, 8 CP (IX-8) JR C,outitx JR outit6 outit8: LD A,(35EDH) INC A outitx: LD (35EDH),A CALL twod01 outit9: POP BC POP DE POP HL RET outita: SET 1,(IX+2) LD A,(35EEH) AND A JR NZ,twoc8d LD B,0CH CALL twod01 JR twoc9d twoc8d: LD C,A LD A,(35F9H) CP 0FFH JR Z,twoc9d twoc95: LD B,cr CALL twod01 DEC C JR NZ,twoc95 twoc9d: SUB A LD (35F9H),A LD (35EDH),A LD HL,paghed LD D,35H CALL prtstg LD HL,(3D67H) CALL hxprhl LD DE,1 CALL 1DFEH LD (3D67H),HL CALL prcr LD HL,3B3DH CALL 2BE5H CALL prcr RES 1,(IX+2) RET paghed: db 'CROMEMCO CDOS Z80' db ' ASSEMBLER version' db ' 02.15',tab,tab db ' PAGE ' twod01: LD A,(3608H) CP 2 RET NZ PUSH BC LD A,(3615H) AND A JR NZ,twodl4 LD A,(3614H) AND A JR Z,twodlf twodl4: BIT 1,(IX+2) JR NZ,twodlf CALL conout JR twod26 twodlf: BIT 6,(IX+0) CALL NZ,conout twod26: BIT 7,(IX+0) CALL NZ,twod53 BIT 1,(IX+0) JR Z,twod3a LD A,B LD HL,fcbprn CALL wrnxt twod3a: POP BC LD A,B LD B,lf CP cr JR Z,twod01 RET crlf: LD B,cr CALL conout LD B,lf conout: PUSH BC LD E,B ;(E)=character LD C,2 ;write console CALL bdos POP BC RET twod53: LD A,B CP 9 JR Z,twod77 CP cr JR Z,twod7l CP ' ' JR C,twod64 LD HL,twod8a INC (HL) twod64: PUSH HL PUSH DE PUSH BC LD E,B ;(E)=character LD C,5 ;write to list device CALL bdos POP BC POP DE POP HL RET twod7l: SUB A LD (twod8a),A JR twod64 twod77: LD A,(twod8a) LD B,A AND 0F8H ADD A,8 SUB B LD C,A LD B,' ' twod83: CALL twod53 DEC C JR NZ,twod83 RET twod8a: db 0 flushp: LD HL,fcbprn jp wr&clos wrseq: LD A,(DE) CP ' ' RET Z PUSH BC PUSH DE PUSH HL PUSH BC LD B,6 CALL wrque POP AF POP HL PUSH HL CALL wrnxt POP HL PUSH HL LD A,(3B8FH) CALL wrnxt POP HL PUSH HL LD A,(3B8EH) CALL wrnxt POP HL POP DE POP BC RET cpflnm: PUSH HL LD BC,4 ADD HL,BC EX DE,HL LD BC,8 LDIR POP HL RET opnsrc: LD HL,fcbsrc CALL filopn RET NZ LD DE,srcnfd JP prt&ext srcnfd: db 'source file not' db ' found',cr,lf,0 filopn: PUSH HL CALL setbuf LD (IY+0FH),0 LD (IY+0),80H LD (IY+23H),0 POP DE INC DE ;DE -> FCB INC DE INC DE LD C,0FH ;open disk file CALL bdos CP 0FFH RET fildco: PUSH HL CALL setbuf LD (IY+0),0 POP DE INC DE INC DE ;DE -> FCB INC DE PUSH DE PUSH DE LD C,13H ;delete file CALL bdos POP DE ;DE -> FCB LD C,16H ;create file CALL bdos CP 0FFH JR Z,nospce POP DE ;DE -> FCB LD C,0FH ;open file JP bdos nospce: LD DE,nospmsg JP prt&ext nospmsg: db 'no directory' db ' space',cr,lf,0 rdnxt: PUSH HL POP IY LD A,(HL) CP 80H JR NZ,rdnxt1 PUSH HL CALL setbuf POP DE INC DE ;DE -> FCB INC DE INC DE LD C,14H ;read next record CALL bdos DEC A RET Z LD (IY+0),0 rdnxt1: LD HL,3D63H INC (HL) JR NZ,rdnxt2 DEC HL INC (HL) JR NZ,rdnxt2 DEC HL INC (HL) rdnxt2: LD A,(IY+0) INC (IY+0) LD H,(IY+2) LD L,(IY+1) CALL addahl LD A,(HL) AND A RET wrque: PUSH HL PUSH DE PUSH BC LD A,(DE) CALL wrnxt POP BC POP DE POP HL INC DE DJNZ wrque RET wrnxt: PUSH AF PUSH HL POP IY LD A,(IY+0) LD L,(IY+1) LD H,(IY+2) CALL addahl POP AF LD (HL),A INC (IY+0) LD A,(IY+0) CP 80H RET NZ LD (IY+0),0 PUSH IY POP HL PUSH HL CALL setbuf POP DE INC DE INC DE ;DE -> FCB INC DE LD C,15H ;write next record CALL bdos AND A RET Z PUSH IY POP HL LD DE,4 ADD HL,DE LD DE,wermgfn LD BC,8 LDIR ;copy filename INC DE LD BC,3 LDIR ;and extension LD DE,wermsg ;into error msg. JP prt&ext wermsg: db 'write error, file - ' wermgfn: db 'FILENAME.EXT' db cr,lf,0 wr&clos: PUSH HL CALL setbuf wcloop: POP HL PUSH HL LD A,1AH CALL wrnxt LD A,(IY+0) AND A JR NZ,wcloop POP DE INC DE ;DE -> FCB INC DE INC DE LD C,10H ;close disk file JP bdos delfil: PUSH HL CALL setbuf POP DE INC DE ;DE -> FCB INC DE INC DE LD C,13H ;delete file JP bdos setbuf: PUSH HL POP IY LD D,(IY+2) ;DE -> buffer LD E,(IY+1) LD C,1AH ;set disk buffer JP bdos calcoff: PUSH HL LD C,0 LD H,D LD L,E CALL sixX ADD HL,DE CALL C,docary EX DE,HL POP HL JP opnfil sixX: CALL twoX CALL twoX twoX: ADD HL,HL RET NC docary: INC C RET opnfil: 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,D RLCA RLCA AND 3 LD B,A LD A,C RLA RLA AND 0EH ADD A,B LD (IY+0FH),A PUSH IY POP DE INC DE INC DE ;DE -> FCB INC DE PUSH DE LD C,0FH ;open disk file CALL bdos POP DE ; DE -> FCB POP AF LD (IY+23H),A LD C,14H ;read next record CALL bdos RET fcbsrc: db 0 dw 31ech db 0,'FILENAMEZ80' db 0,0,0,0,0,0,0,0 db 0,0,0,0,0,0,0,0 db 0,0,0,0,0 db 0 dw 336ch db 0,'FILENAMEZ80' db 0,0,0,0,0,0,0,0 db 0,0,0,0,0,0,0,0 db 0,0,0,0,0 db 0 dw 33ech db 0,'FILENAMEZ80' db 0,0,0,0,0,0,0,0 db 0,0,0,0,0,0,0,0 db 0,0,0,0,0 db 0 dw 346ch db 0,'FILENAMEZ80' db 0,0,0,0,0,0,0,0 db 0,0,0,0,0,0,0,0 db 0,0,0,0,0 db 0 dw 34ech db 0,'FILENAMEZ80' db 0,0,0,0,0,0,0,0 db 0,0,0,0,0,0,0,0 db 0,0,0,0,0 fcbext: db 0 dw 356ch db 0,0,0,0,0,0,0,0,0 db 'EXT' db 0,0,0,0,0,0,0,0 db 0,0,0,0,0,0,0,0 db 0,0,0,0,0 fcbrel: db 0 dw 32ech db 0,0,0,0,0,0,0,0,0 relftyp: db 'REL' db 0,0,0,0,0,0,0,0 db 0,0,0,0,0,0,0,0 db 0,0,0,0,0 fcbprn: db 0 dw 326ch db 0,0,0,0,0,0,0,0,0 db 'PRN' db 0,0,0,0,0,0,0,0 db 0,0,0,0,0,0,0,0 db 0,0,0,0,0 fcbtmp: db 0 dw 316ch db 0,0,0,0,0,0,0,0,0 db '$$$' db 0,0,0,0,0,0,0,0 db 0,0,0,0,0,0,0,0 db 0,0,0,0,0 fcb$$0: db 0 dw 30ech db 0,0,0,0,0,0,0,0,0 db '$$0' db 0,0,0,0,0,0,0,0 db 0,0,0,0,0,0,0,0 db 0,0,0,0,0,0,0,0 db 0,0,0,0,0,0,0,0 db 0,0,0,0,0,0,0,0 db 0 end