Prev: C306 Up: Map Next: C37D
C316: Routine at C316
Used by the routine at C2BA.
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,$C333 Jump to C333 if A is equal to A.
C331 LD A,$10 A=10.
C333 PUSH HL Stash HL, DE and BC on the stack.
C334 PUSH DE
C335 PUSH BC
C336 LD C,$08 C=08.
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,$C338 Jump to C338 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 $C37D Call C37D.
C34D CALL $C37D Call C37D.
C350 POP AF Restore AF from the stack.
C351 DEC C Decrease C by one.
C352 JR NZ,$C333 Jump to C333 if C is not equal to A.
C354 CP $10 Jump to C363 if A is equal to 10.
C356 JR Z,$C363
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.
C363 LD A,($C128) A=*C128.
C366 AND A Set flags.
C367 LD B,$24 B=24.
C369 JR Z,$C36D Jump to C36D if A is equal to A.
C36B LD B,$12 B=12.
C36D LD HL,$5020 HL=5020 (screen buffer location).
C370 LD C,$02 C=02.
C372 LD A,$20 A=20.
C374 CALL PrintCharacter Call PrintCharacter.
C377 DJNZ $C374 Decrease counter by one and loop back to C374 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