Prev: 830E Up: Map Next: 83D0
832A: Stage completed
Used by the routine at main_loop.
stage_completed 832A LD A,$08 Set counter for later
832C LD (counter_stage_completed),A ...
832F LD HL,status_flags Clear main loop flag
8332 RES 6,(HL) ...
8334 CALL $1FDC READ_REGISTER
8337 BIT 3,(HL) If bit 3 is set
8339 JP NZ,display_bonus Then it was a chance stage
This entry point is used by the routines at display_hits and perfect_bonus.
stage_completed_0 833C LD B,$5A 90
stage_completed_1 833E PUSH BC
833F HALT Wait interrupt
8340 CALL display_stars Display stars
8343 CALL control_ship Control ship
8346 CALL process_sprites Process sprites
8349 CALL display_center_enemies Display center enemies
834C CALL next_frame_upl_sprites Upload sprites
834F POP BC
8350 DJNZ stage_completed_1 Loop for 90 frames
8352 CALL stop_tune Stop tune
8355 CALL clear_rows_9_and_14 Clear rows 9 and 14
8358 LD A,(stage) Stage
835B AND $03 Stage mod 4
835D CP $02 If not planet reached (2)
835F JR NZ,stage_completed_2 Then skip ahead
8361 LD A,$01 Play tune 1
8363 CALL call_play_tune ...
8366 JR stage_completed_3
stage_completed_2 8368 LD A,$05 If not planet reached then play sound
836A CALL call_play_sound ...
stage_completed_3 836D LD HL,status_flags
8370 SET 0,(HL) Set warp flag
8372 SET 4,(HL) Set stage init flag
8374 LD A,(stage) Stage
8377 LD B,A B = stage
8378 AND $03 Stage mod 4
837A CP $02 If not planet reached (2)
837C JR NZ,stage_completed_4 Then skip displaying planet
837E LD A,B Stage
837F SRL A Divide by 4
8381 SRL A ...
8383 INC A + 1
8384 CALL display_planet Display planet A
8387 CALL upload_sprite_data Upload sprite data
Warp
stage_completed_4 838A HALT Wait interrupt
838B CALL display_stars Display stars
838E CALL control_ship Control ship
8391 CALL process_sprites Process sprites
8394 LD HL,counter_stage_completed Decrement counter that start at 8
8397 DEC (HL) ...
8398 JR NZ,stage_completed_7 If not zero yet then skip loop body
839A LD (HL),$08 Reset counter
839C LD IX,sprite_data Pointer sprite 0
83A0 INC (IX+$01) Increment polar y
83A3 INC (IX+$0D) Increment polar y for sprite 1
83A6 LD A,(IX+$01) Get polar y
83A9 CP $12 Is polar y 18?
83AB JR NZ,stage_completed_5 No, skip ahead
83AD PUSH AF
83AE CALL clear_row_7 Clear row 7 (planet name)
83B1 POP AF
stage_completed_5 83B2 CP $2B Is polar y 43?
83B4 JR Z,next_stage Yes, break out of loop
83B6 CP $15 Is polar y 21?
83B8 JR NZ,stage_completed_6 No, skip ahead
83BA LD (IX+$0B),$0F Set color of sprite 0
83BE LD (IX+$17),$09 Set color of sprite 1
stage_completed_6 83C2 RST $30 Load sprite pattern sprite 0
83C3 LD IX,$700E Sprite 1
83C7 RST $30 Load sprite pattern sprite 1
83C8 CALL display_ship_background_patterns Display ship background patterns
stage_completed_7 83CB CALL next_frame_upl_sprites Upload sprites
83CE JR stage_completed_4 Loop
Prev: 830E Up: Map Next: 83D0