Prev: 39088 Up: Map Next: 39178
39120: Initialise Game
Used by the routine at GameEntry.
Sets up the screen and the tables used by the game and then shows the title screen. This routine never returns.
InitialiseGame 39120 LD HL,38419 Point HL at the first of the game variables.
39123 LD BC,429 There are 429 bytes to clear, which covers the variables and the first 19 entries of the entity table.
39126 CALL FillMemory Zero them using FillMemory.
39129 LD (38419),IY Save IY, as it is restored every time the game waits for an interrupt.
39133 XOR A Set the border to black.
39134 OUT (254),A
39136 LD DE,16383 Point DE at an address in ROM, so that the screen is not touched.
39139 CALL DrawPlayWindow_Entry Initialise the off-screen buffer using DrawPlayWindow_Entry.
39142 CALL BuildShiftTables Build the tables that are used to shift sprites using BuildShiftTables.
39145 CALL ClearScreen Clear the screen using ClearScreen.
39148 CALL DrawBorder Draw the border around the screen using DrawBorder.
This entry point is used by the routine at GameOver.
The game comes back here when it has ended.
TitleScreen 39151 CALL DrawPanel Draw the panel using DrawPanel.
39154 CALL PrintScore Print the score using PrintScore.
39157 CALL PrintHiScore Print the hi-score using PrintHiScore.
39160 LD HL,38427 Point HL at Scores.
39163 LD BC,421 There are 421 bytes to clear, which covers the scores, the variables and the first 19 entries of the entity table.
39166 CALL FillMemory Zero them using FillMemory.
39169 CALL ClearLargeWindow Clear the large window using ClearLargeWindow.
39172 CALL GameMenu Show the menu using GameMenu, which returns when the player has chosen to start the game.
39175 CALL StartGame Start the game using StartGame.
Prev: 39088 Up: Map Next: 39178