Prev: 49659 Up: Map Next: 49728
49660: Process Character Input
Used by the routine at CheckTVFlagAndProcess.
Input
A Character code
ProcessCharacterInput 49660 POP AF Restore AF from the stack.
This entry point is used by the routines at PrintStringAndWaitForKeypress and PrintString.
ProcessCharacterInput_0 49661 PUSH HL Stash HL, BC and AF on the stack.
49662 PUSH BC
49663 PUSH AF
49664 LD A,(49659) C=*49659.
49667 LD C,A
49668 POP AF Restore AF from the stack.
49669 PUSH AF Stash AF on the stack.
49670 LD HL,(49654) HL=*DecorativeLine_ScreenPosition.
49673 CP 13 Jump to ProcessCharacterInput_2 if A is not equal to 13.
49675 JR NZ,ProcessCharacterInput_2
49677 LD A,32 A=32.
This entry point is used by the routine at 59068.
ProcessCharacterInput_1 49679 CALL PrintCharacter Call PrintCharacter.
49682 JR ProcessCharacterInput_3 Jump to ProcessCharacterInput_3.
ProcessCharacterInput_2 49684 CP 8 Jump to HandleBackspaceKey if A is equal to 8.
49686 JR Z,HandleBackspaceKey
49688 CALL ValidateKeypress Call ValidateKeypress.
49691 CALL PrintCharacter Call PrintCharacter.
49694 LD A,(49652) A=*DecorativeLine_Width.
49697 DEC A Decrease A by one.
49698 JR NZ,ProcessCharacterInput_4 Jump to ProcessCharacterInput_4 if A is not equal to 8.
ProcessCharacterInput_3 49700 LD L,224 L=224.
49702 LD C,2 C=2.
49704 CALL ScrollScreenUp Call ScrollScreenUp.
49707 LD A,36 A=36.
This entry point is used by the routine at HandleBackspaceKey.
ProcessCharacterInput_4 49709 LD (49652),A Write A to *DecorativeLine_Width.
49712 LD A,C Write C to *49659.
49713 LD (49659),A
49716 LD (49654),HL Write HL to *DecorativeLine_ScreenPosition.
49719 LD A,43 Load A with ASCII code 43 ("+").
49721 CALL PrintCharacter Call PrintCharacter.
49724 POP AF Restore AF, BC and HL from the stack.
49725 POP BC
49726 POP HL
49727 RET Return.
Prev: 49659 Up: Map Next: 49728