![]() |
Routines |
| Prev: 89AD | Up: Map | Next: 8B07 |
| 8AEB | LD HL,$5800 | Point HL at the first byte of the attribute file | ||
| 8AEE | LD A,(HL) | Pick up this byte | ||
| 8AEF | AND $07 | Keep only bits 0-2 (the INK colour) | ||
| 8AF1 | OUT ($FE),A | Set the border colour to match | ||
|
Now we loop over every byte in the attribute file.
|
||||
| 8AF3 | LD A,(HL) | Pick up an attribute file byte | ||
| 8AF4 | ADD A,$03 | Cycle the INK colour forward by three | ||
| 8AF6 | AND $07 | |||
| 8AF8 | LD D,A | Save the new INK colour in D | ||
| 8AF9 | LD A,(HL) | Pick up the attribute file byte again | ||
| 8AFA | ADD A,$18 | Cycle the PAPER colour forward by three (and turn off any BRIGHT colours) | ||
| 8AFC | AND $B8 | |||
| 8AFE | OR D | Merge in the new INK colour | ||
| 8AFF | LD (HL),A | Save the new attribute byte | ||
| 8B00 | INC HL | Point HL at the next byte in the attribute file | ||
| 8B01 | LD A,H | Have we reached the end of the attribute file yet? | ||
| 8B02 | CP $5B | |||
| 8B04 | JR NZ,$8AF3 | If not, jump back to modify the next byte | ||
| 8B06 | RET | |||
| Prev: 89AD | Up: Map | Next: 8B07 |