.COMMENT @ *********************************************** * * * ***** CPM-BDOS ***** * * ~~~~~~~~~~~~~~~~~~~~ * * Verze : 1.0 * * * * (C) by fy. SCAV for project Scavenger v7.D0 * * * * Datum : 18.07.1998 * * * * Datum * 18.07.1998 * * * * Preklad : SCAV * * Pavel Brazda * * Husova 9 * * Brno - mesto * * 602 00 * * * *********************************************** @ .Z80 ASEG ORG 0DC00H DB 0,16H,0,0,0,0 JP LDC11 CDC09: NOP NOP CDC0B: NOP NOP AND D CALL C,SDCB2 LDC11: LD A,C LD (WE979),A EX DE,HL LD (WE97A),HL LD (WE981),SP LDC1D: LD (WE9C5),HL EX DE,HL LD A,E LD (VE961),A LD HL,X0000 LD (WE9C7),HL LD SP,VE9C3 XOR A LD D,A LD (VE96B),A LD (VE969),A LD (VE9C9),A LD HL,CE8D1 PUSH HL LD A,C CP ')' RET NC LD C,E LD HL,CDC50 ADD A,A LD E,A ADD HL,DE LD E,(HL) INC HL LD D,(HL) LD HL,(WE9C5) EX DE,HL JP (HL) CDC50: INC BC JP PE,LDE84 LD H,(HL) DB 0DDH ADC A,C SBC A,12H JP PE,SEA0F ADC A,(HL) SBC A,0A5H SBC A,0AAH SBC A,0AFH SBC A,0B3H DB 0DDH OR L SBC A,0C5H RST X0020 JP Z,L8EE7 RST X0020 JP PE,LF8E7 RST X0020 CP 0E7H LD A,(DE) RET PE ADD HL,HL RET PE LD (V3DE8),A RET PE LD B,E RET PE LD C,H RET PE LD D,L RET PE LD E,D RET PE LD H,B RET PE LD H,A RET PE ADD A,C RET PO LD L,H RET PE LD (HL),C RET PE LD A,D RET PE ADD A,C RET PE SUB H RET PE SBC A,A RET PE AND L RET PE LD E,B RST X0020 OR B RET PE CP E SBC A,0BBH SBC A,0F6H RET PE LD SP,VE9C3 CALL SE0A9 LD BC,(WE979) LD HL,(WE97A) JP LDC1D SDCB2: CALL SDD9C CALL SDD9C LD A,(WE9C4) ADD A,'A' LD (VE915),A LD BC,CE907 CALL SDCD3 PUSH AF CALL SDD9C POP AF AND '_' XOR 'I' JP Z,LE8EC RST X0000 SDCD3: CALL SDDA6 SDCD6: LD HL,VE980 LD A,(HL) LD (HL),0 OR A RET NZ JP SEA09 SDCE1: CALL SDCD6 CALL SDCEF RET C PUSH AF LD C,A CALL SDD66 POP AF RET SDCEF: CP 0DH RET Z CP 0AH RET Z CP 9 RET Z CP 8 RET Z CP ' ' RET SDCFE: LD A,(VE980) OR A JR NZ,LDD1E CALL SEA06 AND 1 RET Z CALL SEA09 CP 13H JR NZ,LDD1B CALL SEA09 CP 3 JP Z,X0000 XOR A RET LDD1B: LD (VE980),A LDD1E: LD A,1 RET SDD21: LD A,(VE97C) OR A JR NZ,LDD3A PUSH BC CALL SDCFE POP BC PUSH BC CALL SEA0C POP BC PUSH BC LD A,(VE97F) OR A CALL NZ,SEA0F POP BC LDD3A: LD A,C LD HL,VE97E CP 7FH RET Z INC (HL) CP ' ' RET NC DEC (HL) LD A,(HL) OR A RET Z LD A,C CP 8 JR NZ,LDD50 DEC (HL) RET LDD50: CP 0AH RET NZ LD (HL),0 RET SDD56: LD A,C CALL SDCEF JR NC,SDD66 PUSH AF LD C,'^' CALL SDD21 POP AF OR '@' LD C,A SDD66: LD A,C CP 9 JR NZ,SDD21 LDD6B: LD C,' ' CALL SDD21 LD A,(VE97E) AND 7 JR NZ,LDD6B RET SDD78: CALL SDD80 LD C,' ' CALL SEA0C SDD80: LD C,8 JP SEA0C SDD85: LD C,'#' CALL SDD21 CALL SDD9C LDD8D: LD A,(VE97E) LD HL,VE97D CP (HL) RET NC LD C,' ' CALL SDD21 JR LDD8D SDD9C: LD C,0DH CALL SDD21 LD C,0AH JP SDD21 SDDA6: LD A,(BC) CP '$' RET Z INC BC PUSH BC LD C,A CALL SDD66 POP BC JR SDDA6 LDDB3: LD A,(VE97E) LD (VE97D),A LD HL,(WE9C5) LD C,(HL) INC HL PUSH HL LD B,0 LDDC1: PUSH BC PUSH HL LDDC3: CALL SDCD6 POP HL POP BC CP 0DH JP Z,LDE7D CP 0AH JP Z,LDE7D CP 8 JR NZ,LDDE3 LD A,B OR A JR Z,LDDC1 DEC B LD A,(VE97E) LD (VE97C),A JR LDE30 LDDE3: CP 7FH JR NZ,LDDF0 LD A,B OR A JR Z,LDDC1 LD A,(HL) DEC B DEC HL JR LDE66 LDDF0: CP 5 JR NZ,LDDFF PUSH BC PUSH HL CALL SDD9C XOR A LD (VE97D),A JR LDDC3 LDDFF: CP 10H JR NZ,LDE0E PUSH HL LD HL,VE97F LD A,1 SUB (HL) LD (HL),A POP HL JR LDDC1 LDE0E: CP 18H JR NZ,LDE22 POP HL LDE13: LD A,(VE97D) LD HL,VE97E CP (HL) JR NC,LDDB3 DEC (HL) CALL SDD78 JR LDE13 LDE22: CP 15H JR NZ,LDE2C CALL SDD85 POP HL JR LDDB3 LDE2C: CP 12H JR NZ,LDE63 LDE30: PUSH BC CALL SDD85 POP BC POP HL PUSH HL PUSH BC LDE38: LD A,B OR A JR Z,LDE48 INC HL LD C,(HL) DEC B PUSH BC PUSH HL CALL SDD56 POP HL POP BC JR LDE38 LDE48: PUSH HL LD A,(VE97C) OR A JP Z,LDDC3 LD HL,VE97E SUB (HL) LD (VE97C),A LDE57: CALL SDD78 LD HL,VE97C DEC (HL) JR NZ,LDE57 JP LDDC3 LDE63: INC HL LD (HL),A INC B LDE66: PUSH BC PUSH HL LD C,A CALL SDD56 POP HL POP BC LD A,(HL) CP 3 LD A,B JR NZ,LDE79 CP 1 JP Z,X0000 LDE79: CP C JP C,LDDC1 LDE7D: POP HL LD (HL),B LD C,0DH JP SDD21 LDE84: CALL SDCE1 JR LDEB8 CALL SEA15 JR LDEB8 LD A,C INC A JR Z,LDE99 INC A JP Z,SEA06 JP SEA0C LDE99: CALL SEA06 OR A JP Z,LE8EC CALL SEA09 JR LDEB8 LD A,(V0003) JR LDEB8 LD HL,V0003 LD (HL),C RET EX DE,HL LD C,L LD B,H JP SDDA6 CALL SDCFE LDEB8: LD (WE9C7),A RET SDEBC: LD A,1 JR LDEB8 SDEC0: LD HL,CDC0B LDEC3: LD E,(HL) INC HL LD D,(HL) EX DE,HL JP (HL) SDEC8: LD A,(WE9C4) LD C,A CALL SEA1B LD A,H OR L RET Z LD E,(HL) INC HL LD D,(HL) INC HL LD (WE95B),DE LD (WE93E),HL INC HL INC HL LD (WE940),HL INC HL INC HL LD (WE942),HL INC HL INC HL LD DE,WE944 LD BC,C0008 LDIR LD HL,(WE946) LD DE,WE94C LD BC,C000F LDIR LD HL,(WE951) LD A,H LD HL,VE968 LD (HL),0FFH OR A JR Z,LDF0A LD (HL),0 LDF0A: LD A,0FFH OR A RET SDF0E: CALL SEA18 XOR A LD HL,(WE940) LD (HL),A INC HL LD (HL),A LD HL,(WE942) LD (HL),A INC HL LD (HL),A RET SDF1F: CALL SEA27 JR LDF27 SDF24: CALL SEA2A LDF27: OR A RET Z LD HL,CDC09 JR LDEC3 SDF2E: LD HL,(WE975) LD C,2 CALL SE046 LD (WE970),HL LD (WE977),HL SDF3C: LD HL,WE970 LD C,(HL) INC HL LD B,(HL) LD HL,(WE942) LD E,(HL) INC HL LD D,(HL) LD HL,(WE940) LD A,(HL) INC HL LD H,(HL) LD L,A LDF4F: LD A,C SUB E LD A,B SBC A,D JR NC,LDF62 PUSH HL LD HL,(WE94C) EX DE,HL OR A SBC HL,DE EX DE,HL POP HL DEC HL JR LDF4F LDF62: PUSH HL LD HL,(WE94C) ADD HL,DE JR C,LDF74 LD A,C SUB L LD A,B SBC A,H JR C,LDF74 EX DE,HL POP HL INC HL JR LDF62 LDF74: POP HL PUSH BC PUSH DE PUSH HL EX DE,HL LD HL,(WE959) ADD HL,DE LD B,H LD C,L CALL SEA1E POP DE LD HL,(WE940) LD (HL),E INC HL LD (HL),D POP DE LD HL,(WE942) LD (HL),E INC HL LD (HL),D POP HL OR A SBC HL,DE LD B,H LD C,L LD DE,(WE95B) CALL SEA30 LD C,L LD B,H JP LEA21 SDFA2: LD HL,VE94E LD B,(HL) LD A,(VE96E) LDFA9: SRL A DJNZ LDFA9 LD B,A LD A,8 SUB (HL) LD C,A LD A,(VE96D) LDFB5: DEC C JR Z,LDFBB ADD A,A JR LDFB5 LDFBB: ADD A,B RET SDFBD: LD HL,(WE9C5) LD DE,C0010 ADD HL,DE ADD HL,BC LD A,(VE968) OR A JR Z,LDFCF LD L,(HL) LD H,0 RET LDFCF: ADD HL,BC LD E,(HL) INC HL LD D,(HL) EX DE,HL RET SDFD5: CALL SDFA2 LD C,A LD B,0 CALL SDFBD LD (WE970),HL RET SDFE2: LD HL,(WE970) LD A,L OR H RET SDFE8: LD A,(VE94E) LD HL,(WE970) LDFEE: ADD HL,HL DEC A JR NZ,LDFEE LD (WE972),HL LD A,(VE94F) LD C,A LD A,(VE96E) AND C OR L LD L,A LD (WE970),HL RET SE003: LD HL,(WE9C5) LD DE,C000C ADD HL,DE RET SE00B: LD HL,(WE9C5) LD DE,C000F ADD HL,DE EX DE,HL LD HL,C0011 ADD HL,DE RET SE018: CALL SE00B LD A,(HL) LD (VE96E),A EX DE,HL LD A,(HL) LD (VE96C),A CALL SE003 LD A,(VE950) AND (HL) LD (VE96D),A RET SE02F: CALL SE00B LD A,(VE960) CP 2 JR NZ,LE03A XOR A LE03A: LD C,A LD A,(VE96E) ADD A,C LD (HL),A EX DE,HL LD A,(VE96C) LD (HL),A RET SE046: INC C LE047: DEC C RET Z SRL H RR L JR LE047 SE04F: LD B,80H LD HL,(WE944) XOR A LE055: ADD A,(HL) INC HL DJNZ LE055 RET SE05A: INC C LE05B: DEC C RET Z ADD HL,HL JR LE05B SE060: PUSH BC LD A,(WE9C4) LD C,A LD HL,C0001 CALL SE05A POP BC LD A,C OR L LD L,A LD A,B OR H LD H,A RET SE073: LD HL,(WE938) LD A,(WE9C4) LD C,A CALL SE046 LD A,L AND 1 RET SE081: LD HL,WE938 LD C,(HL) INC HL LD B,(HL) CALL SE060 LD (WE938),HL LD HL,(WE953) INC HL EX DE,HL LD HL,(WE93E) LD (HL),E INC HL LD (HL),D RET SE099: CALL SE0DB SE09C: LD DE,C0009 ADD HL,DE LD A,(HL) RLA RET NC LD HL,CDC0F JP LDEC3 SE0A9: CALL SE073 RET Z LD BC,(WE9C4) LD HL,C0001 CALL SE05A LD A,H CPL LD D,A LD A,L CPL LD E,A LD HL,(WE938) LD A,D AND H LD H,A LD A,E AND L LD L,A LD (WE938),HL LD HL,(WE93A) LD A,D AND H LD H,A LD A,E AND L LD L,A LD (WE93A),HL CALL SE14E JP SE76B SE0DB: LD HL,(WE944) LD A,(VE974) SE0E1: ADD A,L LD L,A RET NC INC H RET SE0E6: LD HL,(WE9C5) LD DE,C000E ADD HL,DE LD A,(HL) RET SE0EF: CALL SE0E6 LD (HL),0 RET SE0F5: CALL SE0E6 OR 80H LD (HL),A RET SE0FC: LD HL,(WE975) EX DE,HL LD HL,(WE93E) LD A,E SUB (HL) INC HL LD A,D SBC A,(HL) RET SE109: CALL SE0FC RET C INC DE LD (HL),D DEC HL LD (HL),E RET SE112: LD C,0FFH LE114: LD HL,(WE977) LD DE,(WE957) OR A SBC HL,DE RET NC PUSH BC CALL SE04F LD DE,(WE948) LD HL,(WE977) ADD HL,DE POP BC INC C JR Z,LE139 CP (HL) RET Z CALL SE0FC RET NC CALL SE081 RET LE139: LD (HL),A RET SE13B: CALL SE112 CALL SE153 LD C,1 CALL SDF24 JR SE14E SE148: CALL SE153 CALL SDF1F SE14E: LD HL,WE93C JR LE156 SE153: LD HL,WE944 LE156: LD C,(HL) INC HL LD B,(HL) JP LEA24 LE15C: LD HL,(WE944) LD DE,(WE93C) LD BC,C0080 LDIR RET SE169: LD HL,WE975 LD A,(HL) INC HL CP (HL) RET NZ INC A RET SE172: LD HL,CFFFF LD (WE975),HL RET SE179: LD HL,(WE953) EX DE,HL LD HL,(WE975) INC HL LD (WE975),HL EX DE,HL OR A SBC HL,DE JR C,SE172 LD A,(WE975) AND 3 LD B,5 LE191: ADD A,A DEC B JR NZ,LE191 LD (VE974),A OR A RET NZ PUSH BC CALL SDF2E CALL SE148 POP BC JP LE114 SE1A5: LD A,C AND 7 INC A LD E,A LD D,A LD A,C RRCA RRCA RRCA AND 1FH LD C,A LD A,B ADD A,A ADD A,A ADD A,A ADD A,A ADD A,A OR C LD C,A LD A,B RRCA RRCA RRCA AND 1FH LD B,A LD HL,(WE94A) ADD HL,BC LD A,(HL) LE1C6: RLCA DEC E JR NZ,LE1C6 RET SE1CB: PUSH DE CALL SE1A5 AND 0FEH POP BC OR C SE1D3: RRCA DEC D JR NZ,SE1D3 LD (HL),A RET SE1D9: CALL SE0DB LD DE,C0010 ADD HL,DE PUSH BC LD C,11H LE1E3: POP DE DEC C RET Z PUSH DE LD A,(VE968) OR A JR Z,LE1F4 PUSH BC PUSH HL LD C,(HL) LD B,0 JR LE1FA LE1F4: DEC C PUSH BC LD C,(HL) INC HL LD B,(HL) PUSH HL LE1FA: LD A,C OR B JR Z,LE207 LD HL,(WE951) OR A SBC HL,BC CALL NC,SE1CB LE207: POP HL INC HL POP BC JR LE1E3 LE20C: LD HL,(WE951) LD C,3 CALL SE046 INC HL LD B,H LD C,L LD HL,(WE94A) LE21A: LD (HL),0 INC HL DEC BC LD A,B OR C JR NZ,LE21A LD HL,(WE955) EX DE,HL LD HL,(WE94A) LD (HL),E INC HL LD (HL),D CALL SDF0E LD HL,(WE93E) LD (HL),3 INC HL LD (HL),0 CALL SE172 LE23A: LD C,0FFH CALL SE179 CALL SE169 RET Z CALL SE0DB LD A,0E5H CP (HL) JR Z,LE23A LD A,(VE9C3) CP (HL) JR NZ,LE25B INC HL LD A,(HL) SUB '$' JR NZ,LE25B DEC A LD (WE9C7),A LE25B: LD C,1 CALL SE1D9 CALL SE109 JR LE23A LE265: LD A,(VE95F) JP LDEB8 SE26B: PUSH BC PUSH AF LD A,(VE950) CPL LD B,A LD A,C AND B LD C,A POP AF AND B SUB C AND 1FH POP BC RET SE27C: LD A,(VE9C9) RRA JR NC,SE294 XOR A LD (VE9C9),A PUSH BC CALL SE294 POP BC LD A,(WE9C7) INC A RET NZ INC A LD (VE9C9),A SE294: LD A,0FFH LD (VE95F),A LD HL,VE963 LD (HL),C LD HL,(WE9C5) LD (WE964),HL CALL SE172 CALL SDF0E SE2A9: LD C,0 CALL SE179 CALL SE169 JR Z,LE315 LD DE,(WE964) LD A,(DE) CP 0E5H JR Z,LE2C3 PUSH DE CALL SE0FC POP DE JR NC,LE315 LE2C3: CALL SE0DB LD A,(VE963) LD C,A LD B,0 LD A,(VE9C9) RRA JR NC,LE2DC LD A,(HL) CP 10H JR NC,LE2DC LD A,(DE) CP 10H JR C,LE2FE LE2DC: LD A,C OR A JR Z,LE304 LD A,(DE) CP '?' JR Z,LE2FE LD A,B CP 0DH JR Z,LE2FE CP 0CH LD A,(DE) JR Z,LE2F6 SUB (HL) AND 7FH JR NZ,SE2A9 JR LE2FE LE2F6: PUSH BC LD C,(HL) CALL SE26B POP BC JR NZ,SE2A9 LE2FE: INC DE INC HL INC B DEC C JR LE2DC LE304: LD A,(WE975) AND 3 LD (WE9C7),A LD HL,VE95F LD A,(HL) RLA RET NC XOR A LD (HL),A RET LE315: CALL SE172 LD A,0FFH JP LDEB8 SE31D: CALL SE0A9 LD C,0CH CALL SE27C LE325: CALL SE169 RET Z CALL SE099 CALL SE0DB LD (HL),0E5H LD C,0 CALL SE1D9 CALL SE13B CALL SE2A9 JR LE325 SE33E: LD D,B LD E,C LE340: LD A,C OR B JR Z,LE34F DEC BC PUSH DE PUSH BC CALL SE1A5 RRA JR NC,LE367 POP BC POP DE LE34F: LD HL,(WE951) LD A,E SUB L LD A,D SBC A,H JR NC,LE36F INC DE PUSH BC PUSH DE LD B,D LD C,E CALL SE1A5 RRA JR NC,LE367 POP DE POP BC JR LE340 LE367: RLA INC A CALL SE1D3 POP HL POP DE RET LE36F: LD A,C OR B JR NZ,LE340 LD HL,X0000 RET SE377: LD C,0 LD E,' ' SE37B: PUSH DE LD B,0 LD HL,(WE9C5) ADD HL,BC EX DE,HL CALL SE0DB POP BC LD B,0 EX DE,HL LDIR LE38C: CALL SDF2E JP SE13B SE392: CALL SE0A9 LD C,0CH CALL SE27C LD HL,(WE9C5) LD A,(HL) LD DE,C0010 ADD HL,DE LD (HL),A LE3A3: CALL SE169 RET Z CALL SE099 LD C,10H LD E,0CH CALL SE37B CALL SE2A9 JR LE3A3 SE3B6: LD C,0CH CALL SE27C LE3BB: CALL SE169 RET Z LD C,0 LD E,0CH CALL SE37B CALL SE2A9 JR LE3BB SE3CB: LD C,0FH CALL SE27C CALL SE169 RET Z SE3D4: CALL SE003 LD A,(HL) PUSH AF PUSH HL CALL SE0DB LD DE,(WE9C5) LD BC,X0020 PUSH HL LDIR CALL SE0F5 POP DE LD HL,C000C ADD HL,DE LD C,(HL) LD HL,C000F ADD HL,DE LD B,(HL) POP HL POP AF LD (HL),A LD A,C CP (HL) LD A,B JR Z,LE403 LD A,0 JR C,LE403 LD A,80H LE403: LD HL,(WE9C5) LD DE,C000F ADD HL,DE LD (HL),A RET SE40C: LD A,(HL) INC HL OR (HL) DEC HL RET NZ LD A,(DE) LD (HL),A INC DE INC HL LD A,(DE) LD (HL),A DEC DE DEC HL RET SE41A: XOR A LD (WE9C7),A LD (WE975),A LD (VE976),A CALL SE073 RET NZ CALL SE0E6 AND 80H RET NZ LD C,0FH CALL SE27C CALL SE169 RET Z LD BC,C0010 CALL SE0DB ADD HL,BC EX DE,HL LD HL,(WE9C5) ADD HL,BC LD C,10H LE445: LD A,(VE968) OR A JR Z,LE45B LD A,(HL) OR A LD A,(DE) JR NZ,LE451 LD (HL),A LE451: OR A JR NZ,LE456 LD A,(HL) LD (DE),A LE456: CP (HL) JR NZ,LE48E JR LE46E LE45B: CALL SE40C EX DE,HL CALL SE40C EX DE,HL LD A,(DE) CP (HL) JR NZ,LE48E INC DE INC HL LD A,(DE) CP (HL) JR NZ,LE48E DEC C LE46E: INC DE INC HL DEC C JR NZ,LE445 LD BC,CFFEC ADD HL,BC EX DE,HL ADD HL,BC LD A,(DE) CP (HL) JR C,LE486 LD (HL),A LD BC,V0003 ADD HL,BC EX DE,HL ADD HL,BC LD A,(HL) LD (DE),A LE486: LD A,0FFH LD (VE95D),A JP LE38C LE48E: LD HL,WE9C7 DEC (HL) RET SE493: CALL SE0A9 LD HL,(WE9C5) PUSH HL LD HL,CE937 LD (WE9C5),HL LD C,1 CALL SE27C CALL SE169 POP HL LD (WE9C5),HL RET Z EX DE,HL LD HL,C000F ADD HL,DE LD C,11H XOR A LE4B5: LD (HL),A INC HL DEC C JR NZ,LE4B5 LD HL,C000D ADD HL,DE LD (HL),A CALL SE109 CALL SE377 JP SE0F5 SE4C8: XOR A LD (VE95D),A CALL SE41A CALL SE169 RET Z LD HL,(WE9C5) LD BC,C000C ADD HL,BC LD A,(HL) INC A AND 1FH LD (HL),A JR Z,LE4EE LD B,A LD A,(VE950) AND B LD HL,VE95D AND (HL) JR Z,LE4F8 JR LE512 LE4EE: LD BC,C0002 ADD HL,BC INC (HL) LD A,(HL) AND 0FH JR Z,LE51C LE4F8: LD C,0FH CALL SE27C CALL SE169 JR NZ,LE512 LD A,(VE95E) INC A JR Z,LE51C CALL SE493 CALL SE169 JR Z,LE51C JR LE515 LE512: CALL SE3D4 LE515: CALL SE018 XOR A JP LDEB8 LE51C: CALL SDEBC JP SE0F5 LE522: LD A,1 LD (VE960),A SE527: LD A,0FFH LD (VE95E),A CALL SE018 LD A,(VE96E) LD HL,VE96C CP (HL) JR C,LE549 CP 80H JR NZ,LE55D CALL SE4C8 XOR A LD (VE96E),A LD A,(WE9C7) OR A JR NZ,LE55D LE549: CALL SDFD5 CALL SDFE2 JR Z,LE55D CALL SDFE8 CALL SDF3C CALL SDF1F JP SE02F LE55D: JP SDEBC LE560: LD A,1 LD (VE960),A SE565: LD A,0 LD (VE95E),A CALL SE0A9 LD HL,(WE9C5) CALL SE09C CALL SE018 LD A,(VE96E) CP 80H JP NC,SDEBC CALL SDFD5 CALL SDFE2 LD C,0 JR NZ,LE5CB CALL SDFA2 LD (VE962),A LD BC,X0000 OR A JR Z,LE59B LD C,A DEC BC CALL SDFBD LD B,H LD C,L LE59B: CALL SE33E LD A,L OR H JR NZ,LE5A7 LD A,2 JP LDEB8 LE5A7: LD (WE970),HL EX DE,HL LD HL,(WE9C5) LD BC,C0010 ADD HL,BC LD A,(VE968) OR A LD A,(VE962) JR Z,LE5C1 CALL SE0E1 LD (HL),E JR LE5C9 LE5C1: LD C,A LD B,0 ADD HL,BC ADD HL,BC LD (HL),E INC HL LD (HL),D LE5C9: LD C,2 LE5CB: LD A,(WE9C7) OR A RET NZ PUSH BC CALL SDFE8 LD A,(VE960) DEC A DEC A JR NZ,LE615 POP BC PUSH BC LD A,C DEC A DEC A JR NZ,LE615 PUSH HL LD HL,(WE944) LD D,A LE5E7: LD (HL),A INC HL INC D JP P,LE5E7 CALL SE153 LD HL,(WE972) LD C,2 LE5F5: LD (WE970),HL PUSH BC CALL SDF3C POP BC CALL SDF24 LD HL,(WE970) LD C,0 LD A,(VE94F) LD B,A AND L CP B INC HL JR NZ,LE5F5 POP HL LD (WE970),HL CALL SE14E LE615: CALL SDF3C POP BC PUSH BC CALL SDF24 POP BC LD A,(VE96E) LD HL,VE96C CP (HL) JR C,LE62B LD (HL),A INC (HL) LD C,2 LE62B: LD HL,CD400 PUSH AF CALL SE0E6 AND 7FH LD (HL),A POP AF CP 7FH JR NZ,LE654 LD A,(VE960) CP 1 JR NZ,LE654 CALL SE02F CALL SE4C8 LD HL,WE9C7 LD A,(HL) OR A JR NZ,LE652 DEC A LD (VE96E),A LE652: LD (HL),0 LE654: JP SE02F SE657: XOR A LD (VE960),A SE65B: PUSH BC LD DE,(WE9C5) LD HL,C0021 ADD HL,DE LD A,(HL) AND 7FH PUSH AF LD A,(HL) RLA INC HL LD A,(HL) RLA AND 1FH LD C,A LD A,(HL) RRA RRA RRA RRA AND 0FH LD B,A POP AF INC HL LD L,(HL) INC L DEC L LD L,6 JR NZ,LE6D8 LD HL,X0020 ADD HL,DE LD (HL),A LD HL,C000C ADD HL,DE LD A,C SUB (HL) JR NZ,LE698 LD HL,C000E ADD HL,DE LD A,B SUB (HL) AND 7FH JR Z,LE6CC LE698: PUSH BC PUSH DE CALL SE41A POP DE POP BC LD L,3 LD A,(WE9C7) INC A JR Z,LE6D1 LD HL,C000C ADD HL,DE LD (HL),C LD HL,C000E ADD HL,DE LD (HL),B CALL SE3CB LD A,(WE9C7) INC A JR NZ,LE6CC POP BC PUSH BC LD L,4 INC C JR Z,LE6D1 CALL SE493 LD L,5 LD A,(WE9C7) INC A JR Z,LE6D1 LE6CC: POP BC XOR A JP LDEB8 LE6D1: PUSH HL CALL SE0E6 LD (HL),0C0H POP HL LE6D8: POP BC LD A,L LD (WE9C7),A JP SE0F5 LE6E0: LD C,0FFH CALL SE657 CALL Z,SE527 RET LE6E9: LD C,0 CALL SE657 CALL Z,SE565 RET SE6F2: EX DE,HL ADD HL,DE LD C,(HL) LD B,0 LD HL,C000C ADD HL,DE LD A,(HL) RRCA AND 80H ADD A,C LD C,A LD A,0 ADC A,B LD B,A LD A,(HL) RRCA AND 0FH ADD A,B LD B,A LD HL,C000E ADD HL,DE LD A,(HL) ADD A,A ADD A,A ADD A,A ADD A,A PUSH AF ADD A,B LD B,A PUSH AF POP HL LD A,L POP HL OR L AND 1 RET LE71F: LD C,0CH CALL SE27C LD HL,(WE9C5) LD DE,C0021 ADD HL,DE PUSH HL LD (HL),D INC HL LD (HL),D INC HL LD (HL),D LE731: CALL SE169 JR Z,LE756 CALL SE0DB LD DE,C000F CALL SE6F2 POP HL PUSH HL LD E,A LD A,C SUB (HL) INC HL LD A,B SBC A,(HL) INC HL LD A,E SBC A,(HL) JR C,LE751 LD (HL),E DEC HL LD (HL),B DEC HL LD (HL),C LE751: CALL SE2A9 JR LE731 LE756: POP HL RET LD HL,(WE9C5) LD DE,X0020 CALL SE6F2 LD HL,C0021 ADD HL,DE LD (HL),C INC HL LD (HL),B INC HL LD (HL),A RET SE76B: LD HL,(WE93A) LD A,(WE9C4) LD C,A CALL SE046 PUSH HL EX DE,HL CALL SDEC8 POP HL CALL Z,SDEC0 LD A,L RRA RET C LD BC,(WE93A) CALL SE060 LD (WE93A),HL JP LE20C SE78E: LD A,(VE961) LD HL,WE9C4 CP (HL) RET Z LD (HL),A JR SE76B SE799: LD A,0FFH LD (VE969),A LD HL,(WE9C5) LD A,(HL) AND 1FH DEC A LD (VE961),A CP 1EH JR NC,LE7BC LD A,(WE9C4) LD (VE96A),A LD A,(HL) LD (VE96B),A AND 0E0H LD (HL),A CALL SE78E LE7BC: LD A,(VE9C3) LD HL,(WE9C5) OR (HL) LD (HL),A RET LD A,'"' JP LDEB8 LD HL,X0000 LD (WE938),HL LD (WE93A),HL LD HL,C0080 LD (WE93C),HL CALL SE14E CALL SE76B XOR A LD (WE9C4),A LD HL,WE93A SET 0,(HL) JR SE76B LD A,1 LD (VE9C9),A CALL SE0EF CALL SE799 JP SE3CB CALL SE799 JP SE41A LD C,0 EX DE,HL LD A,(HL) CP '?' JR Z,LE814 CALL SE003 LD A,(HL) CP '?' CALL NZ,SE0EF CALL SE799 LD C,0FH LE814: CALL SE27C JP LE15C LD HL,(WE964) LD (WE9C5),HL CALL SE799 CALL SE2A9 JP LE15C CALL SE799 CALL SE31D JP LE265 LD A,1 LD (VE9C9),A CALL SE799 JP LE522 CALL SE799 JP LE560 CALL SE0EF CALL SE799 JP SE493 CALL SE799 CALL SE392 JP LE265 LD HL,(WE93A) JR LE87D LD A,(WE9C4) JP LDEB8 LD (WE93C),DE JP SE14E LD HL,(WE94A) JR LE87D LD HL,(WE938) JR LE87D CALL SE799 CALL SE3B6 JP LE265 LD HL,(WE946) LE87D: LD (WE9C7),HL RET LD A,(VE961) CP 0FFH JR NZ,LE88E LD A,(VE9C3) JP LDEB8 LE88E: AND 1FH LD (VE9C3),A RET LD A,1 LD (VE9C9),A CALL SE799 JP LE6E0 CALL SE799 JP LE6E9 LD A,1 LD (VE9C9),A CALL SE799 JP LE71F LD HL,(WE9C5) LD A,L CPL LD E,A LD A,H CPL LD HL,(WE93A) AND H LD D,A LD A,L AND E LD E,A LD HL,(WE938) EX DE,HL LD (WE93A),HL LD A,L AND E LD L,A LD A,H AND D LD H,A LD (WE938),HL RET CE8D1: LD A,(VE969) OR A JR Z,LE8EC LD HL,(WE9C5) LD (HL),0 LD A,(VE96B) OR A JR Z,LE8EC LD (HL),A LD A,(VE96A) LD (VE961),A CALL SE78E LE8EC: LD SP,(WE981) LD HL,(WE9C7) LD A,L LD B,H RET CALL SE799 LD A,2 LD (VE960),A LD C,0 CALL SE65B CALL Z,SE565 RET CE907: DB 'BDOS error on ' VE915: DB ' :Read/only file:Abort/Ignor' DB 'e ',7,'$' CE937: DB 0E5H WE938: DB 0,0 WE93A: DB 0,0 WE93C: DB 80H,0 WE93E: DB 0,0 WE940: DB 0,0 WE942: DB 0,0 WE944: DB 0,0 WE946: DB 0,0 WE948: DB 0,0 WE94A: DB 0,0 WE94C: DB 0,0 VE94E: DB 0 VE94F: DB 0 VE950: DB 0 WE951: DB 0,0 WE953: DB 0,0 WE955: DB 0,0 WE957: DB 0,0 WE959: DB 0,0 WE95B: DB 0,0 VE95D: DB 0 VE95E: DB 0 VE95F: DB 0 VE960: DB 0 VE961: DB 0 VE962: DB 0 VE963: DB 0 WE964: DB 0,0,0,0 VE968: DB 0 VE969: DB 0 VE96A: DB 0 VE96B: DB 0 VE96C: DB 0 VE96D: DB 0 VE96E: DB 0,0 WE970: DB 0,0 WE972: DB 0,0 VE974: DB 0 WE975: DB 0 VE976: DB 0 WE977: DB 0,0 WE979: DB 0 WE97A: DB 0,0 VE97C: DB 0 VE97D: DB 0 VE97E: DB 0 VE97F: DB 0 VE980: DB 0 WE981: DB 0,0,0,0,0,0,0,0,0,0,0,0 DB 0,0,0,0,0,0,0,0,0,0,0,0 DB 0,0,0,0,0,0,0,0,0,0,0,0 DB 0,0,0,0,0,0,0,0,0,0,0,0 DB 0,0,0,0,0,0,0,0,0,0,0,0 DB 0,0,0,0,0,0 VE9C3: DB 0 WE9C4: DB 0 WE9C5: DB 0,0 WE9C7: DB 0,0 VE9C9: DB 0,0,0,0,0,0,0,0,0,0,0,0 DB 0,0,0,0,0,0,0,0,0,0,0,0 DB 0,0,0,0,0,0,0,0,0,0,0,0 DB 0,0,0,0,0,0,0,0,0,0,0,0 DB 0,0,0,0,0,0,0 X0000 EQU 0 C0001 EQU 1 C0002 EQU 2 V0003 EQU 3 C0008 EQU 8 C0009 EQU 9 C000C EQU 0CH C000D EQU 0DH C000E EQU 0EH C000F EQU 0FH C0010 EQU 10H C0011 EQU 11H X0020 EQU 20H C0021 EQU 21H C0080 EQU 80H V3DE8 EQU 3DE8H L8EE7 EQU 8EE7H CD400 EQU 0D400H CDC0F EQU 0DC0FH SEA06 EQU 0EA06H SEA09 EQU 0EA09H SEA0C EQU 0EA0CH SEA0F EQU 0EA0FH SEA15 EQU 0EA15H SEA18 EQU 0EA18H SEA1B EQU 0EA1BH SEA1E EQU 0EA1EH LEA21 EQU 0EA21H LEA24 EQU 0EA24H SEA27 EQU 0EA27H SEA2A EQU 0EA2AH SEA30 EQU 0EA30H LF8E7 EQU 0F8E7H CFFEC EQU 0FFECH CFFFF EQU 0FFFFH END