Routines 
Prev: 653E  Up: Map  Next: 6585 
6558  LD DE,($E601)  Collect Sam's x and ycoordinates in E and D  
655C  LD A,($7FFC)  Pick up Sam's status flags from 7FFC  
655F  BIT 3,A  Is Sam rolling or somersaulting?  
6561  JR NZ,$656F  Jump if so  
6563  AND $81  Is Sam either being carried by a gangster or policeman, or falling from the roof of a building?  
6565  LD A,($E604)  Return with A holding Sam's zcoordinate if not  
6568  RET Z  
Sam is either being carried by a policeman, or falling from the roof of a building.


6569  LD A,$02  2=behind people on the sidewalk  
656B  LD DE,$26A8  D=38, E=168 (out of reach)  
656E  RET  
Sam is rolling or somersaulting.


656F  LD A,($E600)  A=Sam's animatory state  
6572  AND $7F  Discard bit 7 (the direction bit)  
6574  CP $0F  Is Sam horizontal at the moment (animatory state 0x0F or 0x1F)?  
6576  JR C,$657A  Jump if not  
6578  INC E  Add 2 to Sam's xcoordinate if he's horizontal  
6579  INC E  
657A  LD A,E  A=x+2 if Sam's horizontal, or x otherwise (where x is Sam's xcoordinate)  
657B  CALL $EB05  Reset the carry flag if Sam is on or above the sidewalk, or set it if he's on or above the road  
657E  ADC A,$22  D=34 if Sam's on or above the sidewalk, 35 if he's on or above the road  
6580  SUB E  
6581  LD D,A  
6582  LD A,$04  4=outside  
6584  RET 
Prev: 653E  Up: Map  Next: 6585 