Chase H.Q. | Routines |
Prev: 873C | Up: Map | Next: 8876 |
Used by the routines at attract_mode, main_loop, run_pregame_screen, escape_scene and page_in_stage_128k.
|
||||||||
set_up_stage | 87DC | PUSH HL | Preserve data pointer | |||||
Zero $EE00..$EEFF and reset road_buffer_offset to $EE00.
|
||||||||
87DD | LD HL,$EE00 | |||||||
87E0 | LD ($A240),HL | |||||||
87E3 | LD D,H | |||||||
87E4 | LD E,$01 | |||||||
87E6 | LD (HL),L | |||||||
87E7 | LD BC,$00FF | |||||||
87EA | LDIR | |||||||
87EC | XOR A | A = 0 | ||||||
Copy 47 bytes of saved game state at saved_game_state to var_a16d.
|
||||||||
87ED | LD HL,$A13E | |||||||
87F0 | LD DE,$A16D | |||||||
87F3 | LD BC,$002F | |||||||
87F6 | LDIR | |||||||
Zero 208 bytes at $A19C onwards (hazard_1 onwards).
|
||||||||
87F8 | LD H,D | |||||||
87F9 | LD L,E | |||||||
87FA | INC DE | |||||||
87FB | LD (HL),A | |||||||
87FC | LD BC,$00CF | |||||||
87FF | LDIR | |||||||
8801 | POP HL | Restore data pointer | ||||||
Copy the 14 bytes of set up data passed in to road_pos (road_pos, road_curvature_ptr, etc.)
|
||||||||
8802 | LD BC,$000E | |||||||
8805 | LDIR | |||||||
Pre-shift the backdrop image.
|
||||||||
8807 | CALL pre_shift_backdrop | |||||||
Set backdrop position values in the <road drawing table TBD>.
|
||||||||
880A | LD HL,$E34B | $E34B = 8 -- perhaps a relative value | ||||||
880D | LD (HL),$08 | |||||||
880F | INC L | |||||||
8810 | LD (HL),A | $E34C = 0 | ||||||
8811 | INC L | |||||||
8812 | LD (HL),A | $E34D = 0 | ||||||
NOP some things TBD.
|
||||||||
8813 | LD HL,$8F82 | $8F82 = NOP (instruction) | ||||||
8816 | LD (HL),A | |||||||
8817 | INC HL | |||||||
8818 | LD (HL),A | $8F83 = NOP (instruction) | ||||||
8819 | INC HL | |||||||
881A | LD (HL),A | $8F84 = NOP (instruction) | ||||||
NOP the 6 instruction bytes at $8FA4: the helicopter and tunnel drawing calls.
|
||||||||
881B | LD HL,$8FA4 | |||||||
881E | LD B,$06 | |||||||
set_up_stage_0 | 8820 | LD (HL),A | ||||||
8821 | INC HL | |||||||
8822 | DJNZ set_up_stage_0 | |||||||
...
|
||||||||
8824 | LD ($C059),A | Self modify "LD (HL),x" at C058 to x = 0 | ||||||
Reset car jump counter.
|
||||||||
8827 | LD ($B064),A | Self modify "LD A,x" at move_hero_car to x = 0 | ||||||
882A | LD HL,($5D10) | Set $A191 to the perp's car LOD | ||||||
882D | LD ($A191),HL | |||||||
Zero $EE00..$EEFF and reset road_buffer_offset to $EE00 [duplicates work from earlier].
|
||||||||
8830 | LD HL,$EE00 | |||||||
8833 | LD ($A240),HL | |||||||
8836 | LD D,H | |||||||
8837 | LD E,$01 | |||||||
8839 | LD (HL),L | |||||||
883A | LD BC,$00FF | |||||||
883D | LDIR | |||||||
Run the map reader 32 times [enough to draw the screen?]
|
||||||||
883F | LD B,$20 | 32 iterations | ||||||
sus_loop | 8841 | PUSH BC | Preserve BC | |||||
8842 | LD HL,$A23F | Address of fast_counter == road_buffer_offset - 1 since rm_cycle_buffer_offset will INC HL [why not call an instruction later?] | ||||||
8845 | CALL rm_cycle_buffer_offset | Call rm_cycle_buffer_offset | ||||||
8848 | POP BC | Restore BC | ||||||
8849 | DJNZ sus_loop | Loop | ||||||
Disallow spawning.
|
||||||||
884B | XOR A | Clear allow_spawning | ||||||
884C | LD ($A254),A | |||||||
Set up screen.
|
||||||||
884F | LD A,$F8 | Reverse transition | ||||||
8851 | CALL setup_transition | Call setup_transition | ||||||
8854 | CALL clear_screen_set_attrs | Call clear_screen_set_attrs | ||||||
8857 | LD HL,$5820 | Point HL at left light's attributes | ||||||
885A | CALL sus_clear_lights | |||||||
885D | LD HL,$583B | Point HL at right light's attributes then FALL THROUGH | ||||||
Clear the lights' BRIGHT bit.
|
||||||||
sus_clear_lights | 8860 | LD C,$04 | 4 rows | |||||
set_up_stage_1 | 8862 | LD B,$05 | 5 columns | |||||
set_up_stage_2 | 8864 | RES 6,(HL) | Clear BRIGHT bit | |||||
8866 | INC L | |||||||
8867 | DJNZ set_up_stage_2 | |||||||
8869 | LD A,L | |||||||
886A | ADD A,$1B | |||||||
886C | LD L,A | |||||||
886D | DEC C | |||||||
886E | JR NZ,set_up_stage_1 | |||||||
Exit, updating the scoreboard. [This must happen twice since this block is CALLed.]
|
||||||||
8870 | CALL silence_audio_hook | Call silence_audio_hook | ||||||
8873 | JP update_scoreboard | Exit via update_scoreboard |
Prev: 873C | Up: Map | Next: 8876 |