; ; 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