Prev: 8519 Up: Map Next: 85CE
8548: Player Name Input
Used by the routine at Select1Or2PlayerGame.
Prints "Name....(        )".
PlayerNameInput 8548 LD HL,$8BE8 HL=Messaging_Name.
854B LD DE,$5088 DE=5088 (screen buffer location).
854E CALL Print_String Call Print_String.
Prints the name of the current player.
8551 LD HL,($EFF2) HL=*Pointer_ActivePlayer.
8554 LD DE,$5091 DE=5091 (screen buffer location).
8557 CALL Print_String Call Print_String.
Draw an underline to show the "cursor".
855A LD HL,$50B1 HL=50B1 (screen buffer location).
855D LD (HL),$FF Write FF to *HL.
855F PUSH HL Stash the cursor position on the stack.
8560 LD HL,($EFF2) Stash *Pointer_ActivePlayer on the stack.
8563 PUSH HL
8564 CALL PauseCheck Call PauseCheck.
PlayerNameInput_Fire 8567 LD B,$0A B=0A.
PlayerNameInput_Loop 8569 CALL $8055 Call 8055.
856C CALL Handler_Controls Call Handler_Controls.
856F LD A,E Jump to PlayerNameInput_Up if E is equal to 18.
8570 CP $18
8572 JR Z,PlayerNameInput_Up
8574 CP $08 Jump to PlayerNameInput_Down if E is equal to 08.
8576 JR Z,PlayerNameInput_Down
8578 CP $20 Jump to PlayerNameInput_Fire if E is not equal to 20.
857A JR NZ,PlayerNameInput_Fire
857C POP HL Restore HL and DE from the stack.
857D POP DE
857E LD A,$00 Write 00 to *DE.
8580 LD (DE),A
8581 BIT 7,(HL) Return if bit 7 of *HL is set.
8583 RET NZ
8584 INC DE Increment DE by one.
8585 CPL Invert the bits in A.
8586 LD (DE),A Write A to *DE.
8587 PUSH DE Stash DE on the stack.
8588 INC HL Increment HL by one.
8589 PUSH HL Stash HL on the stack.
858A LD HL,($EFF2) HL=*Pointer_ActivePlayer.
858D LD DE,$5091 DE=5091 (screen buffer location).
8590 CALL Print_String Call Print_String.
8593 LD B,$14 B=14.
8595 JR PlayerNameInput_Loop Jump to PlayerNameInput_Loop.
PlayerNameInput_Up 8597 POP HL Restore HL from the stack.
8598 LD A,(HL) A=*HL.
8599 AND %01111111 Keep only bits 0-6.
859B CP $20 Compare A with 20.
859D LD C,$41 C=41.
859F JR Z,PlayerNameInput_0 Jump to PlayerNameInput_0 if A is zero.
85A1 CP $5A Compare A with 5A.
85A3 LD C,$20 C=20.
85A5 JR Z,PlayerNameInput_0 Jump to PlayerNameInput_0 if A is zero.
85A7 INC A Increment A by one.
85A8 LD C,A C=A.
85A9 JR PlayerNameInput_0 Jump to PlayerNameInput_0.
PlayerNameInput_Down 85AB POP HL Restore HL from the stack.
85AC LD A,(HL) A=*HL.
85AD AND %01111111 Keep only bits 0-6.
85AF CP $41 Compare A with 41.
85B1 LD C,$20 C=20.
85B3 JR Z,PlayerNameInput_0 Jump to PlayerNameInput_0 if A is zero.
85B5 CP $20 Compare A with 20.
85B7 LD C,$5A C=5A.
85B9 JR Z,PlayerNameInput_0 Jump to PlayerNameInput_0 if A is zero.
85BB DEC A Decrease A by one.
85BC LD C,A C=A.
PlayerNameInput_0 85BD LD A,$80 A=80.
85BF AND (HL) Merge the bits from *HL.
85C0 OR C Set the bits from C.
85C1 LD (HL),A Write A to *HL.
85C2 PUSH HL Stash HL on the stack.
85C3 LD HL,($EFF2) HL=*Pointer_ActivePlayer.
85C6 LD DE,$5091 DE=5091 (screen buffer location).
85C9 CALL Print_String Call Print_String.
85CC JR PlayerNameInput_Fire Jump to PlayerNameInput_Fire.
Prev: 8519 Up: Map Next: 85CE