Prev: 6BFC Up: Map Next: 6CAA
6C00: Game Loop
Used by the routines at WaitForNextFrame and FrameSyncCheck.
Game_Loop 6C00 LD A,($782B) A=*782B.
6C03 XOR %00000001 Flip bit 0.
6C05 LD ($782B),A Write A back to *782B.
6C08 LD HL,$FFFF SP=FFFF.
6C0B LD SP,HL
6C0C LD A,($5C78) A=*FRAMES.
6C0F INC A Increment A by one.
6C10 LD HL,$781A HL=781A.
6C13 DEC (HL) Decrease *HL by one.
6C14 LD L,$5A L=5A.
6C16 LD (HL),A Write A to *HL.
6C17 JR NZ,Game_Loop_4 Jump to Game_Loop_4 if *HL is not zero.
6C19 INC (HL) Increment *HL by one.
6C1A LD L,$2B L=2B.
6C1C LD A,(HL) A=*HL.
6C1D XOR %00000001 Flip bit 0.
6C1F LD (HL),A Write A to *HL.
6C20 NOP
6C21 NOP
6C22 LD A,$02
6C24 LD ($7824),A
6C27 LD A,($782A)
6C2A AND A
6C2B JP NZ,Handler_GameOver
6C2E CALL RemoveSprites
6C31 LD A,($7822)
6C34 BIT 7,A
6C36 JR Z,Game_Loop_0
6C38 CALL ScrollPlayarea_Left
6C3B CALL DrawPlayarea
6C3E CALL $6A00
6C41 JR Game_Loop_1
Game_Loop_0 6C43 CALL ScrollPlayarea_Right
6C46 CALL DrawPlayarea
6C49 CALL $6AAC
Game_Loop_1 6C4C CALL $72C3
6C4F CALL $7311
6C52 CALL GetControls
6C55 CALL Handler_PlayerMovement
6C58 LD A,($7822)
6C5B BIT 7,A
6C5D JR Z,Game_Loop_2
6C5F CPL
Game_Loop_2 6C60 SUB $66
6C62 JR NC,Game_Loop_3
6C64 XOR A
Game_Loop_3 6C65 SRL A
6C67 SRL A
6C69 INC A
6C6A LD ($781A),A
6C6D NOP
6C6E NOP
6C6F NOP
6C70 CALL Handler_Fuel
Game_Loop_4 6C73 LD A,($782B)
6C76 AND A
6C77 JR NZ,Game_Loop_6
6C79 LD A,($782A)
6C7C AND A
6C7D JR NZ,Game_Loop_5
6C7F CALL $72C3
6C82 CALL GetControls
6C85 CALL Handler_PlayerMovement
Game_Loop_5 6C88 XOR A
6C89 LD ($7824),A
6C8C CALL $6D50
Game_Loop_6 6C8F LD A,($7824)
6C92 AND A
6C93 JR NZ,Game_Loop_7
6C95 CALL RemoveSprites
6C98 CALL $7311
Game_Loop_7 6C9B CALL $6D50
6C9E HALT
6C9F NOP
6CA0 NOP
6CA1 NOP
6CA2 NOP
6CA3 NOP
6CA4 NOP
6CA5 NOP
6CA6 NOP
6CA7 NOP
6CA8 NOP
6CA9 NOP
Prev: 6BFC Up: Map Next: 6CAA