|  | Routines | 
| Prev: 35940 | Up: Map | Next: 36077 | 
| 
Used by the routine at 34990.
 | ||||
| 35994 | PUSH IX | Store IX | ||
| 35996 | LD BC,(23493) | Load B with y-coordinate of top, and C with x-coordinate of left of area to fill | ||
| 36000 | LD DE,(23495) | Load D with y-coordinate of bottom, and E with x-coordinate of right of area to fill | ||
| 36004 | LD L,C | Load HL with x-coordinate of left of area to fill... | ||
| 36005 | LD H,0 | ... | ||
| 36007 | LD (36054),HL | ...and store as operand of instruction at 36053 | ||
| 36010 | LD A,D | Load A with y-coordinate of bottom of area to fill... | ||
| 36011 | SUB B | ...subtract B (y-coordinate of top of area to fill)... | ||
| 36012 | INC A | ...and add one to give number of rows to fill | ||
| 36013 | ADD A,A | Multiply A by eight to get number of pixel rows to fill... | ||
| 36014 | ADD A,A | ... | ||
| 36015 | ADD A,A | ... | ||
| 36016 | LD (36045),A | ...and store as operand of instruction at 36044 | ||
| 36019 | LD A,B | Load A with y-coordinate of top of area to fill (characters)... | ||
| 36020 | ADD A,A | ...and multiply by eight to get y-coordinate in pixels... | ||
| 36021 | ADD A,A | ... | ||
| 36022 | ADD A,A | ... | ||
| 36023 | LD L,A | Load y-coordinate (pixels) into HL... | ||
| 36024 | LD H,0 | ... | ||
| 36026 | ADD HL,HL | Double HL (as entries in table at 26240 are two bytes wide) | ||
| 36027 | PUSH DE | Store DE (coordinates of bottom right of area to fill) | ||
| 36028 | LD DE,26240 | Point DE at table of display file addresses of start of each pixel row | ||
| 36031 | ADD HL,DE | Add HL as offset, in HL | ||
| 36032 | POP DE | Restore DE (coordinates of bottom right of area to fill) | ||
| 36033 | PUSH HL | Copy pointer to entry in table of display file addresses for start of pixel row at top of area to fill from HL to IX... | ||
| 36034 | POP IX | ... | ||
| 36036 | LD A,E | Load A with x-coordinate of right of area to fill (characters)... | ||
| 36037 | SUB C | ...subtract C (x-coordinate of left of area to fill)... | ||
| 36038 | LD L,A | ...and load into HL... | ||
| 36039 | LD H,0 | ... | ||
| 36041 | LD (36061),HL | ...and store as operand of instruction at 36060 | ||
| 
The operand of the instruction at 36044 represents the number of pixel rows to fill. This is modified by the instruction at 36016.
 | ||||
| 36044 | LD B,0 | Load B with number of pixel rows to fill | ||
| 36046 | PUSH BC | Store BC (B = remaining number of pixel rows to fill) | ||
| 36047 | LD L,(IX+0) | Load HL with display file address of start of current pixel row... | ||
| 36050 | LD H,(IX+1) | ... | ||
| 36053 | LD BC,0 | Load BC with x-coordinate of area to fill (characters)... | ||
| 36056 | ADD HL,BC | ...and add to HL as offset | ||
| 36057 | PUSH HL | Copy display file address of left-most byte of top pixel row of area to fill from HL to DE... | ||
| 36058 | POP DE | ... | ||
| 36059 | INC DE | Advance DE to next address in display file | ||
| 36060 | LD BC,0 | Load BC with width, minus 1, of area to fill (characters) | ||
| 36063 | LD (HL),0 | Set content of this address to zero... | ||
| 36065 | LDIR | ...and repeat for remaining BC addresses, clearing entire pixel row within specified x-coordinates | ||
| 36067 | POP BC | Restore BC (B = remaining number of pixel rows to fill) | ||
| 36068 | INC IX | Advance IX by two bytes to point to start address of next pixel row down in display file... | ||
| 36070 | INC IX | ... | ||
| 36072 | DJNZ 36046 | Decrease B (remaining number of pixel rows to fill) and loop back to 36046 if not zero | ||
| 36074 | POP IX | Restore IX | ||
| 36076 | RET | Return | ||
| Prev: 35940 | Up: Map | Next: 36077 |