Prev: C306 Up: Map Next: C37D
C316: Update Screen Display
Used by the routine at ProcessScreenCharacter.
Input
HL Screen position
C Column count
UpdateScreenDisplay C316 LD A,($C128) A=*C128.
C319 AND A Set flags.
C31A CALL Z,PrintCharacter_6 Call PrintCharacter_6 if A is equal to 00.
C31D PUSH BC Stash BC, HL and DE on the stack.
C31E PUSH HL
C31F PUSH DE
C320 LD HL,$4020 HL=4020 (screen buffer location).
C323 LD DE,$4000 DE=4000.
C326 LD BC,$0011 BC=0011.
C329 LD A,($C128) A=*C128.
C32C AND A Set flags.
C32D LD A,$20 A=20.
C32F JR Z,UpdateScreenDisplay_0 Jump to UpdateScreenDisplay_0 if A is equal to A.
C331 LD A,$10 A=10.
UpdateScreenDisplay_0 C333 PUSH HL Stash HL, DE and BC on the stack.
C334 PUSH DE
C335 PUSH BC
C336 LD C,$08 C=08.
UpdateScreenDisplay_1 C338 PUSH HL Stash HL, DE and BC on the stack.
C339 PUSH DE
C33A PUSH BC
C33B LD C,A C=A.
C33C LDIR LDIR.
C33E POP BC Restore BC, DE and HL from the stack.
C33F POP DE
C340 POP HL
C341 INC H Increment H by one.
C342 INC D Increment D by one.
C343 DEC C Decrease C by one.
C344 JR NZ,UpdateScreenDisplay_1 Jump to UpdateScreenDisplay_1 if C is not equal to A.
C346 POP BC Restore BC, DE and HL from the stack.
C347 POP DE
C348 POP HL
C349 PUSH AF Stash AF on the stack.
C34A CALL AdvanceScreenPosition Call AdvanceScreenPosition.
C34D CALL AdvanceScreenPosition Call AdvanceScreenPosition.
C350 POP AF Restore AF from the stack.
C351 DEC C Decrease C by one.
C352 JR NZ,UpdateScreenDisplay_0 Jump to UpdateScreenDisplay_0 if C is not equal to A.
C354 CP $10 Jump to UpdateScreenDisplay_2 if A is equal to 10.
C356 JR Z,UpdateScreenDisplay_2
C358 LD HL,$5820 HL=5820 (attribute buffer location).
C35B LD DE,$5800 DE=5800 (screen buffer location).
C35E LD BC,$0220 BC=0220.
C361 LDIR LDIR.
UpdateScreenDisplay_2 C363 LD A,($C128) A=*C128.
C366 AND A Set flags.
C367 LD B,$24 B=24.
C369 JR Z,UpdateScreenDisplay_3 Jump to UpdateScreenDisplay_3 if A is equal to A.
C36B LD B,$12 B=12.
UpdateScreenDisplay_3 C36D LD HL,$5020 HL=5020 (screen buffer location).
C370 LD C,$02 C=02.
C372 LD A,$20 A=20.
UpdateScreenDisplay_4 C374 CALL PrintCharacter Call PrintCharacter.
C377 DJNZ UpdateScreenDisplay_4 Decrease counter by one and loop back to UpdateScreenDisplay_4 until counter is zero.
C379 POP DE Restore DE, HL and BC from the stack.
C37A POP HL
C37B POP BC
C37C RET Return.
Prev: C306 Up: Map Next: C37D