Prev: C00A Up: Map Next: C058
C041: Handler: User Pressed "DELETE"
Used by the routine at Handler_UserInput.
Handles the user pressing delete.
Input
HL Current position in the command buffer
Test if the current position in the command buffer is at the start (BD34) of the buffer.
UserInput_Delete C041 EX DE,HL Jump back to UserInput_Loop if the user is already at the beginning of the command buffer.
C042 LD HL,$BD34
C045 AND A
C046 SBC HL,DE
C048 EX DE,HL
C049 JR Z,UserInput_Loop
Else delete the current character.
C04B PUSH HL Stash the pointer to the command buffer on the stack.
Print "BACKSPACE SPACE BACKSPACE" to move the current print position on the screen to the previous character, and to delete the charactr present using a space.
C04C LD HL,$BD88 HL=Messaging_BackspaceSpaceBackspace.
C04F CALL PrintString Call PrintString.
C052 POP HL Restore the pointer to the command buffer from the stack.
Now adjust the command buffer pointer to match the new position.
C053 DEC HL Decrease the pointer to the command buffer by one.
C054 LD (HL),$20 Write an ASCII space (20) into the command buffer at the current position.
C056 JR UserInput_Loop Jump to UserInput_Loop.
Prev: C00A Up: Map Next: C058