![]() |
Routines |
Prev: 657D | Up: Map |
|
||||||||||||
657F | CALL $6564 | Is ERIC sitting or lying down? | ||||||||||
6582 | RET NZ | Return if so | ||||||||||
6583 | BIT 6,A | Bit 6 of ERIC's status flags at 7FFB is always reset, so this jump (which should be to 65D3) is never made | ||||||||||
6585 | JR NZ,$65D4 | |||||||||||
6587 | LD A,D | A=ERIC's y-coordinate | ||||||||||
6588 | CP $A9 | Is ERIC on the bottom floor? | ||||||||||
658A | JR Z,$65D3 | Jump forward to move him left or right if so | ||||||||||
658C | CP $A2 | Is ERIC on the middle floor? | ||||||||||
658E | JR Z,$65BF | Jump if so | ||||||||||
6590 | CP $9B | Is ERIC on the top floor? | ||||||||||
6592 | JR Z,$65BF | Jump if so | ||||||||||
ERIC's not on the top, middle or bottom floor, so he must be on a staircase. Should he go down a step, or turn round first?
|
||||||||||||
6594 | LD A,E | A=ERIC's x-coordinate | ||||||||||
6595 | CP $30 | Set the carry flag if ERIC's on a staircase at the left of the skool | ||||||||||
6597 | BIT 7,B | Set the zero flag if ERIC is facing left | ||||||||||
6599 | JR C,$65A0 | Jump if ERIC's on a staircase at the left of the skool | ||||||||||
659B | JP NZ,$656A | Turn ERIC round if he's facing up a staircase at the right of the skool | ||||||||||
659E | JR $65A3 | |||||||||||
65A0 | JP Z,$656A | Turn ERIC round if he's facing up a staircase at the left of the skool | ||||||||||
ERIC's at the top of or on a staircase, facing the bottom of it.
|
||||||||||||
65A3 | LD H,D | Copy ERIC's coordinates to HL | ||||||||||
65A4 | LD L,E | |||||||||||
65A5 | NOP | |||||||||||
65A6 | INC D | Down a step | ||||||||||
65A7 | DEC E | One pace to the left | ||||||||||
65A8 | LD B,$02 | 0x02=ERIC standing, facing left | ||||||||||
65AA | CP $30 | Is ERIC on a staircase on the right side of the skool? | ||||||||||
65AC | JR NC,$65B2 | Jump if so | ||||||||||
65AE | LD B,$82 | 0x82=ERIC standing, facing right | ||||||||||
65B0 | INC E | One pace to the right (taking into the account the one pace to the left made above) | ||||||||||
65B1 | INC E | |||||||||||
65B2 | LD A,B | A=0x02/0x82 | ||||||||||
65B3 | BIT 0,L | A=0x01/0x81, B=0x02/0x82 if ERIC's current x-coordinate is even; A=0x03/0x83, B=0x00/0x80 if ERIC's current x-coordinate is odd | ||||||||||
65B5 | JR Z,$65BB | |||||||||||
65B7 | DEC B | |||||||||||
65B8 | DEC B | |||||||||||
65B9 | ADD A,$02 | |||||||||||
65BB | DEC A | |||||||||||
65BC | JP $653C | Update ERIC's animatory state and location | ||||||||||
ERIC is on the middle floor or the top floor.
|
||||||||||||
65BF | LD A,E | A=ERIC's x-coordinate | ||||||||||
65C0 | CP $0C | This is the x-coordinate of the tops of the staircases at the left of the skool | ||||||||||
65C2 | JR NZ,$65CB | Jump unless ERIC is there | ||||||||||
65C4 | BIT 7,B | Is ERIC facing left? | ||||||||||
65C6 | JP Z,$6652 | Move ERIC left if so | ||||||||||
65C9 | JR $65A3 | Otherwise send ERIC down a step | ||||||||||
65CB | CP $4D | This is the x-coordinate of the tops of the staircases at the right of the skool | ||||||||||
65CD | JR NZ,$65D3 | Jump unless ERIC is there | ||||||||||
65CF | BIT 7,B | Is ERIC facing left? | ||||||||||
65D1 | JR Z,$65A3 | Send ERIC down a step if so | ||||||||||
This entry point is used by the routine at 65E4.
|
||||||||||||
65D3 | BIT 7,B | Is ERIC facing left? | ||||||||||
65D5 | JP Z,$6652 | Move ERIC left if so | ||||||||||
65D8 | JP $66AA | Otherwise move ERIC right |
Prev: 657D | Up: Map |