| Dynamite Dan | Routines |
| Prev: D675 | Up: Map | Next: D6BB |
|
Used by the routine at E544.
|
||||||||||
| D677 | LD A,(DE) | Get the first byte | ||||||||
| D678 | AND $0C | Extract bits 2-3 (the height) and store it C. | ||||||||
| D67A | RRCA | |||||||||
| D67B | RRCA | |||||||||
| D67C | LD C,A | |||||||||
| D67D | INC A | Copy this plus one into the graphic data. | ||||||||
| D67E | LD (HL),A | |||||||||
| D67F | INC HL | Move to the next position in the buffer. | ||||||||
| D680 | LD A,(DE) | Extract bits 0-2 (the width) into B | ||||||||
| D681 | AND $03 | |||||||||
| D683 | LD B,A | |||||||||
| D684 | LD (HL),A | Copy this into the graphic data. | ||||||||
| D685 | SLA C | Multiply C by 8 and store it in A. | ||||||||
| D687 | SLA C | |||||||||
| D689 | SLA C | |||||||||
| D68B | XOR A | |||||||||
| D68C | ADD A,C | |||||||||
| D68D | DJNZ $D68C | Loop back while there is more to do. | ||||||||
| D68F | LD C,A | Put the height in BC. | ||||||||
| D690 | LD B,$00 | |||||||||
| D692 | LD ($D675),BC | Store this in D675. | ||||||||
| D696 | INC HL | Move to the next position in the buffer and store it. | ||||||||
| D697 | PUSH HL | |||||||||
| D698 | LD B,$F0 | Initialize the next F0 bytes in the buffer with 0.L | ||||||||
| D69A | XOR A | |||||||||
| D69B | LD (HL),A | |||||||||
| D69C | INC HL | |||||||||
| D69D | DJNZ $D69B | |||||||||
| D69F | POP HL | Restore HL which points to the next place in the buffer. | ||||||||
| D6A0 | PUSH HL | Store this. | ||||||||
| D6A1 | LD BC,$0018 | Increment by 18 for each iteration. | ||||||||
| D6A4 | ADD HL,BC | Add the next offset. | ||||||||
| D6A5 | INC DE | Move to the next byte in the sprite data. | ||||||||
| D6A6 | EX DE,HL | Copy from the sprite data to the buffer. | ||||||||
| D6A7 | LD BC,($D675) | Get the length. | ||||||||
| D6AB | LDIR | Do the copy. | ||||||||
| D6AD | EX DE,HL | Make DE the next place to copy from. | ||||||||
| D6AE | POP HL | Restore HL. | ||||||||
| D6AF | LD BC,$0090 | Increment by 90 for each iteration. | ||||||||
| D6B2 | ADD HL,BC | Add the next offset. | ||||||||
| D6B3 | EX DE,HL | Copy from the sprite data to the buffer. | ||||||||
| D6B4 | LD BC,($D675) | Get the length. | ||||||||
| D6B8 | LDIR | Do the copy and return. | ||||||||
| D6BA | RET | |||||||||
| Prev: D675 | Up: Map | Next: D6BB |