; Disassembly of the file "Z:\home\knoppix\CoBra Project\Software\CPM\CPM SYSGEN 64 chr_line analysis\BIOS.bin" ; ; CPU Type: Z80 ; ; Using the opcode map file "Z:\home\knoppix\CoBra Project\Software\CPM\CPM SYSGEN 64 chr_line analysis\BIOS.bin.opmap" ; ; Created with dZ80 2.0 ; ; on Tuesday, 24 of January 2017 at 09:21 PM ; F600 C32DFE JP $FE2D ; BOOT (00 - Cold Start) F603 C37EF8 JP $F87E ; WBOOT (01 - Warm Boot) F606 C313F7 JP $F713 ; CONST (02 - Check for Console Char Ready) F609 C376F7 JP $F776 ; CONIN (03 - Read Console Char In) F60C C385F7 JP $F785 ; CONOUT (04 - Write Console Char Out) F60F C3D1F9 JP $F9D1 ; LIST (05 - Write Listing Char Out) F612 C3DCF9 JP $F9DC ; PUNCH (06 - Write Char to Punch dev) F615 C31EFA JP $FA1E ; READER (07 - Read Reader dev) F618 C3D9F7 JP $F7D9 ; HOME (08 - Go to Track 00 on selected drive) F61B C395F7 JP $F795 ; SELDSK (09 - Select Disk Drive) F61E C3DBF7 JP $F7DB ; SETTRK (0A - Set Track Number) F621 C3E0F7 JP $F7E0 ; SETSEC (0B - Set Sector Number) F624 C3E6F7 JP $F7E6 ; SETDMA (0C - Set DMA Address) F627 C32EF8 JP $F82E ; READ (0D - Read Selected Sector) F62A C334F8 JP $F834 ; WRITE (0E - Write Selected Sector) F62D C3C2F9 JP $F9C2 ; LISTST (0F - Return LST dev Status F630 C3EBF7 JP $F7EB ; SECTRAN(10 - Sector Translation) F633 C31AF8 JP $F81A ; UNK #1 F636 C31EF8 JP $F81E ; UNK #2 F639 C3B6F9 JP $F9B6 ; UNK #3 F63C C39EFA JP $FA9E ; UNK #4 F63F 1E DEFB $1E F640 40 DEFB $40 ; 8255/Port C mirror (initial value with O6=1 -> VRAM CPU access) F641 00 DEFB $00 F642 00 DEFB $00 F643 07 DEFB $07 F644 00 DEFB $00 F645 00 DEFB $00 ; \ F646 63 DEFB $63 ; /base of character generator in VRAM F647 11 DEFB $11 F648 08 DEFB $08 F649 01 DEFB $01 F64A 00 DEFB $00 F64B 19 DEFB $19 F64C 00 DEFB $00 F64D 01 DEFB $01 F64E FF DEFB $FF F64F 06 DEFB $06 F650 00 DEFB $00 F651 00 DEFB $00 F652 00 DEFB $00 F653 00 DEFB $00 F654 00 DEFB $00 F655 00 DEFB $00 F656 00 DEFB $00 ; $00 if drv#=0 or 1 (FM), $40 if drv#=2 or 3 (MFM) F657 00 DEFB $00 F658 00 DEFB $00 F659 00 DEFB $00 F65A 00 DEFB $00 F65B 00 DEFB $00 F65C 00 DEFB $00 F65D 00 DEFB $00 F65E 00 DEFB $00 F65F 04 DEFB $04 F660 02 DEFB $02 F661 0A DEFB $0A F662 20 DEFB $20 F663 FF DEFB $FF F664 EF DEFB $EF F665 3F DEFB $3F F666 77 DEFB $77 F667 F6 DEFB $F6 F668 50 DEFB $50 F669 00 DEFB $00 F66A 04 DEFB $04 F66B 0F DEFB $0F F66C 00 DEFB $00 F66D 8F DEFB $8F F66E 01 DEFB $01 F66F FF DEFB $FF F670 00 DEFB $00 F671 F0 DEFB $F0 F672 00 DEFB $00 F673 20 DEFB $20 F674 00 DEFB $00 F675 00 DEFB $00 F676 00 DEFB $00 F677 00 DEFB $00 F678 03 DEFB $03 F679 06 DEFB $06 F67A 09 DEFB $09 F67B 02 DEFB $02 F67C 05 DEFB $05 F67D 08 DEFB $08 F67E 01 DEFB $01 F67F 04 DEFB $04 F680 07 DEFB $07 F681 02 DEFB $02 F682 09 DEFB $09 F683 20 DEFB $20 F684 FF DEFB $FF F685 EF DEFB $EF F686 3F DEFB $3F F687 98 DEFB $98 F688 F6 DEFB $F6 F689 24 DEFB $24 F68A 00 DEFB $00 F68B 03 DEFB $03 F68C 07 DEFB $07 F68D 00 DEFB $00 F68E AA DEFB $AA F68F 00 DEFB $00 F690 3F DEFB $3F F691 00 DEFB $00 F692 C0 DEFB $C0 F693 00 DEFB $00 F694 10 DEFB $10 F695 00 DEFB $00 F696 02 DEFB $02 F697 00 DEFB $00 F698 00 DEFB $00 F699 04 DEFB $04 F69A 08 DEFB $08 F69B 03 DEFB $03 F69C 07 DEFB $07 F69D 02 DEFB $02 F69E 06 DEFB $06 F69F 01 DEFB $01 F6A0 05 DEFB $05 F6A1 00 DEFB $00 F6A2 00 DEFB $00 F6A3 00 DEFB $00 F6A4 00 DEFB $00 F6A5 00 DEFB $00 F6A6 00 DEFB $00 F6A7 00 DEFB $00 F6A8 00 DEFB $00 F6A9 00 DEFB $00 F6AA 00 DEFB $00 F6AB 00 DEFB $00 F6AC 00 DEFB $00 F6AD 00 DEFB $00 F6AE 00 DEFB $00 F6AF 00 DEFB $00 F6B0 00 DEFB $00 F6B1 00 DEFB $00 F6B2 00 DEFB $00 F6B3 00 DEFB $00 F6B4 00 DEFB $00 F6B5 00 DEFB $00 F6B6 00 DEFB $00 F6B7 00 DEFB $00 F6B8 00 DEFB $00 F6B9 00 DEFB $00 F6BA 00 DEFB $00 F6BB 00 DEFB $00 F6BC 00 DEFB $00 F6BD 00 DEFB $00 F6BE 00 DEFB $00 F6BF 00 DEFB $00 F6C0 00 DEFB $00 F6C1 00 DEFB $00 F6C2 02 DEFB $02 F6C3 09 DEFB $09 F6C4 20 DEFB $20 F6C5 FF DEFB $FF F6C6 EF DEFB $EF F6C7 3F DEFB $3F F6C8 D9 DEFB $D9 ; \ CP/M PROTECTION F6C9 F6 DEFB $F6 ; / CODE for drives 2, 3 ; ##### 8272 command args for drv# 2, 3 F6CA 48 DEFB $48 ; head+drive F6CB 00 DEFB $00 ; C | N F6CC 04 DEFB $04 ; H | SC F6CD 0F DEFB $0F ; R | GPL F6CE 00 DEFB $00 ; N | D F6CF 5E DEFB $5E ; EOT F6D0 01 DEFB $01 ; GPL F6D1 7F DEFB $7F ; DTL | STP F6D2 00 DEFB $00 F6D3 C0 DEFB $C0 F6D4 00 DEFB $00 F6D5 20 DEFB $20 F6D6 00 DEFB $00 F6D7 02 DEFB $02 F6D8 00 DEFB $00 F6D9 00 DEFB $00 F6DA 02 DEFB $02 F6DB 04 DEFB $04 F6DC 06 DEFB $06 F6DD 08 DEFB $08 F6DE 01 DEFB $01 F6DF 03 DEFB $03 F6E0 05 DEFB $05 F6E1 07 DEFB $07 F6E2 00 DEFB $00 F6E3 1A DEFB $1A F6E4 07 DEFB $07 F6E5 80 DEFB $80 F6E6 BF DEFB $BF F6E7 17 DEFB $17 F6E8 F9 DEFB $F9 ; \ CP/M PROTECTION F6E9 F6 DEFB $F6 ; / CODE for drives 0, 1 ; ##### 8272 command args for drv# 0, 1 F6EA 1A DEFB $1A ; head+drive F6EB 00 DEFB $00 ; C | N F6EC 03 DEFB $03 ; H | SC F6ED 07 DEFB $07 ; R | GPL F6EE 00 DEFB $00 ; N | D F6EF F2 DEFB $F2 ; EOT F6F0 00 DEFB $00 ; GPL F6F1 3F DEFB $3F ; DTL | STP F6F2 00 DEFB $00 F6F3 C0 DEFB $C0 F6F4 00 DEFB $00 F6F5 10 DEFB $10 F6F6 00 DEFB $00 F6F7 02 DEFB $02 F6F8 00 DEFB $00 F6F9 00 DEFB $00 F6FA 06 DEFB $06 F6FB 0C DEFB $0C F6FC 12 DEFB $12 F6FD 18 DEFB $18 F6FE 04 DEFB $04 F6FF 0A DEFB $0A F700 10 DEFB $10 F701 16 DEFB $16 F702 02 DEFB $02 F703 08 DEFB $08 F704 0E DEFB $0E F705 14 DEFB $14 F706 01 DEFB $01 F707 07 DEFB $07 F708 0D DEFB $0D F709 13 DEFB $13 F70A 19 DEFB $19 F70B 05 DEFB $05 F70C 0B DEFB $0B F70D 11 DEFB $11 F70E 17 DEFB $17 F70F 03 DEFB $03 F710 09 DEFB $09 F711 0F DEFB $0F F712 15 DEFB $15 F713 3A0300 LD A,($0003) F716 E602 AND $02 F718 C227FA JP NZ,$FA27 F71B 3A4CF6 LD A,($F64C) F71E B7 OR A F71F C8 RET Z F720 214EF6 LD HL,$F64E F723 CB7E BIT 7,(HL) F725 C8 RET Z F726 7E LD A,(HL) F727 2150F6 LD HL,$F650 F72A FE81 CP $81 F72C 281A JR Z,$F748 F72E FE82 CP $82 F730 281C JR Z,$F74E F732 FE83 CP $83 F734 282B JR Z,$F761 F736 FE90 CP $90 F738 282B JR Z,$F765 F73A FE91 CP $91 F73C 282B JR Z,$F769 F73E FEFE CP $FE F740 CA73F8 JP Z,$F873 F743 AF XOR A F744 324CF6 LD ($F64C),A F747 C9 RET F748 3E02 LD A,$02 F74A AE XOR (HL) F74B 77 LD (HL),A F74C 18F5 JR $F743 F74E 3E04 LD A,$04 F750 AE XOR (HL) F751 77 LD (HL),A F752 E604 AND $04 F754 210801 LD HL,$0108 F757 2803 JR Z,$F75C F759 210204 LD HL,$0402 F75C 2248F6 LD ($F648),HL F75F 18E2 JR $F743 F761 CBDE SET 3,(HL) F763 18DE JR $F743 F765 3E40 LD A,$40 F767 18E1 JR $F74A F769 2147F6 LD HL,$F647 F76C 3E02 LD A,$02 F76E AE XOR (HL) F76F 77 LD (HL),A F770 324EF6 LD ($F64E),A F773 F6FF OR $FF F775 C9 RET F776 3A0300 LD A,($0003) F779 CB4F BIT 1,A F77B CA22F8 JP Z,$F822 F77E 0F RRCA F77F D215F6 JP NC,$F615 F782 C31EFA JP $FA1E F785 47 LD B,A F786 3A0300 LD A,($0003) F789 CB4F BIT 1,A F78B CA28F8 JP Z,$F828 F78E 0F RRCA F78F D2DCF9 JP NC,$F9DC F792 C312F6 JP $F612 F795 210400 LD HL,$0004 F798 46 LD B,(HL) F799 AF XOR A F79A 77 LD (HL),A F79B EB EX DE,HL F79C 67 LD H,A F79D 6F LD L,A F79E 3A5EF6 LD A,($F65E) F7A1 B9 CP C F7A2 D8 RET C F7A3 EB EX DE,HL F7A4 70 LD (HL),B F7A5 79 LD A,C F7A6 325CF6 LD ($F65C),A F7A9 215FF6 LD HL,$F65F F7AC 46 LD B,(HL) F7AD 2B DEC HL F7AE 3603 LD (HL),$03 F7B0 CB57 BIT 2,A F7B2 2001 JR NZ,$F7B5 F7B4 70 LD (HL),B F7B5 2100FC LD HL,$FC00 F7B8 B5 OR L F7B9 6F LD L,A F7BA 7E LD A,(HL) F7BB 3251F6 LD ($F651),A F7BE CB51 BIT 2,C F7C0 2801 JR Z,$F7C3 F7C2 79 LD A,C F7C3 1100FB LD DE,$FB00 F7C6 07 RLCA F7C7 07 RLCA F7C8 07 RLCA F7C9 07 RLCA F7CA B3 OR E F7CB 5F LD E,A F7CC F60A OR $0A F7CE 6F LD L,A F7CF 62 LD H,D F7D0 7E LD A,(HL) F7D1 23 INC HL F7D2 66 LD H,(HL) F7D3 6F LD L,A F7D4 2259F6 LD ($F659),HL F7D7 EB EX DE,HL F7D8 C9 RET F7D9 0E00 LD C,$00 F7DB 2152F6 LD HL,$F652 F7DE 71 LD (HL),C F7DF C9 RET F7E0 0C INC C F7E1 2154F6 LD HL,$F654 F7E4 71 LD (HL),C F7E5 C9 RET F7E6 ED4357F6 LD ($F657),BC F7EA C9 RET F7EB 79 LD A,C F7EC 3255F6 LD ($F655),A F7EF 2A59F6 LD HL,($F659) F7F2 4E LD C,(HL) F7F3 2153F6 LD HL,$F653 F7F6 3600 LD (HL),$00 F7F8 CB71 BIT 6,C F7FA 2808 JR Z,$F804 F7FC CB39 SRL C F7FE B9 CP C F7FF 3803 JR C,$F804 F801 91 SUB C F802 3601 LD (HL),$01 F804 6F LD L,A F805 2600 LD H,$00 F807 3A51F6 LD A,($F651) F80A E602 AND $02 F80C 2804 JR Z,$F812 F80E CB3D SRL L F810 CB3D SRL L F812 7A LD A,D F813 B3 OR E F814 C8 RET Z F815 19 ADD HL,DE F816 6E LD L,(HL) F817 2600 LD H,$00 F819 C9 RET F81A 2198FD LD HL,$FD98 F81D C9 RET F81E 2145F6 LD HL,$F645 F821 C9 RET F822 CD3AF8 CALL $F83A F825 C32066 JP $6620 F828 CD3AF8 CALL $F83A ; jumped from $F785 F82B C36766 JP $6667 ; jump to BLOCK#2 F82E CD3AF8 CALL $F83A F831 C3146E JP $6E14 F834 CD3AF8 CALL $F83A F837 C3106E JP $6E10 ; ########### SET ACCESS TO VRAM ########### F83A F3 DI F83B E1 POP HL ; HL=$F82B, this is called from $F828 above F83C 3A40F6 LD A,($F640) F83F CB77 BIT 6,A ; test 06 (DRAM#1/VRAM access) F841 2015 JR NZ,$F858 ; skip if VRAM access F843 3242F6 LD ($F642),A ; backup current Port C if not F846 F640 OR $40 ; set 06 for VRAM access F848 3240F6 LD ($F640),A ; save in Port C mirror F84B D3FE OUT ($FE),A ; set 06 in Port C F84D ED73EEFD LD ($FDEE),SP ; save stack pointer to ($FDEE) F851 31EEFD LD SP,$FDEE ; set stack at $FDEE F854 115AF8 LD DE,$F85A F857 D5 PUSH DE ; save $F85A on stack (RET will jump there, 3 lines below here) F858 FB EI F859 E9 JP (HL) ; jump back to $F82B and call $6667 in BLOCK#2 ; ########### SET ACCESS TO DRAM#1 ########### F85A F3 DI F85B 47 LD B,A ; backup A in B F85C EB EX DE,HL ; backup HL in DE F85D 3E40 LD A,$40 F85F 2142F6 LD HL,$F642 F862 A6 AND (HL) ; get value of bit 6 of ($F642) in A F863 2B DEC HL F864 2B DEC HL ; HL = $F640 F865 CBB6 RES 6,(HL) ; reset bit 6 of ($F640) F867 B6 OR (HL) ; A = ($F640) with value of bit 6 of ($F642) F868 77 LD (HL),A ; save it to ($F640) F869 D3FE OUT ($FE),A ; send to 8255 F86B EB EX DE,HL ; restore HL from DE F86C 78 LD A,B ; restore A from B F86D ED7BEEFD LD SP,($FDEE) ; restore initial stack position F871 FB EI F872 C9 RET ; ########### CPM_TO_COBRA ############# ; The BIOS BOOT function at $FE2D changes the address of BIOS BOOT in the jump table at $F600 ; to the address of this routine F873 F3 DI F874 210000 LD HL,$0000 F877 3EC1 LD A,$C1 F879 D3FE OUT ($FE),A ; set border to blue, 06 to "1" for VRAM access, SO to "1" F87B ED4F LD R,A ; set bit 7 of R to "1" for BASIC access in startup cfg F87D E9 JP (HL) ; change hw config to startup by setting PO="1" and start BOOT ROM ; ################### WBOOT (F87E) #################### F87E F3 DI F87F 3A40F6 LD A,($F640) ; A = 8255/Port C mirror F882 F6C0 OR $C0 ; set bit 6 & 7 F884 D3FE OUT ($FE),A ; set border to black, 06 to "1" for VRAM access, SO to "1" F886 310001 LD SP,$0100 ; set stack at $0100 F889 3EC3 LD A,$C3 ; opcode for JP... F88B 320000 LD ($0000),A ; ...stored at $0000 F88E 2103F6 LD HL,$F603 F891 220100 LD ($0001),HL ; set locations $0001-$0002 to entry point of BIOS WBOOT: $F603 F894 320500 LD ($0005),A ; opcode for JP stored at $0005 F897 2106E8 LD HL,$E806 F89A 220600 LD ($0006),HL ; set locations $0006-$0007 to entry point of BDOS: $E806 F89D 2190FD LD HL,$FD90 F8A0 1198FD LD DE,$FD98 F8A3 010800 LD BC,$0008 F8A6 EDB0 LDIR ; copy CTC Interrupt Vector Table at $FD90-$FD97 over to $FD98-$FD9F. When done, BC=$0000 DE=$FDA0 HL=$FD98 F8A8 ED5E IM 2 ; next, deal with 80CTC F8AA 7C LD A,H ; upper half of CTC interrupt table start address ($FD)... F8AB ED47 LD I,A ; ...is stored in register I (see Z80 docs) F8AD 7D LD A,L ; lower half of CTC interrupt table start address ($98)... F8AE D3E3 OUT ($E3),A ; ... is sent to CTC channel 0 ; int. vectors at (FD98-FD99) for CTC0, (FD9A-FD9B) for CTC1 ; (FD9C-FD9D) for CTC2, (FD9E-FD9F) for CTC3 ; CTC0...2 have CTC INT. ROUTINE #1 at $F987 (does nothing), ; CTC3 has CTC INT. ROUTINE #2 at $F8C9 F8B0 3EFF LD A,$FF ; control word for CTC0 on next line (Enable Interrupt, Counter Mode, Rising Edge, Time Const. Follows, Reset, Control). F8B2 D3E3 OUT ($E3),A ; write FF to CTC channel 0: set CTC0 to counter mode and enable CTC0 interrupts ; MEANING: Reset, Enable Interrupts for Channel 0, a Time Constant follows. F8B4 3E01 LD A,$01 ; time constant for CTC0 on next line: generate INT for each byte transferred from 8272 to µP F8B6 D3E3 OUT ($E3),A ; write 01 to CTC channel 0 ; MEANING: Time Constant byte (=01, for 1 byte read). F8B8 3E7B LD A,$7B ; data for CTC1+2 on next 2 lines: (Disable int, Counter Mode, Rising edge, No Time Const. Follows, Software Reset) ; MEANING: Disable interrupts F8BA D3EB OUT ($EB),A ; write 7B to CTC channel 1 (disable CTC1 interrupt) F8BC D3F3 OUT ($F3),A ; write 7B to CTC channel 2 (disable CTC2 interrupt) F8BE 3EFF LD A,$FF ; control word for CTC3 on next line (Enable Interrupt, Counter Mode, Rising Edge, Time Const. Follows, Reset, Control). F8C0 D3FB OUT ($FB),A ; write FF to CTC channel 3: set CTC3 to counter mode and enable CTC3 interrupts ; MEANING: Reset, Enable Interrupts for Channel 3, a Time Constant follows. F8C2 3E01 LD A,$01 ; time constant for CTC3 on next line F8C4 D3FB OUT ($FB),A ; write 01 to CTC channel 3 ; MEANING: Time Constant byte (=01, for 1 pulse of TRG3, the 20ms interrupt from mainboard). F8C6 FB EI F8C7 18FE JR $F8C7 ; continuous loop waiting for key press ; ######## CTC INT. ROUTINE #2 (F8C9) ####### F8C9 CD746F CALL $6F74 ; call 8272_RD to read & store command result bytes at (FDF0-FDF6) F8CC CDB66F CALL $6FB6 ; put 8272 in standby for future commands F8CF 2108F9 LD HL,$F908 F8D2 229EFD LD ($FD9E),HL ; set CTC3 interrupt routine addr to $F908 (see next routine below) F8D5 21FFFF LD HL,$FFFF F8D8 220AFC LD ($FC0A),HL F8DB 3E04 LD A,$04 F8DD 32086E LD ($6E08),A F8E0 AF XOR A F8E1 32076E LD ($6E07),A F8E4 1100E0 LD DE,$E000 F8E7 D5 PUSH DE F8E8 210078 LD HL,$7800 F8EB 010008 LD BC,$0800 F8EE EDB0 LDIR ; copy CCP (2KB) from $7800-$7FFF to $E000-$E7FF F8F0 216072 LD HL,$7260 F8F3 0E06 LD C,$06 F8F5 EDB0 LDIR ; copy $7260-$7265 to $E800-$E805 ($F9 $16 $00 $00 $00 $1A) F8F7 210400 LD HL,$0004 F8FA 4E LD C,(HL) ; C = default CP/M physical drv# F8FB 3A40F6 LD A,($F640) ; A = 8255/Port C mirror F8FE E6BF AND $BF ; reset bit 6 (06=0 for DRAM#1 access) F900 3240F6 LD ($F640),A ; save back to 8255/Port C mirror F903 D3FE OUT ($FE),A ; send to port C 8255 to get DRAM#1 access F905 FB EI F906 ED4D RETI ; ############### CTC3 INTERRUPT ROUTINE ################# F908 ED73CEFD LD ($FDCE),SP ; save current stack pointer to ($FDCE) F90C 31CEFD LD SP,$FDCE ; set stack at $FDCE F90F F5 PUSH AF F910 C5 PUSH BC F911 D5 PUSH DE F912 E5 PUSH HL F913 3B DEC SP F914 3B DEC SP F915 16FF LD D,$FF F917 214BF6 LD HL,$F64B F91A 35 DEC (HL) ; decrement ($F64B)=$19 F91B 200C JR NZ,$F929 ; skip if not zero -> ---> --->| F91D 3619 LD (HL),$19 ; ($F64B)=$19 initially | F91F 2B DEC HL ; HL=$F64A | F920 7E LD A,(HL) ; A=($F64A)=$00 initially | F921 23 INC HL ; HL=$F64B | F922 B7 OR A ; test A | F923 2804 JR Z,$F929 ; if A=0 skip --> ---> ---> --->| F925 11D36B LD DE,$6BD3 ; | F928 D5 PUSH DE ; save $6BD3 on stack | F929 23 INC HL ; <--- <--- <--- <--- <--- <----| F92A 7E LD A,(HL) ; A=($F64C)=$00 initially F92B B7 OR A ; test A F92C 2010 JR NZ,$F93E ; skip if not zero --> ---> ---> ---> ---> --->| F92E 01FE00 LD BC,$00FE ; | F931 ED78 IN A,(C) ; read port $FE (keyboard) | F933 2F CPL ; invert byte read | F934 E63F AND $3F ; filter out bits 6 & 7 | F936 23 INC HL ; HL=$F64D | F937 2014 JR NZ,$F94D ; if any key was pressed ---> ---> --->| | F939 3601 LD (HL),$01 ; ($F64D)=$01 | | F93B 23 INC HL ; HL=$F64E | | F93C 36FF LD (HL),$FF ; ($F64E)=$FF | | F93E 14 INC D ; <--- <--- <--- <--- <--- <--- <--- <--- <-----+ F93F 2015 JR NZ,$F956 ; if D!=0 jump -----> ---> --->| | | F941 D1 POP DE ; | | | F942 E1 POP HL ; | | | F943 D1 POP DE ; | | | F944 C1 POP BC ; | | | F945 F1 POP AF ; | | | F946 ED7BCEFD LD SP,($FDCE) ; | | | F94A FB EI ; | | | F94B ED4D RETI ; | | | ; | | | F94D 35 DEC (HL) ; < <--- <--- <--- <--- <--- <--- <-----| | F94E 20EE JR NZ,$F93E ; ----> ---> ---> ---> ---> ---> ---> ---> --->| F950 3605 LD (HL),$05 F952 11266C LD DE,$6C26 F955 D5 PUSH DE F956 3E79 LD A,$79 ; <--- <--- <--- <--- <--- <----| F958 D3FB OUT ($FB),A ; disable CTC3 interrupts F95A 2140F6 LD HL,$F640 F95D 7E LD A,(HL) F95E 23 INC HL F95F 77 LD (HL),A F960 2B DEC HL F961 F640 OR $40 ; set bit 6 F963 77 LD (HL),A F964 D3FE OUT ($FE),A ; set DRAM#1 access for CPU F966 FB EI F967 ED4D RETI F969 F3 DI F96A 2141F6 LD HL,$F641 F96D 3E40 LD A,$40 F96F A6 AND (HL) F970 2B DEC HL F971 CBB6 RES 6,(HL) F973 B6 OR (HL) F974 77 LD (HL),A F975 D3FE OUT ($FE),A F977 3EF9 LD A,$F9 F979 D3FB OUT ($FB),A F97B E1 POP HL F97C D1 POP DE F97D C1 POP BC F97E F1 POP AF F97F ED7BCEFD LD SP,($FDCE) F983 FB EI F984 C9 RET F985 EDA2 INI F987 FB EI ; ######## CTC INT. ROUTINE #1 (F987) ####### (this does nothing) F988 ED4D RETI F98A E5 PUSH HL F98B 2187F9 LD HL,$F987 F98E 2298FD LD ($FD98),HL F991 215BF6 LD HL,$F65B F994 36FF LD (HL),$FF F996 E1 POP HL F997 FB EI F998 ED4D RETI F99A F3 DI F99B 3A40F6 LD A,($F640) F99E E6BF AND $BF F9A0 D3FE OUT ($FE),A F9A2 EDB0 LDIR F9A4 F640 OR $40 F9A6 D3FE OUT ($FE),A F9A8 FB EI F9A9 C9 RET F9AA ED78 IN A,(C) F9AC C9 RET F9AD 76 HALT F9AE DBF5 IN A,($F5) F9B0 E620 AND $20 F9B2 C2ADF9 JP NZ,$F9AD F9B5 C9 RET F9B6 B7 OR A F9B7 3E79 LD A,$79 F9B9 2802 JR Z,$F9BD F9BB 3EF9 LD A,$F9 F9BD F3 DI F9BE D3FB OUT ($FB),A F9C0 FB EI F9C1 C9 RET F9C2 3A0300 LD A,($0003) F9C5 07 RLCA F9C6 3EFF LD A,$FF F9C8 D0 RET NC F9C9 DBFE IN A,($FE) F9CB E680 AND $80 F9CD C8 RET Z F9CE F6FF OR $FF F9D0 C9 RET F9D1 3A0300 LD A,($0003) F9D4 07 RLCA F9D5 D228F8 JP NC,$F828 F9D8 07 RLCA F9D9 DA12F6 JP C,$F612 F9DC CDC9F9 CALL $F9C9 F9DF 28FB JR Z,$F9DC F9E1 F3 DI F9E2 3A40F6 LD A,($F640) F9E5 E678 AND $78 F9E7 5F LD E,A F9E8 21CCFA LD HL,$FACC F9EB 46 LD B,(HL) F9EC 23 INC HL F9ED 3680 LD (HL),$80 F9EF 23 INC HL F9F0 79 LD A,C F9F1 2F CPL F9F2 0F RRCA F9F3 57 LD D,A F9F4 E687 AND $87 F9F6 B3 OR E F9F7 77 LD (HL),A F9F8 7A LD A,D F9F9 23 INC HL F9FA 10F6 DJNZ $F9F2 F9FC 3600 LD (HL),$00 F9FE 21CCFA LD HL,$FACC FA01 46 LD B,(HL) FA02 04 INC B FA03 04 INC B FA04 23 INC HL FA05 7E LD A,(HL) FA06 D3FE OUT ($FE),A FA08 23 INC HL FA09 3ACBFA LD A,($FACB) FA0C 4F LD C,A FA0D 110000 LD DE,$0000 FA10 CD84FA CALL $FA84 FA13 10F0 DJNZ $FA05 FA15 3A40F6 LD A,($F640) FA18 D3FE OUT ($FE),A FA1A F6FF OR $FF FA1C FB EI FA1D C9 RET FA1E CD27FA CALL $FA27 FA21 28FB JR Z,$FA1E FA23 3AD8FA LD A,($FAD8) FA26 C9 RET FA27 F3 DI FA28 3A40F6 LD A,($F640) FA2B CBFF SET 7,A FA2D D3FE OUT ($FE),A FA2F 0600 LD B,$00 FA31 DBFE IN A,($FE) FA33 07 RLCA FA34 DA41FA JP C,$FA41 FA37 10F8 DJNZ $FA31 FA39 3A40F6 LD A,($F640) FA3C D3FE OUT ($FE),A FA3E AF XOR A FA3F FB EI FA40 C9 RET FA41 21CCFA LD HL,$FACC FA44 46 LD B,(HL) FA45 04 INC B FA46 04 INC B FA47 23 INC HL FA48 110000 LD DE,$0000 FA4B 3ACBFA LD A,($FACB) FA4E 4F LD C,A FA4F DBFE IN A,($FE) FA51 77 LD (HL),A FA52 23 INC HL FA53 CD84FA CALL $FA84 FA56 10F0 DJNZ $FA48 FA58 3A40F6 LD A,($F640) FA5B D3FE OUT ($FE),A FA5D E6F8 AND $F8 FA5F 5F LD E,A FA60 2B DEC HL FA61 CB7E BIT 7,(HL) FA63 20D9 JR NZ,$FA3E FA65 21CCFA LD HL,$FACC FA68 46 LD B,(HL) FA69 23 INC HL FA6A CB7E BIT 7,(HL) FA6C 28D0 JR Z,$FA3E FA6E 0EFF LD C,$FF FA70 23 INC HL FA71 7E LD A,(HL) FA72 07 RLCA FA73 CB19 RR C FA75 E607 AND $07 FA77 B3 OR E FA78 D3FE OUT ($FE),A FA7A 23 INC HL FA7B 10F4 DJNZ $FA71 FA7D 79 LD A,C FA7E 2F CPL FA7F 32D8FA LD ($FAD8),A FA82 1891 JR $FA15 FA84 110000 LD DE,$0000 FA87 110000 LD DE,$0000 FA8A 110000 LD DE,$0000 FA8D 110000 LD DE,$0000 FA90 110000 LD DE,$0000 FA93 ED57 LD A,I FA95 ED57 LD A,I FA97 ED57 LD A,I FA99 0D DEC C FA9A C284FA JP NZ,$FA84 FA9D C9 RET FA9E 323FF6 LD ($F63F),A FAA1 47 LD B,A FAA2 E607 AND $07 FAA4 5F LD E,A FAA5 1600 LD D,$00 FAA7 21BFFA LD HL,$FABF FAAA 19 ADD HL,DE FAAB 7E LD A,(HL) FAAC 32CBFA LD ($FACB),A FAAF 78 LD A,B FAB0 E618 AND $18 FAB2 0F RRCA FAB3 0F RRCA FAB4 0F RRCA FAB5 5F LD E,A FAB6 21C7FA LD HL,$FAC7 FAB9 19 ADD HL,DE FABA 7E LD A,(HL) FABB 32CCFA LD ($FACC),A FABE C9 RET FABF FF DEFB $FF FAC0 7F DEFB $7F FAC1 3F DEFB $3F FAC2 1F DEFB $1F FAC3 0F DEFB $0F FAC4 07 DEFB $07 FAC5 03 DEFB $03 FAC6 01 DEFB $01 FAC7 05 DEFB $05 FAC8 06 DEFB $06 FAC9 07 DEFB $07 FACA 08 DEFB $08 FACB 00 DEFB $00 FACC 00 DEFB $00 FACD 00 DEFB $00 FACE 00 DEFB $00 FACF 00 DEFB $00 FAD0 00 DEFB $00 FAD1 00 DEFB $00 FAD2 00 DEFB $00 FAD3 00 DEFB $00 FAD4 00 DEFB $00 FAD5 00 DEFB $00 FAD6 00 DEFB $00 FAD7 00 DEFB $00 FAD8 00 DEFB $00 FAD9 00 DEFB $00 FADA 00 DEFB $00 FADB 00 DEFB $00 FADC 00 DEFB $00 FADD 00 DEFB $00 FADE 00 DEFB $00 FADF 00 DEFB $00 FAE0 00 DEFB $00 FAE1 00 DEFB $00 FAE2 00 DEFB $00 FAE3 00 DEFB $00 FAE4 00 DEFB $00 FAE5 00 DEFB $00 FAE6 00 DEFB $00 FAE7 00 DEFB $00 FAE8 00 DEFB $00 FAE9 00 DEFB $00 FAEA 00 DEFB $00 FAEB 00 DEFB $00 FAEC 00 DEFB $00 FAED 00 DEFB $00 FAEE 00 DEFB $00 FAEF 00 DEFB $00 FAF0 00 DEFB $00 FAF1 00 DEFB $00 FAF2 00 DEFB $00 FAF3 00 DEFB $00 FAF4 00 DEFB $00 FAF5 00 DEFB $00 FAF6 00 DEFB $00 FAF7 00 DEFB $00 FAF8 00 DEFB $00 FAF9 00 DEFB $00 FAFA 00 DEFB $00 FAFB 00 DEFB $00 FAFC 00 DEFB $00 FAFD 00 DEFB $00 FAFE 00 DEFB $00 FAFF 00 DEFB $00 FB00 F9 DEFB $F9 FB01 F6 DEFB $F6 FB02 00 DEFB $00 FB03 00 DEFB $00 FB04 00 DEFB $00 FB05 00 DEFB $00 FB06 00 DEFB $00 FB07 00 DEFB $00 FB08 80 DEFB $80 FB09 FB DEFB $FB FB0A EA DEFB $EA FB0B F6 DEFB $F6 FB0C 10 DEFB $10 FB0D FC DEFB $FC FB0E 90 DEFB $90 FB0F FC DEFB $FC FB10 F9 DEFB $F9 FB11 F6 DEFB $F6 FB12 00 DEFB $00 FB13 00 DEFB $00 FB14 00 DEFB $00 FB15 00 DEFB $00 FB16 00 DEFB $00 FB17 00 DEFB $00 FB18 80 DEFB $80 FB19 FB DEFB $FB FB1A EA DEFB $EA FB1B F6 DEFB $F6 FB1C 20 DEFB $20 FB1D FC DEFB $FC FB1E B0 DEFB $B0 FB1F FC DEFB $FC FB20 D9 DEFB $D9 FB21 F6 DEFB $F6 FB22 00 DEFB $00 FB23 00 DEFB $00 FB24 00 DEFB $00 FB25 00 DEFB $00 FB26 00 DEFB $00 FB27 00 DEFB $00 FB28 80 DEFB $80 FB29 FB DEFB $FB FB2A CA DEFB $CA FB2B F6 DEFB $F6 FB2C 30 DEFB $30 FB2D FC DEFB $FC FB2E D0 DEFB $D0 FB2F FC DEFB $FC FB30 D9 DEFB $D9 FB31 F6 DEFB $F6 FB32 00 DEFB $00 FB33 00 DEFB $00 FB34 00 DEFB $00 FB35 00 DEFB $00 FB36 00 DEFB $00 FB37 00 DEFB $00 FB38 80 DEFB $80 FB39 FB DEFB $FB FB3A CA DEFB $CA FB3B F6 DEFB $F6 FB3C 50 DEFB $50 FB3D FC DEFB $FC FB3E 10 DEFB $10 FB3F FD DEFB $FD FB40 00 DEFB $00 FB41 00 DEFB $00 FB42 00 DEFB $00 FB43 00 DEFB $00 FB44 00 DEFB $00 FB45 00 DEFB $00 FB46 00 DEFB $00 FB47 00 DEFB $00 FB48 80 DEFB $80 FB49 FB DEFB $FB FB4A 00 DEFB $00 FB4B 00 DEFB $00 FB4C 70 DEFB $70 FB4D FC DEFB $FC FB4E 50 DEFB $50 FB4F FD DEFB $FD FB50 77 DEFB $77 FB51 F6 DEFB $F6 FB52 00 DEFB $00 FB53 00 DEFB $00 FB54 00 DEFB $00 FB55 00 DEFB $00 FB56 00 DEFB $00 FB57 00 DEFB $00 FB58 80 DEFB $80 FB59 FB DEFB $FB FB5A 68 DEFB $68 FB5B F6 DEFB $F6 FB5C 70 DEFB $70 FB5D FC DEFB $FC FB5E 50 DEFB $50 FB5F FD DEFB $FD FB60 98 DEFB $98 FB61 F6 DEFB $F6 FB62 00 DEFB $00 FB63 00 DEFB $00 FB64 00 DEFB $00 FB65 00 DEFB $00 FB66 00 DEFB $00 FB67 00 DEFB $00 FB68 80 DEFB $80 FB69 FB DEFB $FB FB6A 89 DEFB $89 FB6B F6 DEFB $F6 FB6C 70 DEFB $70 FB6D FC DEFB $FC FB6E 50 DEFB $50 FB6F FD DEFB $FD FB70 B8 DEFB $B8 FB71 F6 DEFB $F6 FB72 00 DEFB $00 FB73 00 DEFB $00 FB74 00 DEFB $00 FB75 00 DEFB $00 FB76 00 DEFB $00 FB77 00 DEFB $00 FB78 80 DEFB $80 FB79 FB DEFB $FB FB7A A9 DEFB $A9 FB7B F6 DEFB $F6 FB7C 70 DEFB $70 FB7D FC DEFB $FC FB7E 50 DEFB $50 FB7F FD DEFB $FD FB80 00 DEFB $00 FB81 00 DEFB $00 FB82 00 DEFB $00 FB83 00 DEFB $00 FB84 00 DEFB $00 FB85 00 DEFB $00 FB86 00 DEFB $00 FB87 00 DEFB $00 FB88 00 DEFB $00 FB89 00 DEFB $00 FB8A 00 DEFB $00 FB8B 00 DEFB $00 FB8C 00 DEFB $00 FB8D 00 DEFB $00 FB8E 00 DEFB $00 FB8F 00 DEFB $00 FB90 00 DEFB $00 FB91 00 DEFB $00 FB92 00 DEFB $00 FB93 00 DEFB $00 FB94 00 DEFB $00 FB95 00 DEFB $00 FB96 00 DEFB $00 FB97 00 DEFB $00 FB98 00 DEFB $00 FB99 00 DEFB $00 FB9A 00 DEFB $00 FB9B 00 DEFB $00 FB9C 00 DEFB $00 FB9D 00 DEFB $00 FB9E 00 DEFB $00 FB9F 00 DEFB $00 FBA0 00 DEFB $00 FBA1 00 DEFB $00 FBA2 00 DEFB $00 FBA3 00 DEFB $00 FBA4 00 DEFB $00 FBA5 00 DEFB $00 FBA6 00 DEFB $00 FBA7 00 DEFB $00 FBA8 00 DEFB $00 FBA9 00 DEFB $00 FBAA 00 DEFB $00 FBAB 00 DEFB $00 FBAC 00 DEFB $00 FBAD 00 DEFB $00 FBAE 00 DEFB $00 FBAF 00 DEFB $00 FBB0 00 DEFB $00 FBB1 00 DEFB $00 FBB2 00 DEFB $00 FBB3 00 DEFB $00 FBB4 00 DEFB $00 FBB5 00 DEFB $00 FBB6 00 DEFB $00 FBB7 00 DEFB $00 FBB8 00 DEFB $00 FBB9 00 DEFB $00 FBBA 00 DEFB $00 FBBB 00 DEFB $00 FBBC 00 DEFB $00 FBBD 00 DEFB $00 FBBE 00 DEFB $00 FBBF 00 DEFB $00 FBC0 00 DEFB $00 FBC1 00 DEFB $00 FBC2 00 DEFB $00 FBC3 00 DEFB $00 FBC4 00 DEFB $00 FBC5 00 DEFB $00 FBC6 00 DEFB $00 FBC7 00 DEFB $00 FBC8 00 DEFB $00 FBC9 00 DEFB $00 FBCA 00 DEFB $00 FBCB 00 DEFB $00 FBCC 00 DEFB $00 FBCD 00 DEFB $00 FBCE 00 DEFB $00 FBCF 00 DEFB $00 FBD0 00 DEFB $00 FBD1 00 DEFB $00 FBD2 00 DEFB $00 FBD3 00 DEFB $00 FBD4 00 DEFB $00 FBD5 00 DEFB $00 FBD6 00 DEFB $00 FBD7 00 DEFB $00 FBD8 00 DEFB $00 FBD9 00 DEFB $00 FBDA 00 DEFB $00 FBDB 00 DEFB $00 FBDC 00 DEFB $00 FBDD 00 DEFB $00 FBDE 00 DEFB $00 FBDF 00 DEFB $00 FBE0 00 DEFB $00 FBE1 00 DEFB $00 FBE2 00 DEFB $00 FBE3 00 DEFB $00 FBE4 00 DEFB $00 FBE5 00 DEFB $00 FBE6 00 DEFB $00 FBE7 00 DEFB $00 FBE8 00 DEFB $00 FBE9 00 DEFB $00 FBEA 00 DEFB $00 FBEB 00 DEFB $00 FBEC 00 DEFB $00 FBED 00 DEFB $00 FBEE 00 DEFB $00 FBEF 00 DEFB $00 FBF0 00 DEFB $00 FBF1 00 DEFB $00 FBF2 00 DEFB $00 FBF3 00 DEFB $00 FBF4 00 DEFB $00 FBF5 00 DEFB $00 FBF6 00 DEFB $00 FBF7 00 DEFB $00 FBF8 00 DEFB $00 FBF9 00 DEFB $00 FBFA 00 DEFB $00 FBFB 00 DEFB $00 FBFC 00 DEFB $00 FBFD 00 DEFB $00 FBFE 00 DEFB $00 FBFF 00 DEFB $00 FC00 00 DEFB $00 ; (FC00) physical drv# for logical drv A: FC01 01 DEFB $01 ; (FC01) physical drv# for logical drv B: FC02 02 DEFB $02 ; (FC02) physical drv# for logical drv C: FC03 03 DEFB $03 ; (FC03) physical drv# for logical drv D: FC04 00 DEFB $00 ; (FC04) physical drv# for logical drv E: FC05 00 DEFB $00 ; (FC05) physical drv# for logical drv F: FC06 00 DEFB $00 ; (FC06) physical drv# for logical drv G: FC07 20 DEFB $20 ; (FC07) physical drv# for logical drv H: FC08 FF DEFB $FF FC09 FF DEFB $FF FC0A FF DEFB $FF FC0B FF DEFB $FF FC0C 00 DEFB $00 FC0D 00 DEFB $00 FC0E 00 DEFB $00 FC0F 00 DEFB $00 FC10 00 DEFB $00 FC11 00 DEFB $00 FC12 00 DEFB $00 FC13 00 DEFB $00 FC14 00 DEFB $00 FC15 00 DEFB $00 FC16 00 DEFB $00 FC17 00 DEFB $00 FC18 00 DEFB $00 FC19 00 DEFB $00 FC1A 00 DEFB $00 FC1B 00 DEFB $00 FC1C 00 DEFB $00 FC1D 00 DEFB $00 FC1E 00 DEFB $00 FC1F 00 DEFB $00 FC20 00 DEFB $00 FC21 00 DEFB $00 FC22 00 DEFB $00 FC23 00 DEFB $00 FC24 00 DEFB $00 FC25 00 DEFB $00 FC26 00 DEFB $00 FC27 00 DEFB $00 FC28 00 DEFB $00 FC29 00 DEFB $00 FC2A 00 DEFB $00 FC2B 00 DEFB $00 FC2C 00 DEFB $00 FC2D 00 DEFB $00 FC2E 00 DEFB $00 FC2F 00 DEFB $00 FC30 00 DEFB $00 FC31 00 DEFB $00 FC32 00 DEFB $00 FC33 00 DEFB $00 FC34 00 DEFB $00 FC35 00 DEFB $00 FC36 00 DEFB $00 FC37 00 DEFB $00 FC38 00 DEFB $00 FC39 00 DEFB $00 FC3A 00 DEFB $00 FC3B 00 DEFB $00 FC3C 00 DEFB $00 FC3D 00 DEFB $00 FC3E 00 DEFB $00 FC3F 00 DEFB $00 FC40 00 DEFB $00 FC41 00 DEFB $00 FC42 00 DEFB $00 FC43 00 DEFB $00 FC44 00 DEFB $00 FC45 00 DEFB $00 FC46 00 DEFB $00 FC47 00 DEFB $00 FC48 00 DEFB $00 FC49 00 DEFB $00 FC4A 00 DEFB $00 FC4B 00 DEFB $00 FC4C 00 DEFB $00 FC4D 00 DEFB $00 FC4E 00 DEFB $00 FC4F 00 DEFB $00 FC50 00 DEFB $00 FC51 00 DEFB $00 FC52 00 DEFB $00 FC53 00 DEFB $00 FC54 00 DEFB $00 FC55 00 DEFB $00 FC56 00 DEFB $00 FC57 00 DEFB $00 FC58 00 DEFB $00 FC59 00 DEFB $00 FC5A 00 DEFB $00 FC5B 00 DEFB $00 FC5C 00 DEFB $00 FC5D 00 DEFB $00 FC5E 00 DEFB $00 FC5F 00 DEFB $00 FC60 00 DEFB $00 FC61 00 DEFB $00 FC62 00 DEFB $00 FC63 00 DEFB $00 FC64 00 DEFB $00 FC65 00 DEFB $00 FC66 00 DEFB $00 FC67 00 DEFB $00 FC68 00 DEFB $00 FC69 00 DEFB $00 FC6A 00 DEFB $00 FC6B 00 DEFB $00 FC6C 00 DEFB $00 FC6D 00 DEFB $00 FC6E 00 DEFB $00 FC6F 00 DEFB $00 FC70 00 DEFB $00 FC71 00 DEFB $00 FC72 00 DEFB $00 FC73 00 DEFB $00 FC74 00 DEFB $00 FC75 00 DEFB $00 FC76 00 DEFB $00 FC77 00 DEFB $00 FC78 00 DEFB $00 FC79 00 DEFB $00 FC7A 00 DEFB $00 FC7B 00 DEFB $00 FC7C 00 DEFB $00 FC7D 00 DEFB $00 FC7E 00 DEFB $00 FC7F 00 DEFB $00 FC80 00 DEFB $00 FC81 00 DEFB $00 FC82 00 DEFB $00 FC83 00 DEFB $00 FC84 00 DEFB $00 FC85 00 DEFB $00 FC86 00 DEFB $00 FC87 00 DEFB $00 FC88 00 DEFB $00 FC89 00 DEFB $00 FC8A 00 DEFB $00 FC8B 00 DEFB $00 FC8C 00 DEFB $00 FC8D 00 DEFB $00 FC8E 00 DEFB $00 FC8F 00 DEFB $00 FC90 00 DEFB $00 FC91 00 DEFB $00 FC92 00 DEFB $00 FC93 00 DEFB $00 FC94 00 DEFB $00 FC95 00 DEFB $00 FC96 00 DEFB $00 FC97 00 DEFB $00 FC98 00 DEFB $00 FC99 00 DEFB $00 FC9A 00 DEFB $00 FC9B 00 DEFB $00 FC9C 00 DEFB $00 FC9D 00 DEFB $00 FC9E 00 DEFB $00 FC9F 00 DEFB $00 FCA0 00 DEFB $00 FCA1 00 DEFB $00 FCA2 00 DEFB $00 FCA3 00 DEFB $00 FCA4 00 DEFB $00 FCA5 00 DEFB $00 FCA6 00 DEFB $00 FCA7 00 DEFB $00 FCA8 00 DEFB $00 FCA9 00 DEFB $00 FCAA 00 DEFB $00 FCAB 00 DEFB $00 FCAC 00 DEFB $00 FCAD 00 DEFB $00 FCAE 00 DEFB $00 FCAF 00 DEFB $00 FCB0 00 DEFB $00 FCB1 00 DEFB $00 FCB2 00 DEFB $00 FCB3 00 DEFB $00 FCB4 00 DEFB $00 FCB5 00 DEFB $00 FCB6 00 DEFB $00 FCB7 00 DEFB $00 FCB8 00 DEFB $00 FCB9 00 DEFB $00 FCBA 00 DEFB $00 FCBB 00 DEFB $00 FCBC 00 DEFB $00 FCBD 00 DEFB $00 FCBE 00 DEFB $00 FCBF 00 DEFB $00 FCC0 00 DEFB $00 FCC1 00 DEFB $00 FCC2 00 DEFB $00 FCC3 00 DEFB $00 FCC4 00 DEFB $00 FCC5 00 DEFB $00 FCC6 00 DEFB $00 FCC7 00 DEFB $00 FCC8 00 DEFB $00 FCC9 00 DEFB $00 FCCA 00 DEFB $00 FCCB 00 DEFB $00 FCCC 00 DEFB $00 FCCD 00 DEFB $00 FCCE 00 DEFB $00 FCCF 00 DEFB $00 FCD0 00 DEFB $00 FCD1 00 DEFB $00 FCD2 00 DEFB $00 FCD3 00 DEFB $00 FCD4 00 DEFB $00 FCD5 00 DEFB $00 FCD6 00 DEFB $00 FCD7 00 DEFB $00 FCD8 00 DEFB $00 FCD9 00 DEFB $00 FCDA 00 DEFB $00 FCDB 00 DEFB $00 FCDC 00 DEFB $00 FCDD 00 DEFB $00 FCDE 00 DEFB $00 FCDF 00 DEFB $00 FCE0 00 DEFB $00 FCE1 00 DEFB $00 FCE2 00 DEFB $00 FCE3 00 DEFB $00 FCE4 00 DEFB $00 FCE5 00 DEFB $00 FCE6 00 DEFB $00 FCE7 00 DEFB $00 FCE8 00 DEFB $00 FCE9 00 DEFB $00 FCEA 00 DEFB $00 FCEB 00 DEFB $00 FCEC 00 DEFB $00 FCED 00 DEFB $00 FCEE 00 DEFB $00 FCEF 00 DEFB $00 FCF0 00 DEFB $00 FCF1 00 DEFB $00 FCF2 00 DEFB $00 FCF3 00 DEFB $00 FCF4 00 DEFB $00 FCF5 00 DEFB $00 FCF6 00 DEFB $00 FCF7 00 DEFB $00 FCF8 00 DEFB $00 FCF9 00 DEFB $00 FCFA 00 DEFB $00 FCFB 00 DEFB $00 FCFC 00 DEFB $00 FCFD 00 DEFB $00 FCFE 00 DEFB $00 FCFF 00 DEFB $00 FD00 00 DEFB $00 FD01 00 DEFB $00 FD02 00 DEFB $00 FD03 00 DEFB $00 FD04 00 DEFB $00 FD05 00 DEFB $00 FD06 00 DEFB $00 FD07 00 DEFB $00 FD08 00 DEFB $00 FD09 00 DEFB $00 FD0A 00 DEFB $00 FD0B 00 DEFB $00 FD0C 00 DEFB $00 FD0D 00 DEFB $00 FD0E 00 DEFB $00 FD0F 00 DEFB $00 FD10 00 DEFB $00 FD11 00 DEFB $00 FD12 00 DEFB $00 FD13 00 DEFB $00 FD14 00 DEFB $00 FD15 00 DEFB $00 FD16 00 DEFB $00 FD17 00 DEFB $00 FD18 00 DEFB $00 FD19 00 DEFB $00 FD1A 00 DEFB $00 FD1B 00 DEFB $00 FD1C 00 DEFB $00 FD1D 00 DEFB $00 FD1E 00 DEFB $00 FD1F 00 DEFB $00 FD20 00 DEFB $00 FD21 00 DEFB $00 FD22 00 DEFB $00 FD23 00 DEFB $00 FD24 00 DEFB $00 FD25 00 DEFB $00 FD26 00 DEFB $00 FD27 00 DEFB $00 FD28 00 DEFB $00 FD29 00 DEFB $00 FD2A 00 DEFB $00 FD2B 00 DEFB $00 FD2C 00 DEFB $00 FD2D 00 DEFB $00 FD2E 00 DEFB $00 FD2F 00 DEFB $00 FD30 00 DEFB $00 FD31 00 DEFB $00 FD32 00 DEFB $00 FD33 00 DEFB $00 FD34 00 DEFB $00 FD35 00 DEFB $00 FD36 00 DEFB $00 FD37 00 DEFB $00 FD38 00 DEFB $00 FD39 00 DEFB $00 FD3A 00 DEFB $00 FD3B 00 DEFB $00 FD3C 00 DEFB $00 FD3D 00 DEFB $00 FD3E 00 DEFB $00 FD3F 00 DEFB $00 FD40 00 DEFB $00 FD41 00 DEFB $00 FD42 00 DEFB $00 FD43 00 DEFB $00 FD44 00 DEFB $00 FD45 00 DEFB $00 FD46 00 DEFB $00 FD47 00 DEFB $00 FD48 00 DEFB $00 FD49 00 DEFB $00 FD4A 00 DEFB $00 FD4B 00 DEFB $00 FD4C 00 DEFB $00 FD4D 00 DEFB $00 FD4E 00 DEFB $00 FD4F 00 DEFB $00 FD50 00 DEFB $00 FD51 00 DEFB $00 FD52 00 DEFB $00 FD53 00 DEFB $00 FD54 00 DEFB $00 FD55 00 DEFB $00 FD56 00 DEFB $00 FD57 00 DEFB $00 FD58 00 DEFB $00 FD59 00 DEFB $00 FD5A 00 DEFB $00 FD5B 00 DEFB $00 FD5C 00 DEFB $00 FD5D 00 DEFB $00 FD5E 00 DEFB $00 FD5F 00 DEFB $00 FD60 00 DEFB $00 FD61 00 DEFB $00 FD62 00 DEFB $00 FD63 00 DEFB $00 FD64 00 DEFB $00 FD65 00 DEFB $00 FD66 00 DEFB $00 FD67 00 DEFB $00 FD68 00 DEFB $00 FD69 00 DEFB $00 FD6A 00 DEFB $00 FD6B 00 DEFB $00 FD6C 00 DEFB $00 FD6D 00 DEFB $00 FD6E 00 DEFB $00 FD6F 00 DEFB $00 FD70 00 DEFB $00 FD71 00 DEFB $00 FD72 00 DEFB $00 FD73 00 DEFB $00 FD74 00 DEFB $00 FD75 00 DEFB $00 FD76 00 DEFB $00 FD77 00 DEFB $00 FD78 00 DEFB $00 FD79 00 DEFB $00 FD7A 00 DEFB $00 FD7B 00 DEFB $00 FD7C 00 DEFB $00 FD7D 00 DEFB $00 FD7E 00 DEFB $00 FD7F 00 DEFB $00 FD80 00 DEFB $00 FD81 00 DEFB $00 FD82 00 DEFB $00 FD83 00 DEFB $00 FD84 00 DEFB $00 FD85 00 DEFB $00 FD86 00 DEFB $00 FD87 00 DEFB $00 FD88 00 DEFB $00 FD89 00 DEFB $00 FD8A 00 DEFB $00 FD8B 00 DEFB $00 FD8C 00 DEFB $00 FD8D 00 DEFB $00 FD8E 00 DEFB $00 FD8F 00 DEFB $00 FD90 87 DEFB $87 FD91 F9 DEFB $F9 FD92 87 DEFB $87 FD93 F9 DEFB $F9 FD94 87 DEFB $87 FD95 F9 DEFB $F9 FD96 C9 DEFB $C9 FD97 F8 DEFB $F8 FD98 87 DEFB $87 ; \ CTC0 Interrupt Vector FD99 F9 DEFB $F9 ; / (Int. routine at $F987) FD9A 87 DEFB $87 ; \ CTC1 Interrupt Vector FD9B F9 DEFB $F9 ; / (Int. routine at $F987) FD9C 87 DEFB $87 ; \ CTC2 Interrupt Vector FD9D F9 DEFB $F9 ; / (Int. routine at $F987) FD9E 87 DEFB $87 ; \ CTC3 Interrupt Vector FD9F F9 DEFB $F9 ; / (Int. routine at $F987) FDA0 00 DEFB $00 FDA1 00 DEFB $00 FDA2 00 DEFB $00 FDA3 00 DEFB $00 FDA4 00 DEFB $00 FDA5 00 DEFB $00 FDA6 00 DEFB $00 FDA7 00 DEFB $00 FDA8 00 DEFB $00 FDA9 00 DEFB $00 FDAA 00 DEFB $00 FDAB 00 DEFB $00 FDAC 00 DEFB $00 FDAD 00 DEFB $00 FDAE 00 DEFB $00 FDAF 00 DEFB $00 FDB0 00 DEFB $00 FDB1 00 DEFB $00 FDB2 00 DEFB $00 FDB3 00 DEFB $00 FDB4 00 DEFB $00 FDB5 00 DEFB $00 FDB6 00 DEFB $00 FDB7 00 DEFB $00 FDB8 00 DEFB $00 FDB9 00 DEFB $00 FDBA 00 DEFB $00 FDBB 00 DEFB $00 FDBC 00 DEFB $00 FDBD 00 DEFB $00 FDBE 00 DEFB $00 FDBF 00 DEFB $00 FDC0 00 DEFB $00 FDC1 00 DEFB $00 FDC2 00 DEFB $00 FDC3 00 DEFB $00 FDC4 69 DEFB $69 FDC5 F9 DEFB $F9 FDC6 00 DEFB $00 FDC7 00 DEFB $00 FDC8 00 DEFB $00 FDC9 00 DEFB $00 FDCA 00 DEFB $00 FDCB 00 DEFB $00 FDCC 00 DEFB $00 FDCD 00 DEFB $00 FDCE 00 DEFB $00 FDCF 00 DEFB $00 FDD0 00 DEFB $00 FDD1 00 DEFB $00 FDD2 00 DEFB $00 FDD3 00 DEFB $00 FDD4 00 DEFB $00 FDD5 00 DEFB $00 FDD6 00 DEFB $00 FDD7 00 DEFB $00 FDD8 00 DEFB $00 FDD9 00 DEFB $00 FDDA 00 DEFB $00 FDDB 00 DEFB $00 FDDC 00 DEFB $00 FDDD 00 DEFB $00 FDDE 00 DEFB $00 FDDF 00 DEFB $00 FDE0 00 DEFB $00 FDE1 00 DEFB $00 FDE2 00 DEFB $00 FDE3 00 DEFB $00 FDE4 00 DEFB $00 FDE5 00 DEFB $00 FDE6 00 DEFB $00 FDE7 00 DEFB $00 FDE8 00 DEFB $00 FDE9 00 DEFB $00 FDEA 00 DEFB $00 FDEB 00 DEFB $00 FDEC 00 DEFB $00 FDED 00 DEFB $00 FDEE 00 DEFB $00 FDEF 00 DEFB $00 ; ##### 8272 command result bytes FDF0 00 DEFB $00 ; ST0 FDF1 00 DEFB $00 ; ST1 FDF2 00 DEFB $00 ; ST2 FDF3 00 DEFB $00 ; C FDF4 00 DEFB $00 ; H FDF5 00 DEFB $00 ; R FDF6 00 DEFB $00 ; N FDF7 00 DEFB $00 ; ##### 8272 command args FDF8 00 DEFB $00 ; head+drive FDF9 00 DEFB $00 ; C | N FDFA 00 DEFB $00 ; H | SC FDFB 00 DEFB $00 ; R | GPL FDFC 00 DEFB $00 ; N | D FDFD 00 DEFB $00 ; EOT FDFE 00 DEFB $00 ; GPL FDFF 00 DEFB $00 ; DTL | STP FE00 1B DEFB $1B ; ESC \ control sequence to erase screen FE01 30 DEFB $30 ; '0' / and position cursor top left FE02 0E DEFB $0E ; control char to activate inverse video FE03 20 DEFB $20 ; " " FE04 35 DEFB $35 ; "5" FE05 38 DEFB $38 ; "8" FE06 6B DEFB $6B ; "k" FE07 20 DEFB $20 ; " " FE08 43 DEFB $43 ; "C" FE09 6F DEFB $6F ; "o" FE0A 42 DEFB $42 ; "B" FE0B 72 DEFB $72 ; "r" FE0C 61 DEFB $61 ; "a" FE0D 2D DEFB $2D ; "-" FE0E 44 DEFB $44 ; "D" FE0F 4F DEFB $4F ; "O" FE10 53 DEFB $53 ; "S" FE11 20 DEFB $20 ; " " FE12 32 DEFB $32 ; "2" FE13 2E DEFB $2E ; "." FE14 32 DEFB $32 ; "2" FE15 20 DEFB $20 ; " " FE16 20 DEFB $20 ; " " FE17 20 DEFB $20 ; " " FE18 50 DEFB $50 FE19 48 DEFB $48 FE1A 4F DEFB $4F FE1B 45 DEFB $45 FE1C 4E DEFB $4E FE1D 53 DEFB $53 FE1E 4F DEFB $4F FE1F 46 DEFB $46 FE20 54 DEFB $54 FE21 20 DEFB $20 FE22 FF DEFB $FF FE23 31 DEFB $31 FE24 39 DEFB $39 FE25 39 DEFB $39 FE26 32 DEFB $32 FE27 20 DEFB $20 FE28 0F DEFB $0F FE29 00 DEFB $00 FE2A C39A70 JP $709A FE2D ED5E IM 2 ; ################### BOOT (FE2D) #################### FE2F 3EFD LD A,$FD ; upper half of CTC interrupt table start address (FD)... FE31 ED47 LD I,A ; ...is stored in register I (see Z80 docs) FE33 3E98 LD A,$98 ; lower half of CTC interrupt table start address (98)... FE35 D3E3 OUT ($E3),A ; ...is sent to CTC channel 0 ; MEANING: Interrupt Vector being used by all 4 channels!! ; Interrupt Vector = 10011cc0 where cc is the CTC channel. ; requesting the interrupt. So vector for CTC0 = 98, CTC1 = 9A, CTC2 = 9C, CTC3 = 9E ; The upper half of addr table pointer is FD (stored in register I above). ; So the vector table is at FD98 (CTC0), FD9A (CTC1), FD9C (CTC2), FD9E (CTC3). ; At start all channels use Interrupt routine at $F987 which does nothing FE37 3EFF LD A,$FF ; data for CTC0 on next line: set CTC0 to counter mode and enable CTC0 interrupts FE39 D3E3 OUT ($E3),A ; write FF to CTC channel 0 (Enable Interrupt, Counter Mode, Prescaler=256, ; Rising Edge, CLK/TRG Pulse Starts Timer, Time Const. Follows, Reset, Control). ; MEANING: Reset, Enable Interrupts for Channel 0, a Time Constant follows. FE3B 3E01 LD A,$01 ; time constant for CTC0 on next line: generate INT for each byte transferred from 8272 to µP FE3D D3E3 OUT ($E3),A ; write 01 to CTC channel 0 ; MEANING: Time Constant byte (=01, for 1 byte read). FE3F 3E7B LD A,$7B ; control word for CTC channels 1-3 in next 3 instructions (Disable Interrupt, Counter Mode, Prescaler=256, Rising Edge, Pulse Trigger, No Time Const. Follows, Reset, Control) FE41 D3EB OUT ($EB),A ; write 7B to CTC channel 1 ; MEANING: Disable Channel 1 interrupts, reset channel. FE43 D3F3 OUT ($F3),A ; write 7B to CTC channel 2 ; MEANING: Disable Channel 2 interrupts, reset channel. FE45 D3FB OUT ($FB),A ; write 7B to CTC channel 3 ; MEANING: Disable Channel 3 interrupts, reset channel. FE47 013072 LD BC,$7230 FE4A 1173F8 LD DE,$F873 FE4D 2101F6 LD HL,$F601 FE50 73 LD (HL),E ; ($F601) = $73 FE51 23 INC HL ; HL = $F602 FE52 72 LD (HL),D ; ($F602) = $F8 -> this changes the address of BIOS function 00 (BOOT) to $F873 = CPM_TO_COBRA FE53 23 INC HL ; HL = $F603... FE54 E5 PUSH HL ; ...saved on stack (RET will go to BIOS WBOOT) FE55 C5 PUSH BC ; BC = $7230 also saved on stack (RET will jump to $7230) FE56 3A40F6 LD A,($F640) ; A = 8255/Port C mirror (initial value $40 with O6=1 -> VRAM CPU access) FE59 D3FE OUT ($FE),A ; set access to VRAM instead of DRAM#1 FE5B C37170 JP $7071 ; jump to BLOCK#3 FE5E 00 DEFB $00 FE5F 00 DEFB $00 FE60 00 DEFB $00 FE61 00 DEFB $00 FE62 00 DEFB $00 FE63 00 DEFB $00 FE64 00 DEFB $00 FE65 00 DEFB $00 FE66 00 DEFB $00 FE67 00 DEFB $00 FE68 00 DEFB $00 FE69 00 DEFB $00 FE6A 00 DEFB $00 FE6B 00 DEFB $00 FE6C 00 DEFB $00 FE6D 00 DEFB $00 FE6E 00 DEFB $00 FE6F 00 DEFB $00 FE70 00 DEFB $00 FE71 00 DEFB $00 FE72 00 DEFB $00 FE73 00 DEFB $00 FE74 00 DEFB $00 FE75 00 DEFB $00 FE76 00 DEFB $00 FE77 00 DEFB $00 FE78 00 DEFB $00 FE79 00 DEFB $00 FE7A 00 DEFB $00 FE7B 00 DEFB $00 FE7C 00 DEFB $00 FE7D 00 DEFB $00 FE7E 00 DEFB $00 FE7F 00 DEFB $00 FE80 00 DEFB $00 FE81 00 DEFB $00 FE82 00 DEFB $00 FE83 00 DEFB $00 FE84 00 DEFB $00 FE85 00 DEFB $00 FE86 00 DEFB $00 FE87 00 DEFB $00 FE88 00 DEFB $00 FE89 00 DEFB $00 FE8A 00 DEFB $00 FE8B 00 DEFB $00 FE8C 00 DEFB $00 FE8D 00 DEFB $00 FE8E 00 DEFB $00 FE8F 00 DEFB $00 FE90 00 DEFB $00 FE91 00 DEFB $00 FE92 00 DEFB $00 FE93 00 DEFB $00 FE94 00 DEFB $00 FE95 00 DEFB $00 FE96 00 DEFB $00 FE97 00 DEFB $00 FE98 00 DEFB $00 FE99 00 DEFB $00 FE9A 00 DEFB $00 FE9B 00 DEFB $00 FE9C 00 DEFB $00 FE9D 00 DEFB $00 FE9E 00 DEFB $00 FE9F 00 DEFB $00 FEA0 00 DEFB $00 FEA1 00 DEFB $00 FEA2 00 DEFB $00 FEA3 00 DEFB $00 FEA4 00 DEFB $00 FEA5 00 DEFB $00 FEA6 00 DEFB $00 FEA7 00 DEFB $00 FEA8 00 DEFB $00 FEA9 00 DEFB $00 FEAA 00 DEFB $00 FEAB 00 DEFB $00 FEAC 00 DEFB $00 FEAD 00 DEFB $00 FEAE 00 DEFB $00 FEAF 00 DEFB $00 FEB0 00 DEFB $00 FEB1 00 DEFB $00 FEB2 00 DEFB $00 FEB3 00 DEFB $00 FEB4 00 DEFB $00 FEB5 00 DEFB $00 FEB6 00 DEFB $00 FEB7 00 DEFB $00 FEB8 00 DEFB $00 FEB9 00 DEFB $00 FEBA 00 DEFB $00 FEBB 00 DEFB $00 FEBC 00 DEFB $00 FEBD 00 DEFB $00 FEBE 00 DEFB $00 FEBF 00 DEFB $00 FEC0 00 DEFB $00 FEC1 00 DEFB $00 FEC2 00 DEFB $00 FEC3 00 DEFB $00 FEC4 00 DEFB $00 FEC5 00 DEFB $00 FEC6 00 DEFB $00 FEC7 00 DEFB $00 FEC8 00 DEFB $00 FEC9 00 DEFB $00 FECA 00 DEFB $00 FECB 00 DEFB $00 FECC 00 DEFB $00 FECD 00 DEFB $00 FECE 00 DEFB $00 FECF 00 DEFB $00 FED0 00 DEFB $00 FED1 00 DEFB $00 FED2 00 DEFB $00 FED3 00 DEFB $00 FED4 00 DEFB $00 FED5 00 DEFB $00 FED6 00 DEFB $00 FED7 00 DEFB $00 FED8 00 DEFB $00 FED9 00 DEFB $00 FEDA 00 DEFB $00 FEDB 00 DEFB $00 FEDC 00 DEFB $00 FEDD 00 DEFB $00 FEDE 00 DEFB $00 FEDF 00 DEFB $00 FEE0 00 DEFB $00 FEE1 00 DEFB $00 FEE2 00 DEFB $00 FEE3 00 DEFB $00 FEE4 00 DEFB $00 FEE5 00 DEFB $00 FEE6 00 DEFB $00 FEE7 00 DEFB $00 FEE8 00 DEFB $00 FEE9 00 DEFB $00 FEEA 00 DEFB $00 FEEB 00 DEFB $00 FEEC 00 DEFB $00 FEED 00 DEFB $00 FEEE 00 DEFB $00 FEEF 00 DEFB $00 FEF0 00 DEFB $00 FEF1 00 DEFB $00 FEF2 00 DEFB $00 FEF3 00 DEFB $00 FEF4 00 DEFB $00 FEF5 00 DEFB $00 FEF6 00 DEFB $00 FEF7 00 DEFB $00 FEF8 00 DEFB $00 FEF9 00 DEFB $00 FEFA 00 DEFB $00 FEFB 00 DEFB $00 FEFC 00 DEFB $00 FEFD 00 DEFB $00 FEFE 00 DEFB $00 FEFF 00 DEFB $00 FF00 00 DEFB $00 FF01 00 DEFB $00 FF02 00 DEFB $00 FF03 00 DEFB $00 FF04 00 DEFB $00 FF05 00 DEFB $00 FF06 00 DEFB $00 FF07 00 DEFB $00 FF08 00 DEFB $00 FF09 00 DEFB $00 FF0A 00 DEFB $00 FF0B 00 DEFB $00 FF0C 00 DEFB $00 FF0D 00 DEFB $00 FF0E 00 DEFB $00 FF0F 00 DEFB $00 FF10 00 DEFB $00 FF11 00 DEFB $00 FF12 00 DEFB $00 FF13 00 DEFB $00 FF14 00 DEFB $00 FF15 00 DEFB $00 FF16 00 DEFB $00 FF17 00 DEFB $00 FF18 00 DEFB $00 FF19 00 DEFB $00 FF1A 00 DEFB $00 FF1B 00 DEFB $00 FF1C 00 DEFB $00 FF1D 00 DEFB $00 FF1E 00 DEFB $00 FF1F 00 DEFB $00 FF20 00 DEFB $00 FF21 00 DEFB $00 FF22 00 DEFB $00 FF23 00 DEFB $00 FF24 00 DEFB $00 FF25 00 DEFB $00 FF26 00 DEFB $00 FF27 00 DEFB $00 FF28 00 DEFB $00 FF29 00 DEFB $00 FF2A 00 DEFB $00 FF2B 00 DEFB $00 FF2C 00 DEFB $00 FF2D 00 DEFB $00 FF2E 00 DEFB $00 FF2F 00 DEFB $00 FF30 00 DEFB $00 FF31 00 DEFB $00 FF32 00 DEFB $00 FF33 00 DEFB $00 FF34 00 DEFB $00 FF35 00 DEFB $00 FF36 00 DEFB $00 FF37 00 DEFB $00 FF38 00 DEFB $00 FF39 00 DEFB $00 FF3A 00 DEFB $00 FF3B 00 DEFB $00 FF3C 00 DEFB $00 FF3D 00 DEFB $00 FF3E 00 DEFB $00 FF3F 00 DEFB $00 FF40 00 DEFB $00 FF41 00 DEFB $00 FF42 00 DEFB $00 FF43 00 DEFB $00 FF44 00 DEFB $00 FF45 00 DEFB $00 FF46 00 DEFB $00 FF47 00 DEFB $00 FF48 00 DEFB $00 FF49 00 DEFB $00 FF4A 00 DEFB $00 FF4B 00 DEFB $00 FF4C 00 DEFB $00 FF4D 00 DEFB $00 FF4E 00 DEFB $00 FF4F 00 DEFB $00 FF50 00 DEFB $00 FF51 00 DEFB $00 FF52 00 DEFB $00 FF53 00 DEFB $00 FF54 00 DEFB $00 FF55 00 DEFB $00 FF56 00 DEFB $00 FF57 00 DEFB $00 FF58 00 DEFB $00 FF59 00 DEFB $00 FF5A 00 DEFB $00 FF5B 00 DEFB $00 FF5C 00 DEFB $00 FF5D 00 DEFB $00 FF5E 00 DEFB $00 FF5F 00 DEFB $00 FF60 00 DEFB $00 FF61 00 DEFB $00 FF62 00 DEFB $00 FF63 00 DEFB $00 FF64 00 DEFB $00 FF65 00 DEFB $00 FF66 00 DEFB $00 FF67 00 DEFB $00 FF68 00 DEFB $00 FF69 00 DEFB $00 FF6A 00 DEFB $00 FF6B 00 DEFB $00 FF6C 00 DEFB $00 FF6D 00 DEFB $00 FF6E 00 DEFB $00 FF6F 00 DEFB $00 FF70 00 DEFB $00 FF71 00 DEFB $00 FF72 00 DEFB $00 FF73 00 DEFB $00 FF74 00 DEFB $00 FF75 00 DEFB $00 FF76 00 DEFB $00 FF77 00 DEFB $00 FF78 00 DEFB $00 FF79 00 DEFB $00 FF7A 00 DEFB $00 FF7B 00 DEFB $00 FF7C 00 DEFB $00 FF7D 00 DEFB $00 FF7E 00 DEFB $00 FF7F 00 DEFB $00 FF80 00 DEFB $00 FF81 00 DEFB $00 FF82 00 DEFB $00 FF83 00 DEFB $00 FF84 00 DEFB $00 FF85 00 DEFB $00 FF86 00 DEFB $00 FF87 00 DEFB $00 FF88 00 DEFB $00 FF89 00 DEFB $00 FF8A 00 DEFB $00 FF8B 00 DEFB $00 FF8C 00 DEFB $00 FF8D 00 DEFB $00 FF8E 00 DEFB $00 FF8F 00 DEFB $00 FF90 00 DEFB $00 FF91 00 DEFB $00 FF92 00 DEFB $00 FF93 00 DEFB $00 FF94 00 DEFB $00 FF95 00 DEFB $00 FF96 00 DEFB $00 FF97 00 DEFB $00 FF98 00 DEFB $00 FF99 00 DEFB $00 FF9A 00 DEFB $00 FF9B 00 DEFB $00 FF9C 00 DEFB $00 FF9D 00 DEFB $00 FF9E 00 DEFB $00 FF9F 00 DEFB $00 FFA0 00 DEFB $00 FFA1 00 DEFB $00 FFA2 00 DEFB $00 FFA3 00 DEFB $00 FFA4 00 DEFB $00 FFA5 00 DEFB $00 FFA6 00 DEFB $00 FFA7 00 DEFB $00 FFA8 00 DEFB $00 FFA9 00 DEFB $00 FFAA 00 DEFB $00 FFAB 00 DEFB $00 FFAC 00 DEFB $00 FFAD 00 DEFB $00 FFAE 00 DEFB $00 FFAF 00 DEFB $00 FFB0 00 DEFB $00 FFB1 00 DEFB $00 FFB2 00 DEFB $00 FFB3 00 DEFB $00 FFB4 00 DEFB $00 FFB5 00 DEFB $00 FFB6 00 DEFB $00 FFB7 00 DEFB $00 FFB8 00 DEFB $00 FFB9 00 DEFB $00 FFBA 00 DEFB $00 FFBB 00 DEFB $00 FFBC 00 DEFB $00 FFBD 00 DEFB $00 FFBE 00 DEFB $00 FFBF 00 DEFB $00 FFC0 00 DEFB $00 FFC1 00 DEFB $00 FFC2 00 DEFB $00 FFC3 00 DEFB $00 FFC4 00 DEFB $00 FFC5 00 DEFB $00 FFC6 00 DEFB $00 FFC7 00 DEFB $00 FFC8 00 DEFB $00 FFC9 00 DEFB $00 FFCA 00 DEFB $00 FFCB 00 DEFB $00 FFCC 00 DEFB $00 FFCD 00 DEFB $00 FFCE 00 DEFB $00 FFCF 00 DEFB $00 FFD0 00 DEFB $00 FFD1 00 DEFB $00 FFD2 00 DEFB $00 FFD3 00 DEFB $00 FFD4 00 DEFB $00 FFD5 00 DEFB $00 FFD6 00 DEFB $00 FFD7 00 DEFB $00 FFD8 00 DEFB $00 FFD9 00 DEFB $00 FFDA 00 DEFB $00 FFDB 00 DEFB $00 FFDC 00 DEFB $00 FFDD 00 DEFB $00 FFDE 00 DEFB $00 FFDF 00 DEFB $00 FFE0 00 DEFB $00 FFE1 00 DEFB $00 FFE2 00 DEFB $00 FFE3 00 DEFB $00 FFE4 00 DEFB $00 FFE5 00 DEFB $00 FFE6 00 DEFB $00 FFE7 00 DEFB $00 FFE8 00 DEFB $00 FFE9 00 DEFB $00 FFEA 00 DEFB $00 FFEB 00 DEFB $00 FFEC 00 DEFB $00 FFED 00 DEFB $00 FFEE 00 DEFB $00 FFEF 00 DEFB $00 FFF0 00 DEFB $00 FFF1 00 DEFB $00 FFF2 00 DEFB $00 FFF3 00 DEFB $00 FFF4 00 DEFB $00 FFF5 00 DEFB $00 FFF6 00 DEFB $00 FFF7 00 DEFB $00 FFF8 00 DEFB $00 FFF9 00 DEFB $00 FFFA 00 DEFB $00 FFFB 00 DEFB $00 FFFC 00 DEFB $00 FFFD 00 DEFB $00 FFFE 00 DEFB $00 FFFF 00 DEFB $00