Prev: 8024 Up: Map Next: 8139
80E8: Main loop
Used by the routines at switch_player and next_stage.
main_loop 80E8 LD HL,interrupt_flag Flag set by interrupt routine
main_loop_0 80EB BIT 0,(HL) Test flag
80ED JR Z,main_loop_0 Wait until set
80EF RES 0,(HL) Clear flag
80F1 CALL $1FDC READ_REGISTER (read VDP status)
80F4 CALL display_stars Display stars
80F7 CALL control_ship Control ship
80FA CALL process_sprites Process sprites
80FD CALL $1FDC READ_REGISTER
8100 CALL handle_collisions Handle collisions
8103 CALL create_or_display_mines
8106 CALL $1FDC READ_REGISTER
8109 CALL manage_waves Manage waves
810C CALL create_sprite_from_map_entry Create sprite from map entry
810F CALL $1FDC READ_REGISTER
8112 CALL create_laser_fence_or_meteor Create laser fence
8115 CALL next_frame_upl_sprites Upload sprites
8118 CALL display_center_enemies Display center enemies
811B LD A,(current_player) Current player
811E CALL display_score Display score
8121 LD A,(status_flags) Status flags
8124 BIT 2,A Test bit 2
8126 JP NZ,died Exit main loop if set
8129 BIT 1,A Test bit 1
812B JR Z,main_loop Loop if not set
812D LD A,(total_enemies) Get total enemies
8130 LD HL,active_enemy_shots Add enemy shots
8133 ADD A,(HL) ...
8134 JP Z,stage_completed Stage completed when sum is zero
8137 JR main_loop Loop
Prev: 8024 Up: Map Next: 8139