;------------------------------------------------------------------------------- ; This is from an 8K x 8 eprom I found on a PCB that came out of an old ; gas pump January 21, 2011. ; The Z80 was dated 8425 and the DART was 8543, the latest date code ; of any chip on the board. This was the same model gas pump Don Capps wrote me ; about in the 70's talking about they had just got "new digital" gas pumps ; in Rogers, Ark. Interesting to finally see the inside guts of this thing ; so many years after it was 'futuristic' and is now quite obsolete. ;------------------------------------------------------------------------------- ; Output ports are ; 70 ; DART channel A Write Command ; 71 ; DART channel A Data Output ; 73 ; DART channel B Write Command (CH B not used ports 73,74) ; 80 ; 81 ; 84 ; 85 ; 86 ; 87 ; Input ports are ; 70 ; DART channel A Read Status ; 71 ; DART channel A Data Input ; 80 ; 81 ; 84 ; 85 ; 86 ; 87 ;------------------------------------------------------------------------------- ; IY is set to $4080 in two locations $02AD (bootup) and $0425 ; IY is indexed by DE,E2,E9,EF,F1,F7,F8 and 0E ; IX is set to $4080 or $4180 in 18 locations ; IX is indexed by BE,BF,C0,C1,C2,C3,C4,C5,C6,C7,D2,D3,D4,D7,D8 and DA ;------------------------------------------------------------------------------- 0000 C3 AC02 jp 02AC 0003 06 F1 ld b,F1 0005 10 07 djnz 000E 0007 85 add a,l 0008 C3 CF18 jp 18CF 000B 37 scf 000C FF rst 38h 000D FF rst 38h 000E FF rst 38h 000F FF rst 38h ;------------------------------------------------------------------------------- 0010 05 dec b ; Decrements b, test for zero 0011 04 inc b 0012 7E ld a,(hl) ; Loads A from (HL) 0013 C8 ret z 0014 24 inc h ; Other wise next location (HL) 0015 7E ld a,(hl) ; And get that instead 0016 C9 ret 0017 FF rst 38h ;------------------------------------------------------------------------------- 0018 0F rrca 0019 0F rrca 001A 0F rrca 001B 0F rrca 001C C9 ret 001D FF rst 38h 001E FF rst 38h 001F FF rst 38h ;------------------------------------------------------------------------------- 0020 21 4340 ld hl,4043 0023 D7 rst 10h ; Test B, load a,(hl) else ld a,(hl+1) 0024 C3 E800 jp 00E8 0027 FF rst 38h 0028 C1 pop bc ; DE=00F6, push de,bc, B=1, IX=4180 0029 C5 push bc 002A 11 F600 ld de,00F6 002D C3 ED00 jp 00ED ;------------------------------------------------------------------------------- 0030 12 ld (de),a 0031 13 inc de 0032 C3 C218 jp 18C2 0035 FF rst 38h 0036 FF rst 38h 0037 FF rst 38h ;------------------------------------------------------------------------------- ; Interrupt vector ;------------------------------------------------------------------------------- 0038 F5 push af 0039 DB 80 in a,(80) 003B 1F rra 003C D2 B700 jp nc,00B7 003F E5 push hl 0040 D5 push de 0041 21 6340 ld hl,4063 0044 DB 81 in a,(81) 0046 57 ld d,a 0047 AE xor (hl) 0048 72 ld (hl),d 0049 23 inc hl 004A A6 and (hl) 004B 23 inc hl 004C 1F rra 004D 30 01 jr nc,0050 004F 34 inc (hl) 0050 23 inc hl 0051 1F rra 0052 30 01 jr nc,0055 0054 34 inc (hl) 0055 FDCB66 F7 bit 4,(iy+F7) 0059 28 0A jr z,0065 005B C5 push bc 005C 06 04 ld b,04 005E 10 FE djnz 005E 0060 50 ld d,b 0061 C1 pop bc 0062 C3 8900 jp 0089 ;------------------------------------------------------------------------------- 0065 23 inc hl 0066 34 inc (hl) 0067 16 00 ld d,00 0069 7E ld a,(hl) 006A E6 0F and 0F 006C FE 0F cp 0F 006E 28 19 jr z,0089 0070 1F rra 0071 30 16 jr nc,0089 0073 21 3740 ld hl,4037 0076 34 inc (hl) 0077 35 dec (hl) 0078 28 03 jr z,007D 007A 35 dec (hl) 007B 16 08 ld d,08 007D 21 3741 ld hl,4137 0080 34 inc (hl) 0081 35 dec (hl) 0082 28 05 jr z,0089 0084 35 dec (hl) 0085 3E 04 ld a,04 0087 B2 or d 0088 57 ld d,a ;------------------------------------------------------------------------------- ; Interrupt vector jumps to here 0089 3A 5E40 ld a,(405E) 008C B2 or d 008D D3 85 out (85),a 008F FDCB6E F7 bit 5,(iy+F7) 0093 C4 0619 call nz,1906 0096 D1 pop de 0097 E1 pop hl 0098 F1 pop af 0099 F1 pop af 009A FE 40 cp 40 009C 30 08 jr nc,00A6 009E 3B dec sp 009F 3B dec sp 00A0 3B dec sp 00A1 3B dec sp 00A2 F1 pop af 00A3 FB ei 00A4 ED4D reti ; Finished with Interrupt processing or RST 38h processing ;------------------------------------------------------------------------------- ; 00A6 31 0048 ld sp,4800 ; Top of 2K x 8 static ram 00A9 3E 02 ld a,02 00AB CD ED19 call 19ED 00AE 21 0C42 ld hl,420C 00B1 CD 521A call 1A52 00B4 C3 8304 jp 0483 ;------------------------------------------------------------------------------- 00B7 E5 push hl 00B8 21 7240 ld hl,4072 00BB 7E ld a,(hl) 00BC A7 and a 00BD 28 06 jr z,00C5 00BF 36 00 ld (hl),00 00C1 E1 pop hl 00C2 F1 pop af 00C3 ED4D reti ;------------------------------------------------------------------------------- 00C5 21 5D40 ld hl,405D 00C8 3A 6C41 ld a,(416C) 00CB 77 ld (hl),a 00CC D3 84 out (84),a 00CE 21 7140 ld hl,4071 00D1 36 02 ld (hl),02 00D3 DB 80 in a,(80) ; Get input from Port 80 00D5 E6 20 and 20 ; B 0010 0000 mask off everything not D5 00D7 20 01 jr nz,00DA ; If D5 is present jp ahead 00D9 34 inc (hl) 00DA 21 3640 ld hl,4036 00DD 36 3B ld (hl),3B ; This must be the code for death 00DF 21 3641 ld hl,4136 00E2 36 3B ld (hl),3B ; It's a semicolon B 0011 1011 00E4 CD 410A call 0A41 00E7 76 halt ; This doesn't look good... ;------------------------------------------------------------------------------- 00E8 36 01 ld (hl),01 00EA 2B dec hl 00EB 73 ld (hl),e 00EC C9 ret 00ED D5 push de 00EE C5 push bc 00EF 06 01 ld b,01 00F1 DD21 8041 ld ix,4180 00F5 C9 ret 00F6 05 dec b 00F7 DD21 8040 ld ix,4080 00FB C9 ret ;------------------------------------------------------------------------------- 00FC 57 ld d,a ; D <- A 00FD E6 0F and 0F ; 0000 1111 00FF 5F ld e,a ; E <- A 0100 7A ld a,d ; A <- D 0101 E6 F0 and F0 ; 1111 0000 0103 0F rrca ; 0111 1000 0104 57 ld d,a ; D <- A 0105 0F rrca ; 0011 1100 0106 0F rrca ; 0001 1110 0107 82 add a,d ; Add 0111 1000 anded # 0108 83 add a,e ; Add 0000 1111 anded # 0109 C9 ret ;------------------------------------------------------------------------------- 010A 56 ld d,(hl) 010B 23 inc hl 010C 5E ld e,(hl) 010D 21 4E40 ld hl,404E 0110 D7 rst 10h ; Test B, load a,(hl) else ld a,(hl+1) 0111 72 ld (hl),d 0112 23 inc hl 0113 73 ld (hl),e 0114 D5 push de 0115 7A ld a,d 0116 CD FC00 call 00FC 0119 26 00 ld h,00 011B 6F ld l,a 011C 54 ld d,h 011D 5D ld e,l 011E 29 add hl,hl 011F 19 add hl,de 0120 29 add hl,hl 0121 29 add hl,hl 0122 29 add hl,hl 0123 19 add hl,de 0124 29 add hl,hl 0125 29 add hl,hl 0126 D1 pop de 0127 7B ld a,e 0128 CD FC00 call 00FC 012B 5F ld e,a 012C 16 00 ld d,00 012E 19 add hl,de 012F EB ex de,hl 0130 21 5040 ld hl,4050 0133 D7 rst 10h ; Test B, load a,(hl) else ld a,(hl+1) 0134 72 ld (hl),d 0135 23 inc hl 0136 73 ld (hl),e 0137 C9 ret 0138 0E 0E ld c,0E 013A 3E FF ld a,FF 013C CD E20C call 0CE2 ; Output A->86, C->80, $00->80 013F 0D dec c 0140 20 F8 jr nz,013A 0142 06 0C ld b,0C 0144 0E 1F ld c,1F 0146 1E 03 ld e,03 0148 7B ld a,e 0149 32 5F40 ld (405F),a 014C D3 87 out (87),a 014E 79 ld a,c 014F CD 301D call 1D30 0152 1D dec e 0153 F2 4801 jp p,0148 0156 05 dec b 0157 28 06 jr z,015F 0159 3E 10 ld a,10 015B 81 add a,c 015C 4F ld c,a 015D 18 E7 jr 0146 015F 21 6140 ld hl,4061 0162 36 14 ld (hl),14 0164 23 inc hl 0165 36 14 ld (hl),14 0167 21 7B19 ld hl,197B 016A 7E ld a,(hl) 016B 4F ld c,a 016C 21 0400 ld hl,0004 016F 7E ld a,(hl) 0170 B9 cp c 0171 28 03 jr z,0176 0173 2B dec hl 0174 30 0F jr nc,0185 0176 21 0300 ld hl,0003 0179 7E ld a,(hl) 017A 21 7A19 ld hl,197A 017D BE cp (hl) 017E 28 05 jr z,0185 0180 38 03 jr c,0185 0182 21 0300 ld hl,0003 0185 7E ld a,(hl) 0186 E6 F0 and F0 0188 57 ld d,a 0189 DF rst 18h ; RRCA x 4, RET 018A B2 or d 018B 57 ld d,a 018C 7E ld a,(hl) 018D E6 0F and 0F 018F 5F ld e,a 0190 DF rst 18h ; RRCA x 4, RET 0191 B3 or e 0192 5F ld e,a 0193 23 inc hl 0194 7E ld a,(hl) 0195 E6 0F and 0F 0197 47 ld b,a 0198 DF rst 18h ; RRCA x 4, RET 0199 B0 or b 019A 47 ld b,a 019B 7E ld a,(hl) 019C E6 F0 and F0 019E 4F ld c,a 019F DF rst 18h ; RRCA x 4, RET 01A0 B1 or c 01A1 0E 04 ld c,04 01A3 CD 9F02 call 029F 01A6 78 ld a,b 01A7 0D dec c 01A8 CD 9F02 call 029F 01AB 7A ld a,d 01AC 0D dec c 01AD CD 9F02 call 029F 01B0 7B ld a,e 01B1 0D dec c 01B2 CD 9F02 call 029F 01B5 11 F641 ld de,41F6 01B8 21 0300 ld hl,0003 01BB 01 0500 ld bc,0005 01BE EDB0 ldir 01C0 21 7A19 ld hl,197A 01C3 01 0500 ld bc,0005 01C6 EDB0 ldir 01C8 DB 80 in a,(80) 01CA E6 C0 and C0 01CC 0F rrca 01CD DF rst 18h ; RRCA x 4, RET 01CE 32 7040 ld (4070),a 01D1 0F rrca 01D2 FDCB7E F7 bit 7,(iy+F7) 01D6 28 02 jr z,01DA 01D8 CBD7 set 2,a 01DA 4F ld c,a 01DB DF rst 18h ; RRCA x 4, RET 01DC B1 or c 01DD 0E 05 ld c,05 01DF CD 9F02 call 029F 01E2 3A 7340 ld a,(4073) 01E5 E6 0F and 0F 01E7 4F ld c,a 01E8 DF rst 18h ; RRCA x 4, RET 01E9 B1 or c 01EA 0E 06 ld c,06 01EC CD 9F02 call 029F 01EF FDCB66 F7 bit 4,(iy+F7) 01F3 20 13 jr nz,0208 01F5 DB 87 in a,(87) 01F7 4F ld c,a 01F8 CD 7802 call 0278 01FB 57 ld d,a 01FC 79 ld a,c 01FD DF rst 18h ; RRCA x 4, RET 01FE CD 7802 call 0278 0201 DF rst 18h ; RRCA x 4, RET 0202 B2 or d 0203 0E 08 ld c,08 0205 CD 9F02 call 029F 0208 DB 84 in a,(84) 020A E6 40 and 40 020C 3E 11 ld a,11 020E 20 02 jr nz,0212 0210 C6 11 add a,11 0212 0E 0E ld c,0E 0214 CD 9F02 call 029F 0217 CD 811C call 1C81 021A 21 0000 ld hl,0000 021D 1E 02 ld e,02 021F AF xor a 0220 86 add a,(hl) 0221 2C inc l 0222 20 FC jr nz,0220 0224 57 ld d,a 0225 24 inc h 0226 7C ld a,h 0227 E6 0F and 0F 0229 7A ld a,d 022A 20 F4 jr nz,0220 022C 84 add a,h 022D 7C ld a,h 022E C2 8302 jp nz,0283 0231 1D dec e 0232 28 05 jr z,0239 0234 21 0010 ld hl,1000 0237 18 E6 jr 021F 0239 21 0040 ld hl,4000 023C 16 33 ld d,33 023E 4E ld c,(hl) 023F AF xor a 0240 77 ld (hl),a 0241 7E ld a,(hl) 0242 A7 and a 0243 C2 8B02 jp nz,028B 0246 2F cpl 0247 77 ld (hl),a 0248 7E ld a,(hl) 0249 2F cpl 024A A7 and a 024B C2 8B02 jp nz,028B 024E 71 ld (hl),c 024F 2C inc l 0250 20 EA jr nz,023C 0252 24 inc h 0253 7C ld a,h 0254 FE 48 cp 48 0256 20 E4 jr nz,023C 0258 01 0E00 ld bc,000E 025B 21 5B41 ld hl,415B 025E 09 add hl,bc 025F 7E ld a,(hl) 0260 CD E20C call 0CE2 ; Output A->86, C->80, $00->80 0263 2B dec hl 0264 0D dec c 0265 20 F8 jr nz,025F 0267 11 0000 ld de,0000 026A 0E 03 ld c,03 026C 1C inc e 026D E3 ex (sp),hl 026E E3 ex (sp),hl 026F 20 FB jr nz,026C 0271 14 inc d 0272 20 F8 jr nz,026C 0274 0D dec c 0275 20 F5 jr nz,026C 0277 C9 ret 0278 E6 07 and 07 027A C8 ret z 027B FE 04 cp 04 027D D8 ret c 027E 3E 03 ld a,03 0280 C8 ret z 0281 3C inc a 0282 C9 ret 0283 16 11 ld d,11 0285 FE 10 cp 10 0287 28 0A jr z,0293 0289 18 04 jr 028F 028B E6 0F and 0F 028D 20 04 jr nz,0293 028F 3E 11 ld a,11 0291 82 add a,d 0292 57 ld d,a 0293 7A ld a,d 0294 0E 0A ld c,0A 0296 CD 9F02 call 029F 0299 CD 5802 call 0258 029C C3 1A02 jp 021A 029F E5 push hl 02A0 21 5B41 ld hl,415B 02A3 D5 push de 02A4 16 00 ld d,00 02A6 59 ld e,c 02A7 19 add hl,de 02A8 77 ld (hl),a 02A9 D1 pop de 02AA E1 pop hl 02AB C9 ret ;------------------------------------------------------------------------------- ; Bootup Initialize ;------------------------------------------------------------------------------- 02AC F3 di ; Disable INTerrupts 02AD FD21 8040 ld iy,4080 ; 02B1 DB 80 in a,(80) ; Get status from Port 80 02B3 E6 0E and 0E 02B5 0F rrca 02B6 FE 06 cp 06 02B8 3E CC ld a,CC ; Load 1100 1100 into A 02BA 38 01 jr c,02BD ; Was port 80 = 1100 0000 ? 02BC AF xor a ; Zeroize A 02BD D3 84 out (84),a ; Output it to Port 84 02BF ED56 im 1 ; INTerrupts jump to 0038 02C1 31 0048 ld sp,4800 ; Set Sp to top of ram 02C4 21 7840 ld hl,4078 02C7 CB5E bit 3,(hl) 02C9 20 1A jr nz,02E5 02CB 3E 00 ld a,00 ; Set a null 02CD D3 71 out (71),a ; Output DART Channel A 02CF DB 71 in a,(71) ; Input DART Channel A 02D1 2F cpl 02D2 E6 08 and 08 ; B0000 1000 02D4 0F rrca ; B0000 0100 02D5 0F rrca ; B0000 0010 02D6 0F rrca ; B0000 0001 02D7 4F ld c,a 02D8 3E 01 ld a,01 02DA 21 7740 ld hl,4077 02DD A6 and (hl) 02DE A9 xor c 02DF 21 1042 ld hl,4210 02E2 C4 521A call nz,1A52 02E5 AF xor a 02E6 21 7740 ld hl,4077 02E9 77 ld (hl),a 02EA 23 inc hl 02EB 77 ld (hl),a 02EC 11 0042 ld de,4200 02EF DB 84 in a,(84) 02F1 E6 80 and 80 02F3 28 2B jr z,0320 02F5 11 0442 ld de,4204 02F8 21 5B40 ld hl,405B 02FB 3E 3B ld a,3B 02FD BE cp (hl) 02FE 20 20 jr nz,0320 0300 23 inc hl 0301 BE cp (hl) 0302 20 1C jr nz,0320 0304 21 3640 ld hl,4036 0307 BE cp (hl) 0308 20 16 jr nz,0320 030A 21 3641 ld hl,4136 030D BE cp (hl) 030E 20 10 jr nz,0320 0310 11 8503 ld de,0385 0313 D5 push de 0314 EF rst 28h ; DE=00F6, push de,bc, B=1, IX=4180 0315 DD7E BE ld a,(ix+BE) 0318 FE 0A cp 0A 031A C0 ret nz 031B DD36 BE 00 ld (ix+BE),00 031F C9 ret 0320 21 B541 ld hl,41B5 0323 7E ld a,(hl) 0324 23 inc hl 0325 AE xor (hl) 0326 3C inc a 0327 23 inc hl 0328 B6 or (hl) 0329 28 08 jr z,0333 032B 21 FF47 ld hl,47FF ; Top of 2K x 8 static ram 032E 01 0008 ld bc,0800 ; 2,048 bytes 0331 18 1C jr 034F ; Clear out all this ram to zeros ;------------------------------------------------------------------------------- 0333 EB ex de,hl 0334 CD 521A call 1A52 0337 11 2641 ld de,4126 ; One side of the pump 033A 21 B441 ld hl,41B4 033D CD 6E1C call 1C6E ; DAA adjust and set all displays 0340 11 2640 ld de,4026 ; The other side of the pump 0343 CD 6E1C call 1C6E ; DAA adjust and set all displays 0346 21 7841 ld hl,4178 ; Set start of clear 4178 0349 01 7901 ld bc,0179 ; Clear 377 bytes from 4178-4000 034C 11 0000 ld de,0000 ;------------------------------------------------------------------------------- ; Clears ram from HL backwards BC bytes until BC = 0 034F 36 00 ld (hl),00 ; Routine clears ram to $00 0351 2B dec hl ; It's a backwards clear 0352 0B dec bc ; Count down the iterations 0353 78 ld a,b 0354 B1 or c 0355 20 F8 jr nz,034F ; Loop thru until all cleared 0357 D5 push de 0358 CD BE11 call 11BE 035B 21 5840 ld hl,4058 035E CBC6 set 0,(hl) 0360 24 inc h 0361 CBC6 set 0,(hl) 0363 D1 pop de 0364 7A ld a,d 0365 B3 or e 0366 28 04 jr z,036C 0368 EB ex de,hl 0369 CD 521A call 1A52 036C 3A 6C41 ld a,(416C) 036F 32 5D40 ld (405D),a 0372 21 3940 ld hl,4039 0375 3E 33 ld a,33 0377 77 ld (hl),a 0378 23 inc hl 0379 77 ld (hl),a 037A 21 3941 ld hl,4139 037D 77 ld (hl),a 037E 23 inc hl 037F 77 ld (hl),a 0380 21 6440 ld hl,4064 0383 36 C0 ld (hl),C0 0385 21 5B41 ld hl,415B 0388 3E FF ld a,FF 038A 06 0E ld b,0E 038C 77 ld (hl),a 038D 23 inc hl 038E 10 FC djnz 038C 0390 CD 9019 call 1990 0393 3E 00 ld a,00 0395 D3 85 out (85),a 0397 06 00 ld b,00 0399 CD 8A1E call 1E8A 039C 04 inc b 039D CD 8A1E call 1E8A 03A0 3E 07 ld a,07 03A2 D3 81 out (81),a 03A4 CD E003 call 03E0 03A7 21 5740 ld hl,4057 03AA DB 81 in a,(81) 03AC CB77 bit 6,a 03AE 20 02 jr nz,03B2 03B0 CBF6 set 6,(hl) 03B2 24 inc h 03B3 CB7F bit 7,a 03B5 20 02 jr nz,03B9 03B7 CBF6 set 6,(hl) 03B9 CD 4B07 call 074B 03BC CD 4B07 call 074B 03BF 11 FA03 ld de,03FA 03C2 D5 push de 03C3 EF rst 28h ; DE=00F6, push de,bc, B=1, IX=4180 03C4 DD7E C0 ld a,(ix+C0) 03C7 DD77 C1 ld (ix+C1),a 03CA AF xor a 03CB DD77 C5 ld (ix+C5),a 03CE DD77 C6 ld (ix+C6),a 03D1 DD77 C7 ld (ix+C7),a 03D4 DD7E D2 ld a,(ix+D2) 03D7 E6 77 and 77 03D9 DD77 D2 ld (ix+D2),a 03DC 1E 0A ld e,0A 03DE E7 rst 20h ; Load A from 4043 or 4044 dep on B 03DF C9 ret 03E0 EF rst 28h ; DE=00F6, push de,bc, B=1, IX=4180 03E1 DD36 D7 00 ld (ix+D7),00 03E5 DD36 D8 00 ld (ix+D8),00 03E9 3E 0C ld a,0C 03EB CB40 bit 0,b 03ED C4 1800 call nz,0018 03F0 4F ld c,a 03F1 DB 85 in a,(85) 03F3 A1 and c 03F4 C0 ret nz 03F5 DDCBE6 D7 set 4,(ix+D7) 03F9 C9 ret ;------------------------------------------------------------------------------- ; Set up DART Channel A ;------------------------------------------------------------------------------- 03FA 3E 18 ld a,18 ; Channel Reset 03FC D3 71 out (71),a ; Output DART Channel A ; DART Channel A Command Register 03FE 3E 04 ld a,04 ; Select Register 4 0400 D3 71 out (71),a ; Output DART Channel A 0402 3E 47 ld a,47 ; x16 clock, 1 Stop, PE, Parity Used 0404 D3 71 out (71),a ; Output DART Channel A 0406 3E 03 ld a,03 ; Select Register 3 0408 D3 71 out (71),a ; Output DART Channel A 040A 3E C1 ld a,C1 ; RX 8 bits/char, RX enable 040C D3 71 out (71),a ; Output DART Channel A 040E 3E 05 ld a,05 ; Select Register 5 0410 D3 71 out (71),a ; Output DART Channel A 0412 3E 68 ld a,68 ; TX 8 bits/char, TX enable 0414 D3 71 out (71),a ; Output DART Channel A 0416 3E 18 ld a,18 ; Channel Reset ;------------------------------------------------------------------------------- ; It sets up DART Channel B, but doesn't appear to use it ;------------------------------------------------------------------------------- 0418 D3 73 out (73),a ; DART Channel B Command Register 041A 3E 04 ld a,04 ; Select Register 4 041C D3 73 out (73),a 041E 3E 47 ld a,47 ; x16 clock 0420 D3 73 out (73),a 0422 3E 03 ld a,03 ; Select Register 3 0424 D3 73 out (73),a 0426 3E C1 ld a,C1 ; RX 8 bits/char, RX enable 0428 D3 73 out (73),a 042A 3E 05 ld a,05 ; Select Register 5 042C D3 73 out (73),a 042E 3E 68 ld a,68 ; TX 8 bits/char, TX enable 0430 D3 73 out (73),a 0432 21 0842 ld hl,4208 0435 CD 521A call 1A52 0438 21 7740 ld hl,4077 043B 3E F3 ld a,F3 043D A6 and (hl) 043E 77 ld (hl),a 043F 3E 00 ld a,00 0441 D3 71 out (71),a ; Output DART Channel A 0443 DB 71 in a,(71) ; Input DART Channel A 0445 CB5F bit 3,a ; B0000 1000 0447 CBC6 set 0,(hl) 0449 28 02 jr z,044D 044B CB86 res 0,(hl) 044D CBB6 res 6,(hl) 044F DB 84 in a,(84) 0451 E6 40 and 40 0453 B6 or (hl) 0454 77 ld (hl),a 0455 23 inc hl 0456 CB86 res 0,(hl) 0458 DB 86 in a,(86) 045A 32 8240 ld (4082),a 045D CD 3801 call 0138 0460 3E 3B ld a,3B 0462 21 5B40 ld hl,405B 0465 77 ld (hl),a 0466 23 inc hl 0467 77 ld (hl),a 0468 21 3640 ld hl,4036 046B 77 ld (hl),a 046C 24 inc h 046D 77 ld (hl),a 046E 21 B541 ld hl,41B5 0471 36 55 ld (hl),55 0473 23 inc hl 0474 36 AA ld (hl),AA 0476 23 inc hl 0477 36 00 ld (hl),00 0479 CD C608 call 08C6 047C 3A 6C41 ld a,(416C) 047F 32 5D40 ld (405D),a 0482 FB ei 0483 ED56 im 1 0485 FD21 8040 ld iy,4080 0489 31 0048 ld sp,4800 048C CD 0B1A call 1A0B 048F CD 8D1A call 1A8D 0492 CD 3606 call 0636 0495 CD 5606 call 0656 0498 CD D906 call 06D9 049B CD E705 call 05E7 049E CD 8612 call 1286 04A1 CD 801D call 1D80 04A4 CD BE1C call 1CBE 04A7 1E FF ld e,FF ; Time delay 04A9 1D dec e 04AA 20 FD jr nz,04A9 04AC CD E806 call 06E8 04AF CD 3907 call 0739 04B2 3A 5D40 ld a,(405D) 04B5 D3 84 out (84),a 04B7 CD 2707 call 0727 04BA CD 4B07 call 074B 04BD CD 8612 call 1286 04C0 CD 410A call 0A41 04C3 CD 0E06 call 060E 04C6 CD 8612 call 1286 04C9 21 7740 ld hl,4077 04CC CB46 bit 0,(hl) 04CE 20 B3 jr nz,0483 04D0 CB4E bit 1,(hl) 04D2 28 AF jr z,0483 04D4 FD34 0E inc (iy+0E) 04D7 F4 DC04 call p,04DC 04DA 18 A7 jr 0483 04DC EF rst 28h ; DE=00F6, push de,bc, B=1, IX=4180 04DD DD7E BE ld a,(ix+BE) 04E0 D6 03 sub 03 04E2 FE 02 cp 02 04E4 38 07 jr c,04ED 04E6 FE 05 cp 05 04E8 D0 ret nc 04E9 CD E516 call 16E5 04EC C9 ret 04ED CD D616 call 16D6 04F0 C9 ret 04F1 00 nop 04F2 27 daa 04F3 10 00 djnz 04F5 04F5 93 sub e 04F6 DA 00C3 jp c,C300 04F8 C3 0150 jp 0150 04F9 50 ld d,b 04FA 01 86A0 ld bc,A086 04FD 00 nop 04FE 20 85 jr nz,0485 0500 01 3880 ld bc,8038 0503 00 nop 0504 C3 5001 jp 0150 ;------------------------------------------------------------------------------- 0507 85 add a,(hl) 0508 A0 and b 0509 27 daa 050A 10 0A djnz 0516 050C 52 ld d,d 050D 07 rlca 050E D0 ret nc 050F 03 inc bc 0510 E8 ret pe 0511 2E E9 ld l,E9 0513 04 inc b 0514 E2 07D0 jp po,D007 0517 03 inc bc 0518 E8 ret pe ;------------------------------------------------------------------------------- ; Data table indexed by HL load at 0B60 ;------------------------------------------------------------------------------- 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F 0519 F6 F4 0F F2 F0 FE FC 0520 0F FA F8 08 06 04 02 00 14 12 10 0E 0C 08 06 04 0530 02 00 16 14 12 10 0E 08 06 04 02 00 16 14 12 10 0540 0E 0F 0F 0F 0F 0F 20 1E 1C 1A 18 2D 2B 29 27 0F 0550 35 33 31 2F 0F 69 67 65 63 0F 71 6F 6D 6B 0F DD 0560 D1 1D 0D DF 0D 11 DD DF 0D 22 DD DF FF DD 4D DF 0570 0D DD D5 DD 9D DD D6 DD 9D DD D7 DD 8D DD 8D DD 0580 8D DD 88 DD DD DD A7 DD DD DD DD DD 9D DD DD DD 0590 0D DD DD 17 0F ED 0F ED 0F FA 0F 20 10 35 10 EB 05A0 10 55 10 FF 10 CB 11 DF 11 66 12 D8 11 CF 0E 69 05B0 OE FC 0E F3 0E F3 0E CF 0E CF 0E CF 0E CF 0E CF 05C0 0E CF 0E CF 0E CF 0E 5B 0E 05 0F 37 0E CC F1 0C 05D0 F0 0C F3 00 F3 0C F3 04 F0 05 00 F1 00 F0 00 F3 05E0 0C F3 00 F3 08 F0 09 ;------------------------------------------------------------------------------- ; This routine is called from 049B ;------------------------------------------------------------------------------- 05E7 EF rst 28h ; DE=00F6, push de,bc, B=1, IX=4180 05E8 21 6440 ld hl,4064 05EB 78 ld a,b 05EC 3C inc a 05ED DF rst 18h ; RRCA x 4, RET 05EE A6 and (hl) 05EF C8 ret z 05F0 21 4840 ld hl,4048 05F3 D7 rst 10h ; Test B, load a,(hl) else ld a,(hl+1) 05F4 EB ex de,hl 05F5 21 0040 ld hl,4000 05F8 CD 390C call 0C39 05FB D8 ret c 05FC 21 4B40 ld hl,404B 05FF D7 rst 10h ; Test B, load a,(hl) else ld a,(hl+1) 0600 EB ex de,hl 0601 21 0340 ld hl,4003 0604 CD 390C call 0C39 0607 D4 ED0D call nc,0DED 060A CD F90D call 0DF9 060D C9 ret 060E EF rst 28h ; DE=00F6, push de,bc, B=1, IX=4180 060F DD7E BE ld a,(ix+BE) 0612 FE 04 cp 04 0614 C0 ret nz 0615 21 6540 ld hl,4065 0618 7D ld a,l 0619 80 add a,b 061A 6F ld l,a 061B 3A 7040 ld a,(4070) 061E FE 04 cp 04 0620 38 0D jr c,062F 0622 FE 04 cp 04 0624 7E ld a,(hl) 0625 28 04 jr z,062B 0627 FE 03 cp 03 0629 18 07 jr 0632 062B FE 06 cp 06 062D 18 03 jr 0632 062F 7E ld a,(hl) 0630 FE 0A cp 0A 0632 D8 ret c 0633 C3 4607 jp 0746 ;------------------------------------------------------------------------------- 0636 EF rst 28h ; DE=00F6, push de,bc, B=1, IX=4180 0637 DD7E BE ld a,(ix+BE) 063A FE 04 cp 04 063C C8 ret z 063D FE 0C cp 0C 063F C8 ret z 0640 21 6540 ld hl,4065 0643 7D ld a,l 0644 80 add a,b 0645 6F ld l,a 0646 F3 di ; Disable INTerrupts 0647 56 ld d,(hl) 0648 36 00 ld (hl),00 064A FB ei 064B 21 3540 ld hl,4035 064E D7 rst 10h ; Test B, load a,(hl) else ld a,(hl+1) 064F 7A ld a,d 0650 CD 7E0C call 0C7E 0653 C3 2C0C jp 0C2C ;------------------------------------------------------------------------------- 0656 EF rst 28h ; DE=00F6, push de,bc, B=1, IX=4180 0657 DD7E D3 ld a,(ix+D3) 065A E6 40 and 40 065C C0 ret nz 065D 21 7040 ld hl,4070 0660 7E ld a,(hl) 0661 0F rrca 0662 85 add a,(hl) 0663 3C inc a 0664 3C inc a 0665 FDCB7E F7 bit 7,(iy+F7) 0669 28 02 jr z,066D 066B C6 0C add a,0C 066D 11 F104 ld de,04F1 ; Data table 0670 26 00 ld h,00 0672 6F ld l,a 0673 19 add hl,de 0674 EB ex de,hl 0675 21 3540 ld hl,4035 0678 D7 rst 10h ; Test B, load a,(hl) else ld a,(hl+1) 0679 EB ex de,hl 067A CD 2919 call 1929 067D 3A 7040 ld a,(4070) 0680 FE 04 cp 04 0682 20 1F jr nz,06A3 0684 21 8640 ld hl,4086 0687 7E ld a,(hl) 0688 21 6440 ld hl,4064 068B 0F rrca 068C 30 0B jr nc,0699 068E 3E 04 ld a,04 0690 CB40 bit 0,b 0692 28 01 jr z,0695 0694 07 rlca 0695 B6 or (hl) 0696 77 ld (hl),a 0697 18 0A jr 06A3 0699 3E FB ld a,FB 069B CB40 bit 0,b 069D 28 02 jr z,06A1 069F 3E F7 ld a,F7 06A1 A6 and (hl) 06A2 77 ld (hl),a 06A3 3A 7140 ld a,(4071) 06A6 FE 02 cp 02 06A8 20 25 jr nz,06CF 06AA 3A 7040 ld a,(4070) 06AD FE 04 cp 04 06AF 20 0C jr nz,06BD 06B1 21 6440 ld hl,4064 06B4 7E ld a,(hl) 06B5 CB40 bit 0,b 06B7 20 01 jr nz,06BA 06B9 07 rlca 06BA 07 rlca 06BB 30 0B jr nc,06C8 06BD 21 8640 ld hl,4086 06C0 3E 05 ld a,05 06C2 0E 03 ld c,03 06C4 A7 and a 06C5 CD 2F0C call 0C2F 06C8 21 8640 ld hl,4086 06CB 7E ld a,(hl) 06CC E6 F0 and F0 06CE 77 ld (hl),a 06F1 DB 85 in a,(85) 06F3 CB40 bit 0,b 06F5 C4 1800 call nz,0018 06F8 E6 02 and 02 06FA C2 471C jp nz,1C47 06FD 1D dec e 06FE 20 F1 jr nz,06F1 0700 21 4540 ld hl,4045 0703 D7 rst 10h ; Test B, load a,(hl) else ld a,(hl+1) 0704 3A 5E40 ld a,(405E) 0707 E6 F0 and F0 0709 DF rst 18h ; RRCA x 4, RET 070A CB40 bit 0,b 070C 28 02 jr z,0710 070E 0F rrca 070F 0F rrca 0710 E6 03 and 03 0712 28 07 jr z,071B 0714 23 inc hl 0715 3D dec a 0716 28 03 jr z,071B 0718 3D dec a 0719 C0 ret nz 071A 23 inc hl 071B 7E ld a,(hl) 071C A7 and a 071D C0 ret nz 071E 36 01 ld (hl),01 0720 21 D442 ld hl,42D4 0723 CD 6A1A call 1A6A 0726 C9 ret 0727 EF rst 28h ; DE=00F6, push de,bc, B=1, IX=4180 0728 21 4340 ld hl,4043 072B D7 rst 10h ; Test B, load a,(hl) else ld a,(hl+1) 072C A7 and a 072D C8 ret z 072E 2B dec hl 072F 35 dec (hl) 0730 C0 ret nz 0731 23 inc hl 0732 36 00 ld (hl),00 0734 0E 06 ld c,06 0736 C3 050E jp 0E05 ;------------------------------------------------------------------------------- 0739 EF rst 28h ; DE=00F6, push de,bc, B=1, IX=4180 073A 21 3B40 ld hl,403B 073D D7 rst 10h ; Test B, load a,(hl) else ld a,(hl+1) 073E EB ex de,hl 073F 21 3340 ld hl,4033 0742 CD 390C call 0C39 0745 D8 ret c 0746 0E 07 ld c,07 0748 C3 050E jp 0E05 ;------------------------------------------------------------------------------- 074B 06 03 ld b,03 074D 16 0A ld d,0A 074F CD C50C call 0CC5 0752 5F ld e,a 0753 CD C50C call 0CC5 0756 BB cp e 0757 28 08 jr z,0761 0759 15 dec d 075A 20 F3 jr nz,074F 075C 05 dec b 075D F2 4D07 jp p,074D 0760 C9 ret 0761 21 6840 ld hl,4068 0764 7D ld a,l 0765 80 add a,b 0766 80 add a,b 0767 6F ld l,a 0768 7E ld a,(hl) 0769 BB cp e 076A 73 ld (hl),e 076B 20 EF jr nz,075C 076D 7B ld a,e 076E 23 inc hl 076F AE xor (hl) 0770 28 EA jr z,075C 0772 73 ld (hl),e 0773 48 ld c,b 0774 0D dec c 0775 FA 4709 jp m,0947 0778 CA A808 jp z,08A8 077B 0D dec c 077C C2 FE09 jp nz,09FE 077F 21 7740 ld hl,4077 0782 32 7A40 ld (407A),a 0785 4F ld c,a 0786 E6 77 and 77 0788 28 1D jr z,07A7 078A C5 push bc 078B F5 push af 078C 4B ld c,e 078D 06 00 ld b,00 078F E6 07 and 07 0791 DD21 8040 ld ix,4080 0795 C4 AE07 call nz,07AE 0798 79 ld a,c 0799 DF rst 18h ; RRCA x 4, RET 079A 4F ld c,a 079B 04 inc b 079C DD21 8041 ld ix,4180 07A0 F1 pop af 07A1 E6 70 and 70 07A3 C4 AE07 call nz,07AE 07A6 C1 pop bc 07A7 79 ld a,c 07A8 E6 88 and 88 07AA C2 F808 jp nz,08F8 07AD C9 ret 07AE FDCB66 F7 bit 4,(iy+F7) 07B2 28 2F jr z,07E3 07B4 DD7E BE ld a,(ix+BE) 07B7 A7 and a 07B8 28 29 jr z,07E3 07BA C5 push bc 07BB DD7E DA ld a,(ix+DA) 07BE E6 07 and 07 07C0 F5 push af 07C1 A1 and c 07C2 20 1D jr nz,07E1 07C4 F1 pop af 07C5 4F ld c,a 07C6 3A 7A40 ld a,(407A) 07C9 CB40 bit 0,b 07CB C4 1800 call nz,0018 07CE A1 and c 07CF C1 pop bc 07D0 28 11 jr z,07E3 07D2 F5 push af 07D3 C5 push bc 07D4 D5 push de 07D5 E5 push hl 07D6 11 FE00 ld de,00FE 07D9 CD 960C call 0C96 07DC 0E 02 ld c,02 07DE C3 A008 jp 08A0 ;------------------------------------------------------------------------------- 07E1 F1 pop af 07E2 C1 pop bc 07E3 DDCB4E D2 bit 1,(ix+D2) 07E7 28 1C jr z,0805 07E9 79 ld a,c 07EA FE 02 cp 02 07EC 3E 00 ld a,00 07EE 38 05 jr c,07F5 07F0 3E 01 ld a,01 07F2 28 01 jr z,07F5 07F4 3C inc a 07F5 21 7440 ld hl,4074 07F8 85 add a,l 07F9 6F ld l,a 07FA 7E ld a,(hl) 07FB C5 push bc 07FC 4F ld c,a 07FD 3E 0C ld a,0C 07FF DDA6 C0 and (ix+C0) 0802 B9 cp c 0803 C1 pop bc 0804 C0 ret nz 0805 CD 8C0C call 0C8C 0808 D2 470E jp nc,0E47 080B 79 ld a,c 080C 11 00E3 ld de,E300 080F 1F rra 0810 38 09 jr c,081B 0812 1C inc e 0813 1F rra 0814 38 09 jr c,081F 0816 1C inc e 0817 1F rra 0818 38 1D jr c,0837 081A C9 ret 081B 1F rra 081C DA 2308 jp c,0823 081F 1F rra 0820 D2 3708 jp nc,0837 0823 FDCB66 F7 bit 4,(iy+F7) 0827 C2 470E jp nz,0E47 082A 79 ld a,c 082B E6 07 and 07 082D FE 05 cp 05 082F C0 ret nz 0830 1E 00 ld e,00 0832 D5 push de 0833 1E 10 ld e,10 0835 18 18 jr 084F 0837 D5 push de 0838 FDCB66 F7 bit 4,(iy+F7) 083C 20 06 jr nz,0844 083E CB03 rlc e 0840 CB03 rlc e 0842 18 0B jr 084F 0844 79 ld a,c 0845 DD77 DA ld (ix+DA),a 0848 21 7440 ld hl,4074 084B 7D ld a,l 084C 83 add a,e 084D 6F ld l,a 084E 5E ld e,(hl) 084F DD7E C0 ld a,(ix+C0) 0852 A2 and d 0853 B3 or e 0854 DD77 C0 ld (ix+C0),a 0857 DDCB46 D8 bit 0,(ix+D8) 085B 28 07 jr z,0864 085D DDCB86 D8 res 0,(ix+D8) 0861 DD77 C1 ld (ix+C1),a 0864 D1 pop de 0865 7B ld a,e 0866 DF rst 18h ; RRCA x 4, RET 0867 5F ld e,a 0868 7B ld a,e 0869 16 CF ld d,CF 086B CB40 bit 0,b 086D 28 04 jr z,0873 086F 17 rla 0870 17 rla 0871 16 3F ld d,3F 0873 E6 F0 and F0 0875 5F ld e,a 0876 3A 5E40 ld a,(405E) 0879 A2 and d 087A B3 or e 087B 32 5E40 ld (405E),a 087E FDCB66 F7 bit 4,(iy+F7) 0882 C8 ret z 0883 D3 85 out (85),a 0885 F5 push af 0886 C5 push bc 0887 D5 push de 0888 E5 push hl 0889 3A 7140 ld a,(4071) 088C E6 07 and 07 088E D6 02 sub 02 0890 FA 9E08 jp m,089E 0893 D6 03 sub 03 0895 F2 9E08 jp p,089E 0898 11 FE01 ld de,01FE 089B CD 960C call 0C96 089E 0E 03 ld c,03 08A0 CD 050E call 0E05 08A3 E1 pop hl 08A4 D1 pop de 08A5 C1 pop bc 08A6 F1 pop af 08A7 C9 ret 08A8 DDCB46 D7 bit 0,(ix+D7) 08AC 28 10 jr z,08BE 08AE E6 38 and 38 08B0 28 0C jr z,08BE 08B2 21 5740 ld hl,4057 08B5 3E F2 ld a,F2 08B7 A6 and (hl) 08B8 77 ld (hl),a 08B9 24 inc h 08BA 3E F2 ld a,F2 08BC A6 and (hl) 08BD 77 ld (hl),a 08BE 3A 3E40 ld a,(403E) 08C1 21 3E41 ld hl,413E 08C4 B6 or (hl) 08C5 C0 ret nz 08C6 1E 14 ld e,14 08C8 21 7140 ld hl,4071 08CB E5 push hl 08CC 3A 6B40 ld a,(406B) 08CF 1F rra 08D0 1F rra 08D1 1F rra 08D2 E6 07 and 07 08D4 4F ld c,a 08D5 FE 06 cp 06 08D7 20 08 jr nz,08E1 08D9 1E 02 ld e,02 08DB 7E ld a,(hl) 08DC FE 08 cp 08 08DE 79 ld a,c 08DF 28 01 jr z,08E2 08E1 77 ld (hl),a 08E2 E7 rst 20h ; Load A from 4043 or 4044 dep on B 08E3 79 ld a,c 08E4 E1 pop hl 08E5 FE 00 cp 00 08E7 CA 221C jp z,1C22 08EA FE 02 cp 02 08EC C0 ret nz 08ED FD36 E2 14 ld (iy+E2),14 08F1 DB 80 in a,(80) 08F3 E6 20 and 20 08F5 C0 ret nz 08F6 34 inc (hl) 08F7 C9 ret 08F8 11 0408 ld de,0804 08FB 06 00 ld b,00 08FD DD21 8040 ld ix,4080 0901 CB5F bit 3,a 0903 28 0B jr z,0910 0905 F5 push af 0906 C5 push bc 0907 D5 push de 0908 E5 push hl 0909 CD 2009 call 0920 090C E1 pop hl 090D D1 pop de 090E C1 pop bc 090F F1 pop af 0910 DF rst 18h ; RRCA x 4, RET 0911 CB5F bit 3,a 0913 C8 ret z 0914 04 inc b 0915 DD21 8041 ld ix,4180 0919 7A ld a,d 091A DF rst 18h ; RRCA x 4, RET 091B 57 ld d,a 091C CD 2009 call 0920 091F C9 ret 0920 0E 02 ld c,02 0922 3A 6D40 ld a,(406D) 0925 CB40 bit 0,b 0927 C4 1800 call nz,0018 092A FDCB66 F7 bit 4,(iy+F7) 092E 20 0A jr nz,093A 0930 CB5F bit 3,a 0932 C2 050E jp nz,0E05 0935 0E 04 ld c,04 0937 C3 050E jp 0E05 ;------------------------------------------------------------------------------- 093A CB5F bit 3,a 093C C8 ret z 093D DD7E BE ld a,(ix+BE) 0940 A7 and a 0941 C8 ret z 0942 0E 04 ld c,04 0944 C3 050E jp 0E05 ;------------------------------------------------------------------------------- 0947 11 0101 ld de,0101 094A 06 00 ld b,00 094C DD21 8040 ld ix,4080 0950 F5 push af 0951 E6 0F and 0F 0953 28 09 jr z,095E 0955 C5 push bc 0956 D5 push de 0957 E5 push hl 0958 CD 6809 call 0968 095B E1 pop hl 095C D1 pop de 095D C1 pop bc 095E 04 inc b 095F DD21 8041 ld ix,4180 0963 F1 pop af 0964 DF rst 18h ; RRCA x 4, RET 0965 E6 0F and 0F 0967 C8 ret z 0968 CB47 bit 0,a 096A C4 310A call nz,0A31 096D E6 0C and 0C 096F C8 ret z 0970 5F ld e,a 0971 3E 06 ld a,06 0973 DDA6 D2 and (ix+D2) 0976 28 06 jr z,097E 0978 DD7E BE ld a,(ix+BE) 097B FE 02 cp 02 097D C0 ret nz 097E CD 8C0C call 0C8C 0981 D0 ret nc 0982 3E 00 ld a,00 0984 FDBE F1 cp (iy+F1) 0987 28 05 jr z,098E 0989 DD7E BE ld a,(ix+BE) 098C A7 and a 098D C8 ret z 098E 7B ld a,e 098F FE 0C cp 0C 0991 C8 ret z 0992 0E 00 ld c,00 0994 CB57 bit 2,a 0996 20 14 jr nz,09AC 0998 CB5F bit 3,a 099A C8 ret z 099B 0C inc c 099C 3E 08 ld a,08 099E CD F509 call 09F5 09A1 C8 ret z 09A2 DDCB8E C0 res 1,(ix+C0) 09A6 11 08F3 ld de,F308 09A9 C3 D609 jp 09D6 ;------------------------------------------------------------------------------- 09AC DDCB66 D7 bit 4,(ix+D7) 09B0 20 17 jr nz,09C9 09B2 3E 04 ld a,04 09B4 CD F509 call 09F5 09B7 C0 ret nz 09B8 3E 02 ld a,02 09BA DDAE C0 xor (ix+C0) 09BD DD77 C0 ld (ix+C0),a 09C0 78 ld a,b 09C1 3C inc a 09C2 FDAE DE xor (iy+DE) 09C5 FD77 DE ld (iy+DE),a 09C8 C9 ret 09C9 3E 04 ld a,04 09CB CD F509 call 09F5 09CE C8 ret z 09CF DDCBCE C0 set 1,(ix+C0) 09D3 11 04F3 ld de,F304 09D6 7A ld a,d 09D7 DDA6 D7 and (ix+D7) 09DA B3 or e 09DB DD77 D7 ld (ix+D7),a 09DE 78 ld a,b 09DF 3C inc a 09E0 0D dec c 09E1 20 06 jr nz,09E9 09E3 2F cpl 09E4 FDA6 DE and (iy+DE) 09E7 18 03 jr 09EC 09E9 FDB6 DE or (iy+DE) 09EC FD77 DE ld (iy+DE),a 09EF 0E 05 ld c,05 09F1 CD 050E call 0E05 09F4 C9 ret 09F5 CB40 bit 0,b 09F7 C4 1800 call nz,0018 09FA FDA6 E9 and (iy+E9) 09FD C9 ret 09FE 06 01 ld b,01 0A00 DD21 8041 ld ix,4180 0A04 07 rlca 0A05 F5 push af 0A06 DC 110A call c,0A11 0A09 05 dec b 0A0A DD21 8040 ld ix,4080 0A0E F1 pop af 0A0F 07 rlca 0A10 D0 ret nc 0A11 DDCB76 D7 bit 6,(ix+D7) 0A15 C8 ret z 0A16 DD7E BE ld a,(ix+BE) 0A19 FE 03 cp 03 0A1B D0 ret nc 0A1C 3E 40 ld a,40 0A1E CB40 bit 0,b 0A20 28 01 jr z,0A23 0A22 07 rlca 0A23 FDA6 EF and (iy+EF) 0A26 C8 ret z 0A27 DDCBEE D7 set 5,(ix+D7) 0A2B 0E 05 ld c,05 0A2D CD 050E call 0E05 0A30 C9 ret 0A31 F5 push af 0A32 C5 push bc 0A33 E5 push hl 0A34 7E ld a,(hl) 0A35 A2 and d 0A36 20 01 jr nz,0A39 0A38 1D dec e 0A39 4B ld c,e 0A3A CD 050E call 0E05 0A3D E1 pop hl 0A3E C1 pop bc 0A3F F1 pop af 0A40 C9 ret 0A41 0E 0E ld c,0E 0A43 06 00 ld b,00 0A45 DD21 8040 ld ix,4080 0A49 CD 880A call 0A88 0A4C F5 push af 0A4D 04 inc b 0A4E DD21 8041 ld ix,4180 0A52 CD 880A call 0A88 0A55 DF rst 18h ; RRCA x 4, RET 0A56 D1 pop de 0A57 B2 or d 0A58 CD E90C call 0CE9 0A5B 0D dec c 0A5C 20 E5 jr nz,0A43 0A5E EF rst 28h ; DE=00F6, push de,bc, B=1, IX=4180 0A5F DD7E D7 ld a,(ix+D7) 0A62 CB67 bit 4,a 0A64 C8 ret z 0A65 E6 0C and 0C 0A67 C0 ret nz 0A68 DD7E BE ld a,(ix+BE) 0A6B A7 and a 0A6C C8 ret z 0A6D FE 03 cp 03 0A6F D0 ret nc 0A70 21 5E40 ld hl,405E 0A73 3E 01 ld a,01 0A75 CB40 bit 0,b 0A77 CA 7B0A jp z,0A7B 0A7A 07 rlca 0A7B DDCB76 C4 bit 6,(ix+C4) 0A7F 28 04 jr z,0A85 0A81 2F cpl 0A82 A6 and (hl) 0A83 77 ld (hl),a 0A84 C9 ret 0A85 B6 or (hl) 0A86 77 ld (hl),a 0A87 C9 ret 0A88 DD7E BE ld a,(ix+BE) 0A8B 57 ld d,a 0A8C FE 03 cp 03 0A8E 20 0A jr nz,0A9A 0A90 3E 0F ld a,0F 0A92 DDCB66 C2 bit 4,(ix+C2) 0A96 C8 ret z 0A97 3E 08 ld a,08 0A99 C9 ret 0A9A FD5E F1 ld e,(iy+F1) 0A9D 1D dec e 0A9E 79 ld a,c 0A9F FE 0B cp 0B 0AA1 38 6E jr c,0B11 0AA3 DD34 C4 inc (ix+C4) 0AA6 3A 5E40 ld a,(405E) 0AA9 DF rst 18h ; RRCA x 4, RET 0AAA CB40 bit 0,b 0AAC 28 02 jr z,0AB0 0AAE 0F rrca 0AAF 0F rrca 0AB0 E6 03 and 03 0AB2 21 4540 ld hl,4045 0AB5 85 add a,l 0AB6 6F ld l,a 0AB7 D7 rst 10h ; Test B, load a,(hl) else ld a,(hl+1) 0AB8 A7 and a 0AB9 20 2B jr nz,0AE6 0ABB 3A 7140 ld a,(4071) 0ABE FE 01 cp 01 0AC0 20 03 jr nz,0AC5 0AC2 3E FF ld a,FF 0AC4 C9 ret 0AC5 21 4040 ld hl,4040 0AC8 7A ld a,d 0AC9 FE 0C cp 0C 0ACB 28 07 jr z,0AD4 0ACD FE 05 cp 05 0ACF 38 03 jr c,0AD4 0AD1 21 4140 ld hl,4041 0AD4 D7 rst 10h ; Test B, load a,(hl) else ld a,(hl+1) 0AD5 E6 0E and 0E 0AD7 C6 27 add a,27 0AD9 6F ld l,a 0ADA 79 ld a,c 0ADB FE 0D cp 0D 0ADD 30 01 jr nc,0AE0 0ADF 23 inc hl 0AE0 1F rra 0AE1 7D ld a,l 0AE2 17 rla 0AE3 C3 900B jp 0B90 ;------------------------------------------------------------------------------- 0AE6 5F ld e,a 0AE7 D5 push de 0AE8 E5 push hl 0AE9 ED5B 6D41 ld de,(416D) 0AED CD 960C call 0C96 0AF0 E1 pop hl 0AF1 D1 pop de 0AF2 DD7E C4 ld a,(ix+C4) 0AF5 17 rla 0AF6 17 rla 0AF7 30 C2 jr nc,0ABB 0AF9 CD BA0B call 0BBA 0AFC 79 ld a,c 0AFD FE 0D cp 0D 0AFF 3E 0F ld a,0F 0B01 D0 ret nc 0B02 79 ld a,c 0B03 1F rra 0B04 F5 push af 0B05 7E ld a,(hl) 0B06 E6 0F and 0F 0B08 5F ld e,a 0B09 F1 pop af 0B0A 7B ld a,e 0B0B D8 ret c 0B0C 7E ld a,(hl) 0B0D E6 F0 and F0 0B0F DF rst 18h ; RRCA x 4, RET 0B10 C9 ret 0B11 DD7E BE ld a,(ix+BE) 0B14 D6 01 sub 01 0B16 E6 FE and FE 0B18 28 0B jr z,0B25 0B1A 3A 7140 ld a,(4071) 0B1D 57 ld d,a 0B1E A7 and a 0B1F 20 07 jr nz,0B28 0B21 FD36 E2 01 ld (iy+E2),01 0B25 3E 0F ld a,0F 0B27 C9 ret 0B28 21 4040 ld hl,4040 0B2B D7 rst 10h ; Test B, load a,(hl) else ld a,(hl+1) 0B2C 7A ld a,d 0B2D D6 04 sub 04 0B2F F2 3C0B jp p,0B3C 0B32 FE FD cp FD 0B34 28 06 jr z,0B3C 0B36 7E ld a,(hl) 0B37 23 inc hl 0B38 BE cp (hl) 0B39 3E 00 ld a,00 0B3B C0 ret nz 0B3C E5 push hl ; PUSH HL 1 0B3D 7A ld a,d 0B3E D6 01 sub 01 0B40 E6 07 and 07 0B42 07 rlca 0B43 57 ld d,a 0B44 07 rlca 0B45 07 rlca 0B46 82 add a,d 0B47 57 ld d,a 0B48 3A 7140 ld a,(4071) 0B4B E6 07 and 07 0B4D FE 06 cp 06 0B4F 79 ld a,c 0B50 38 0C jr c,0B5E 0B52 DB 80 in a,(80) ; Input from Port 80 0B54 CB6F bit 5,a 0B56 79 ld a,c ; Overwrite port data with reg C 0B57 20 05 jr nz,0B5E 0B59 3D dec a 0B5A 20 02 jr nz,0B5E 0B5C 3E 0A ld a,0A ; Add 10 to the value 0B5E 82 add a,d 0B5F 3D dec a ; Then decrement the result 0B60 21 1905 ld hl,0519 ; Index to very long data table 0B63 E5 push hl 0B64 5F ld e,a ; $00xx from A into DE 0B65 16 00 ld d,00 0B67 19 add hl,de ; Add HL += DE 0B68 EB ex de,hl ; Temp save it to DE 0B69 E1 pop hl ; Restore data table address 0B6A D5 push de ; Temp save the offset calculation 0B6B 11 4600 ld de,0046 ; Make a new offset of $0046 0B6E 19 add hl,de ; Add it 0519 + 0046 = 055F 0B6F D1 pop de ; Restore original offset calc 0B70 7A ld a,d ; Compare HL = DE ? 0B71 BC cp h 0B72 38 02 jr c,0B76 0B74 7B ld a,e 0B75 BD cp l 0B76 E1 pop hl ; POP HL 1, see 0B3C 0B77 1A ld a,(de) 0B78 30 19 jr nc,0B93 0B7A FE 0F cp 0F 0B7C 20 03 jr nz,0B81 0B7E 3E FF ld a,FF 0B80 C9 ret 0B81 1F rra 0B82 30 0C jr nc,0B90 0B84 5F ld e,a 0B85 21 4040 ld hl,4040 0B88 D7 rst 10h ; Test B, load a,(hl) else ld a,(hl+1) 0B89 E6 0C and 0C 0B8B 57 ld d,a 0B8C 0F rrca 0B8D 82 add a,d 0B8E 82 add a,d 0B8F 83 add a,e 0B90 E6 7F and 7F 0B92 1F rra 0B93 F5 push af 0B94 6F ld l,a 0B95 3A 7140 ld a,(4071) 0B98 FE 01 cp 01 0B9A 20 06 jr nz,0BA2 0B9C 7D ld a,l 0B9D C6 40 add a,40 0B9F 6F ld l,a 0BA0 26 40 ld h,40 0BA2 7E ld a,(hl) 0BA3 E6 0F and 0F 0BA5 57 ld d,a 0BA6 F1 pop af 0BA7 7A ld a,d 0BA8 D8 ret c 0BA9 7E ld a,(hl) 0BAA E6 F0 and F0 0BAC DF rst 18h ; RRCA x 4, RET 0BAD C9 ret 0BAE 3A 5E40 ld a,(405E) 0BB1 CB40 bit 0,b 0BB3 20 02 jr nz,0BB7 0BB5 17 rla 0BB6 17 rla 0BB7 E6 C0 and C0 0BB9 C9 ret 0BBA C5 push bc 0BBB 06 00 ld b,00 0BBD 21 C50B ld hl,0BC5 0BC0 4B ld c,e 0BC1 0D dec c 0BC2 09 add hl,bc 0BC3 C1 pop bc 0BC4 C9 ret 0BC5 20 21 jr nz,0BE8 ; Adjust 5 digits 0BC7 22 2324 ld (2423),hl 0BCA 25 dec h 0BCB 26 27 ld h,27 0BCD 28 29 jr z,0BF8 0BCF 30 1A jr nc,0BEB 0BD1 F3 di ; Disable INTerrupts 0BD2 77 ld (hl),a 0BD3 1B dec de 0BD4 2B dec hl 0BD5 1A ld a,(de) 0BD6 77 ld (hl),a 0BD7 2B dec hl 0BD8 1B dec de 0BD9 1A ld a,(de) 0BDA 77 ld (hl),a 0BDB FB ei 0BDC 2B dec hl 0BDD 1B dec de 0BDE C9 ret 0BDF 0E 03 ld c,03 0BE1 36 00 ld (hl),00 0BE3 2B dec hl 0BE4 0D dec c 0BE5 20 FA jr nz,0BE1 0BE7 C9 ret ;------------------------------------------------------------------------------- ; Adjust 5 digits for BCD output to displays ;------------------------------------------------------------------------------- 0BE8 0E 05 ld c,05 ; 5 digits per display 0BEA AF xor a ; Clear A 0BEB 1A ld a,(de) ; Get data from table at DE 0BEC 8E adc a,(hl) ; Add with CY from table at HL 0BED 27 daa ; Decimal adjust for BCD 0BEE 77 ld (hl),a ; Save it back to HL 0BEF 2B dec hl ; Decrement both DE and HL pointers 0BF0 1B dec de 0BF1 0D dec c ; And decrement the digit counter 0BF2 C8 ret z ; returning when finished 0BF3 18 F6 jr 0BEB ; Else continue thru loop ;------------------------------------------------------------------------------- 0BF5 C5 push bc 0BF6 D5 push de 0BF7 E5 push hl 0BF8 21 8D40 ld hl,408D 0BFB CD D00B call 0BD0 0BFE 0E 07 ld c,07 0C00 CD E10B call 0BE1 0C03 E1 pop hl 0C04 4E ld c,(hl) 0C05 2B dec hl 0C06 46 ld b,(hl) 0C07 79 ld a,c 0C08 80 or b 0C09 28 1A jr z,0C25 0C0B 78 ld a,b 0C0C 1F rra 0C0D 47 ld b,a 0C0E 79 ld a,c 0C0F 1F rra 0C10 4F ld c,a 0C11 C5 push bc 0C12 21 8840 ld hl,4088 0C15 11 8D40 ld de,408D 0C18 DC E80B call c,0BE8 ; Adjust 5 digits 0C1B 21 8D40 ld hl,408D 0C1E 5D ld e,l 0C1F CD E80B call 0BE8 0C22 C1 pop bc 0C23 18 E2 jr 0C07 ;------------------------------------------------------------------------------- ; Adds 50 to each digit from table at 4087 - 408A ; *** This appears to be how they transmit price per gallon to the pump *** ;------------------------------------------------------------------------------- 0C25 D1 pop de 0C26 C1 pop bc 0C27 21 8740 ld hl,4087 0C2A 3E 50 ld a,50 0C2C 0E 04 ld c,04 0C2E A7 and a 0C2F 8E adc a,(hl) 0C30 27 daa 0C31 77 ld (hl),a 0C32 2B dec hl 0C33 0D dec c 0C34 C8 ret z 0C35 3E 00 ld a,00 0C37 18 F6 jr 0C2F 0C39 0E 03 ld c,03 0C3B D7 rst 10h ; Test B, load a,(hl) else ld a,(hl+1) 0C3C EB ex de,hl 0C3D 62 ld h,d 0C3E 1A ld a,(de) 0C3F BE cp (hl) 0C40 D8 ret c 0C41 C0 ret nz 0C42 13 inc de 0C43 23 inc hl 0C44 0D dec c 0C45 20 F7 jr nz,0C3E 0C47 C9 ret 0C48 D7 rst 10h ; Test B, load a,(hl) else ld a,(hl+1) 0C49 54 ld d,h 0C4A D5 push de 0C4B EB ex de,hl 0C4C 21 5140 ld hl,4051 0C4F D7 rst 10h ; Test B, load a,(hl) else ld a,(hl+1) 0C50 CD F50B call 0BF5 0C53 21 8440 ld hl,4084 0C56 CD D70C call 0CD7 0C59 57 ld d,a 0C5A CD D70C call 0CD7 0C5D 4F ld c,a 0C5E CD D70C call 0CD7 0C61 5F ld e,a 0C62 E1 pop hl 0C63 F3 di ; Disable INTerrupts 0C64 73 ld (hl),e 0C65 2B dec hl 0C66 71 ld (hl),c 0C67 2B dec hl 0C68 72 ld (hl),d 0C69 FB ei 0C6A C9 ret 0C6B 21 4B40 ld hl,404B 0C6E D5 push de 0C6F CD 390C call 0C39 0C72 D1 pop de 0C73 D8 ret c 0C74 54 ld d,h 0C75 13 inc de 0C76 13 inc de 0C77 21 4D40 ld hl,404D 0C7A D7 rst 10h ; Test B, load a,(hl) else ld a,(hl+1) 0C7B C3 D00B jp 0BD0 ;------------------------------------------------------------------------------- 0C7E 0E F6 ld c,F6 0C80 16 FF ld d,FF 0C82 81 add a,c 0C83 14 inc d 0C84 38 FC jr c,0C82 0C86 91 sub c 0C87 4F ld c,a 0C88 7A ld a,d 0C89 DF rst 18h ; RRCA x 4, RET 0C8A B1 or c 0C8B C9 ret 0C8C DD7E BE ld a,(ix+BE) 0C8F FE 0C cp 0C 0C91 3F ccf 0C92 C8 ret z 0C93 FE 05 cp 05 0C95 C9 ret 0C96 7B ld a,e 0C97 CB40 bit 0,b 0C99 28 05 jr z,0CA0 0C9B 7A ld a,d 0C9C DF rst 18h ; RRCA x 4, RET 0C9D 57 ld d,a 0C9E 7B ld a,e 0C9F DF rst 18h ; RRCA x 4, RET 0CA0 21 5D40 ld hl,405D 0CA3 A6 and (hl) 0CA4 B2 or d 0CA5 77 ld (hl),a 0CA6 D3 84 out (84),a 0CA8 C9 ret 0CA9 21 4040 ld hl,4040 0CAC D7 rst 10h ; Test B, load a,(hl) else ld a,(hl+1) 0CAD 23 inc hl 0CAE 77 ld (hl),a 0CAF E6 0E and 0E 0CB1 C6 28 add a,28 0CB3 6F ld l,a 0CB4 7E ld a,(hl) 0CB5 2B dec hl 0CB6 B6 or (hl) 0CB7 C2 0A01 jp nz,010A 0CBA CD 0E10 call 100E 0CBD D1 pop de 0CBE DD36 BE 00 ld (ix+BE),00 0CC2 C3 200F jp 0F20 ;------------------------------------------------------------------------------- 0CC5 48 ld c,b 0CC6 DB 85 in a,(85) 0CC8 0D dec c 0CC9 F8 ret m 0CCA DB 84 in a,(84) 0CCC E6 3F and 3F 0CCE 0D dec c 0CCF F8 ret m 0CD0 DB 87 in a,(87) 0CD2 0D dec c 0CD3 F8 ret m 0CD4 DB 81 in a,(81) 0CD6 C9 ret 0CD7 7E ld a,(hl) 0CD8 E6 0F and 0F 0CDA 5F ld e,a 0CDB 23 inc hl 0CDC 7E ld a,(hl) 0CDD E6 F0 and F0 0CDF B3 or e 0CE0 DF rst 18h ; RRCA x 4, RET 0CE1 C9 ret ;------------------------------------------------------------------------------- ; Port 86 and Port 80 manipulation ; Output A->86, C->80, $00->80 ;------------------------------------------------------------------------------- 0CE2 C5 push bc ; Save BC for time delay 0CE3 06 00 ld b,00 ; Run a time delay here 0CE5 00 nop ; A couple of clock cycles 0CE6 10 FD djnz 0CE5 ; and loop back thru 0CE8 C1 pop bc ; Retrieve original BC 0CE9 D3 86 out (86),a ; 0CEB 79 ld a,c ; Get C into A for output 0CEC D3 80 out (80),a ; Output C Register to Port 80 0CEE AF xor a ; Zero out A 0CEF D3 80 out (80),a ; Clear the port 0CF1 C9 ret 0CF2 11 8640 ld de,4086 0CF5 EB ex de,hl 0CF6 CD D00B call 0BD0 0CF9 23 inc hl 0CFA 36 00 ld (hl),00 0CFC 11 8740 ld de,4087 0CFF CD 540D call 0D54 0D02 21 4A40 ld hl,404A 0D05 D7 rst 10h ; Test B, load a,(hl) else ld a,(hl+1) 0D06 11 8D40 ld de,408D 0D09 EB ex de,hl 0D0A CD D00B call 0BD0 0D0D 36 00 ld (hl),00 0D0F 0E 06 ld c,06 0D11 C5 push bc 0D12 06 00 ld b,00 0D14 04 inc b 0D15 21 8C40 ld hl,408C 0D18 11 8940 ld de,4089 0D1B 0E 03 ld c,03 0D1D CD EA0B call 0BEA ; DAA 3 digits from (DE) to (HL) 0D20 38 F2 jr c,0D14 0D22 21 8C40 ld hl,408C 0D25 11 8640 ld de,4086 0D28 0E 03 ld c,03 0D2A CD EA0B call ; DAA 3 digits from (DE) to (HL) 0D2D 05 dec b 0D2E 50 ld d,b 0D2F C1 pop bc 0D30 1E 03 ld e,03 0D32 21 4D40 ld hl,404D 0D35 D7 rst 10h ; Test B, load a,(hl) else ld a,(hl+1) 0D36 CD 650D call 0D65 0D39 1E 04 ld e,04 0D3B 16 00 ld d,00 0D3D 21 8D40 ld hl,408D 0D40 CD 650D call 0D65 0D43 0D dec c 0D44 20 CB jr nz,0D11 0D46 3A 7140 ld a,(4071) 0D49 FE 02 cp 02 0D4B C0 ret nz 0D4C 21 4D40 ld hl,404D 0D4F D7 rst 10h ; Test B, load a,(hl) else ld a,(hl+1) 0D50 E6 F0 and F0 0D52 77 ld (hl),a 0D53 C9 ret ;------------------------------------------------------------------------------- ; Negate 3 BCD digits from (HL) output to (DE) ;------------------------------------------------------------------------------- 0D54 3E 99 ld a,99 0D56 96 sub (hl) 0D57 12 ld (de),a 0D58 23 inc hl 0D59 13 inc de 0D5A 3E 99 ld a,99 0D5C 96 sub (hl) 0D5D 12 ld (de),a 0D5E 23 inc hl 0D5F 13 inc de 0D60 3E 9A ld a,9A ; 1001 1010 0D62 96 sub (hl) 0D63 12 ld (de),a 0D64 C9 ret ;------------------------------------------------------------------------------- 0D65 C5 push bc 0D66 43 ld b,e 0D67 7A ld a,d 0D68 ED6F rld 0D6A 2B dec hl 0D6B 10 FB djnz 0D68 0D6D C1 pop bc 0D6E C9 ret 0D6F 21 7040 ld hl,4070 0D72 7E ld a,(hl) 0D73 FDCB7E F7 bit 7,(iy+F7) 0D77 28 02 jr z,0D7B 0D79 C6 08 add a,08 0D7B 11 0A05 ld de,050A 0D7E 26 00 ld h,00 0D80 6F ld l,a 0D81 19 add hl,de 0D82 EB ex de,hl 0D83 21 4D40 ld hl,404D 0D86 D7 rst 10h ; Test B, load a,(hl) else ld a,(hl+1) 0D87 EB ex de,hl 0D88 CD F50B call 0BF5 0D8B 11 8640 ld de,4086 0D8E 21 3D40 ld hl,403D 0D91 D7 rst 10h ; Test B, load a,(hl) else ld a,(hl+1) 0D92 C3 D00B jp 0BD0 ;------------------------------------------------------------------------------- 0D95 21 4A40 ld hl,404A 0D98 D7 rst 10h ; Test B, load a,(hl) else ld a,(hl+1) 0D99 E6 F0 and F0 0D9B 77 ld (hl),a 0D9C 21 4D40 ld hl,404D 0D9F 11 3D40 ld de,403D 0DA2 CD 480C call 0C48 0DA5 21 3D40 ld hl,403D 0DA8 D7 rst 10h ; Test B, load a,(hl) else ld a,(hl+1) 0DA9 E6 F0 and F0 0DAB 77 ld (hl),a 0DAC 21 3B40 ld hl,403B 0DAF 11 4840 ld de,4048 0DB2 D7 rst 10h ; Test B, load a,(hl) else ld a,(hl+1) 0DB3 EB ex de,hl 0DB4 CD 390C call 0C39 0DB7 C8 ret z 0DB8 21 4D40 ld hl,404D 0DBB D7 rst 10h ; Test B, load a,(hl) else ld a,(hl+1) 0DBC 3A 7140 ld a,(4071) 0DBF FE 02 cp 02 0DC1 3E 10 ld a,10 0DC3 CA 2C0C jp z,0C2C 0DC6 3E 01 ld a,01 0DC8 C3 2C0C jp 0C2C ;------------------------------------------------------------------------------- 0DCB 21 3940 ld hl,4039 0DCE D7 rst 10h ; Test B, load a,(hl) else ld a,(hl+1) 0DCF E6 F0 and F0 0DD1 DF rst 18h ; RRCA x 4, RET 0DD2 4F ld c,a 0DD3 21 8440 ld hl,4084 0DD6 36 00 ld (hl),00 0DD8 23 inc hl 0DD9 36 01 ld (hl),01 0DDB 23 inc hl 0DDC 3E 9A ld a,9A 0DDE 91 sub c 0DDF C6 20 add a,20 0DE1 27 daa 0DE2 77 ld (hl),a 0DE3 11 3D40 ld de,403D 0DE6 EB ex de,hl 0DE7 D7 rst 10h ; Test B, load a,(hl) else ld a,(hl+1) 0DE8 0E 03 ld c,03 0DEA C3 EA0B jp 0BEA ; DAA 3 digits from (DE) to (HL) ;------------------------------------------------------------------------------- 0DED 21 4D40 ld hl,404D 0DF0 11 0540 ld de,4005 0DF3 D7 rst 10h ; Test B, load a,(hl) else ld a,(hl+1) 0DF4 EB ex de,hl 0DF5 D7 rst 10h ; Test B, load a,(hl) else ld a,(hl+1) 0DF6 CD D00B call 0BD0 0DF9 21 4A40 ld hl,404A 0DFC 11 0240 ld de,4002 0DFF D7 rst 10h ; Test B, load a,(hl) else ld a,(hl+1) 0E00 EB ex de,hl 0E01 D7 rst 10h ; Test B, load a,(hl) else ld a,(hl+1) 0E02 C3 D00B jp 0BD0 ;------------------------------------------------------------------------------- 0E05 79 ld a,c 0E06 32 7940 ld (4079),a 0E09 21 3E40 ld hl,403E 0E0C D7 rst 10h ; Test B, load a,(hl) else ld a,(hl+1) 0E0D A7 and a 0E0E 32 8140 ld (4081),a 0E11 79 ld a,c 0E12 1F rra 0E13 F5 push af 0E14 85 add a,(hl) 0E15 85 add a,(hl) 0E16 85 add a,(hl) 0E17 85 add a,(hl) 0E18 11 5F05 ld de,055F 0E1B 26 00 ld h,00 0E1D 6F ld l,a 0E1E 19 add hl,de 0E1F EB ex de,hl 0E20 F1 pop af 0E21 1A ld a,(de) 0E22 D4 1800 call nc,0018 0E25 E6 0F and 0F 0E27 57 ld d,a 0E28 D5 push de 0E29 07 rlca 0E2A 16 00 ld d,00 0E2C 5F ld e,a 0E2D 21 AD05 ld hl,05AD 0E30 19 add hl,de 0E31 D1 pop de 0E32 7E ld a,(hl) 0E33 23 inc hl 0E34 66 ld h,(hl) 0E35 6F ld l,a 0E36 E9 jp (hl) 0E37 CD ED0E call 0EED 0E3A CA C91D jp z,1DC9 0E3D DD7E C2 ld a,(ix+C2) 0E40 FE 14 cp 14 0E42 16 00 ld d,00 0E44 DA CF0E jp c,0ECF 0E47 3A 7A40 ld a,(407A) 0E4A 57 ld d,a 0E4B 3E 0F ld a,0F 0E4D CB40 bit 0,b 0E4F C4 1800 call nz,0018 0E52 21 6D40 ld hl,406D 0E55 A2 and d 0E56 AE xor (hl) 0E57 77 ld (hl),a 0E58 2B dec hl 0E59 77 ld (hl),a 0E5A C9 ret 0E5B 3A 7940 ld a,(4079) 0E5E FE 03 cp 03 0E60 CA 470E jp z,0E47 0E63 FE 04 cp 04 0E65 CA 470E jp z,0E47 0E68 C9 ret 0E69 3A 7140 ld a,(4071) 0E6C 14 inc d 0E6D 14 inc d 0E6E 3D dec a 0E6F C8 ret z 0E70 5F ld e,a 0E71 3A 8140 ld a,(4081) 0E74 FE 01 cp 01 0E76 7B ld a,e 0E77 C4 6A1E call nz,1E6A 0E7A FE 04 cp 04 0E7C D0 ret nc 0E7D FE 03 cp 03 0E7F 20 06 jr nz,0E87 0E81 DDCBCE D7 set 1,(ix+D7) 0E85 18 48 jr 0ECF 0E87 15 dec d 0E88 15 dec d 0E89 3A 6940 ld a,(4069) 0E8C CB40 bit 0,b 0E8E C4 1800 call nz,0018 0E91 CB47 bit 0,a 0E93 28 3A jr z,0ECF 0E95 14 inc d 0E96 3A 7740 ld a,(4077) 0E99 E6 01 and 01 0E9B 28 2B jr z,0EC8 0E9D DD7E D7 ld a,(ix+D7) 0EA0 CB67 bit 4,a 0EA2 28 04 jr z,0EA8 0EA4 E6 0C and 0C 0EA6 28 27 jr z,0ECF 0EA8 DD7E D7 ld a,(ix+D7) 0EAB CB77 bit 6,a 0EAD 28 04 jr z,0EB3 0EAF CB6F bit 5,a 0EB1 28 1C jr z,0ECF 0EB3 FDCB66 F7 bit 4,(iy+F7) 0EB7 28 0C jr z,0EC5 0EB9 3A 6D40 ld a,(406D) 0EBC CB40 bit 0,b 0EBE C4 1800 call nz,0018 0EC1 CB5F bit 3,a 0EC3 28 0A jr z,0ECF 0EC5 14 inc d 0EC6 18 07 jr 0ECF 0EC8 DDCB46 D2 bit 0,(ix+D2) 0ECC 20 CF jr nz,0E9D 0ECE 15 dec d 0ECF 21 3E40 ld hl,403E 0ED2 D7 rst 10h ; Test B, load a,(hl) else ld a,(hl+1) 0ED3 7A ld a,d 0ED4 FE 0A cp 0A 0ED6 F3 di ; Disable INTerrupts 0ED7 5E ld e,(hl) 0ED8 D5 push de 0ED9 36 09 ld (hl),09 0EDB 28 01 jr z,0EDE 0EDD 72 ld (hl),d 0EDE FB ei 0EDF 87 add a,a 0EE0 16 00 ld d,00 0EE2 5F ld e,a 0EE3 21 9305 ld hl,0593 0EE6 19 add hl,de 0EE7 56 ld d,(hl) 0EE8 23 inc hl 0EE9 66 ld h,(hl) 0EEA 6A ld l,d 0EEB D1 pop de 0EEC E9 jp (hl) 0EED 3A 7940 ld a,(4079) 0EF0 FE 01 cp 01 0EF2 C9 ret 0EF3 CD ED0E call 0EED 0EF6 CA C91D jp z,1DC9 0EF9 C3 CF0E jp 0ECF ;------------------------------------------------------------------------------- 0EFC CD ED0E call 0EED 0EFF CA C91D jp z,1DC9 0F02 C3 9D0E jp 0E9D ;------------------------------------------------------------------------------- 0F05 DD7E BF ld a,(ix+BF) 0F08 DD77 BE ld (ix+BE),a 0F0B D6 04 sub 04 0F0D 1F rra 0F0E D2 EE10 jp nc,10EE 0F11 1F rra 0F12 D8 ret c 0F13 37 scf 0F14 C3 E010 jp 10E0 ;------------------------------------------------------------------------------- 0F17 DDCB8E D7 res 1,(ix+D7) 0F1B 79 ld a,c 0F1C FE 06 cp 06 0F1E 28 51 jr z,0F71 0F20 D5 push de 0F21 1D dec e 0F22 20 08 jr nz,0F2C 0F24 DD7E C1 ld a,(ix+C1) 0F27 DD77 C0 ld (ix+C0),a 0F2A 18 09 jr 0F35 0F2C 3E 8E ld a,8E 0F2E DDA6 D2 and (ix+D2) 0F31 DF rst 18h ; RRCA x 4, RET 0F32 DD77 D2 ld (ix+D2),a 0F35 ED5B 6F41 ld de,(416F) 0F39 CD 960C call 0C96 0F3C 21 6540 ld hl,4065 0F3F 7D ld a,l 0F40 80 add a,b 0F41 6F ld l,a 0F42 AF xor a 0F43 77 ld (hl),a 0F44 21 6440 ld hl,4064 0F47 78 ld a,b 0F48 3C inc a 0F49 2F cpl 0F4A A6 and (hl) 0F4B 77 ld (hl),a 0F4C D1 pop de 0F4D 7B ld a,e 0F4E FE 03 cp 03 0F50 30 14 jr nc,0F66 0F52 78 ld a,b 0F53 3C inc a 0F54 DDCB4E C0 bit 1,(ix+C0) 0F58 20 06 jr nz,0F60 0F5A 2F cpl 0F5B FDA6 DE and (iy+DE) 0F5E 18 03 jr 0F63 0F60 FDB6 DE or (iy+DE) 0F63 FD77 DE ld (iy+DE),a 0F66 3E D3 ld a,D3 0F68 DDA6 D7 and (ix+D7) 0F6B DD77 D7 ld (ix+D7),a 0F6E C3 A808 jp 08A8 ;------------------------------------------------------------------------------- 0F71 50 ld d,b 0F72 3A 7140 ld a,(4071) 0F75 FE 01 cp 01 0F77 CA 311E jp z,1E31 0F7A 06 01 ld b,01 0F7C DD21 8041 ld ix,4180 0F80 DB 80 in a,(80) 0F82 E6 10 and 10 0F84 28 05 jr z,0F8B 0F86 05 dec b 0F87 DD21 8040 ld ix,4080 0F8B 21 4040 ld hl,4040 0F8E D7 rst 10h ; Test B, load a,(hl) else ld a,(hl+1) 0F8F E6 0E and 0E 0F91 C6 27 add a,27 0F93 6F ld l,a 0F94 3A 7140 ld a,(4071) 0F97 A7 and a 0F98 28 08 jr z,0FA2 0F9A FE 05 cp 05 0F9C 20 37 jr nz,0FD5 0F9E 21 0640 ld hl,4006 0FA1 D7 rst 10h ; Test B, load a,(hl) else ld a,(hl+1) 0FA2 3A 6B40 ld a,(406B) 0FA5 2F cpl 0FA6 E6 07 and 07 0FA8 C8 ret z 0FA9 57 ld d,a 0FAA 1E 14 ld e,14 0FAC E5 push hl 0FAD E7 rst 20h ; Load A from 4043 or 4044 dep on B 0FAE CD 0E10 call 100E 0FB1 3E BF ld a,BF 0FB3 DDA6 D3 and (ix+D3) 0FB6 DD77 D3 ld (ix+D3),a 0FB9 E1 pop hl 0FBA CB52 bit 2,d 0FBC 20 01 jr nz,0FBF 0FBE 23 inc hl 0FBF CB4A bit 1,d 0FC1 20 0C jr nz,0FCF 0FC3 34 inc (hl) 0FC4 7E ld a,(hl) 0FC5 E6 0F and 0F 0FC7 FE 0A cp 0A 0FC9 C0 ret nz 0FCA 7E ld a,(hl) 0FCB E6 F0 and F0 0FCD 77 ld (hl),a 0FCE C9 ret 0FCF 7E ld a,(hl) 0FD0 C6 10 add a,10 0FD2 27 daa 0FD3 77 ld (hl),a 0FD4 C9 ret 0FD5 FE 06 cp 06 0FD7 C8 ret z 0FD8 21 6D40 ld hl,406D 0FDB 3E F0 ld a,F0 0FDD FDCB66 F7 bit 4,(iy+F7) 0FE1 28 02 jr z,0FE5 0FE3 3E F8 ld a,F8 0FE5 CB42 bit 0,d 0FE7 C4 1800 call nz,0018 0FEA A6 and (hl) 0FEB 77 ld (hl),a 0FEC C9 ret 0FED DD7E D7 ld a,(ix+D7) 0FF0 E6 1C and 1C 0FF2 FE 10 cp 10 0FF4 C0 ret nz 0FF5 DDCB8E C0 res 1,(ix+C0) 0FF9 C9 ret 0FFA 1E 28 ld e,28 0FFC E7 rst 20h ; Load A from 4043 or 4044 dep on B 0FFD CD 2A1A call 1A2A 1000 21 0443 ld hl,4304 1003 CD 6A1A call 1A6A 1006 3E 3F ld a,3F 1008 DDA6 D3 and (ix+D3) 100B DD77 D3 ld (ix+D3),a 100E 21 3840 ld hl,4038 1011 D7 rst 10h ; Test B, load a,(hl) else ld a,(hl+1) 1012 0E 06 ld c,06 1014 CD E10B call 0BE1 1017 21 0540 ld hl,4005 101A D7 rst 10h ; Test B, load a,(hl) else ld a,(hl+1) 101B 0E 06 ld c,06 101D C3 E10B jp 0BE1 ;------------------------------------------------------------------------------- 1020 CD A90C call 0CA9 1023 ED5B 7741 ld de,(4177) 1027 CD 960C call 0C96 102A 21 6440 ld hl,4064 102D 78 ld a,b 102E 3C inc a 102F 4F ld c,a 1030 DF rst 18h ; RRCA x 4, RET 1031 B1 or c 1032 B6 or (hl) 1033 77 ld (hl),a 1034 C9 ret 1035 21 EC42 ld hl,42EC 1038 CD 6A1A call 1A6A 103B DDCB4E D7 bit 1,(ix+D7) 103F C4 451B call nz,1B45 1042 CD A90C call 0CA9 1045 21 4C40 ld hl,404C 1048 D7 rst 10h ; Test B, load a,(hl) else ld a,(hl+1) 1049 36 90 ld (hl),90 104B 3A 7140 ld a,(4071) 104E FE 02 cp 02 1050 37 scf 1051 20 01 jr nz,1054 1053 3F ccf 1054 2B dec hl 1055 36 09 ld (hl),09 1057 38 13 jr c,106C 1059 36 99 ld (hl),99 105B FDCB7E F7 bit 7,(iy+F7) 105F 28 0B jr z,106C 1061 3A 7040 ld a,(4070) 1064 A7 and a 1065 20 05 jr nz,106C 1067 36 83 ld (hl),83 1069 23 inc hl 106A 36 00 ld (hl),00 106C 21 0740 ld hl,4007 106F D7 rst 10h ; Test B, load a,(hl) else ld a,(hl+1) 1070 2B dec hl 1071 5D ld e,l 1072 B6 or (hl) 1073 C4 6B0C call nz,0C6B 1076 1E 48 ld e,48 1078 DD7E D2 ld a,(ix+D2) 107B E6 02 and 02 107D C4 6B0C call nz,0C6B 1080 21 4D40 ld hl,404D 1083 5D ld e,l 1084 CD 480C call 0C48 1087 3A 8440 ld a,(4084) 108A E6 F0 and F0 108C 3E 99 ld a,99 108E 20 08 jr nz,1098 1090 BE cp (hl) 1091 20 09 jr nz,109C 1093 23 inc hl 1094 BE cp (hl) 1095 20 05 jr nz,109C 1097 2B dec hl 1098 77 ld (hl),a 1099 23 inc hl 109A 36 90 ld (hl),90 109C 21 5240 ld hl,4052 109F D7 rst 10h ; Test B, load a,(hl) else ld a,(hl+1) 10A0 CB4F bit 1,a 10A2 20 0B jr nz,10AF 10A4 2E 48 ld l,48 10A6 5D ld e,l 10A7 7E ld a,(hl) 10A8 23 inc hl 10A9 B6 or (hl) 10AA 23 inc hl 10AB B6 or (hl) 10AC C4 6B0C call nz,0C6B 10AF 21 4D40 ld hl,404D 10B2 D7 rst 10h ; Test B, load a,(hl) else ld a,(hl+1) 10B3 E6 F0 and F0 10B5 F6 01 or 01 10B7 77 ld (hl),a 10B8 EB ex de,hl 10B9 21 4A40 ld hl,404A 10BC D7 rst 10h ; Test B, load a,(hl) else ld a,(hl+1) 10BD CD D00B call 0BD0 10C0 21 4F40 ld hl,404F 10C3 D7 rst 10h ; Test B, load a,(hl) else ld a,(hl+1) 10C4 CD F20C call 0CF2 10C7 CD 950D call 0D95 10CA CD 6F0D call 0D6F 10CD 13 inc de 10CE EB ex de,hl 10CF 36 99 ld (hl),99 10D1 23 inc hl 10D2 36 98 ld (hl),98 10D4 23 inc hl 10D5 36 7A ld (hl),7A 10D7 13 inc de 10D8 13 inc de 10D9 13 inc de 10DA 0E 03 ld c,03 10DC EB ex de,hl 10DD CD EA0B call 0BEA ; DAA 3 digits from (DE) to (HL) 10E0 ED5B 7141 ld de,(4171) 10E4 DA 960C jp c,0C96 10E7 DD36 BE 06 ld (ix+BE),06 10EB CD CB0D call 0DCB 10EE ED5B 7541 ld de,(4175) 10F2 C3 960C jp 0C96 ;------------------------------------------------------------------------------- 10F5 DDCBE6 D2 set 4,(ix+D2) 10F9 1E 0A ld e,0A 10FB E7 rst 20h ; Load A from 4043 or 4044 dep on B 10FC C3 D811 jp 11D8 ;------------------------------------------------------------------------------- 10FF 0D dec c 1100 0D dec c 1101 20 1B jr nz,111E 1103 DDCBFE D3 set 7,(ix+D3) 1107 DD7E C3 ld a,(ix+C3) 110A A7 and a 110B C0 ret nz 110C DDCB7E D3 bit 7,(ix+D3) 1110 C8 ret z 1111 11 FE00 ld de,00FE 1114 CD 960C call 0C96 1117 DD36 BE 09 ld (ix+BE),09 111B C3 DF11 jp 11DF ;------------------------------------------------------------------------------- 111E 21 3B40 ld hl,403B 1121 D7 rst 10h ; Test B, load a,(hl) else ld a,(hl+1) 1122 11 8440 ld de,4084 1125 CD 540D call 0D54 1128 D5 push de 1129 E5 push hl 112A 21 3940 ld hl,4039 112D D7 rst 10h ; Test B, load a,(hl) else ld a,(hl+1) 112E E6 F0 and F0 1130 DF rst 18h ; RRCA x 4, RET 1131 E1 pop hl 1132 0E 03 ld c,03 1134 CD 2F0C call 0C2F 1137 21 3540 ld hl,4035 113A D7 rst 10h ; Test B, load a,(hl) else ld a,(hl+1) 113B EB ex de,hl 113C E1 pop hl 113D E5 push hl 113E 0E 03 ld c,03 1140 CD EA0B call 0BEA ; DAA 3 digits from (DE) to (HL) 1143 E1 pop hl 1144 7E ld a,(hl) 1145 CD FC00 call 00FC 1148 57 ld d,a 1149 21 3940 ld hl,4039 114C D7 rst 10h ; Test B, load a,(hl) else ld a,(hl+1) 114D E6 0F and 0F 114F 82 add a,d 1150 4F ld c,a 1151 23 inc hl 1152 7E ld a,(hl) 1153 E6 0F and 0F 1155 81 add a,c 1156 4F ld c,a 1157 7E ld a,(hl) 1158 E6 F0 and F0 115A DF rst 18h ; RRCA x 4, RET 115B 81 add a,c 115C 0F rrca 115D 0F rrca 115E E6 3F and 3F 1160 D5 push de 1161 CD 7E0C call 0C7E 1164 DF rst 18h ; RRCA x 4, RET 1165 4F ld c,a 1166 D1 pop de 1167 1E 02 ld e,02 1169 CD 650D call 0D65 116C 23 inc hl 116D 7E ld a,(hl) 116E E6 0F and 0F 1170 B1 or c 1171 77 ld (hl),a 1172 21 3B40 ld hl,403B 1175 D7 rst 10h ; Test B, load a,(hl) else ld a,(hl+1) 1176 54 ld d,h 1177 5D ld e,l 1178 CD 540D call 0D54 117B E5 push hl 117C 21 3540 ld hl,4035 117F D7 rst 10h ; Test B, load a,(hl) else ld a,(hl+1) 1180 EB ex de,hl 1181 E1 pop hl 1182 0E 03 ld c,03 1184 CD EA0B call 0BEA ; DAA 3 digits from (DE) to (HL) 1187 23 inc hl 1188 23 inc hl 1189 23 inc hl 118A DDCBBE D7 res 7,(ix+D7) 118E 30 08 jr nc,1198 1190 DDCBFE D7 set 7,(ix+D7) 1194 3E 9A ld a,9A 1196 96 sub (hl) 1197 77 ld (hl),a 1198 3A 7040 ld a,(4070) 119B FE 04 cp 04 119D 3E 01 ld a,01 119F 30 02 jr nc,11A3 11A1 3E 03 ld a,03 11A3 85 add a,(hl) 11A4 27 daa 11A5 D2 331B jp nc,1B33 11A8 DDCBF6 D3 set 6,(ix+D3) 11AC CD ED0D call 0DED 11AF CD BF11 call 11BF 11B2 21 6440 ld hl,4064 11B5 78 ld a,b 11B6 3C inc a 11B7 DF rst 18h ; RRCA x 4, RET 11B8 2F cpl 11B9 A6 and (hl) 11BA 77 ld (hl),a 11BB C3 0711 jp 1107 ;------------------------------------------------------------------------------- 11BE EF rst 28h ; DE=00F6, push de,bc, B=1, IX=4180 11BF 21 3D40 ld hl,403D 11C2 D7 rst 10h ; Test B, load a,(hl) else ld a,(hl+1) 11C3 3E 99 ld a,99 11C5 77 ld (hl),a 11C6 2B dec hl 11C7 77 ld (hl),a 11C8 2B dec hl 11C9 77 ld (hl),a 11CA C9 ret 11CB 7B ld a,e 11CC FE 05 cp 05 11CE CC CB0D call z,0DCB 11D1 1E 28 ld e,28 11D3 E7 rst 20h ; Load A from 4043 or 4044 dep on B 11D4 DDCBFE D3 set 7,(ix+D3) 11D8 ED5B 7341 ld de,(4173) 11DC C3 960C jp 0C96 ;------------------------------------------------------------------------------- 11DF 21 0240 ld hl,4002 11E2 D7 rst 10h ; Test B, load a,(hl) else ld a,(hl+1) 11E3 EB ex de,hl 11E4 21 7240 ld hl,4072 11E7 36 01 ld (hl),01 11E9 21 0D40 ld hl,400D 11EC 1A ld a,(de) 11ED E6 F0 and F0 ; 1111 0000 11EF 12 ld (de),a 11F0 CD 4A12 call 124A 11F3 21 0540 ld hl,4005 11F6 D7 rst 10h ; Test B, load a,(hl) else ld a,(hl+1) 11F7 E5 push hl 11F8 D1 pop de 11F9 3A 7040 ld a,(4070) 11FC FE 04 cp 04 11FE 20 1C jr nz,121C 1200 3A 6440 ld a,(4064) 1203 DF rst 18h ; RRCA x 4, RET 1204 05 dec b 1205 04 inc b 1206 20 01 jr nz,1209 ; B=0? Skip one RLCA 1208 07 rlca 1209 07 rlca 120A 30 10 jr nc,121C 120C 21 6440 ld hl,4064 120F 3E 40 ld a,40 1211 CB40 bit 0,b 1213 28 01 jr z,1216 1215 07 rlca 1216 AE xor (hl) ; Toggle bit at (HL) 1217 77 ld (hl),a 1218 DDCBF6 D3 set 6,(ix+D3) 121C 21 1C40 ld hl,401C 121F CD 4A12 call 124A 1222 21 6440 ld hl,4064 1225 78 ld a,b 1226 3C inc a 1227 4F ld c,a 1228 DF rst 18h ; RRCA x 4, RET 1229 B1 or c 122A 2F cpl 122B A6 and (hl) 122C 77 ld (hl),a 122D DD36 BE 0A ld (ix+BE),0A 1231 F3 di ; Disable INTerrupts 1232 FD4E F2 ld c,(iy+F2) 1235 FD36 F2 00 ld (iy+F2),00 1239 0D dec c 123A C2 C500 jp nz,00C5 123D FB ei 123E FDCB46 F7 bit 0,(iy+F7) 1242 C8 ret z 1243 DD36 BE 00 ld (ix+BE),00 1247 C3 200F jp 0F20 ;------------------------------------------------------------------------------- 124A E5 push hl 124B 21 4140 ld hl,4041 124E D7 rst 10h ; Test B, load a,(hl) else ld a,(hl+1) 124F E6 0C and 0C ; 0000 1100 1251 6F ld l,a 1252 0F rrca 1253 0F rrca 1254 85 add a,l ; Add A 0000 0011 1255 E1 pop hl 1256 85 add a,l 1257 6F ld l,a 1258 D7 rst 10h ; Test B, load a,(hl) else ld a,(hl+1) 1259 0E 03 ld c,03 125B CD EA0B call 0BEA ; DAA 3 digits from (DE) to (HL) 125E 17 rla 125F E6 01 and 01 1261 0E 02 ld c,02 1263 C3 2F0C jp 0C2F ;------------------------------------------------------------------------------- 1266 DD73 BF ld (ix+BF),e ; $16DE jps here 1269 C3 D811 jp 11D8 ;------------------------------------------------------------------------------- 126C C4 15 ; $15C4 JP table used at routine from $15B9 126E 39 16 ; $1639 1270 84 16 ; $1684 1272 95 16 ; $1695 1274 D2 16 ; $16D2 1276 E1 16 ; $16E1 1278 E1 16 ; $16E1 127A E1 16 ; $16E1 127C 9E 16 ; $169E 127E 9E 16 ; $169E 1280 E9 16 ; $16E9 1282 5C 16 ; $165C 1284 5C 17 ; $175C ;------------------------------------------------------------------------------- 1286 21 7740 ld hl,4077 ; 3 locs call $1286 1289 CB46 bit 0,(hl) 128B C0 ret nz 128C 3E 00 ld a,00 ; Transmit a $00 128E D3 71 out (71),a ; Output DART Channel A 1290 DB 71 in a,(71) ; Input DART Channel A 1292 CB7F bit 7,a 1294 28 10 jr z,12A6 1296 CB4E bit 1,(hl) 1298 C0 ret nz 1299 CBCE set 1,(hl) 129B FD36 0E F6 ld (iy+0E),F6 129F 21 4042 ld hl,4240 12A2 CD 521A call 1A52 12A5 C9 ret 12A6 CB47 bit 0,a 12A8 C8 ret z ;------------------------------------------------------------------------------ ; Read DART status word ;------------------------------------------------------------------------------ 12A9 CB8E res 1,(hl) 12AB DB 70 in a,(70) ; Input DART Channel A Status word 12AD 4F ld c,a ; Save it to C 12AE 3A 7140 ld a,(4071) 12B1 FE 08 cp 08 12B3 79 ld a,c ; Get DART data back to A 12B4 20 05 jr nz,12BB 12B6 21 6941 ld hl,4169 12B9 34 inc (hl) 12BA C9 ret 12BB FE FC cp FC ; If dart connected and TX buff empty 12BD CC 3114 call z,1431 12C0 E6 F0 and F0 ; 1111 0000 strip off TX an RX bits 12C2 57 ld d,a ; Save it to D 12C3 FE E0 cp E0 ; 12C5 D2 5913 jp nc,1359 12C8 21 7740 ld hl,4077 12CB CB5E bit 3,(hl) 12CD 28 0B jr z,12DA 12CF FE 00 cp 00 12D1 28 05 jr z,12D8 12D3 FE 60 cp 60 12D5 C2 2514 jp nz,1425 12D8 CB9E res 3,(hl) 12DA FE 40 cp 40 12DC 20 04 jr nz,12E2 12DE DDCB86 D7 res 0,(ix+D7) 12E2 FE 70 cp 70 12E4 20 02 jr nz,12E8 12E6 CBD6 set 2,(hl) 12E8 79 ld a,c 12E9 E6 0F and 0F 12EB 5F ld e,a 12EC DB 86 in a,(86) 12EE 2F cpl 12EF 4F ld c,a 12F0 E6 0F and 0F 12F2 BB cp e 12F3 06 00 ld b,00 12F5 DD21 8040 ld ix,4080 12F9 28 14 jr z,130F 12FB DB 84 in a,(84) 12FD CB77 bit 6,a 12FF C2 081C jp nz,1C08 1302 79 ld a,c 1303 DF rst 18h ; RRCA x 4, RET 1304 E6 0F and 0F 1306 BB cp e 1307 C2 081C jp nz,1C08 130A 04 inc b 130B DD21 8041 ld ix,4180 130F 4B ld c,e 1310 DDCB5E D2 bit 3,(ix+D2) 1314 C2 1B14 jp nz,141B 1317 DDCB66 D3 bit 4,(ix+D3) 131B 20 22 jr nz,133F 131D 3E 01 ld a,01 131F D3 71 out (71),a ; Output DART Channel A 1321 DB 71 in a,(71) ; Input DART Channel A 1323 21 3042 ld hl,4230 1326 CB77 bit 6,a 1328 20 0F jr nz,1339 132A 21 3442 ld hl,4234 132D CB6F bit 5,a 132F 20 08 jr nz,1339 1331 CB67 bit 4,a 1333 CA 531B jp z,1B53 1336 21 2C42 ld hl,422C 1339 CD 521A call 1A52 133C C3 1B14 jp 141B ;------------------------------------------------------------------------------- 133F 7A ld a,d 1340 B7 or a 1341 28 03 jr z,1346 1343 FE 20 cp 20 1345 C0 ret nz 1346 3E 30 ld a,30 1348 D3 71 out (71),a ; Output DART Channel A 134A DDCBA6 D3 res 4,(ix+D3) 134E AF xor a 134F CD D315 call 15D3 1352 21 4442 ld hl,4244 1355 CD 521A call 1A52 1358 C9 ret 1359 06 00 ld b,00 135B DD21 8040 ld ix,4080 135F DDCB5E D2 bit 3,(ix+D2) 1363 20 0C jr nz,1371 1365 04 inc b 1366 DD21 8041 ld ix,4180 136A DDCB5E D2 bit 3,(ix+D2) 136E CA 2514 jp z,1425 1371 CB5E bit 3,(hl) 1373 C2 2514 jp nz,1425 1376 CB56 bit 2,(hl) 1378 28 23 jr z,139D 137A 21 3E40 ld hl,403E 137D 7E ld a,(hl) 137E 24 inc h 137F B6 or (hl) 1380 20 09 jr nz,138B 1382 79 ld a,c 1383 FE E1 cp E1 1385 CA 7B1B jp z,1B7B 1388 CD 5213 call 1352 138B CD D818 call 18D8 138E 3E F0 ld a,F0 1390 CD DE15 call 15DE 1393 CD E318 call 18E3 1396 FDCB96 F7 res 2,(iy+F7) 139A C3 2514 jp 1425 ;------------------------------------------------------------------------------- 139D 21 5440 ld hl,4054 13A0 D7 rst 10h ; Test B, load a,(hl) else ld a,(hl+1) 13A1 81 add a,c 13A2 77 ld (hl),a 13A3 23 inc hl 13A4 34 inc (hl) 13A5 79 ld a,c 13A6 3C inc a 13A7 20 0B jr nz,13B4 13A9 21 6A41 ld hl,416A 13AC 36 5A ld (hl),5A 13AE 23 inc hl 13AF 36 0F ld (hl),0F 13B1 DD71 D4 ld (ix+D4),c 13B4 3A 6A41 ld a,(416A) 13B7 FE 5B cp 5B 13B9 20 06 jr nz,13C1 13BB 79 ld a,c 13BC F6 F0 or F0 13BE DD77 D5 ld (ix+D5),a 13C1 21 6A41 ld hl,416A 13C4 34 inc (hl) 13C5 6E ld l,(hl) 13C6 71 ld (hl),c 13C7 79 ld a,c 13C8 FE F0 cp F0 13CA 28 07 jr z,13D3 13CC 21 6B41 ld hl,416B 13CF 35 dec (hl) 13D0 28 49 jr z,141B 13D2 C9 ret 13D3 21 6C40 ld hl,406C 13D6 3E 07 ld a,07 13D8 CB40 bit 0,b 13DA C4 1800 call nz,0018 13DD B6 or (hl) 13DE 77 ld (hl),a 13DF 23 inc hl 13E0 77 ld (hl),a 13E1 21 5540 ld hl,4055 13E4 D7 rst 10h ; Test B, load a,(hl) else ld a,(hl+1) 13E5 A7 and a 13E6 CA EF13 jp z,13EF 13E9 21 3842 ld hl,4238 13EC C3 3913 jp 1339 ;------------------------------------------------------------------------------- 13EF 2B dec hl 13F0 7E ld a,(hl) 13F1 E6 0F and 0F 13F3 21 3C42 ld hl,423C 13F6 C2 3913 jp nz,1339 13F9 3E 01 ld a,01 13FB D3 71 out (71),a ; Output DART Channel A 13FD DB 71 in a,(71) ; Input DART Channel A 13FF 21 3042 ld hl,4230 1402 CB77 bit 6,a 1404 C2 3913 jp nz,1339 1407 21 3442 ld hl,4234 140A CB6F bit 5,a 140C C2 3913 jp nz,1339 140F CB67 bit 4,a 1411 C2 3613 jp nz,1336 1414 CD 7914 call 1479 1417 18 0C jr 1425 1419 D1 pop de 141A D1 pop de 141B DDCBE6 D3 set 4,(ix+D3) 141F 21 4842 ld hl,4248 1422 CD 521A call 1A52 1425 3E 30 ld a,30 1427 D3 71 out (71),a ; Output DART Channel A 1429 21 5240 ld hl,4052 142C D7 rst 10h ; Test B, load a,(hl) else ld a,(hl+1) 142D E6 77 and 77 142F 77 ld (hl),a 1430 C9 ret 1431 3E 01 ld a,01 1433 D3 71 out (71),a ; Output DART Channel A 1435 DB 71 in a,(71) ; Input DART Channel A 1437 E6 70 and 70 1439 28 17 jr z,1452 143B D1 pop de 143C 11 0400 ld de,0004 143F 21 2C42 ld hl,422C 1442 CB67 bit 4,a 1444 20 06 jr nz,144C 1446 19 add hl,de 1447 CB77 bit 6,a 1449 20 01 jr nz,144C 144B 19 add hl,de 144C CD 521A call 1A52 144F C3 2514 jp 1425 ;------------------------------------------------------------------------------- 1452 D1 pop de 1453 D5 push de 1454 01 6314 ld bc,1463 1457 C5 push bc 1458 D5 push de 1459 CD 6814 call 1468 145C 21 2442 ld hl,4224 145F CD 521A call 1A52 1462 C9 ret 1463 CD 7114 call 1471 1466 18 05 jr 146D 1468 DB 86 in a,(86) 146A 2F cpl 146B E6 0F and 0F 146D F6 30 or 30 146F 4F ld c,a 1470 C9 ret 1471 DB 86 in a,(86) 1473 2F cpl 1474 DF rst 18h ; RRCA x 4, RET 1475 E6 0F and 0F 1477 4F ld c,a 1478 C9 ret 1479 21 5D41 ld hl,415D 147C 7E ld a,(hl) 147D 4F ld c,a 147E FE F0 cp F0 1480 C8 ret z 1481 E5 push hl 1482 CD 8914 call 1489 1485 E1 pop hl 1486 23 inc hl 1487 18 F3 jr 147C 1489 E6 F0 and F0 148B 57 ld d,a 148C FE E0 cp E0 148E 28 76 jr z,1506 1490 DD71 D6 ld (ix+D6),c 1493 21 5340 ld hl,4053 1496 D7 rst 10h ; Test B, load a,(hl) else ld a,(hl+1) 1497 E6 F0 and F0 1499 77 ld (hl),a 149A 2B dec hl 149B 7E ld a,(hl) 149C 5F ld e,a 149D CBCE set 1,(hl) 149F 79 ld a,c 14A0 FE F1 cp F1 14A2 CA 6D1B jp z,1B6D 14A5 CB8E res 1,(hl) 14A7 CBD6 set 2,(hl) 14A9 FE F2 cp F2 14AB CA 741B jp z,1B74 14AE 73 ld (hl),e 14AF FE F3 cp F3 14B1 C8 ret z 14B2 FE F6 cp F6 14B4 30 45 jr nc,14FB 14B6 79 ld a,c 14B7 C6 0B add a,0B 14B9 4F ld c,a 14BA DDCB8E C0 res 1,(ix+C0) 14BE DDCB96 D7 res 2,(ix+D7) 14C2 DDCBDE D7 set 3,(ix+D7) 14C6 0C inc c 14C7 20 0C jr nz,14D5 14C9 DDCBCE C0 set 1,(ix+C0) 14CD DDCB9E D7 res 3,(ix+D7) 14D1 DDCBD6 D7 set 2,(ix+D7) 14D5 DDCB46 D7 bit 0,(ix+D7) 14D9 28 0C jr z,14E7 14DB DDCB86 D7 res 0,(ix+D7) 14DF 3E F3 ld a,F3 14E1 DDA6 D7 and (ix+D7) 14E4 DD77 D7 ld (ix+D7),a 14E7 21 5E40 ld hl,405E 14EA 1E FE ld e,FE 14EC CB40 bit 0,b 14EE 28 01 jr z,14F1 14F0 1D dec e 14F1 7B ld a,e 14F2 A6 and (hl) 14F3 0D dec c 14F4 28 03 jr z,14F9 14F6 7B ld a,e 14F7 2F cpl 14F8 B6 or (hl) 14F9 77 ld (hl),a 14FA C9 ret 14FB FE F8 cp F8 14FD C0 ret nz 14FE 23 inc hl 14FF CBC6 set 0,(hl) 1501 DD36 CA 00 ld (ix+CA),00 1505 C9 ret 1506 79 ld a,c 1507 E6 0F and 0F 1509 57 ld d,a 150A DD7E D6 ld a,(ix+D6) 150D 5F ld e,a 150E FE F6 cp F6 1510 20 30 jr nz,1542 1512 7A ld a,d 1513 07 rlca 1514 07 rlca 1515 5F ld e,a 1516 FDCB66 F7 bit 4,(iy+F7) 151A 20 05 jr nz,1521 151C DDCB4E D2 bit 1,(ix+D2) 1520 C0 ret nz 1521 3E F3 ld a,F3 1523 DDA6 C0 and (ix+C0) 1526 B3 or e 1527 DD77 C0 ld (ix+C0),a 152A 7B ld a,e 152B 17 rla 152C 17 rla 152D 16 CF ld d,CF 152F CB40 bit 0,b 1531 28 04 jr z,1537 1533 17 rla 1534 17 rla 1535 16 3F ld d,3F 1537 E6 F0 and F0 1539 5F ld e,a 153A 21 5E40 ld hl,405E 153D 7E ld a,(hl) 153E A2 and d 153F B3 or e 1540 77 ld (hl),a 1541 C9 ret 1542 DD7E D3 ld a,(ix+D3) 1545 E6 0F and 0F 1547 4F ld c,a 1548 FE 06 cp 06 154A D2 1914 jp nc,1419 154D 7B ld a,e 154E FE F7 cp F7 1550 28 20 jr z,1572 1552 FE F8 cp F8 1554 C0 ret nz 1555 21 4840 ld hl,4048 1558 D7 rst 10h ; Test B, load a,(hl) else ld a,(hl+1) 1559 3E 05 ld a,05 155B 91 sub c 155C A7 and a 155D 1F rra 155E 85 add a,l 155F 6F ld l,a 1560 79 ld a,c 1561 1F rra 1562 7A ld a,d 1563 30 02 jr nc,1567 1565 DF rst 18h ; RRCA x 4, RET 1566 B6 or (hl) 1567 77 ld (hl),a 1568 0C inc c 1569 21 5340 ld hl,4053 156C D7 rst 10h ; Test B, load a,(hl) else ld a,(hl+1) 156D E6 F0 and F0 156F B1 or c 1570 77 ld (hl),a 1571 C9 ret 1572 79 ld a,c 1573 FE 04 cp 04 1575 D2 1914 jp nc,1419 1578 3E 0E ld a,0E 157A DDA6 C0 and (ix+C0) 157D 5F ld e,a 157E 79 ld a,c 157F A7 and a 1580 20 22 jr nz,15A4 1582 C5 push bc 1583 21 4C43 ld hl,434C 1586 CB40 bit 0,b 1588 28 04 jr z,158E 158A 01 1800 ld bc,0018 158D 09 add hl,bc 158E 06 00 ld b,00 1590 7B ld a,e 1591 A7 and a 1592 17 rla 1593 4F ld c,a 1594 09 add hl,bc 1595 CD 521A call 1A52 1598 DDCBB6 D3 res 6,(ix+D3) 159C C1 pop bc 159D CD 0E10 call 100E 15A0 DDCBC6 D7 set 0,(ix+D7) 15A4 D5 push de 15A5 21 2740 ld hl,4027 15A8 D7 rst 10h ; Test B, load a,(hl) else ld a,(hl+1) 15A9 16 00 ld d,00 15AB 19 add hl,de 15AC D1 pop de 15AD 3E 03 ld a,03 15AF 18 AA jr 155B ;------------------------------------------------------------------------------- ; Get address in table 126C + (A * 2) and JP there ;------------------------------------------------------------------------------- 15B1 DD7E BE ld a,(ix+BE) ; 2 locs jp here direct IX+BE=4041 15B4 87 add a,a ; # of indexes into table here 15B5 D5 push de 15B6 16 00 ld d,00 15B8 5F ld e,a 15B9 21 6C12 ld hl,126C ; Data table at this location 15BC 19 add hl,de ; Form location in table 15BD D1 pop de 15BE 7A ld a,d ; Put original D into A 15BF 5E ld e,(hl) ; get low vector at (HL) into E 15C0 23 inc hl ; point to next location 15C1 66 ld h,(hl) ; Load that data into H 15C2 6B ld l,e ; Load low vector into L 15C3 E9 jp (hl) ; And jp there ;------------------------------------------------------------------------------- 15C4 FE 00 cp 00 15C6 C2 F115 jp nz,15F1 15C9 3E 60 ld a,60 15CB DDCB46 D2 bit 0,(ix+D2) 15CF 28 02 jr z,15D3 15D1 3E 80 ld a,80 15D3 CD D818 call 18D8 15D6 B1 or c 15D7 CD DE15 call 15DE 15DA CD E318 call 18E3 15DD C9 ret 15DE F5 push af 15DF 3E 00 ld a,00 ; Select DART Ch A register 0 15E1 D3 71 out (71),a ; Output DART Channel A 15E3 DB 71 in a,(71) ; Input DART Channel A 15E5 CB7F bit 7,a 15E7 20 04 jr nz,15ED 15E9 CB57 bit 2,a 15EB 28 F2 jr z,15DF 15ED F1 pop af 15EE D3 70 out (70),a ; Output DART Channel A 15F0 C9 ret 15F1 FE 10 cp 10 15F3 20 0B jr nz,1600 15F5 DDCBC6 D2 set 0,(ix+D2) 15F9 21 6C42 ld hl,426C 15FC CD 821A call 1A82 15FF C9 ret 1600 FE 20 cp 20 ; 0010 0000 (SPACE) 1602 20 19 jr nz,161D 1604 3E D0 ld a,D0 ; 1101 0000 1606 CD D315 call 15D3 1609 3E 88 ld a,88 ; 1000 1000 160B DDB6 D2 or (ix+D2) 160E DD77 D2 ld (ix+D2),a 1611 78 ld a,b 1612 EE 01 xor 01 ; Toggle D0 1614 47 ld b,a ; Save it 1615 21 5240 ld hl,4052 1618 D7 rst 10h ; Test B, load a,(hl) else ld a,(hl+1) 1619 E6 77 and 77 ; 0111 0111 161B 77 ld (hl),a ; Save back to 4052, 4053 161C C9 ret 161D FE 30 cp 30 ; 0011 0000 ( zero ) 161F 20 09 jr nz,162A 1621 3E F8 ld a,F8 ; 1111 1000 1623 DDA6 D2 and (ix+D2) ; Strip off D2, D1, D0 at IX+d2 1626 DD77 D2 ld (ix+D2),a ; and save that back 1629 C9 ret 162A DD36 D4 00 ld (ix+D4),00 ; Save $00 to (IX + D4) 162E FE 40 cp 40 ; 0100 0000 1630 CA 8E17 jp z,178E 1633 FE 50 cp 50 ; 0101 0000 1635 CA 2418 jp z,1824 1638 C9 ret 1639 FE 00 cp 00 163B 20 06 jr nz,1643 163D 3E 70 ld a,70 ; 0111 0000 163F CD D315 call 15D3 1642 C9 ret 1643 FE 10 cp 10 1645 20 B9 jr nz,1600 1647 DDCBC6 D2 set 0,(ix+D2) 164B 21 6C42 ld hl,426C 164E CD 821A call 1A82 1651 DD36 BE 03 ld (ix+BE),03 1655 DD7E D7 ld a,(ix+D7) 1658 CB67 bit 4,a 165A 28 04 jr z,1660 165C E6 0C and 0C 165E 28 1F jr z,167F 1660 DD7E D7 ld a,(ix+D7) 1663 CB77 bit 6,a 1665 28 04 jr z,166B 1667 CB6F bit 5,a 1669 28 14 jr z,167F 166B FDCB66 F7 bit 4,(iy+F7) 166F CA FA0F jp z,0FFA 1672 3A 6D40 ld a,(406D) 1675 CB40 bit 0,b 1677 C4 1800 call nz,0018 167A CB5F bit 3,a 167C C2 FA0F jp nz,0FFA 167F DD36 BE 02 ld (ix+BE),02 1683 C9 ret 1684 FE 30 cp 30 1686 20 07 jr nz,168F 1688 DD36 BE 01 ld (ix+BE),01 168C C3 2116 jp 1621 ;------------------------------------------------------------------------------- 168F FE 00 cp 00 1691 CA D115 jp z,15D1 1694 C9 ret 1695 FE 30 cp 30 1697 20 05 jr nz,169E 1699 DD36 BE 0C ld (ix+BE),0C 169D C9 ret 169E FE 00 cp 00 16A0 20 05 jr nz,16A7 16A2 3E 90 ld a,90 16A4 C3 D315 jp 15D3 ;------------------------------------------------------------------------------- 16A7 FE 60 cp 60 16A9 C0 ret nz 16AA 11 9240 ld de,4092 16AD 3E 06 ld a,06 16AF 12 ld (de),a 16B0 13 inc de 16B1 ED53 9040 ld (4090),de 16B5 21 0240 ld hl,4002 16B8 D7 rst 10h ; Test B, load a,(hl) else ld a,(hl+1) 16B9 0E 03 ld c,03 16BB CD 9118 call 1891 16BE 3E 00 ld a,00 16C0 12 ld (de),a 16C1 21 8F40 ld hl,408F 16C4 36 01 ld (hl),01 16C6 CD D818 call 18D8 16C9 FDCBEE F7 set 5,(iy+F7) 16CD FDCBC6 F8 set 0,(iy+F8) 16D1 C9 ret 16D2 FE 30 cp 30 16D4 20 C8 jr nz,169E 16D6 3E 0C ld a,0C 16D8 DD5E BE ld e,(ix+BE) 16DB DD77 BE ld (ix+BE),a 16DE C3 6612 jp 1266 ;------------------------------------------------------------------------------- 16E1 FE 30 cp 30 16E3 20 B9 jr nz,169E 16E5 3E 0B ld a,0B 16E7 18 EF jr 16D8 16E9 FE 00 cp 00 16EB C0 ret nz 16EC 1E B0 ld e,B0 16EE DDCB56 D2 bit 2,(ix+D2) 16F2 28 1E jr z,1712 16F4 3E F0 ld a,F0 16F6 DDA6 82 and (ix+82) 16F9 DD77 82 ld (ix+82),a 16FC 21 0040 ld hl,4000 16FF C5 push bc 1700 D5 push de 1701 E5 push hl 1702 21 4840 ld hl,4048 1705 D7 rst 10h ; Test B, load a,(hl) else ld a,(hl+1) 1706 E5 push hl 1707 D1 pop de 1708 E1 pop hl 1709 CD 390C call 0C39 170C D1 pop de 170D C1 pop bc 170E 38 02 jr c,1712 1710 1E A0 ld e,A0 1712 16 FB ld d,FB 1714 7B ld a,e 1715 CD D315 call 15D3 1718 FDCB46 F8 bit 0,(iy+F8) 171C 20 29 jr nz,1747 171E 14 inc d 171F 28 26 jr z,1747 1721 C5 push bc 1722 01 2802 ld bc,0228 1725 0B dec bc 1726 78 ld a,b 1727 B1 or c 1728 20 FB jr nz,1725 172A C1 pop bc 172B 3E 00 ld a,00 172D D3 71 out (71),a ; Output DART Channel A 172F DB 71 in a,(71) ; Input DART Channel A 1731 CB47 bit 0,a 1733 28 12 jr z,1747 1735 3E 01 ld a,01 1737 D3 71 out (71),a ; Output DART Channel A 1739 DB 71 in a,(71) ; Input DART Channel A 173B CB67 bit 4,a 173D 28 D5 jr z,1714 173F 21 2C42 ld hl,422C 1742 CD 521A call 1A52 1745 18 D7 jr 171E 1747 21 1C43 ld hl,431C 174A 7B ld a,e 174B D6 A0 sub A0 174D 28 03 jr z,1752 174F 21 3443 ld hl,4334 1752 CD 6A1A call 1A6A 1755 DD36 BE 00 ld (ix+BE),00 1759 C3 200F jp 0F20 ;------------------------------------------------------------------------------- 175C FE 00 cp 00 175E 20 06 jr nz,1766 1760 3E C0 ld a,C0 1762 CD D315 call 15D3 1765 C9 ret 1766 FE 10 cp 10 1768 C2 2A16 jp nz,162A 176B 21 3E40 ld hl,403E 176E D7 rst 10h ; Test B, load a,(hl) else ld a,(hl+1) 176F FE 0C cp 0C 1771 C2 050F jp nz,0F05 1774 3E 1C ld a,1C 1776 DDA6 D7 and (ix+D7) 1779 FE 10 cp 10 177B DD7E D7 ld a,(ix+D7) 177E 28 0B jr z,178B 1780 E6 60 and 60 1782 FE 40 cp 40 1784 28 05 jr z,178B 1786 36 04 ld (hl),04 1788 C3 2010 jp 1020 ;------------------------------------------------------------------------------- 178B 36 02 ld (hl),02 178D C9 ret 178E 3E 21 ld a,21 1790 CD 6D18 call 186D 1793 0E F1 ld c,F1 1795 DD7E D2 ld a,(ix+D2) 1798 CB6F bit 5,a 179A 20 06 jr nz,17A2 179C 0C inc c 179D CB77 bit 6,a 179F 20 01 jr nz,17A2 17A1 0C inc c 17A2 79 ld a,c 17A3 F7 rst 30h 17A4 3E F8 ld a,F8 17A6 F7 rst 30h 17A7 3E EB ld a,EB 17A9 F7 rst 30h 17AA DB 86 in a,(86) 17AC 2F cpl 17AD CB40 bit 0,b 17AF C4 1800 call nz,0018 17B2 E6 0F and 0F 17B4 3D dec a 17B5 CD 8B18 call 188B 17B8 21 4540 ld hl,4045 17BB D7 rst 10h ; Test B, load a,(hl) else ld a,(hl+1) 17BC 0E 03 ld c,03 17BE 23 inc hl 17BF 23 inc hl 17C0 7E ld a,(hl) 17C1 A7 and a 17C2 20 10 jr nz,17D4 17C4 2B dec hl 17C5 0D dec c 17C6 20 F8 jr nz,17C0 17C8 0E 03 ld c,03 17CA 3E 00 ld a,00 17CC CD 8B18 call 188B 17CF 0D dec c 17D0 20 FA jr nz,17CC 17D2 18 0C jr 17E0 17D4 79 ld a,c 17D5 CD 8B18 call 188B 17D8 7E ld a,(hl) 17D9 CD 8B18 call 188B 17DC AF xor a 17DD CD 8B18 call 188B 17E0 3E F6 ld a,F6 17E2 F7 rst 30h 17E3 DD4E C1 ld c,(ix+C1) 17E6 79 ld a,c 17E7 0F rrca 17E8 0F rrca 17E9 CD 8B18 call 188B 17EC CB49 bit 1,c 17EE 3E F4 ld a,F4 17F0 20 01 jr nz,17F3 17F2 3C inc a 17F3 F7 rst 30h 17F4 3E F7 ld a,F7 17F6 F7 rst 30h 17F7 0E 02 ld c,02 17F9 2E 4F ld l,4F 17FB CD 9118 call 1891 17FE 3E F9 ld a,F9 1800 F7 rst 30h 1801 0E 03 ld c,03 1803 2E 05 ld l,05 1805 CD 9118 call 1891 1808 3E FA ld a,FA 180A F7 rst 30h 180B 0E 03 ld c,03 180D 2E 02 ld l,02 180F CD 9118 call 1891 1812 3E FB ld a,FB 1814 F7 rst 30h 1815 DD7E D4 ld a,(ix+D4) 1818 2F cpl 1819 3C inc a 181A E6 0F and 0F 181C F6 E0 or E0 181E 12 ld (de),a 181F 13 inc de 1820 3E F0 ld a,F0 1822 12 ld (de),a 1823 C9 ret 1824 3E 5E ld a,5E 1826 CD 6D18 call 186D 1829 0E 00 ld c,00 182B 3E F6 ld a,F6 182D F7 rst 30h 182E 79 ld a,c 182F CD 8B18 call 188B 1832 3E F9 ld a,F9 1834 F7 rst 30h 1835 21 1C40 ld hl,401C 1838 D7 rst 10h ; Test B, load a,(hl) else ld a,(hl+1) 1839 C5 push bc 183A 06 03 ld b,03 183C CD A018 call 18A0 183F C1 pop bc 1840 3E FA ld a,FA 1842 F7 rst 30h 1843 2E 0D ld l,0D 1845 C5 push bc 1846 06 03 ld b,03 1848 CD A018 call 18A0 184B C1 pop bc 184C 3E F4 ld a,F4 184E F7 rst 30h 184F 2E 2A ld l,2A 1851 C5 push bc 1852 06 02 ld b,02 1854 CD A018 call 18A0 1857 C1 pop bc 1858 3E F5 ld a,F5 185A F7 rst 30h 185B 2E 28 ld l,28 185D C5 push bc 185E 06 02 ld b,02 1860 CD A018 call 18A0 1863 C1 pop bc 1864 0C inc c 1865 79 ld a,c 1866 FE 03 cp 03 1868 20 C1 jr nz,182B 186A C3 1218 jp 1812 ;------------------------------------------------------------------------------- 186D 11 9240 ld de,4092 1870 12 ld (de),a 1871 13 inc de 1872 ED53 9040 ld (4090),de 1876 3E FF ld a,FF 1878 CD C218 call 18C2 187B 21 8F40 ld hl,408F 187E 36 0A ld (hl),0A 1880 CD D818 call 18D8 1883 CD CF18 call 18CF 1886 FDCBEE F7 set 5,(iy+F7) 188A C9 ret 188B E6 0F and 0F 188D F6 E0 or E0 188F F7 rst 30h 1890 C9 ret 1891 3E E0 ld a,E0 1893 ED67 rrd 1895 F7 rst 30h 1896 ED67 rrd 1898 F7 rst 30h 1899 ED67 rrd 189B 2B dec hl 189C 0D dec c 189D 20 F2 jr nz,1891 189F C9 ret 18A0 79 ld a,c 18A1 07 rlca 18A2 07 rlca 18A3 CB40 bit 0,b 18A5 28 14 jr z,18BB 18A7 81 add a,c 18A8 85 add a,l 18A9 6F ld l,a 18AA 3E E0 ld a,E0 18AC ED6F rld 18AE F7 rst 30h 18AF ED67 rrd 18B1 2B dec hl 18B2 CD BD18 call 18BD 18B5 ED67 rrd 18B7 F7 rst 30h 18B8 ED6F rld 18BA C9 ret 18BB 85 add a,l 18BC 6F ld l,a 18BD 48 ld c,b 18BE CD 9118 call 1891 18C1 C9 ret 18C2 F5 push af ; RST 30h LD (DE),A, inc DE and JP here 18C3 DD86 D4 add a,(ix+D4) 18C6 DD77 D4 ld (ix+D4),a 18C9 F1 pop af 18CA C9 ret 18CB E6 0F and 0F 18CD F6 E0 or E0 18CF CD DE15 call 15DE 18D2 FE F0 cp F0 18D4 CC E318 call z,18E3 18D7 C9 ret 18D8 F5 push af 18D9 3E 05 ld a,05 18DB D3 71 out (71),a ; Output DART Channel A 18DD 3E E8 ld a,E8 18DF D3 71 out (71),a ; Output DART Channel A 18E1 F1 pop af 18E2 C9 ret 18E3 FDCBAE F7 res 5,(iy+F7) 18E7 F5 push af 18E8 3E 00 ld a,00 18EA D3 71 out (71),a ; Output DART Channel A 18EC DB 71 in a,(71) ; Input DART Channel A 18EE CB7F bit 7,a ; 1000 0000 18F0 20 0A jr nz,18FC ; If bit is set, output 05, 68 18F2 3E 01 ld a,01 ; Else output 01 18F4 D3 71 out (71),a ; Output DART Channel A 18F6 DB 71 in a,(71) ; Input DART Channel A 18F8 CB47 bit 0,a ; 0000 0001 18FA 28 EC jr z,18E8 ; If set, output 00 18FC 3E 05 ld a,05 ; Output 05 18FE D3 71 out (71),a ; Output DART Channel A 1900 3E 68 ld a,68 ; Output 68 1902 D3 71 out (71),a ; Output DART Channel A 1904 F1 pop af 1905 C9 ret 1906 3E 00 ld a,00 ; Output 00 thru dart 1908 D3 71 out (71),a ; Output DART Channel A 190A DB 71 in a,(71) ; Input DART Channel A 190C CB57 bit 2,a ; 0000 0100 190E C8 ret z 190F 21 8F40 ld hl,408F 1912 35 dec (hl) 1913 C0 ret nz 1914 36 0A ld (hl),0A 1916 2A 9040 ld hl,(4090) 1919 7E ld a,(hl) 191A 23 inc hl 191B 22 9040 ld (4090),hl 191E CD CF18 call 18CF 1921 21 9240 ld hl,4092 1924 35 dec (hl) 1925 CC E318 call z,18E3 1928 C9 ret 1929 C5 push bc 192A D5 push de 192B E5 push hl 192C 21 8D40 ld hl,408D 192F CD D00B call 0BD0 1932 0E 07 ld c,07 1934 CD E10B call 0BE1 1937 E1 pop hl 1938 4E ld c,(hl) 1939 2B dec hl 193A 46 ld b,(hl) 193B 2B dec hl 193C E5 push hl 193D 3E 10 ld a,10 193F 32 8140 ld (4081),a 1942 3A 8140 ld a,(4081) 1945 3D dec a 1946 32 8140 ld (4081),a 1949 FA 6619 jp m,1966 194C 78 ld a,b 194D 1F rra 194E 47 ld b,a 194F 79 ld a,c 1950 1F rra 1951 4F ld c,a 1952 C5 push bc 1953 21 8840 ld hl,4088 1956 11 8D40 ld de,408D 1959 DC E80B call c,0BE8 ; Adjust 5 digits 195C 21 8D40 ld hl,408D 195F 5D ld e,l 1960 CD E80B call 0BE8 1963 C1 pop bc 1964 18 DC jr 1942 1966 E1 pop hl 1967 7E ld a,(hl) 1968 A7 and a 1969 26 40 ld h,40 196B CA 250C jp z,0C25 196E 21 8840 ld hl,4088 1971 11 8D40 ld de,408D 1974 CD E80B call 0BE8 1977 C3 250C jp 0C25 ;------------------------------------------------------------------------------- ; Appears to be data table 197A 06 ; 017A and 01C0 loads hl from here 197B F1 ; 0167 loads hl from here 197C 10 197D 07 197E 85 197F FD 1980 00 ; 19CE loads hl from here 1981 48 1982 00 1983 84 1984 04 1985 08 1986 04 1987 80 1988 08 1989 04 198A 08 198B 40 198C 0C 198D CC 198E 0C 198F CC ;------------------------------------------------------------------------------- 1990 E5 push hl 1991 C5 push bc 1992 21 7740 ld hl,4077 1995 CBBE res 7,(hl) ; 0xxx xxxx 1997 CBA6 res 4,(hl) ; 0xx0 xxxx 1999 DB 80 in a,(80) 199B E6 0E and 0E 199D 4F ld c,a 199E 0F rrca 199F 32 7340 ld (4073),a 19A2 11 CD05 ld de,05CD 19A5 FE 06 cp 06 19A7 38 20 jr c,19C9 19A9 20 02 jr nz,19AD 19AB CBFE set 7,(hl) 19AD 11 DA05 ld de,05DA 19B0 CD BD19 call 19BD 19B3 DB 87 in a,(87) 19B5 E6 77 and 77 19B7 32 8340 ld (4083),a 19BA C1 pop bc 19BB E1 pop hl 19BC C9 ret 19BD C5 push bc 19BE 01 0D00 ld bc,000D 19C1 EB ex de,hl 19C2 11 6C41 ld de,416C 19C5 EDB0 ldir 19C7 C1 pop bc 19C8 C9 ret 19C9 CBE6 set 4,(hl) 19CB CD BD19 call 19BD 19CE 21 8019 ld hl,1980 19D1 06 00 ld b,00 19D3 09 add hl,bc 19D4 C1 pop bc 19D5 11 7440 ld de,4074 19D8 7E ld a,(hl) 19D9 E6 0F and 0F 19DB 12 ld (de),a 19DC 23 inc hl 19DD 13 inc de 19DE 7E ld a,(hl) ; Get source BCD 19DF E6 F0 and F0 ; 1111 0000 strip off bot nybble 19E1 0F rrca ; 0111 1000 19E2 0F rrca ; 0011 1100 19E3 0F rrca ; 0001 1110 19E4 0F rrca ; 0000 1111 19E5 12 ld (de),a ; Store low digit to (DE) 19E6 13 inc de ; Increment DE index 19E7 7E ld a,(hl) ; Get source BCD 19E8 E6 0F and 0F ; 0000 1111 strip off top nybble 19EA 12 ld (de),a ; Save that to (DE) 19EB E1 pop hl ; Get original HL back 19EC C9 ret 19ED C5 push bc ; Save original BC 19EE 47 ld b,a 19EF 0E 03 ld c,03 ; BC = aa03 19F1 21 4540 ld hl,4045 19F4 CD 011A call 1A01 19F7 21 4541 ld hl,4145 19FA 0E 03 ld c,03 19FC CD 011A call 1A01 19FF C1 pop bc 1A00 C9 ret 1A01 7E ld a,(hl) 1A02 A7 and a 1A03 20 01 jr nz,1A06 1A05 70 ld (hl),b 1A06 0D dec c 1A07 C8 ret z 1A08 23 inc hl 1A09 18 F6 jr 1A01 ; Loop thru until C=00 1A0B EF rst 28h ; DE=00F6, push de,bc, B=1, IX=4180 1A0C 21 3E40 ld hl,403E 1A0F D7 rst 10h ; Test B, load a,(hl) else ld a,(hl+1) 1A10 FE 03 cp 03 1A12 C8 ret z 1A13 21 0540 ld hl,4005 1A16 D7 rst 10h ; Test B, load a,(hl) else ld a,(hl+1) 1A17 1E 03 ld e,03 ; 1A19 AF xor a 1A1A BE cp (hl) 1A1B C0 ret nz 1A1C 2B dec hl 1A1D 1D dec e 1A1E 20 FA jr nz,1A1A 1A20 1E 02 ld e,02 1A22 2B dec hl 1A23 BE cp (hl) 1A24 20 1A jr nz,1A40 1A26 1D dec e 1A27 20 F9 jr nz,1A22 1A29 C9 ret ;------------------------------------------------------------------------------- ; This is a ram test ;------------------------------------------------------------------------------- 1A2A 0E 06 ld c,06 ; From 4005 back thru 4000 1A2C 21 0540 ld hl,4005 1A2F D7 rst 10h ; Test B, load a,(hl) else ld a,(hl+1) 1A30 3E FF ld a,FF 1A32 77 ld (hl),a ; Load $FF to all positions 1A33 BE cp (hl) ; Compare to the Accumulator 1A34 20 0A jr nz,1A40 1A36 AF xor a ; Zeroize A 1A37 77 ld (hl),a ; Store that to (HL) 1A38 BE cp (hl) ; Compare no bits left 1 1A39 20 05 jr nz,1A40 ; 1A3B 2B dec hl ; Decrement pointer 1A3C 0D dec c ; Decrement counter 1A3D 20 F1 jr nz,1A30 ; Continue FF, 00 loop until all done 1A3F C9 ret ;------------------------------------------------------------------------------- ; Error during memory test ;------------------------------------------------------------------------------- 1A40 21 4540 ld hl,4045 1A43 D7 rst 10h ; Test B, load a,(hl) else ld a,(hl+1) 1A44 3E 03 ld a,03 ; Load $03 to 4045, 4046, 4047 1A46 77 ld (hl),a 1A47 23 inc hl 1A48 77 ld (hl),a 1A49 23 inc hl 1A4A 77 ld (hl),a 1A4B 21 8442 ld hl,4284 ; 1A4E CD 821A call 1A82 1A51 C9 ret ;------------------------------------------------------------------------------ ; Converts 4 digits at HL thru HL+3 ;------------------------------------------------------------------------------ 1A52 F5 push af 1A53 C5 push bc 1A54 01 0300 ld bc,0003 1A57 09 add hl,bc 1A58 37 scf 1A59 F5 push af 1A5A F1 pop af 1A5B 7E ld a,(hl) 1A5C CE 00 adc a,00 1A5E 27 daa 1A5F F5 push af 1A60 77 ld (hl),a 1A61 2B dec hl 1A62 0D dec c 1A63 F2 5A1A jp p,1A5A 1A66 F1 pop af 1A67 C1 pop bc 1A68 F1 pop af 1A69 C9 ret ;------------------------------------------------------------------------------ 1A6A CD AE0B call 0BAE 1A6D DF rst 18h ; RRCA x 4, RET 1A6E C5 push bc 1A6F 06 00 ld b,00 1A71 4F ld c,a 1A72 09 add hl,bc 1A73 C1 pop bc 1A74 C5 push bc 1A75 CB40 bit 0,b 1A77 28 04 jr z,1A7D 1A79 01 0C00 ld bc,000C 1A7C 09 add hl,bc 1A7D C1 pop bc 1A7E CD 521A call 1A52 1A81 C9 ret 1A82 C5 push bc 1A83 05 dec b ; Test D for zero 1A84 04 inc b 1A85 28 F6 jr z,1A7D 1A87 01 0400 ld bc,0004 1A8A 09 add hl,bc 1A8B 18 F0 jr 1A7D 1A8D 21 7040 ld hl,4070 1A90 DB 80 in a,(80) 1A92 E6 C0 and C0 1A94 0F rrca 1A95 DF rst 18h ; RRCA x 4, RET 1A96 BE cp (hl) 1A97 3E 05 ld a,05 1A99 21 1442 ld hl,4214 1A9C 0E 02 ld c,02 1A9E C4 1E1B call nz,1B1E 1AA1 21 8240 ld hl,4082 1AA4 DB 86 in a,(86) 1AA6 AE xor (hl) 1AA7 28 12 jr z,1ABB 1AA9 E6 0F and 0F 1AAB 3E 08 ld a,08 1AAD 21 5C42 ld hl,425C 1AB0 0E 04 ld c,04 1AB2 20 04 jr nz,1AB8 1AB4 3C inc a 1AB5 21 6042 ld hl,4260 1AB8 CD 1E1B call 1B1E 1ABB 21 7740 ld hl,4077 1ABE 3E 10 ld a,10 1AC0 D3 71 out (71),a ; Output DART Channel A 1AC2 DB 71 in a,(71) ; Input DART Channel A 1AC4 2F cpl 1AC5 E6 08 and 08 1AC7 28 02 jr z,1ACB 1AC9 3E 01 ld a,01 1ACB 4F ld c,a 1ACC 7E ld a,(hl) 1ACD E6 01 and 01 1ACF A9 xor c 1AD0 28 0A jr z,1ADC 1AD2 3E 06 ld a,06 1AD4 21 1042 ld hl,4210 1AD7 0E 08 ld c,08 1AD9 CD 1E1B call 1B1E 1ADC 21 7740 ld hl,4077 1ADF DB 84 in a,(84) 1AE1 E6 40 and 40 1AE3 4F ld c,a 1AE4 7E ld a,(hl) 1AE5 E6 40 and 40 1AE7 A9 xor c 1AE8 CA F51A jp z,1AF5 1AEB 3E 07 ld a,07 1AED 21 1842 ld hl,4218 1AF0 0E 10 ld c,10 1AF2 CD 1E1B call 1B1E 1AF5 FDCB66 F7 bit 4,(iy+F7) 1AF9 20 13 jr nz,1B0E 1AFB DB 87 in a,(87) 1AFD E6 77 and 77 1AFF FDBE 03 cp (iy+03) 1B02 28 0A jr z,1B0E 1B04 3E 0B ld a,0B 1B06 0E 06 ld c,06 1B08 21 2042 ld hl,4220 1B0B CD 1E1B call 1B1E 1B0E DB 80 in a,(80) 1B10 E6 0E and 0E 1B12 0F rrca 1B13 FDAE F3 xor (iy+F3) 1B16 C8 ret z 1B17 3E 04 ld a,04 1B19 21 1C42 ld hl,421C 1B1C 0E 20 ld c,20 1B1E E5 push hl 1B1F CD ED19 call 19ED 1B22 E1 pop hl 1B23 79 ld a,c 1B24 FDA6 F8 and (iy+F8) 1B27 C0 ret nz 1B28 79 ld a,c 1B29 FDB6 F8 or (iy+F8) 1B2C FD77 F8 ld (iy+F8),a 1B2F CD 521A call 1A52 1B32 C9 ret 1B33 21 A442 ld hl,42A4 1B36 DDCB7E D7 bit 7,(ix+D7) 1B3A 28 03 jr z,1B3F 1B3C 21 BC42 ld hl,42BC 1B3F CD 6A1A call 1A6A 1B42 C3 AF11 jp 11AF ;------------------------------------------------------------------------------- 1B45 21 8C42 ld hl,428C 1B48 FDCB66 F7 bit 4,(iy+F7) 1B4C C2 6A1A jp nz,1A6A 1B4F CD 741A call 1A74 1B52 C9 ret 1B53 7A ld a,d 1B54 FE 30 cp 30 1B56 28 0C jr z,1B64 1B58 21 7740 ld hl,4077 1B5B 3E 08 ld a,08 1B5D A6 and (hl) 1B5E C2 2514 jp nz,1425 1B61 C3 B115 jp 15B1 ;------------------------------------------------------------------------------- 1B64 21 6442 ld hl,4264 1B67 CD 821A call 1A82 1B6A C3 B115 jp 15B1 ;------------------------------------------------------------------------------- 1B6D 21 7C42 ld hl,427C 1B70 CD 821A call 1A82 1B73 C9 ret 1B74 21 7442 ld hl,4274 1B77 CD 821A call 1A82 1B7A C9 ret 1B7B 21 5442 ld hl,4254 1B7E CD 821A call 1A82 1B81 D5 push de 1B82 C5 push bc 1B83 21 0040 ld hl,4000 1B86 01 8000 ld bc,0080 1B89 CD D818 call 18D8 1B8C 3E 3A ld a,3A 1B8E CD DE15 call 15DE 1B91 AF xor a 1B92 32 7B40 ld (407B),a 1B95 16 10 ld d,10 1B97 7A ld a,d 1B98 CD E51B call 1BE5 1B9B CD DC1B call 1BDC 1B9E 3E 00 ld a,00 1BA0 CD E51B call 1BE5 1BA3 7E ld a,(hl) 1BA4 CD E51B call 1BE5 1BA7 23 inc hl 1BA8 15 dec d 1BA9 20 F8 jr nz,1BA3 1BAB 3A 7B40 ld a,(407B) 1BAE 2F cpl 1BAF 3C inc a 1BB0 CD E51B call 1BE5 1BB3 0B dec bc 1BB4 78 ld a,b 1BB5 B1 or c 1BB6 28 10 jr z,1BC8 1BB8 CD BD1B call 1BBD 1BBB 18 CF jr 1B8C 1BBD 3E 8D ld a,8D 1BBF CD DE15 call 15DE 1BC2 3E 8A ld a,8A 1BC4 CD DE15 call 15DE 1BC7 C9 ret 1BC8 CD BD1B call 1BBD 1BCB 3E F0 ld a,F0 1BCD CD DE15 call 15DE 1BD0 CD E318 call 18E3 1BD3 FDCB96 F7 res 2,(iy+F7) 1BD7 C1 pop bc 1BD8 D1 pop de 1BD9 C3 2514 jp 1425 ;------------------------------------------------------------------------------- 1BDC 7C ld a,h 1BDD CD E51B call 1BE5 1BE0 7D ld a,l 1BE1 CD E51B call 1BE5 1BE4 C9 ret 1BE5 1E 02 ld e,02 1BE7 D5 push de 1BE8 57 ld d,a 1BE9 DF rst 18h ; RRCA x 4, RET 1BEA E6 0F and 0F ; 0000 1111 1BEC 1E 30 ld e,30 ; 0011 0000 1BEE FE 0A cp 0A 1BF0 38 02 jr c,1BF4 1BF2 1E 37 ld e,37 ; 0011 0111 1BF4 83 add a,e 1BF5 CD DE15 call 15DE 1BF8 7A ld a,d 1BF9 D1 pop de 1BFA 1D dec e 1BFB C8 ret z 1BFC D5 push de 1BFD 57 ld d,a 1BFE E5 push hl 1BFF 21 7B40 ld hl,407B 1C02 85 add a,(hl) 1C03 77 ld (hl),a 1C04 E1 pop hl 1C05 7A ld a,d 1C06 18 E2 jr 1BEA 1C08 21 7740 ld hl,4077 1C0B 3E 04 ld a,04 1C0D A6 and (hl) 1C0E CA 2514 jp z,1425 1C11 3E FB ld a,FB ; 1111 1011 1C13 A6 and (hl) ; AND 1C14 F6 08 or 08 ; Set bit 0000 1000 1C16 77 ld (hl),a ; Save it back to (HL) 1C17 C3 2514 jp 1425 ;------------------------------------------------------------------------------- 1C1A 3E FB ld a,FB ; 1111 1011 Reset D2 at 4077 1C1C 21 7740 ld hl,4077 1C1F A6 and (hl) ; AND with contents of 4077 1C20 77 ld (hl),a ; Save it back 1C21 C9 ret ;------------------------------------------------------------------------------- 1C22 F5 push af 1C23 21 5740 ld hl,4057 1C26 D7 rst 10h ; Test B, load a,(hl) else ld a,(hl+1) 1C27 E6 01 and 01 1C29 20 12 jr nz,1C3D 1C2B 21 5740 ld hl,4057 1C2E 3E 01 ld a,01 1C30 B6 or (hl) 1C31 77 ld (hl),a 1C32 24 inc h 1C33 3E 01 ld a,01 1C35 B6 or (hl) 1C36 77 ld (hl),a 1C37 21 2842 ld hl,4228 1C3A CD 521A call 1A52 1C3D F1 pop af 1C3E C9 ret ;------------------------------------------------------------------------------- ; Here's a small block move (DE)<-(HL), C -= 1 ;------------------------------------------------------------------------------- 1C3F 7E ld a,(hl) 1C40 12 ld (de),a 1C41 23 inc hl 1C42 13 inc de 1C43 0D dec c 1C44 20 F9 jr nz,1C3F 1C46 C9 ret ;------------------------------------------------------------------------------- 1C47 21 4540 ld hl,4045 1C4A D7 rst 10h ; Test B, load a,(hl) else ld a,(hl+1) 1C4B 3A 5E40 ld a,(405E) 1C4E E6 F0 and F0 1C50 DF rst 18h ; RRCA x 4, RET 1C51 CB40 bit 0,b 1C53 28 02 jr z,1C57 1C55 0F rrca 1C56 0F rrca 1C57 E6 03 and 03 1C59 28 07 jr z,1C62 1C5B 23 inc hl 1C5C 3D dec a 1C5D 28 03 jr z,1C62 1C5F 3D dec a 1C60 C0 ret nz 1C61 23 inc hl 1C62 7E ld a,(hl) 1C63 FE 01 cp 01 1C65 C0 ret nz 1C66 DD7E BE ld a,(ix+BE) 1C69 A7 and a 1C6A C0 ret nz 1C6B 36 00 ld (hl),00 1C6D C9 ret ;------------------------------------------------------------------------------- 1C6E 06 03 ld b,03 ; Set up for all 3 rows of digits 1C70 0E 05 ld c,05 ; 5 digits per row 1C72 CD EA0B call 0BEA ; Adjust 5 digits from table 1C75 10 F9 djnz 1C70 ; and loop until done 1C77 06 03 ld b,03 ; Set up for all 3 rows of digits 1C79 0E 05 ld c,05 ; 5 digits per row 1C7B CD EA0B call 0BEA ; Adjust 5 digits from table 1C7E 10 F9 djnz 1C79 ; and loop until done 1C80 C9 ret ; then finally return ;------------------------------------------------------------------------------- 1C81 DB 86 in a,(86) 1C83 2F cpl 1C84 E6 0F and 0F 1C86 CD B31C call 1CB3 1C89 47 ld b,a 1C8A DB 86 in a,(86) 1C8C 2F cpl 1C8D DF rst 18h ; RRCA x 4, RET 1C8E E6 0F and 0F 1C90 CD B31C call 1CB3 1C93 4F ld c,a 1C94 E6 F0 and F0 1C96 57 ld d,a 1C97 78 ld a,b 1C98 E6 F0 and F0 1C9A DF rst 18h ; RRCA x 4, RET 1C9B B2 or d 1C9C 57 ld d,a 1C9D 79 ld a,c 1C9E E6 0F and 0F 1CA0 DF rst 18h ; RRCA x 4, RET 1CA1 5F ld e,a 1CA2 78 ld a,b 1CA3 E6 0F and 0F 1CA5 B3 or e 1CA6 5F ld e,a 1CA7 7A ld a,d 1CA8 0E 0C ld c,0C 1CAA CD 9F02 call 029F 1CAD 7B ld a,e 1CAE 0D dec c 1CAF CD 9F02 call 029F 1CB2 C9 ret 1CB3 20 03 jr nz,1CB8 1CB5 3E 16 ld a,16 1CB7 C9 ret 1CB8 FE 0A cp 0A 1CBA D8 ret c 1CBB C6 06 add a,06 1CBD C9 ret 1CBE FDCB66 F7 bit 4,(iy+F7) 1CC2 C8 ret z 1CC3 21 6140 ld hl,4061 1CC6 35 dec (hl) 1CC7 C0 ret nz 1CC8 23 inc hl 1CC9 7E ld a,(hl) 1CCA 2B dec hl 1CCB 77 ld (hl),a 1CCC EF rst 28h ; DE=00F6, push de,bc, B=1, IX=4180 1CCD 21 2940 ld hl,4029 1CD0 D7 rst 10h ; Test B, load a,(hl) else ld a,(hl+1) 1CD1 3E 02 ld a,02 1CD3 0E 70 ld c,70 1CD5 CB40 bit 0,b 1CD7 20 02 jr nz,1CDB 1CD9 0E 10 ld c,10 1CDB F5 push af 1CDC C5 push bc 1CDD E5 push hl 1CDE 06 03 ld b,03 1CE0 11 7440 ld de,4074 1CE3 D5 push de 1CE4 D1 pop de 1CE5 E1 pop hl 1CE6 E5 push hl 1CE7 ED53 7940 ld (4079),de 1CEB 1A ld a,(de) 1CEC 13 inc de 1CED D5 push de 1CEE C5 push bc 1CEF 85 add a,l 1CF0 6F ld l,a 1CF1 CD 081D call 1D08 1CF4 C1 pop bc 1CF5 3E 10 ld a,10 1CF7 81 add a,c 1CF8 4F ld c,a 1CF9 05 dec b 1CFA 20 E8 jr nz,1CE4 1CFC D1 pop de 1CFD E1 pop hl 1CFE C1 pop bc 1CFF 4F ld c,a 1D00 F1 pop af 1D01 3D dec a 1D02 C8 ret z 1D03 2E 27 ld l,27 1D05 C3 DB1C jp 1CDB ;------------------------------------------------------------------------------- 1D08 1E 00 ld e,00 1D0A CD 181D call 1D18 1D0D 1C inc e 1D0E 7B ld a,e 1D0F 0F rrca 1D10 38 01 jr c,1D13 1D12 23 inc hl 1D13 FE 02 cp 02 1D15 20 F3 jr nz,1D0A 1D17 C9 ret ;------------------------------------------------------------------------------- ; This appear to be part of main loop ;------------------------------------------------------------------------------- 1D18 3A 5F40 ld a,(405F) 1D1B E6 FC and FC 1D1D B3 or e 1D1E F6 08 or 08 1D20 32 5F40 ld (405F),a 1D23 D3 87 out (87),a 1D25 0F rrca 1D26 7E ld a,(hl) 1D27 D4 1800 call nc,0018 1D2A CD 3E1D call 1D3E 1D2D E6 0F and 0F 1D2F B1 or c 1D30 D3 86 out (86),a 1D32 3A 5F40 ld a,(405F) 1D35 F6 04 or 04 1D37 D3 87 out (87),a 1D39 E6 FB and FB 1D3B D3 87 out (87),a 1D3D C9 ret 1D3E D5 push de 1D3F E5 push hl 1D40 2A 7940 ld hl,(4079) 1D43 11 D1FF ld de,FFD1 1D46 19 add hl,de 1D47 EB ex de,hl 1D48 E1 pop hl 1D49 E5 push hl 1D4A 6B ld l,e 1D4B 46 ld b,(hl) 1D4C E1 pop hl 1D4D D1 pop de 1D4E 05 dec b 1D4F F8 ret m 1D50 E5 push hl 1D51 2E 44 ld l,44 1D53 CB76 bit 6,(hl) 1D55 E1 pop hl 1D56 C8 ret z 1D57 7B ld a,e 1D58 FE 02 cp 02 1D5A 3E 0F ld a,0F 1D5C D8 ret c 1D5D E5 push hl 1D5E D5 push de 1D5F 58 ld e,b 1D60 1C inc e 1D61 CD BA0B call 0BBA 1D64 7E ld a,(hl) 1D65 D1 pop de 1D66 E1 pop hl 1D67 CB43 bit 0,e 1D69 CC 1800 call z,0018 1D6C C9 ret 1D6D CD AF1D call 1DAF 1D70 6A ld l,d 1D71 CD AF1D call 1DAF 1D74 BD cp l 1D75 20 F9 jr nz,1D70 1D77 21 5940 ld hl,4059 1D7A D7 rst 10h ; Test B, load a,(hl) else ld a,(hl+1) 1D7B 7A ld a,d 1D7C 5E ld e,(hl) 1D7D 72 ld (hl),d 1D7E BB cp e 1D7F C9 ret 1D80 EF rst 28h ; DE=00F6, push de,bc, B=1, IX=4180 1D81 CD 6D1D call 1D6D 1D84 20 0A jr nz,1D90 1D86 DD7E D2 ld a,(ix+D2) 1D89 E6 06 and 06 1D8B C8 ret z 1D8C CD 8A1E call 1E8A 1D8F C9 ret 1D90 A7 and a 1D91 1F rra 1D92 DA 151E jp c,1E15 1D95 21 5940 ld hl,4059 1D98 CB40 bit 0,b 1D9A 20 01 jr nz,1D9D 1D9C 24 inc h 1D9D 7E ld a,(hl) 1D9E 1F rra 1D9F D8 ret c 1DA0 7A ld a,d 1DA1 A7 and a 1DA2 0E 01 ld c,01 1DA4 20 01 jr nz,1DA7 1DA6 0D dec c 1DA7 21 6B40 ld hl,406B 1DAA 36 FF ld (hl),FF 1DAC C3 050E jp 0E05 ;------------------------------------------------------------------------------- 1DAF 1E 07 ld e,07 1DB1 7B ld a,e 1DB2 D3 81 out (81),a 1DB4 DB 85 in a,(85) 1DB6 CB40 bit 0,b 1DB8 C4 1800 call nz,0018 1DBB 17 rla 1DBC 7A ld a,d 1DBD 17 rla 1DBE 57 ld d,a 1DBF 1D dec e 1DC0 F2 B11D jp p,1DB1 1DC3 3E 07 ld a,07 1DC5 D3 81 out (81),a 1DC7 7A ld a,d 1DC8 C9 ret 1DC9 21 5240 ld hl,4052 1DCC D7 rst 10h ; Test B, load a,(hl) else ld a,(hl+1) 1DCD E6 06 and 06 1DCF C0 ret nz 1DD0 2E 59 ld l,59 1DD2 7E ld a,(hl) 1DD3 E6 7E and 7E 1DD5 C8 ret z 1DD6 17 rla 1DD7 17 rla 1DD8 DA 681E jp c,1E68 1DDB 0E 05 ld c,05 1DDD 17 rla 1DDE 38 04 jr c,1DE4 1DE0 0D dec c 1DE1 20 FA jr nz,1DDD 1DE3 C9 ret 1DE4 A7 and a 1DE5 C0 ret nz 1DE6 7E ld a,(hl) 1DE7 E6 7E and 7E 1DE9 0F rrca 1DEA 32 8140 ld (4081),a 1DED 21 7C40 ld hl,407C 1DF0 79 ld a,c 1DF1 3D dec a 1DF2 85 add a,l 1DF3 6F ld l,a 1DF4 56 ld d,(hl) 1DF5 21 4840 ld hl,4048 1DF8 D7 rst 10h ; Test B, load a,(hl) else ld a,(hl+1) 1DF9 7A ld a,d 1DFA A7 and a 1DFB CA 6A1E jp z,1E6A 1DFE DB 81 in a,(81) 1E00 CB5F bit 3,a 1E02 7A ld a,d 1E03 20 09 jr nz,1E0E 1E05 DF rst 18h ; RRCA x 4, RET 1E06 57 ld d,a 1E07 E6 0F and 0F 1E09 77 ld (hl),a 1E0A 23 inc hl 1E0B 7A ld a,d 1E0C E6 F0 and F0 1E0E 77 ld (hl),a 1E0F 3A 8140 ld a,(4081) 1E12 C3 8B1E jp 1E8B ;------------------------------------------------------------------------------- 1E15 5F ld e,a 1E16 3A 3E40 ld a,(403E) 1E19 21 3E41 ld hl,413E 1E1C B6 or (hl) 1E1D C0 ret nz 1E1E 3A 7140 ld a,(4071) 1E21 FE 01 cp 01 1E23 28 04 jr z,1E29 1E25 7B ld a,e 1E26 E6 3F and 3F 1E28 C0 ret nz 1E29 1E 14 ld e,14 1E2B E7 rst 20h ; Load A from 4043 or 4044 dep on B 1E2C 3E 01 ld a,01 1E2E 32 7140 ld (4071),a 1E31 CD 6D1D call 1D6D 1E34 E6 7E and 7E 1E36 07 rlca 1E37 07 rlca 1E38 F5 push af 1E39 E6 F8 and F8 1E3B 0E 05 ld c,05 1E3D 17 rla 1E3E 38 05 jr c,1E45 1E40 0D dec c 1E41 20 FA jr nz,1E3D 1E43 F1 pop af 1E44 C9 ret 1E45 A7 and a 1E46 28 02 jr z,1E4A 1E48 F1 pop af 1E49 C9 ret 1E4A 7A ld a,d 1E4B 0F rrca 1E4C E6 1F and 1F 1E4E CD 8B1E call 1E8B 1E51 21 7C40 ld hl,407C 1E54 79 ld a,c 1E55 3D dec a 1E56 85 add a,l 1E57 6F ld l,a 1E58 7E ld a,(hl) 1E59 C6 01 add a,01 1E5B 27 daa 1E5C 77 ld (hl),a 1E5D F1 pop af 1E5E 1E 14 ld e,14 1E60 D2 2000 jp nc,0020 1E63 1E 01 ld e,01 1E65 C3 2000 jp 0020 ;------------------------------------------------------------------------------- 1E68 A7 and a 1E69 C0 ret nz 1E6A F5 push af 1E6B D5 push de 1E6C 21 5240 ld hl,4052 1E6F D7 rst 10h ; Test B, load a,(hl) else ld a,(hl+1) 1E70 E6 06 and 06 1E72 F5 push af 1E73 3E 20 ld a,20 1E75 28 02 jr z,1E79 1E77 3E 00 ld a,00 1E79 CD 8B1E call 1E8B 1E7C F1 pop af 1E7D 20 08 jr nz,1E87 1E7F 2E 48 ld l,48 1E81 97 sub a ; Zero A 1E82 77 ld (hl),a ; Store at HL, HL+1, HL+2 1E83 23 inc hl 1E84 77 ld (hl),a 1E85 23 inc hl 1E86 77 ld (hl),a 1E87 D1 pop de 1E88 F1 pop af 1E89 C9 ret 1E8A AF xor a ; Zeroize accumulator 1E8B D3 81 out (81),a ; Output it to port 81 1E8D 3E 04 ld a,04 ; 0000 0100 1E8F CB40 bit 0,b ; Hmm, what's in register B? 1E91 20 01 jr nz,1E94 1E93 07 rlca ; 0000 1000 1E94 FDB6 DE or (iy+DE) ; OR with whatever's at IY table 1E97 D3 85 out (85),a ; And output that to Port 85 1E99 FD7E DE ld a,(iy+DE) ; Or just get what's at IY+DE 1E9C D3 85 out (85),a ; and output that to 85 1E9E C9 ret 1E9F FF rst 38h ;------------------------------------------------------------------------------- ...end of rom