![]() |
Routines |
| Prev: 38221 | Up: Map | Next: 38296 |
|
Used by the routine at 36987.
|
||||
| 38242 | LD BC,(23493) | Load B with y-coordinate of top edge and C with x-coordinate of left edge | ||
| 38246 | CALL 36569 | Update virtual attribute cursor (memory location 23487 and in HL) | ||
|
The operand of the instruction at 38249 represents the attribute value with which to paint the window. This is modified by the instruction at 37061.
|
||||
| 38249 | LD A,0 | Load A with attribute to paint with | ||
| 38251 | LD (HL),A | Paint attribute data to attribute file at current virtual cursor (attribute) position | ||
| 38252 | LD A,(23495) | Load A with x-coordinate of right side of area to fill | ||
| 38255 | CP C | Check if left and right edges are at same x-coordinate (i.e. zero width)... | ||
| 38256 | JP Z,38272 | ...and if so, skip to 38272 | ||
| 38259 | INC C | Increase C | ||
| 38260 | LD A,C | Copy C into A | ||
| 38261 | AND 31 | Ensure current x-coordinate doesn't exceed 31 (i.e. width of screen) | ||
| 38263 | LD C,A | Place back into C | ||
| 38264 | LD A,L | Get LSB of attribute file address (virtual attribute cursor location) | ||
| 38265 | AND 224 | Decrease to nearest multiple of 32 (i.e. start of character row in attribute file) | ||
| 38267 | ADD A,C | Add x-offset (i.e. current x-coordinate, C) | ||
| 38268 | LD L,A | Update virtual attribute cursor position | ||
| 38269 | JP 38249 | Loop back to print next attribute block | ||
| 38272 | LD A,(23493) | Get x-coordinate of left of area to fill | ||
| 38275 | LD C,A | Store in C | ||
| 38276 | LD A,(23496) | Get y-coordinate of bottom of area to fill | ||
| 38279 | CP B | Compare with y-coordinate of top of area to fill | ||
| 38280 | RET Z | If no difference between current y-coordinate and y-coordinate of bottom of area to fill then exit function and return | ||
| 38281 | INC B | Move current y-coordinate down one unit | ||
| 38282 | LD A,B | Copy current y-coordinate into A... | ||
| 38283 | CP 24 | ...and ensure it doesn't exceed 24 (i.e. height of screen)... | ||
| 38285 | JP NZ,38290 | ...if it doesn't then skip ahead... | ||
| 38288 | LD B,0 | ...else set current y-coordinate to zero (top of screen) | ||
| 38290 | CALL 36569 | Update virtual attribute cursor (memory location 23487 and in HL) | ||
| 38293 | JP 38249 | Loop back to print next attribute block row | ||
| Prev: 38221 | Up: Map | Next: 38296 |