![]() |
Routines |
| Prev: D609 | Up: Map | Next: D6A1 |
| D658 | LD ($A22C),IX | Save at A22C the current value of IX | ||
| D65C | LD ($A22E),IY | Save at A22E the current value of IY | ||
| D660 | POP IY | Restore the base address of the data buffer for the sprite to display | ||
| D662 | LD L,(IY+$03) | Set HL to the vertical position of the sprite | ||
| D665 | LD H,$00 | |||
| D667 | ADD HL,HL | Set HL the address location of the sprite in the display file lookup table | ||
| D668 | LD DE,$AC9A | |||
| D66B | ADD HL,DE | |||
| D66C | PUSH HL | Copy HL to IX | ||
| D66D | POP IX | |||
| D66F | LD L,(IY+$00) | Set HL to point to address of the graphic data for the sprite | ||
| D672 | LD H,(IY+$01) | |||
| D675 | LD B,(IY+$05) | Set B the height of the sprite | ||
| D678 | PUSH BC | Save BC | ||
| D679 | LD A,(IX+$00) | Set A to the lower byte of the address to the display file where draw the sprite | ||
| D67C | LD D,(IX+$01) | Set D to the high byte of the address to the display file where draw the sprite | ||
| D67F | ADD A,(IY+$02) | Add the horizontal position to the lowe byte of the display file | ||
| D682 | LD E,A | Set DE the address point in display file to draw the sprite | ||
| D683 | LD C,(IY+$04) | Set BC to the width of the sprite | ||
| D686 | LD B,$00 | |||
| D688 | LDIR | Copy to display file the graphics data of the sprite (a row of pixels) | ||
| D68A | INC IX | Points to the next address in the display file look up table | ||
| D68C | INC IX | |||
| D68E | POP BC | Recover BC | ||
| D68F | DJNZ $D678 | Jump back if there are partial sprite to draw | ||
| D691 | LD DE,$0006 | Point IY to the end of the data buffer for the sprite. This will be the next instruction to execute when return from this routine | ||
| D694 | ADD IY,DE | |||
| D696 | PUSH IY | Save IY | ||
| D698 | LD IY,($A22E) | Restore IY and IX | ||
| D69C | LD IX,($A22C) | |||
| D6A0 | RET | Return to instruction pointed by IY | ||
| Prev: D609 | Up: Map | Next: D6A1 |