Prev: AE94 Up: Map Next: AFAE
AF6B: Rotate pattern
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