![]() |
Routines |
| Prev: 02852 | Up: Map | Next: 03082 |
|
||||||||
| PO_ATTR | 03035 | LD A,H | The high byte of the destination address is divided by eight and ANDed with 3 to determine which third of the screen is being addressed, i.e. 0, 1 or 2. | |||||
| 03036 | RRCA | |||||||
| 03037 | RRCA | |||||||
| 03038 | RRCA | |||||||
| 03039 | AND 3 | |||||||
| 03041 | OR 88 | The high byte for the attribute area is then formed. | ||||||
| 03043 | LD H,A | |||||||
| 03044 | LD DE,(23695) | E holds ATTR-T, and D holds MASK-T. | ||||||
| 03048 | LD A,(HL) | The old attribute value. | ||||||
| 03049 | XOR E | The values of MASK-T and ATTR-T are taken into account. | ||||||
| 03050 | AND D | |||||||
| 03051 | XOR E | |||||||
| 03052 | BIT 6,(IY+87) | Jump forward unless dealing with PAPER 9 (bit 6 of P-FLAG set). | ||||||
| 03056 | JR Z,PO_ATTR_1 | |||||||
| 03058 | AND 199 | 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). | ||||||
| 03060 | BIT 2,A | |||||||
| 03062 | JR NZ,PO_ATTR_1 | |||||||
| 03064 | XOR 56 | |||||||
| PO_ATTR_1 | 03066 | BIT 4,(IY+87) | Jump forward unless dealing with INK 9 (bit 4 of P-FLAG set). | |||||
| 03070 | JR Z,PO_ATTR_2 | |||||||
| 03072 | AND 248 | 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). | ||||||
| 03074 | BIT 5,A | |||||||
| 03076 | JR NZ,PO_ATTR_2 | |||||||
| 03078 | XOR 7 | |||||||
| PO_ATTR_2 | 03080 | LD (HL),A | Enter the new attribute value and return. | |||||
| 03081 | RET | |||||||
| Prev: 02852 | Up: Map | Next: 03082 |