Routines |
Prev: 55559 | Up: Map | Next: 55685 |
55651 | LD B,96 | Load B with 96 (number of times to repeat routine) | ||
55653 | LD DE,576 | Load DE with 576 (number of bytes to modify - i.e. bottom 18 rows) | ||
55656 | LD HL,22720 | Point HL at start of 7th row in attribute file | ||
55659 | LD A,(HL) | Load attribute byte into A | ||
55660 | AND 248 | Clear three lowest bits (i.e. INK colour) preserving only PAPER, BRIGHT and FLASH bits | ||
55662 | LD C,A | Place modified value into C | ||
55663 | LD A,(HL) | Get original attribute from screen again | ||
55664 | INC A | Increase by one | ||
55665 | AND 7 | Clear all bits except the lowest three (i.e. INK colour) | ||
55667 | OUT (254),A | Set border colour to A | ||
55669 | OR C | Combine other bits back in | ||
55670 | OUT (254),A | Update border / speaker state | ||
55672 | LD (HL),A | Load modified value back into attribute file | ||
55673 | INC HL | Move to next byte in attribute file | ||
55674 | DEC DE | Reduce DE (reducing number of attribute bytes left to modify) | ||
55675 | LD A,D | If DE is not zero (i.e. there are more attribute bytes to modify)... | ||
55676 | OR E | ... | ||
55677 | JR NZ,55659 | ...then loop back to 55659 | ||
55679 | DJNZ 55653 | Loop back for another pass | ||
55681 | XOR A | Set A to zero | ||
55682 | OUT (254),A | Reset border to black and reset speaker state | ||
55684 | RET | Return |
Prev: 55559 | Up: Map | Next: 55685 |