![]() |
Routines |
| Prev: 39081 | Up: Map | Next: 39175 |
|
Used by the routine at 35993.
|
||||||||
| 39125 | PUSH HL | Store HL | ||||||
| 39126 | LD DE,64500 | Point DE at 64500 | ||||||
| 39129 | ADD A,A | Double A... | ||||||
| 39130 | LD H,0 | ...load into HL... | ||||||
| 39132 | LD L,A | ... | ||||||
| 39133 | ADD HL,HL | ...double again... | ||||||
| 39134 | ADD HL,HL | ...and again to get 8 times original A value... | ||||||
| 39135 | ADD HL,DE | ...and add DE to this | ||||||
|
At this point, HL points to one of the five sets of Odd Ball frame graphic data (64756, 65428, 65436, 65444 or 65452).
|
||||||||
| 39136 | EX DE,HL | Swap so DE now points to an Odd Ball graphic and HL holds 64500 | ||||||
| 39137 | PUSH DE | Copy DE into IX... | ||||||
| 39138 | POP IX | ... | ||||||
| 39140 | LD BC,(23677) | Load value in coordinate storage into BC (holds x- and y-coordinates of Odd Ball) | ||||||
| 39144 | CALL 8874 | Load HL with display file address and A with the location of that pixel within the byte for the pixel at coordinates BC | ||||||
| 39147 | LD C,A | Load pixel-within-byte "address" into C | ||||||
| 39148 | LD B,8 | Load 8 into B (as Odd Ball graphic data comprises 8 pixel rows) | ||||||
| 39150 | LD D,(IX+0) | Load a byte of Odd Ball graphic data into D | ||||||
| 39153 | CALL 39175 | Shift Odd Ball graphic data right by C pixels and load into D (LHS) and A' (RHS) | ||||||
| 39156 | LD A,D | Load left part of Odd Ball graphic data into A | ||||||
| 39157 | LD E,(HL) | Load E with graphic data currently at Odd Ball's position on screen | ||||||
| 39158 | XOR E | Blend Odd Ball graphic data with what is already on screen at its position to make things look more natural... | ||||||
| 39159 | LD (HL),A | ...and write new graphic data back to screen | ||||||
| 39160 | INC HL | Advance right one byte in display file | ||||||
| 39161 | EX AF,AF' | Switch registers to restore right part of Odd Ball graphic data to A | ||||||
| 39162 | LD E,(HL) | Load E with graphic data currently at Odd Ball's position on screen | ||||||
| 39163 | XOR E | Blend Odd Ball graphic data with what is already on screen at its position to make things look more natural... | ||||||
| 39164 | LD (HL),A | ...and write new graphic data back to screen | ||||||
| 39165 | DEC HL | Move left one byte in display file | ||||||
| 39166 | INC IX | Advance IX to next row of Odd Ball graphic data | ||||||
| 39168 | CALL 39200 | Advance HL down one pixel row in display file | ||||||
| 39171 | DJNZ 39150 | Loop back to draw next row of Odd Ball data | ||||||
| 39173 | POP HL | Restore HL | ||||||
| 39174 | RET | Return | ||||||
| Prev: 39081 | Up: Map | Next: 39175 |