![]() |
Routines |
| Prev: 80C1 | Up: Map | Next: 811B |
|
Pressing ENTER confirms the controls choice, and launches the second game menu. Once the choice of controls has been made, the player can't change it without reloading the game.
|
||||
| 80FD | LD BC,$BFFE | Keyboard port for keys H, J, K, L, Enter | ||
| 8100 | IN A,(C) | Read the port input | ||
| 8102 | OR %11111110 | We're only interested in bit 0, but set bits 1-7 for the CP in the next instruction | ||
| 8104 | CP %11111111 | Check if ENTER is being pressed (bit 0 will be reset if so) | ||
| 8106 | JR Z,$80A1 | If ENTER isn't being pressed, return to checking keys for other menu options | ||
|
ENTER has been pressed, player controls choice confirmed.
|
||||
| 8108 | CALL $815B | Clear the screen (pixels) | ||
|
ENTER is still being pressed - wait until the key has been released
|
||||
| 810B | LD BC,$BFFE | Keyboard port for keys H, J, K, L, Enter | ||
| 810E | IN A,(C) | Read the port input | ||
| 8110 | OR %11111110 | We're only interested in bit 0, but set bits 1-7 for the CP in the next instruction | ||
| 8112 | CP %11111111 | Check if ENTER is still being pressed | ||
| 8114 | JR NZ,$810B | If so, keep checking until it's been released | ||
|
ENTER has now been released
|
||||
| 8116 | LD A,$0F | Set the screen attributes to INK 7, PAPER 1 | ||
| 8118 | CALL $816A | ...and reset screen colours with this colour (mainly to clear the flashing colour marking the player's control selection) | ||
| Prev: 80C1 | Up: Map | Next: 811B |