![]() |
Routines |
| Prev: 0B24 | Up: Map | Next: 0C0A |
|
||||||||
| PO_ATTR | 0BDB | LD A,H | The high byte of the destination address is divided by eight and ANDed with +03 to determine which third of the screen is being addressed, i.e. +00, +01 or +02. | |||||
| 0BDC | RRCA | |||||||
| 0BDD | RRCA | |||||||
| 0BDE | RRCA | |||||||
| 0BDF | AND $03 | |||||||
| 0BE1 | OR $58 | The high byte for the attribute area is then formed. | ||||||
| 0BE3 | LD H,A | |||||||
| 0BE4 | LD DE,($5C8F) | E holds ATTR-T, and D holds MASK-T. | ||||||
| 0BE8 | LD A,(HL) | The old attribute value. | ||||||
| 0BE9 | XOR E | The values of MASK-T and ATTR-T are taken into account. | ||||||
| 0BEA | AND D | |||||||
| 0BEB | XOR E | |||||||
| 0BEC | BIT 6,(IY+$57) | Jump forward unless dealing with PAPER 9 (bit 6 of P-FLAG set). | ||||||
| 0BF0 | JR Z,PO_ATTR_1 | |||||||
| 0BF2 | AND $C7 | The old paper colour is ignored and depending on whether the ink colour is light or dark the new paper colour will be black (000) or white (111). | ||||||
| 0BF4 | BIT 2,A | |||||||
| 0BF6 | JR NZ,PO_ATTR_1 | |||||||
| 0BF8 | XOR $38 | |||||||
| PO_ATTR_1 | 0BFA | BIT 4,(IY+$57) | Jump forward unless dealing with INK 9 (bit 4 of P-FLAG set). | |||||
| 0BFE | JR Z,PO_ATTR_2 | |||||||
| 0C00 | AND $F8 | The old ink colour is ignored and depending on whether the paper colour is light or dark the new ink colour will be black (000) or white (111). | ||||||
| 0C02 | BIT 5,A | |||||||
| 0C04 | JR NZ,PO_ATTR_2 | |||||||
| 0C06 | XOR $07 | |||||||
| PO_ATTR_2 | 0C08 | LD (HL),A | Enter the new attribute value and return. | |||||
| 0C09 | RET | |||||||
| Prev: 0B24 | Up: Map | Next: 0C0A |