Prev: 61720 Up: Map Next: 61816
61774: Draw bitmap data for Magic Knight overlaid on background to display file
Used by the routine at 61860.
Input
DE (Entry at 61777 only) Address of table of background bitmap data (24672)
61774 LD DE,24576 Point DE at table of bitmap data for Magic Knight at his current location
This entry point is used by the routines at 39553 and 61823.
61777 LD IX,(23412) Load IX with pointer to entry in table of display file addresses for pixel row at Magic Knight's current y-coordinate
61781 LD A,(23414) Load C with Magic Knight's current x-coordinate (characters)...
61784 LD C,A ...
61785 LD B,32 Load B with 32 (as Magic Knight is 32 pixels tall)
61787 PUSH BC Store BC (B = remaining number of pixel rows to draw, C = Magic Knight's x-coordinate in characters)
61788 LD L,(IX+0) Load display file address of pixel row at IX into HL...
61791 INC IX ...and advance IX to entry for next pixel row down...
61793 LD H,(IX+0) ...
61796 INC IX ...
61798 LD B,0 Set B to zero (BC = Magic Knight's current x-coordinate in characters)
61800 ADD HL,BC Add BC to HL as offset
61801 LD A,(DE) Copy three bytes of graphic data from table of bitmap data for Magic Knight at his current location...
61802 LD (HL),A ...into display file...
61803 INC HL ...as Magic Knight can only occupy three consecutive character blocks horizontally...
61804 INC DE ...
61805 LD A,(DE) ...
61806 LD (HL),A ...
61807 INC HL ...
61808 INC DE ...
61809 LD A,(DE) ...
61810 LD (HL),A ...
61811 INC DE ...
61812 POP BC Restore BC (B = remaining number of pixel rows to store, C = Magic Knight's x-coordinate in characters)
61813 DJNZ 61787 Decrease B (remaining number of pixel rows to draw) and loop back to 61787 if non-zero for next pixel row
61815 RET Return
Prev: 61720 Up: Map Next: 61816