Routines |
Prev: 26448 | Up: Map | Next: 26742 |
Used by the routine at 35101.
|
||||||||
26673 | HALT | Wait for interrupt | ||||||
26674 | LD SP,24539 | Set stack pointer to 24539 | ||||||
26677 | XOR A | Reset update-game-time-and-locate-arrow-glow flag, disable-in-game-glow flag and characters-can't-move flag... | ||||||
26678 | LD (IY+65),A | ... | ||||||
26681 | IM 2 | Set interrupt mode 2 | ||||||
26683 | CALL 26853 | Clear areas of memory and initialise some variables | ||||||
26686 | CALL 26747 | Draw input selection menu | ||||||
26689 | LD A,65 | Default to "A: Keyboard" | ||||||
26691 | CALL 37857 | Change input device (A=Keyboard, B=Kempston, C=Fuller, etc.) depending on which key was pressed (forced to keyboard as A is 65) | ||||||
26694 | CALL 37333 | Process input for menu, and load ASCII code of shortcut for selected (i.e. SPACE or fire pressed) item into A | ||||||
26697 | CP 70 | If "F" pressed (INSTRUCTIONS)... | ||||||
26699 | JR Z,26737 | ...then display instructions | ||||||
26701 | CP 71 | If "G" pressed (PLAY GAME)... | ||||||
26703 | JP Z,26906 | ...then start a new game | ||||||
26706 | CP 65 | If key lower than "A" pressed... | ||||||
26708 | JR C,26689 | ...then loop back to 26689 | ||||||
26710 | CP 70 | If key higher than "F" pressed... | ||||||
26712 | JR NC,26689 | ...then loop back to 26689 | ||||||
26714 | EX AF,AF' | Switch registers | ||||||
26715 | LD A,(40140) | Load current input device selection into A' | ||||||
26718 | EX AF,AF' | Switch registers | ||||||
26719 | LD (40140),A | Store new input device selection | ||||||
26722 | EX AF,AF' | Switch registers | ||||||
26723 | SUB 65 | Subtract 65 to get index of previous input device selection | ||||||
26725 | ADD A,12 | Add 12, to give y-coordinate of previous selection in menu | ||||||
26727 | LD B,A | Load this y-coordinate into B | ||||||
26728 | LD C,1 | Load 1 (x-coordinate) into C | ||||||
26730 | CALL 36569 | Update virtual attribute cursor storage location to position (C, B) and point HL to corresponding attribute file address | ||||||
26733 | LD (HL),71 | Set attribute at this position to 71 (white INK, black PAPER, BRIGHT) to "undo" selection glow | ||||||
26735 | JR 26689 | Loop back to 26689 | ||||||
26737 | CALL 26788 | Display instructions | ||||||
26740 | JR 26686 | Loop back to 26689 |
Prev: 26448 | Up: Map | Next: 26742 |