![]() |
Routines |
| Prev: F5E3 | Up: Map | Next: F641 |
|
Used by the routines at CreateWindow and 9F6A.
|
||||
|
Sets attributes for 1UP level.
|
||||
| PrintPlayerLevels | F5EC | LD HL,$0848 | HL=0848. | |
| F5EF | CALL ColourLevelsGreen | Call ColourLevelsGreen. | ||
|
Sets attributes for 2UP level.
|
||||
| F5F2 | LD HL,$08A0 | HL=08A0. | ||
| F5F5 | CALL ColourLevelsGreen | Call ColourLevelsGreen. | ||
|
Is this a 1 or 2 player game?
|
||||
| F5F8 | LD A,($5E65) | If Flag_ActivePlayer is not zero, jump to Handler_PrintPlayerLevels. | ||
| F5FB | AND A | |||
| F5FC | JR NZ,Handler_PrintPlayerLevels | |||
|
Handler for printing 1UP level followed by 2UP level.
|
||||
| F5FE | LD HL,$0848 | HL=0848. | ||
| F601 | CALL Print1UPLevel | Call Print1UPLevel. | ||
| F604 | LD HL,$08A0 | HL=08A0. | ||
| F607 | JR Print2UPLevel | Jump to Print2UPLevel. | ||
|
Handler for printing 2UP level followed by 1UP level.
|
||||
| Handler_PrintPlayerLevels | F609 | LD HL,$0848 | HL=0848. | |
| F60C | CALL Print2UPLevel | Call Print2UPLevel. | ||
|
Handles the 2UP level.
|
||||
| F60F | LD HL,$08A0 | HL=08A0. | ||
|
Handles displaying "
" for 1UP.
|
||||
| Print1UPLevel | F612 | LD A,$4C | A=4C. | |
| F614 | CALL PrintLevelMessaging | Call PrintLevelMessaging. | ||
| F617 | CALL Calculate_ActivePlayer_Level | Call Calculate_ActivePlayer_Level. | ||
|
Prints the first digit (held in A from B).
|
||||
| PrintLevel | F61A | PUSH BC | Stash BC on the stack. | |
| F61B | ADD A,$30 | Add 30 to convert to an ASCII character (starting at "0" character). | ||
| F61D | CALL PrintLevelMessaging | Call PrintLevelMessaging. | ||
| F620 | POP BC | Restore BC from the stack. | ||
|
Now move onto the second digit held in C.
|
||||
| F621 | LD A,C | A=C. | ||
| F622 | ADD A,$30 | Add 30 to convert to an ASCII character (starting at "0" character). | ||
| F624 | CALL PrintLevelMessaging | Call PrintLevelMessaging. | ||
| F627 | RET | Return. | ||
|
Handles displaying "
" for 2UP.
|
||||
| Print2UPLevel | F628 | LD A,$4C | A=4C. | |
| F62A | CALL PrintLevelMessaging | Call PrintLevelMessaging. | ||
| F62D | CALL Calculate_InactivePlayer_Level | Call Calculate_InactivePlayer_Level. | ||
| F630 | JR PrintLevel | Jump to PrintLevel. | ||
|
Keep HL (pixel co-ordinates) and AF (the ASCII character to print) for later.
|
||||
| PrintLevelMessaging | F632 | PUSH HL | Stash HL and AF on the stack. | |
| F633 | PUSH AF | |||
| F634 | CALL ScreenAddress | Call ScreenAddress. | ||
|
Fetch the ASCII character we want to print from the stack.
|
||||
| F637 | POP AF | Restore AF from the stack. | ||
| F638 | CALL PrintScreen | Call PrintScreen. | ||
|
Restore the pixel co-ordinates from the stack, and move onto the next character column.
|
||||
| F63B | POP HL | Restore HL from the stack. | ||
| F63C | LD A,L | L=L+08. | ||
| F63D | ADD A,$08 | |||
| F63F | LD L,A | |||
| F640 | RET | Return. | ||
| Prev: F5E3 | Up: Map | Next: F641 |