Prev: 53019 Up: Map Next: 53115
53073: Draw bitmap data for Magic Knight overlaid on background to display file
Used by the routine at 53150.
Input
DE (Entry at 53076 only) Address of table of background bitmap data (23909)
53073 LD DE,23813 Point DE at table of bitmap data for Magic Knight at his current location
This entry point is used by the routine at 53115.
53076 LD IX,(23420) Load IX with pointer to entry in table of display file addresses for pixel row at Magic Knight's current y-coordinate
53080 LD A,(23422) Load C with Magic Knight's current x-coordinate (characters)...
53083 LD C,A ...
53084 LD B,32 Load B with 32 (as Magic Knight is 32 pixels tall)
53086 PUSH BC Store BC (B = remaining number of pixel rows to draw, C = Magic Knight's x-coordinate in characters)
53087 LD L,(IX+0) Load display file address of pixel row at IX into HL...
53090 INC IX ...and advance IX to entry for next pixel row down...
53092 LD H,(IX+0) ...
53095 INC IX ...
53097 LD B,0 Set B to zero (BC = Magic Knight's current x-coordinate in characters)
53099 ADD HL,BC Add BC to HL as offset
53100 LD A,(DE) Copy three bytes of graphic data from table of bitmap data for Magic Knight at his current location...
53101 LD (HL),A ...into display file...
53102 INC HL ...as Magic Knight can only occupy three consecutive character blocks horizontally...
53103 INC DE ...
53104 LD A,(DE) ...
53105 LD (HL),A ...
53106 INC HL ...
53107 INC DE ...
53108 LD A,(DE) ...
53109 LD (HL),A ...
53110 INC DE ...
53111 POP BC Restore BC (B = remaining number of pixel rows to store, C = Magic Knight's x-coordinate in characters)
53112 DJNZ 53086 Decrease B (remaining number of pixel rows to draw) and loop back to 53086 if non-zero for next pixel row
53114 RET Return
Prev: 53019 Up: Map Next: 53115