; ; the assembler to generate cpmhard.spr ; rzh Sept. 2000 ; cr equ 0dh lf equ 0ah org 100h db 2 dw 0EB7H db 0,0,0,0,0,0,0,0 db 0,0,0,0,0,0,0,0 db 0,0,0,0,0,0,0,0 db 0,0,0,0,0 dw 208h dw 208h dw 208h dw 208h db 0,0,0,0,0,0,0,0 db 0,0,0,0,0,0,0,0 db 0,0,0,0,0,0,0,0 db 0,0,0,0,0,0,0,0 db 0,0,0,0,0,0,0,0 db 0,0,0,0,0,0,0,0 db 0,0,0,0,0,0,0,0 db 0,0,0,0,0,0,0,0 db 0,0,0,0,0,0,0,0 db 0,0,0,0,0,0,0,0 db 0,0,0,0,0,0,0,0 db 0,0,0,0,0,0,0,0 db 0,0,0,0,0,0,0,0 db 0,0,0,0,0,0,0,0 db 0,0,0,0,0,0,0,0 db 0,0,0,0,0,0,0,0 db 0,0,0,0,0,0,0,0 db 0,0,0,0,0,0,0,0 db 0,0,0,0,0,0,0,0 db 0,0,0,0,0,0,0,0 db 0,0,0,0,0,0,0,0 db 0,0,0,0,0,0,0,0 db 0,0,0,0,0,0,0,0 db 0,0,0,0,0,0,0,0 db 0,0,0,0,0,0,0,0 db 0,0,0,0,0,0,0,0 db 0,0,0,0,0,0,0,0 JP 0EB4H JP 7AH JP 39H JP 84H JP 90H JP 0A3H JP 0AAH JP 0C3H JP 0 JP 0 JP 0 JP 0 JP 0 JP 0 JP 0 JP 0 ; unreferenced code XOR A LD (3ACH),A LD (39BH),A JR 218H ; to here LD HL,0 XOR A LD (395H),A LD A,(392H) OR A JR NZ,259H LD A,(4DH) DEC A SUB C JR NC,21EH CPL LD C,A LD A,(4EH) OR A RET Z DEC A CP C RET C JR 267H LD A,(4EH) OR A JR Z,21EH DEC A SUB C JR NC,267H CPL LD C,A JR 21EH LD A,0FFH LD (395H),A LD A,C LD (3A2H),A LD L,C ADD HL,HL ADD HL,HL ADD HL,HL ADD HL,HL LD DE,0E16H ADD HL,DE RET LD A,(395H) OR A JP Z,1BH LD BC,0 LD A,(395H) OR A JP Z,21H LD (3A3H),BC RET LD A,(395H) OR A JP Z,24H LD A,C LD (3A6H),A SRL A SRL A LD (3A5H),A RET LD (393H),BC JP 27H LD A,(395H) OR A JP Z,2AH XOR A LD (3ACH),A INC A LD (39AH),A LD (399H),A INC A LD (39DH),A JP 134H LD A,(395H) OR A JP Z,2DH XOR A LD (39AH),A LD A,C LD (39DH),A CP 2 JR NZ,2EFH LD A,(3A2H) LD E,A LD D,0 LD HL,0E05H ADD HL,DE LD A,(HL) LD (3ACH),A LD HL,3A2H LD DE,3A7H LD BC,5 LDIR LD HL,3ACH LD A,(HL) OR A JR Z,32CH DEC (HL) LD A,(3A2H) LD HL,3A7H CP (HL) JR NZ,32CH LD HL,(3A3H) LD DE,(3A8H) SBC HL,DE JR NZ,32CH LD A,(3A6H) LD HL,3ABH CP (HL) JR NZ,32CH INC (HL) LD A,(0DA3H) LD B,A LD A,(HL) CP B JR C,326H LD (HL),0 LD HL,(3A8H) INC HL LD (3A8H),HL XOR A LD (399H),A JR 334H XOR A LD (3ACH),A INC A LD (399H),A XOR A LD (398H),A LD HL,39BH BIT 0,(HL) SET 0,(HL) JR Z,365H LD A,(3A2H) LD HL,39EH CP (HL) JR NZ,35EH LD HL,(3A3H) LD DE,(39FH) SBC HL,DE JR NZ,35EH LD A,(3A5H) LD HL,3A1H CP (HL) JR Z,37BH LD A,(39CH) OR A CALL NZ,1D3H LD HL,3A2H LD DE,39EH LD BC,4 LDIR LD A,(399H) OR A CALL NZ,1BAH XOR A LD (39CH),A LD A,(3A6H) AND 3 LD L,A LD H,0 ADD HL,HL ADD HL,HL ADD HL,HL ADD HL,HL ADD HL,HL ADD HL,HL ADD HL,HL LD DE,(396H) ADD HL,DE LD DE,(393H) LD BC,80H LD A,(39AH) OR A JR NZ,3A2H EX DE,HL LD A,1 LD (39CH),A LDIR LD A,(39DH) CP 1 LD A,(398H) RET NZ OR A RET NZ XOR A LD (39CH),A CALL 1D3H LD (398H),A RET CALL 1ECH CALL Z,3CDH CALL 79EH INC A LD (391H),A LD (398H),A RET Z LD HL,2EFH CALL 215H JR 3BAH CALL 1ECH CALL Z,446H CALL 79EH INC A LD (391H),A LD (398H),A RET Z LD HL,2F5H CALL 215H JR 3D3H CALL 7BCH XOR A LD (398H),A LD A,(39EH) CALL 0A33H LD A,(3A1H) CALL 0A3FH LD HL,(39FH) CALL 0A52H CALL 75CH CALL 79EH INC A RET NZ CALL 64EH CALL 79EH INC A RET CALL 2BFH LD B,0 LD A,(392H) OR A JR NZ,424H LD A,(4DH) LD B,A LD A,(39EH) ADD A,'A' ADD A,B LD (30EH),A LD A,(8B2H) CALL 2CDH LD (316H),HL LD A,(8B4H) CALL 2CDH LD (322H),HL LD A,(8B5H) CALL 2CDH LD (320H),HL LD A,(8B3H) CALL 2CDH LD (32EH),HL LD A,(8B6H) CALL 2CDH LD (339H),HL LD HL,2FCH CALL 2BFH LD A,(391H) DEC A LD E,A LD D,0 LD HL,919H ADD HL,DE ADD HL,DE LD E,(HL) INC HL LD D,(HL) EX DE,HL CALL 2BFH LD HL,33EH CALL 2BFH CALL 2E3H AND 5FH CP 'R' JR Z,4AFH CP 'C' JR Z,495H CP 'I' JR Z,4A3H CP 3 JR Z,4B6H LD C,7 CALL 2E9H JR 479H LD HL,372H CALL 2BFH POP HL LD A,1 LD (398H),A OR A RET LD HL,37EH CALL 2BFH POP HL XOR A LD (398H),A RET LD HL,369H CALL 2BFH RET LD HL,388H CALL 2BFH JP 0 PUSH HL LD C,(HL) RES 7,C CALL 2E9H POP HL BIT 7,(HL) RET NZ INC HL JR 4BFH PUSH AF RRCA RRCA RRCA RRCA CALL 2D7H LD L,A POP AF AND 0FH CP 0AH JR C,4DFH ADD A,7 ADD A,30H LD H,A RET LD HL,(1) LD L,9 JP (HL) LD HL,(1) LD L,0CH JP (HL) db cr,lf db 'Rea','d'+128 db cr,lf db 'Writ','e'+128 db ' Error: Hard disk' db ' @, Unit 00, Track 0' db '000, Surface 00,' db ' Sector 00.',cr db lf+128 db cr,lf,'(R)etry, (I)' db 'gnore, (C)ontinue,' db ' (^C)Abort','.'+128 db ' Retry.',cr,lf+128 db ' Continue.',cr,lf+128 db ' Ignore.',cr,lf+128 db ' Abort.',cr,lf+128 db 0,0,0,0,0,0,0,0 db 0,0,0,0,0,0,0,0 db 0,0,0,0,0,0,0,0 db 0,0,0,0 LD A,0FH OUT (0E2H),A LD A,4FH OUT (0E3H),A LD A,0CFH OUT (0E6H),A LD A,0E0H OUT (0E6H),A XOR A OUT (0E4H),A LD A,0CFH OUT (0E7H),A LD A,0FEH OUT (0E7H),A LD A,1 OUT (0E5H),A RET CALL 4CCH LD A,2 LD (8B0H),A LD A,0AH LD (8B1H),A CALL 4EDH CALL 79EH JR NZ,642H CALL 7BCH CALL 5DBH CALL 79EH JR NZ,642H CALL 7BCH LD HL,(90FH) DEC HL DEC HL DEC HL DEC HL LD (8B9H),HL LD HL,204H LD (8B7H),HL CALL 574H CALL 7C5H CALL 7A4H JR NZ,620H LD HL,(8B9H) LD BC,4 CALL 7AAH CALL 7A4H JR Z,642H LD A,0CH LD (8BEH),A JR 642H CALL 6F6H LD A,(8BDH) CP 4 JR Z,637H LD HL,8B0H DEC (HL) JR NZ,5E2H LD A,0AH LD (8BEH),A JR 642H LD HL,8B1H DEC (HL) JR NZ,5E2H LD A,0BH LD (8BEH),A CALL 4DCH RET CALL 4CCH CALL 4EDH CALL 79EH JR NZ,6C8H CALL 790H CALL 79EH JR NZ,6C8H LD A,2 LD (8AEH),A LD A,2 LD (8AFH),A CALL 7BCH CALL 5DBH CALL 79EH JR NZ,6C8H CALL 7BCH LD HL,204H LD (8B7H),HL LD HL,(90FH) DEC HL DEC HL DEC HL DEC HL LD (8B9H),HL EX DE,HL LD HL,8B3H LD BC,4H LDIR CALL 50CH CALL 7C5H CALL 7A4H JR Z,6A5H CALL 6F6H LD HL,8AEH DEC (HL) JR NZ,663H LD A,8 LD (8BEH),A JR 6C8H LD HL,8BFH BIT 0,(HL) JR Z,6C8H LD HL,(911H) LD (8B9H),HL CALL 3D0H CALL 79EH JR Z,06C8H LD A,6 LD (8BDH),A CALL 6F6H LD HL,8AFH DEC (HL) JR NZ,663H CALL 4DCH RET LD HL,(90FH) LD DE,0FFFBH ADD HL,DE LD DE,913H LD BC,5 LDIR RET LD HL,(90FH) LD DE,0FFFBH ADD HL,DE EX DE,HL LD HL,913H LD BC,5 LDIR RET CALL 7BCH CALL 75CH CALL 79EH RET NZ CALL 7C5H CALL 7A4H CALL NZ,7D0H LD HL,568H LD DE,8C3H LD BC,0CH LDIR RET LD HL,(8B7H) LD (8C5H),HL LD HL,(8B9H) DEC HL LD (HL),2 LD (8CAH),HL LD HL,8C3H LD BC,0CE8H OTIR LD A,0 OUT (0E0H),A LD A,4 CALL 87CH LD A,0H OUT (0E5H),A LD A,47H LD B,1 DI OUT (0EDH),A IN A,(0E4H) OR 10H OUT (0E4H),A LD A,80H OUT (0EDH),A LD C,0EDH IN A,(C) JP M,543H LD C,0E0H OUT (C),B IN A,(0E4H) AND 0 SUB A OUT (C),A NOP NOP NOP NOP IN A,(0E4H) AND 0EFH OUT (0E4H),A LD A,1 OUT (0E5H),A IN A,(0E4H) AND 0F7H OUT (0E4H),A RET ; 12 bytes of data for ldir JP 3B62H RET Z LD D,B NOP XOR L JP 82D1H RST 8 ADD A,A ; LD HL,(8B7H) DEC HL LD (8C5H),HL LD HL,(8B9H) LD (8CAH),HL LD HL,8C3H LD BC,0CE8H OTIR LD A,0 OUT (0E0H),A LD A,4 CALL 87CH LD A,0 OUT (0E5H),A LD D,2 DI IN A,(0E4H) OR 10H OUT (0E4H),A LD A,47H OUT (0EDH),A LD A,80H OUT (0EDH),A LD C,0EDH IN A,(C) JP M,5A9H LD B,0 NOP NOP NOP LD C,0E0H OUT (C),D NOP OUT (C),B NOP NOP NOP NOP IN A,(0E5H) LD D,A IN A,(0E4H) AND 0EFH OUT (0E4H),A LD B,A LD A,1 OUT (0E5H),A IN A,(0E4H) AND 0F7H OUT (0E4H),A BIT 7,D RET Z LD A,4 LD (8BDH),A RET CALL 600H CALL 79EH RET NZ LD A,(90EH) LD B,A LD A,(8B6H) SUB B JP M,5EFH JR NZ,7F1H ADD A,14H LD B,A LD A,47H OUT (0EDH),A LD A,B OUT (0EDH),A IN A,(0EDH) CP 1 JR NZ,7F9H RET LD A,2 LD (8A7H),A LD A,2 LD (8ABH),A CALL 0064EH CALL 79EH RET NZ CALL 6C3H CALL 79EH RET NZ CALL 7A4H JR Z,832H LD HL,8A7H DEC (HL) JR NZ,829H LD A,0 LD (8BEH),A RET CALL 7D0H CALL 79EH RET NZ JR 80AH LD HL,90BH LD BC,3 CALL 7AAH CALL 7A4H RET Z CALL 6F6H LD HL,8ABH DEC (HL) JR NZ,829H LD A,3 LD (8BEH),A RET LD A,2 LD (8A8H),A LD A,2 LD (8A9H),A CALL 68AH CALL 7A4H RET Z CALL 6F6H LD A,(8BDH) CP 2 JR NZ,87EH LD HL,8A8H DEC (HL) JR NZ,875H LD A,1 LD (8BEH),A RET CALL 7D0H CALL 79EH RET NZ JR 858H LD HL,8A9H DEC (HL) JR NZ,875H LD A,2 LD (8BEH),A RET CALL 822H CALL 6A9H PUSH HL LD HL,1388H CALL 83DH POP HL LD A,(8C1H) BIT 0,A JR Z,8A5H LD A,2 LD (8BDH),A RET CALL 7C5H RET CALL 775H LD HL,(8B4H) OR H LD (8C0H),A OUT (0E0H),A LD A,0 CALL 870H LD A,L OUT (0E0H),A LD A,2 CALL 870H RET LD A,0AH LD (8AAH),A CALL 7BCH LD HL,4 LD (8B7H),HL LD HL,90BH LD (8B9H),HL CALL 574H CALL 7C5H CALL 7A4H RET Z CALL 6F6H LD A,(8BDH) CP 4 RET NZ LD HL,8AAH DEC (HL) JR NZ,8C8H LD A,4 LD (8BEH),A RET LD HL,8C2H SET 5,(HL) LD A,(8BDH) CP 3 CALL Z,725H LD HL,8EFH RLCA LD C,A LD B,0 ADD HL,BC CALL 756H RET ; Don't know what this is LD A,(8BEH) LD HL,8CFH JR 906H ; nor this! LD HL,8CFH LD DE,8D0H LD BC,3BH LD (HL),0 LDIR RET PUSH AF LD HL,8FDH LD DE,744H LD A,0 CALL 860H LD C,A LD B,4 CALL 74BH LD A,2 CALL 860H LD C,A LD B,3 CALL 74BH POP AF RET db 80h,40h,20h,10h db 80h,8,1 LD A,(DE) INC DE AND C CALL NZ,756H INC HL INC HL DJNZ 94BH RET INC (HL) RET NZ INC HL INC (HL) DEC HL RET CALL 7BCH CALL 775H OUT (0E0H),A LD A,0 CALL 870H LD A,(8BDH) CP 0 RET NZ LD A,7 LD (8BEH),A RET LD A,(8B3H) AND 4 ADD A,A ADD A,A ADD A,A LD B,A LD A,(8B2H) AND 7 OR B ADD A,A ADD A,A LD B,A LD A,(8B3H) AND 3 OR B ADD A,A ADD A,A RET LD A,2 CALL 860H BIT 4,A RET Z LD A,0DH LD (8BEH),A RET LD A,(8BEH) CP 0FFH RET LD A,(8BDH) CP 0FFH RET LD DE,8B3H LD A,(DE) INC DE CPI JR NZ,9B6H RET PO JR 9ADH LD A,5 LD (8BDH),A RET LD A,0FFH LD (8BDH),A LD (8BEH),A RET IN A,(0E5H) BIT 1,A RET NZ LD A,3 LD (8BDH),A RET LD A,2 LD (8ACH),A LD A,3 LD (8ADH),A CALL 7BCH CALL 822H LD A,2 OUT (0E0H),A LD A,6 CALL 870H PUSH HL LD HL,1388H CALL 83DH POP HL LD A,(8C1H) BIT 0,A JR Z,0A0CH LD A,2 LD (8BDH),A CALL 6F6H LD HL,8ACH DEC (HL) JR NZ,9DAH LD A,5 LD (8BEH),A RET CALL 7C5H CALL 7A4H RET Z CALL 6F6H LD HL,8ADH DEC (HL) JR NZ,9DAH LD A,6 LD (8BEH),A RET LD HL,0 LD (8BBH),HL LD A,57H OUT (0E6H),A LD A,5FH OUT (0E6H),A XOR A LD (8C1H),A LD A,47H OUT (0EEH),A LD A,2 OUT (0EEH),A RET PUSH DE LD D,69H IN A,(0EEH) RRCA JR C,0A51H DEC D JR NZ,0A40H DEC HL LD A,H OR L JR NZ,0A3EH LD A,81H JR 0A53H LD A,80H LD (8C1H),A POP DE RET ; don't know what this is OUT (0E0H),A LD A,B RLCA CALL 870H RET OR 'A' CALL 87CH IN A,(0E1H) PUSH AF IN A,(0E4H) AND 0F7H OUT (0E4H),A POP AF RET AND 0BEH CALL 87CH IN A,(0E4H) AND 0F7H OUT (0E4H),A RET AND 0F7H OUT (0E4H),A LD B,1AH IN A,(0E4H) AND 80H JR NZ,0A91H DEC B JR NZ,0A82H LD A,1 LD (8BDH),A RET IN A,(0E4H) OR 8 OUT (0E4H),A LD B,1AH IN A,(0E4H) AND 80H RET Z DEC B JR NZ,0A99H LD A,0 LD (8BDH),A RET ; following 3 blocks of code are ref'ed as data ; data or code? LD H,(IY+0CH) LD (4796H),HL LD B,(IY+0DH) RES 7,B LD A,(IY+2) CP 'S' JR Z,0ACBH LD B,82H CP 'M' JR NZ,0AD1H DEC HL DEC HL BIT 0,(HL) JR NZ,0AD1H BIT 7,(HL) JR Z,0ACBH LD B,0E2H LD HL,3E05H CALL 3707H POP HL LD DE,0EH ADD HL,DE JR 0A94H PUSH HL EX DE,HL CALL 12F6H POP HL PUSH HL CALL 3864H POP HL PUSH HL CALL 3766H SUB A LD (2F20H),A POP HL PUSH HL CALL 2F21H JR C,0AFFH LD HL,4C57H LD (4860H),HL CALL 2F7CH POP HL JP 387AH EX AF,AF' LD (2F1EH),DE POP HL PUSH HL INC HL INC HL INC HL LD DE,398CH LD BC,21H ; is above data or code? dw 0B0EDH dw 8921H ADD HL,SP CALL 3766H db 0FDH db 0 dw 939H dw 948H dw 951H dw 95CH dw 967H dw 978H dw 98FH dw 9A3H dw 9B3H dw 9BFH dw 9CCH dw 9D7H dw 9E1H dw 9F8H dw 0A0EH dw 0A23H db 'Internal error','.'+128 db 'Time out','.'+128 db 'Seek fault','.'+128 db 'Seek error','.'+128 db 'Header CRC error','.'+128 db 'Timeout during Re-' db 'zero','.'+128 db 'Fault after Re-zero' db '.'+128 db 'Drive not ready','.'+128 db 'Write fault','.'+128 db 'Verify error','.'+128 db 'Read fault','.'+128 db 'CRC error','.'+128 db 'Incorrect sector' db ' found','.'+128 db 'Drive write protected' db '.'+128 db 'Sector address error' db '.'+128 db 'Illegal command','.'+128 LD HL,0E0DH LD E,A LD D,0 ADD HL,DE LD A,(HL) LD (8B2H),A RET LD B,0 SUB 14H JR C,0C48H INC B JR 0C41H ADD A,14H LD (8B6H),A LD A,B LD (8B3H),A RET LD (8B4H),HL LD A,(8B3H) LD E,A LD D,0 PUSH HL ADD HL,HL POP BC ADD HL,BC ADD HL,DE PUSH HL LD A,(0E04H) ADD A,A LD E,A LD D,0 LD HL,0DA4H LD A,(8B2H) INC A DEC A JR Z,0C75H ADD HL,DE JR 0C6FH POP DE LD BC,15EH PUSH BC LD C,0 LD A,(0E04H) LD B,A LD A,E CP (HL) INC HL JR NZ,0C89H LD A,D CP (HL) JR Z,0C99H INC HL INC C LD A,C CP 3 JR NZ,0C95H LD C,0 EX (SP),HL INC HL EX (SP),HL DJNZ 0C80H POP HL RET LD A,C LD (8B3H),A POP HL LD (8B4H),HL RET LD HL,30H LD (1),HL LD HL,(1) PUSH HL LD L,0 LD DE,100H ADD HL,DE LD (396H),HL LD (90FH),HL XOR A LD (8BFH),A CALL 3ADH POP HL PUSH HL LD DE,18H LD BC,3 LDIR POP DE LD HL,0 LD BC,3 LDIR LD HL,(1) LD DE,15H ADD HL,DE PUSH HL LD DE,1BH LD BC,15H LDIR POP DE LD HL,3 LD BC,15H LDIR LD HL,(1) LD L,0 LD DE,500H ADD HL,DE LD A,(0DA2H) LD B,A LD IX,0E16H LD (IX+8),L LD (IX+9),H LD DE,10H ADD IX,DE DJNZ 0CFCH LD HL,40H LD A,(HL) AND 80H LD (392H),A LD A,(HL) AND 0FH LD (4EH),A RET Z DEC A LD B,0 LD HL,0E0DH CP (HL) JR C,0D26H INC B INC HL JR 0D1FH LD A,B LD (4EH),A LD A,(4DH) ADD A,B LD (4FH),A LD HL,0DA4H LD DE,0DA5H LD BC,5FH LD (HL),0E5H LDIR LD HL,0 LD (8B4H),HL LD A,13H LD (8B6H),A XOR A LD (8B3H),A LD DE,0DA4H LD A,(40H) AND 0FH LD B,A LD HL,8B2H LD (HL),0FFH PUSH BC PUSH DE LD HL,8B2H INC (HL) CALL 7BCH CALL 75CH CALL 79EH JR Z,0D71H LD HL,0BB5H JR 0D96H CALL 7D0H CALL 79EH JR Z,0D7EH LD HL,0BBDH JR 0D96H CALL 64EH CALL 79EH JR Z,0D8BH LD HL,0BC6H JR 0D96H CALL 3CDH CALL 79EH JR Z,0E08H LD HL,0BCCH CALL 2BFH LD A,(8B2H) CALL 2CDH LD (0BDFH),HL LD HL,0BD2H CALL 2BFH POP HL LD A,(0E04H) ADD A,A LD E,A LD D,10H ADD HL,DE PUSH HL JP 0C3DH db cr,lf db 'Selec','t'+128 db cr,lf db 'Re-zer','o'+128 db cr,lf db 'See','k'+128 db cr,lf db 'Rea','d'+128 db ' Error: Unit' db ' 00 while reading' db ' alternate track' db ' table.',cr,lf+128 LD IX,(90FH) LD DE,100H ADD IX,DE LD A,(0E04H) LD B,A LD HL,0E5E5H LD A,(IX+0) CP 0E5H JR Z,0E2FH LD L,(IX+2) LD H,(IX+3) PUSH HL ADD HL,HL POP DE ADD HL,DE LD E,(IX+0) LD D,0 ADD HL,DE POP DE EX DE,HL LD (HL),E INC HL LD (HL),D INC HL PUSH HL LD DE,8 ADD IX,DE DJNZ 0E15H POP DE POP BC DEC B JP NZ,0B5BH RET ;following 2 blocks of code unref'ed CCF SUB A LD (3FDBH),A CALL 3403H JR 0E37H LD HL,(4C53H) LD DE,(4C55H) CALL 27D7H RET NC PUSH HL PUSH HL POP IY LD A,(IY+2) CP 'S' JR NZ,0E8CH LD A,(IY+0DH) BIT 5,A JR Z,0E8CH BIT 6,A JR NZ,0E8CH AND 1FH DEC A JR Z,0E8CH 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,0E8CH CALL 3270H LD A,6 CALL 329FH POP HL LD DE,0EH ADD HL,DE JR 0E51H ; what was that? ; same? PUSH AF LD A,(3F7AH) AND A JR Z,0EB4H PUSH HL PUSH DE PUSH BC LD A,(3F6DH) LD B,A CALL 3270H LD DE,(46A8H) LD A,0BH CALL 32E7H XOR A LD (3F7AH),A POP BC POP DE POP HL POP AF RET ; more ? PUSH AF PUSH BC PUSH DE PUSH HL LD A,B CP 3 JR C,0EDFH LD A,(46A5H) CP B JR Z,0EDDH LD A,B LD (46A5H),A SUB 3 LD L,A LD H,0 LD DE,8 CALL 2432H LD DE,4624H ADD HL,DE LD A,1 CALL 329FH LD A,3 POP HL POP DE POP BC LD B,A POP AF RET ; from here to next "********" is prob. just data (?) PUSH AF LD A,(HL) CP 20H JR Z,0F02H PUSH HL PUSH DE LD A,(109H) LD E,A LD D,0 LD A,(HL) CP 20H JR Z,0EFDH INC HL INC D DEC E JR NZ,0EF3H LD C,D POP DE POP HL JR 0F07H LD HL,32C5H LD C,1 POP AF JP 32E7H AND B BIT 0,(IX+2) JP NZ,33ADH CALL 324DH AND A CALL 3354H PUSH BC LD B,8 CALL 334DH POP BC RET LD A,B AND A RET Z LD A,(HL) CALL 32C6H INC HL DEC B JR 0F22H BIT 0,(IX+2) RET NZ PUSH AF XOR A CALL 331CH POP AF PUSH AF PUSH BC LD B,4 CALL 333FH POP BC POP AF CP 0FH RET Z CP 5 JR C,0F50H PUSH AF CALL 3332H POP AF CP 9 RET NC LD A,C LD B,3 CALL 333FH LD A,(HL) CALL 27CCH CALL 32D4H INC HL DEC C JR NZ,0F56H RET SCF CALL 3354H PUSH BC LD B,2 CALL 333FH POP BC RET CALL 324DH CALL 3270H SCF CALL 3354H LD A,B CALL 3320H LD A,E CALL 32D4H LD A,D CALL 32D4H RET PUSH BC PUSH AF LD A,9 SUB B LD C,A POP AF DEC C JR Z,0F92H ADD A,A JR 0F8CH POP BC ADD A,A CALL 3354H DJNZ 0F93H RET PUSH AF LD A,(3F6CH) CP 2 JR NZ,0FBBH EX AF,AF' RET P NOP LD B,(HL) JR Z,0FBBH POP AF PUSH AF LD A,(33A0H) RLA LD (33A0H),A LD A,(33A1H) DEC A LD (33A1H),A CALL Z,3377H POP AF RET PUSH HL PUSH DE PUSH BC PUSH AF LD A,(33A0H) LD HL,3CBDH CALL 3803H LD A,8 LD (33A1H),A POP AF POP BC POP DE POP HL RET LD A,(33A1H) CP 8 RET Z LD B,A LD A,(33A0H) ADD A,A DJNZ 0FDEH LD (33A0H),A JR 0FBDH SBC A,(HL) EX AF,AF' BIT 0,(IX+2) RET Z CALL 28EBH SUB A INC A RET PUSH AF LD A,(3F6CH) CP 2 JR Z,0FFDH POP AF RET POP AF PUSH HL PUSH DE PUSH BC PUSH AF LD A,(0C7AH) LD B,B JR NZ,1048H JR NZ,104AH JR NZ,104CH JR NZ,100EH NOP LD BC,201H LD (BC),A INC BC INC BC RST 38H ; ************************** dw 0 ; translation table dw 0 ; used by BDOS dw 0 dw 0 dw 0 ; addr. of dir. buff. dw 0E96H ; addr. of DPB dw 0 ; addr. of check vect. dw 0AA2H ; addr. of alloc. vect. dw 0 dw 0 dw 0 dw 0 dw 0 dw 0EA5H dw 0 dw 0B22H dw 0 dw 0 dw 0 dw 0 dw 0 dw 0E96H dw 0 dw 0B62H dw 0 dw 0 dw 0 dw 0 dw 0 dw 0EA5H dw 0 dw 0BE2H dw 0 dw 0 dw 0 dw 0 dw 0 dw 0E96H dw 0 dw 0C22H dw 0 dw 0 dw 0 dw 0 dw 0 dw 0EA5H dw 0 dw 0CA2H dw 0 dw 0 dw 0 dw 0 dw 0 dw 0E96H dw 0 dw 0CE2H dw 0 dw 0 dw 0 dw 0 dw 0 dw 0EA5H dw 0 dw 0D62H dw 240 ; CP/M spt db 6 ; BSH db 63 ; BLM db 3 ; EXM dw 1023 ; DSM dw 1023 ; DRM db 0f0h ; AL0 db 0 ; AL1 dw 0 ; CKS dw 1 ; OFF dw 240 ; CP/M spt db 5 ; BSH db 31 ; BLM db 1 ; EXM dw 511 ; DSM dw 255 ; DRM db 0c0h ; AL0 db 0 ; AL1 dw 0 ; CKS dw 281 ; OFF JP 0AA2H ; bit map for relocation? db 24h,92h,49h,0 db 0,0,12h,1 db 20h,0,0,0 db 0,11h,1,8 db 82h,22h,22h,20h db 42h,48h,88h,91h db 24h,44h,40h,82h db 12h,40h,40h,48h db 22h,4,81h,0 db 44h,41h,11h,20h db 12h,8,81h,20h db 89h,20h,22h,24h db 0,4,20h,80h db 42h,10h,24h,89h db 22h,44h,84h,91h db 22h,42h,24h,92h db 49h,21h,21h,8 db 2,9,24h,92h db 49h,24h,92h,49h db 20h,40h,24h,90h db 0,0,21h,20h db 84h,84h,48h,90h db 4,0,8,0 db 0,0,0,0 db 0,0,0,0 db 0,0,0,0 db 0,0,0,0 db 0,0,0,0 db 0,0,0,0 db 0,0,0,0 db 0,1,8,49h db 9,21h,20h,41h db 24h,84h,12h,4 db 24h,8,8,40h db 48h,92h,12h,4 db 24h,90h,82h,40h db 88h,9,21h,20h db 21h,2,49h,2 db 48h,22h,4,2 db 2,1,24h,49h db 24h,2,48h,24h db 0,10h,0,0 db 1,0,0,0 db 0,0,2,24h db 90h,0,40h,0 db 0,4,0,0 db 0,0,0,44h db 88h,88h,0,0 db 8,49h,12h,21h db 1,12h,8,24h db 48h,8,21h,24h db 48h,10h,11h,20h db 80h,89h,2,20h db 11h,12h,20h,40h db 41h,20h,92h,49h db 12h,8,8,84h db 24h,4,48h,48h db 0,90h,82h,10h db 40h,0,80h,2 db 40h,90h,11h,0 db 80h,40h,8,8 db 82h,8,0,20h db 90h,2,8,49h db 0,81h,10h,9 db 20h,22h,44h,80h db 81h,0,10h,0 db 0,0,4,2 db 8,0,8,0 db 0,1,0,0 db 4,0,0,0 db 0,0,0,0 db 0,0,0,0 db 0,0,0,2ah db 0aah,0aah,0aah,80h db 0,0,0,0 db 0,0,0,0 db 0,0,0,0 db 0,0,0,0 db 0,0,0,0 db 0,0,0,0 db 0,0,0,0 db 0,0,4,4 db 0,8,89h,0 db 10h,24h,0,2 db 0,0,0,8 db 89h,0,9,12h db 10h,8,0,8 db 4,0,2,10h db 0,0,40h,2 db 0,0,12h,0 db 10h,89h,0,81h db 12h,42h,12h,10h db 90h,84h,84h,92h db 49h,10h,8,0 db 0,0,0,0 db 0,0,0,0 db 0,10h,10h,0 db 0,0,0,0 db 20h,0,0,0 db 0,0,0,0 db 0,0,0,0 db 0,0,0,0 db 0,0,0,0 db 0,0,0,0 db 0,0,0,0 db 0,0,0,0 db 0,0,0,0 db 0,0,0,0 db 0,0,0,0 db 0,0,0,0 db 0,0,0,0 db 0,0,0,0 db 0,0,0,0 db 44h,0,44h,0 db 44h,0,44h,0 db 44h,0,44h,0 db 44h,0,44h,0 db 0,0,2,0 db 0,0,0,0 db 0,0,0,0 db 0,0,0,0 db 0,0,0,0 db 0,0,0,0 db 0,0,0,0 db 0,0,0,0 db 0,0,0,0 db 0,0,0,0 db 0,0,0,0 db 0,0,0,0 db 0,0,0,0 db 0,0,0,0 db 0,0,0,0 db 0,0,0,0 db 0,0,0,0 db 0,0,0,0 db 0,0,0,0 db 0,0,0,0 db 0,0,0,0 db 0,0,0,0 db 0,0,0,0 db 0,0,0,0 db 0,0,0,0 db 0,0,0,0 db 0,0,0,0 db 0,0,0,0 db 0,0,0,0 db 0 END