![]() |
Routines |
| Prev: 7C00 | Up: Map | Next: 8069 |
|
Used by the routine at F7D6.
|
||||
| 8000 | DI | Disable interrupts. | ||
| 8001 | CALL $8092 | Display options. | ||
| 8004 | LD IX,$8127 | 8127 - default option. | ||
| 8008 | LD A,$01 | Set default option to 1. | ||
| 800A | CALL $FF00 | |||
| 800D | EI | Re-enable interrupts. | ||
| 800E | LD BC,$EFFE | Check top right of keyboard. | ||
| 8011 | IN A,(C) | |||
| 8013 | BIT 0,A | Was '0' pressed? | ||
| 8015 | RET Z | Return if so to start the game. | ||
| 8016 | CALL $8069 | Toggle the display flashing. | ||
| 8019 | LD BC,$F7FE | Check top left of keyboard. | ||
| 801C | IN A,(C) | If any keys were pressed, they will end up with positive bits after this. | ||
| 801E | AND $1F | |||
| 8020 | XOR $1F | |||
| 8022 | JR Z,$800E | Jump back if no keys pressed. | ||
| 8024 | BIT 0,A | Was "1" pressed? | ||
| 8026 | JR Z,$803B | Jump if not. | ||
| 8028 | LD A,(IX+$03) | Unflash the current selection. | ||
| 802B | LD C,$47 | |||
| 802D | CALL $80FF | |||
| 8030 | LD A,$01 | Set option 1. | ||
| 8032 | LD ($82A3),A | |||
| 8035 | LD IX,$8127 | Point to first option and loop back? | ||
| 8039 | JR $800E | |||
| 803B | BIT 1,A | Was "2" pressed? | ||
| 803D | JR Z,$8052 | Jump if not. | ||
| 803F | LD A,(IX+$03) | Unflash the current selection. | ||
| 8042 | LD C,$47 | |||
| 8044 | CALL $80FF | |||
| 8047 | LD A,$02 | Set option 2. | ||
| 8049 | LD ($82A3),A | |||
| 804C | LD IX,$812C | Point to second option and loop back. | ||
| 8050 | JR $800E | |||
| 8052 | BIT 2,A | Was "3" pressed? | ||
| 8054 | JR Z,$800E | Jump back if not. | ||
| 8056 | LD A,(IX+$03) | Unflash the current selection. | ||
| 8059 | LD C,$47 | |||
| 805B | CALL $80FF | |||
| 805E | LD A,$03 | Set option 3. | ||
| 8060 | LD ($82A3),A | |||
| 8063 | LD IX,$8131 | Point to third option and loop back. | ||
| 8067 | JR $800E | |||
| Prev: 7C00 | Up: Map | Next: 8069 |