![]() |
Routines |
Prev: F7DA | Up: Map |
Used by the routine at F8AE. Initialises the animatory state, location and command list address for every character in character groups 0xD7-0xDD.
|
||||||||
F7F0 | LD HL,$FEAE | The initialisation parameters for character groups 0xD7-0xDD are located at FEAE onwards | ||||||
F7F3 | LD D,$D7 | Begin with the buffers for character group 0xD7 | ||||||
F7F5 | LD E,$00 | Point DE at the first byte of the first buffer in the group | ||||||
F7F7 | LD C,$05 | There are 5 characters in the group | ||||||
F7F9 | LD B,$03 | Initialise a character's animatory state and location | ||||||
F7FB | LD A,(HL) | |||||||
F7FC | INC HL | |||||||
F7FD | LD (DE),A | |||||||
F7FE | INC E | |||||||
F7FF | DJNZ $F7FB | |||||||
F801 | XOR A | Reset the flags in byte 0x03 of the character's buffer | ||||||
F802 | LD (DE),A | |||||||
F803 | INC C | Increment C to compensate for the LDI instruction that follows | ||||||
F804 | INC E | Initialise the character's z-coordinate | ||||||
F805 | LDI | |||||||
F807 | LD B,$12 | Zero out bytes 0x05-0x16 of the character's buffer | ||||||
F809 | LD (DE),A | |||||||
F80A | INC E | |||||||
F80B | DJNZ $F809 | |||||||
F80D | LD B,$02 | Copy the command list address into bytes 0x17 and 0x18 of the character's buffer | ||||||
F80F | LD A,(HL) | |||||||
F810 | INC HL | |||||||
F811 | LD (DE),A | |||||||
F812 | INC E | |||||||
F813 | DJNZ $F80F | |||||||
F815 | DEC C | Have we initialised the buffers of all 5 characters in the group yet? | ||||||
F816 | JR NZ,$F7F9 | Jump back if not | ||||||
F818 | INC D | Point DE at the next character group | ||||||
F819 | LD A,D | Have we initialised the buffers in every character group yet? | ||||||
F81A | CP $DE | |||||||
F81C | JR NZ,$F7F5 | Jump back if not | ||||||
F81E | RET |
Prev: F7DA | Up: Map |