![]() |
Routines |
| Prev: F7EE | Up: Map | Next: F854 |
|
Used by the routine at F4EC.
Iterates over the 18 three-byte entries in the sprite table at F558 (Y pixel row at +00 X byte column at +01 attribute byte at +02), calling XorBlitSprite once per entry to draw each sprite in its initial position. Called once during attract-mode setup at F4EC before the animation loop begins.
|
||||
| DrawIntroSprites | F83C | LD B,$18 | B=18 (loop counter: 24 sprite entries). | |
| F83E | LD HL,$F558 | HL=F558 (attribute byte position of the first entry). | ||
| DrawIntroSprites_Loop | F841 | LD A,(HL) | A=attribute byte from the current entry. | |
| F842 | EXX | Switch to the shadow registers. | ||
| F843 | LD E,A | E=attribute byte (passed to XorBlitSprite as the draw-mode attribute). | ||
| F844 | EXX | Switch back to the normal registers. | ||
| F845 | PUSH BC | Stash BC and HL on the stack. | ||
| F846 | PUSH HL | |||
| F847 | DEC HL | Back HL two bytes to the Y pixel row (start of entry). | ||
| F848 | DEC HL | |||
| F849 | CALL XorBlitSprite | Call XorBlitSprite to draw the sprite at the position held in the current entry. | ||
| F84C | POP HL | Restore HL and BC from the stack. | ||
| F84D | POP BC | |||
| F84E | INC HL | Advance HL by three to the attribute byte of the next entry. | ||
| F84F | INC HL | |||
| F850 | INC HL | |||
| F851 | DJNZ DrawIntroSprites_Loop | Decrease counter and loop back to DrawIntroSprites_Loop. | ||
| F853 | RET | Return. | ||
| Prev: F7EE | Up: Map | Next: F854 |