Routines 
Prev: 26184  Up: Map 


26194  CALL 25956  Is ERIC sitting or lying down?  
26197  RET NZ  Return if so  
26198  CALL 26184  Check whether ERIC is on a staircase  
26201  LD A,E  A=ERIC's xcoordinate  
26202  JR Z,26212  Jump if ERIC's not on a staircase  
26204  CP 48  Is ERIC on a staircase at the right of the skool?  
26206  JP NC,25983  Move ERIC down a step if so  
26209  JP 26084  Otherwise move ERIC up a step  
26212  BIT 7,B  Is ERIC facing right?  
26214  JP NZ,25962  Turn ERIC round if so  
ERIC is facing left, and is not on a staircase.


26217  AND A  Is ERIC standing at the far left side of the skool?  
26218  RET Z  Return if so  
26219  LD A,D  A=ERIC's ycoordinate  
26220  CP 169  Is ERIC on the bottom floor?  
26222  JR Z,26234  Jump if so  
26224  CP 155  Set the zero flag if ERIC is on the top floor  
26226  LD A,58  This is the xcoordinate of the wall between the Map and Reading Rooms  
26228  JR Z,26232  Jump if ERIC's on the top floor  
26230  LD A,39  This is the xcoordinate of the wall between the Exam and White Rooms  
26232  CP E  Is ERIC facing this wall (from the right side)?  
26233  RET Z  Return if so (ERIC cannot walk through walls)  
There is no wall obstructing ERIC, so it's time to put him midstride.


26234  LD A,1  A=1 (ERIC midstride, facing left)  
26236  LD L,E  L=ERIC's current xcoordinate  
26237  DEC E  E=ERIC's postmidstride xcoordinate  
26238  LD C,A  C=1/129 (ERIC midstride)  
26239  LD A,(32764)  32764 holds the ASCII code of the last keypress  
26242  BIT 5,A  Was the last keypress upper case (fast)?  
26244  JR Z,26250  Jump if so  
26246  LD A,C  Clearly these instructions have no effect, but one wonders what they might once have been and done  
26247  ADD A,0  
26249  LD C,A  
26250  LD A,(32763)  Collect ERIC's status flags from 32763  
26253  BIT 6,A  Bit 6 is always reset, so this jump is always made  
26255  JR Z,26261  
26257  LD A,C  Clearly these instructions have no effect, but one wonders what they might once have been and done  
26258  ADD A,0  
26260  LD C,A  
26261  LD A,C  A=1/129 (ERIC midstride)  
26262  LD H,D  H=ERIC's current ycoordinate  
26263  LD B,A  B=2/130 (ERIC standing, phase 3)  
26264  INC B  
26265  BIT 0,L  Is ERIC's current xcoordinate even?  
26267  JR Z,26273  Jump if so  
26269  DEC B  Adjust ERIC's midstride animatory state (in A) to 3/131 and postmidstride animatory state (in B) to 0/128 if ERIC's current xcoordinate is odd  
26270  DEC B  
26271  ADD A,2  
26273  JP 25916  Put ERIC midstride 
Prev: 26184  Up: Map 