; ; disassembly of Cromemco CDOS assembler ; version 3.10 rzh 7/2009 ; cpm EQU 0 tab EQU 9 bdos EQU 5 lf EQU 0ah cr EQU 0dh ; ORG 100h JP start h103: db ':' h104: db 80h h105: db 0 h106: db 14h h107: db 0 h108: db 40h db 7 db 0edh db 0edh db 3,lf db 'CROMEMCO Z80 Macro' db ' Assembler Version' db ' 03.10',lf db 0,0,0 db 'Copyright (c) 1978,' db ' 1980, 1981, 1982' db ' Cromemco, Inc.' start: LD SP,(6) LD IX,3FFBH LD DE,asmid CALL h350f CALL h375e LD HL,(6) LD DE,4E01H CALL h2859 JP C,nomem DEC HL LD (40A6H),HL LD HL,4D01H LD (4CFDH),HL LD (4CFFH),HL LD SP,4AFDH SUB A LD (447CH),A LD DE,4AFDH LD BC,200H CALL h2893 CALL hc33 LD A,(h106) AND 3CH ;< LD (IX+0),A LD A,(h107) AND 7EH ;~ LD (IX+1),A LD A,(h108) AND 7CH ;| LD (IX+2),A LD A,(h105) LD (3FF9H),A LD A,(h103) LD (3FFAH),A LD A,(h104) LD (3FF7H),A LD DE,tmstamp LD BC,16H CALL h2891 CALL h4b1 CALL h4de LD HL,5CH LD DE,3992H LD BC,z80ft CALL h37d7 LD DE,3E0EH LD BC,prnft CALL h37d7 LD DE,3D6AH LD BC,relft CALL h37d7 LD DE,3EB2H LD BC,dolft CALL h37d7 LD DE,3F56H LD BC,ddzft CALL h37d7 INC HL LD DE,4A25H LD BC,8 LDIR LD HL,81H CALL h28c6 h224: CALL h5c2 CALL h28c6 AND A JR Z,h234 PUSH HL CALL h2ff POP HL JR h224 h234: LD DE,65H LD HL,z80ft LD B,3 CALL h282e JR NZ,h249 LD HL,@@zft LD BC,3 LDIR h249: LD A,(65H) CALL h2c7 LD (3992H),A CALL h37eb LD A,(66H) CALL h284e CP 5AH ;Z JR Z,h274 SET 0,(IX+0) CALL h2c7 LD (3D6AH),A LD A,8 LD (h3446),A LD HL,3D67H CALL h382c h274: LD A,(67H) CALL h284e CP 5AH ;Z JR Z,h28c CP 58H JR Z,h29a CP 59H ;Y JR NZ,h2a0 SET 7,(IX+0) JR h2b0 h28c: RES 2,(IX+0) RES 3,(IX+1) RES 3,(IX+0) JR h2b0 h29a: SET 6,(IX+0) JR h2b0 h2a0: CALL h2c7 LD (3E0EH),A LD HL,3E0BH CALL h382c SET 1,(IX+0) h2b0: BIT 2,(IX+0) LD HL,3EAFH CALL NZ,h382c BIT 3,(IX+1) LD HL,3F53H CALL NZ,h382c JP h5cb h2c7: SUB 20H RET Z SUB 20H JR C,h2d1 CP 9 RET C h2d1: LD DE,dselmsg JP bail dselmsg: db 'Selected disk error' db cr,lf,0 z80ft: db 'Z80' relft: db 'REL' prnft: db 'PRN' dolft: db '$$$' ddzft: db '$$0' @@zft: db '@@Z' h2ff: LD DE,range h302: PUSH HL LD A,(DE) AND A JR Z,invldo h307: CALL h283f JR NZ,h31b LD A,(DE) INC DE INC HL RLA JR NC,h307 POP BC LD B,H LD C,L LD A,(DE) LD L,A INC DE LD A,(DE) LD H,A JP (HL) h31b: LD A,(DE) INC DE RLA JR NC,h31b INC DE INC DE POP HL JR h302 invldo: LD DE,invomsg JP bail invomsg: db 'Invalid option' db cr,lf,0 range: db 'RANG','E'+128 dw h3e6 db 'PARIT','Y'+128 dw h3eb db 'XRE','F'+128 dw h3f0 db 'NOXRE','F'+128 dw h3f5 db 'SYM','B'+128 dw h3fa db 'PAGE','='+128 dw h3ff db 'TOP','='+128 dw h40d db 'WIDTH','='+128 dw h41c db 'TRUNC','='+128 dw h416 db 'MACRO','='+128 dw h429 db 'NOCON','D'+128 dw h434 db 'NOGE','N'+128 dw h43d db 'NOTEX','T'+128 dw h446 db 'CON','D'+128 dw h46b db 'GE','N'+128 dw h474 db 'TEX','T'+128 dw h47d db 'LISTOF','F'+128 dw h44f db 'LISTO','N'+128 dw h458 db 'OPCOD','E'+128 dw h466 db 'DEBU','G'+128 dw h461 db 'HEX','='+128 dw h48b db 'HE','X'+128 dw h486 db 'DATE','='+128 dw h4cd db 'TIME','='+128 dw h4fd db 0 h3e6: SET 4,(IX+0) RET h3eb: SET 5,(IX+0) RET h3f0: SET 2,(IX+0) RET h3f5: RES 2,(IX+0) RET h3fa: SET 3,(IX+0) RET h3ff: LD D,0AH CALL h5ac LD (3FFAH),A CP 0FFH JP Z,invldo RET h40d: LD D,0 CALL h5ac LD (3FF9H),A RET h416: SET 6,(IX+2) JR h420 h41c: RES 6,(IX+2) h420: LD D,27H CALL h5ac LD (3FF7H),A RET h429: LD HL,0 LD (4840H),HL LD H,B LD L,C JP h1e01 h434: SET 2,(IX+1) RES 5,(IX+1) RET h43d: SET 1,(IX+1) RES 6,(IX+1) RET h446: SET 3,(IX+2) RES 2,(IX+2) RET h44f: SET 5,(IX+2) RES 4,(IX+2) RET h458: SET 4,(IX+2) RES 5,(IX+2) RET h461: SET 4,(IX+1) RET h466: SET 3,(IX+1) RET h46b: SET 5,(IX+1) RES 2,(IX+1) RET h474: SET 6,(IX+1) RES 1,(IX+1) RET h47d: SET 2,(IX+2) RES 3,(IX+2) RET h486: LD DE,0 JR h496 h48b: LD H,B LD L,C CALL h5c2 CALL h27d5 JP C,invldo h496: LD (4081H),DE SET 0,(IX+2) LD HL,hexft LD DE,3D73H LD BC,3 LDIR SUB A LD (4085H),A RET hexft: db 'HEX' h4b1: LD C,8DH ;get CDOS ver. CALL bdos LD A,B CP 1 RET C LD C,90H ;get date CALL bdos LD D,A OR B OR C RET Z LD A,D CALL h519 LD DE,tmstamp LDIR RET h4cd: CALL 50DH PUSH AF CALL 50DH PUSH AF CALL 50DH LD C,A POP AF POP HL LD B,H JR 4C4H h4de: LD C,8DH ;get CDOS ver. 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 LD A,D CALL h57c LD DE,370EH LD BC,8 LDIR RET h4fd: CALL 50DH PUSH AF CALL 50DH PUSH AF CALL 50DH POP BC POP HL LD C,H JR 4F1H LD H,B LD L,C INC HL INC HL CALL h2795 JP C,invldo LD A,E RET h519: PUSH BC PUSH AF LD A,B CP cr JR C,h523 LD B,0 SUB A h523: ADD A,A ADD A,B LD HL,months CALL h2785 LD DE,day LD BC,3 LDIR POP AF CALL h5a0 LD (date),HL POP HL LD A,L CALL h5a0 LD (year),HL LD HL,day LD BC,12 RET day: db 'MON' db ' ' date: db 'XX, 19' year: db 'XX' months: 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' h57c: PUSH AF PUSH BC LD A,C CALL h5a0 LD (hr),HL POP DE LD A,D CALL h5a0 LD (min),HL POP AF CALL h5a0 LD (sec),HL LD HL,hr RET hr: db 'XX:' min: db 'XX:' sec: db 'XX' h5a0: LD L,A LD H,0 LD A,30H CALL h2dc2 LD HL,(4917H) RET h5ac: PUSH DE LD H,B LD L,C CALL h5c2 CALL h2795 JR C,h5bf LD A,D AND A JR NZ,h5bf LD A,E POP DE CP D RET NC h5bf: JP invldo h5c2: LD A,(HL) CP 20H ;blank RET Z AND A RET Z INC HL JR h5c2 h5cb: LD A,1 LD (4016H),A CALL h6a7 LD DE,46ACH LD BC,9AH SUB A CALL h2893 CALL h72e CALL h2ece CALL h2c69 LD HL,4016H INC (HL) CALL h37eb CALL h6a7 CALL h31d9 CALL h31e1 CALL h3228 CALL h31e5 CALL h72e CALL h375e CALL h80c LD A,(4027H) AND A CALL Z,h3266 CALL h458 CALL h2e0d CALL h2c7e BIT 3,(IX+0) CALL NZ,hacb BIT 2,(IX+0) LD DE,hd1 LD HL,3EAFH CALL NZ,h2f1e RES 2,(IX+0) BIT 3,(IX+1) LD DE,hd2 LD HL,3F53H CALL NZ,h2f1e LD B,0CH LD HL,(4A33H) BIT 0,L CALL NZ,h371e LD A,(3FFBH) AND 42H ;B CP 2 CALL Z,h37a6 LD DE,eofa bail: CALL h350f JP cpm eofa: db cr,lf db 'End of assembly' db cr,lf,0 hd1: db 'Symbol',tab,' ' db ' Value Defn Ref' db 'erences',cr hd2: db 'Opcode',tab,' D' db 'efn References',cr h6a7: LD HL,0 LD (40A4H),HL LD (4840H),HL LD (4A33H),HL SUB A LD (457EH),A LD (457FH),A LD (4000H),A LD (402EH),A LD (4027H),A LD (4029H),A LD (40A2H),A LD (402DH),A LD (3FFFH),A LD (IX+3),8 LD (402FH),A LD (47DCH),A LD DE,4746H LD BC,32H CALL h2893 LD A,0FFH LD (474FH),A LD (4001H),A LD DE,4778H LD HL,h729 LD BC,4 LDIR LD HL,5DH LD BC,8 h6fb: LD A,(HL) CP ' ' JR Z,h705 LDI JP PE,h6fb h705: LD HL,h728 LD BC,6 LDIR LD A,1 LD (4024H),A LD A,1 LD HL,0 BIT 0,(IX+2) JR Z,h721 SUB A LD HL,(4081H) h721: LD (4017H),A LD (4752H),HL RET h728: db ' ' h729: db '*** ',cr h72e: CALL h351d JP Z,h80c SUB A LD (402BH),A LD (4018H),A LD (402EH),A LD A,' ' LD (4028H),A CALL h8b0 CALL h1ffb JR NZ,h72e CALL h83b JR Z,h72e LD A,(400EH) CP ' ' JR Z,h7ab h757: CALL h1a13 JR Z,h72e BIT 0,(IX+1) JR Z,h767 CALL h1f00 JR Z,h757 h767: LD DE,400EH LD HL,3F53H LD B,7FH BIT 3,(IX+1) CALL NZ,h37ac CALL h804 JR NZ,h7ba BIT 7,(HL) CALL NZ,h7d1 BIT 6,(HL) CALL Z,h7dc BIT 5,(HL) CALL Z,h7ea JR Z,h72e LD A,(HL) LD (402AH),A AND 0FH INC HL EX DE,HL ADD A,A LD HL,hc5e CALL h2785 LD B,H LD C,L LD HL,(4002H) CALL h7fc LD A,(4027H) AND A RET NZ JP h72e h7ab: CALL h7dc LD HL,(4002H) CALL h2ba3 CALL h296d JP h72e h7ba: CALL h7dc LD HL,0 LD (4030H),HL LD (4031H),HL LD A,7 CALL h275c CALL h28e6 JP h72e h7d1: LD A,(4006H) CP ' ' RET Z LD A,13H JP h275c h7dc: PUSH HL LD A,(4017H) ADD A,2 LD HL,(4752H) CALL h906 POP HL RET h7ea: LD A,(4000H) CP 1 RET NZ LD A,14H CALL h275c CALL h296d SUB A RET h7fa: LD B,D LD C,E h7fc: PUSH HL LD A,(BC) LD L,A INC BC LD A,(BC) LD H,A EX (SP),HL RET h804: LD DE,400EH LD A,4FH ;O JP h9d3 h80c: LD B,0DH ;cr JP h35cf h811: CALL h362b RET NZ LD A,(3FF9H) AND A JR NZ,h821 LD A,0FFH LD (4001H),A RET h821: LD A,(4001H) CP (IX-1) RET NC CALL h80c JR h821 h82d: LD A,0DH LD BC,64H h832: CP (HL) LDI RET Z JP PE,h832 LD (DE),A RET h83b: LD A,(4842H) CP 2AH ;* RET NZ LD HL,4843H LD DE,4914H CALL h28a2 PUSH HL LD HL,inctab CALL h2810 LD B,H LD C,L POP HL RET NZ CALL h7fc CALL h296d SUB A RET inctab: db 7,9 db 'INCLUDE' dw h87b db 'MACLIB ' dw h898 db 'RELLIB ' dw h8a1 db 0 h87b: LD A,(3FFFH) CP 4 JR Z,h893 INC A PUSH HL CALL h35b4 POP DE CALL h35a6 LD A,0DH JR Z,h895 INC (IX+4) RET h893: LD A,6 h895: JP h275c h898: LD A,(4016H) CP 1 JP Z,h1e01 RET h8a1: LD DE,4006H CALL h28a2 CALL h2ba3 LD A,3 EX DE,HL JP h3344 h8b0: LD DE,4006H LD BC,8 CALL h2891 LD HL,4842H CALL h28c6 CALL h8ef CP 3AH ;: LD HL,4842H CALL Z,h28c6 LD DE,4006H LD BC,8 h8d0: CALL h8f6 JR Z,h8dd LDI JP PE,h8d0 CALL h8ef h8dd: CP 3AH ;: JR NZ,h8e2 INC HL h8e2: CALL h28c6 LD DE,400EH CALL h28a2 LD (4002H),HL RET h8ef: CALL h8f6 RET Z INC HL JR h8ef h8f6: LD A,(HL) CP ' ' RET Z CP tab RET Z CP ':' RET Z CP ';' RET Z CP cr RET h906: LD (4914H),HL LD (4916H),A LD DE,4006H LD A,(DE) AND 7FH CP ' ' RET Z SUB A CALL ha79 RET NC CALL h961 LD D,A AND 60H CP 60H CALL Z,h957 BIT 7,D JR NZ,h93d LD A,(4916H) AND 1FH JR Z,h93d SUB D AND 1FH JR NZ,h93a LD HL,(4914H) SBC HL,BC h93a: CALL NZ,h95c h93d: LD B,7EH LD A,(4916H) AND 1FH JR NZ,h948 LD B,7FH h948: BIT 2,(IX+0) LD DE,(4004H) LD HL,3EAFH CALL NZ,h37ac RET h957: LD A,2 JP h275c h95c: LD A,8 JP h275c h961: LD A,53H ;S CALL h9d3 JR Z,h975 LD A,53H ;S CALL ha2a LD BC,(4914H) LD A,(4916H) RET h975: LD C,(HL) INC HL LD B,(HL) INC HL LD A,(4916H) LD D,A AND 1FH JR Z,h9cd LD E,(HL) LD A,(4016H) CP 2 JR Z,h9b8 LD A,E AND 1FH JR Z,h9b8 LD A,D AND E BIT 5,A JR NZ,h9b8 BIT 7,A JR NZ,h9b8 LD A,D XOR E AND 1FH JR NZ,h9aa LD A,(4914H) CP C JR NZ,h9aa LD A,(4915H) CP B JR Z,h9b8 h9aa: LD A,E CP 21H ;! LD A,40H JR Z,h9bb LD A,D CP 21H ;! JR Z,h9c8 LD E,60H h9b8: LD A,E AND 0E0H h9bb: OR D LD DE,(4914H) DEC HL LD (HL),D DEC HL LD (HL),E INC HL INC HL h9c6: LD (HL),A RET h9c8: LD A,E OR 40H LD (HL),A RET h9cd: LD A,D AND 40H OR (HL) JR h9c6 h9d3: PUSH BC CALL h9eb h9d7: LD C,(HL) INC HL LD B,(HL) LD A,B OR C JR Z,h9e7 LD H,B LD L,C CALL ha08 JR NZ,h9d7 POP BC RET h9e7: DEC HL INC A POP BC RET h9eb: PUSH BC PUSH DE LD B,8 h9ef: LD C,A LD A,(DE) CP ' ' JR Z,h9f6 INC DE h9f6: CALL h284e XOR C RLCA DJNZ h9ef LD HL,4AFDH LD C,A LD B,0 ADD HL,BC ADD HL,BC POP DE POP BC RET ha08: PUSH DE PUSH HL INC HL INC HL LD C,(HL) INC HL LD (4004H),HL LD B,8 ha13: CALL h283f JR NZ,ha27 INC DE INC HL CP ' ' JR NZ,ha23 LD A,C CP 4FH JR Z,ha25 ha23: DJNZ ha13 ha25: SUB A EX (SP),HL ha27: POP HL POP DE RET ha2a: PUSH DE LD BC,(4CFFH) LD (HL),C INC HL LD (HL),B LD HL,12H ADD HL,BC LD DE,(40A6H) CALL h2859 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 (4004H),HL LD BC,8 EX DE,HL LDIR LD BC,3 LD HL,4914H LDIR EX DE,HL LD (4CFFH),HL DEC HL POP DE RET nomem: LD DE,oommsg JP bail oommsg: db 'Out of memory' db cr,lf,0 ha79: PUSH BC PUSH HL PUSH DE EX AF,AF' LD H,D LD L,E LD A,(DE) CALL h2641 JR C,hab2 LD B,7 ha87: INC DE LD A,(DE) CALL h2641 JR NC,ha97 CALL h289b JR NC,ha97 CP ' ' JR NZ,hab2 ha97: DJNZ ha87 CALL h2591 JR Z,hab2 CALL h257a JR Z,hab2 LD DE,regs LD B,8 CALL h25aa JR Z,hab2 SCF haae: POP DE POP HL POP BC RET hab2: EX AF,AF' CALL Z,h274b CALL NZ,h2753 AND A JR haae regs: db 2,2 db '$ ' db 'I ' db 'R ' db 'SP' db 'IX' db 'IY' db 0 hacb: LD HL,symbhd CALL h135e LD DE,(4CFDH) LD HL,(4CFFH) INC DE INC DE INC HL INC HL LD (HL),0FFH LD BC,0EH CALL hb5c AND A SBC HL,BC LD B,9 LD C,5 CALL hb75 LD A,(3FF7H) ADD A,3 LD H,0 LD L,A LD DE,12H CALL h24bb LD C,L LD HL,(4CFDH) INC HL INC HL LD B,C hb03: LD A,(HL) CP 0FFH JP Z,h80c CP 53H ;S JR NZ,hb43 PUSH HL LD D,8 INC HL PUSH BC CALL h2888 INC HL INC HL LD A,(HL) CP 0FFH JR Z,hb2c DEC HL DEC HL CALL h287b LD A,(HL) AND 3FH LD (4018H),A CALL h2b85 JR hb34 hb2c: LD HL,machd LD D,6 CALL h2888 hb34: POP BC POP HL DJNZ hb3e CALL h80c LD B,C JR hb43 hb3e: PUSH BC CALL h277a POP BC hb43: LD DE,0EH ADD HL,DE JR hb03 symbhd: db 'Symbol Table',cr machd: db ' Macro' hb5c: PUSH DE POP IY hb5f: LD A,(IY+0) CP 0FFH RET Z CP 4DH ;M JR NZ,hb71 LD (IY+0),53H ;S LD (IY+0BH),0FFH hb71: ADD IY,BC JR hb5f hb75: LD (4022H),BC LD A,B ADD A,C LD C,A LD B,0 hb7e: LD (401CH),HL LD (401AH),DE CALL h2859 RET Z RET C ADD HL,BC LD (4020H),HL LD H,D LD L,E hb90: ADD HL,BC CALL hbfe JR C,hb90 LD (401EH),HL LD HL,(4020H) hb9c: AND A SBC HL,BC CALL hbfe JR Z,hba6 JR NC,hb9c hba6: LD (4020H),HL PUSH DE LD DE,(401EH) CALL h2859 JR C,hbba CALL hc23 EX DE,HL POP DE JR hb90 hbba: POP DE CALL hc23 AND A SBC HL,DE PUSH HL LD DE,(4020H) LD HL,(401CH) AND A SBC HL,DE POP DE AND A SBC HL,DE JR NC,hbe5 LD HL,(401AH) PUSH HL LD HL,(4020H) AND A SBC HL,BC PUSH HL ADD HL,BC ADD HL,BC EX DE,HL LD HL,(401CH) JR hbf7 hbe5: LD HL,(4020H) ADD HL,BC PUSH HL LD HL,(401CH) PUSH HL LD DE,(401AH) LD HL,(4020H) SBC HL,BC hbf7: CALL hb7e POP HL POP DE JR hb7e hbfe: PUSH HL PUSH DE PUSH BC EX DE,HL LD BC,(4022H) INC B INC C DEC B JR Z,hc14 CALL h283f JR NZ,hc1f INC DE INC HL JR 0C08H hc14: DEC C JR Z,hc1f LD A,(DE) CP (HL) JR NZ,hc1f INC DE INC HL JR hc14 hc1f: POP BC POP DE POP HL RET hc23: PUSH BC PUSH DE PUSH HL hc26: LD A,(DE) LDI DEC HL LD (HL),A INC HL JP PE,hc26 POP HL POP DE POP BC RET hc33: LD DE,octbl hc36: CALL hc4d RET NZ LD A,4FH ;O CALL h9eb PUSH DE DEC DE DEC DE DEC DE LDI LDD LD (HL),E INC HL LD (HL),D POP DE JR hc36 hc4d: LD A,(DE) INC DE CP 0FFH JR NZ,hc4d LD A,(DE) INC DE CP 0FFH JR NZ,hc4d LD A,(DE) INC DE CP 4FH ;O RET hc5e: dw h7fa dw h14a2 dw h14a9 dw h14b4 dw h14cf dw h14fa dw h151e dw h156a dw h1580 octbl: dw 0ffffh db 'OEQU ' db 70h dw h1114 dw 0ffffh db 'ODEFL ' db 70h dw h1110 dw 0ffffh db 'ODL ' db 70h dw h1110 dw 0ffffh db 'ODEFV ' db 60h dw h1108 dw 0ffffh db 'ODV ' db 60h dw h1108 dw 0ffffh db 'OMACRO ' db 60h dw h1bfd dw 0ffffh db 'OOMACRO ' db 60h dw h1bf0 dw 0ffffh db 'OEJECT ' db 0a0h dw h811 dw 0ffffh db 'OFORM ' db 0a0h dw h811 dw 0ffffh db 'OTITLE ' db 0a0h dw h1359 dw 0ffffh db 'OTITLE2 ' db 0a0h dw h135e dw 0ffffh db 'OSUBTTL ' db 0a0h dw h135e dw 0ffffh db 'OLIST ' db 0a0h dw h13e3 dw 0ffffh db 'ONAME ' db 0a0h dw h1223 dw 0ffffh db 'OEXT ' db 0a0h dw h1249 dw 0ffffh db 'OEXTRN ' db 0a0h dw h1249 dw 0ffffh db 'OENTRY ' db 0a0h dw h1241 dw 0ffffh db 'OGLOBAL ' db 0a0h dw h1245 dw 0ffffh db 'OABS ' db 80h dw h1300 dw 0ffffh db 'OREL ' db 80h dw h1315 dw 0ffffh db 'ODATA ' db 80h dw h1323 dw 0ffffh db 'OCOM ' db 80h dw h127b dw 0ffffh db 'OORG ' db 90h dw h12e6 dw 0ffffh db 'OMEND ' db 0a0h dw h1dd4 dw 0ffffh db 'OENDM ' db 0a0h dw h1dd4 dw 0ffffh db 'OMEXIT ' db 0a0h dw h1df5 dw 0ffffh db 'OEXITM ' db 0a0h dw h1df5 dw 0ffffh db 'OREM ' db 0a0h dw h1367 dw 0ffffh db 'OCONMSG ' db 0a0h dw h136a dw 0ffffh db 'OMNOTE ' db 0a0h dw h1383 dw 0ffffh db 'OIF ' db 0b0h dw h1f8b dw 0ffffh db 'OELSE ' db 0a0h dw h1fc7 dw 0ffffh db 'OENDIF ' db 0a0h dw h1fdf dw 0ffffh db 'OSTRUCT ' db 90h dw h1331 dw 0ffffh db 'OREPT ' db 30h dw h18b1 dw 0ffffh db 'OIRP ' db 20h dw h1903 dw 0ffffh db 'OIRPC ' db 20h dw h1907 dw 0ffffh db 'OEND ' db 20h dw h13be dw 0ffffh db 'OEXX ' db 1 EXX dw 0ffffh db 'ODAA ' db 1 DAA dw 0ffffh db 'OCPL ' db 1 CPL dw 0ffffh db 'OCCF ' db 1 CCF dw 0ffffh db 'OSCF ' db 1 SCF dw 0ffffh db 'ODI ' db 1 DI dw 0ffffh db 'OEI ' db 1 EI dw 0ffffh db 'ONOP ' db 1 NOP dw 0ffffh db 'ORLA ' db 1 RLA dw 0ffffh db 'ORRA ' db 1 RRA dw 0ffffh db 'OHALT ' db 1 HALT dw 0ffffh db 'ORLCA ' db 1 RLCA dw 0ffffh db 'ORRCA ' db 1 RRCA dw 0ffffh db 'OLDI ' db 2 db 0a0h dw 0ffffh db 'OLDD ' db 2 db 0a8h dw 0ffffh db 'OCPI ' db 2 db 0a1h dw 0ffffh db 'OCPD ' db 2 db 0a9h dw 0ffffh db 'ONEG ' db 2 db 44h dw 0ffffh db 'OIM0 ' db 2 db 46h dw 0ffffh db 'OIM1 ' db 2 db 56h dw 0ffffh db 'OIM2 ' db 2 db 5eh dw 0ffffh db 'ORLD ' db 2 db 6fh dw 0ffffh db 'ORRD ' db 2 db 67h dw 0ffffh db 'OINI ' db 2 db 0a2h dw 0ffffh db 'OIND ' db 2 db 0aah dw 0ffffh db 'OLDIR ' db 2 db 0b0h dw 0ffffh db 'OLDDR ' db 2 db 0b8h dw 0ffffh db 'OCPIR ' db 2 db 0b1h dw 0ffffh db 'OCPDR ' db 2 db 0b9h dw 0ffffh db 'ORETI ' db 2 db 4dh dw 0ffffh db 'ORETN ' db 2 db 45h dw 0ffffh db 'OINIR ' db 2 db 0b2h dw 0ffffh db 'OINDR ' db 2 db 0bah dw 0ffffh db 'OOUTI ' db 2 db 0a3h dw 0ffffh db 'OOUTD ' db 2 db 0abh dw 0ffffh db 'OOTIR ' db 2 db 0b3h dw 0ffffh db 'OOTDR ' db 2 db 0bbh dw 0ffffh db 'OLD ' db 0 dw h1744 dw 0ffffh db 'OEX ' db 0 dw h15ba dw 0ffffh db 'OJR ' db 0 dw h1628 dw 0ffffh db 'ODB ' db 0 dw h115d dw 0ffffh db 'ODM ' db 0 dw h1162 dw 0ffffh db 'ODW ' db 0 dw h116b dw 0ffffh db 'OJP ' db 0 dw h1645 dw 0ffffh db 'OIN ' db 0 dw h16b2 dw 0ffffh db 'ODS ' db 30h dw h1144 dw 0ffffh db 'OIM ' db 0 dw h160a dw 0ffffh db 'ODJNZ ' db 0 dw h161f dw 0ffffh db 'ORET ' db 0 dw h16d6 dw 0ffffh db 'ORST ' db 0 dw h16e4 dw 0ffffh db 'OJSYS ' db 0 dw h16f5 dw 0ffffh db 'OADD ' db 0 dw h1536 dw 0ffffh db 'OCALL ' db 0 dw h1700 dw 0ffffh db 'OOUT ' db 0 dw h1719 dw 0ffffh db 'ODEFB ' db 0 dw h115d dw 0ffffh db 'ODEFM ' db 0 dw h1162 dw 0ffffh db 'ODEFW ' db 0 dw h116b dw 0ffffh db 'ODEFS ' db 30h dw h1144 dw 0ffffh db 'OPUSH ' db 3 db 0c5h db 0e5h dw 0ffffh db 'OPOP ' db 3 db 0c1h db 0e1h dw 0ffffh db 'OINC ' db 4 db 3 db 23h db 4 db 34h dw 0ffffh db 'ODEC ' db 4 db 0bh db 2bh db 5 db 35h dw 0ffffh db 'ORLC ' db 5 db 0 dw 0ffffh db 'ORL ' db 5 db 10h dw 0ffffh db 'ORRC ' db 5 db 8 dw 0ffffh db 'ORR ' db 5 db 18h dw 0ffffh db 'OSLA ' db 5 db 20h dw 0ffffh db 'OSRA ' db 5 db 28h dw 0ffffh db 'OSRL ' db 5 db 38h dw 0ffffh db 'OBIT ' db 6 db 40h dw 0ffffh db 'OSET ' db 6 db 0c0h dw 0ffffh db 'ORES ' db 6 db 80h dw 0ffffh db 'OADC ' db 7 db 8 db 4ah dw 0ffffh db 'OSBC ' db 7 db 18h db 42h dw 0ffffh db 'OSUB ' db 8 db 10h dw 0ffffh db 'OAND ' db 8 db 20h dw 0ffffh db 'OXOR ' db 8 db 28h dw 0ffffh db 'OOR ' db 8 db 30h dw 0ffffh db 'OCP ' db 8 db 38h dw 0ffffh db 0 h1108: LD A,(4006H) OR 80H LD (4006H),A h1110: LD A,80H JR h1115 h1114: SUB A h1115: PUSH AF LD A,(4006H) AND 7FH CP 20H CALL Z,h274f CALL h20c4 CALL h2ba3 LD A,D AND 0BFH BIT 5,A CALL NZ,h113b LD D,A POP AF ADD A,D PUSH BC LD H,B LD L,C CALL h906 POP BC JP h297b h113b: CALL h247a LD BC,0 LD A,2 RET h1144: CALL h20c4 LD A,D CP 2 CALL NZ,h247a CALL h2ba3 PUSH BC CALL h2981 POP BC LD A,1 LD (4024H),A JP h2baf h115d: CALL h119d JR h11d2 h1162: CALL h119d LD A,(DE) OR 80H LD (DE),A JR h11d2 h116b: CALL h20c4 LD (4030H),BC CALL h266a PUSH AF CALL NZ,h2ba3 PUSH HL LD B,2 CALL h2bec h117f: POP HL POP AF RET NZ CALL h20c4 LD (4030H),BC CALL h266a PUSH AF CALL NZ,h2ba3 PUSH HL LD B,2 CALL h294a LD B,2 CALL h2bf1 JR h117f h119d: LD DE,4030H LD BC,50H h11a3: LD A,(HL) CP 27H ;' JR NZ,h11c4 PUSH HL INC HL LD A,C PUSH AF CALL h26ea POP AF SUB C JR Z,h11c3 DEC A JR Z,h11c0 POP AF h11b7: CALL h266a JR Z,h11a3 DEC DE JP h2ba3 h11c0: DEC DE INC C DEC B h11c3: POP HL h11c4: PUSH DE PUSH BC LD A,B CALL h209e POP BC POP DE LD (DE),A INC DE INC B DEC C JR h11b7 h11d2: PUSH BC LD A,B CP 5 JR C,h11fa PUSH BC LD B,4 CALL h2903 POP BC CALL h1211 JR NZ,h1202 LD HL,4034H h11e7: LD A,B SUB 4 LD B,A JR Z,h1202 CP 5 JR C,h11ff PUSH BC LD B,4 CALL h294d POP BC JR h11e7 h11fa: CALL h2903 JR h1202 h11ff: CALL h294d h1202: POP BC PUSH BC LD HL,4030H CALL h3381 POP BC LD C,B LD B,0 JP h2baf h1211: BIT 2,(IX+2) JR NZ,h1221 BIT 3,(IX+2) RET NZ BIT 3,(IX+3) RET h1221: SUB A RET h1223: CALL h3447 RET NZ CALL h28d1 JR C,h123c LD DE,4A25H CALL h28a2 SUB A CALL ha79 h1236: CALL h2ba3 JP h296d h123c: CALL h2753 JR h1236 h1241: LD A,40H JR h124b h1245: LD A,21H JR h124b h1249: LD A,22H ;" h124b: CALL h3447 RET NZ PUSH AF h1250: LD A,(4016H) CP 2 JR Z,h1276 LD DE,4006H CALL h28a2 SUB A CALL ha79 JR NC,h126d POP AF PUSH AF PUSH HL LD HL,0 CALL h906 POP HL h126d: CALL h266a JR Z,h1250 POP AF JP h296d h1276: CALL h24c1 JR h126d h127b: CALL h3447 RET NZ LD DE,4006H CALL h28a2 CALL h2ba3 LD A,(DE) CP ' ' JR Z,h1294 SUB A CALL ha79 JP NC,h296d h1294: LD A,(474EH) LD B,A LD C,0 LD HL,46CEH AND A JR Z,h12b3 h12a0: PUSH BC LD DE,4006H LD B,8 CALL h282e JR Z,h12cb LD DE,8 ADD HL,DE POP BC INC C DJNZ h12a0 h12b3: LD A,C CP 0FH JR Z,h12de INC A LD (474EH),A EX DE,HL LD HL,4006H LD BC,8 LDIR LD A,(474EH) DEC A LD C,A PUSH BC h12cb: POP HL PUSH HL LD H,0 ADD HL,HL LD DE,475AH ADD HL,DE LD E,(HL) INC HL LD D,(HL) EX DE,HL POP BC LD A,C ADD A,3 JR h1307 h12de: LD A,11H CALL h275c JP h296d h12e6: CALL h20c4 CALL h2ba3 PUSH DE PUSH BC CALL h297b POP HL POP AF SUB 2 LD (4017H),A LD A,1 LD (4024H),A JP h2bb3 h1300: CALL h2ba3 XOR A LD HL,(4754H) h1307: LD (4752H),HL LD (4017H),A LD A,1 LD (4024H),A JP h296d h1315: CALL h3447 RET NZ CALL h2ba3 LD A,1 LD HL,(4756H) JR h1307 h1323: CALL h3447 RET NZ CALL h2ba3 LD A,2 LD HL,(4758H) JR h1307 h1331: LD A,1 LD (4000H),A CALL h20c4 LD A,D CP 2 CALL NZ,h20b3 CALL h2ba3 LD HL,(4752H) LD (4750H),HL LD A,(4017H) LD (4019H),A LD (4752H),BC SUB A LD (4017H),A JP h297b h1359: LD DE,4778H JR h1361 h135e: LD DE,47DCH h1361: CALL h82d JP h811 h1367: JP h35c1 h136a: LD A,0DH LD BC,64H PUSH HL CPIR LD (HL),0AH INC HL LD (HL),0 LD A,(4016H) CP 2 POP DE CALL Z,h350f JP h296d h1383: LD A,0DH LD BC,64H PUSH HL CPIR DEC HL LD (HL),0 LD A,1 LD (402DH),A LD A,16H LD (402BH),A LD HL,notehed CALL h2b99 POP HL CALL h35c1 LD HL,tail CALL h2b99 CALL h2ddf RET notehed: db '*** mnote -',' '+128 tail: db ' ***',cr,cr+128 h13be: LD A,1 LD (4027H),A LD BC,0 LD D,2 LD A,(HL) CP ';' JR Z,h13d7 CP 0DH JR Z,h13d7 CALL h20c4 CALL h2ba3 h13d7: PUSH BC PUSH DE CALL h2981 POP BC POP DE DEC B DEC B JP h326b h13e3: LD A,(IX+3) PUSH AF h13e7: LD DE,4914H CALL h28a2 PUSH HL LD HL,opts CALL h2810 JR NZ,h1418 LD A,(HL) INC HL LD H,(HL) LD L,A CALL h141d h13fd: POP HL CALL h266a JR Z,h13e7 CALL h2ba3 POP AF LD B,(IX+3) OR B LD (IX+3),A CALL h362b LD (IX+3),B JP Z,h296d RET h1418: CALL h2753 JR h13fd h141d: JP (HL) opts: db 6,8 db 'ON ' dw h1471 db 'OFF ' dw h1476 db 'GEN ' dw h147b db 'NOGEN ' dw h1480 db 'COND ' dw h1485 db 'NOCOND' dw h148a db 'TEXT ' dw h148f db 'NOTEXT' dw h1494 db 'XREF ' dw h1498 db 'NOXREF' dw h149d db 0 h1471: RES 0,(IX+3) RET h1476: SET 0,(IX+3) RET h147b: RES 2,(IX+3) RET h1480: SET 2,(IX+3) RET h1485: RES 1,(IX+3) RET h148a: SET 1,(IX+3) RET h148f: RES 3,(IX+3) RET h1494: SET 3,(IX+3) h1498: RES 4,(IX+3) RET h149d: SET 4,(IX+3) RET h14a2: LD A,(DE) h14a3: LD (4030H),A JP 28DEH h14a9: LD A,(DE) h14aa: LD (IX+35H),0EDH h14ae: LD (4031H),A JP h28e2 h14b4: PUSH DE CALL h2557 JR Z,h14c5 CALL h257a CALL NZ,h2753 h14c0: EX (SP),HL h14c1: ADD A,(HL) POP HL JR h14a3 h14c5: LD (4030H),A SUB A h14c9: EX (SP),HL INC HL ADD A,(HL) h14cc: POP HL JR h14ae h14cf: PUSH DE CALL h2557 JR Z,h14c5 CALL h257f JR Z,h14c0 CALL h2599 JR Z,h14f2 CALL h2566 CALL NZ,h2753 EX (SP),HL INC HL INC HL INC HL SUB A h14ea: ADD A,(HL) POP HL LD (4031H),A JP h28e6 h14f2: RLCA RLCA RLCA EX (SP),HL INC HL INC HL JR h14c1 h14fa: PUSH DE CALL h2599 JR Z,h1516 CALL h2566 CALL NZ,h2753 SUB A h1507: EX (SP),HL LD (IX+36H),0CBH ADD A,6 ADD A,(HL) POP HL LD (4033H),A JP h28ea h1516: EX (SP),HL ADD A,(HL) LD (IX+35H),0CBH JR h14cc h151e: PUSH DE CALL h2048 PUSH AF CALL h2596 JR Z,h1531 CALL h2566 CALL NZ,h2753 POP AF JR h1507 h1531: LD D,A POP AF ADD A,D JR h1516 h1536: CALL h25a2 JR NZ,h1549 CALL h2660 CALL h257f CALL NZ,h2753 ADD A,9 JP h14a3 h1549: CALL h2557 LD DE,275AH JR NZ,h1580 PUSH AF CALL h2660 POP AF CP 0DDH JR Z,h155f CALL h2589 JR h1562 h155f: CALL h2584 h1562: CALL NZ,h2753 ADD A,9 JP h14ae h156a: PUSH DE CALL h25a2 JR NZ,h1581 CALL h2660 LD (IX+35H),0EDH CALL h257f CALL NZ,h2753 JP h14c9 h1580: PUSH DE h1581: CALL h15aa CALL h2599 JR Z,h159c CALL h2566 JR Z,h15a4 LD A,0C6H EX (SP),HL ADD A,(HL) LD (4030H),A POP HL CALL h20a3 JP h14ae h159c: ADD A,80H EX (SP),HL ADD A,(HL) POP HL JP h14a3 h15a4: EX (SP),HL LD A,86H JP h14ea h15aa: LD A,(HL) CALL h284e CP 'A' RET NZ LD D,H LD E,L INC HL CALL h266a RET Z EX DE,HL RET h15ba: LD DE,regs2 CALL h25aa h15c0: JP Z,h14a3 INC DE CALL h25aa JR Z,h15c0 INC DE CALL h25aa CALL NZ,h2753 CP 0E3H JR Z,h15c0 LD (4030H),A LD A,0E3H JP h14ae regs2: db 5,6 db 'DE,HL' db 0ebh db 0 db 6,7 db 'AF,AF',27h db 8 db 0 db 7,8 db '(SP),HL' db 0e3h db '(SP),IX' db 0ddh db '(SP),IY' db 0fdh db 0 h160a: CALL h20a3 CP 3 CALL NC,h20b3 AND A JR Z,h161a RLA RLA RLA ADD A,8 h161a: ADD A,46H ;F JP h14aa h161f: CALL h266a LD (IX+35H),10H JR h1637 h1628: LD (IX+35H),18H CALL h26b7 JR NZ,h1637 LD (4030H),A CALL h2660 h1637: CALL h207f JP h14ae CALL h2677 ;unref'd CALL Z,h2753 ;unref'd JR h1637 ;unref'd h1645: CALL h2677 JR Z,h165a CALL h259d JR Z,h166b CALL h2561 JR Z,h1670 LD (IX+35H),0C3H JR h1662 h165a: ADD A,0C2H LD (4030H),A CALL h2660 h1662: CALL h20c4 CALL h1675 JP h2bdb h166b: LD A,0E9H JP h14a3 h1670: LD A,0E9H JP h14ae h1675: BIT 4,(IX+0) RET Z LD A,(4030H) CP 0E0H RET NC LD A,(4017H) ADD A,2 CP (IX+1DH) RET NZ PUSH HL LD HL,(4752H) INC HL INC HL LD A,C SUB L LD L,A LD A,B SBC A,H JR Z,h16a0 INC A JR NZ,h16b0 LD A,L CP 80H JR C,h16b0 JR h16a5 h16a0: LD A,L CP 80H JR NC,h16b0 h16a5: LD (IX+2DH),'R' LD HL,(474AH) INC HL LD (474AH),HL h16b0: POP HL RET h16b2: CALL h2591 CALL NZ,h2753 PUSH AF CALL h2660 CALL h25a7 JR NZ,h16c6 POP AF ADD A,8 JR h173e h16c6: POP AF CP 7 CALL NZ,h2753 LD (IX+35H),0DBH CALL h20a3 JP h14ae h16d6: CALL h2677 JR Z,h16df LD A,0C9H JR h16e1 h16df: ADD A,0C0H h16e1: JP h14a3 h16e4: CALL h20a3 LD C,A AND 0C7H CALL NZ,h20b3 LD A,C AND 38H ADD A,0C7H JP h14a3 h16f5: LD A,0CFH LD (4030H),A CALL h20a3 JP h14ae h1700: CALL h2677 JR Z,h170f LD (IX+35H),0CDH h1709: CALL h20c4 JP h2bdb h170f: ADD A,0C4H LD (4030H),A CALL h2660 JR h1709 h1719: CALL h25a7 JR Z,h1736 LD (IX+35H),0D3H CALL h20a3 EX AF,AF' CALL h2660 CALL h284e CP 'A' CALL NZ,h2753 INC HL EX AF,AF' JP h14ae h1736: CALL h258e CALL NZ,h2753 ADD A,28H h173e: RLCA RLCA RLCA JP h14aa h1744: LD DE,regs3 CALL h25aa JP Z,h14aa LD DE,ind1 CALL h25aa JP Z,h14a3 LD DE,spreg CALL h25aa JR Z,h17cb CALL h2591 JR Z,h17d8 CALL h259d JP Z,h1819 CALL h2566 JP Z,h1825 CALL h25a2 JP Z,h183b CALL h257f JP Z,h184a CALL h2557 JP Z,h1862 JP h186d regs3: 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 ind1: 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 spreg: db 5,6 db 'SP,HL' db 0f9h db 'SP,IX' db 0ddh db 'SP,IY' db 0fdh db 0 h17cb: LD (4030H),A CP 0F9H JP Z,h14a3 LD A,0F9H JP h14ae h17d8: RLCA RLCA RLCA PUSH AF CALL h2596 JR Z,h17f8 CALL h2566 JR Z,h17ff POP BC LD A,B CP 38H JR Z,h1809 h17ec: LD A,B ADD A,6 LD (4030H),A CALL h20a3 JP h14ae h17f8: POP BC ADD A,B ADD A,40H JP h14a3 h17ff: POP BC LD A,46H ;F ADD A,B h1803: LD (4031H),A JP h28e6 h1809: LD A,(HL) CP 28H ;( JR NZ,h17ec LD A,3AH ;: h1810: LD (4030H),A CALL h20c4 JP h2bdb h1819: RLCA RLCA RLCA PUSH AF CALL h258e JR Z,h17f8 POP BC JR h17ec h1825: CALL h258e JR Z,h1837 LD (IX+36H),36H CALL h20a3 LD (4033H),A JP h28ea h1837: ADD A,70H JR h1803 h183b: CALL h2660 CP '(' LD B,20H JR NZ,h1846 LD B,')' h1846: INC B LD A,B JR h1810 h184a: LD B,A CALL h2660 CP '(' JR NZ,h1846 LD (IX+35H),0EDH LD A,4BH ;K ADD A,B h1859: LD (4031H),A CALL h20c4 JP h2be3 h1862: CALL h2660 LD A,'*' JR Z,h1859 LD A,'!' JR h1859 h186d: LD A,(HL) CP '(' CALL NZ,h2753 CALL h20c4 PUSH BC CALL h2660 CALL h284e CP 'A' JR Z,h189e CALL h2557 JR Z,h18a7 CALL h25a2 JR Z,h18ab CALL h257f CALL NZ,h2753 ADD A,'C' LD (IX+35H),0EDH h1897: LD (IX+36H),A POP BC JP h2be3 h189e: LD (IX+35H),32H INC HL h18a3: POP BC JP h2bdb h18a7: LD A,22H ;" JR h1897 h18ab: LD (IX+35H),22H ;" JR h18a3 h18b1: LD A,(4029H) CP 8 JR Z,h18f2 CALL h20c4 LD A,D CP 2 CALL NZ,h247a CALL h2ba3 PUSH BC CALL h2981 POP BC LD A,B OR C JP Z,h1d7a PUSH BC LD HL,(40A6H) PUSH HL SUB A LD (40A8H),A LD BC,0 CALL h1c5e POP HL DEC HL DEC HL DEC HL LD A,1 CALL h1a47 POP BC LD (IY-8),C LD (IY-7),B LD HL,4029H INC (HL) RET h18f2: LD A,6 CALL h275c h18f7: CALL h28da JP h1d7a POP AF ;unref'd h18fe: CALL h2753 JR h18f7 h1903: LD B,2 JR h1931 h1907: EX DE,HL CALL h1b51 JR NZ,h18fe CALL h1b51 JR Z,h18fe LD A,C AND A JR Z,h18fe LD B,C LD D,C LD C,0 h191a: CALL h1d37 JR NZ,h1923 CP 27H ;' JR NZ,h18fe h1923: INC HL DJNZ h191a JR NZ,h18fe LD A,D CP 2 JR Z,h1976 LD B,3 JR h1931 h1931: LD A,(4029H) CP 8 JR Z,h18f2 LD DE,(4002H) LD A,(DE) CP '#' JR NZ,h18fe PUSH BC CALL h1b51 JR NZ,h1975 POP AF PUSH AF CP 3 JR NZ,h194e INC DE h194e: PUSH DE LD B,0 ADD HL,BC PUSH HL CALL h28da POP HL LD (HL),0DH CALL h1cbf POP HL LD (4002H),HL LD HL,(40A6H) DEC HL DEC HL DEC HL POP AF CALL h1a47 LD BC,0 CALL h1c5e LD HL,4029H INC (HL) RET h1975: POP BC h1976: CALL h28da JP h1d7a h197c: PUSH DE LD E,(IY-8) LD D,(IY-7) LD A,(IY-9) ADD A,A LD HL,h198e CALL h2785 JP (HL) h198e: JR h1996 JR h199a JR h19bd JR h19c4 h1996: POP DE SUB A INC A RET h199a: DEC DE LD A,E OR D JR Z,h19dc h199f: LD A,(40A2H) AND A JR NZ,h19dc POP HL LD (IY-8),E LD (IY-7),D CALL h1a85 LD L,(IY-6) LD H,(IY-5) LD (IY-4),L LD (IY-3),H SUB A RET h19bd: CALL h1b51 JR NZ,h19dc JR h199f h19c4: LD A,(DE) INC DE CP 27H ;' JR NZ,h19cb INC DE h19cb: LD A,(DE) AND A JR Z,h19dc CP 27H ;' JR NZ,h199f INC DE LD A,(DE) DEC DE CP 27H ;' JR Z,h199f JR h19dc h19dc: LD E,(IY-6) LD D,(IY-5) INC DE INC DE INC DE POP HL h19e6: PUSH DE LD DE,(40A6H) CALL h2859 POP DE JR Z,h1a0c JR C,h1a0c LD C,(HL) DEC HL LD B,(HL) INC HL PUSH BC POP IY LD (IY+0BH),E LD (IY+0CH),D LDD LDD h1a04: LD A,(HL) LDD INC A JR NZ,h1a04 JR h19e6 h1a0c: LD (40A6H),DE SUB A INC A RET h1a13: LD DE,400EH CALL h1d45 RET NZ PUSH HL CALL h7dc CALL h1a93 POP HL LD A,(4029H) CP 8 JR Z,h1a3f BIT 7,(HL) LD A,12H CALL NZ,h275c DEC HL LD A,0 CALL h1a47 CALL h28da LD HL,4029H INC (HL) SUB A RET h1a3f: LD A,6 CALL h275c JP h28da h1a47: PUSH AF LD A,(4029H) INC A CALL h1a78 POP AF LD (IY-9),A LD A,(3FFFH) LD (IY-10),A LD (IY-6),L LD (IY-5),H LD (IY-4),L LD (IY-3),H CALL h1a85 PUSH IY POP DE LD (IY-8),E LD (IY-7),D LD HL,(4002H) CALL h82d RET h1a78: LD IY,40A8H LD DE,6EH h1a7f: ADD IY,DE DEC A JR NZ,h1a7f RET h1a85: LD HL,(40A4H) LD (IY-2),L LD (IY-1),H INC HL LD (40A4H),HL RET h1a93: BIT 0,(HL) JR NZ,h1aa2 LD B,0FFH LD HL,3EAFH BIT 2,(IX+0) JR h1aab h1aa2: LD B,7FH LD HL,3F53H BIT 3,(IX+1) h1aab: LD DE,400EH CALL NZ,h37ac RET h1ab2: LD A,(4029H) AND A RET Z CALL h1a78 LD A,(3FFFH) CP (IY-0AH) JR Z,h1ac4 SUB A RET h1ac4: LD HL,4842H LD B,64H h1ac9: LD E,(IY-4) LD D,(IY-3) h1acf: LD A,(DE) DEC DE CP 0FFH JR Z,h1af0 AND A JP M,h1ae5 LD (HL),A CP 0DH JR Z,h1aff INC HL DJNZ h1acf DEC HL INC B JR h1acf h1ae5: LD (IY-4),E LD (IY-3),D CALL h1b08 JR h1ac9 h1af0: CALL h197c JR Z,h1ac4 LD HL,4029H DEC (HL) SUB A LD (40A2H),A JR h1ab2 h1aff: LD (IY-4),E LD (IY-3),D SUB A INC A RET h1b08: PUSH HL CP 0FEH JR Z,h1b33 LD E,(IY-8) LD D,(IY-7) BIT 0,(IY-9) JR NZ,h1b47 AND 7FH INC A h1b1c: PUSH AF CALL h1b51 POP AF DEC A JR NZ,h1b1c EX DE,HL CALL h1b85 h1b28: POP HL h1b29: LD A,C OR A RET Z EX DE,HL LDI EX DE,HL DJNZ h1b29 RET h1b33: PUSH BC LD L,(IY-2) LD H,(IY-1) LD A,'0' CALL h2dc2 POP BC LD DE,4915H LD C,4 JR h1b28 h1b47: LD A,(DE) LD C,1 CP 27H ;' JR NZ,h1b28 INC C JR h1b28 h1b51: EX DE,HL CALL h28c6 LD D,H LD E,L LD C,0 h1b59: CALL h1d37 INC HL JR C,h1b69 JR NZ,h1b59 CP ';' JR Z,h1b69 CP ',' JR NZ,h1b59 h1b69: DEC HL LD A,L SUB E LD C,A PUSH HL h1b6e: LD A,C OR A JR Z,h1b7f DEC HL LD A,(HL) CP 9 JR Z,h1b7c CP ' ' JR NZ,h1b7f h1b7c: DEC C JR h1b6e h1b7f: POP HL CALL h266a EX DE,HL RET h1b85: LD L,(IY-4) LD H,(IY-3) LD A,(HL) CP '(' RET NZ DEC HL PUSH BC PUSH DE LD DE,48A6H LD BC,0 h1b98: INC B h1b99: CALL h1d37 DEC HL LD (DE),A INC DE JR C,h1bed JR NZ,h1b99 CP 28H ;( JR Z,h1b98 CP 29H ;) JR NZ,h1b99 DJNZ h1b99 EX DE,HL DEC HL LD (HL),';' LD (IY-4),E LD (IY-3),D PUSH IY LD HL,48A6H CALL h20a3 PUSH BC CALL h266a CALL Z,h20a3 POP HL POP IY LD H,C POP DE POP BC LD A,C OR A RET Z LD A,L CALL h1be7 LD L,A LD A,H CALL h1be7 CALL h1be3 h1bdb: DEC L RET Z RET M INC DE DEC C RET Z JR h1bdb h1be3: CP C RET NC LD C,A RET h1be7: BIT 7,A RET Z ADD A,C INC A RET h1bed: POP DE POP BC RET h1bf0: LD HL,3F53H LD B,7EH BIT 3,(IX+1) LD C,1 JR h1c08 h1bfd: LD HL,3EAFH LD B,0FEH BIT 2,(IX+0) LD C,0 h1c08: LD DE,4006H CALL NZ,h37ac LD DE,4006H LD A,(DE) CP 20H JR Z,h1c53 CALL h1d45 JR NZ,h1c34 LD A,(4016H) CP 2 JR Z,h1c24 SET 7,(HL) h1c24: BIT 7,(HL) LD A,12H CALL NZ,h275c CALL h1cbf CALL h296d JP h1d7a h1c34: LD A,C PUSH AF LD BC,(40A6H) LD (4914H),BC LD BC,(4CFFH) PUSH BC SUB A LD (4916H),A LD A,4DH CALL ha2a CALL h1cbf POP BC POP AF JR h1c5e h1c53: LD A,5 CALL h275c CALL h296d JP h1d7a h1c5e: LD HL,(40A6H) LD (HL),C DEC HL LD (HL),B DEC HL LD (HL),A DEC HL LD A,1 LD (40A3H),A EX DE,HL h1c6d: PUSH DE CALL h1d52 JR C,h1cb7 PUSH AF CALL h296d POP AF JR Z,h1cb7 POP DE LD HL,(4CFFH) LD BC,64H ADD HL,BC CALL h2859 JP NC,nomem LD HL,4842H LD C,0 h1c8d: CALL h1d37 JR NZ,h1c97 CP ';' CALL Z,h1ca9 h1c97: PUSH BC PUSH DE CP '#' CALL Z,h1cf0 POP DE POP BC LD (DE),A DEC DE INC HL CP cr JR NZ,h1c8d JR h1c6d h1ca9: INC HL CP (HL) DEC HL RET NZ INC DE EX DE,HL CALL h28c6 EX DE,HL DEC DE LD A,0DH RET h1cb7: POP HL LD (HL),0FFH DEC HL LD (40A6H),HL RET h1cbf: LD HL,(4002H) LD DE,40A8H LD BC,64H h1cc8: CALL h28c6 CP cr JR Z,h1ced CP ';' JR Z,h1ced CP '#' CALL NZ,h2753 LDI CALL h28c6 CP cr JR Z,h1ced CP ';' JR Z,h1ced CP ',' JR NZ,1CD8H LDI JR h1cc8 h1ced: SUB A LD (DE),A RET h1cf0: LD DE,symhed LD B,4 CALL h282e JR NZ,h1d01 LD DE,3 ADD HL,DE LD A,0FEH RET h1d01: LD DE,40A8H LD B,80H LD A,(DE) AND A JR Z,h1d31 CP ',' JR Z,h1d2a h1d0e: PUSH HL h1d0f: LD A,(DE) AND A JR Z,h1d2d CP ',' JR Z,h1d2d CALL h283f JR NZ,h1d20 INC HL INC DE JR h1d0f h1d20: POP HL h1d21: LD A,(DE) INC DE AND A JR Z,h1d31 CP ',' JR NZ,h1d21 h1d2a: INC B JR h1d0e h1d2d: POP AF DEC HL LD A,B RET h1d31: LD A,(HL) RET symhed: db '#SYM' h1d37: LD A,(HL) CP cr SCF RET Z CP 27H JR NZ,h1d41 INC C h1d41: OR A BIT 0,C RET h1d45: LD A,'M' CALL h9d3 RET NZ LD A,(HL) INC HL LD H,(HL) LD L,A DEC HL DEC HL RET h1d52: BIT 7,(IX+1) JR Z,h1d5d CALL h3562 JR h1d60 h1d5d: CALL h351d h1d60: SCF RET Z CALL h8b0 LD HL,40A3H CALL h1d8b JR NZ,h1d71 DEC (HL) CALL h7d1 h1d71: CALL h1d9b JR NZ,h1d77 INC (HL) h1d77: LD A,(HL) OR A RET h1d7a: LD A,1 LD (40A3H),A h1d7f: CALL h1d52 RET C JP Z,h296d CALL h296d JR h1d7f h1d8b: LD DE,menmsg JR h1d9e menmsg: db 4,4,'MENDENDM',0 h1d9b: LD DE,macwds h1d9e: PUSH HL LD HL,400EH CALL h25aa POP HL RET macwds: db 6,7,'OMACRO' db 81h db 'MACRO ' db 80h db 'REPT ' db 0 db 'IRP ',0 db 'IRPC ',0 db 'STRUCT',0 db 0 h1dd4: LD A,(4000H) AND A JR Z,h1ded SUB A LD (4000H),A LD HL,(4750H) LD (4752H),HL LD A,(4019H) LD (4017H),A JP h296d h1ded: LD A,10H CALL h275c JP h296d h1df5: LD A,(4029H) AND A JR Z,h1ded LD (40A2H),A JP h296d h1e01: LD A,(447CH) CP 10H JP Z,h1ea0 LD (447DH),A CALL h1e57 SUB A h1e10: PUSH AF h1e11: CALL h3562 JR Z,h1e4b CALL h8b0 CALL h1d9b JR Z,h1e29 CALL h1d8b JR NZ,h1e11 POP AF JR Z,h1e9a DEC A JR h1e10 h1e29: LD B,A POP AF JR NZ,h1e48 BIT 7,B JR Z,h1e48 LD HL,4A30H LD DE,4914H LD BC,3 LDIR LD DE,4006H LD A,'L' CALL h9d3 CALL NZ,ha2a SUB A h1e48: INC A JR h1e10 h1e4b: POP AF JR NZ,h1e9a RES 7,(IX+1) LD HL,447CH INC (HL) RET h1e57: SET 0,(IX+1) EX DE,HL LD HL,3CC3H CALL h35a6 JR Z,h1ea6 LD A,(447CH) CALL h1e90 EX DE,HL LD HL,4840H LD BC,2 LDIR LD HL,3CC6H LD BC,0EH LDIR LD A,(447CH) ADD A,A ADD A,A ADD A,A ADD A,A LD (4A2DH),A LD HL,0 LD (4A2EH),HL SET 7,(IX+1) RET h1e90: ADD A,A ADD A,A ADD A,A ADD A,A LD HL,447EH JP h2785 h1e9a: LD DE,mlermsg JP bail h1ea0: LD DE,xmlmsg JP bail h1ea6: LD DE,mlnfmsg JP bail mlermsg: db 'MACRO library' db ' mismatch error' db cr,lf,0 xmlmsg: db 'Too many MACRO' db ' libraries',cr,lf,0 mlnfmsg: db 'MACRO library not' db ' found',cr,lf,0 h1f00: LD A,(4016H) DEC A RET NZ LD DE,400EH LD A,'L' CALL h9d3 RET NZ LD DE,(4840H) PUSH DE PUSH HL LD A,(447DH) LD B,A LD A,(HL) RRCA RRCA RRCA RRCA AND 0FH LD C,A LD (447DH),A PUSH BC CALL h1e90 LD DE,4840H LD BC,2 LDIR POP BC LD A,B CP C JR Z,h1f41 LD DE,3CC6H LD BC,0EH LDIR LD A,0FFH LD (3CD2H),A h1f41: POP HL LD A,(HL) AND 0FH LD C,A INC HL LD D,(HL) INC HL LD E,(HL) LD HL,3CC3H CALL h395a SET 7,(IX+1) LD HL,4842H LD DE,48A6H LD BC,64H LDIR CALL h3562 CALL h8b0 CALL h1d9b RRA JR C,h1f70 CALL h1bfd JR h1f73 h1f70: CALL h1bf0 h1f73: RES 7,(IX+1) LD HL,48A6H LD DE,4842H LD BC,64H LDIR POP HL LD (4840H),HL CALL h8b0 SUB A RET h1f8b: LD A,(457EH) CP 8 JR Z,h1fbf INC A LD (457EH),A CALL h200b JR NZ,h1fb7 CALL h20c4 CALL h2ba3 LD A,D CP 2 CALL NZ,h247a LD A,B OR C CP 1 LD HL,457FH RL (HL) CALL h2030 CALL Z,h297b RET h1fb7: SCF LD HL,457FH RL (HL) JR h1fd8 h1fbf: LD A,6 CALL h275c JP h296d h1fc7: LD A,(457EH) AND A JR Z,h1ff3 CALL h2ba3 LD A,(457FH) XOR 1 LD (457FH),A h1fd8: CALL h2030 CALL Z,h296d RET h1fdf: LD A,(457EH) AND A JR Z,h1ff3 CALL h2ba3 LD HL,457EH DEC (HL) LD HL,457FH SRL (HL) JR h1fd8 h1ff3: LD A,0FH CALL h275c JP h296d h1ffb: CALL h200b CALL NZ,h2015 RET Z CALL h2030 CALL Z,h296d SUB A INC A RET h200b: LD A,(40A2H) AND A RET NZ LD A,(457FH) AND A RET h2015: LD DE,ifwds LD HL,400EH JP h25aa ifwds: db 5,5 db 'IF ' db 'ELSE ' db 'ENDIF' db 0 h2030: LD A,(402DH) AND A JR NZ,h2046 BIT 5,(IX+1) JR NZ,h2046 BIT 2,(IX+1) RET NZ BIT 1,(IX+3) RET h2046: SUB A RET h2048: CALL h20a3 CP 8 CALL NC,h20b3 RLCA RLCA RLCA RET h2054: LD A,(HL) CP ')' JR NZ,h2061 INC HL LD BC,0 LD D,2 LD A,C RET h2061: CALL h20b8 LD A,D CP 2 CALL NZ,h247a h206a: LD A,B AND A JR Z,h2077 INC A JR NZ,h207b LD A,C CP 80H JR C,h207b RET h2077: LD A,C CP 80H RET C h207b: LD A,9 JR h20b5 h207f: CALL h20c4 LD A,(4017H) ADD A,2 CP D CALL NZ,h247a LD A,2 LD (4018H),A LD DE,(4752H) INC DE INC DE LD A,C SUB E LD C,A LD A,B SBC A,D LD B,A JR h206a h209e: CALL h20c5 JR h20a6 h20a3: CALL h20c4 h20a6: LD A,D CP 2 CALL NZ,h247a LD A,B AND A JR Z,h20b1 INC A h20b1: LD A,C RET Z h20b3: LD A,0CH h20b5: JP h275c h20b8: SUB A LD (4928H),A LD (49BFH),A LD BC,7FH JR h211a h20c4: SUB A h20c5: LD (4080H),A SUB A LD (4928H),A LD (49BFH),A h20cf: CALL h28c6 CALL h2229 JR Z,h211a CALL h2236 JR Z,h2151 CALL h2240 JR Z,h211a LD A,(HL) CP 27H JP Z,h217f CP 22H JP Z,h2168 CALL h289b JP NC,h2174 CALL h2641 CALL C,h2747 CALL h24c1 h20fb: CALL h21b4 JP Z,h21ab h2101: CALL h28c6 CALL h2236 JR Z,h2151 CALL h2262 JR NZ,h212b PUSH BC h210f: CALL h2206 POP BC JR Z,h211a CP C JR C,h2122 JR Z,h2122 h211a: CALL h21ed JP Z,h21ab JR h20cf h2122: PUSH BC CALL h230c JP C,h21aa JR h210f h212b: CALL h2206 JR Z,h2137 CALL h230c JR C,h21ab JR h212b h2137: CALL h21d1 JR Z,h21ab LD A,C CP 0FFH JR Z,h21ab AND 60H CP 20H LD A,C JR Z,h214a AND 1FH h214a: LD (4018H),A LD B,D LD C,E LD D,A RET h2151: CALL h2206 JR Z,h21ab CP 7FH JR Z,h2161 CALL h230c JR C,h21ab JR h2151 h2161: CALL h221b JR Z,h21ab JR h2101 h2168: INC HL LD D,H LD E,L CALL h2301 JR C,h21ab LD C,0FFH JR h20fb h2174: CALL h247f CALL C,h2747 LD C,2 JP h20fb h217f: INC HL LD BC,2 LD DE,4914H CALL h26ea LD DE,0 JR NC,h21a2 INC B DEC B JR Z,h21a5 LD DE,(4914H) DEC B JR Z,h219e LD A,D LD D,E LD E,A JR h21a5 h219e: LD D,0 JR h21a5 h21a2: CALL h2747 h21a5: LD C,2 JP h20fb h21aa: POP BC h21ab: CALL h247a LD BC,0 LD D,0 RET h21b4: LD A,(4928H) CP '2' RET Z PUSH HL INC A LD (4928H),A LD HL,4926H LD B,A ADD A,B ADD A,B CALL h2785 LD (HL),E INC HL LD (HL),D INC HL LD (HL),C POP HL SUB A INC A RET h21d1: LD A,(4928H) AND A RET Z PUSH HL DEC A LD (4928H),A LD HL,4929H LD B,A ADD A,B ADD A,B CALL h2785 LD E,(HL) INC HL LD D,(HL) INC HL LD C,(HL) POP HL SUB A INC A RET h21ed: LD A,(49BFH) CP '2' RET Z PUSH HL INC A LD (49BFH),A LD HL,49BEH ADD A,A CALL h2785 LD (HL),B INC HL LD (HL),C POP HL SUB A INC A RET h2206: LD A,(49BFH) AND A RET Z PUSH HL LD HL,49BEH ADD A,A CALL h2785 LD B,(HL) INC HL LD C,(HL) POP HL SUB A INC A LD A,C RET h221b: CALL h2206 RET Z LD A,(49BFH) DEC A LD (49BFH),A SUB A INC A RET h2229: LD BC,7FH LD A,(HL) INC HL CP '[' RET Z CP '(' RET Z DEC HL RET h2236: LD A,(HL) INC HL CP ']' RET Z CP ')' RET Z DEC HL RET h2240: LD DE,unops JR h2265 unops: db '+'+128 db 86h,1 db '-'+128 db 8ch,1 db '^'+128 db 93h,1 db '~'+128 db 88h,4 db 'NO','T'+128 db 88h,4 db 'LO','W'+128 db 94h,8 db 'HIG','H'+128 db 95h,8 db 0 h2262: LD DE,relops h2265: JR h22cf relops: db '+'+128 db 6,3 db '-'+128 db 7,3 db '*'+128 db 1,2 db '/'+128 db 2,2 db '%'+128 db 3,2 db '&'+128 db 9,5 db '|'+128 db 10,6 db '>','>'+128 db 5,2 db '<','<'+128 db 4,2 db '>','='+128 db 18,7 db '<','='+128 db 17,7 db '<','>'+128 db 16,7 db '>'+128 db 13,7 db '<'+128 db 14,7 db '='+128 db 15,7 db 'MO','D'+128 db 3,2 db 'SH','L'+128 db 4,2 db 'SH','R'+128 db 5,2 db 'AN','D'+128 db 9,5 db 'O','R'+128 db 10,6 db 'XO','R'+128 db 11,6 db 'L','T'+128 db 14,7 db 'G','T'+128 db 13,7 db 'E','Q'+128 db 15,7 db 'N','E'+128 db 16,7 db 'L','E'+128 db 17,7 db 'G','E'+128 db 18,7 db 0 h22cf: PUSH HL h22d0: LD A,(DE) AND A JR Z,h22fe CALL h283f JR NZ,h22f4 LD A,(DE) INC HL INC DE AND A JP P,h22d0 AND 7FH CALL h2656 JR C,h22ec CALL h28d1 JR NC,h22fe h22ec: POP BC LD A,(DE) LD B,A INC DE LD A,(DE) LD C,A SUB A RET h22f4: LD A,(DE) INC DE RLA JR NC,h22f4 INC DE INC DE POP HL JR h22cf h22fe: POP HL INC A RET h2301: LD A,(HL) CP cr SCF RET Z INC HL CP 22H ;" JR NZ,h2301 RET h230c: PUSH HL CALL h221b JR Z,h2361 LD A,B AND A JP M,h234f PUSH BC CALL h21d1 JR Z,h2360 PUSH DE PUSH BC CALL h21d1 JR Z,h235e EX DE,HL POP DE LD B,C LD C,E POP DE h2329: EX (SP),HL LD A,H AND 7FH LD HL,adrtbl RLA CALL h2785 LD A,(HL) INC HL LD H,(HL) LD L,A PUSH HL POP IY POP HL LD A,2 LD (4A24H),A CALL h2364 EX DE,HL LD A,(4A24H) LD C,A CALL h21b4 AND A POP HL RET h234f: PUSH BC CALL h21d1 JR Z,h2360 EX DE,HL LD B,C LD DE,0 LD C,2 JR h2329 h235e: POP HL POP HL h2360: POP HL h2361: POP HL SCF RET h2364: JP (IY) adrtbl: dw h247a dw h2392 dw h2398 dw h239e dw h23a5 dw h23af dw h23bc dw h23c6 dw h23c1 dw h23cd dw h23d7 dw h23e1 dw h23c2 dw h23f1 dw h23f2 dw h23fc dw h2405 dw h240c dw h240d dw h23a3 dw h23ec dw h23eb h2392: CALL h2447 JP h24b4 h2398: CALL h2447 JP h24bb h239e: CALL h2398 EX DE,HL RET h23a3: INC DE EX DE,HL h23a5: CALL h2447 h23a8: LD A,D OR E RET Z ADD HL,HL DEC DE JR h23a8 h23af: CALL h2447 h23b2: LD A,D OR E RET Z SRL H RR L DEC DE JR h23b2 h23bc: CALL h2453 ADD HL,DE RET h23c1: DEC DE h23c2: EX DE,HL LD A,B LD B,C LD C,A h23c6: CALL h2464 AND A SBC HL,DE RET h23cd: CALL h2447 LD A,H AND D LD H,A LD A,L AND E LD L,A RET h23d7: CALL h2447 LD A,H OR D LD H,A LD A,L OR E LD L,A RET h23e1: CALL h2447 LD A,H XOR D LD H,A LD A,L XOR E LD L,A RET h23eb: LD L,H h23ec: LD H,0 JP h2447 h23f1: EX DE,HL h23f2: CALL h2415 JP M,h2401 h23f8: LD HL,0 RET h23fc: CALL h2415 JR NZ,h23f8 h2401: LD HL,0FFFFH RET h2405: CALL h2415 JR Z,h23f8 JR h2401 h240c: EX DE,HL h240d: CALL h2415 JP M,h23f8 JR h2401 h2415: CALL h241c AND A SBC HL,DE RET h241c: LD A,B CP C JR NZ,h247a CP 0FFH RET NZ LD A,(HL) CP 22H ;" JR Z,h2437 LD A,(DE) CP 22H ;" JR Z,h2440 CALL h283f LD A,(DE) JR NZ,h2441 INC DE INC HL JR 2423H h2437: LD A,(DE) CP 22H ;" JR Z,h2441 LD L,0 JR h2442 h2440: SUB A h2441: LD L,(HL) h2442: LD E,A LD H,0 LD D,H RET h2447: CALL h2475 LD A,B CP C JR NZ,h247a CP 2 JR NZ,h247a RET h2453: LD A,B CP 2 LD A,C JR NZ,h245d h2459: LD (4A24H),A RET h245d: CP 2 LD A,B JR Z,h2459 JR h247a h2464: BIT 5,B JR NZ,h246b LD A,B CP C RET Z h246b: LD A,C CP 2 JR NZ,h247a LD A,B LD (4A24H),A RET h2475: LD A,B OR C BIT 5,A RET Z h247a: LD A,3 JP h275c h247f: PUSH HL h2480: INC HL CALL h28d1 JR NC,h2480 DEC HL POP BC LD A,(HL) CALL h284e CP 'H' JR Z,h24a0 CP 'D' JR Z,h24a5 CP 'Q' JR Z,h24aa CP 'B' JR Z,h24af INC HL JP h2795 h24a0: CALL h27d5 INC HL RET h24a5: CALL h2795 INC HL RET h24aa: CALL h27ad INC HL RET h24af: CALL h27c2 INC HL RET h24b4: LD C,89H CALL bdos EX DE,HL RET h24bb: LD C,8AH CALL bdos RET h24c1: LD DE,490AH CALL h28a2 LD A,(DE) CP '$' JR NZ,h24d3 INC DE LD A,(DE) DEC DE CP ' ' JR Z,h2544 h24d3: PUSH HL SUB A INC A CALL ha79 JR NC,h253d LD HL,0 LD (4914H),HL LD (4916H),HL CALL h961 LD D,B LD E,C LD C,A AND 60H CP 60H CALL Z,h957 LD A,C AND 3FH CALL Z,h2516 BIT 5,A JR Z,h2501 LD DE,0 LD (4025H),HL h2501: LD C,A PUSH DE LD HL,3EAFH LD DE,(4004H) LD B,7FH BIT 2,(IX+0) CALL NZ,h37ac POP DE POP HL RET h2516: LD A,(4016H) DEC A JR Z,h2522 CALL h2757 LD A,2 RET h2522: LD A,15H LD (402BH),A LD A,(402AH) BIT 4,A LD A,2 RET Z LD (402EH),A LD (402DH),A LD HL,(4746H) INC HL LD (4746H),HL RET h253d: LD DE,0 LD C,2 POP HL RET h2544: PUSH HL LD HL,(4752H) LD A,(4080H) CALL h2785 EX DE,HL POP HL LD A,(4017H) ADD A,2 LD C,A RET h2557: LD DE,idxregs CALL h25aa LD (4030H),A RET h2561: LD DE,indxreg JR 255AH h2566: LD DE,ixofreg CALL h25aa RET NZ PUSH AF CALL h2054 LD (4032H),A LD B,A POP AF LD (4030H),A RET h257a: LD DE,rg16af JR h25aa h257f: LD DE,rg16sp JR h25aa h2584: LD DE,rg16ix JR h25aa h2589: LD DE,rg16iy JR h25aa h258e: CALL h2660 h2591: LD DE,rg8b JR h25aa h2596: CALL h2660 h2599: CALL h2591 RET Z h259d: LD DE,hlind JR h25aa h25a2: LD DE,hlreg JR h25aa h25a7: LD DE,ioc h25aa: PUSH HL EX DE,HL CALL h2810 EX DE,HL JR NZ,h25b8 ADD HL,BC CALL h28d1 JR C,h25bc h25b8: SUB A INC A POP HL RET h25bc: SUB A LD A,(DE) POP BC RET idxregs: db 2,3 db 'IX' db 0ddh db 'IY' db 0fdh db 0 indxreg: db 4,5 db '(IX)' db 0ddh db '(IY)' db 0fdh db 0 ixofreg: db 3,4 db '(IX' db 0ddh db '(IY' db 0fdh db 0 rg16af: db 2,3 db 'BC' db 0 db 'DE' db 10h db 'HL' db 20h db 'AF' db 30h db 0 rg16sp: db 2,3 db 'BC' db 0 db 'DE' db 10h db 'HL' db 20h db 'SP' db 30h db 0 rg16ix: db 2,3 db 'BC' db 0 db 'DE' db 10h db 'IX' db 20h db 'SP' db 30h db 0 rg16iy: db 2,3 db 'BC' db 0 db 'DE' db 10h db 'IY' db 20h db 'SP' db 30h db 0 rg8b: 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 hlind: db 4,5 db '(HL)' db 6 db 0 hlreg: db 2,2 db 'HL' db 0 ioc: db 3,3 db '(C)' db 0 h2641: CALL h2656 RET NC CP '.' RET Z CP '$' RET Z CP '_' RET Z CP '?' RET Z CP '@' RET Z SCF RET h2656: CALL h284e CP 'A' RET C CP '[' CCF RET h2660: CALL h266a CALL NZ,h2753 LD A,(HL) CP '(' RET h266a: CALL h28c6 LD A,(HL) CP ',' RET NZ INC HL CALL h28c6 SUB A RET h2677: CALL h26b7 JR NZ,h2680 SUB 20H h267e: CP A RET h2680: LD DE,flags CALL h26ba RET NZ BIT 5,(IX+0) RET Z CP '(' JR Z,h2694 CP ' ' JR NZ,h267e h2694: PUSH HL LD HL,(474CH) INC HL LD (474CH),HL LD (IX+2DH),'P' POP HL RET flags: 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 h26b7: LD DE,comps h26ba: PUSH DE LD DE,4914H CALL h28a2 EX (SP),HL EX DE,HL CALL h25aa JR NZ,h26ca POP HL RET h26ca: POP HL LD HL,(4002H) RET comps: 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 h26ea: INC C h26eb: PUSH BC PUSH DE LD A,(HL) CP 27H ;' JR Z,h272b CP '\' JR Z,h2706 h26f6: LD A,(HL) CP 0DH JR Z,h2731 h26fb: POP DE POP BC AND A DEC C RET Z LD (DE),A INC DE INC HL INC B JR h26eb h2706: INC HL LD A,(HL) CALL h284e CP 'X' JR Z,h271c EX DE,HL LD HL,nlfrbt0 CALL h2810 EX DE,HL JR NZ,h26f6 LD A,(DE) JR h26fb h271c: INC HL LD B,H LD C,L INC HL INC HL CALL h27d5 CALL C,h2753 DEC HL LD A,E JR h26fb h272b: INC HL LD A,(HL) CP 27H ;' JR Z,h26fb h2731: POP DE POP BC DEC C SCF RET nlfrbt0: 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 h2747: LD A,1 JR h275c h274b: LD A,4 JR h275c h274f: LD A,5 JR h275c h2753: LD A,0AH JR h275c h2757: LD A,0BH LD BC,0 h275c: PUSH AF LD (IX+32H),1 LD A,(402BH) AND A JR NZ,h276e POP AF LD (402BH),A h276b: LD A,0 RET h276e: POP AF JR h276b h2771: CALL h277d h2774: CALL h2780 h2777: CALL h2780 h277a: CALL h277d h277d: CALL h2780 h2780: LD B,20H JP h35cf h2785: ADD A,L LD L,A RET NC INC H RET h278a: LD A,L ADD A,1 DAA LD L,A LD A,H ADC A,0 DAA LD H,A RET h2795: PUSH HL LD HL,0 h2799: ADD HL,HL LD D,H LD E,L ADD HL,HL ADD HL,HL ADD HL,DE LD A,(BC) CALL h289b JR C,h27ab CALL h27fa JR NZ,h2799 RET h27ab: POP HL RET h27ad: PUSH HL LD HL,0 h27b1: ADD HL,HL ADD HL,HL ADD HL,HL LD A,(BC) SUB 30H CP 8 CCF JR C,h27ab CALL h27fa JR NZ,h27b1 RET h27c2: PUSH HL LD HL,0 h27c6: ADD HL,HL LD A,(BC) SUB 30H CP 2 CCF JR C,h27ab CALL h27fa JR NZ,h27c6 RET h27d5: PUSH HL LD HL,0 h27d9: ADD HL,HL ADD HL,HL ADD HL,HL ADD HL,HL LD A,(BC) CALL h27e9 JR C,h27ab CALL h27fa JR NZ,h27d9 RET h27e9: CALL h289b RET NC CALL h284e CP 'A' RET C CP 'G' CCF RET C SUB 7 RET h27fa: AND 0FH CALL h2785 EX DE,HL POP HL EX (SP),HL PUSH HL INC BC AND A SBC HL,BC POP HL JR NZ,h280c LD A,(HL) RET h280c: EX (SP),HL PUSH HL EX DE,HL RET h2810: CALL h281a RET NZ LD C,B LD B,0 ADD HL,BC SUB A RET h281a: LD B,(HL) INC HL LD C,(HL) INC HL h281e: LD A,(HL) AND A JR Z,h282c CALL h282e RET Z LD A,C CALL h2785 JR h281e h282c: INC A RET h282e: PUSH HL PUSH DE PUSH BC EX DE,HL h2832: CALL h283f JR NZ,h283b INC HL INC DE DJNZ h2832 h283b: POP BC POP DE POP HL RET h283f: LD A,(DE) CALL h284e PUSH BC LD B,A LD A,(HL) CALL h284e LD C,A LD A,B CP C POP BC RET h284e: AND 7FH CP 'a' RET C CP '{' RET NC AND '_' RET h2859: PUSH HL AND A SBC HL,DE POP HL RET h285f: LD A,H CALL h2864 LD A,L h2864: LD C,A RRA RRA RRA RRA CALL h286d LD A,C h286d: AND 0FH ADD A,'0' CP ':' JR C,h2877 ADD A,7 h2877: LD B,A JP h35cf h287b: CALL h2780 LD E,(HL) INC HL LD D,(HL) INC HL EX DE,HL CALL h285f EX DE,HL RET h2888: LD B,(HL) CALL h35cf INC HL DEC D JR NZ,h2888 RET h2891: LD A,' ' h2893: LD (DE),A LD H,D LD L,E INC DE DEC BC LDIR RET h289b: CP '0' RET C CP ':' CCF RET h28a2: LD BC,8 PUSH DE PUSH HL CALL h2891 POP HL POP DE PUSH DE LD C,8 h28af: CALL h28d1 JR C,h28b9 LDI JP PE,h28af h28b9: POP DE CALL h28bf JR h28c6 h28bf: CALL h28d1 RET C INC HL JR h28bf h28c6: LD A,(HL) CP ' ' JR Z,h28ce CP 9 RET NZ h28ce: INC HL JR h28c6 h28d1: LD A,(HL) CALL h2641 RET NC CALL h289b RET h28da: LD B,0 JR h2903 LD B,1 JR h28ec h28e2: LD B,2 JR h28ec h28e6: LD B,3 JR h28ec h28ea: LD B,4 h28ec: CALL h2ba3 PUSH BC CALL h2903 POP BC PUSH BC LD HL,4030H CALL h3381 POP BC SUB A LD C,B LD B,0 JP h2baf h2903: LD A,(4016H) CP 2 RET NZ CALL h290f JP h29bd h290f: PUSH BC LD HL,(4752H) CALL h285f LD A,(4017H) CALL h2b71 CALL h2780 LD HL,4030H POP BC LD C,4 LD A,B AND A CALL Z,h2945 JR Z,h293d h292c: PUSH BC LD A,(HL) CALL h2864 POP BC INC HL DEC C DJNZ h292c CALL h2b85 LD A,C AND A JR Z,h2945 h293d: PUSH BC CALL h277d POP BC DEC C JR NZ,h293d h2945: CALL h2780 SUB A RET h294a: LD HL,4030H h294d: LD A,(4016H) CP 2 RET NZ PUSH BC CALL h2774 POP BC h2958: LD A,(HL) PUSH BC CALL h2864 POP BC INC HL DJNZ h2958 PUSH HL CALL h2b85 CALL h80c CALL h29eb POP HL RET h296d: LD A,(4016H) CP 2 RET NZ CALL h2771 CALL h2774 JR h29ba h297b: PUSH BC CALL h2777 JR 298EH h2981: PUSH BC LD HL,(4752H) CALL h285f LD A,(4017H) CALL h2b71 h298e: CALL h2780 LD B,'(' CALL h35cf POP HL CALL h285f LD A,(4018H) BIT 5,A JR NZ,h29a5 CP 3 JR C,h29af h29a5: CALL h2b85 LD B,')' CALL h35cf JR h29b7 h29af: LD B,')' CALL h35cf CALL h2780 h29b7: CALL h2780 h29ba: CALL h277d h29bd: LD A,(4028H) LD B,A CALL h35cf CALL h2780 LD HL,(4840H) CALL h285f LD B,'+' LD A,(4029H) AND A JR NZ,h29df LD B,'-' LD A,(4000H) AND A JR NZ,h29df LD B,' ' h29df: CALL h35cf CALL h2780 LD HL,4842H CALL h35c1 h29eb: LD A,(402BH) AND A RET Z PUSH AF LD HL,str3 CALL h2b99 POP AF CALL h2a12 CALL h2b99 LD HL,str3cr CALL h2b99 CALL h2ddf RET str3: db '***',' '+128 str3cr: db ' ***',cr,cr+128 h2a12: LD HL,errms LD B,A h2a16: DEC B RET Z h2a18: LD A,(HL) INC HL RLA JR NC,h2a18 JR h2a16 errms: 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' db ' definitio','n'+128 db 'label not allowe','d'+128 db 'instruction not allowe','d'+128 db 'undefined symbol on' db ' pass on','e'+128 db 'mnot','e'+128 h2b71: CP 3 JR C,h2b77 LD A,3 h2b77: LD HL,delims CALL h2785 LD B,(HL) JP h35cf delims: db ' ',27h,22h,'*' h2b85: LD A,(4018H) BIT 5,A JR NZ,h2b94 AND 1FH JR Z,h2b71 SUB 2 JR h2b71 h2b94: LD B,23H JP h35cf h2b99: LD B,(HL) CALL h35cf LD A,(HL) INC HL AND A RET M JR h2b99 h2ba3: CALL h28c6 CP ';' RET Z CP cr RET Z JP h2753 h2baf: LD HL,(4752H) ADD HL,BC h2bb3: LD (4752H),HL EX DE,HL LD A,(4017H) ADD A,A PUSH AF LD HL,4754H CALL h2785 LD (HL),E INC HL LD (HL),D LD HL,46AAH POP AF RET Z CALL h2785 PUSH HL LD A,(HL) INC HL LD H,(HL) LD L,A CALL h2859 POP HL RET NC LD (HL),E INC HL LD (HL),D RET h2bdb: LD (4031H),BC LD B,3 JR h2be9 h2be3: LD (4032H),BC LD B,4 h2be9: CALL h2ba3 h2bec: PUSH BC CALL h2903 POP BC h2bf1: LD A,(4016H) CP 2 JR NZ,h2c25 LD HL,4030H LD A,B SUB 2 JR Z,h2c09 LD C,A h2c01: LD A,(HL) CALL h336b INC HL DEC C JR NZ,h2c01 h2c09: LD E,(HL) INC HL LD D,(HL) LD A,(4018H) BIT 5,A CALL NZ,h2c35 LD A,(4018H) AND 1FH CP 3 JR C,h2c2b SUB 2 PUSH BC LD B,A CALL h33cd POP BC h2c25: LD C,B LD B,0 JP h2baf h2c2b: LD A,E CALL h336b LD A,D CALL h336b JR h2c25 h2c35: PUSH BC LD A,D OR E LD B,0 LD A,9 JR Z,h2c44 CALL h32f2 CALL h338c h2c44: POP BC LD A,B SUB 2 LD HL,(4752H) CALL h2785 EX DE,HL LD HL,(4025H) LD A,(HL) LD (4018H),A AND 0E0H LD C,A LD A,(4017H) 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 h2c69: LD (IX+33H),1 LD DE,(4746H) LD HL,pass1 LD A,D OR E CALL NZ,h2d17 LD (IX+33H),0 RET h2c7e: LD (IX+33H),1 LD DE,(4748H) LD HL,errs CALL h2d17 LD DE,(474AH) LD HL,rnge BIT 4,(IX+0) CALL NZ,h2d17 LD DE,(474CH) LD HL,prity BIT 5,(IX+0) CALL NZ,h2d17 CALL h80c LD DE,(46ACH) LD HL,plen LD A,D OR E CALL NZ,h2d2b LD DE,(46AEH) LD HL,dlen LD A,D OR E CALL NZ,h2d2b CALL h2d35 LD (IX+33H),0 RET pass1: db 'Pass One Errors',tab+128 errs: db 'Errors',tab,tab+128 rnge: db 'Range Count',tab+128 prity: db 'Parity Count',tab+128 plen: db 'Program Length',tab+128 dlen: db 'Data Length',tab+128 h2d17: CALL h2b99 EX DE,HL LD A,' ' CALL h2dc2 LD HL,4915H LD D,4 CALL h2888 JP h80c h2d2b: CALL h2b99 EX DE,HL CALL h2d9f JP h80c h2d35: LD A,(474EH) AND A RET Z PUSH AF LD HL,comlen CALL h2b99 LD HL,46CEH LD DE,46B0H h2d47: LD B,'/' CALL h35cf PUSH HL LD B,(HL) CALL h35cf LD C,7 h2d53: INC HL LD A,(HL) CP ' ' JR Z,h2d67 LD B,A CALL h35cf DEC C JR NZ,h2d53 LD B,'/' CALL h35cf JR h2d71 h2d67: LD B,'/' CALL h35cf LD B,9 CALL h35cf h2d71: LD B,9 CALL h35cf LD A,(DE) LD L,A INC DE LD A,(DE) LD H,A INC DE PUSH DE CALL h2d9f CALL h80c POP DE POP HL LD BC,8 ADD HL,BC POP AF DEC A PUSH AF JR NZ,h2d47 POP AF RET comlen: db 'COMMON Lengths',cr+128 h2d9f: CALL h285f SUB A CALL h2dc2 CALL h2780 LD B,'(' CALL h35cf LD HL,4914H LD D,5 h2db3: LD A,(HL) INC HL OR A LD B,A CALL NZ,h35cf DEC D JR NZ,h2db3 LD B,')' JP h35cf h2dc2: PUSH HL LD DE,4914H LD BC,5 CALL h2893 POP HL h2dcd: PUSH DE LD DE,0AH CALL h24bb LD A,E POP DE ADD A,'0' DEC DE LD (DE),A LD A,H OR L JR NZ,h2dcd RET h2ddf: LD HL,(4748H) INC HL LD (4748H),HL LD A,(402BH) LD B,A SUB A LD (402BH),A LD (402DH),A LD A,(4016H) CP 2 RET NZ CALL h2ea3 RET C LD D,H LD E,L ADD HL,DE ADD HL,DE LD DE,457DH ADD HL,DE LD (HL),B INC HL LD DE,(4840H) LD (HL),D INC HL LD (HL),E RET h2e0d: CALL h2ea3 LD A,H OR L RET Z CALL h80c PUSH HL DEC HL LD D,H LD E,L ADD HL,DE ADD HL,DE LD DE,4580H ADD HL,DE LD BC,3 CALL hb75 POP DE LD HL,4580H LD B,0 h2e2c: CALL h2eb8 h2e2f: LD A,(HL) CP B JR Z,h2e67 LD B,A PUSH HL PUSH DE PUSH BC CALL h80c LD A,(HL) PUSH AF LD HL,str3 CALL h2b99 POP AF CALL h2a12 LD C,1DH h2e48: LD B,(HL) CALL h35cf DEC C LD A,(HL) INC HL RLA JR NC,h2e48 CALL h2780 LD HL,str3 CALL h2b99 h2e5b: CALL h2780 DEC C JR NZ,h2e5b POP BC POP DE POP HL CALL h2eb8 h2e67: INC HL PUSH BC PUSH DE LD D,(HL) INC HL LD E,(HL) INC HL EX DE,HL CALL h285f CALL h2780 EX DE,HL POP DE POP BC DEC DE LD A,D OR E JR Z,h2e92 DEC C JR NZ,h2e2f LD A,(HL) CP B JR NZ,h2e2f PUSH HL PUSH DE PUSH BC LD HL,crtabsp CALL h2b99 POP BC POP DE POP HL JR h2e2c h2e92: CALL h80c JP h80c crtabsp: db cr,tab,tab,tab,tab db ' ',' '+128 h2ea3: LD HL,(4748H) LD A,H AND A JR NZ,h2eb1 LD A,L CP 'c' JR Z,h2eb6 JR C,h2eb6 h2eb1: LD HL,64H SCF RET h2eb6: AND A RET h2eb8: PUSH HL PUSH DE PUSH BC LD A,(3FF7H) SUB '&' LD L,A LD H,0 LD DE,5 CALL h24bb POP BC LD C,L POP DE POP HL RET h2ece: BIT 2,(IX+0) RET Z RES 4,(IX+3) LD HL,(4CFDH) h2eda: LD DE,(4CFFH) CALL h2859 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 (4840H),HL LD B,(IY+0DH) RES 7,B LD A,(IY+2) CP 'S' JR Z,h2f11 LD B,82H CP 4DH JR NZ,h2f17 DEC HL DEC HL BIT 0,(HL) JR NZ,h2f17 BIT 7,(HL) JR Z,h2f11 LD B,0E2H h2f11: LD HL,3EAFH CALL h37ac h2f17: POP HL LD DE,0EH ADD HL,DE JR h2eda h2f1e: PUSH HL EX DE,HL CALL h135e POP HL PUSH HL CALL h390e POP HL PUSH HL CALL h3810 SUB A LD (h2fac),A POP HL PUSH HL CALL h2fad JR C,h2f45 LD HL,4D01H LD (490AH),HL CALL h3008 POP HL JP h3924 h2f45: EX AF,AF' LD (h2faa),DE POP HL PUSH HL INC HL INC HL INC HL LD DE,3A36H LD BC,21H LDIR LD HL,3A33H CALL h3810 LD (IY+0),0 h2f61: LD HL,h2fac INC (HL) LD DE,4D01H LD HL,3A33H h2f6b: LD A,(DE) CP 0FFH JR Z,h2f77 LD B,0BH CALL h38a1 JR h2f6b h2f77: EX AF,AF' JR NC,h2f82 POP HL PUSH HL CALL h2fad EX AF,AF' JR h2f61 h2f82: LD DE,3A33H CALL h390e LD A,(h2fac) LD B,A LD C,0 LD HL,4D01H ADD HL,BC LD DE,(6) CALL h2859 JP NC,nomem LD DE,(h2faa) CALL h3139 CALL h3008 POP HL JP h3924 h2faa: db 0 db 0 h2fac: db 0 h2fad: PUSH HL LD BC,0FFFFH LD DE,4D01H h2fb4: INC BC PUSH BC PUSH HL LD HL,(6) LD BC,0DH AND A SBC HL,BC CALL h2859 POP HL JR C,h2fce CALL h2fe4 POP BC JR NC,h2fb4 PUSH BC AND A h2fce: PUSH AF LD A,0FFH LD (DE),A LD HL,0FFF5H ADD HL,DE LD DE,4D01H LD B,8 LD C,3 CALL hb75 POP AF POP DE POP HL RET h2fe4: CALL h2ffe JR Z,h2ffc CP 1AH JR Z,h2ffc LD (DE),A INC DE LD B,0AH h2ff1: CALL h2ffe JR Z,h2ffc LD (DE),A INC DE DJNZ h2ff1 AND A RET h2ffc: SCF RET h2ffe PUSH HL PUSH DE PUSH BC CALL h386c POP BC POP DE POP HL RET h3008: SUB A LD (4006H),A DEC A LD (4018H),A h3010: CALL h30fd JP C,h80c h3016: LD A,(HL) AND 7EH CP 7EH JR Z,h302b LD A,(HL) LD (4018H),A INC HL LD D,(HL) INC HL LD E,(HL) LD (4840H),DE JR h3010 h302b: PUSH HL CALL h308b POP HL BIT 0,(HL) JR NZ,h303e CALL h30f5 CALL h2780 SUB A EX AF,AF' JR h3078 h303e: CALL h2777 SUB A EX AF,AF' h3043: 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,(3FF7H) SUB B JR NC,h306a CALL h80c LD C,17H BIT 2,(IX+0) JR NZ,h3061 LD C,0FH h3061: CALL h2780 DEC C JR NZ,h3061 LD A,1 EX AF,AF' h306a: BIT 0,(HL) LD B,'#' JR Z,h3072 LD B,' ' h3072: CALL h35cf CALL h30f5 h3078: CALL h30fd JP C,h80c JR Z,h3043 CALL h80c JP h3016 macstr: db 'Macr','o'+128 h308b: LD D,8 LD HL,4006H CALL h2888 BIT 2,(IX+0) JR Z,h3043 LD A,(4018H) INC A JR Z,h30d1 CALL h2780 CALL h30d6 CALL h35cf CALL h2780 LD A,(4018H) BIT 7,A JR Z,h30ba LD HL,macstr CALL h2b99 JR h30c8 h30ba: AND 3FH LD (4018H),A LD HL,(4840H) CALL h285f CALL h2b85 h30c8: CALL h277d LD A,0FFH LD (4018H),A RET h30d1: CALL h2771 JR h30c8 h30d6: LD A,(4018H) AND 3FH LD B,'U' RET Z LD A,(4018H) AND 60H LD B,'M' CP 60H RET Z LD B,'E' CP 40H RET Z LD B,'X' CP 20H RET Z LD B,' ' RET h30f5: INC HL LD D,(HL) INC HL LD E,(HL) EX DE,HL JP h285f h30fd: LD A,(h2fac) AND A JR NZ,h3115 LD HL,(490AH) LD A,(HL) INC A SCF RET Z EX DE,HL LD HL,0BH ADD HL,DE LD (490AH),HL EX DE,HL JR h3119 h3115: CALL h317b RET C h3119: LD DE,4006H LD B,8 CALL h282e LD BC,8 JR NZ,h3130 ADD HL,BC LD A,(4028H) XOR (HL) BIT 7,A RET Z SBC HL,BC h3130: LDIR LD A,(HL) LD (4028H),A SUB A INC A RET h3139: LD A,B LD BC,0 LD HL,4D01H h3140: 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,3A36H LD BC,21H LDIR POP HL POP DE PUSH DE PUSH HL LD BC,0DH ADD HL,BC CALL h3944 POP DE PUSH DE CALL h31b4 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,h3140 RET h317b: LD H,8 LD L,3 LD (4022H),HL LD DE,4D03H LD H,D LD L,E LD A,(h2fac) LD C,A DEC C h318c: INC D PUSH DE LD A,(DE) INC A JR Z,h3198 CALL hbfe JR C,h3198 EX DE,HL h3198: POP DE DEC C JR NZ,h318c LD A,(HL) INC A SCF RET Z PUSH HL LD BC,0BH LD DE,4914H LDIR POP DE DEC DE DEC DE CALL h31b4 LD HL,4914H AND A RET h31b4: PUSH DE LD A,(DE) LD B,A INC DE LD A,(DE) LD C,A INC DE OR B JR NZ,h31c3 h31be: LD A,0FFH LD (DE),A POP DE RET h31c3: 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 h2fe4 POP DE JR C,h31be POP DE RET h31d9: LD HL,4A25H LD A,2 JP h3344 h31e1: LD C,0 JR h31e7 h31e5: LD C,7 h31e7: LD HL,(4CFDH) h31ea: LD DE,(4CFFH) CALL h2859 RET NC PUSH HL PUSH HL POP IY LD A,(IY+2) CP 'S' JR NZ,h3221 LD A,(IY+0DH) BIT 6,A JR Z,h3221 BIT 5,A JR NZ,h3221 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,h3315 CALL h3344 POP BC h3221: POP HL LD DE,0EH ADD HL,DE JR h31ea h3228: LD BC,46B0H LD HL,46CEH h322e: LD A,(BC) LD E,A INC BC LD A,(BC) LD D,A INC BC OR E JR Z,h3242 PUSH HL PUSH BC LD B,0 LD A,5 CALL h3344 POP BC POP HL h3242: LD DE,8 ADD HL,DE LD DE,4746H CALL h2859 JR NZ,h322e LD DE,(46AEH) LD A,D OR E LD B,0 LD A,0AH CALL NZ,h338c LD DE,(46ACH) LD B,1 LD A,0DH JP h338c h3266: LD DE,0 LD B,0 h326b: BIT 0,(IX+0) RET Z LD A,(4016H) CP 2 RET NZ BIT 0,(IX+2) JR NZ,h329c PUSH BC PUSH DE CALL h32ad POP DE POP BC LD A,0EH CALL h3315 CALL h338c CALL h3433 LD A,0FH CALL h338c CALL h3433 h3296: LD HL,3D67H JP h390e h329c: PUSH DE CALL h34a3 POP HL LD (4083H),HL SUB A LD (4085H),A CALL h34a8 JR h3296 h32ad: LD HL,(4CFDH) h32b0: LD DE,(4CFFH) CALL h2859 RET NC PUSH HL PUSH HL POP IY LD A,(IY+2) CP 'S' JR NZ,h32eb LD A,(IY+0DH) BIT 5,A JR Z,h32eb BIT 6,A JR NZ,h32eb AND 1FH DEC A JR Z,h32eb 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,h32eb CALL h3315 LD A,6 CALL h3344 h32eb: POP HL LD DE,0EH ADD HL,DE JR h32b0 h32f2: PUSH AF LD A,(4024H) AND A JR Z,h3313 PUSH HL PUSH DE PUSH BC LD A,(4017H) LD B,A CALL h3315 LD DE,(4752H) LD A,0BH CALL h338c XOR A LD (4024H),A POP BC POP DE POP HL h3313: POP AF RET h3315: PUSH AF PUSH BC PUSH DE PUSH HL LD A,B CP 3 JR C,h333e LD A,(474FH) CP B JR Z,h333c LD A,B LD (474FH),A SUB 3 LD L,A LD H,0 LD DE,8 CALL h24b4 LD DE,46CEH ADD HL,DE LD A,1 CALL h3344 h333c: LD A,3 h333e: POP HL POP DE POP BC LD B,A POP AF RET h3344: PUSH AF LD A,(HL) CP 20H JR Z,h3361 PUSH HL PUSH DE LD A,(109H) LD E,A LD D,0 h3352: LD A,(HL) CP 20H JR Z,h335c INC HL INC D DEC E JR NZ,h3352 h335c: LD C,D POP DE POP HL JR h3366 h3361: LD HL,onesp LD C,1 h3366: POP AF JP h338c onesp: db ' '+128 h336b: BIT 0,(IX+2) JP NZ,h3452 CALL h32f2 AND A CALL h33f9 h3379: PUSH BC LD B,8 CALL h33f2 POP BC RET h3381: LD A,B AND A RET Z LD A,(HL) CALL h336b INC HL DEC B JR h3381 h338c: BIT 0,(IX+2) RET NZ PUSH AF XOR A CALL h33c1 POP AF PUSH AF PUSH BC LD B,4 CALL h33e4 POP BC POP AF CP 0FH RET Z CP 5 JR C,h33af PUSH AF CALL h33d7 POP AF CP 9 RET NC h33af: LD A,C LD B,3 CALL h33e4 h33b5: LD A,(HL) CALL h284e CALL h3379 INC HL DEC C JR NZ,h33b5 RET h33c1: SCF CALL h33f9 h33c5: PUSH BC LD B,2 CALL h33e4 POP BC RET h33cd: CALL h32f2 CALL h3315 SCF CALL h33f9 h33d7: LD A,B CALL h33c5 LD A,E CALL h3379 LD A,D CALL h3379 RET h33e4: PUSH BC PUSH AF LD A,9 SUB B LD C,A POP AF h33eb: DEC C JR Z,h33f1 ADD A,A JR h33eb h33f1: POP BC h33f2: ADD A,A CALL h33f9 DJNZ h33f2 RET h33f9: PUSH AF LD A,(4016H) CP 2 JR NZ,h341a BIT 0,(IX+0) JR Z,h341a POP AF PUSH AF LD A,(h3445) RLA LD (h3445),A LD A,(h3446) DEC A LD (h3446),A CALL Z,h341c h341a: POP AF RET h341c: PUSH HL PUSH DE PUSH BC PUSH AF LD A,(h3445) LD HL,3D67H CALL h38ad LD A,8 LD (h3446),A POP AF POP BC POP DE POP HL RET h3433: LD A,(h3446) CP 8 RET Z LD B,A LD A,(h3445) h343d: ADD A,A DJNZ h343d LD (h3445),A JR h341c h3445: db 0 h3446: db 0 h3447: BIT 0,(IX+2) RET Z CALL h296d SUB A INC A RET h3452: PUSH AF LD A,(4016H) CP 2 JR Z,h345c POP AF RET h345c: POP AF PUSH HL PUSH DE PUSH BC PUSH AF LD A,(4024H) AND A JR Z,h3477 CALL h34a3 SUB A LD (4024H),A LD (4085H),A LD HL,(4752H) LD (4083H),HL h3477: LD HL,4086H LD A,(4085H) CALL h2785 POP AF LD (HL),A LD A,(4085H) INC A LD (4085H),A CP 1CH JR C,h349f CALL h34a3 LD HL,(4083H) LD A,1CH CALL h2785 LD (4083H),HL SUB A LD (4085H),A h349f: POP BC POP DE POP HL RET h34a3: LD A,(4085H) AND A RET Z h34a8: BIT 0,(IX+0) RET Z LD A,':' CALL h3509 LD A,(4085H) LD B,A LD E,0 CALL h34e8 LD HL,(4083H) LD A,H CALL h34e8 LD A,L CALL h34e8 SUB A CALL h34e8 LD HL,4086H INC B h34ce: DEC B JR Z,h34d8 LD A,(HL) CALL h34e8 INC HL JR h34ce h34d8: LD A,E NEG CALL h34e8 LD A,cr CALL h3509 LD A,lf JP h3509 h34e8: PUSH AF ADD A,E LD E,A POP AF PUSH HL PUSH DE PUSH BC PUSH AF RRA RRA RRA RRA CALL h34ff POP AF CALL h34ff POP BC POP DE POP HL RET h34ff: AND 0FH CP 0AH JR C,h3507 ADD A,7H h3507: ADD A,30H h3509: LD HL,3D67H JP h38ad h350f: LD A,(DE) AND A RET Z PUSH DE LD E,A LD C,2 CALL bdos POP DE INC DE JR h350f h351d: CALL h1ab2 JR NZ,h3536 CALL h3562 JR NZ,h3536 LD HL,3FFFH LD A,(HL) AND A RET Z DEC (HL) LD HL,eoimsg CALL h35c1 JR h351d h3536: LD HL,(4840H) CALL h278a LD (4840H),HL SUB A INC A RET eoimsg: db tab,tab,tab db '(***** end of inc' db 'lude *****)',cr h3562: LD HL,4A2DH LD DE,4A30H LD BC,3 LDIR LD HL,3CC3H LD A,(3FFFH) BIT 7,(IX+1) CALL Z,h35b4 LD DE,4842H LD B,64H h357f: PUSH DE PUSH BC CALL h386c POP BC POP DE RET Z AND 7FH CP 1AH RET Z LD (DE),A CP 0DH JR Z,h35a4 CP 9 JR Z,h359d CP 0EH JR Z,h359d CP 20H JR C,h357f h359d: INC DE DJNZ h357f INC B DEC DE JR h357f h35a4: INC A RET h35a6: PUSH HL INC HL INC HL INC HL EX DE,HL LD C,86H CALL bdos POP HL JP h3810 h35b4: LD HL,398FH AND A RET Z LD DE,0A4H h35bc: ADD HL,DE DEC A JR NZ,h35bc RET h35c1: LD B,(HL) LD A,B OR A RET Z CALL h35cf LD A,(HL) CP 0DH RET Z INC HL JR h35c1 h35cf: RES 7,B CALL h362b RET NZ PUSH HL PUSH DE PUSH BC LD A,(4001H) CP (IX-1) CALL NC,h3659 LD A,B CP 0DH JR NZ,h35f2 CALL h371e SUB A LD (3FF8H),A INC (IX+6) JR h3627 h35f2: LD A,(3FF8H) CP (IX-4) JR C,h3610 h35fa: BIT 6,(IX+2) JR NZ,h3627 CALL h80c LD B,9 CALL h35cf CALL h35cf CALL h35cf POP BC PUSH BC h3610: LD HL,3FF8H INC (HL) LD A,B CP 9 JR NZ,h3624 LD A,(HL) ADD A,7 AND 0F8H LD (HL),A CP (IX-4) JR NC,h35fa h3624: CALL h371e h3627: POP BC POP DE POP HL RET h362b: LD A,(402DH) AND A JR NZ,h3657 BIT 4,(IX+2) JR NZ,h3657 BIT 5,(IX+2) RET NZ BIT 0,(IX+3) RET NZ BIT 6,(IX+1) JR NZ,h3657 BIT 1,(IX+1) JR NZ,h3652 BIT 2,(IX+3) RET Z h3652: LD A,(4029H) AND A RET h3657: SUB A RET h3659: PUSH BC SET 1,(IX+2) LD A,(3FF9H) AND A JR NZ,h366b LD B,0CH CALL h371e JR h367c h366b: INC (IX+6) JR NZ,h3673 ADD A,(IX-1) h3673: LD C,A h3674: LD B,0DH CALL h371e DEC C JR NZ,h3674 h367c: SUB A LD (4001H),A LD (3FF8H),A LD HL,asmid CALL h35c1 LD A,(3FF7H) SUB 4BH JR NC,h3691 SUB A h3691: SRA A LD C,A PUSH BC CALL h36cc LD HL,tmstamp CALL h35c1 POP BC CALL h36cc LD HL,pagno CALL h35c1 LD HL,(4A33H) CALL h278a LD (4A33H),HL CALL h285f CALL h80c LD HL,4778H CALL h35c1 LD HL,47DCH CALL h35c1 CALL h80c RES 1,(IX+2) POP BC RET h36cc: INC C h36cd: DEC C RET Z CALL h2780 JR h36cd asmid: db 'CROMEMCO Z80 Macro' db ' Assembler version' db ' 03.10 ',0 tmstamp: db 'MON XX, 19XX XX:XX:XX',0 pagno: db ' Page ',0 h371e: LD A,(402EH) AND A JR NZ,h3730 LD A,(4016H) CP 2 RET NZ LD A,(402DH) AND A JR Z,h373b h3730: BIT 1,(IX+2) JR NZ,h373b CALL h3765 JR h3742 h373b: BIT 6,(IX+0) CALL NZ,h3765 h3742: PUSH BC BIT 7,(IX+0) CALL NZ,h376e LD A,B LD HL,3E0BH BIT 1,(IX+0) CALL NZ,h38ad POP BC LD A,B LD B,0AH CP 0DH JR Z,h371e RET h375e: LD B,0DH CALL h3765 LD B,0AH h3765: PUSH BC LD E,B LD C,2 CALL bdos POP BC RET h376e: LD A,B CP 9 JR Z,h3792 CP 0DH JR Z,h378c CP 20H JR C,h377f LD HL,h37a5 INC (HL) h377f: PUSH HL PUSH DE PUSH BC LD E,B LD C,5 CALL bdos POP BC POP DE POP HL RET h378c: SUB A LD (h37a5),A JR h377f h3792: LD A,(h37a5) LD B,A AND 0F8H ADD A,8 SUB B LD C,A LD B,20H h379e: CALL h376e DEC C JR NZ,h379e RET h37a5: db 0 h37a6: LD HL,3E0BH JP h390e h37ac: LD A,(4016H) DEC A RET NZ LD A,(DE) AND A RET M CP 20H RET Z BIT 4,(IX+3) RET NZ PUSH BC PUSH DE PUSH BC LD B,8 CALL h38a1 POP AF CALL h38ad LD A,(4841H) CALL h38ad LD A,(4840H) CALL h38ad POP DE POP BC RET h37d7: PUSH HL PUSH BC LD BC,16 LDIR LD HL,0FFF9H ADD HL,DE EX DE,HL POP HL LD BC,3 LDIR POP HL RET h37eb: LD HL,398FH CALL h3810 RET NZ LD DE,srnfmsg JP bail srnfmsg: db 'Source file not' db ' found',cr,lf,0 h3810: PUSH HL CALL h3931 LD (IY+15),0 LD (IY+0),80H LD (IY+35),0 POP DE INC DE INC DE INC DE LD C,0FH ;open file CALL bdos CP 0FFH RET h382c: PUSH HL CALL h3931 LD (IY+0),0 LD (IY+15),0 LD (IY+35),0 POP DE INC DE INC DE INC DE 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,ndspmsg JP bail ndspmsg: db 'No directory sp' db 'ace',cr,lf,0 h386c: PUSH HL LD A,(HL) CP 80H JR NZ,h3885 PUSH HL CALL h3931 POP DE INC DE INC DE INC DE LD C,14H CALL bdos DEC A POP HL RET Z PUSH HL LD (HL),0 h3885: LD A,(HL) INC (HL) INC HL LD E,(HL) INC HL LD D,(HL) EX DE,HL CALL h2785 EX DE,HL LD HL,4A2FH INC (HL) JR NZ,h389e DEC HL INC (HL) JR NZ,h389e DEC HL INC (HL) SUB A INC A h389e: LD A,(DE) POP HL RET h38a1: LD A,(DE) PUSH DE PUSH BC CALL h38ad POP BC POP DE INC DE DJNZ h38a1 RET h38ad: PUSH HL PUSH AF LD A,(HL) INC HL LD E,(HL) INC HL LD D,(HL) EX DE,HL CALL h2785 POP AF LD (HL),A POP HL INC (HL) LD A,(HL) CP 80H RET NZ LD (HL),0 PUSH HL PUSH HL CALL h3931 POP DE INC DE INC DE INC DE LD C,15H ;write next rec. CALL bdos POP HL AND A RET Z LD DE,4 ADD HL,DE LD DE,fnft LD BC,8 LDIR INC DE LD BC,3 LDIR LD DE,wrermsg JP bail wrermsg: db 'Write error, file - ' fnft: db 'FILENAME.EXT' db cr,lf,0 h390e: LD A,1AH CALL h38ad LD A,(HL) AND A JR NZ,h390e PUSH HL CALL h3931 POP DE INC DE INC DE INC DE LD C,10H ;close file JP bdos h3924: PUSH HL CALL h3931 POP DE INC DE INC DE INC DE LD C,13H ;delete file JP bdos h3931: PUSH HL POP IY LD DE,36 ADD HL,DE EX DE,HL LD (IY+1),E LD (IY+2),D LD C,1AH ;set disk buffer JP bdos h3944: PUSH HL SUB A LD HL,0 LD B,0BH h394b: ADD HL,DE ADC A,0 DJNZ h394b LD C,A EX DE,HL POP HL PUSH HL POP IY LD (IY+0FH),0FFH h395a: PUSH BC PUSH DE CALL h3931 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 LD C,0FH ;open disk file CALL NZ,bdos POP AF LD (IY+23H),A LD C,14H ;read next rec. JP bdos END