Routines |
Prev: 28766 | Up: Map | Next: 28833 |
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 |