Prev: B83D Up: Map Next: B8D6
B871: Animation: Dog
Used by the routine at Messaging_DartNumber.
Self-modifying code:
Animation_Dog B871 LD A,$ED Writes an extra LDI to B8EA.
B873 LD ($B8EA),A
B876 LD A,$A0
B878 LD ($B8EB),A
B87B LD B,$07 B=07.
B87D LD HL,$48B0 HL=48B0 (screen buffer location).
Animation_Dog_0 B880 PUSH BC Stash BC and HL on the stack.
B881 PUSH HL
B882 LD DE,$C8BC DE=Graphics_Dog_02.
B885 CALL Print_Dog_Frame_0 Call Print_Dog_Frame_0.
B888 HALT Halt operation (suspend CPU until the next interrupt).
B889 HALT Halt operation (suspend CPU until the next interrupt).
B88A POP HL Restore HL from the stack.
B88B PUSH HL Stash HL on the stack.
B88C LD DE,$C844 DE=Graphics_Dog_01.
B88F CALL Print_Dog_Frame_0 Call Print_Dog_Frame_0.
B892 HALT Halt operation (suspend CPU until the next interrupt).
B893 HALT Halt operation (suspend CPU until the next interrupt).
B894 POP HL Restore HL from the stack.
B895 DEC L Decrease L by one.
B896 POP BC Restore BC from the stack.
B897 DJNZ Animation_Dog_0 Decrease counter by one and loop back to Animation_Dog_0 until counter is zero.
B899 INC L Increment L by four.
B89A INC L
B89B INC L
B89C INC L
B89D LD DE,$CA64 DE=CA64.
B8A0 LD B,$18 B=18.
Animation_Dog_1 B8A2 LD A,(DE) A=*DE.
B8A3 LD (HL),A Write A to *HL.
B8A4 INC DE Increment DE by one.
B8A5 CALL NextScreenBufferLine Call NextScreenBufferLine.
B8A8 DJNZ Animation_Dog_1 Decrease counter by one and loop back to Animation_Dog_1 until counter is zero.
Self-modifying code.
B8AA XOR A Writes NOP NOP to remove the extra LDI command.
B8AB LD ($B8EA),A
B8AE LD ($B8EB),A
B8B1 LD DE,$C934 DE=Graphics_Dog_03.
B8B4 CALL Print_Dog_Frame Call Print_Dog_Frame.
B8B7 LD DE,$C994 DE=Graphics_Dog_04.
B8BA CALL Print_Dog_Frame Call Print_Dog_Frame.
B8BD LD DE,$C9F4 DE=Graphics_Dog_05.
B8C0 CALL Print_Dog_Frame Call Print_Dog_Frame.
B8C3 LD DE,$C9F4 DE=Graphics_Dog_05.
B8C6 CALL Print_Dog_Frame Call Print_Dog_Frame.
B8C9 LD DE,$C994 DE=Graphics_Dog_04.
B8CC CALL Print_Dog_Frame Call Print_Dog_Frame.
B8CF LD DE,$C934 DE=Graphics_Dog_03.
B8D2 CALL Print_Dog_Frame Call Print_Dog_Frame.
B8D5 RET Return.
Prev: B83D Up: Map Next: B8D6