|  | Routines | 
| Prev: 33269 | Up: Map | Next: 33312 | 
| 33278 | LD B,96 | Load B with 96 (number of times to repeat routine) | ||
| 33280 | LD DE,608 | Load DE with 608 (number of bytes to modify - i.e. top 19 rows) | ||
| 33283 | LD HL,22528 | Point HL at start of attribute file | ||
| 33286 | LD A,(HL) | Load attribute byte into A | ||
| 33287 | AND 248 | Clear three lowest bits (i.e. INK colour) preserving only PAPER, BRIGHT and FLASH bits | ||
| 33289 | LD C,A | Place modified value into C | ||
| 33290 | LD A,(HL) | Get original attribute from screen again | ||
| 33291 | INC A | Increase by one | ||
| 33292 | AND 7 | Clear all bits except the lowest three (i.e. INK colour) | ||
| 33294 | OUT (254),A | Set border colour to A | ||
| 33296 | OR C | Combine other bits back in | ||
| 33297 | OUT (254),A | Update border / speaker state | ||
| 33299 | LD (HL),A | Load modified value back into attribute file | ||
| 33300 | INC HL | Move to next byte in attribute file | ||
| 33301 | DEC DE | Reduce DE (reducing number of attribute bytes left to modify) | ||
| 33302 | LD A,D | If DE is not zero (i.e. there are more attribute bytes to modify)... | ||
| 33303 | OR E | ... | ||
| 33304 | JR NZ,33286 | ...then loop back to 33286 | ||
| 33306 | DJNZ 33280 | Loop back for another pass | ||
| 33308 | XOR A | Set A to zero | ||
| 33309 | OUT (254),A | Reset border to black and reset speaker state | ||
| 33311 | RET | Return | ||
| Prev: 33269 | Up: Map | Next: 33312 |