Prev: 26448 Up: Map Next: 26742
26673: Display input device selection menu
Used by the routine at 35101.
Input
IY 23610
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