;----------------------------------------------------- ; Z80 DEV KIT ; http://retro.hansotten.nl/z80/ ;----------------------------------------------------- ; Z80 CPU clock 2MHz ; ROM 2KB -> $0000 - $07FF ; RAM 2KB -> $1000 - $17FF ;----------------------------------------------------- ; Z80 PIO in/out $00 - $03 ; Z80 CTC 0,1,2,3 $10 - $13 ; Z80 CTC ch3-10ms $13 ; out display $20 - $25 - ICM7218C (or ICM7218D) (2 data + 4 adr) ; in keyboard $20 - $23 - 4x7 matrica ; Casete rec,load $30 ; Set NMI-gen $32 ; Reset NMI-gen $33 ;-------------------------------------------------------------------------------- ;LABEL INSTR. PARAMETER(s) ADR/OPCODE ASCII Comment ;-------------------------------------------------------------------------------- .ORG $0000 NOP ; 0000 00 LD HL,$1000 ; 0001 210010 !.. LD B,$30 ; 0004 0630 .0 Blank MON RAM SUB A ; 0006 97 . Loop0: LD (HL),A ; 0007 77 w INC HL ; 0008 23 # DJNZ Loop0 ; 0009 10FC .. LD HL,$1004 ; 000B 210410 !.. LD ($101E),HL ; 000E 221E10 ".. Set User SP LD SP,$1008 ; 0011 310810 1.. Set MON SP OUT ($32),A ; 0014 D332 .2 Set NMI-gen JR _Start_ ; 0016 1849 .I ;-------------------------------------------------------------------------------- EX (SP),HL ; 0018 E3 . User RESTART OUT ($32),A ; 0019 D332 .2 Set NMI-gen DEC HL ; 001B 2B + adr DF EX (SP),HL ; 001C E3 . RET ; 001D C9 . -> NMI NOP ; 001E 00 . NOP ; 001F 00 . ;-------------------------------------------------------------------------------- EX (SP),HL ; 0020 E3 . Restart E7 DEC HL ; 0021 2B + adr break PUSH AF ; 0022 F5 . H SER break LD A,($102C) ; 0023 3A2C10 :,. data in mem LD (HL),A ; 0026 77 w POP AF ; 0027 F1 . PUSH HL ; 0028 E5 . LD HL,$00 ; 0029 210000 !.. reset break adr LD ($102A),HL ; 002C 222A10 "*. OUT ($32),A ; 002F D332 .2 Set NMI-gen POP HL ; 0031 E1 . EX (SP),HL ; 0032 E3 . RET ; 0033 C9 . -> NMI NOP ; 0034 00 . NOP ; 0036 00 . NOP ; 0037 00 . ;-------------------------------------------------------------------------------- JP Lb2 ; 0038 C33010 .0. IM in ram 1030H ;-------------------------------------------------------------------------------- display_data: SUB A ; 003B 97 . LD C,$20 ; 003C 0E20 . display adr 20H LD B,$02 ; 003E 0602 .. 8bit Display SUB Loop3: RRD ; 0040 ED67 .g OUT (C),A ; 0042 ED79 .y INC C ; 0044 0C . DJNZ Loop3 ; 0045 10F9 .. RRD ; 0047 ED67 .g RET ; 0049 C9 . ;-------------------------------------------------------------------------------- display_adr: SUB A ; 004A 97 . display adr 22H LD C,$22 ; 004B 0E22 ." LD D,$02 ; 004D 1602 .. Loop5: LD B,$02 ; 004F 0602 .. Loop4: RRD ; 0051 ED67 .g OUT (C),A ; 0053 ED79 .y 16bit display SUB INC C ; 0055 0C . DJNZ Loop4 ; 0056 10F9 .. RRD ; 0058 ED67 .g INC HL ; 005A 23 # DEC D ; 005B 15 . JR NZ,Loop5 ; 005C 20F1 . DEC HL ; 005E 2B + DEC HL ; 005F 2B + RET ; 0060 C9 . ;-------------------------------------------------------------------------------- ;-------------------------------------------------------------------------------- _Start_: LD A,$08 ; 0061 3E08 >. stop rec OUT ($30),A ; 0063 D330 .0 NOP ; 0065 00 . -> NMI ;-------------------------------------------------------------------------------- _MNI_: PUSH AF ; 0066 F5 . save AF LD A,($102F) ; 0067 3A2F10 :/. NMI gen mask CP $00 ; 006A FE00 .. reset? JR NZ,Lb6 ; 006C 2004 . POP AF ; 006E F1 . POP AF ; 006F F1 . JR Lb7 ; 0070 1822 ." Lb6: POP AF ; 0072 F1 . EX (SP),HL ; 0073 E3 . LD ($1020),HL ; 0074 222010 " . PC EX (SP),HL ; 0077 E3 . INC SP ; 0078 33 3 INC SP ; 0079 33 3 LD ($101E),SP ; 007A ED731E10 .s.. SP LD SP,$101E ; 007E 311E10 1.. mon stack PUSH IX ; 0081 DDE5 .. save reg PUSH IY ; 0083 FDE5 .. EXX ; 0085 D9 . EX AF,A'F' ; 0086 08 . save reg PUSH AF ; 0087 F5 . PUSH BC ; 0088 C5 . PUSH DE ; 0089 D5 . PUSH HL ; 008A E5 . EXX ; 008B D9 . EX AF,A'F' ; 008C 08 . PUSH AF ; 008D F5 . save reg PUSH BC ; 008E C5 . 16bit display SUB PUSH DE ; 008F D5 . PUSH HL ; 0090 E5 . LD A,I ; 0091 ED57 .W PUSH AF ; 0093 F5 . Lb7: LD HL,$1020 ; 0094 212010 ! . CALL display_adr ; 0097 CD4A00 .J. display PC LD HL,($1020) ; 009A 2A2010 * . LD A,(HL) ; 009D 7E ~ LD HL,$102D ; 009E 212D10 !-. LD (HL),A ; 00A1 77 w CALL display_data ; 00A2 CD3B00 .;. display mem data JR Main ; 00A5 185D .] ;-------------------------------------------------------------------------------- Keyboard: EXX ; 00A7 D9 . Loop11: LD D,$05 ; 00A8 1605 .. Loop14: LD B,$04 ; 00AA 0604 .. LD C,$20 ; 00AC 0E20 . adr keyb 20H Loop12: IN A,(C) ; 00AE ED78 .x CP $00 ; 00B0 FE00 .. Taster pritisnut JR NZ,Loop11 ; 00B2 20F4 . INC C ; 00B4 0C . DJNZ Loop12 ; 00B5 10F7 .. CALL Delay_20ms ; 00B7 CDEB00 ... DEC D ; 00BA 15 . JR NZ,Loop14 ; 00BB 20ED . Loop18: LD D,$04 ; 00BD 1604 .. LD C,$20 ; 00BF 0E20 . Loop17: IN A,(C) ; 00C1 ED78 .x LD B,$08 ; 00C3 0608 .. Loop16: RLCA ; 00C5 07 . JR C,Lb15 ; 00C6 3808 8. DJNZ Loop16 ; 00C8 10FB .. INC C ; 00CA 0C . DEC D ; 00CB 15 . JR NZ,Loop17 ; 00CC 20F3 . JR Loop18 ; 00CE 18ED .. Lb15: LD A,B ; 00D0 78 x SUB $05 ; 00D1 D605 .. JR C,Lb19 ; 00D3 380A 8. LD A,$17 ; 00D5 3E17 >. SUB B ; 00D7 90 . Loop21: DEC D ; 00D8 15 . JR Z,Lb20 ; 00D9 280E (. ADD A,$03 ; 00DB C603 .. JR Loop21 ; 00DD 18F9 .. Lb19: LD A,$04 ; 00DF 3E04 >. SUB B ; 00E1 90 . Loop22: DEC D ; 00E2 15 . JR Z,Lb20 ; 00E3 2804 (. ADD A,$04 ; 00E5 C604 .. JR Loop22 ; 00E7 18F9 .. Lb20: EXX ; 00E9 D9 . RET ; 00EA C9 . ;-------------------------------------------------------------------------------- ; Z80 CTC Delay_20ms: LD B,$02 ; 00EB 0602 .. t=20ms Lb53: LD A,$27 ; 00ED 3E27 >' Control word PS=256 OUT ($13),A ; 00EF D313 .. LD A,$60 ; 00F1 3E60 >` 10ms OUT ($13),A ; 00F3 D313 .. Lb23: IN A,($13) ; 00F5 DB13 .. CP $01 ; 00F7 FE01 .. JR NZ,Lb23 ; 00F9 20FA . Lb24: IN A,($13) ; 00FB DB13 .. CP $01 ; 00FD FE01 .. JR Z,Lb24 ; 00FF 28FA (. DJNZ Lb23 ; 0101 10F2 .. RET ; 0103 C9 . ;-------------------------------------------------------------------------------- ;-------------------------------------------------------------------------------- Main: CALL Keyboard ; 0104 CDA700 ... Lb39: CP $11 ; 0107 FE11 .. ? save JP Z,Save ; 0109 CA6502 .e. CP $12 ; 010C FE12 .. ? load JP Z,Load ; 010E CA8103 ... CP $13 ; 0111 FE13 .. ? I/O JP Z,In_Out ; 0113 CA5002 .P. CP $14 ; 0116 FE14 .. ? E I JP Z,E_int ; 0118 CA0302 ... CP $15 ; 011B FE15 .. ? MV JP Z,Save ; 011D CA6502 .e. CP $16 ; 0120 FE16 .. ? mem -> JP Z,mem__ ; 0122 CA4101 .A. CP $17 ; 0125 FE17 .. ? mem <- JP Z,mem__ ; 0127 CA4101 .A. CP $18 ; 012A FE18 .. ? reg JP Z,reg__ ; 012C CA7A01 .z. CP $19 ; 012F FE19 .. ? Run JP Z,RUN__ ; 0131 CA0802 ... CP $1A ; 0134 FE1A .. ? Step JP Z,Step__ ; 0136 CA4902 .I. CP $1B ; 0139 FE1B .. ? Break JP Z,Break__ ; 013B CAFE01 ... JR Main ; 013E 18C4 .. ;-------------------------------------------------------------------------------- NOP ; 0140 00 . mem__: LD HL,$1020 ; 0141 212010 ! . CALL display_adr ; 0144 CD4A00 .J. LD HL,($1020) ; 0147 2A2010 * . LD A,(HL) ; 014A 7E ~ EX DE,HL ; 014B EB . LD HL,$102D ; 014C 212D10 !-. LD (HL),A ; 014F 77 w Lb36: CALL display_data ; 0150 CD3B00 .;. CALL Lb25 ; 0153 CDA700 ... CP $10 ; 0156 FE10 .. JR NZ,Lb35 ; 0158 3004 0. RLD ; 015A ED6F .o JR Lb36 ; 015C 18F2 .. Lb35: LD B,(HL) ; 015E 46 F EX DE,HL ; 015F EB . LD (HL),B ; 0160 70 p CP $16 ; 0161 FE16 .. JR Z,Lb37 ; 0163 2807 (. CP $17 ; 0165 FE17 .. JR Z,Lb38 ; 0167 2805 (. JP Lb39 ; 0169 C30701 ... Lb37: INC HL ; 016C 23 # INC HL ; 016D 23 # Lb38: DEC HL ; 016E 2B + LD ($1020),HL ; 016F 222010 " . JR mem__ ; 0172 18CD .. NOP ; 0174 00 . NOP ; 0178 00 . NOP ; 0179 00 . ;-------------------------------------------------------------------------------- reg__: CALL Lb25 ; 017A CDA700 ... LD HL,$101A ; 017D 211A10 !.. CP $03 ; 0180 FE03 .. JR Z,Lb40 ; 0182 2867 (g INC HL ; 0184 23 # INC HL ; 0185 23 # CP $02 ; 0186 FE02 .. JR Z,Lb40 ; 0188 2861 (a INC HL ; 018A 23 # INC HL ; 018B 23 # CP $01 ; 018C FE01 .. JR Z,Lb40 ; 018E 285B ([ INC HL ; 0190 23 # INC HL ; 0191 23 # CP $00 ; 0192 FE00 .. JR Z,Lb40 ; 0194 2855 (U LD HL,$1009 ; 0196 210910 !.. CP $05 ; 0199 FE05 .. JR Z,Lb41 ; 019B 283F (? NOP ; 019D 00 . LD BC,$00 ; 019E 010000 ... CP $07 ; 01A1 FE07 .. JR NZ,Lb42 ; 01A3 2005 . LD C,$08 ; 01A5 0E08 .. Lb44: CALL Lb25 ; 01A7 CDA700 ... Lb42: LD HL,$100A ; 01AA 210A10 !.. CP $09 ; 01AD FE09 .. JR Z,Lb43 ; 01AF 282A (* INC HL ; 01B1 23 # CP $08 ; 01B2 FE08 .. JR Z,Lb43 ; 01B4 2825 (% INC HL ; 01B6 23 # CP $0E ; 01B7 FE0E .. JR Z,Lb43 ; 01B9 2820 ( INC HL ; 01BB 23 # CP $0D ; 01BC FE0D .. JR Z,Lb43 ; 01BE 281B (. INC HL ; 01C0 23 # CP $0C ; 01C1 FE0C .. JR Z,Lb43 ; 01C3 2816 (. INC HL ; 01C5 23 # CP $0B ; 01C6 FE0B .. JR Z,Lb43 ; 01C8 2811 (. INC HL ; 01CA 23 # CP $0F ; 01CB FE0F .. JR Z,Lb43 ; 01CD 280C (. INC HL ; 01CF 23 # CP $0A ; 01D0 FE0A .. JR Z,Lb43 ; 01D2 2807 (. CP $10 ; 01D4 FE10 .. JP NC,Lb39 ; 01D6 D20701 ... JR Lb44 ; 01D9 18CC .. Lb43: ADD HL,BC ; 01DB 09 . Lb41: CALL display_data ; 01DC CD3B00 .;. CALL Lb25 ; 01DF CDA700 ... CP $10 ; 01E2 FE10 .. JP NC,Lb39 ; 01E4 D20701 ... RLD ; 01E7 ED6F .o JR Lb41 ; 01E9 18F1 .. Lb40: CALL display_adr ; 01EB CD4A00 .J. CALL Lb25 ; 01EE CDA700 ... CP $10 ; 01F1 FE10 .. JP NC,Lb39 ; 01F3 D20701 ... RLD ; 01F6 ED6F .o INC HL ; 01F8 23 # RLD ; 01F9 ED6F .o DEC HL ; 01FB 2B + JR Lb40 ; 01FC 18ED .. ;-------------------------------------------------------------------------------- Break__:LD HL,$102A ; 01FE 212A10 !*. JR Lb40 ; 0201 18E8 .. ;-------------------------------------------------------------------------------- E_int: EI ; 0203 FB . JP Main ; 0204 C30401 ... NOP ; 0207 00 . ;-------------------------------------------------------------------------------- RUN__: LD A,$0F ; 0208 3E0F >. LD ($102F),A ; 020A 322F10 2/. LD HL,($102A) ; 020D 2A2A10 **. LD A,(HL) ; 0210 7E ~ LD ($102C),A ; 0211 322C10 2,. LD A,$E7 ; 0214 3EE7 >. LD (HL),A ; 0216 77 w Lb46: LD SP,($101E) ; 0217 ED7B1E10 .{.. LD HL,($1020) ; 021B 2A2010 * . PUSH HL ; 021E E5 . LD SP,$1008 ; 021F 310810 1.. POP AF ; 0222 F1 . LD I,A ; 0223 ED47 .G POP HL ; 0225 E1 . POP DE ; 0226 D1 . POP BC ; 0227 C1 . POP AF ; 0228 F1 . EXX ; 0229 D9 . EX AF,A'F' ; 022A 08 . POP HL ; 022B E1 . POP DE ; 022C D1 . POP BC ; 022D C1 . POP AF ; 022E F1 . EXX ; 022F D9 . EX AF,A'F' ; 0230 08 . POP IY ; 0231 FDE1 .. POP IX ; 0233 DDE1 .. LD SP,($101E) ; 0235 ED7B1E10 .{.. DEC SP ; 0239 3B ; DEC SP ; 023A 3B ; PUSH AF ; 023B F5 . LD A,($102F) ; 023C 3A2F10 :/. CP $0F ; 023F FE0F .. OUT ($33),A ; 0241 D333 .3 Reset NMI-gen JR Z,Lb45 ; 0243 2802 (. OUT ($32),A ; 0245 D332 .2 Set NMI-gen Lb45: POP AF ; 0247 F1 . RET ; 0248 C9 . ;-------------------------------------------------------------------------------- Step__: LD A,$FF ; 0249 3EFF >. LD ($102F),A ; 024B 322F10 2/. JR Lb46 ; 024E 18C7 .. ;-------------------------------------------------------------------------------- ; Z80 PIO In_Out: IN A,($00) ; 0250 DB00 .. PIO port A LD H,A ; 0252 67 g IN A,($01) ; 0253 DB01 .. PIO port B LD L,A ; 0255 6F o LD ($102D),HL ; 0256 222D10 "-. LD HL,$102D ; 0259 212D10 !-. CALL display_adr ; 025C CD4A00 .J. JP Main ; 025F C30401 ... NOP ; 0262 00 . NOP ; 0263 00 . NOP ; 0264 00 . ;-------------------------------------------------------------------------------- Save: LD E,A ; 0265 5F _ Display BA. LD A,$1A ; 0266 3E1A >. OUT ($20),A ; 0268 D320 . LD A,$0B ; 026A 3E0B >. OUT ($21),A ; 026C D321 .! LD HL,$1023 ; 026E 212310 !#. CALL Lb47 ; 0271 CD0004 ... CP E ; 0274 BB . JP NZ,Lb39 ; 0275 C20701 ... LD A,$0E ; 0278 3E0E >. Display EA. OUT ($21),A ; 027A D321 .! INC HL ; 027C 23 # INC HL ; 027D 23 # CALL Lb47 ; 027E CD0004 ... CP E ; 0281 BB . JP NZ,Lb39 ; 0282 C20701 ... CP $11 ; 0285 FE11 .. JR Z,Lb48 ; 0287 280D (. LD A,$0D ; 0289 3E0D >. Display DA. OUT ($21),A ; 028B D321 .! INC HL ; 028D 23 # INC HL ; 028E 23 # CALL Lb47 ; 028F CD0004 ... CP E ; 0292 BB . JP NZ,Lb39 ; 0293 C20701 ... Lb48: LD HL,($1025) ; 0296 2A2510 *%. LD DE,($1023) ; 0299 ED5B2310 .[#. SBC HL,DE ; 029D ED52 .R JP C,Main ; 029F DA0401 ... LD B,H ; 02A2 44 D LD C,L ; 02A3 4D M EX DE,HL ; 02A4 EB . CP $11 ; 02A5 FE11 .. JR Z,Lb49 ; 02A7 281F (. LD DE,($1027) ; 02A9 ED5B2710 .['. SBC HL,DE ; 02AD ED52 .R JR C,Lb50 ; 02AF 3807 8. ADC HL,DE ; 02B1 ED5A .Z INC BC ; 02B3 03 . LDIR ; 02B4 EDB0 .. JR Lb51 ; 02B6 1809 .. Lb50: EX DE,HL ; 02B8 EB . ADD HL,BC ; 02B9 09 . EX DE,HL ; 02BA EB . INC BC ; 02BB 03 . LD HL,($1025) ; 02BC 2A2510 *%. LDDR ; 02BF EDB8 .. Lb51: LD A,$0A ; 02C1 3E0A >. Display DA Lb57: OUT ($20),A ; 02C3 D320 . JP Main ; 02C5 C30401 ... ;-------------------------------------------------------------------------------- Lb49: INC BC ; 02C8 03 . LD ($1027),BC ; 02C9 ED432710 .C'. EXX ; 02CD D9 . CALL Lb52 ; 02CE CD1104 ... LD A,$07 ; 02D1 3E07 >. OUT ($30),A ; 02D3 D330 .0 LD B,$28 ; 02D5 0628 .( CALL Lb53 ; 02D7 CDED00 ... LD HL,$1022 ; 02DA 212210 !". LD BC,$07 ; 02DD 010700 ... LD D,$AA ; 02E0 16AA .. LD A,$07 ; 02E2 3E07 >. OUT ($13),A ; 02E4 D313 .. LD A,$20 ; 02E6 3E20 > OUT ($13),A ; 02E8 D313 .. CALL Lb54 ; 02EA CD1A03 ... EXX ; 02ED D9 . CALL Lb55 ; 02EE CD1903 ... EXX ; 02F1 D9 . LD BC,$01 ; 02F2 010100 ... LD D,$AA ; 02F5 16AA .. CALL Lb54 ; 02F7 CD1A03 ... LD B,$28 ; 02FA 0628 .( CALL Lb53 ; 02FC CDED00 ... LD A,$08 ; 02FF 3E08 >. OUT ($30),A ; 0301 D330 .0 CALL Lb56 ; 0303 CD4E03 .N. EXX ; 0306 D9 . LD A,B ; 0307 78 x OR C ; 0308 B1 . JR Z,Lb51 ; 0309 28B6 (. LD A,$0E ; 030B 3E0E >. JR Lb57 ; 030D 18B4 .. NOP ; 030F 00 . NOP ; 0310 00 . Lb59: IN A,($30) ; 0311 DB30 .0 BIT 6,A ; 0313 CB77 .w RET NZ ; 0315 C0 . CPI ; 0316 EDA1 .. RET P0 ; 0318 E0 . ;-------------------------------------------------------------------------------- Lb55: LD D,(HL) ; 0319 56 V Lb54: LD E,$10 ; 031A 1E10 .. LD A,$03 ; 031C 3E03 >. Lb61: RRC D ; 031E CB0A .. Lb60: CCF ; 0320 3F ? RLA ; 0321 17 . EX AF,A'F' ; 0322 08 . Lb58: IN A,($13) ; 0323 DB13 .. CP $03 ; 0325 FE03 .. JR NZ,Lb58 ; 0327 30FA 0. EX AF,A'F' ; 0329 08 . OUT ($30),A ; 032A D330 .0 DEC E ; 032C 1D . JR Z,Lb59 ; 032D 28E2 (. RRA ; 032F 1F . BIT 0,E ; 0330 CB43 .C JR NZ,Lb60 ; 0332 20EC . JR Lb61 ; 0334 18E8 .. IN A,($30) ; 0336 DB30 .0 BIT 5,A ; 0338 CB6F .o JR NZ,Lb62 ; 033A 200E . CALL Lb56 ; 033C CD4E03 .N. LD A,$04 ; 033F 3E04 >. OUT ($30),A ; 0341 D330 .0 Lb63: IN A,($30) ; 0343 DB30 .0 BIT 6,A ; 0345 CB77 .w JR Z,Lb63 ; 0347 28FA (. RET ; 0349 C9 . ;-------------------------------------------------------------------------------- Lb62: POP HL ; 034A E1 . JP Main ; 034B C30401 ... Lb56: LD A,$10 ; 034E 3E10 >. OUT ($30),A ; 0350 D330 .0 LD B,$64 ; 0352 0664 .d CALL Lb53 ; 0354 CDED00 ... Lb64: IN A,($30) ; 0357 DB30 .0 BIT 6,A ; 0359 CB77 .w JR Z,Lb64 ; 035B 28FA (. LD B,$05 ; 035D 0605 .. CALL Lb53 ; 035F CDED00 ... IN A,($30) ; 0362 DB30 .0 BIT 6,A ; 0364 CB77 .w JR Z,Lb64 ; 0366 28EF (. LD A,$08 ; 0368 3E08 >. Stop Rec OUT ($30),A ; 036A D330 .0 LD B,$05 ; 036C 0605 .. CALL Lb53 ; 036E CDED00 ... LD A,$04 ; 0371 3E04 >. OUT ($30),A ; 0373 D330 .0 Lb65: IN A,($30) ; 0375 DB30 .0 BIT 6,A ; 0377 CB77 .w JR NZ,Lb65 ; 0379 20FA . LD A,$08 ; 037B 3E08 >. OUT ($30),A ; 037D D330 .0 RET ; 037F C9 . NOP ; 0380 00 . ;-------------------------------------------------------------------------------- Load: LD A,$1B ; 0381 3E1B >. Display _B. OUT ($20),A ; 0383 D320 . CALL Lb52 ; 0385 CD1104 ... LD B,$1E ; 0388 061E .. CALL Lb53 ; 038A CDED00 ... LD HL,$1022 ; 038D 212210 !". LD BC,$07 ; 0390 010700 ... LD D,$07 ; 0393 1607 .. LD E,$02 ; 0395 1E02 .. EXX ; 0397 D9 . LD C,$30 ; 0398 0E30 .0 LD D,$D5 ; 039A 16D5 .. Lb66: IN A,(C) ; 039C ED78 .x JP M,Lb66 ; 039E FA9C03 ... Lb67: IN A,(C) ; 03A1 ED78 .x JP P,Lb67 ; 03A3 F2A103 ... EX AF,A'F' ; 03A6 08 . LD A,$C0 ; 03A7 3EC0 >. NOP ; 03A9 00 . JR Lb68 ; 03AA 1803 .. Lb74: EX AF,A'F' ; 03AC 08 . IN A,($13) ; 03AD DB13 .. Lb68: SUB D ; 03AF 92 . SRA A ; 03B0 CB2F ./ ADD A,D ; 03B2 82 . SRA D ; 03B3 CB2A .* SRA D ; 03B5 CB2A .* SUB D ; 03B7 92 . LD D,A ; 03B8 57 W LD A,$07 ; 03B9 3E07 >. OUT ($13),A ; 03BB D313 .. LD A,$F8 ; 03BD 3EF8 >. OUT ($13),A ; 03BF D313 .. EX AF,A'F' ; 03C1 08 . EXX ; 03C2 D9 . RLA ; 03C3 17 . RR (HL) ; 03C4 CB1E .. DEC D ; 03C6 15 . JR NZ,Lb69 ; 03C7 2011 . LD D,$08 ; 03C9 1608 .. CPI ; 03CB EDA1 .. JP PE,Lb69 ; 03CD EADA03 ... DEC E ; 03D0 1D . LD HL,($1023) ; 03D1 2A2310 *#. JR Z,Lb70 ; 03D4 281D (. LD BC,$1027 ; 03D6 ED4B2710 .K'. Lb69: EXX ; 03DA D9 . Lb71: IN A,($13) ; 03DB DB13 .. CP D ; 03DD BA . JR NZ,Lb71 ; 03DE 30FB 0. IN A,(C) ; 03E0 ED78 .x JP P,Lb72 ; 03E2 F2EC03 ... Lb73: IN A,(C) ; 03E5 ED78 .x JP M,Lb73 ; 03E7 FAE503 ... JR Lb74 ; 03EA 18C0 .. Lb72: IN A,(C) ; 03EC ED78 .x JP P,Lb72 ; 03EE F2EC03 ... JR Lb74 ; 03F1 18B9 .. Lb70: LD A,$08 ; 03F3 3E08 >. OUT ($30),A ; 03F5 D330 .0 CALL Lb56 ; 03F7 CD4E03 .N. LD ($1020),HL ; 03FA 222010 " . JP Lb7 ; 03FD C39400 ... Lb47: CALL display_adr ; 0400 CD4A00 .J. CALL Lb25 ; 0403 CDA700 ... CP $10 ; 0406 FE10 .. RET NC ; 0408 D0 . RLD ; 0409 ED6F .o INC HL ; 040B 23 # RLD ; 040C ED6F .o DEC HL ; 040E 2B + JR Lb47 ; 040F 18EF .. Lb52: IN A,($30) ; 0411 DB30 .0 BIT 5,A ; 0413 CB6F .o JR NZ,Lb75 ; 0415 200E . CALL Lb56 ; 0417 CD4E03 .N. LD A,$04 ; 041A 3E04 >. OUT ($30),A ; 041C D330 .0 LD B,$05 ; 041E 0605 .. CALL Lb53 ; 0420 CDED00 ... Lb76: IN A,($30) ; 0423 DB30 .0 Lb75: BIT 6,A ; 0425 CB77 .w JR Z,Lb76 ; 0427 28FA (. RET ; 0429 C9 . POP HL ; 042A E1 . JP Main ; 042B C30401 ... RST 38H ; 042E FF . RST 38H ; 07FE FF . RST 38H ; 07FF FF . ;-------------------------------------------------------------------------------- .ORG $1030 Lb2: ;--------------------------------------------------------------------------------