![]() |
Routines |
| Prev: 30005 | Up: Map | Next: 30077 |
|
Used by the routine at PrintGameDisplay.
|
||||
| InitialiseNewGame | 30031 | CALL PrintDemoMode | Call PrintDemoMode. | |
|
"Spend" a life to continue, or move to Game Over.
|
||||
| SpendLife | 30034 | LD HL,30777 | Decrease *Lives by one. | |
| 30037 | DEC (HL) | |||
|
Compare the players current lives with the maximum number of lives (4).
|
||||
| 30038 | LD C,(HL) | C=*Lives. | ||
| 30039 | LD A,4 | A=4 (the maximum number of lives). | ||
| 30041 | EXX | Switch to the shadow registers. | ||
| 30042 | LD DE,20683 | DE'=20683 (screen buffer location). | ||
| 30045 | EXX | Switch back to the normal registers. | ||
| 30046 | SUB C | A-=C. | ||
| 30047 | JR Z,TestGameOver | Jump to TestGameOver if A is zero. | ||
|
Blank out where the lives would print.
|
||||
| 30049 | ADD A,A | B=A*2. | ||
| 30050 | LD B,A | |||
| PrintBlank_Loop | 30051 | EXX | Switch to the shadow registers. | |
| 30052 | LD L,100 | L=100. | ||
| 30054 | CALL PrintGraphic | Call PrintGraphic. | ||
| 30057 | DJNZ PrintBlank_Loop | Decrease counter by one and loop back to PrintBlank_Loop until counter is zero. | ||
| TestGameOver | 30059 | LD A,C | Jump to GameOver if C is zero. | |
| 30060 | AND A | |||
| 30061 | JR Z,GameOver | |||
|
Display the bike graphic for each remaining life.
|
||||
| 30063 | LD B,C | B=C (counter; current number of lives). | ||
| PrintLives | 30064 | EXX | Switch to the shadow registers. | |
| 30065 | LD L,156 | L'=156. | ||
|
Print the left side of the bike graphic.
|
||||
| 30067 | CALL PrintGraphic | Call PrintGraphic. | ||
| 30070 | EXX | Switch back to the normal registers. | ||
|
Print the right side of the bike graphic.
|
||||
| 30071 | CALL PrintGraphic | Call PrintGraphic. | ||
| 30074 | DJNZ PrintLives | Decrease counter by one and loop back to PrintLives until counter is zero. | ||
| 30076 | RET | Return. | ||
| Prev: 30005 | Up: Map | Next: 30077 |