Routines |
Prev: A200 | Up: Map | Next: A61D |
|
||||
GameEntryPoint | A590 | LD A,$00 | Write 00 to *CC3D. | |
A592 | LD ($CC3D),A | |||
A595 | LD A,$9F | I=9F. | ||
A597 | LD I,A | |||
A599 | IM 2 | Set interrupt mode 2. | ||
A59B | EI | Enable interrupts. | ||
A59C | LD A,R | A=R. | ||
A59E | OR %10000000 | Set bit 7. | ||
A5A0 | LD ($C1E5),A | Write A to C1E5. | ||
This entry point is used by the routines at Handler_Fired and Handler_DebounceSpace.
|
||||
Game_Loop | A5A3 | CALL BlankMiddleAttributeBuffer | Call BlankMiddleAttributeBuffer. | |
A5A6 | CALL BlankMiddleScreenBuffer | Call BlankMiddleScreenBuffer. | ||
A5A9 | CALL GameMenu | Call GameMenu. | ||
A5AC | CALL BlankMiddleAttributeBuffer | Call BlankMiddleAttributeBuffer. | ||
A5AF | CALL BlankMiddleScreenBuffer | Call BlankMiddleScreenBuffer. | ||
A5B2 | CALL InitialiseNewGame | Call InitialiseNewGame. | ||
A5B5 | CALL Player_Name | Call Player_Name. | ||
A5B8 | CALL BlankMiddleScreenBuffer | Call BlankMiddleScreenBuffer. | ||
This entry point is used by the routine at Handler_Fired.
|
||||
NewLevel | A5BB | CALL InitialiseStreet | Call InitialiseStreet. | |
A5BE | CALL Handler_StreetIntroduction | Call Handler_StreetIntroduction. | ||
A5C1 | CALL PressAnyKey | Call PressAnyKey. | ||
A5C4 | CALL StartGame | Call StartGame. | ||
The game has ended ... check why.
|
||||
A5C7 | LD A,($B008) | A=*B008. | ||
A5CA | BIT 2,A | Jump to Handler_TimeOut if the bonus/ time counter reached zero. | ||
A5CC | JR NZ,Handler_TimeOut | |||
A5CE | LD HL,$C272 | HL=Time_Remaining. | ||
A5D1 | CALL AddPointsToScore | Call AddPointsToScore. | ||
Check other reasons why the game ended (see Immunity).
|
||||
A5D4 | LD A,($B008) | A=*B008. | ||
A5D7 | BIT 0,A | Jump to Handler_Fired_0 if bit 0 is set. | ||
A5D9 | JP NZ,Handler_Fired_0 | |||
A5DC | LD HL,($AB7E) | HL=*ActivePlayer. | ||
Point to the current players level.
|
||||
A5DF | INC HL | Increment HL by one. | ||
Has the player completed the game?
|
||||
A5E0 | LD A,$0C | Jump to Game_Complete if *HL equals 0C. | ||
A5E2 | CP (HL) | |||
A5E3 | JR Z,Game_Complete | |||
A5E5 | INC (HL) | Increment *HL by two. | ||
A5E6 | INC (HL) | |||
A5E7 | CALL FinishedStreet | Call FinishedStreet. | ||
A5EA | CALL PressAnyKey | Call PressAnyKey. | ||
This entry point is used by the routine at Handler_TimeOut.
|
||||
SwitchPlayers | A5ED | CALL Handler_SwitchPlayers | Call Handler_SwitchPlayers. | |
A5F0 | JR C,NewLevel | Jump to NewLevel if 2UP is active. | ||
A5F2 | CALL Handler_SwitchPlayers | Call Handler_SwitchPlayers. | ||
A5F5 | JR NewLevel | Jump to NewLevel. | ||
Who is in play, is it 1UP or 2UP?
|
||||
Game_Complete | A5F7 | LD HL,$AB8A | HL=Game_Flags. | |
A5FA | BIT 4,(HL) | Jump to NewLevel_2UP_CopyScore if this is player two. | ||
A5FC | JR NZ,NewLevel_2UP_CopyScore | |||
A5FE | RES 6,(HL) | Reset bit 6 of *HL. | ||
A600 | JR NewLevel_CopyScore | Jump to NewLevel_CopyScore. | ||
NewLevel_2UP_CopyScore | A602 | RES 7,(HL) | Reset bit 7 of *HL. | |
NewLevel_CopyScore | A604 | CALL CopyScore_ActiveScore | Call CopyScore_ActiveScore. | |
A607 | CALL NewHighScore | Call NewHighScore. | ||
A60A | CALL Messaging_GameOver | Call Messaging_GameOver. | ||
A60D | CALL PressAnyKey | Call PressAnyKey. | ||
A610 | CALL Print_HighScoreTable | Call Print_HighScoreTable. | ||
A613 | CALL PressAnyKey | Call PressAnyKey. | ||
A616 | CALL Handler_SwitchPlayers | Call Handler_SwitchPlayers. | ||
A619 | JR C,NewLevel | Jump to NewLevel if 2UP is active. | ||
A61B | JR Game_Loop | Jump to Game_Loop. |
Prev: A200 | Up: Map | Next: A61D |