![]() |
Routines |
| Prev: ED4E | Up: Map | Next: EF6B |
|
Used by the routine at CDEF.
|
||||
| EF2E | LD E,$A7 | X = A7 | ||
| EF30 | LD D,$00 | Y = 0 | ||
| EF32 | LD HL,$EA60 | EA60 is the screen offsets table. | ||
| EF35 | ADD HL,DE | Get the correct screen address. | ||
| EF36 | ADD HL,DE | |||
| EF37 | LD ($EF7A),HL | Store this. (EF7A). | ||
| EF3A | LD B,$18 | 12 characters to draw. | ||
|
Draw each character in the correct frame.
|
||||
| EF3C | PUSH BC | Remember this. | ||
| EF3D | LD A,(HL) | Put the screen address in HL. | ||
| EF3E | INC HL | |||
| EF3F | LD H,(HL) | |||
| EF40 | LD L,A | |||
| EF41 | LD DE,$0019 | Move down a row and store the result in DE. | ||
| EF44 | ADD HL,DE | |||
| EF45 | EX DE,HL | |||
| EF46 | LD HL,($EF77) | Get the pointer to the graphic. | ||
| EF49 | LD BC,$0005 | 5 bytes to copy to screen. | ||
| EF4C | LDIR | Do the copy. | ||
| EF4E | LD ($EF77),HL | Store the next address to copy. | ||
| EF51 | LD HL,($EF7A) | Move back a screen address. | ||
| EF54 | DEC HL | |||
| EF55 | DEC HL | |||
| EF56 | LD ($EF7A),HL | |||
| EF59 | POP BC | Restore count of characters to draw. | ||
| EF5A | DJNZ $EF3C | Loop back if there is more to do. | ||
|
All characters are now drawn.
|
||||
| EF5C | LD A,($EF79) | Get the frame counter. | ||
| EF5F | INC A | Move to the next counter. | ||
| EF60 | CP $04 | Is this the last frame? | ||
| EF62 | JR NZ,$EF67 | If not, jump forward. | ||
| EF64 | CALL $EF6B | Otherwise reset back to the first frame. | ||
| EF67 | LD ($EF79),A | Store the new frame and return. | ||
| EF6A | RET | |||
| Prev: ED4E | Up: Map | Next: EF6B |