Unused |
Prev: 40765 | Up: Map | Next: 40832 |
This is a room drawing routine. It draws a horizontal line.
|
||||
40784 | INC HL | Advance data pointer by three bytes... | ||
40785 | INC HL | ... | ||
40786 | INC HL | ... | ||
40787 | PUSH HL | Transfer current position in room layout data from HL to IX... | ||
40788 | POP IX | ... | ||
40790 | LD L,(IX+0) | Load HL with y-coordinate (pixels)... | ||
40793 | LD H,0 | ... | ||
40795 | ADD HL,HL | ...and double | ||
40796 | LD BC,65140 | Point BC at table of display file addresses of start of each pixel row... | ||
40799 | ADD HL,BC | ...and add doubled y-coordinate as offset in HL | ||
40800 | CALL 64632 | Load address corresponding to start of pixel row at this coordinate into HL | ||
40803 | INC IX | Advance layout data pointer to next byte | ||
40805 | LD C,(IX+0) | Load BC with x-coordinate of start of line (characters)... | ||
40808 | LD B,0 | ... | ||
40810 | ADD HL,BC | ...and add to HL as offset | ||
40811 | INC IX | Advance layout data pointer to next byte | ||
40813 | LD A,(IX+0) | Load A with x-coordinate of end of line (characters) | ||
40816 | SUB C | Subtract start coordinate from end coordinate and add one to get width... | ||
40817 | INC A | ... | ||
40818 | LD B,A | ...and load into B | ||
40819 | LD A,255 | Load A with 255 (i.e. all bits set) | ||
40821 | LD (HL),A | Write a row of eight set pixels to the display file... | ||
40822 | INC HL | ...and advance to next character to the right | ||
40823 | DJNZ 40821 | Decrease B (remaining number of character blocks to draw to) and loop back to 40821 | ||
40825 | PUSH IX | Transfer current position in room layout data from IX to HL... | ||
40827 | POP HL | ... | ||
40828 | INC HL | Advance room layout data pointer to next instruction in layout data | ||
40829 | JP 38977 | Jump back to 38977 for next byte of room layout data |
Prev: 40765 | Up: Map | Next: 40832 |