Prev: A804 Up: Map Next: A83F
A817: Print UDG
Used by the routines at PrintSpriteTiles and DrawRoom.
Prints one UDG at the current screen position, without writing an attribute. The colour versions are PrintColourCharacter and GoldfishGame_PrintColourUDG.
Input
A Sprite ID
Point HL' at this character's pixels and DE' at the current screen cell.
PrintUDG A817 EXX Switch to the shadow registers.
A818 LD E,A DE'=the character code*08.
A819 LD D,$00
A81B SLA E
A81D RL D
A81F SLA E
A821 RL D
A823 SLA E
A825 RL D
A827 LD HL,($5C36) HL'=*CHARS+DE'.
A82A ADD HL,DE
A82B LD DE,($5C84) Advance *DF_CC and leave DE' on the cell just claimed.
A82F INC DE
A830 LD ($5C84),DE
A834 DEC DE
Copy the eight pixel rows into the screen buffer.
A835 LD B,$08 B'=08.
PrintUDG_Loop A837 LD A,(HL) Copy one pixel row and move down one screen line.
A838 LD (DE),A
A839 INC HL
A83A INC D
A83B DJNZ PrintUDG_Loop Decrease the row counter and loop back to PrintUDG_Loop until all 08 rows are written.
A83D EXX Switch back to the normal registers.
A83E RET Return.
Prev: A804 Up: Map Next: A83F