Routines 
Prev: 36434  Up: Map  Next: 36543 
Each time this routine runs, we add the smaller of the x and ymagnitudes to the running "ratio" value in (IX+6).
If the larger of the x and ymagnitudes is smaller than this, then we move the star in both x and ydirections and subtract the larger magnitude from the running value in (IX+6).
If the larger of the x and ymagnitudes is larger than this, then we move the star only in that direction with the larger magnitude and do not update (IX+6) further beyond adding the smaller magnitude (i.e. we do NOT subtract the larger one)
Used by the routine at 36321.


36499  LD A,(IX+6)  Load current "ratio" value into A  
36502  ADD A,(IX+8)  Add smaller of x and ycomponent magnitudes  
36505  JR C,36512  If result is crosses the 2550 boundary then skip ahead to 36512  
36507  CP (IX+7)  If result is less than larger of x and ycomponent magnitudes...  
36510  JR C,36523  ...then skip ahead to 36523 (move star only on axis with larger magnitude)  
36512  SUB (IX+7)  Subtract larger of x and ymagnitudes  
36515  LD H,(IX+5)  Load ystep into H...  
36518  LD L,(IX+4)  ...and xstep into H (moving star on BOTH axes)  
36521  JR 36529  Skip ahead to 36529  
36523  LD H,(IX+3)  Load 0 / ystep into H  
36526  LD L,(IX+2)  Load 0 / xstep into H  
36529  LD (IX+6),A  Update "ratio" value  
36532  LD A,(IX+1)  Add previous ycoordinate...  
36535  ADD A,H  ...to ystep...  
36536  LD B,A  ...in B  
36537  LD A,(IX+0)  Add previous xcoordinate...  
36540  ADD A,L  ...to xstep...  
36541  LD C,A  ...in C  
36542  RET  Return 
Prev: 36434  Up: Map  Next: 36543 