Prev: 43012 Up: Map Next: 43071
43031: Print UDG
Used by the routines at 43183 and DrawRoom.
Input
A Sprite ID
Compare against the colour version PrintColourCharacter and the clone of it at GoldfishGame_PrintColourUDG.
PrintUDG 43031 EXX Switch to the shadow registers.
43032 LD E,A DE'=A*8.
43033 LD D,0
43035 SLA E
43037 RL D
43039 SLA E
43041 RL D
43043 SLA E
43045 RL D
43047 LD HL,(23606) HL'=*CHARS+DE'.
43050 ADD HL,DE
43051 LD DE,(23684) Increment *DF_CC by one.
43055 INC DE
43056 LD (23684),DE
43060 DEC DE Decrease DE' by one.
All character blocks are 1 x 8 bytes.
Copy the data from the current character set to the screen buffer.
43061 LD B,8 B'=8 (byte counter).
PrintUDG_Loop 43063 LD A,(HL) A=*HL'.
43064 LD (DE),A Write A to *DE'.
43065 INC HL Increment HL' by one.
43066 INC D Increment D' by one.
43067 DJNZ PrintUDG_Loop Decrease counter by one and loop back to PrintUDG_Loop until counter is zero.
43069 EXX Switch back to the normal registers.
43070 RET Return.
Prev: 43012 Up: Map Next: 43071