Routines 
Prev: 65DB  Up: Map  Next: 663F 


65E4  CALL $6564  Is ERIC sitting or lying down?  
65E7  RET NZ  Return if so  
65E8  BIT 6,A  Bit 6 of ERIC's status flags at 7FFB is always reset, so this jump is never made  
65EA  JR NZ,$65D3  
65EC  LD A,D  A=ERIC's ycoordinate  
65ED  CP $9B  Is ERIC on the top floor?  
65EF  JR Z,$65D3  Jump if so  
65F1  CP $A2  Is ERIC on the middle floor?  
65F3  JR Z,$6623  Jump if so  
65F5  CP $A9  Is ERIC on the bottom floor?  
65F7  JR Z,$6623  Jump if so  
ERIC's not on the top, middle or bottom floor, so he must be on a staircase. Should he go up a step, or turn round first?


65F9  LD A,E  A=ERIC's xcoordinate  
65FA  CP $30  Set the carry flag if ERIC's on a staircase at the left of the skool  
65FC  BIT 7,B  Set the zero flag if ERIC is facing left  
65FE  JR C,$6605  Jump if ERIC's on a staircase at the left of the skool  
6600  JP Z,$656A  Turn ERIC round if he's facing down a staircase at the right of the skool  
6603  JR $6608  
6605  JP NZ,$656A  Turn ERIC round if he's facing down a staircase at the left of the skool  
ERIC's at the bottom of or on a staircase, facing the top of it.


6608  DEC D  Up a step  
6609  LD H,D  Copy ERIC's next coordinates to HL  
660A  LD L,E  
660B  DEC E  One pace to the left  
660C  LD B,$02  0x02=ERIC standing, facing left  
660E  CP $30  Is ERIC on a staircase on the left side of the skool?  
6610  JR C,$6616  Jump if so  
6612  LD B,$82  0x82=ERIC standing, facing right  
6614  INC E  One pace to the right (taking into the account the one pace to the left made above)  
6615  INC E  
6616  LD A,B  A=0x02/0x82  
6617  BIT 0,L  A=0x03/0x83, B=0x02/0x82 if ERIC's current xcoordinate is even (which is a bug); A=0x03/0x83, B=0x00/0x80 if ERIC's current xcoordinate is odd  
6619  JR Z,$661D  
661B  DEC B  
661C  DEC B  
661D  ADD A,$02  
661F  DEC A  
6620  JP $653C  Update ERIC's animatory state and location  
ERIC is on the middle floor or the top floor.


6623  LD A,E  A=ERIC's xcoordinate  
6624  CP $13  This is the xcoordinate of the bottoms of the staircases at the left of the skool  
6626  JR NZ,$662F  Jump unless ERIC is here  
6628  BIT 7,B  Is ERIC facing right?  
662A  JP NZ,$66AA  Move ERIC right if so  
662D  JR $6608  Otherwise send ERIC up a step  
662F  CP $46  This is the xcoordinate of the bottoms of the staircases at the right of the skool  
6631  JR NZ,$6637  Jump unless ERIC is here  
6633  BIT 7,B  Is ERIC facing right?  
6635  JR NZ,$6608  Send ERIC up a step if so  
6637  BIT 7,B  Is ERIC facing left?  
6639  JP Z,$6652  Move ERIC left if so  
663C  JP $66AA  Otherwise move ERIC right 
Prev: 65DB  Up: Map  Next: 663F 