Dynamite Dan | Routines |
Prev: E909 | Up: Map | Next: E93F |
Used by the routine at E644.
|
||||
E916 | LD DE,$4000 | Point DE to the start of screen. | ||
E919 | LD B,$08 | 8 8x8 blocks to update. | ||
E91B | PUSH BC | Remember BC and DE. | ||
E91C | PUSH DE | |||
E91D | LD B,$07 | 7 rows to update. | ||
E91F | LD L,E | Copy DE to HL. | ||
E920 | LD H,D | |||
E921 | INC H | Move down a row. | ||
E922 | PUSH HL | Remember HL and BC. | ||
E923 | PUSH BC | |||
E924 | LD BC,$0020 | Copy a line from HL to a row above in DE. | ||
E927 | LDIR | |||
E929 | EX DE,HL | Swap DE and HL. | ||
E92A | POP BC | Restore BC. | ||
E92B | POP DE | Restore HL into DE. | ||
E92C | DJNZ $E91F | Loop back while there are more rows to update. | ||
E92E | POP HL | Restore HL and BC. | ||
E92F | POP BC | |||
E930 | DEC B | Reduce the number of blocks to update by 1, and return if it is zero. | ||
E931 | RET Z | |||
E932 | PUSH BC | Remember BC. | ||
E933 | LD BC,$0020 | Move down a 8x8 block. | ||
E936 | ADD HL,BC | |||
E937 | PUSH HL | Remember HL. | ||
E938 | LDIR | Do the copy. | ||
E93A | POP DE | Restore HL as DE. | ||
E93B | POP BC | Restore BC. | ||
E93C | JR $E91B | Loop back to update more. | ||
E93E | RET | This is never executed, the function executes at E931. |
Prev: E909 | Up: Map | Next: E93F |