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 ycoordinate  
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 xcoordinate  
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 xcoordinate is even; A=0x03/0x83, B=0x00/0x80 if ERIC's current xcoordinate 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 xcoordinate  
65C0  CP $0C  This is the xcoordinate 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 xcoordinate 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 