Prev: 28766 Up: Map Next: 28833
28785: Room drawing: (252) Draw a horizontal line
Used by the routine at 27762.
28785 INC HL Advance data pointer by three bytes...
28786 INC HL ...
28787 INC HL ...
28788 PUSH HL Transfer current position in room layout data from HL to IX...
28789 POP IX ...
28791 LD L,(IX+0) Load HL with y-coordinate (pixels)...
28794 LD H,0 ...
28796 ADD HL,HL ...and double
28797 LD BC,26240 Point BC at table of display file addresses of start of each pixel row...
28800 ADD HL,BC ...and add doubled y-coordinate as offset in HL
28801 CALL 55735 Load address corresponding to start of pixel row at this coordinate into HL
28804 INC IX Advance layout data pointer to next byte
28806 LD C,(IX+0) Load BC with x-coordinate of start of line (characters)...
28809 LD B,0 ...
28811 ADD HL,BC ...and add to HL as offset
28812 INC IX Advance layout data pointer to next byte
28814 LD A,(IX+0) Load A with x-coordinate of end of line (characters)
28817 SUB C Subtract start coordinate from end coordinate and add one to get width...
28818 INC A ...
28819 LD B,A ...and load into B
28820 LD A,255 Load A with 255 (i.e. all bits set)
28822 LD (HL),A Write a row of eight set pixels to the display file...
28823 INC HL ...and advance to next character to the right
28824 DJNZ 28822 Decrease B (remaining number of character blocks to draw to) and loop back to 28822
28826 PUSH IX Transfer current position in room layout data from IX to HL...
28828 POP HL ...
28829 INC HL Advance room layout data pointer to next instruction in layout data
28830 JP 27894 Jump back to 27894 for next byte of room layout data
Prev: 28766 Up: Map Next: 28833