; ; the assembler to generate cpmfdc.spr ; rzh Sept. 2000 ; cr equ 0dh lf equ 0ah org 100h db 0 dw 91DH 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 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 JP 64FH JP 1CEH JP 0F6H JP 1D0H JP 1D5H JP 1E1H JP 1E6H JP 1F5H ; How do we get to the next 4 code segments? XOR A LD (64EH),A LD (639H),A LD SP,0E400H LD C,0 LD E,0 CALL 0F6H LD A,(646H) LD (80H),A LD A,9CH LD (81H),A LD A,(5D3H) LD D,A LD E,7FH LD BC,30FH LD HL,0E400H LD A,E OUT (4),A BIT 1,E JR Z,258H LD A,D OUT (34H),A LD A,C OUT (30H),A IN A,(34H) RRA JR NC,24DH IN A,(30H) AND 98H JR NZ,218H LD A,B OUT (32H),A LD A,D OR 80H OUT (34H),A LD C,33H LD A,(81H) OUT (30H),A IN A,(34H) RRA JR C,270H INI JR 267H IN A,(30H) LD B,A LD A,(81H) CP 9CH JR NZ,294H BIT 4,B JR Z,218H LD A,8CH LD (81H),A LD A,(5E4H) BIT 0,A JR Z,2ADH SET 6,D LD A,(647H) LD (80H),A JR 2ADH LD A,B OR A JR NZ,218H PUSH HL PUSH DE LD DE,0FA00H SBC HL,DE POP DE POP HL JR NC,2BEH IN A,(32H) LD B,A INC B LD A,(80H) CP B JR NC,258H LD B,1 LD A,(5E3H) BIT 0,A JR Z,2BAH LD A,E XOR 2 LD E,A LD C,5FH JR 240H IN A,(31H) LD (5C1H),A LD A,0C3H LD (0),A LD HL,0FA03H LD (1),HL LD (5),A LD HL,0EC06H LD (6),HL LD HL,0EC09H LD E,(HL) INC HL LD D,(HL) EX DE,HL LD (HL),0C9H LD HL,4 LD A,(HL) AND 0FH LD B,A LD A,(4FH) DEC A CP B JR NC,2F2H LD A,(HL) AND 0F0H LD (HL),A LD C,(HL) JP 0E403H ; End of mystery code LD HL,0 LD A,(4DH) DEC A CP C RET C BIT 0,E PUSH AF LD A,C LD (642H),A ADD A,A ADD A,A LD L,A PUSH HL LD DE,5D3H ADD HL,DE LD (5BDH),HL LD A,(HL) LD (5CBH),A LD B,10H LD C,1AH BIT 4,A JR NZ,321H LD B,0AH LD C,12H LD (646H),BC POP HL ADD HL,HL ADD HL,HL LD DE,5F6H ADD HL,DE POP AF RET NZ LD (5BBH),HL XOR A LD (643H),A INC A LD (645H),A CALL 204H LD HL,(5CCH) LD DE,5C1H ADD HL,DE LD (HL),0FFH LD HL,0FF00H LD (5BFH),HL CALL 38EH LD A,(5CBH) AND 0FH LD B,A LD C,0 LD A,(0FF7AH) CP 'D' JR NZ,35EH LD C,B LD HL,5E3H LD A,B CPL AND (HL) OR C LD (HL),A LD C,0 LD A,(0FF7CH) CP 'D' JR NZ,370H LD C,B LD HL,5E4H LD A,B CPL AND (HL) OR C LD (HL),A LD HL,5CBH LD A,(HL) AND 0FH LD BC,0 LD DE,0FA35H BIT 4,(HL) JR NZ,38FH LD C,4 LD HL,3CH ADD HL,DE EX DE,HL LD A,(5CBH) AND 0FH LD HL,5E3H AND (HL) JR Z,3A1H LD HL,1EH ADD HL,DE EX DE,HL INC BC INC BC LD A,(5CBH) AND 0FH LD HL,5E4H AND (HL) JR Z,3B2H LD HL,0FH ADD HL,DE EX DE,HL INC BC LD HL,5E6H ADD HL,BC ADD HL,BC LD C,(HL) INC HL LD B,(HL) LD HL,(5BBH) PUSH HL LD (HL),C INC HL LD (HL),B LD BC,9 ADD HL,BC LD (HL),E INC HL LD (HL),D POP HL LD DE,(5BDH) RET LD C,0 LD A,C LD (643H),A RET LD A,C LD (645H),A SRL A SRL A LD (644H),A RET LD (5CFH),BC RET LD A,(5CBH) LD HL,5E4H AND (HL) JR NZ,449H CALL 204H JP 38EH LD A,(5CBH) LD HL,5E4H AND (HL) JR NZ,45BH CALL 204H JP 39BH LD HL,642H LD DE,5C5H LD BC,6 LDIR LD HL,(5CFH) LD (5BFH),HL CALL 222H LD HL,5CBH RES 6,(HL) LD A,(5C9H) JR 437H LD A,(5C5H) ADD A,A ADD A,A LD E,A LD D,0 LD HL,5D3H ADD HL,DE LD DE,5CBH LD BC,4 LDIR RET LD B,0FFH LD HL,5C8H SUB (HL) JR NC,444H LD B,0FDH NEG LD (HL),A LD A,B LD (5D1H),A RET XOR A LD (64EH),A INC A LD (638H),A LD (637H),A INC A LD (63BH),A JP 2C1H XOR A LD (638H),A LD A,C LD (63BH),A CP 2 JR NZ,477H LD A,10H LD (64EH),A LD HL,642H LD DE,648H LD BC,6 LDIR LD HL,64EH LD A,(HL) OR A JR Z,4B9H DEC (HL) LD HL,(642H) LD DE,(648H) SBC HL,DE JR NZ,4B9H LD A,(645H) LD HL,64BH CP (HL) JR NZ,4B9H INC (HL) LD A,(64DH) LD B,A PUSH HL LD HL,5E3H LD A,(5CBH) AND (HL) POP HL JR Z,4A5H SLA B LD A,(HL) SRL A SRL A CP B JR C,4B3H LD (HL),0 LD HL,649H INC (HL) XOR A LD (637H),A JR 4C1H XOR A LD (64EH),A INC A LD (637H),A XOR A LD (636H),A LD HL,639H BIT 0,(HL) SET 0,(HL) JR Z,4E9H LD HL,(63CH) LD DE,(642H) SBC HL,DE JR NZ,4E2H LD A,(644H) LD HL,63EH CP (HL) JR Z,4FFH LD A,(63AH) OR A CALL NZ,347H LD HL,642H LD DE,63CH LD BC,6 LDIR LD A,(637H) OR A CALL NZ,33DH XOR A LD (63AH),A LD A,(645H) 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,0FD00H ADD HL,DE LD DE,(5CFH) LD BC,80H LD A,(638H) OR A JR NZ,525H EX DE,HL LD A,1 LD (63AH),A LDIR LD A,(63BH) CP 1 LD A,(636H) RET NZ OR A RET NZ XOR A LD (63AH),A CALL 347H LD A,(636H) RET CALL 351H CALL 38EH LD (636H),A RET CALL 351H CALL 39BH LD (636H),A RET LD HL,63CH LD DE,5C5H LD BC,6 LDIR LD HL,0FD00H LD (5BFH),HL CALL 222H LD A,(63EH) INC A LD (5C8H),A LD DE,902H LD HL,5CBH SET 6,(HL) BIT 4,(HL) JR NZ,57BH LD DE,912H PUSH DE LD A,(5CAH) CALL 237H POP DE LD BC,5C8H LD A,(BC) LD L,A LD H,0 ADD HL,DE LD A,(HL) LD (BC),A RET CALL 51BH OR A RET Z LD HL,452H CALL 3A8H JR 58EH CALL 4F1H OR A RET Z LD HL,458H CALL 3A8H JR 59BH CALL 42EH LD B,0 LD A,(5E5H) OR A JR Z,5B7H LD A,(4EH) LD B,A LD A,(5C5H) ADD A,'A' ADD A,B LD (473H),A LD A,(5C6H) CALL 43CH LD (47CH),HL LD HL,5D1H LD A,'0' BIT 1,(HL) JR NZ,5D3H INC A LD (485H),A LD A,(5C8H) CALL 43CH LD (48FH),HL LD A,(5D2H) CALL 43CH LD (49AH),HL LD HL,45FH CALL 42EH CALL 0FA09H AND 5FH CP 52H JR Z,61EH CP 'C' JR Z,60AH CP 'I' JR Z,615H CP 3 JR Z,625H LD C,7 CALL 0FA0CH JR 5EEH LD HL,4D2H CALL 42EH POP HL LD A,1 OR A RET LD HL,4DEH CALL 42EH POP HL XOR A RET LD HL,4C9H CALL 42EH RET LD HL,4E8H CALL 42EH JP 0 PUSH HL LD C,(HL) RES 7,C CALL 0FA0CH POP HL BIT 7,(HL) RET NZ INC HL JR 62EH PUSH AF RRCA RRCA RRCA RRCA CALL 446H LD L,A POP AF AND 0FH CP 0AH JR C,64EH ADD A,7 ADD A,'0' LD H,A RET db cr,lf db 'Rea' db 'd'+128 db cr,lf db 'Writ' db 'e'+128 db ' Error: Floppy' db ' disk @, Track' db ' 00, Side 0,' db ' Sector 00, Status' db ' 00. ',cr,lf db '(R)etry, (I)gnore,' db ' (C)ontinue, (^C)' db 'Abort','.'+128 db ' Retry.',cr,lf+128 db ' Continue.',cr,lf+128 db ' Ignore.',cr,lf+128 db ' Abort.',cr,lf+128 LD B,2 PUSH BC LD A,0A3H LD (538H),A LD E,0A8H CALL 522H POP BC OR A RET NZ LD A,(0FA34H) OR A RET Z PUSH BC LD A,78H LD (538H),A LD E,88H LD B,1 CALL 524H POP BC OR A RET Z DJNZ 6F3H LD A,1 RET LD A,0A2H LD (538H),A LD E,88H LD B,0AH PUSH BC PUSH DE CALL 54EH LD C,33H LD HL,(5BFH) POP DE OR E OUT (30H),A IN A,(34H) RRA JR C,73BH db 0edh,0 ;gets changed to INI or OUTI JR 732H POP BC IN A,(30H) LD (5D2H),A OR A RET Z LD A,1 DEC B RET Z PUSH BC PUSH DE CALL 592H JR 726H CALL 579H CALL 569H OR 80H LD D,A LD A,(5C8H) OUT (32H),A DI IN A,(34H) AND 20H LD A,D OUT (34H),A LD A,4 RET Z XOR A RET LD A,(5D1H) OUT (4),A LD HL,(5CCH) LD DE,5C1H ADD HL,DE LD A,(5CBH) RET CALL 569H OUT (34H),A LD A,(5C6H) OUT (33H),A LD D,A LD A,(HL) LD (HL),D OUT (31H),A CP D RET Z LD A,D OR A JR Z,792H LD E,1CH JR 799H CALL 569H LD (HL),0 LD E,0CH LD A,(5CBH) BIT 4,A JR Z,7ADH LD A,(5CEH) OR A JR NZ,7ADH LD A,(5D1H) AND 6FH OUT (4),A LD A,(5CEH) OR E OUT (30H),A IN A,(34H) RRA JR NC,7B3H IN A,(30H) RET dw 0,0,0 dw 0ffffh,0ffffh dw 0,0,0,0,0,0,0,0 dw 0,0,0,0,0,0,0,0 db 0 dw 87Fh dw 0 dw 899h dw 0 dw 8cdh dw 0 dw 8dfh dw 0 dw 0 dw 0 dw 0 dw 0 dw 0ff00h dw 0 dw 77fh dw 64fh dw 0 dw 0 dw 0 dw 0 dw 0ff00h dw 0 dw 7bfh dw 69bh dw 0 dw 0 dw 0 dw 0 dw 0ff00h dw 0 dw 7ffh dw 6e7h dw 0 dw 0 dw 0 dw 0 dw 0ff00h dw 0 dw 83fh dw 733h dw 0 dw 0 dw 0 dw 0 dw 0 dw 0 dw 0 dw 0 dw 0 dw 0 dw 0 dw 0 db 0 CALL 6C6H LD HL,18H LD (1),HL LD HL,0EC09H LD E,(HL) INC HL LD D,(HL) EX DE,HL LD (HL),0C9H LD HL,87FH LD A,1AH LD C,0DH LD E,6 CALL 708H LD A,34H LD C,1AH LD E,2 CALL 708H LD A,12H LD C,12H LD E,5 CALL 708H LD A,24H LD C,0CH LD E,3 CALL 708H LD A,10H LD C,4 LD E,4 CALL 708H LD A,0AH LD C,0AH LD E,3 CALL 708H LD HL,3 LD DE,0FA18H LD BC,15H LDIR LD HL,0 LD (0FA04H),HL LD HL,40H LD A,(HL) AND 80H LD (5E5H),A LD A,(HL) AND 30H RRCA RRCA RRCA RRCA LD (4DH),A LD (4FH),A XOR A LD (4EH),A RET LD B,4 LD A,1 LD IX,5D3H PUSH AF LD (IX+0),A SET 5,(IX+0) LD HL,41H AND (HL) JR Z,8E0H SET 4,(IX+0) LD HL,43H LD A,(HL) AND 3 LD (IX+1),A RRC (HL) RRC (HL) LD (IX+2),0 LD HL,42H LD A,(HL) AND 3 LD (IX+3),A RRC (HL) RRC (HL) LD DE,4 ADD IX,DE POP AF RLCA DJNZ 8CEH RET LD D,A EX AF,AF' XOR A LD B,C EXX LD B,A EXX LD (HL),A INC (HL) INC HL ADD A,E CP D JR C,917H SUB D EX AF,AF' DEC A RET Z EX AF,AF' DJNZ 90FH EXX INC B LD A,B EXX LD B,C JR 90FH 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 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 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 ; bit map for relocation? db 24h,92h,49h,12h db 40h,90h,2,1 db 0,0,0,0 db 0,0,0,0 db 4,2,0,8 db 0,0,40h,0 db 20h,20h,10h,40h db 0,0,4,0 db 4,8,88h,0 db 8,20h,88h,92h db 41h,24h,80h,80h db 80h,20h,20h,20h db 10h,0,42h,0 db 10h,80h,8,8 db 0,8,10h,81h db 8,90h,49h,20h db 92h,40h,49h,21h db 8,8,80h,10h db 1,8,91h,22h db 20h,12h,40h,40h db 44h,9,2,12h db 0,0,42h,8 db 89h,0,88h,12h db 8,92h,2,22h db 40h,0,84h,10h db 8,42h,4,91h db 24h,49h,12h,2 db 49h,12h,40h,22h db 44h,0,84h,84h db 24h,21h,0,41h db 24h,90h,4,92h db 49h,24h,80h,0 db 1,9,1,20h db 91h,20h,8,0 db 10h,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,84h db 10h,10h,20h,1 db 0,84h,0,0 db 80h,10h,90h,40h db 0,10h,91h,10h db 80h,0,8,10h db 20h,81h,0,0 db 0,0,0,0 db 1,11h,10h,1 db 14h,1,14h,1 db 14h,1,14h,0 db 0,0,49h,20h db 10h,8,4,2 db 1,0,80h,49h db 1,20h,10h,0 db 0,4,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 1ah,1ah,1ah,1ah db 1ah,1ah,1ah,1ah db 1ah,1ah,1ah,1ah db 1ah,1ah,1ah,1ah db 1ah,1ah,1ah,1ah db 1ah,1ah,1ah,1ah db 1ah,1ah,1ah,1ah db 1ah,1ah,1ah,1ah db 1ah,1ah,1ah,1ah db 1ah,1ah,1ah,1ah db 1ah,1ah,1ah,1ah db 1ah,1ah,1ah,1ah db 1ah,1ah,1ah,1ah db 1ah,1ah,1ah,1ah db 1ah,1ah,1ah,1ah db 1ah,1ah,1ah END