Routines |
Prev: B83D | Up: Map | Next: B8D6 |
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 |