![]() |
Routines |
| Prev: 6618 | Up: Map | Next: 666F |
|
||||||||
| 663F | LD D,$B7 | 0xB7=little girl no. 1 | ||||||
| 6641 | LD L,$01 | |||||||
| 6643 | LD BC,$1187 | B=0x11 (7 girls, 10 boys), C=0x87 (animatory state mask) | ||||||
| 6646 | CALL $6621 | Are any of these characters sitting in the chair? | ||||||
| 6649 | JR Z,$6667 | Jump if so | ||||||
| 664B | LD BC,$0287 | B=0x02 (EINSTEIN and HAYLEY), C=0x87 (animatory state mask) | ||||||
| 664E | LD D,$D0 | 0xD0=EINSTEIN | ||||||
| 6650 | CALL $6618 | Is one of the main kids sitting here? | ||||||
| 6653 | JR Z,$6667 | Jump if so | ||||||
| 6655 | LD DE,$D212 | D=0xD2 (ERIC), E=0x12 | ||||||
| 6658 | INC B | B=1 (just ERIC) | ||||||
| 6659 | XOR A | Zero out byte 0x12 of ERIC's buffer (to indicate that he may be pushed out of the seat if he's in it) | ||||||
| 665A | LD (DE),A | |||||||
| 665B | CALL $6621 | Is ERIC sitting here? | ||||||
| 665E | RET NZ | Return if not | ||||||
| 665F | LD DE,$7FFB | HL=7FFB (ERIC's primary status flags) | ||||||
| 6662 | EX DE,HL | |||||||
| 6663 | SET 7,(HL) | Set bit 7 of ERIC's primary status flags, indicating that he's been knocked to the floor; however, bit 7 is ignored by the routine at F7AD (because bit 2 is also set), so ERIC actually stays in his seat (which is a bug) | ||||||
| 6665 | EX DE,HL | Restore the number of the character looking for a seat to H | ||||||
| 6666 | RET | |||||||
|
A character (other than ERIC) must be knocked out of the chair.
|
||||||||
| 6667 | LD A,$66 | Place the address of the uninterruptible subcommand routine at 6670 into bytes 0x11 and 0x12 of the buffer of the character who's been knocked out of the chair | ||||||
| 6669 | LD (DE),A | |||||||
| 666A | DEC E | |||||||
| 666B | LD A,$70 | |||||||
| 666D | LD (DE),A | |||||||
| 666E | RET | |||||||
| Prev: 6618 | Up: Map | Next: 666F |