;********************************************* ; PRO-80 MONITOR ; 1981 PROTEC ;********************************************* ; Z80 CPU clock 2MHz ; ROM 4KB -> $0000 - $0FFF ; RAM 2KB -> $1000 - $17FF ;----------------------------------------------------- ; Z80 PIO in/out $40 - $43 ; Keyboard input $44 - $47 - 4x6 matrica ; Display digit $48 - $4B ; Display segment $4C - $4F ;============================================================== ; Vector addresse for "restart" instructions RST 8 to RST 56 ;============================================================== RST8 EQu $13BB RST16 EQu $13BE RST24 EQu $13C1 RST32 EQu $13C4 RST40 EQu $13C7 RST48 EQu $13CA RST56 EQu $13CD ORG $0000 ;============================================================== ; Initialization ;============================================================== LD SP,$13BA ; 0000 31BA13 1.. LD HL,$13D0 ; 0003 21D013 !.. JR Lb0 ; 0006 1803 .. JP RST8 ; 0008 C3BB13 ... Lb0: LD B,$30 ; 000B 0630 .0 NOP ; 000D 00 . JR Lb2 ; 000E 1803 .. JP RST16 ; 0010 C3BE13 ... Lb2: LD A,$00 ; 0013 3E00 >. Lb6: LD (HL),A ; 0015 77 w JR Lb4 ; 0016 1803 .. JP RST24 ; 0018 C3C113 ... Lb4: INC HL ; 001B 23 # DJNZ Lb6 ; 001C 10F7 .. JR Lb7 ; 001E 1803 .. JP RST32 ; 0020 C3C413 ... Lb7: LD A,$13 ; 0023 3E13 >. NOP ; 0025 00 . JR Lb9 ; 0026 1803 .. JP RST40 ; 0028 C3C713 ... Lb9: LD ($13E8),A ; 002B 32E813 2.. JR Lb11 ; 002E 1803 .. JP RST48 ; 0030 C3CA13 ... Lb11: LD A,$A0 ; 0033 3EA0 >. NOP ; 0035 00 . JR Lb13 ; 0036 1803 .. JP RST56 ; 0038 C3CD13 ... Lb13: LD ($13F4),A ; 003B 32F413 2.. ;============================================================== ; Examine and change the content of memory location ;============================================================== MEX: CALL MTBL ; 003E CD7600 .v. LD A,$54 ; 0041 3E54 >T LD ($13E6),A ; 0043 32E613 2.. LD B,$DF ; 0046 06DF .. LD C,$00 ; 0048 0E00 .. LD D,C ; 004A 51 Q LD E,C ; 004B 59 Y MEX1: CALL LECDEC ; 004C CD8700 ... Read and decode keyboard LD A,C ; 004F 79 y ADD A,$00 ; 0050 C600 .. JR NZ,Lb17 ; 0052 200E . BIT 2,B ; 0054 CB50 .P JR NZ,Lb18 ; 0056 2002 . LD D,$01 ; 0058 1601 .. Lb18: BIT 1,B ; 005A CB48 .H JR NZ,Lb19 ; 005C 2002 . LD B,$DF ; 005E 06DF .. Lb19: JR Lb23 ; 0060 180B .x Lb17: BIT 7,B ; 0062 CB78 .x JR Lb21 ; 0064 1803 .. ;-------------------------------------------------------------------------------- ;NMI: JP SST ; 0066 C3A202 ... ;-------------------------------------------------------------------------------- Lb21: JR NZ,Lb23 ; 0069 2002 . LD B,$FD ; 006B 06FD .. Lb23: LD A,$00 ; 006D 3E00 >. CALL CHART ; 006F CD3D01 .=. RRC B ; 0072 CB08 .. JR MEX1 ; 0074 18D6 .. ;============================================================== ; Buffer digit content is reset ;============================================================== MTBL: PUSH AF ; 0076 F5 . PUSH HL ; 0077 E5 . LD B,$06 ; 0078 0606 .. LD A,$00 ; 007A 3E00 >. LD HL,$13E6 ; 007C 21E613 !.. Lb26: LD (HL),A ; 007F 77 w DEC L ; 0080 2D - DEC B ; 0081 05 . JR NZ,Lb26 ; 0082 20FB . POP HL ; 0084 E1 . POP AF ; 0085 F1 . RET ; 0086 C9 . ;============================================================== ; Read and decode keyboard ;============================================================== LECDEC: PUSH BC ; 0087 C5 . PUSH HL ; 0088 E5 . Lb34: LD HL,$13E6 ; 0089 21E613 . LD A,$DF ; 008C 3EDF >. Lb35: LD ($13E0),A ; 008E 32E013 2.. LD C,$00 ; 0091 0E00 .. OUT ($48),A ; 0093 D348 .H Loop32: IN A,($44) ; 0095 DB44 .D NOP ; 0097 00 . AND $0F ; 0098 E60F .. BIT 0,C ; 009A CB41 .A JR NZ,Lb28 ; 009C 2003 . LD ($13DF),A ; 009E 32DF13 2.. Lb28: CP $0F ; 00A1 FE0F .. JR Z,Lb29 ; 00A3 280B (. LD C,$01 ; 00A5 0E01 .. LD B,$20 ; 00A7 0620 . Lb31: CALL DEL ; 00A9 CD3301 .3. DJNZ Lb31 ; 00AC 10FB .. JR Loop32 ; 00AE 18E5 .. Lb29: BIT 0,C ; 00B0 CB41 .A JR NZ,Lb33 ; 00B2 2015 . LD A,(HL) ; 00B4 7E ~ OUT ($4C),A ; 00B5 D34C .L CALL DEL ; 00B7 CD3301 .3. LD A,$00 ; 00BA 3E00 >. OUT ($4C),A ; 00BC D34C .L DEC L ; 00BE 2D - LD A,($13E0) ; 00BF 3AE013 :.. BIT 0,A ; 00C2 CB47 .G JR Z,Lb34 ; 00C4 28C3 (. RRCA ; 00C6 0F . JR Lb35 ; 00C7 18C5 .. Lb33: POP HL ; 00C9 E1 . POP BC ; 00CA C1 . INC SP ; 00CB 33 3 INC SP ; 00CC 33 3 LD A,($13E0) ; 00CD 3AE013 :.. BIT 0,A ; 00D0 CB47 .G JR NZ,Lb36 ; 00D2 2012 . LD A,($13DF) ; 00D4 3ADF13 :.. BIT 0,A ; 00D7 CB47 .G JR NZ,Lb37 ; 00D9 2003 . JP CARE ; 00DB C38303 ... ? CARE Lb37: BIT 1,A ; 00DE CB4F .O JP NZ,EXEC ; 00E0 C25402 .T. ? Single Step EXEC JP CAW ; 00E3 C31303 ... ? CAW Lb36: BIT 1,A ; 00E6 CB4F .O JR NZ,Lb41 ; 00E8 2019 . LD A,($13DF) ; 00EA 3ADF13 :.. BIT 0,A ; 00ED CB47 .G JR NZ,Lb42 ; 00EF 2003 . JP EXEC ; 00F1 C35402 .T. ? EXEC Lb42: BIT 1,A ; 00F4 CB4F .O JR NZ,Lb43 ; 00F6 2003 . JP NEXT ; 00F8 C37401 .t. ? NEXT Lb43: BIT 2,A ; 00FB CB57 .W JP NZ,MEX ; 00FD C23E00 .>. ? MEX JP REX ; 0100 C3D001 ... ? REX Lb41: DEC SP ; 0103 3B ; DEC SP ; 0104 3B ; PUSH BC ; 0105 C5 . CALL CONV ; 0106 CD2401 .$. RLC A ; 0109 CB07 .. RLC A ; 010B CB07 .. PUSH AF ; 010D F5 . LD A,($13DF) ; 010E 3ADF13 :.. CALL CONV ; 0111 CD2401 .$. LD B,A ; 0114 47 G POP AF ; 0115 F1 . ADD A,B ; 0116 80 . ADD A,$D8 ; 0117 C6D8 .. PUSH HL ; 0119 E5 . LD L,A ; 011A 6F o LD H,$03 ; 011B 2603 &. LD A,(HL) ; 011D 7E ~ POP HL ; 011E E1 . LD ($13DE),A ; 011F 32DE13 2.. POP BC ; 0122 C1 . RET ; 0123 C9 . CONV: PUSH BC ; 0124 C5 . LD B,A ; 0125 47 G LD A,$00 ; 0126 3E00 >. Lb49: BIT 0,B ; 0128 CB40 .@ JR NZ,Lb48 ; 012A 2002 . POP BC ; 012C C1 . RET ; 012D C9 . Lb48: RRC B ; 012E CB08 .. INC A ; 0130 3C < JR Lb49 ; 0131 18F5 .. ;============================================================== ; Delay routine ;============================================================== DEL: PUSH BC ; 0133 C5 . LD B,$F8 ; 0134 06F8 .. Lb50: DJNZ Lb50 ; 0136 10FE .. DEC B ; 0138 05 . Lb51: DJNZ Lb51 ; 0139 10FE .. POP BC ; 013B C1 . RET ; 013C C9 . ;============================================================== ; The content of the current key is transcoded ; and transfered to the corresponding buffer memory ;============================================================== CHART: PUSH DE ; 013D D5 . PUSH HL ; 013E E5 . PUSH AF ; 013F F5 . Lb53: LD HL,$13D0 ; 0140 21D013 !.. LD A,B ; 0143 78 x CALL CONV ; 0144 CD2401 .$. ADD A,L ; 0147 85 . LD L,A ; 0148 6F o LD A,($13DE) ; 0149 3ADE13 :.. AND $0F ; 014C E60F .. LD (HL),A ; 014E 77 w ADD A,$F0 ; 014F C6F0 .. LD E,A ; 0151 5F _ LD D,$03 ; 0152 1603 .. LD A,$11 ; 0154 3E11 >. ADD A,L ; 0156 85 . LD L,A ; 0157 6F o LD A,(DE) ; 0158 1A . LD (HL),A ; 0159 77 w POP AF ; 015A F1 . CP $00 ; 015B FE00 .. JR Z,Lb52 ; 015D 2812 (. DEC A ; 015F 3D = PUSH AF ; 0160 F5 . LD A,($13DE) ; 0161 3ADE13 :.. AND $F0 ; 0164 E6F0 .. RRCA ; 0166 0F . RRCA ; 0167 0F . RRCA ; 0168 0F . RRCA ; 0169 0F . LD ($13DE),A ; 016A 32DE13 2.. RLC B ; 016D CB00 .. JR Lb53 ; 016F 18CF .. Lb52: POP HL ; 0171 E1 . POP DE ; 0172 D1 . RET ; 0173 C9 . ;============================================================== ; Display and change memory location content ;============================================================== NEXT: BIT 0,E ; 0174 CB43 .C JP NZ,NEXT1 ; 0176 C20202 ... BIT 0,D ; 0179 CB42 .B JP Z,MEX1 ; 017B CA4C00 .L. LD IX,$13D4 ; 017E DD21D413 .!.. CALL LECDON ; 0182 CDC101 ... LD H,A ; 0185 67 g LD IX,$13D2 ; 0186 DD21D213 .!.. CALL LECDON ; 018A CDC101 ... LD L,A ; 018D 6F o LD B,$FE ; 018E 06FE .. BIT 0,C ; 0190 CB41 .A JR Z,Lb56 ; 0192 281F (. LD IX,$13D0 ; 0194 DD21D013 .!.. CALL LECDON ; 0198 CDC101 ... LD (HL),A ; 019B 77 w INC HL ; 019C 23 # LD B,$FB ; 019D 06FB .. LD A,L ; 019F 7D } Lb58: LD ($13DE),A ; 01A0 32DE13 2.. LD A,$01 ; 01A3 3E01 >. CALL CHART ; 01A5 CD3D01 .=. RLC B ; 01A8 CB00 .. BIT 6,B ; 01AA CB70 .p JR Z,Lb57 ; 01AC 2803 (. LD A,H ; 01AE 7C | JR Lb58 ; 01AF 18EF .. Lb57: LD B,$FE ; 01B1 06FE .. Lb56: LD A,(HL) ; 01B3 7E ~ LD ($13DE),A ; 01B4 32DE13 2.. LD A,$01 ; 01B7 3E01 >. CALL CHART ; 01B9 CD3D01 .=. LD C,$01 ; 01BC 0E01 .. JP MEX1 ; 01BE C34C00 .L. ;============================================================== ; Generate a single byte transfered to the accumulator ;============================================================== LECDON: PUSH HL ; 01C1 E5 . LD A,(IX+$01) ; 01C2 DD7E01 .~. RRCA ; 01C5 0F . RRCA ; 01C6 0F . RRCA ; 01C7 0F . RRCA ; 01C8 0F . LD H,A ; 01C9 67 g LD A,(IX+$00) ; 01CA DD7E00 .~. OR H ; 01CD B4 . POP HL ; 01CE E1 . RET ; 01CF C9 . ;============================================================== ; Read and change content of registers ;============================================================== REX: CALL MTBL ; 01D0 CD7600 .v. LD A,$50 ; 01D3 3E50 >P LD ($13E6),A ; 01D5 32E613 2.. LD B,$DF ; 01D8 06DF .. LD E,$01 ; 01DA 1E01 .. LD C,$00 ; 01DC 0E00 .. LD D,$55 ; 01DE 1655 .U Lb62: CALL LECDEC ; 01E0 CD8700 ... BIT 0,C ; 01E3 CB41 .A JR Z,Lb59 ; 01E5 280A (. RRC B ; 01E7 CB08 .. BIT 7,B ; 01E9 CB78 .x JR NZ,Lb60 ; 01EB 2002 . LD B,$FD ; 01ED 06FD .. Lb60: JR Lb61 ; 01EF 180A .. Lb59: LD A,($13DF) ; 01F1 3ADF13 :.. CP $0E ; 01F4 FE0E .. JR Z,Lb62 ; 01F6 28E8 (. LD ($13E7),A ; 01F8 32E713 2.. Lb61: LD A,$00 ; 01FB 3E00 >. CALL CHART ; 01FD CD3D01 .=. JR Lb62 ; 0200 18DE .. ;============================================================== ; Display and change register contents ;============================================================== NEXT1: LD A,($13E6) ; 0202 3AE613 :.. CP $50 ; 0205 FE50 .P JP Z,Lb62 ; 0207 CAE001 ... BIT 0,C ; 020A CB41 .A JR Z,Lb63 ; 020C 2827 (' LD IX,$13D0 ; 020E DD21D013 .!.. CALL LECDON ; 0212 CDC101 ... LD (HL),A ; 0215 77 w RLC D ; 0216 CB02 .. BIT 0,D ; 0218 CB42 .B JR Z,Lb64 ; 021A 2806 (. LD A,L ; 021C 7D } SUB $0C ; 021D D60C .. LD L,A ; 021F 6F o JR Lb65 ; 0220 181B .. Lb64: LD A,$0C ; 0222 3E0C >. ADD A,L ; 0224 85 . LD L,A ; 0225 6F o LD A,($13E7) ; 0226 3AE713 :.. BIT 1,A ; 0229 CB4F .O JR Z,Lb66 ; 022B 2804 (. LD A,$77 ; 022D 3E77 >w JR Lb67 ; 022F 180E .. Lb66: LD A,$40 ; 0231 3E40 >@ JR Lb67 ; 0233 180A .. Lb63: LD A,($13DE) ; 0235 3ADE13 :.. ADD A,$E4 ; 0238 C6E4 .. LD L,A ; 023A 6F o LD H,$13 ; 023B 2613 &. Lb65: LD A,$00 ; 023D 3E00 >. Lb67: LD ($13E3),A ; 023F 32E313 2.. LD B,$FE ; 0242 06FE .. LD A,(HL) ; 0244 7E ~ LD ($13DE),A ; 0245 32DE13 2.. LD A,$01 ; 0248 3E01 >. CALL CHART ; 024A CD3D01 .=. RRC B ; 024D CB08 .. LD C,$01 ; 024F 0E01 .. JP Lb62 ; 0251 C3E001 ... ;============================================================== ; Program execute ;============================================================== EXEC: LD B,$04 ; 0254 0604 .. LD IX,$13E8 ; 0256 DD21E813 .!.. Lb70: LD H,(IX+$00) ; 025A DD6600 .f. LD L,(IX+$0C) ; 025D DD6E0C .n. BIT 2,B ; 0260 CB50 .P JR Z,Lb68 ; 0262 2803 (. LD SP,HL ; 0264 F9 . JR Lb69 ; 0265 1801 .. Lb68: PUSH HL ; 0267 E5 . Lb69: INC IX ; 0268 DD23 .# DJNZ Lb70 ; 026A 10EE .. Lb72: LD H,(IX+$01) ; 026C DD6601 .f. LD L,(IX+$00) ; 026F DD6E00 .n. PUSH HL ; 0272 E5 . LD H,(IX+$02) ; 0273 DD6602 .f. LD L,(IX+$07) ; 0276 DD6E07 .n. PUSH HL ; 0279 E5 . LD H,(IX+$03) ; 027A DD6603 .f. LD L,(IX+$04) ; 027D DD6E04 .n. PUSH HL ; 0280 E5 . LD H,(IX+$05) ; 0281 DD6605 .f. LD L,(IX+$06) ; 0284 DD6E06 .n. PUSH HL ; 0287 E5 . INC B ; 0288 04 . BIT 1,B ; 0289 CB48 .H JR NZ,Lb71 ; 028B 2006 . LD IX,$13F8 ; 028D DD21F813 .!.. JR Lb72 ; 0291 18D9 .. Lb71: POP DE ; 0293 D1 . POP BC ; 0294 C1 . POP AF ; 0295 F1 . POP HL ; 0296 E1 . EX AF,A'F' ; 0297 08 . EXX ; 0298 D9 . POP DE ; 0299 D1 . POP BC ; 029A C1 . POP AF ; 029B F1 . POP HL ; 029C E1 . POP IY ; 029D FDE1 .. POP IX ; 029F DDE1 .. RET ; 02A1 C9 . ;============================================================== ; Single step execute ;============================================================== SST: LD ($13EC),HL ; 02A2 22EC13 ".. LD HL,$13EE ; 02A5 21EE13 !.. Lb74: LD (HL),A ; 02A8 77 w INC HL ; 02A9 23 # LD (HL),B ; 02AA 70 p INC HL ; 02AB 23 # LD (HL),C ; 02AC 71 q INC HL ; 02AD 23 # LD (HL),D ; 02AE 72 r INC HL ; 02AF 23 # LD (HL),E ; 02B0 73 s INC HL ; 02B1 23 # PUSH AF ; 02B2 F5 . POP DE ; 02B3 D1 . LD (HL),E ; 02B4 73 s LD A,L ; 02B5 7D } CP $F3 ; 02B6 FEF3 .. JR NZ,Lb73 ; 02B8 200A . EX AF,A'F' ; 02BA 08 . EXX ; 02BB D9 . LD ($13F8),HL ; 02BC 22F813 ".. LD HL,$13FA ; 02BF 21FA13 !.. JR Lb74 ; 02C2 18E4 .. Lb73: PUSH IY ; 02C4 FDE5 .. LD IY,$13E8 ; 02C6 FD21E813 .!.. POP HL ; 02CA E1 . LD (IY+$03),H ; 02CB FD7403 .t. LD (IY+$0F),L ; 02CE FD750F .u. PUSH IX ; 02D1 DDE5 .. POP HL ; 02D3 E1 . LD (IY+$02),H ; 02D4 FD7402 .t. LD (IY+$0E),L ; 02D7 FD750E .u. POP HL ; 02DA E1 . LD (IY+$01),H ; 02DB FD7401 .t. LD (IY+$0D),L ; 02DE FD750D .u. LD HL,$00 ; 02E1 210000 !.. ADD HL,SP ; 02E4 39 9 LD (IY+$00),H ; 02E5 FD7400 .t. LD (IY+$0C),L ; 02E8 FD750C .u. EX AF,A'F' ; 02EB 08 . EXX ; 02EC D9 . LD B,$FE ; 02ED 06FE .. LD A,($13EE) ; 02EF 3AEE13 :.. Lb76: LD ($13DE),A ; 02F2 32DE13 2.. LD A,$01 ; 02F5 3E01 >. CALL CHART ; 02F7 CD3D01 .=. RLC B ; 02FA CB00 .. BIT 2,B ; 02FC CB50 .P JR NZ,Lb75 ; 02FE 2005 . LD A,($13F5) ; 0300 3AF513 :.. JR Lb76 ; 0303 18ED .. Lb75: BIT 4,B ; 0305 CB60 .` JR NZ,Lb77 ; 0307 2005 . LD A,($13E9) ; 0309 3AE913 :.. JR Lb76 ; 030C 18E4 .. Lb77: CALL LECDEC ; 030E CD8700 ... JR Lb77 ; 0311 18FB .. ;============================================================== ; Cassette tape write ;============================================================== CAW: LD E,$00 ; 0313 1E00 .. LD B,$FF ; 0315 06FF .. Lb79: LD A,$00 ; 0317 3E00 >. CALL Lb78 ; 0319 CD4A03 .J. DJNZ Lb79 ; 031C 10F9 .. LD HL,($13DC) ; 031E 2ADC13 *.. LD A,H ; 0321 7C | CALL Lb78 ; 0322 CD4A03 .J. LD A,L ; 0325 7D } CALL Lb78 ; 0326 CD4A03 .J. INC HL ; 0329 23 # LD BC,$1000 ; 032A 010010 ... Lb81: PUSH HL ; 032D E5 . SBC HL,BC ; 032E ED42 .B POP HL ; 0330 E1 . JR Z,Lb80 ; 0331 2807 (. LD A,(BC) ; 0333 0A . CALL Lb78 ; 0334 CD4A03 .J. INC BC ; 0337 03 . JR Lb81 ; 0338 18F3 .. Lb80: LD A,E ; 033A 7B { CALL Lb78 ; 033B CD4A03 .J. LD B,$80 ; 033E 0680 .. Lb82: LD A,$00 ; 0340 3E00 >. CALL Lb78 ; 0342 CD4A03 .J. DJNZ Lb82 ; 0345 10F9 .. JP MEX ; 0347 C33E00 .>. ;============================================================== ; Test bits to be recorded, generates protocol: 0-byte-0 ;============================================================== Lb78: PUSH BC ; 034A C5 . LD B,$09 ; 034B 0609 .. Lb87: LD D,$00 ; 034D 1600 .. Lb86: CALL GENFREQ ; 034F CD6803 .h. DJNZ Lb84 ; 0352 1007 .. LD D,$00 ; 0354 1600 .. CALL GENFREQ ; 0356 CD6803 .h. POP BC ; 0359 C1 . RET ; 035A C9 . Lb84: BIT 7,A ; 035B CB7F .. JR Z,Lb85 ; 035D 2806 (. INC E ; 035F 1C . LD D,$01 ; 0360 1601 .. RLCA ; 0362 07 . JR Lb86 ; 0363 18EA .. Lb85: RLCA ; 0365 07 . JR Lb87 ; 0366 18E5 .. ;============================================================== ; Generate 1200Hz for "0" and 2400Hz for "1" ;============================================================== GENFREQ: PUSH AF ; 0368 F5 . PUSH BC ; 0369 C5 . BIT 0,D ; 036A CB42 .B JR Z,Lb88 ; 036C 2804 (. LD A,$AA ; 036E 3EAA >. JR Lb89 ; 0370 1802 .. Lb88: LD A,$99 ; 0372 3E99 >. Lb89: LD B,$10 ; 0374 0610 .. Lb91: OUT ($48),A ; 0376 D348 .H LD C,$18 ; 0378 0E18 .. Lb90: DEC C ; 037A 0D . JR NZ,Lb90 ; 037B 20FD . RLCA ; 037D 07 . DJNZ Lb91 ; 037E 10F6 .. POP BC ; 0380 C1 . POP AF ; 0381 F1 . RET ; 0382 C9 . ;============================================================== ; Cassette read ;============================================================== CARE: LD E,$00 ; 0383 1E00 .. LD BC,$1000 ; 0385 010010 ... LD D,$01 ; 0388 1601 .. CALL LECFOR ; 038A CDAA03 ... LD H,A ; 038D 67 g CALL LECFOR ; 038E CDAA03 ... LD L,A ; 0391 6F o INC HL ; 0392 23 # Lb93: CALL LECFOR ; 0393 CDAA03 ... LD (BC),A ; 0396 02 . INC BC ; 0397 03 . PUSH HL ; 0398 E5 . SBC HL,BC ; 0399 ED42 .B POP HL ; 039B E1 . JR NZ,Lb93 ; 039C 20F5 . CALL LECFOR ; 039E CDAA03 ... CP E ; 03A1 BB . JR NZ,Lb94 ; 03A2 2003 . JP MEX ; 03A4 C33E00 .>. Lb94: JP REX ; 03A7 C3D001 ... ;============================================================== ; Byte read ;============================================================== LECFOR: PUSH BC ; 03AA C5 . LD B,$09 ; 03AB 0609 .. LD C,$00 ; 03AD 0E00 .. Lb95: IN A,($44) ; 03AF DB44 .D BIT 5,A ; 03B1 CB6F .o JR Z,Lb95 ; 03B3 28FA (. CALL DEL ; 03B5 CD3301 .3. BIT 4,A ; 03B8 CB67 .g JR Z,Lb96 ; 03BA 280D (. INC E ; 03BC 1C . BIT 0,D ; 03BD CB42 .B JR Z,Lb97 ; 03BF 2804 (. SRL D ; 03C1 CB3A .: LD B,$05 ; 03C3 0605 .. Lb97: LD A,$01 ; 03C5 3E01 >. JR Lb98 ; 03C7 1806 .. Lb96: BIT 0,D ; 03C9 CB42 .B JR NZ,Lb95 ; 03CB 20E2 . LD A,$00 ; 03CD 3E00 >. Lb98: OR C ; 03CF B1 . DJNZ Lb99 ; 03D0 1005 .. CALL DEL ; 03D2 CD3301 .3. POP BC ; 03D5 C1 . RET ; 03D6 C9 . Lb99: SLA A ; 03D7 CB27 .' LD C,A ; 03D9 4F O JR Lb95 ; 03DA 18D3 .. ;============================================================== ; Look up table ;============================================================== ORG $03E0 DS 03 07 0B 0F 02 06 0A 0E 01 05 09 0D 00 04 08 0C DS 3F 06 5B 4F 66 6D 7D 07 7F 67 77 7C 39 5E 79 71