Prev: EB51 Up: Map Next: ED1C
ECC0: Input Line Redraw
Used by the routine at InputLine.
Repaint the buffered characters at row 16 via PrintCharacter, pad with two spaces, then fall into InputLine_DrawCursor to draw the cursor.
InputLine_Redraw ECC0 LD HL,$5BAE Point at the buffer and reset print state for row 16.
ECC3 SUB A
ECC4 LD ($5BF6),A
ECC7 LD ($5BF7),A
ECCA LD A,$05
ECCC LD ($5BF5),A
ECCF LD A,$16
ECD1 LD ($5BF8),A
ECD4 LD A,($5BFB) Jump to InputLine_Redraw_Pad if the line is empty.
ECD7 AND A
ECD8 JR Z,InputLine_Redraw_Pad
ECDA LD B,A
InputLine_Redraw_Loop ECDB LD A,(HL) Print each buffered character through PrintCharacter.
ECDC LD ($5BF9),A
ECDF CALL PrintCharacter
ECE2 INC HL
ECE3 DJNZ InputLine_Redraw_Loop
InputLine_Redraw_Pad ECE5 LD A,$20 Pad with two spaces, then fall into the cursor draw.
ECE7 LD ($5BF9),A
ECEA CALL PrintCharacter
ECED CALL PrintCharacter
This entry point is used by the routine at InputLine.
InputLine_DrawCursor ECF0 LD A,$28 Use attribute 28 for the blinking cursor.
ECF2 LD ($5BF5),A
This entry point is used by the routine at InputLine_ClearCursor.
InputLine_DrawCursor_Body ECF5 LD A,$01 Set XOR mode and load a space glyph.
ECF7 LD ($5BF6),A
ECFA LD A,$20
ECFC LD ($5BF9),A
ECFF LD A,$16 Plot it on row 16 at the cursor column.
ED01 LD ($5BF8),A
ED04 LD A,($5BFA)
ED07 LD ($5BF7),A
ED0A CP $20
ED0C JR C,InputLine_DrawCursor_Print
ED0E SUB $20 Wrap onto row 17 when the column is past 20.
ED10 LD ($5BF7),A
ED13 LD A,$17
ED15 LD ($5BF8),A
InputLine_DrawCursor_Print ED18 CALL PrintCharacter Call PrintCharacter.
ED1B RET Return.
Prev: EB51 Up: Map Next: ED1C