; ORG 1000H JMP LA0F8 LXI SP,LD040 CALL LA0A7 CALL LA0C7 LA00C: JMP LA119 JMP LA0A7 JMP LA141 LA015: JMP LAEE2 JMP LAF17 LA01B: JMP LAD0F JMP LAD14 JMP LAD04 LA024: JMP LAD09 LA027: JMP LAE47 LA02A: JMP LA154 JMP LABDE LA030: JMP LACD3 LA033: JMP LAC32 LA036: JMP LABAA LA039: JMP LA2C7 LA03C: JMP LA2D0 LA03F: JMP LADAF LA042: JMP LACF4 LA045: JMP LACD6 JMP LACE0 JMP LAE77 LA04E: JMP LAE75 JMP LAE92 LA054: JMP LAEA8 LA057: JMP LAE9F LA05A: JMP LAE86 LA05D: JMP LAE7F LA060: JMP LAC90 LA063: JMP LABC1 LA066: JMP LA5FA LA069: JMP LA6DB LA06C: JMP LA337 LA06F: JMP LA693 LA072: JMP LAD2B LA075: JMP LA19B LA078: JMP LA91F LA07B: JMP LA939 LA07E: JMP LAA1A LA081: JMP LAA11 JMP LAC8A LA087: JMP LAEC6 LA08A: JMP LA934 LA08D: CALL LA09F LA090: CALL LA099 LA093: CALL LA096 LA096: CALL LA09F LA099: CALL LA0A2 LA09C: CALL LA0A2 LA09F: CALL LA0A2 LA0A2: MVI B,020H JMP LAEE2 LA0A7: LXI X,LD0BA MVI A,001H OUT 040H LXI D,LD040 LXI B,0017BH SUB A CALL LAE77 LXI D,LD1BB LXI H,LAFDB LXI B,00025H LDIR JMP LAF4B LA0C7: MVI A,001H OUT 054H OUT 052H LXI H,LA0F0 MVI C,000H MVI A,011H LA0D4: OUT 002H OUTI CALL LAF17 CALL LAF17 CPI 00DH MVI A,001H JRNZ LA0D4 CALL LAEE0 CALL LAEE0 LXI H,LAF5B JMP LA2D0 LA0F0: DB 94H,0CEH,0A2H,92H,88H,84H,82H,1 LA0F8: LXI SP,LD040 LDED LD1BD LXI H,LAFEA MVI B,008H CALL LACF4 JRNZ LA113 LXI B,00010H LDIR CALL LAF4B JMPR LA116 LA113: CALL LA0A7 LA116: CALL LA0C7 LA119: LXI SP,LD040 LXI X,LD0BA CALL LAF4B LA123: CALL LA154 MOV A,M CPI 00DH JRZ LA123 CALL LAE7F CNC LA2DA JRNC LA123 LXI B,LA119 PUSH B LA137: MVI B,004H LXI D,LD040 CALL LA19B JMPR LA1AF LA141: PUSH H LA142: MOV A,M INX H CPI 00DH JRZ LA14D ANA A JRNZ LA142 POP H RET LA14D: XTHL CALL LA137 POP H JMPR LA141 LA154: LXI H,LD059 MVI E,050H LA159: CALL LAF17 CPI 00DH JRZ LA179 CPI 018H JRZ LA188 CPI 05FH JRZ LA18D CPI 07FH JRZ LA18D CPI 020H JRC LA196 MOV M,B MOV A,E ANA A JRZ LA159 INX H DCR E JMPR LA196 LA179: CALL LAEE2 MOV M,B MVI A,050H SUB E INR A MVI B,000H MOV C,A LXI H,LD059 RET LA188: CALL LAEE0 JMPR LA154 LA18D: MOV A,E CPI 050H JRZ LA159 INR E DCX H MVI B,05FH LA196: CALL LAEE2 JMPR LA159 LA19B: PUSH D CALL LAE86 DCX H LA1A0: INX H MOV A,M CPI 00DH JRZ LA1AA CPI 02CH JRNZ LA1A0 LA1AA: PUSH H POP Y POP D RET LA1AF: LXI H,LA1C2 CALL LACD6 JRZ LA1BD LHLD LD1BF CALL LACCC LA1BD: MOV A,M INX H MOV H,M MOV L,A LA1C1: PCHL LA1C2: DB 4,6 DB 'IODR' DW LAB16 DB 'LIOD' DW LA716 DB 'DIOD' DW LA7EF DB 'FORM' DW LA405 DB 'NFOR' DW LA40A DB 'SYSI' DW LA40F DB 'DELE' DW LA42B DB 'LIST' DW LA466 DB 'TEXT' DW LA463 DB 'RENU' DW LA94A DB 'AUTO' DW LA983 DB 'DUMP' DW LAE50 DB 'ENTE' DW LAA2F DB 'CFIL' DW LA728 DB 'LFIL' DW LA88B DB 'DFIL' DW LA807 DB 'VFIL' DW LA4F6 DB 'MFIL' DW LAA59 DB 'CURR' DW LAAE8 DB 'EXEC' DW LA6E7 DB 'ECUS' DW LA793 DB 'DCUS' DW LA813 DB 'LCUS' DW LA885 DB 'STAB' DW LA89E DB 'PSTA' DW LA8C6 DB 'PRAM' DW LA87C DB 'ASMB' DW LB000 DB 'ASMU' DW LB005 DB 'ASMO' DW LB00E DB 'RBIN' DW LA6EB DB 'WBIN' DW LA705 DB 'RCHX' DW LA588 DB 'WCHX' DW LA664 DB 'ECHX' DW LA6D0 DB 'WCBN' DW LA667 DB 'RCBN' DW LA58B DB 'ECBN' DW LA6D3 DB 'LEAD' DW LA5F4 DB 'PROM' DW LA4B6 DB 'VMEM' DW LA627 DB 'MOVE' DW LA650 DB 'BANK' DW LA65D DB 'RENA' DW LA77C DB 0 LA2C7: LXI H,LAF73 LA2CA: CALL LA2D0 JMP LA119 LA2D0: MOV B,M CALL LAEE2 INX H CPI 00DH JRNZ LA2D0 RET LA2DA: CALL LA337 LXI D,LD04A CALL LA341 LA2E3: PUSH D PUSH B PUSH H CALL LA3D1 JRC LA2EC DCX H LA2EC: XTHL JRZ LA31B MOV A,M CPI 00DH JRZ LA316 XTHL POP D POP B PUSH B LA2F8: PUSH D PUSH H CALL LA383 POP D POP H POP B XTHL PUSH B MOV A,C STAX D LXI B,00005H INX D LDIR POP B DCX B DCX B DCX B DCX B DCX B DCX B POP H LDIR JMPR LA319 LA316: POP H POP H POP H LA319: ANA A RET LA31B: MOV A,M CPI 00DH JRZ LA32B XCHG POP H POP B PUSH B MOV A,C SUB M MOV C,A SBB A MOV B,A JMPR LA2F8 LA32B: XTHL MOV A,M NEG MOV C,A MVI B,0FFH CALL LA383 JMPR LA316 LA337: BIT 1,[X+000H] RNZ LXI H,LAF83 JMPR LA2CA LA341: PUSH D PUSH D POP Y MVI A,004H LA347: EXAF MOV A,M CALL LAE7F JRC LA366 LDI EXAF DCR A JRNZ LA347 LA354: MVI A,020H MOV [Y+004H],A CMP M JRNZ LA35E INX H DCX B LA35E: INX B INX B INX B INX B INX B INX B POP D RET LA366: MOV A,[Y+002H] MOV [Y+003H],A MOV A,[Y+001H] MOV [Y+002H],A MOV A,[Y+000H] MOV [Y+001H],A MVI [Y+000H],030H EXAF DCR A JRZ LA354 EXAF JMPR LA366 LA383: PUSH H LHLD LD1D1 DAD B PUSH H PUSH B LBCD LD1D3 INX H DSBB B POP B POP H JRNC LA3C7 LDED LD1D1 SHLD LD1D1 MOV A,C ANA A JM LA3B3 POP B MOV H,D MOV L,E ANA A DSBB B JRC LA3BC INX H MOV B,H MOV C,L LHLD LD1D1 XCHG LDDR RET LA3B3: POP H PUSH H ANA A DSBB B XCHG ANA A DSBB D LA3BC: JC LA2C7 MOV B,H MOV C,L INX B POP H XCHG LDIR RET LA3C7: POP H LXI H,LAF79 JMP LA2CA LA3CE: LXI D,LD04A LA3D1: CALL LA3E2 LA3D4: CALL LA3E9 JRZ LA3DF CALL LA622 JRC LA3D4 RET LA3DF: INR A STC RET LA3E2: LHLD LD1CF SHLD LD0B6 RET LA3E9: LHLD LD0B6 MOV A,M CPI 001H RZ PUSH H CALL LA934 SHLD LD0B6 POP H INX H PUSH B CALL LA549 POP B JRZ LA402 SUB A RET LA402: SUB A INR A RET LA405: SET 0,[X+000H] RET LA40A: RES 0,[X+000H] RET LA40F: CALL LABDE JRZ LA426 CALL LACD3 JNZ LA2C7 LA41A: XCHG LXI B,00008H LHLD LD1BD DAD B XCHG JMP LAF55 LA426: LXI H,LAFF2 JMPR LA41A LA42B: CALL LA337 CALL LAC12 JZ LA2C7 CALL LAC17 JRNZ LA43C CALL LA613 LA43C: CALL LAC02 CALL LA3CE JRC LA460 PUSH H LA445: CALL LA61F JRC LA44C JRNZ LA452 LA44C: CALL LA3E9 JRNZ LA445 INX H LA452: XCHG POP H PUSH H STC DSBB D MOV B,H MOV C,L INX B POP H DCX H CALL LA383 LA460: JMP LAEE0 LA463: STC JMPR LA467 LA466: ANA A LA467: PUSH PSW CALL LA337 CALL LAC12 JRZ LA49B CALL LAC17 JRNZ LA478 CALL LA613 LA478: CALL LAC02 CALL LA3CE JRC LA498 LA480: CALL LA61F JRC LA487 JRNZ LA498 LA487: POP PSW JRNC LA48F LXI B,00005H DAD B STC LA48F: PUSH PSW CALL LAD2B CALL LA3E9 JRNZ LA480 LA498: POP PSW JMPR LA460 LA49B: CALL LAC17 JNZ LA2C7 LXI D,LD04A LXI H,LA4AE LXI B,00008H LDIR JMPR LA478 LA4AE: NOP NOP NOP NOP RST 7 RST 7 RST 7 RST 7 LA4B6: CALL LAC47 EXX LXI B,00168H EXX LA4BE: PUSH D PUSH B PUSH H MOV H,D MOV L,E MVI E,000H MOV A,D ANI 0FCH MOV D,A CALL LA4E9 POP H PUSH H LDIR DCX D MVI L,000H MOV A,D ANI 0FCH ADI 004H MOV H,A INX D CALL LA4E9 POP H POP B POP D EXX CCI EXX JPO LA62A JMPR LA4BE LA4E9: MOV A,E SUB L JRNZ LA4F0 MOV A,D SUB H RZ LA4F0: MVI A,0FFH STAX D INX D JMPR LA4E9 LA4F6: CALL LA337 LHLD LD1CF MOV A,M CPI 001H JRNZ LA519 MVI A,00DH LXI B,000FFH CCIR JRNZ LA543 MOV A,C CMA LHLD LD1CF MOV M,A INX H CALL LA549 JRZ LA519 DCX H MVI M,001H LA519: CALL LA3E2 LA51C: CALL LA3E9 JRZ LA527 CALL LA549 JRZ LA51C RET LA527: XCHG LA528: LHLD LD1D3 ANA A DSBB D JRC LA53D SDED LD1D1 CALL LAEE0 LXI H,LD1C9 JMP LADD2 LA53D: LXI H,LAF99 JMP LA2CA LA543: LDED LD1CF JMPR LA528 LA549: PUSH H DCX H MOV A,M CPI 007H JRC LA57B DCR A MOV C,A MVI B,004H INX H LA555: MOV A,M CALL LAE7F JRC LA57B DCR C INX H DJNZ LA555 MOV A,M CPI 020H JRNZ LA57B DCR C LA565: INX H DCR C JRZ LA574 MOV A,M CPI 020H JRC LA57B CPI 07FH JRNC LA57B JMPR LA565 LA574: MOV A,M CPI 00DH JRNZ LA57B POP H RET LA57B: CALL LA8D1 POP H LXI H,LAF6E CALL LA2CA SUB A INR A RET LA588: STC JMPR LA58C LA58B: ANA A LA58C: EXAF CALL LAC02 LA590: CALL LAF17 CPI 03AH JRNZ LA590 MVI D,000H CALL LA5C9 MOV C,A ANA A JRZ LA5C4 CALL LA5C9 MOV H,A CALL LA5C9 MOV L,A CALL LA5C9 LA5AB: CALL LA5C9 MOV M,A CMP M JNZ LA6FC INX H DCR C JRNZ LA5AB CALL LA5C9 MOV A,D ANA A JRZ LA590 LXI H,LAF93 LA5C1: JMP LA2CA LA5C4: LXI H,LAF96 JMPR LA5C1 LA5C9: EXAF JRC LA5D2 EXAF CALL LAF26 JMPR LA5E0 LA5D2: EXX EXAF CALL LAF17 MOV D,A CALL LAF17 MOV E,A CALL LA5E5 EXX LA5E0: PUSH PSW ADD D MOV D,A POP PSW RET LA5E5: MOV A,D CALL LACA5 RAL RAL RAL RAL MOV D,A MOV A,E CALL LACA5 ADD D RET LA5F4: CALL LAC02 CALL LA605 LA5FA: MVI C,046H LA5FC: MVI B,000H LA5FE: CALL LAEE2 DCR C JRNZ LA5FE RET LA605: MVI C,032H LA607: LXI H,01E0CH LA60A: DCX H MOV A,H ORA L JRNZ LA60A DCR C JRNZ LA607 RET LA613: LXI D,LD04E LXI H,LD04A LXI B,00004H LDIR RET LA61F: LXI D,LD04E LA622: MVI B,004H JMP LACF4 LA627: CALL LAC47 LA62A: PUSH B LDAX D MOV B,M CMP B JRNZ LA639 LA630: POP B CCI JPO LAEE0 INX D JMPR LA62A LA639: MOV C,A PUSH B CALL LAD04 POP B PUSH B MOV A,B CALL LAD09 POP B MOV A,C CALL LAD09 XCHG CALL LA8D1 XCHG JMPR LA630 LA650: CALL LAC47 PUSH H PUSH D PUSH B LDIR POP B POP D POP H JMPR LA62A LA65D: CALL LAC40 MOV A,L OUT 040H RET LA664: STC JMPR LA668 LA667: ANA A LA668: EXAF CALL LA605 CALL LAC52 PUSH H POP Y PUSH B CALL LAEE0 POP B LA677: PUSH B MOV A,B ANA A MVI A,010H JRNZ LA682 CMP C JRC LA682 MOV A,C LA682: MOV D,A PUSH D CALL LA693 POP D POP B MOV A,C SUB D MOV C,A JRNC LA68F DCR B LA68F: ORA B JRNZ LA677 RET LA693: MVI B,03AH CALL LAEE2 MVI E,000H MOV A,D CALL LA6BE MOV A,H CALL LA6BE MOV A,L CALL LA6BE SUB A CALL LA6BE LA6AA: MOV A,[Y+000H] CALL LA6BE INX H INX Y DCR D JRNZ LA6AA MOV A,E NEG CALL LA6BE JMPR LA6E4 LA6BE: MOV B,A ADD E MOV E,A MOV A,B EXAF JRC LA6C9 EXAF JMP LAEFA LA6C9: EXAF EXX CALL LAD14 EXX RET LA6D0: STC JMPR LA6D4 LA6D3: ANA A LA6D4: EXAF CALL LAC02 CALL LA605 LA6DB: MVI B,03AH CALL LAEE2 SUB A CALL LA6BE LA6E4: JMP LAEE0 LA6E7: CALL LAC40 PCHL LA6EB: CALL LAC52 LA6EE: PUSH B CALL LAF26 POP B MOV M,A CCI JRNZ LA6FB RPO JMPR LA6EE LA6FB: DCX H LA6FC: CALL LAD04 LXI H,LAFA8 JMP LA2CA LA705: CALL LA605 CALL LAC52 LA70B: PUSH B MOV B,M CALL LAEE2 POP B CCI RPO JMPR LA70B LA716: CALL LAC02 LHLD LD1BD CALL LA91F LA71F: CALL LA939 RZ CALL LADF7 JMPR LA71F LA728: CALL LABD8 CALL LAC5D SDED LD046 SDED LD048 SHLD LD04A LXI D,LD040 LHLD LD1BB CALL LACE0 JRNZ LA74A LXI H,LAFC3 JMP LA2CA LA74A: LDED LD046 LBCD LD04A CALL LA8FA JRC LA75A CALL LA8E9 LA75A: JC LA8D7 CALL LA8DD JRC LA75A LXI D,LD040 LHLD LD1BB CALL LA7AC LXI B,0000CH LHLD LD046 MVI M,001H CALL LA846 LXI D,LD040 JMP LAAEB LA77C: CALL LABD8 PUSH Y LXI H,LA1C2 CALL LACCC MOV E,M INX H MOV D,M POP Y PUSH D CALL LABD8 POP H JMPR LA799 LA793: CALL LABD8 CALL LAC40 LA799: SHLD LD044 LXI D,LD040 LHLD LD1BF CALL LA7AC RNC LXI B,00006H JMP LA854 LA7AC: CALL LACE0 MVI B,000H JRNZ LA7B7 XCHG LDIR RET LA7B7: PUSH B PUSH D PUSH H LXI H,ENDRAM LDED LD1C5 ANA A DSBB B DSBB D JRC LA7E9 MOV H,D MOV L,E DAD B MOV B,H MOV C,L CALL LA8FA JRC LA7E9 MOV H,D MOV L,E POP D PUSH H ANA A DSBB D PUSH B MOV B,H MOV C,L INX B XCHG POP D XTHL LDDR POP D POP H POP B LDIR STC RET LA7E9: LXI H,LAFCE JMP LA2CA LA7EF: CALL LABD8 LXI H,LAFEC MVI B,006H CALL LACF4 JZ LA2C7 LXI H,LA84D PUSH H LHLD LD1BD PUSH H JMPR LA820 LA807: LHLD LD1BB LXI D,LA846 RES 1,[X+000H] JMPR LA819 LA813: LHLD LD1BF LXI D,LA854 LA819: PUSH D PUSH H CALL LABD8 POP H PUSH H LA820: CALL LACE0 JNZ LA2C7 MVI B,000H MOV D,H MOV E,L DAD B PUSH B PUSH H MOV B,H MOV C,L LHLD LD1C5 ANA A DSBB B MOV B,H MOV C,L POP H INX B LDIR POP B LXI H,00000H ANA A DSBB B MOV B,H MOV C,L POP D RET LA846: LHLD LD1BD DAD B SHLD LD1BD LA84D: LHLD LD1BF DAD B SHLD LD1BF LA854: LHLD LD1C5 MOV D,H MOV E,L DAD B SHLD LD1C5 LHLD LD1C1 ANA A DSBB D JRZ LA871 JRC LA87C DSBB B JRC LA871 BIT 2,[X+000H] JRZ LA87C LA871: LHLD LD1C5 INX H SHLD LD1C1 RES 2,[X+000H] LA87C: LHLD LD1C5 PUSH H LXI H,LD000 JMPR LA8CD LA885: LHLD LD1BF JMP LADAF LA88B: CALL LAC02 LHLD LD1BB CALL LA91F LA894: CALL LA939 JRZ LA8D4 CALL LADD2 JMPR LA894 LA89E: RES 2,[X+000H] CALL LAC32 JRNZ LA8AF SET 2,[X+000H] LHLD LD1C5 INX H LA8AF: CALL LAC60 MOV B,H MOV C,L CALL LA8DD JRC LA8D7 CALL LA8FA JRC LA8D7 SDED LD1C1 SBCD LD1C3 LA8C6: LHLD LD1C3 PUSH H LHLD LD1C1 LA8CD: CALL LAD04 POP H LA8D1: CALL LAD0F LA8D4: JMP LAEE0 LA8D7: LXI H,LAFAA JMP LA2CA LA8DD: LXI H,LD000 ANA A DSBB B RNC LHLD LD1C5 JMPR LA8F5 LA8E9: LHLD LD1C1 ANA A DSBB B JRZ LA8F2 RNC LA8F2: LHLD LD1C3 LA8F5: ANA A DSBB D CMC RET LA8FA: LHLD LD1BB CALL LA91F LA900: CALL LA92D RZ MOV A,M INX H PUSH H MOV H,M MOV L,A ANA A DSBB B POP H JRZ LA91D JRNC LA900 INX H INX H INX H MOV A,M INX H MOV H,M MOV L,A ANA A DSBB D JRC LA900 LA91D: STC RET LA91F: PUSH B MOV B,M INX H MOV C,M INX H SHLD LD0B6 SBCD LD0B8 POP B RET LA92D: CALL LA939 RZ LDA LD0B9 LA934: ADD L MOV L,A RNC INR H RET LA939: LHLD LD0B6 PUSH H LDA LD0B8 CALL LA934 SHLD LD0B6 POP H MOV A,M ANA A RET LA94A: CALL LA337 CALL LA9DD CALL LA9DD POP H PUSH H LXI B,0FFDAH DAD B JC LA2C7 CALL LA3E2 POP D POP H LA961: PUSH D PUSH H CALL LA3E9 JRZ LA980 XCHG POP H CALL LAA1A PUSH H LXI B,09000H ANA A DSBB B POP H POP D JRC LA97B LXI D,00001H LA97B: CALL LAA11 JMPR LA961 LA980: POP H LA981: POP H RET LA983: CALL LA337 CALL LA9DD CALL LA9DD CALL LAC12 JRNZ LA999 LXI H,LA9FA CALL LA9E5 JMPR LA99C LA999: CALL LA9ED LA99C: CALL LAC02 POP B POP D POP H LA9A2: PUSH B PUSH D PUSH H LXI D,LD04A CALL LAA1A MVI A,020H STA LD04E MVI D,005H LXI H,LD04A CALL LAE47 CALL LA154 INX B INX B INX B INX B INX B INX B LXI D,LD04A CALL LA2E3 POP H POP D CALL LAA11 POP B JRC LA9D7 PUSH H DSBB B POP H JRC LA9A2 JRZ LA9A2 LA9D7: LXI H,LA9FE JMP LA2D0 LA9DD: CALL LAC12 JRNZ LA9ED LXI H,LA9F6 LA9E5: LXI D,LD04A LXI B,00004H LDIR LA9ED: LXI H,LD04A CALL LAC8A XCHG XTHL PCHL LA9F6: DB '0001' LA9FA: DB '9999' LA9FE: DB 'AUTO MODE COMPLETE',0DH LAA11: MOV A,E ADD L DAA MOV L,A MOV A,D ADC H DAA MOV H,A RET LAA1A: MOV B,H CALL LAA1F MOV B,L LAA1F: MOV A,B RAR RAR RAR RAR CALL LAA28 MOV A,B LAA28: ANI 00FH ADI 030H STAX D INX D RET LAA2F: CALL LAC40 PUSH H CALL LAC02 LAA36: CALL LA154 LAA39: CALL LAEA8 MOV A,M CPI 02FH JZ LA981 CPI 00DH JRZ LAA36 CALL LAC7F MOV A,M CPI 03AH JRZ LAA54 XTHL MOV M,E INX H XTHL JMPR LAA39 LAA54: INX H POP B PUSH D JMPR LAA39 LAA59: CALL LABD8 CALL LAC40 SHLD LD046 LXI D,LD040 LHLD LD1BB CALL LACCC PUSH H XCHG CALL LAADC SHLD LD04C CALL LAADC SHLD LD04E LBCD LD04C ANA A DSBB B LBCD LD046 DAD B SHLD LD048 CALL LAADC SHLD LD050 LBCD LD04C ANA A DSBB B LBCD LD046 DAD B SHLD LD04A LDED LD046 LBCD LD04A CALL LA8E9 JRC LAAD0 CALL LA8FA JRC LAAD0 CALL LA8DD JRC LAAD0 LHLD LD048 DSBB D MOV B,H MOV C,L INX B LHLD LD04C CALL LAEB3 POP D LXI H,LD046 LXI B,00006H LDIR LXI D,LD040 JMPR LAAEB LAAD0: POP D LXI H,LD04C LXI B,00006H LDIR JMP LA8D7 LAADC: LDAX D MOV L,A CALL LAAE3 LDAX D MOV H,A LAAE3: MVI A,0FFH STAX D INX D RET LAAE8: CALL LABD8 LAAEB: LHLD LD1BB CALL LACE0 JNZ LA2C7 LXI D,LD040 LXI B,0000CH PUSH H LDIR POP D LXI H,LD1C9 LXI B,0000CH LDIR LXI H,LD040 LXI D,LD1C9 LXI B,0000CH LDIR SET 1,[X+000H] RET LAB16: CALL LABD8 CALL LAC32 JRNZ LAB21 LHLD LD0AC LAB21: SHLD LD046 CALL LAC32 JRNZ LAB2C LHLD LD0AE LAB2C: SHLD LD048 LHLD LD0B0 CALL LAB83 STA LD04A CALL LABAA JRNZ LAB42 LHLD LD0B1 MVI H,000H LAB42: LXI B,00005H LXI D,00080H CALL LAB9A MOV A,L STA LD04B LHLD LD0B2 CALL LAB83 STA LD04C LHLD LD0B3 CALL LAB83 STA LD04D LHLD LD0B4 CALL LAB83 STA LD04E LHLD LD0B5 CALL LAB83 STA LD04F LHLD LD1BD LXI D,LD040 CALL LA7AC RNC LXI B,00010H JMP LA84D LAB83: MVI H,000H PUSH H CALL LABAA JRNZ LAB8E POP H JMPR LAB8F LAB8E: POP D LAB8F: CALL LAB94 MOV A,L RET LAB94: LXI B,00000H LXI D,00080H LAB9A: PUSH H ANA A DSBB B POP H JRC LABA7 PUSH H DSBB D POP H RC RZ LABA7: JMP LA2C7 LABAA: CALL LABED RZ PUSH H LABAF: INX H MOV A,M CALL LAE7F JRNC LABAF POP B CALL LABC1 PUSH H POP Y XCHG SUB A INR A RET LABC1: PUSH H LXI H,00000H LABC5: DAD H MOV D,H MOV E,L DAD H DAD H DAD D LDAX B CALL LAE7F JC LA981 CALL LACB6 JRNZ LABC5 RET LABD8: CALL LABDE JRZ LABA7 RET LABDE: CALL LABED RZ MVI B,006H LXI D,LD040 CALL LA19B SUB A INR A RET LABED: PUSH Y POP H LABF0: MOV A,M CPI 00DH RZ INX H INX Y MOV A,M CPI 02CH RZ CPI 020H JRZ LABF0 CPI 00DH RET LAC02: EXX CALL LABDE JRZ LAC10 CALL LACD3 JRNZ LABA7 CALL LAF52 LAC10: EXX RET LAC12: LXI D,LD04A JMPR LAC1A LAC17: LXI D,LD04E LAC1A: CALL LABED RZ LXI B,000FFH CALL LA341 PUSH H POP Y MOV A,M CPI 00DH JRZ LAC30 CPI 02CH JRNZ LAC44 LAC30: INR A RET LAC32: CALL LABED RZ LAC36: CALL LAC7F PUSH H POP Y XCHG SUB A INR A RET LAC40: CALL LAC32 RNZ LAC44: JMP LA2C7 LAC47: CALL LAC5D PUSH B PUSH D CALL LAC40 XCHG JMPR LAC5A LAC52: CALL LAC5D PUSH B PUSH D CALL LAC02 LAC5A: POP H POP B RET LAC5D: CALL LAC40 LAC60: PUSH H CALL LABED JRZ LAC44 MOV A,M CPI 053H PUSH PSW JRNZ LAC6D INX H LAC6D: CALL LAC36 POP PSW JRZ LAC79 POP B PUSH B ANA A DSBB B INX H LAC79: MOV B,H MOV C,L POP D DAD D DCX H RET LAC7F: PUSH H CALL LAE9F POP B CALL LAC90 JRC LAC44 RET LAC8A: MOV B,H MOV C,L INX H INX H INX H INX H LAC90: PUSH H LXI H,00000H LAC94: DAD H DAD H DAD H DAD H LDAX B CALL LACA5 JC LA981 CALL LACB6 JRNZ LAC94 RET LACA5: CALL LAE7F JRNC LACB3 CPI 041H RC CPI 047H CMC RC ADI 009H LACB3: ANI 00FH RET LACB6: ANI 00FH CALL LA934 XCHG POP H XTHL PUSH H INX B ANA A DSBB B POP H JRNZ LACC8 MOV A,M RET LACC8: XTHL PUSH H XCHG RET LACCC: CALL LACD6 JNZ LA2C7 RET LACD3: LHLD LD1BD LACD6: CALL LACE0 RNZ MOV C,B MVI B,000H DAD B SUB A RET LACE0: MOV B,M INX H MOV C,M INX H LACE4: MOV A,M ANA A JRZ LACF2 CALL LACF4 RZ MOV A,C CALL LA934 JMPR LACE4 LACF2: INR A RET LACF4: PUSH H PUSH D PUSH B XCHG LACF8: LDAX D CMP M JRNZ LAD00 INX H INX D DJNZ LACF8 LAD00: POP B POP D POP H RET LAD04: CALL LAD0F JMPR LAD0C LAD09: CALL LAD14 LAD0C: JMP LA0A2 LAD0F: MOV A,H CALL LAD14 MOV A,L LAD14: MOV C,A RAR RAR RAR RAR CALL LAD1D MOV A,C LAD1D: ANI 00FH ADI 030H CPI 03AH JRC LAD27 ADI 007H LAD27: MOV B,A JMP LAEE2 LAD2B: JRC LAD37 MVI C,005H LAD2F: MOV B,M CALL LAEE2 INX H DCR C JRNZ LAD2F LAD37: MOV A,M CPI 03BH JRZ LAD80 BIT 0,[X+000H] JRZ LAD80 MVI C,001H PUSH H CALL LAE9F CPI 03AH POP H JRNZ LAD55 LAD4D: CALL LAD83 INX H CPI 03AH JRNZ LAD4D LAD55: CALL LAD8B MOV D,[X-007H] CALL LAD95 CALL LAD88 CPI 00DH JRZ LAD80 CPI 03BH JRZ LAD7A MOV D,[X-006H] CALL LAD95 LAD6F: CALL LAD88 CPI 00DH JRZ LAD80 CPI 03BH JRNZ LAD6F LAD7A: MOV D,[X-005H] CALL LAD95 LAD80: JMP LA2D0 LAD83: MOV B,M LAD84: INR C JMP LAEE2 LAD88: CALL LAD9F LAD8B: MOV A,M CPI 020H RNZ CALL LAD83 INX H JMPR LAD8B LAD95: MOV A,C CMP D RP MVI B,020H CALL LAD84 JMPR LAD95 LAD9F: MOV A,M CPI 020H RZ CPI 00DH RZ CPI 03BH RZ CALL LAD83 INX H JMPR LAD9F LADAF: MOV D,M INX H MOV E,M INX H LADB3: MVI B,004H LADB5: MOV A,M ANA A JRZ LADE0 PUSH B PUSH D PUSH H CALL LAE47 XTHL DAD D XTHL CALL LADE6 CALL LA09F POP H POP D POP B DJNZ LADB5 CALL LAEE0 JMPR LADB3 LADD2: MVI D,006H CALL LAE47 CALL LA09F CALL LADE3 CALL LADE6 LADE0: JMP LAEE0 LADE3: CALL LADE6 LADE6: CALL LA09F PUSH H EXX POP H MOV A,M INX H MOV H,M MOV L,A CALL LAD0F EXX INX H INX H RET LADF7: MVI D,006H CALL LAE47 CALL LA09F CALL LADE3 MVI A,006H LAE04: EXAF CALL LAE0E EXAF DCR A JRNZ LAE04 JMPR LADE0 LAE0E: CALL LA09F MOV A,M EXX CALL LAE24 CALL LAEE2 MOV B,C CALL LAEE2 MOV B,D CALL LAEE2 EXX INX H RET LAE24: LXI B,03030H MOV D,B MOV E,A MVI A,03AH INR E LAE2C: DCR E JRZ LAE3D INR D CMP D JRNZ LAE2C MVI D,030H INR C CMP C JRNZ LAE2C MOV C,D INR B JMPR LAE2C LAE3D: MVI A,030H CMP B RNZ MVI B,020H CMP C RNZ MOV C,B RET LAE47: MOV B,M CALL LAEE2 INX H DCR D JRNZ LAE47 RET LAE50: CALL LAC52 XCHG PUSH B LAE55: CALL LAEE0 CALL LAD0F MVI B,03AH CALL LAEE2 CALL LA0A2 MVI D,010H LAE65: MOV A,M CALL LAD09 POP B CCI JPO LAEE0 PUSH B DCR D JRNZ LAE65 JMPR LAE55 LAE75: MVI A,020H LAE77: STAX D MOV H,D MOV L,E INX D DCX B LDIR RET LAE7F: CPI 030H RC CPI 03AH CMC RET LAE86: MOV C,B MVI B,000H PUSH B PUSH D PUSH H CALL LAE75 POP H POP D POP B LAE92: PUSH B CALL LAEC6 POP B RZ LDI JPO LAEC6 JMPR LAE92 LAE9F: PUSH B CALL LAEC6 POP B RZ INX H JMPR LAE9F LAEA8: MOV A,M CPI 020H JRZ LAEB0 CPI 009H RNZ LAEB0: INX H JMPR LAEA8 LAEB3: ANA A PUSH H DSBB D POP H JRC LAEBD LDIR RET LAEBD: DAD B XCHG DAD B XCHG DCX D DCX H LDDR RET LAEC6: PUSH D XCHG LXI H,LAED2 CALL LACD6 XCHG MOV A,M POP D RET LAED2: DB 1,1,',:+-/* );',0DH,9,0 LAEE0: MVI B,00DH LAEE2: CALL LAEFA MOV A,B CPI 00DH RNZ PUSH B MVI B,00AH CALL LAEFA LDA LD0B0 ANA A MOV C,A CNZ LA5FC POP B MOV A,B RET LAEFA: PUSH H LHLD LD0AC CALL LA1C1 JRNC LAF0F ANI 07FH CALL LAF1D CPI 013H PUSH B CZ LAF17 POP B LAF0F: LHLD LD0AE CALL LA1C1 POP H RET LAF17: CALL LAF26 ANI 07FH MOV B,A LAF1D: CPI 01BH JRZ LAF32 CPI 07DH JRZ LAF32 RET LAF26: PUSH H LHLD LD0AC LAF2A: CALL LA1C1 JRNC LAF2A POP H MOV B,A RET LAF32: CALL LAEE0 JMP LA119 LAF38: IN 000H ANI 040H RZ IN 001H STC RET LAF41: IN 000H ANI 080H JRZ LAF41 MOV A,B OUT 001H RET LAF4B: LHLD LD1BD LXI D,00008H DAD D LAF52: LXI D,LD0AC LAF55: LXI B,0000AH LDIR RET LAF5B: DB 'CROMEMCO ROS V.2.1',0DH LAF6E: DB 'FILE ' LAF73: DB 'ERROR',0DH LAF79: DB 'FILE FULL',0DH LAF83: DB 'NO CURRENT FILE',0DH LAF93: DB 'CS',0DH LAF96: DB 'OK',0DH LAF99: DB 'FILE TOO LARGE',0DH LAFA8: DB 'M',0DH LAFAA: DB 'MEMORY ALREADY ALLOCATED',0DH LAFC3: DB 'DUP. NAMES',0DH LAFCE: DB 'NO MORE ROOM',0DH ; LAFDB: DW LD1C7 DW LD1CA DW LD1DD DW LD1E0 DW ENDRAM DW LD1DF DW 0C06H ;************** DB 0 LAFEA: DW 1006H ;************** LAFEC: DB 'SYS000' ; LAFF2: DW LAF38 DW LAF41 NOP INR A MVI B,009H RRC DAD D NOP INR B MVI B,000H LB000: CALL LB0D6 JMPR LB036 LB005: CALL LB0D6 SET 7,[X+001H] JMPR LB011 LB00E: CALL LB0D6 LB011: LXI H,LB0A0 CALL LB040 SHLD LD0CD LXI H,LB0A6 CALL LB05F MOV C,M INX H MOV B,M SBCD LD0C9 LXI H,LB0BB CALL LB05F SHLD LD0CB LHLD LD0CD CALL LB116 LB036: BIT 3,[X+001H] CZ LA06C JMP LB127 LB040: PUSH H CALL LB078 CPI 00DH JRZ LB05A MVI B,006H LXI D,LD040 CALL LA075 CALL LA030 JRNZ LB057 POP D RET LB057: POP H JMPR LB040 LB05A: POP D LB05B: LXI H,LD0AC RET LB05F: PUSH H LXI B,00006H DAD B LB064: PUSH H CALL LB078 XCHG CALL LA045 JRZ LB071 POP H JMPR LB064 LB071: MOV C,M INX H MOV B,M POP H POP H PUSH B RET LB078: MVI D,006H CALL LA027 PUSH H CALL LA02A MOV A,M POP D RET LB084: SET 3,[X+001H] JMPR LB040 LB08A: SET 4,[X+001H] JMPR LB05B LB090: RES 5,[X+001H] JMPR LB09A LB096: RES 6,[X+001H] LB09A: SET 4,[X+001H] JMPR LB040 ; LB0A0: DB 'LIST =' LB0A6: DB 'READ =' DB 'RTYPE=' ; DB 1,3 DB 'M' DW LB05B DB 'I' DW LB084 DB 0 LB0BB: DB 'PUNCH=' DB 'PTYPE=' DB 1,3 DB 'N' DW LB08A DB 'M' DW LB05B DB 'H' DW LB090 DB 'B' DW LB096 DB 0 LB0D6: CALL LA033 JRNZ LB0DE LXI H,00000H LB0DE: SHLD LD0BC CALL LA033 JRNZ LB0E9 LHLD LD0BC LB0E9: LDED LD0BC ANA A DSBB D SHLD LD0C2 CALL LA036 JRNZ LB0FB LXI H,00001H LB0FB: MOV A,H ANA A JRNZ LB10F MVI B,067H DCR L JRZ LB112 DCR B DCR L JRZ LB112 DCR B DCR L JRZ LB112 MVI B,063H DCR L LB10F: JNZ LA039 LB112: MOV [X+001H],B RET LB116: LIYD LD0AC LXI D,LD0AC LXI B,0000AH LDIR SIYD LD0AC RET LB127: MVI [X+004H],001H LDA LD0B1 STA LD0BF CALL LB1F4 LHLD LD1C3 LDED LD1C1 PUSH D DSBB D MOV A,H ANA A JRNZ LB147 MOV A,L CPI 006H JRC LB1B5 LB147: POP D LXI B,00003H PUSH B LXI H,LB1BE LDIR SDED LD0C4 POP B LDIR SDED LD0C6 LXI H,LB1C4 CALL LB9E9 CALL LB1FB LXI H,LD0BE INR M CALL LB1F4 MVI [X+00EH],001H CALL LB1FB BIT 2,[X+001H] CZ LB376 BIT 1,[X+001H] CZ LB66C MVI [X+004H],005H CALL LB1F4 LHLD LD0CB CALL LB116 MVI [X+02CH],000H BIT 5,[X+001H] JRZ LB19D BIT 6,[X+001H] RNZ LB19D: CALL LA066 CALL LB1FB LXI H,LD0E9 INR M MVI B,001H CALL LB301 CALL LB36C CALL LA069 JMP LA066 LB1B5: LXI H,LB1E2 CALL LA03C JMP LA00C LB1BE: DB 6,9,0,6,10,0 LB1C4: DB 'CROMEMCO Z-80 ASSEMBLER V.2.0',0DH LB1E2: DB 'SYMBOL TABLE FULL',0DH LB1F4: LHLD LD0BC SHLD LD0C0 RET LB1FB: STC JMPR LB1FF LB1FE: ANA A LB1FF: CALL LB5E9 JZ LB4AC LXI H,02020H SHLD LD0CF CALL LB4BF MVI B,000H JRZ LB25A LXI H,LB6E8 LXI D,LD0D3 MVI B,005H CALL LB45E JRZ LB25F LHLD LD0C0 CALL LB4F3 LXI H,LB6B6 LB228: MOV E,M INX H MOV D,M INX H PUSH H XCHG LXI D,LD0D3 MVI B,005H CALL LB45E JRZ LB251 POP H INX H INX H MOV A,M ANA A JRNZ LB228 LXI H,00000H SHLD LD100 SHLD LD102 MVI B,003H MVI A,04FH CALL LBFE4 JMPR LB259 LB251: POP B XCHG LHLD LD0D1 CALL LB456 LB259: STC LB25A: CALL LB269 JMPR LB1FE LB25F: MOV B,H MOV C,L LHLD LD0D1 CALL LB456 JMPR LB1FE LB269: PUSH B PUSH PSW CALL LBF9A CZ LB295 POP PSW POP B RNC MOV C,B MVI B,000H PUSH B LDA LD0BE CPI 002H JRZ LB289 CPI 005H JRNZ LB28C MOV B,C CALL LB301 JMPR LB28C LB289: CALL LB2ED LB28C: POP B LHLD LD0C0 DAD B SHLD LD0C0 RET LB295: PUSH B CALL LB9CA POP B LXI H,LD100 CALL LB2C1 JRZ LB2B6 EXX CALL LB2D5 LB2A6: CALL LA096 EXX CALL LB2C1 JZ LB4AC EXX CALL LB4AC JMPR LB2A6 LB2B6: DCR C JZ LB2D5 PUSH B CALL LA09C POP B JMPR LB2B6 LB2C1: MVI C,005H MOV A,B ANA A RZ DCR C LB2C7: PUSH B MOV A,M CALL LA024 INX H POP B DCR B RZ DCR C JRNZ LB2C7 INR C RET LB2D5: CALL LA0A2 LXI H,LD0CF MVI D,002H CALL LA027 CALL LA09F LHLD LD0E0 ANA A CALL LA072 JMP LB47B LB2ED: BIT 4,[X+001H] RNZ LHLD LD0C0 LDED LD0C2 DAD D XCHG LXI H,LD100 LDIR RET LB301: LHLD LD0C0 LXI D,LD100 LDA LD0E6 ANA A JRZ LB339 PUSH B PUSH H LBCD LD0E9 ANA A DSBB B POP H POP B JRZ LB33E CALL LB343 LB31D: LDI INX B INX Y INR [X+02CH] MOV A,[X+02CH] CPI 010H JRNZ LB332 PUSH Y POP H CALL LB343 LB332: DJNZ LB31D SIYD LD0E9 RET LB339: CALL LB35D JMPR LB31D LB33E: CALL LB360 JMPR LB31D LB343: PUSH B PUSH D PUSH H LXI Y,LD0ED LHLD LD0EB MOV D,[X+02CH] CALL LB36C CALL LA06F POP H POP D POP B MVI [X+02CH],000H LB35D: SHLD LD0EB LB360: PUSH H POP Y LXI H,LD0ED LDA LD0E6 JMP LA08A LB36C: ANA A BIT 6,[X+001H] JRZ LB374 STC LB374: EXAF RET LB376: LXI H,LB3C5 CALL LB9E9 LHLD LD1C1 CALL LB688 CALL LA078 BIT 3,[X+001H] JRZ LB3B8 LHLD LD0C4 CALL LB688 INX H INX H PUSH H PUSH B LB395: CALL LB3D5 POP B POP D RZ LB39B: LDAX D ANA A PUSH D PUSH B JRZ LB3B3 LXI H,00006H DAD D SHLD LD0E0 CALL LB40F JRNZ LB3B3 POP B POP H DAD B XCHG JMPR LB39B LB3B3: CALL LB4AC JMPR LB395 LB3B8: MVI [X+004H],003H LB3BC: CALL LB3D5 RZ CALL LB1FB JMPR LB3BC LB3C5: DB 'CROSS REFERENCE',0DH LB3D5: CALL LA07B RZ LXI D,LD1A1 PUSH D LXI B,00006H LDIR XTHL MVI D,006H CALL LA027 CALL LA09F POP H MOV E,M INX H MOV D,M INX H BIT 7,M JRZ LB401 XCHG CALL LA01B LB3F8: CALL LA099 SUB A STA LD0FD INR A RET LB401: CALL LA099 JMPR LB3F8 LB406: LDA LD0BE DCR A JRZ LB438 SUI 002H RNZ LB40F: LXI H,LD1A1 MVI B,006H CALL LA042 RNZ LDA LD0FD SUI 00BH JRNZ LB428 STA LD0FD CALL LB4AC CALL LA090 LB428: INR [X+043H] LHLD LD0E0 MVI D,004H CALL LA027 CALL LA0A2 SUB A RET LB438: BIT 3,[X+001H] RZ PUSH D LHLD LD0E0 LXI D,LD040 LXI B,00004H LDIR POP D LXI B,00004H LHLD LD0C6 DCX H JMP LB561 LB454: MOV B,D MOV C,E LB456: PUSH H LDAX B MOV L,A INX B LDAX B MOV H,A XTHL RET LB45E: PUSH B CALL LA045 MOV A,C POP B RNZ LB465: INX D DCR B RZ DCR A JRNZ LB465 LB46B: LDAX D CPI 020H RNZ INX D DJNZ LB46B RET LB473: MVI B,00DH JMP LA015 LB478: CALL LA03C LB47B: INR [X+005H] LDA LD0B1 CMP [X+005H] RNZ LB485: LDA LD0B2 ANA A JRNZ LB492 MVI B,00CH CALL LA015 JMPR LB4A2 LB492: MOV C,A LDA LD0B1 ADD C MOV C,A SUB [X+005H] MOV D,A LB49C: CALL LB473 DCR D JRNZ LB49C LB4A2: SUB A STA LD0BF LXI H,LD150 CALL LB478 LB4AC: CALL LB473 JMPR LB47B LB4B1: MVI A,00DH LXI B,00050H LB4B6: CMP M LDI RZ JPE LB4B6 STAX D RET LB4BF: LXI D,LD0D8 LXI B,00006H CALL LA04E LHLD LD0DE MOV A,M CPI 03BH RZ PUSH H CALL LA057 POP H CPI 03AH JRNZ LB4E1 MVI B,006H LXI D,LD0D8 CALL LA05A INX H LB4E1: CALL LA054 MVI B,005H LXI D,LD0D3 CALL LA05A CALL LA054 SHLD LD0D1 RET LB4F3: LXI D,LD0D8 LDAX D CPI 020H RZ PUSH D PUSH H CALL LB5A1 POP B POP D LDA LD0BE DCR A JRZ LB51F DCR A RNZ PUSH B CALL LB521 POP H CPI 0C0H JRZ LB51A ANA A DSBB B RZ MVI A,050H JMPR LB51C LB51A: MVI A,044H LB51C: JMP LBFE4 LB51F: MVI A,080H LB521: PUSH PSW PUSH B LHLD LD1C1 CALL LA045 POP B JRZ LB549 POP PSW PUSH PSW PUSH B SBCD LD040 STA LD042 LXI B,00003H CALL LB561 LXI B,00009H LHLD LD0C4 DAD B SHLD LD0C4 POP B POP PSW RET LB549: POP PSW ANA A JRZ LB55B MOV M,C INX H MOV M,B INX H MOV A,M ANA A JRZ LB557 MVI A,040H LB557: ADI 080H MOV M,A RET LB55B: MOV C,M INX H MOV B,M INX H MOV A,M RET LB561: PUSH D PUSH H PUSH B LHLD LD1C3 LDED LD0C6 ANA A DSBB D LXI B,0000AH DSBB B JC LB1B5 LXI H,00006H DAD D POP B DAD B SHLD LD0C6 XTHL PUSH D XCHG ANA A DSBB D PUSH B MOV B,H MOV C,L POP H POP D XTHL DCX D DCX H XCHG LDDR INX H XCHG POP B POP H PUSH B LXI B,00006H LDIR POP B LXI H,LD040 LDIR RET LB5A1: EXAF LDAX D CALL LBF17 JRC LB5D3 MOV H,D MOV L,E MVI B,005H LB5AC: INX D LDAX D CALL LBF17 JRNC LB5BC CALL LA05D JRNC LB5BC CPI 020H JRNZ LB5D3 LB5BC: DJNZ LB5AC CALL LBE77 JRZ LB5D3 CALL LBE60 JRZ LB5D3 XCHG LXI H,LB5DC MVI B,006H CALL LB45E STC RNZ LB5D3: EXAF CZ LBFD3 CNZ LB89E ANA A RET LB5DC: DB 2,2 DB 'I R SPIXIY',0 LB5E9: BIT 3,[X+001H] JRNZ LB613 JRNC LB5F7 LHLD LD1CF SHLD LD0E2 LB5F7: LHLD LD0E2 MOV A,M DCR A RZ INX H PUSH H CALL LA08A SHLD LD0E2 POP H LB606: SHLD LD0E0 LXI D,00005H DAD D SHLD LD0DE SUB A INR A RET LB613: JRNC LB61B LXI H,00001H SHLD LD0FE LB61B: CALL LB640 RZ BIT 7,[X+001H] JRZ LB606 MVI [X-062H],020H LHLD LD0FE LXI D,LD054 CALL LA07E LXI D,00001H CALL LA081 SHLD LD0FE LXI H,LD054 JMPR LB606 LB640: LXI H,LD059 MVI E,04BH LB645: PUSH H LHLD LD0C9 CALL LB8AF POP H RZ ANI 07FH MOV M,A CPI 00DH JRZ LB666 CPI 009H JRZ LB65D CPI 020H JRC LB663 LB65D: DCR E INX H JRNZ LB663 INR E DCX H LB663: ANA A JMPR LB645 LB666: LXI H,LD059 SUB A INR A RET LB66C: LXI H,LB67B CALL LB9E9 LHLD LD1C1 CALL LB688 JMP LA03F LB67B: DB 'SYMBOL TABLE',0DH LB688: PUSH H MVI B,000H INX H MOV C,M INX H MOV A,M ANA A JRZ LB6B2 PUSH B EXAF LB694: MOV D,H MOV E,L DAD B MOV A,M ANA A JRZ LB6B0 CALL LA042 JRNC LB6AC EXAF PUSH H LB6A2: LDAX D LDI DCX H MOV M,A INX H JPE LB6A2 POP H LB6AC: POP B PUSH B JMPR LB694 LB6B0: EXAF POP B LB6B2: POP H JRC LB688 RET LB6B6: DW LB71C DW LB88F DW LB747 DW LB88F DW LB759 DW LB8A3 DW LB78C DW LB8A3 DW LB7CB DW LB454 DW LB7EA DW LB454 DW LB81D DW LB8B0 DW LB82C DW LB8CB DW LB83D DW LB8F7 DW LB85C DW LB914 DW LB86B DW LB966 DW LB878 DW LB97C DW 0 LB6E8: DB 5,7 DB 'ORG ' DW LB9A6 DB 'EQU ' DW LB9B3 DB 'DEFS ' DW LB9D3 DB 'DS ' DW LB9D3 DB 'EJECT' DW LB9DF DB 'TITLE' DW LB9E5 DB 'END ' DW LB9F2 DB 0 LB71C: DB 3,4 DB 'EXX',0D9H DB 'DAA',27H DB 'CPL',2FH DB 'CCF',3FH DB 'SCF',37H DB 'DI ',0F3H DB 'EI ',0FBH DB 'NOP',0 DB 'RLA',17H DB 'RRA',1FH DB 0 LB747: DB 4,5 DB 'HALT',76H DB 'RLCA',7 DB 'RRCA',0FH DB 0 LB759: DB 3,4 DB 'LDI',0A0H DB 'LDD',0A8H DB 'CPI',0A1H DB 'CPD',0A9H DB 'NEG',44H DB 'IM0',46H DB 'IM1',56H DB 'IM2',5EH DB 'RLD',6FH DB 'RRD',67H DB 'INI',0A2H DB 'IND',0AAH DB 0 LB78C: DB 4,5 DB 'LDIR',0B0H DB 'LDDR',0B8H DB 'CPIR',0B1H DB 'CPDR',0B9H DB 'RETI',4DH DB 'RETN',45H DB 'INIR',0B2H DB 'INDR',0BAH DB 'OUTI',0A3H DB 'OUTD',0ABH DB 'OTIR',0B3H DB 'OTDR',0BBH DB 0 LB7CB: DB 2,4 DB 'LD' DW LBB4A DB 'EX' DW LB9FC DB 'JR' DW LBA51 DB 'DB' DW LBA65 DB 'DW' DW LBA97 DB 'JP' DW LBAAF DB 'IN' DW LBAC7 DB 0 LB7EA: DB 4,6 DB 'DJNZ' DW LBA4B DB 'RET ' DW LBAEA DB 'RST ' DW LBAF5 DB 'ADD ' DW LB931 DB 'CALL' DW LBB04 DB 'OUT ' DW LBB22 DB 'DEFB' DW LBA65 DB 'DEFW' DW LBA97 DB 0 LB81D: DB 4,6 DB 'PUSH' PUSH B PUSH H DB 'POP ' POP B POP H DB 0 LB82C: DB 3,7 DB 'INC' INX B INX H INR B INR M DB 'DEC' DCX B DCX H DCR B DCR M DB 0 LB83D: DB 3,4 DB 'RLC',0 DB 'RL ',10H DB 'RRC',8 DB 'RR ',18H DB 'SLA',20H DB 'SRA',28H DB 'SRL',38H DB 0 LB85C: DB 3,4 DB 'BIT',40H DB 'SET',0C0H DB 'RES',80H DB 0 LB86B: DB 3,5 DB 'ADC' DB 8,4AH ; 0ED,4A IS DADC DB 'SBC' DB 18H,42H DB 0 LB878: DB 3,4 DB 'SUB',10H DB 'AND',20H DB 'XOR',28H DB 'OR ',30H DB 'CP ',38H DB 0 ; ; ; LB88F: LDAX D LB890: STA LD100 MVI B,001H LB895: CALL LA054 CPI 03BH RZ CPI 00DH RZ LB89E: MVI A,053H JMP LBFE4 LB8A3: LDAX D LB8A4: MVI [X+046H],0EDH LB8A8: STA LD101 MVI B,002H JMPR LB895 LB8AF: PCHL LB8B0: PUSH D CALL LBE21 JRZ LB8C1 CALL LBE60 CNZ LB89E LB8BC: XTHL LB8BD: ADD M POP H JMPR LB890 LB8C1: STA LD100 SUB A LB8C5: XTHL INX H ADD M LB8C8: POP H JMPR LB8A8 LB8CB: PUSH D CALL LBE21 JRZ LB8C1 CALL LBE65 JRZ LB8BC CALL LBE7F JRZ LB8EF CALL LBE39 CNZ LB89E XTHL INX H INX H INX H SUB A LB8E6: ADD M POP H LB8E8: STA LD101 MVI B,003H LB8ED: JMPR LB895 LB8EF: RLC RLC RLC XTHL INX H INX H JMPR LB8BD LB8F7: PUSH D CALL LBE7F JRZ LB929 CALL LBE3D CNZ LB89E SUB A LB904: XTHL MVI [X+047H],0CBH ADI 006H ADD M POP H LB90D: STA LD103 MVI B,004H JMPR LB8ED LB914: PUSH D CALL LBCCE PUSH PSW CALL LBE7C JRZ LB927 CALL LBE3D CNZ LB89E POP PSW JMPR LB904 LB927: POP D ADD D LB929: XTHL ADD M MVI [X+046H],0CBH JMPR LB8C8 LB931: CALL LBE88 JRNZ LB944 CALL LBF1E CALL LBE65 CNZ LB89E ADI 009H JMP LB890 LB944: CALL LBE21 LXI D,LBFE2 JRNZ LB97C PUSH PSW CALL LBF1E POP PSW CPI 0DDH JRZ LB95A CALL LBE6F JMPR LB95D LB95A: CALL LBE6A LB95D: CNZ LB89E ADI 009H NOP JMP LB8A8 LB966: PUSH D CALL LBE88 JRNZ LB97D CALL LBF1E MVI [X+046H],0EDH CALL LBE65 CNZ LB89E JMP LB8C5 LB97C: PUSH D LB97D: CALL LBE7F JRZ LB99A CALL LBE39 JRZ LB9A0 CALL LBD09 STA LD101 MVI A,0C6H MVI B,002H LB991: XTHL ADD M STA LD100 POP H JMP LB895 LB99A: ADI 080H MVI B,001H JMPR LB991 LB9A0: XTHL MVI A,086H JMP LB8E6 LB9A6: CALL LBF78 SHLD LD0C0 RNZ CALL LA093 LB9B0: JMP LB2D5 LB9B3: LDA LD0D8 CPI 020H CZ LBFDB CALL LBF8B RNZ CALL LA096 LB9C2: CALL LB9CD CALL LA096 JMPR LB9B0 LB9CA: LHLD LD0C0 LB9CD: CALL LA01B JMP LA09F LB9D3: CALL LBF78 PUSH H JRNZ LB9DC CALL LB9C2 LB9DC: JMP LB28C LB9DF: CALL LBF9A RNZ JMPR LB9EF LB9E5: CALL LBF9A RNZ LB9E9: LXI D,LD150 CALL LB4B1 LB9EF: JMP LB485 LB9F2: POP B CALL LBF9A RNZ CALL LA08D JMPR LB9B0 LB9FC: LXI D,LBA1D CALL LBE90 LBA02: JZ LB890 INX D CALL LBE90 JRZ LBA02 INX D CALL LBE90 CNZ LB89E CPI 0E3H JRZ LBA02 STA LD100 MVI A,0E3H JMPR LBA63 LBA1D: DB 5,6 DB 'DE,HL',0EBH DB 0 DB 6,7 DB 'AF,AF''',8 DB 0 DB 7,8 DB '(SP),HL',0E3H DB '(SP),IX',0DDH DB '(SP),IY',0FDH DB 0 LBA4B: MVI [X+046H],010H JMPR LBA60 LBA51: MVI [X+046H],018H CALL LBF4B JRNZ LBA60 STA LD100 CALL LBF1E LBA60: CALL LBCF1 LBA63: JMPR LBAC1 LBA65: LXI D,LD100 LBA68: LXI B,00050H PUSH H CALL LBFB8 JRNZ LBA8A MOV A,C CPI 04FH JRZ LBA89 POP B LBA77: CALL LBF28 JRZ LBA68 LBA7C: LXI B,LB895 PUSH B LBA80: PUSH H LXI H,02F00H DAD D MOV B,L POP H MOV A,B RET LBA89: DCX D LBA8A: POP H PUSH D CALL LBA80 CALL LBD0F POP D STAX D INX D JMPR LBA77 LBA97: LXI D,LD100 LBA9A: PUSH D CALL LBA80 CALL LBD2B POP D MOV A,C STAX D MOV A,B INX D STAX D INX D CALL LBF28 JRZ LBA9A JMPR LBA7C LBAAF: MVI [X+046H],0C3H CALL LBE83 JRZ LBAC3 CALL LBE2B MVI B,0C2H JRNZ LBB0A MVI A,0E9H LBAC1: JMPR LBAE8 LBAC3: MVI A,0E9H JMPR LBB01 LBAC7: CALL LBE77 CNZ LB89E PUSH PSW CALL LBF1E CALL LBE8D JRNZ LBADB POP PSW ADI 008H JMPR LBB44 LBADB: POP PSW CPI 007H CNZ LB89E MVI [X+046H],0DBH CALL LBD02 LBAE8: JMPR LBB39 LBAEA: CALL LBF2E JRZ LBAF1 MVI A,009H LBAF1: ADI 0C0H JMPR LBB01 LBAF5: CALL LBD05 MOV C,A ANI 0C7H CNZ LBD19 MOV A,C ORI 0C7H LBB01: JMP LB890 LBB04: MVI [X+046H],0CDH MVI B,0C4H LBB0A: PUSH B CALL LBF2E POP B JRNZ LBB18 ADD B STA LD100 CALL LBF1E LBB18: CALL LBD25 LBB1B: MOV [X+048H],B MOV A,C JMP LB8E8 LBB22: CALL LBE8D JRZ LBB3C MVI [X+046H],0D3H CALL LBD09 EXAF CALL LBF1E CPI 041H CNZ LB89E INX H EXAF LBB39: JMP LB8A8 LBB3C: CALL LBE74 CNZ LB89E ADI 028H LBB44: RLC RLC RLC LBB47: JMP LB8A4 LBB4A: LXI D,LBC87 CALL LBE90 JRZ LBB47 INX D CALL LBE90 JRZ LBB7B INX D CALL LBE90 JRNZ LBB69 STA LD100 CPI 0F9H JRZ LBB7B MVI A,0F9H LBB67: JMPR LBB39 LBB69: CALL LBE77 JRNZ LBBA3 RLC RLC RLC PUSH PSW CALL LBE7C JRNZ LBB7D LBB77: POP B ADD B ADI 040H LBB7B: JMPR LBB01 LBB7D: CALL LBE39 JRNZ LBB89 POP B MVI A,046H ADD B LBB86: JMP LB8E8 LBB89: POP B MOV A,B CPI 038H JRNZ LBBB2 MOV A,M CPI 028H JRNZ LBBB2 MVI A,03AH LBB96: STA LD100 INX H CALL LBD25 CALL LBE58 LBBA0: JMP LBB1B LBBA3: CALL LBE83 JRNZ LBBBD RLC RLC RLC PUSH PSW CALL LBE74 JRZ LBB77 POP B LBBB2: MOV A,B ADI 006H STA LD100 CALL LBD09 JMPR LBB67 LBBBD: CALL LBE39 JRNZ LBBD5 CALL LBE74 JRNZ LBBCB ADI 070H JMPR LBB86 LBBCB: MVI [X+047H],036H CALL LBD0D JMP LB90D LBBD5: CALL LBE88 JRNZ LBBE7 CALL LBF1E CPI 028H MVI B,020H JRNZ LBC05 MVI A,02AH JMPR LBB96 LBBE7: CALL LBE65 JRNZ LBC0E MOV B,A CALL LBF1E JRNZ LBC05 MVI [X+046H],0EDH MVI A,04BH ADD B LBBF9: STA LD101 INX H CALL LBD29 CALL LBE58 JMPR LBC21 LBC05: INR B MOV [X+046H],B CALL LBD25 LBC0C: JMPR LBBA0 LBC0E: CALL LBE21 JRNZ LBC2C CALL LBF1E MVI A,02AH JRZ LBBF9 MVI [X+047H],021H CALL LBD29 LBC21: MOV [X+048H],C MOV [X+049H],B MVI B,004H JMP LB895 LBC2C: MOV A,M CPI 028H CNZ LB89E INX H PUSH H LBC34: MOV A,M CPI 02CH INX H JRNZ LBC34 CALL LBE88 JRZ LBC4A MOV A,M CPI 041H JRZ LBC4A POP H CALL LBD29 JMPR LBC4E LBC4A: POP H CALL LBD25 LBC4E: PUSH B CALL LBE58 CALL LBF1E CPI 041H JRNZ LBC60 MVI [X+046H],032H INX H JMPR LBC76 LBC60: CALL LBE21 JRNZ LBC6D MVI A,022H LBC67: MOV [X+047H],A POP B JMPR LBC21 LBC6D: CALL LBE88 JRNZ LBC79 MVI [X+046H],022H LBC76: POP B JMPR LBC0C LBC79: CALL LBE65 CNZ LB89E ADI 043H MVI [X+046H],0EDH JMPR LBC67 LBC87: DB 3,4 DB 'A,I',57H DB 'A,R',5FH DB 'I,A',47H DB 'R,A',4FH DB 0 DB 6,7 DB 'A,(BC)',0AH DB 'A,(DE)',1AH DB '(BC),A',2 DB '(DE),A',12H DB 0 DB 5,6 DB 'SP,HL',0F9H DB 'SP,IX',0DDH DB 'SP,IY',0FDH DB 0 LBCCE: CALL LBD02 CPI 008H CNC LBD19 RLC RLC RLC RET LBCDA: CALL LBD2E LBCDD: MOV A,B ANA A JRZ LBCE8 INR A JRNZ LBCED ORA C RM JMPR LBCED LBCE8: ORA C RP CPI 080H RC LBCED: MVI A,052H JMPR LBD1B LBCF1: CALL LBD21 LDED LD0C0 INX D INX D MOV A,C SUB E MOV C,A MOV A,B SBB D MOV B,A JMPR LBCDD LBD02: SUB A JMPR LBD0F LBD05: MVI A,001H JMPR LBD0F LBD09: MVI A,002H JMPR LBD0F LBD0D: MVI A,004H LBD0F: CALL LBD2B MOV A,B ANA A JRZ LBD17 INR A LBD17: MOV A,C RZ LBD19: MVI A,056H LBD1B: JMP LBFE4 LBD1E: SUB A JMPR LBD2B LBD21: MVI A,002H JMPR LBD2B LBD25: MVI A,003H JMPR LBD2B LBD29: MVI A,004H LBD2B: STA LD0E4 LBD2E: LXI D,00000H PUSH D MVI B,02BH MOV A,M CMP B JRZ LBD3C CPI 02DH JRNZ LBD3E LBD3C: INX H MOV B,A LBD3E: PUSH B MOV A,M CPI 024H JRZ LBD81 CPI 027H JRZ LBD97 CALL LA05D JRNC LBD8F CALL LBF17 CC LBFCF CALL LBDEA LBD56: POP B XTHL MOV A,B CALL LBD70 XTHL MOV A,M CPI 02BH JRZ LBD3C CPI 02DH JRZ LBD3C CPI 02AH JRZ LBD3C CPI 02FH JRZ LBD3C POP B RET LBD70: CPI 02DH JRZ LBD7E CPI 02AH JRZ LBDCE CPI 02FH JRZ LBDDA DAD D RET LBD7E: DSBB D RET LBD81: INX H XCHG LHLD LD0C0 LDA LD0E4 CALL LA08A XCHG JMPR LBD56 LBD8F: CALL LBDB8 CC LBFCF JMPR LBD56 LBD97: LXI B,00003H LXI D,LD040 CALL LBFB8 MOV D,[X-07AH] MOV E,[X-079H] JRNZ LBDB3 DCR C JRZ LBDB6 DCR C JRNZ LBDB3 MOV E,D MVI D,000H JMPR LBD56 LBDB3: CALL LBFCF LBDB6: JMPR LBD56 LBDB8: PUSH H LBDB9: INX H CALL LA087 JRNZ LBDB9 DCX H POP B MOV A,M CPI 048H INX H JNZ LA063 DCX H CALL LA060 INX H RET LBDCE: MOV B,H MOV C,L LXI H,00000H LBDD3: MOV A,D ORA E RZ DAD B DCX D JMPR LBDD3 LBDDA: LXI B,0FFFFH MOV A,D ORA E JZ LBFD7 LBDE2: DSBB D INX B JRNC LBDE2 MOV H,B MOV L,C RET LBDEA: LXI D,LD04A PUSH D MVI B,006H CALL LA05A CALL LA057 POP D SUB A INR A PUSH H PUSH D CALL LB5A1 POP D JRNC LBE1C PUSH D SUB A LXI B,00000H CALL LB521 ANA A PUSH PSW CZ LBFDF POP PSW CPI 0C0H CZ LB51A POP D PUSH B CALL LB406 POP D POP H RET LBE1C: LXI D,00000H LBE1F: POP H RET LBE21: LXI D,LBEA3 CALL LBE90 LBE27: STA LD100 RET LBE2B: LXI D,LBEAC CALL LBE90 RNZ PUSH PSW LBE33: CALL LBE58 POP PSW JMPR LBE27 LBE39: MVI A,003H JMPR LBE3F LBE3D: MVI A,004H LBE3F: STA LD0E4 LXI D,LBEAC CALL LBE90 RNZ PUSH PSW MOV A,M SUI 029H JRZ LBE52 CALL LBCDA LBE52: STA LD102 MOV B,A JMPR LBE33 LBE58: MOV A,M CPI 029H CNZ LB89E INX H RET LBE60: LXI D,LBEB7 JMPR LBE90 LBE65: LXI D,LBEC6 JMPR LBE90 LBE6A: LXI D,LBED5 JMPR LBE90 LBE6F: LXI D,LBEE4 JMPR LBE90 LBE74: CALL LBF1E LBE77: LXI D,LBEF3 JMPR LBE90 LBE7C: CALL LBF1E LBE7F: CALL LBE77 RZ LBE83: LXI D,LBF04 JMPR LBE90 LBE88: LXI D,LBF0C JMPR LBE90 LBE8D: LXI D,LBF11 LBE90: PUSH H XCHG CALL LA045 XCHG JRNZ LBE9E DAD B CALL LA087 JRZ LBEA0 LBE9E: POP H RET LBEA0: LDAX D POP B RET LBEA3: DB 2,3 DB 'IX',0DDH DB 'IY',0FDH DB 0 LBEAC: DB 3,4 DB '(IX',0DDH DB '(IY',0FDH DB 0 LBEB7: DB 2,3 DB 'BC',0 DB 'DE',10H DB 'HL',20H DB 'AF',30H DB 0 LBEC6: DB 2,3 DB 'BC',0 DB 'DE',10H DB 'HL',20H DB 'SP',30H DB 0 LBED5: DB 2,3 DB 'BC',0 DB 'DE',10H DB 'IX',20H DB 'SP',30H DB 0 LBEE4: DB 2,3 DB 'BC',0 DB 'DE',10H DB 'IY',20H DB 'SP',30H DB 0 LBEF3: DB 1,2 DB 'A',7 DB 'B',0 DB 'C',1 DB 'D',2 DB 'E',3 DB 'H',4 DB 'L',5 DB 0 LBF04: DB 4,5 DB '(HL)',6 DB 0 LBF0C: DB 2,2 DB 'HL' DB 0 LBF11: DB 3,3 DB '(C)' DB 0 LBF17: CPI 041H RC CPI 05BH CMC RET LBF1E: CALL LBF28 CNZ LB89E MOV A,M CPI 028H RET LBF28: MOV A,M CPI 02CH RNZ INX H RET LBF2E: CALL LBF4B JRNZ LBF37 SUI 020H CMP A RET LBF37: LXI D,LBF3C JMPR LBF4E LBF3C: DB 2,3 DB 'M ',38H DB 'P ',30H DB 'PE',28H DB 'PO',20H DB 0 LBF4B: LXI D,LBF69 LBF4E: PUSH D LXI D,LD040 PUSH D MVI B,003H CALL LA05A POP D JRNZ LBF64 XTHL XCHG CALL LBE90 JRNZ LBF64 POP H RET LBF64: POP H LHLD LD0D1 RET LBF69: DB 2,3 DB 'C ',38H DB 'NC',30H DB 'Z ',28H DB 'NZ',20H DB 0 LBF78: CALL LBD1E PUSH B LBCD LD0C0 CALL LBF8E JRNZ LBF89 CALL LB9CA SUB A LBF89: POP H RET LBF8B: CALL LBD1E LBF8E: PUSH B PUSH H MOV H,B MOV L,C CALL LB4F3 POP H CALL LB895 POP H LBF9A: LDA LD0BE CPI 002H RNZ LDA LD0CF CPI 020H JRZ LBFA9 LBFA7: SUB A RET LBFA9: BIT 0,[X+00EH] JRZ LBFB5 BIT 0,[X+001H] JRNZ LBFA7 LBFB5: SUB A INR A RET LBFB8: MVI A,027H CMP M RNZ PUSH H INX H LBFBE: CALL LB4B6 JNZ LBE1F CMP M INX H JRZ LBFBE DCX H INX B DCX D CMP A INX SP INX SP RET LBFCF: MVI A,041H JMPR LBFE4 LBFD3: MVI A,04CH JMPR LBFE4 LBFD7: MVI A,05AH JMPR LBFE4 LBFDB: MVI A,04DH JMPR LBFE4 LBFDF: MVI A,055H LXI B,00000H LBFE2 EQU $-2 LBFE4: PUSH PSW CMP [X+015H] JRZ LBFF1 LDA LD0CF CPI 020H JRNZ LBFF8 LBFF1: POP PSW STA LD0CF LBFF5: MVI A,000H RET LBFF8: POP PSW STA LD0D0 JMPR LBFF5 ANA M LDAX D ; ; LD000: DS 64 LD040: NOP NOP LD042: NOP NOP LD044: NOP NOP LD046: NOP NOP LD048: NOP NOP LD04A: NOP LD04B: NOP LD04C: NOP LD04D: NOP LD04E: NOP LD04F: NOP LD050: DS 4 LD054: DS 5 LD059: DS 83 LD0AC: NOP NOP LD0AE: NOP NOP LD0B0: NOP LD0B1: NOP LD0B2: NOP LD0B3: NOP LD0B4: NOP LD0B5: NOP LD0B6: NOP NOP LD0B8: NOP LD0B9: NOP LD0BA: NOP NOP LD0BC: NOP NOP LD0BE: NOP LD0BF: NOP LD0C0: NOP NOP LD0C2: NOP NOP LD0C4: NOP NOP LD0C6: NOP NOP NOP LD0C9: NOP NOP LD0CB: NOP NOP LD0CD: NOP NOP LD0CF: NOP LD0D0: NOP LD0D1: NOP NOP LD0D3: DS 5 LD0D8: DS 6 LD0DE: NOP NOP LD0E0: NOP NOP LD0E2: NOP NOP LD0E4: NOP NOP LD0E6: NOP NOP NOP LD0E9: NOP NOP LD0EB: NOP NOP LD0ED: DS 16 LD0FD: NOP LD0FE: NOP NOP LD100: NOP LD101: NOP LD102: NOP LD103: DS 77 LD150: DS 81 LD1A1: DS 26 LD1BB: NOP NOP LD1BD: NOP NOP LD1BF: NOP NOP LD1C1: NOP NOP LD1C3: NOP NOP LD1C5: DS 2 LD1C7: DS 2 LD1C9: DS 1 LD1CA: DS 5 LD1CF: NOP NOP LD1D1: NOP NOP LD1D3: DS 10 LD1DD: DS 2 LD1DF: DS 1 LD1E0: DS 0E1FH ENDRAM: ; END