|  | Routines | 
| Prev: 20724 | Up: Map | Next: 20956 | 
| 
Used by the routine at 21152. Waits for keypresses while a character's name is being changed, and prints them as they are typed. Returns when ENTER is pressed.
 
 | ||||||||
| 20896 | LD L,A | Collect the start address of the message (the character's name) into HL | ||||||
| 20897 | LD H,254 | |||||||
| 20899 | LD E,(HL) | |||||||
| 20900 | INC H | |||||||
| 20901 | LD D,(HL) | |||||||
| 20902 | EX DE,HL | |||||||
| 20903 | LD BC,3072 | B=12, C=0 | ||||||
| 20906 | LD (HL),C | Blank out the current name (12 bytes) | ||||||
| 20907 | INC HL | |||||||
| 20908 | DJNZ 20906 | |||||||
| 20910 | PUSH AF | Save the message number | ||||||
| 20911 | LD HL,20544 | 20544=display file address at which to print the name | ||||||
| 20914 | CALL 20668 | Print the name built up so far | ||||||
| 20917 | CALL 29154 | Wait for a keypress | ||||||
| 20920 | JR Z,20917 | |||||||
| 20922 | CP 13 | Set the zero flag if ENTER was pressed | ||||||
| 20924 | LD B,A | B=keypress code | ||||||
| 20925 | JR NZ,20929 | Jump unless ENTER was pressed | ||||||
| 20927 | POP AF | Restore the message number to A | ||||||
| 20928 | RET | Return with the new name entered | ||||||
| 
A key was pressed, and it wasn't ENTER. Place the ASCII code in the right slot of the message area corresponding to the character's name.
 | ||||||||
| 20929 | POP AF | Restore the message number to A | ||||||
| 20930 | LD L,A | Collect the start address of the message (the character's name) into DE | ||||||
| 20931 | LD H,254 | |||||||
| 20933 | LD E,(HL) | |||||||
| 20934 | INC H | |||||||
| 20935 | LD D,(HL) | |||||||
| 20936 | LD HL,11 | |||||||
| 20939 | LD C,A | Store the message number in C briefly | ||||||
| 20940 | ADD HL,DE | Point HL at the last byte in the message area for the character's name | ||||||
| 20941 | LD A,(HL) | Pick up this last byte in A | ||||||
| 20942 | AND A | Is the message area already full? | ||||||
| 20943 | JR NZ,20953 | Jump if so | ||||||
| 20945 | EX DE,HL | HL=start address of the message area | ||||||
| 20946 | DEC HL | |||||||
| 20947 | INC HL | Point HL at the first unused slot in the message area | ||||||
| 20948 | LD A,(HL) | |||||||
| 20949 | AND A | |||||||
| 20950 | JR NZ,20947 | |||||||
| 20952 | LD (HL),B | Place the letter just entered into this slot | ||||||
| 20953 | LD A,C | Restore the message number to A | ||||||
| 20954 | JR 20910 | Print the letter and collect another | ||||||
| Prev: 20724 | Up: Map | Next: 20956 |