Prev: E93F Up: Map Next: E9BA
E96B: Draw a moving sprite
Used by the routines at D7B7 and D7E7.
Input
DE Position to draw the sprite
HL Pointer to the current sprite data
B Number of frames for the sprite
IY Pointer to current room data
E96B PUSH BC
E96C BIT 6,(IY+$04)
E970 JR Z,$E977
E972 LD BC,$777E
E975 JR $E97A
E977 LD BC,$1277
E97A LD A,B
E97B LD ($E990),A
E97E LD A,C
E97F LD ($E9AF),A
E982 POP BC
E983 PUSH DE
E984 PUSH BC
E985 LD A,C
E986 EX AF,AF'
E987 PUSH DE
E988 CALL $E8F1
E98B LD C,$08
E98D PUSH BC
E98E PUSH DE
E98F LD A,(HL)
E990 LD (DE),A
E991 INC E
E992 INC HL
E993 DJNZ $E98F
E995 POP DE
E996 INC D
E997 POP BC
E998 DEC C
E999 JR NZ,$E98D
E99B POP DE
E99C INC E
E99D EX AF,AF'
E99E DEC A
E99F JR NZ,$E986
E9A1 POP BC
E9A2 POP DE
E9A3 CALL $E8E3
E9A6 EX DE,HL
E9A7 LD DE,$0020
E9AA LD A,(IY+$05)
E9AD PUSH HL
E9AE PUSH BC
E9AF LD (HL),A
E9B0 INC L
E9B1 DJNZ $E9AF
E9B3 POP BC
E9B4 POP HL
E9B5 ADD HL,DE
E9B6 DEC C
E9B7 JR NZ,$E9AD
E9B9 RET
Prev: E93F Up: Map Next: E9BA