Prev: 46946 Up: Map Next: 47043
46968: If "K" pressed then redefine controls
Used by the routine at 46830.
Input
A ASCII code of pressed key
46968 CP 75 If pressed key was not 75 (K)...
46970 JR NZ,46900 ...then jump to main menu handling routine at 46900
46972 LD B,7 Load B with 7 (as there are seven controls to define)
46974 LD HL,46683 Point HL at start of table of current keyboard controls
46977 LD (HL),63 Set current entry in table to 63 (ASCII code for "?")
46979 INC HL Advance HL to next entry
46980 DJNZ 46977 Decrease remaining number of controls to change and loop back to 46977 if not zero
46982 LD A,112 Load A with the attribute value for black INK, yellow PAPER, BRIGHT
46984 CALL 47084 Print keyboard controls on main menu
46987 LD IY,46683 Point IY at table of current keyboard controls
46991 LD IX,46696 Point IX at entry for "   RIGHT    " text in table of attribute file addresses at which to print for main menu
46995 LD B,7 Load B with 7 (as there are seven controls to define)
46997 PUSH BC Store BC (remaining number of controls to define)
46998 LD A,198 Load A with 198 (yellow INK, black PAPER, BRIGHT, FLASH)
47000 LD E,32 Load E with 32 (" ")
47002 CALL 47071 Set attribute to A and location to (IX) and print double-height character in E
47005 CALL 47955 Wait for key-press, store pressed key code in A and play main menu sound
47008 CALL 47060 If key pressed matches a direction, or the Berk / Drutt key...
47011 JR Z,47005 ...then loop back to 47005
47013 LD E,A Load keycode of pressed control into E...
47014 LD (IY+0),E ...and store in table of current keyboard controls
47017 INC IY Advance IY to next control
47019 LD A,113 Load A with 113 (blue INK, yellow PAPER, BRIGHT)
47021 CALL 47071 Set attribute to A and location to (IX) and print double-height character in E
47024 INC IX Advance IX to next entry in table of attribute file addresses...
47026 INC IX ...
47028 POP BC Restore BC (remaining number of controls to define)
47029 DJNZ 46997 Decrease remaining number of controls to define and loop back to 46997 if not zero
47031 XOR A Switch joystick mode to off...
47032 LD (34298),A ...
47035 LD A,114 Load A with the attribute value for red INK, yellow PAPER, BRIGHT
47037 CALL 47084 Print keyboard controls on main menu
47040 JP 46900 Jump to main menu handling routine at 46900
Prev: 46946 Up: Map Next: 47043