Prev: ED4E Up: Map Next: EF6B
EF2E: Animate the smoke in the start room
Used by the routine at CDEF.
EF2E LD E,$A7 X = A7
EF30 LD D,$00 Y = 0
EF32 LD HL,$EA60 EA60 is the screen offsets table.
EF35 ADD HL,DE Get the correct screen address.
EF36 ADD HL,DE
EF37 LD ($EF7A),HL Store this. (EF7A).
EF3A LD B,$18 12 characters to draw.
Draw each character in the correct frame.
EF3C PUSH BC Remember this.
EF3D LD A,(HL) Put the screen address in HL.
EF3E INC HL
EF3F LD H,(HL)
EF40 LD L,A
EF41 LD DE,$0019 Move down a row and store the result in DE.
EF44 ADD HL,DE
EF45 EX DE,HL
EF46 LD HL,($EF77) Get the pointer to the graphic.
EF49 LD BC,$0005 5 bytes to copy to screen.
EF4C LDIR Do the copy.
EF4E LD ($EF77),HL Store the next address to copy.
EF51 LD HL,($EF7A) Move back a screen address.
EF54 DEC HL
EF55 DEC HL
EF56 LD ($EF7A),HL
EF59 POP BC Restore count of characters to draw.
EF5A DJNZ $EF3C Loop back if there is more to do.
All characters are now drawn.
EF5C LD A,($EF79) Get the frame counter.
EF5F INC A Move to the next counter.
EF60 CP $04 Is this the last frame?
EF62 JR NZ,$EF67 If not, jump forward.
EF64 CALL $EF6B Otherwise reset back to the first frame.
EF67 LD ($EF79),A Store the new frame and return.
EF6A RET
Prev: ED4E Up: Map Next: EF6B