Prev: 94F0 Up: Map Next: 9569
94F8: Messaging: Redefine Keys
Used by the routine at MainMenu.
redefine-keys
Messaging_RedefineKeys 94F8 XOR A Write 00 to *DartPointer_Position.
94F9 LD ($99F6),A
94FC CALL PrintString_Loop Call PrintString_Loop.
94FF DEFB $00 CLEAR SCREEN.
9500 DEFB $10,$03 INK: MAGENTA.
9502 DEFB $11,$00 PAPER: BLACK.
9504 DEFB $16,$04,$0A PRINT AT: 04, 0A.
9507 DEFM "REDEFINE KEYS" redefine-keys
9514 DEFB $16,$07,$0C PRINT AT: 07, 0C.
9517 DEFM "UP" up
9519 DEFB $16,$09,$0C PRINT AT: 09, 0C.
951C DEFM "DOWN" down
9520 DEFB $16,$0B,$0C PRINT AT: 0B, 0C.
9523 DEFM "LEFT" left
9527 DEFB $16,$0D,$0C PRINT AT: 0D, 0C.
952A DEFM "RIGHT" right
952F DEFB $16,$0F,$0C PRINT AT: 0F, 0C.
9532 DEFM "FIRE" fire
9536 DEFB $FF Terminator.
9537 CALL Messaging_HeaderFooter Call Messaging_HeaderFooter.
953A CALL SetAttributeBuffer_WhiteInk Call SetAttributeBuffer_WhiteInk.
Clear down the existing user-defined key data.
953D LD HL,$9A60 HL=UserDefinedKeys_Fire.
9540 LD DE,$9A61 DE=UserDefinedKeys_Fire+01.
9543 LD BC,$000E BC=000E.
9546 LD (HL),$00 Write 00 to *HL.
9548 LDIR Blank the 000E 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.
954A LD IX,$9A63 IX=UserDefinedKeys_Up.
954E CALL PrintString_Loop Call PrintString_Loop.
9551 DEFB $16,$07,$12 PRINT AT: 07, 12.
9554 DEFB $FF Terminator.
9555 CALL RedefineKey Call RedefineKey for "UP".
9558 CALL RedefineKey Call RedefineKey for "DOWN".
955B CALL RedefineKey Call RedefineKey for "LEFT".
955E CALL RedefineKey Call RedefineKey for "RIGHT".
Cycle back and collect the input for "FIRE".
9561 LD IX,$9A60 IX=UserDefinedKeys_Fire.
9565 CALL RedefineKey Call RedefineKey for "FIRE".
9568 RET Return.
Prev: 94F0 Up: Map Next: 9569