![]() |
Routines |
| Prev: 9AAD | Up: Map | Next: 9ACB |
|
Used by the routines at DRAW_UPSIDE_DOWN, BLIT_SPRITE_FLIPPED, DRAW_FLIP_DIAGONAL, DRAW_TURNED_LEFT, COLOURS_UPSIDE_DOWN, COLOURS_HALF_TURN, COLOURS_FLIP_DIAGONAL and COLOURS_TURNED_LEFT.
Multiplies the width by the height less one and adds it to the data pointer, so drawing can start from the far end. Called by every drawing routine whose mode number has bit 2 set -- which is how the eight modes divide: the low two bits choose the horizontal treatment and bit 2 turns the sprite over.
Checking all sixteen routines in the two tables bears that out exactly. Modes 0 to 3 leave the pointer where it is; modes 4 to 7 all begin by calling this.
|
||||
| START_AT_LAST_ROW | 9ABA | PUSH HL | ||
| 9ABB | PUSH DE | |||
| 9ABC | LD A,B | |||
| 9ABD | LD E,C | |||
| 9ABE | DEC E | |||
| 9ABF | LD D,$00 | |||
| 9AC1 | PUSH BC | |||
| 9AC2 | CALL MULTIPLY | |||
| 9AC5 | POP BC | |||
| 9AC6 | POP DE | |||
| 9AC7 | ADD HL,DE | |||
| 9AC8 | EX DE,HL | |||
| 9AC9 | POP HL | |||
| 9ACA | RET | |||
| Prev: 9AAD | Up: Map | Next: 9ACB |