Prev: 852A Up: Map Next: 85E4
858C: Pre-game radio screen ("CHASE HQ MONITORING SYSTEM")
Sets up the stage data, starts a reverse transition, clears the playfield and starts the chatter that describes this stage's target. The reveal counter in reveal_perp_car is reset so that the perp's car is uncovered a row at a time. The loop at run_pregame_screen_loop then runs until the chatter has finished or fire is pressed.
Used by the routine at main_loop.
run_pregame_screen 858C LD HL,$5D1D Load address of stage_set_up_data
858F CALL set_up_stage Call set_up_stage
8592 LD A,$F8 Reverse transition
8594 LD ($A220),A Set dont_draw_screen_attrs to a non-zero value
8597 CALL setup_transition Call setup_transition
859A CALL set_playfield_attrs Call set_playfield_attrs
859D XOR A Reset the counter in reveal_perp_car that reveals the perp's car
859E LD ($85EB),A
85A1 DEC A Set chatter priority to $FF
85A2 LD HL,($5D04) Load Nancy's report for this level
85A5 CALL start_chatter Call start_chatter (priority $FF)
run_pregame_screen_loop 85A8 CALL draw_pregame Call draw_pregame
85AB CALL drive_chatter Call drive_chatter
85AE CALL reveal_perp_car Call reveal_perp_car
85B1 CALL animate_meters Call animate_meters
85B4 CALL transition Call transition
85B7 CALL send_playfield Call send_playfield
85BA LD A,($A231) Loop to run_pregame_screen_loop while transition_control is non-zero
85BD AND A
85BE JR NZ,run_pregame_screen_loop
transition_control is now zero.
85C0 LD A,($963D) Return if chatter_state is idle (zero)
85C3 AND A
85C4 RET Z
85C5 CP $03 Jump to rps_start_game if chatter_state is stopping (>= 3)
85C7 JR NC,rps_start_game
85C9 CALL keyscan Call keyscan
85CC AND $10 Loop to run_pregame_screen_loop unless fire was hit
85CE JR Z,run_pregame_screen_loop
Fire was hit.
85D0 CALL drive_chatter_stop Call drive_chatter_stop
85D3 JP play_start_noise Exit via play_start_noise (will RET for us)
rps_start_game 85D6 LD A,$08 Forward transition
We can only arrive here if no carry... so why the conditional CALL?
85D8 CALL NC,setup_transition If no carry (A was >= 3) call setup_transition
85DB JR run_pregame_screen_loop Loop to run_pregame_screen_loop
Since nothing can arrive here this can only be dead code.
rps_dead_code 85DD LD A,($A231) Loop to run_pregame_screen_loop if transition_control is non-zero
85E0 AND A
85E1 JR NZ,run_pregame_screen_loop
85E3 RET Return
Prev: 852A Up: Map Next: 85E4