Chase H.Q. | Routines |
Prev: B648 | Up: Map | Next: B716 |
Used by the routine at main_loop_24.
|
||||||||||||
sub_b67c | B67C | LD H,A | A += counter_C & 1 | |||||||||
B67D | LD A,($A236) | |||||||||||
B680 | AND $01 | |||||||||||
B682 | ADD A,H | |||||||||||
B683 | EX AF,AF' | Bank A | ||||||||||
B684 | LD A,($A250) | Jump to sub_b67c_0 if turn_speed < B | ||||||||||
B687 | CP B | |||||||||||
B688 | JR C,sub_b67c_0 | |||||||||||
B68A | LD A,($A251) | A = flip | ||||||||||
B68D | AND A | Set flags | ||||||||||
B68E | LD A,$00 | A = 0 | ||||||||||
B690 | JR Z,sub_b67c_no_flip | Jump to sub_b67c_no_flip if flip is zero | ||||||||||
B692 | ADD A,C | A += C | ||||||||||
sub_b67c_no_flip | B693 | ADD A,C | A += C | |||||||||
B694 | LD C,A | C = A | ||||||||||
B695 | EX AF,AF' | |||||||||||
B696 | ADD A,C | A += C | ||||||||||
B697 | EX AF,AF' | |||||||||||
sub_b67c_0 | B698 | EX AF,AF' | ||||||||||
This entry point is used by the routine at main_loop_24.
|
||||||||||||
sub_b67c_1 | B699 | EXX | ||||||||||
B69A | LD BC,$0000 | BC = 0 -- not self modified | ||||||||||
B69D | EXX | |||||||||||
This entry point is used by the routine at main_loop_24.
|
||||||||||||
sub_b67c_2 | B69E | LD E,$80 | E = $80 | |||||||||
B6A0 | LD B,$00 | BC = A * 3 | ||||||||||
B6A2 | LD C,A | |||||||||||
B6A3 | RLCA | |||||||||||
B6A4 | ADD A,C | |||||||||||
B6A5 | LD C,A | |||||||||||
B6A6 | LD HL,$CFB2 | HL = unknown_cfb2 + BC -> unknown_cfb2 | ||||||||||
B6A9 | ADD HL,BC | |||||||||||
B6AA | LD A,(HL) | D = *HL++ + $79 | ||||||||||
B6AB | INC HL | |||||||||||
B6AC | ADD A,$79 | |||||||||||
B6AE | LD D,A | |||||||||||
B6AF | LD A,(HL) | E = *HL++ + E | ||||||||||
B6B0 | INC HL | |||||||||||
B6B1 | ADD A,E | |||||||||||
B6B2 | LD E,A | |||||||||||
B6B3 | LD C,(HL) | C = *HL -- B is still zero | ||||||||||
B6B4 | LD HL,$D027 | HL = &car_adornments + BC | ||||||||||
B6B7 | ADD HL,BC | |||||||||||
B6B8 | LD B,(HL) | B = *HL++ -- height | ||||||||||
B6B9 | INC HL | |||||||||||
B6BA | LD C,(HL) | C = *HL++ -- byte width | ||||||||||
B6BB | INC HL | |||||||||||
B6BC | LD A,(HL) | HL = wordat(HL); HL++ -- masked bitmap data | ||||||||||
B6BD | INC HL | |||||||||||
B6BE | LD H,(HL) | |||||||||||
B6BF | LD L,A | |||||||||||
B6C0 | LD A,C | A = C | ||||||||||
B6C1 | EXX | |||||||||||
B6C2 | LD E,A | E = A -- bank byte width in E' | ||||||||||
B6C3 | EXX | |||||||||||
B6C4 | LD A,($B5AB) | Read from SUB @ B5AA | ||||||||||
B6C7 | NEG | D -= A | ||||||||||
B6C9 | ADD A,D | |||||||||||
B6CA | LD D,A | |||||||||||
B6CB | LD A,($B5B0) | A = *$B5B0 -- Self modified value in draw_car | ||||||||||
B6CE | SRL A | A >>= 1 | ||||||||||
B6D0 | JR Z,sub_b67c_3 | Jump to sub_b67c_3 if zero | ||||||||||
B6D2 | SUB $02 | |||||||||||
B6D4 | ADD A,D | D += A - 2 | ||||||||||
B6D5 | LD D,A | |||||||||||
This entry point is used by the routines at draw_car and draw_smoke.
|
||||||||||||
sub_b67c_3 | B6D6 | LD A,($A22A) | D -= var_a22a | |||||||||
B6D9 | NEG | |||||||||||
B6DB | ADD A,D | |||||||||||
B6DC | LD D,A | |||||||||||
This entry point is used by the routines at main_loop_23 and sub_b549.
|
||||||||||||
sub_b67c_4 | B6DD | LD A,E | A = E | |||||||||
B6DE | AND $F8 | Divide by 8 | ||||||||||
B6E0 | RRCA | |||||||||||
B6E1 | RRCA | |||||||||||
B6E2 | RRCA | |||||||||||
B6E3 | LD E,A | E = A | ||||||||||
B6E4 | LD A,D | A = D | ||||||||||
B6E5 | EX AF,AF' | |||||||||||
B6E6 | LD A,D | D = (D & $0F) + $F0 | ||||||||||
B6E7 | AND $0F | |||||||||||
B6E9 | ADD A,$F0 | |||||||||||
B6EB | LD D,A | |||||||||||
B6EC | EX AF,AF' | |||||||||||
B6ED | AND $70 | E += (A & $70) * 2 | ||||||||||
B6EF | ADD A,A | |||||||||||
B6F0 | ADD A,E | |||||||||||
B6F1 | LD E,A | |||||||||||
B6F2 | PUSH DE | |||||||||||
B6F3 | LD E,C | E = C -- byte width | ||||||||||
B6F4 | SLA E | E <<= 1 | ||||||||||
B6F6 | EXX | |||||||||||
B6F7 | POP HL | |||||||||||
B6F8 | LD A,E | A = E | ||||||||||
B6F9 | SRL B | B >>= 1 | ||||||||||
B6FB | EX AF,AF' | Is this EX'ing AF to get the carry flag? | ||||||||||
B6FC | ADD HL,BC | HL += BC | ||||||||||
B6FD | EX AF,AF' | |||||||||||
B6FE | JP C,plot_masked_sprite_flipped_0 | |||||||||||
This entry point is used by the routine at draw_object_right.
|
||||||||||||
sub_b67c_5 | B701 | LD IX,$B729 | IX = plot_masked_sprite_core_thingy | |||||||||
B705 | CPL | A = ~A + 9 == (8 - A) | ||||||||||
B706 | ADD A,$09 | |||||||||||
B708 | RLCA | This multiplies by six - the length of each load-mask-store step in the plotter core. | ||||||||||
B709 | LD C,A | |||||||||||
B70A | RLCA | |||||||||||
B70B | ADD A,C | |||||||||||
B70C | LD C,A | Add that to IX | ||||||||||
B70D | LD B,$00 | |||||||||||
B70F | ADD IX,BC | |||||||||||
B711 | LD B,$0F | B = 15 -- Set loop counter for 15 iterations? | ||||||||||
B713 | EXX | |||||||||||
B714 | LD D,$00 | D = 0 -- fall through |
Prev: B648 | Up: Map | Next: B716 |