| Gyruss | Routines |
| Prev: AE94 | Up: Map | Next: AFAE |
|
Take a pattern pointed to by pattern_address and rotate it left 90 degrees. Returns address of rotate pattern in pattern_address. Used by the routine at upload_sprite_patterns.
|
||||
| rotate | AF6B | LD HL,(pattern_address) | HL = source address | |
| AF6E | PUSH HL | Copy source into IY | ||
| AF6F | POP IY | ... | ||
| AF71 | LD DE,$0008 | HL = destination address | ||
| AF74 | ADD HL,DE | ... | ||
| AF75 | LD (pattern_address),HL | Store destination | ||
| AF78 | LD B,$08 | 8 bytes in pattern | ||
| rotate_0 | AF7A | RL (IY+$00) | Shift bit 7 of source byte 0 into carry | |
| AF7E | RR (HL) | Shift carry into bit 7 of destination byte | ||
| AF80 | RL (IY+$01) | x2 | ||
| AF84 | RR (HL) | ... | ||
| AF86 | RL (IY+$02) | x3 | ||
| AF8A | RR (HL) | ... | ||
| AF8C | RL (IY+$03) | x4 | ||
| AF90 | RR (HL) | ... | ||
| AF92 | RL (IY+$04) | x5 | ||
| AF96 | RR (HL) | ... | ||
| AF98 | RL (IY+$05) | x6 | ||
| AF9C | RR (HL) | ... | ||
| AF9E | RL (IY+$06) | x7 | ||
| AFA2 | RR (HL) | ... | ||
| AFA4 | RL (IY+$07) | x8 | ||
| AFA8 | RR (HL) | ... | ||
| AFAA | INC HL | Next destination | ||
| AFAB | DJNZ rotate_0 | Repeat 8 times | ||
| AFAD | RET | |||
| Prev: AE94 | Up: Map | Next: AFAE |