Chase H.Q. | Routines |
Prev: 8014 | Up: Map | Next: 81DD |
Used by the routine at load_stage.
|
||||||||
tape_load_to_5c00 | 80B9 | LD IX,$5C00 | Setup to load a block at $5C00 of length $1AF0 | |||||
80BD | LD DE,$1AF0 | |||||||
This entry point is used by the routine at start. IX = address DE = bytes
|
||||||||
tape_load_at_ix | 80C0 | INC D | D++ | |||||
80C1 | LD A,$98 | A = 152 | ||||||
80C3 | SCF | Set carry flag | ||||||
80C4 | EX AF,AF' | bank | ||||||
80C5 | DEC D | D-- -- weird inc then dec | ||||||
80C6 | DI | Disable interrupts | ||||||
80C7 | LD A,$08 | Set MIC bit (deactivates MIC) | ||||||
80C9 | OUT ($FE),A | output | ||||||
80CB | IN A,($FE) | input | ||||||
80CD | RRA | why shift? | ||||||
80CE | AND $20 | Check EAR input bit 6 | ||||||
80D0 | OR $02 | set border? | ||||||
80D2 | LD C,A | |||||||
80D3 | CP A | Set Z? [weird] | ||||||
tl_80d4 | 80D4 | RET NZ | ||||||
tl_80d5 | 80D5 | CALL tl_delay_814b | Call tl_delay_814b | |||||
80D8 | JR NC,tl_80d4 | |||||||
80DA | LD HL,$0415 | Delay time | ||||||
tl_delay | 80DD | DJNZ tl_delay | Delay for B iterations -- is B not initialised? | |||||
80DF | DEC HL | HL-- | ||||||
80E0 | LD A,H | Loop while HL > 0 | ||||||
80E1 | OR L | |||||||
80E2 | JR NZ,tl_delay | |||||||
80E4 | CALL tl_8147 | Call tl_8147 | ||||||
80E7 | JR NC,tl_80d4 | |||||||
tl_80e9 | 80E9 | LD B,$9C | B = 156 | |||||
80EB | CALL tl_8147 | Call tl_8147 | ||||||
tl_80ee | 80EE | JR NC,tl_80d4 | ||||||
80F0 | LD A,$C6 | A = 198 | ||||||
80F2 | CP B | |||||||
80F3 | JR NC,tl_80d5 | |||||||
80F5 | INC H | |||||||
80F6 | JR NZ,tl_80e9 | |||||||
tl_80f8 | 80F8 | LD B,$C9 | B = 201 | |||||
80FA | CALL tl_delay_814b | Call tl_delay_814b | ||||||
80FD | JR NC,tl_80d4 | |||||||
80FF | LD A,B | |||||||
8100 | CP $D4 | 212 | ||||||
8102 | JR NC,tl_80f8 | |||||||
8104 | CALL tl_delay_814b | Call tl_delay_814b | ||||||
8107 | RET NC | |||||||
8108 | LD A,C | A = C ^= 3 | ||||||
8109 | XOR $03 | |||||||
810B | LD C,A | |||||||
810C | LD H,$00 | |||||||
810E | LD B,$B0 | B = 176 | ||||||
8110 | JR tl_812c | |||||||
tl_8112 | 8112 | EX AF,AF' | ||||||
8113 | JR NZ,tl_811c | Odd/Bug: Doubled JR NZ | ||||||
8115 | JR NZ,tl_8117 | Odd/Bug: Jump to next instr | ||||||
tl_8117 | 8117 | LD (IX+$00),L | ||||||
811A | JR tl_8126 | |||||||
tl_811c | 811C | RL C | Shift into carry? | |||||
811E | XOR L | A ^= L | ||||||
811F | RET NZ | |||||||
8120 | LD A,C | RR C and copy to A? | ||||||
8121 | RRA | |||||||
8122 | LD C,A | |||||||
8123 | INC DE | DE++ | ||||||
8124 | JR tl_8128 | |||||||
tl_8126 | 8126 | INC IX | ||||||
tl_8128 | 8128 | DEC DE | ||||||
8129 | EX AF,AF' | |||||||
812A | LD B,$B2 | B = 178 | ||||||
tl_812c | 812C | LD L,$01 | ||||||
tl_812e | 812E | CALL tl_8147 | Call tl_8147 | |||||
8131 | RET NC | |||||||
8132 | LD A,$C8 | A = 200 | ||||||
8134 | CP B | |||||||
8135 | RL L | |||||||
8137 | LD B,$B0 | B = 176 | ||||||
8139 | JP NC,tl_812e | |||||||
813C | LD A,H | A = H ^ L | ||||||
813D | XOR L | |||||||
813E | LD H,A | Save A | ||||||
813F | LD A,D | Loop while DE > 0 | ||||||
8140 | OR E | |||||||
8141 | JR NZ,tl_8112 | |||||||
8143 | LD A,H | Restore A | ||||||
8144 | CP $01 | Is it 1? | ||||||
8146 | RET | Return (with flags?) | ||||||
tl_8147 | 8147 | CALL tl_delay_814b | Call tl_delay_814b | |||||
814A | RET NC | |||||||
tl_delay_814b | 814B | LD A,$16 | Delay loop of 22 iterations | |||||
tl_delay_loop | 814D | DEC A | ||||||
814E | JR NZ,tl_delay_loop | |||||||
8150 | AND A | Clear carry flag | ||||||
tl_8151 | 8151 | INC B | what's in B? | |||||
8152 | RET Z | Return if zero (failure) | ||||||
8153 | LD A,$7F | %01111111 | ||||||
8155 | IN A,($FE) | Read from port | ||||||
8157 | RRA | |||||||
8158 | RET Z | |||||||
8159 | XOR C | A ^= C | ||||||
815A | AND $20 | check EAR input bit 6 | ||||||
815C | JR Z,tl_8151 | loop if zero | ||||||
815E | LD A,C | A = C = ~C | ||||||
815F | CPL | |||||||
8160 | LD C,A | |||||||
8161 | AND $02 | |||||||
8163 | OR $08 | Set MIC bit (deactivate MIC) | ||||||
8165 | OUT ($FE),A | Output | ||||||
8167 | SCF | Set carry | ||||||
8168 | RET | Return (success) | ||||||
rewind_tape | 8169 | DEFB $70 | attr? | |||||
816A | DEFW $F001 | Screen position (8,64) | ||||||
816C | DEFW $5901 | Screen attribute position (1,8) | ||||||
816E | DEFM "REWIND TAPE TO START OF SIDE ",$B2 | "REWIND TAPE TO START OF SIDE 2" | ||||||
start_tape | 818C | DEFB $68 | attr? | |||||
818D | DEFW $F04B | Screen position (88,96) | ||||||
818F | DEFW $598B | Screen attribute position (11,12) | ||||||
8191 | DEFM "START TAP",$C5 | "START TAPE" | ||||||
819B | DEFB $68 | attr? | ||||||
819C | DEFW $F089 | Screen position (72,128) | ||||||
819E | DEFW $5A09 | Screen attribute position (9,16) | ||||||
searching_for_n | 81A0 | DEFM "SEARCHING FOR ",$B1 | "SEARCHING FOR 1" | |||||
81AF | DEFB $68 | attr? | ||||||
81B0 | DEFW $F0CD | Screen position (104,160) | ||||||
81B2 | DEFW $5A8D | Screen attribute position (13,20) | ||||||
found_n | 81B4 | DEFM "FOUND ",$B1 | "FOUND 1" | |||||
stop_the_tape_press_gear | 81BB | DEFB $70 | attr? | |||||
81BC | DEFW $F04A | Screen position (80,96) | ||||||
81BE | DEFW $598A | Screen attribute position (10,12) | ||||||
81C0 | DEFM "STOP THE TAP",$C5 | "STOP THE TAPE" | ||||||
81CD | DEFB $60 | attr? | ||||||
81CE | DEFW $F08B | Screen position (88,128) | ||||||
81D0 | DEFW $5A0B | Screen attribute position (11,16) | ||||||
81D2 | DEFM "PRESS GEA",$D2 | "PRESS GEAR" |
Prev: 8014 | Up: Map | Next: 81DD |