Prev: 38128 Up: Map Next: 38249
38136: Messaging: Redefine Keys
Used by the routine at MainMenu.
redefine-keys
Messaging_RedefineKeys 38136 XOR A Write 0 to *DartPointer_Position.
38137 LD (39414),A
38140 CALL PrintString_Loop Call PrintString_Loop.
38143 DEFB 0 CLEAR SCREEN.
38144 DEFB 16,3 INK: MAGENTA.
38146 DEFB 17,0 PAPER: BLACK.
38148 DEFB 22,4,10 PRINT AT: 4, 10.
38151 DEFM "REDEFINE KEYS" redefine-keys
38164 DEFB 22,7,12 PRINT AT: 7, 12.
38167 DEFM "UP" up
38169 DEFB 22,9,12 PRINT AT: 9, 12.
38172 DEFM "DOWN" down
38176 DEFB 22,11,12 PRINT AT: 11, 12.
38179 DEFM "LEFT" left
38183 DEFB 22,13,12 PRINT AT: 13, 12.
38186 DEFM "RIGHT" right
38191 DEFB 22,15,12 PRINT AT: 15, 12.
38194 DEFM "FIRE" fire
38198 DEFB 255 Terminator.
38199 CALL Messaging_HeaderFooter Call Messaging_HeaderFooter.
38202 CALL SetAttributeBuffer_WhiteInk Call SetAttributeBuffer_WhiteInk.
Clear down the existing user-defined key data.
38205 LD HL,39520 HL=UserDefinedKeys_Fire.
38208 LD DE,39521 DE=UserDefinedKeys_Fire+1.
38211 LD BC,14 BC=0014.
38214 LD (HL),0 Write 0 to *HL.
38216 LDIR Blank the 0014 control bytes.
Get the user-input for filling the control bytes.
Oddly, start with "UP" even though "FIRE" is first with how the bytes are stored.
38218 LD IX,39523 IX=UserDefinedKeys_Up.
38222 CALL PrintString_Loop Call PrintString_Loop.
38225 DEFB 22,7,18 PRINT AT: 7, 18.
38228 DEFB 255 Terminator.
38229 CALL RedefineKey Call RedefineKey for "UP".
38232 CALL RedefineKey Call RedefineKey for "DOWN".
38235 CALL RedefineKey Call RedefineKey for "LEFT".
38238 CALL RedefineKey Call RedefineKey for "RIGHT".
Cycle back and collect the input for "FIRE".
38241 LD IX,39520 IX=UserDefinedKeys_Fire.
38245 CALL RedefineKey Call RedefineKey for "FIRE".
38248 RET Return.
Prev: 38128 Up: Map Next: 38249