Routines |
Prev: 657D | Up: Map | Next: 65DB |
|
||||||||||
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 | Next: 65DB |