Routines 
Prev: 13999  Up: Map  Next: 14099 
Used by the routine at to_power.
The address of this routine is found in the table of addresses. It is called indirectly via fp_calc_2.
This subroutine handles the function EXP X and is the first of four routines that use the series generator to produce Chebyshev polynomials.
The approximation to EXP X is found as follows:


exp  14020  RST 40  X  
Perform step i.


14021  DEFB 61  re_stack: X (in full floatingpoint form)  
14022  DEFB 52  stk_data: X, 1/LN 2  
14023  DEFB 241,56,170,59,41  
14028  DEFB 4  multiply: X/LN 2=Y  
Perform step ii.


14029  DEFB 49  duplicate: Y, Y  
14030  DEFB 39  int: Y, INT Y=N  
14031  DEFB 195  st_mem_3: Y, N (mem3 holds N)  
Perform step iii.


14032  DEFB 3  subtract: YN=W  
Perform step iv.


14033  DEFB 49  duplicate: W, W  
14034  DEFB 15  addition: 2*W  
14035  DEFB 161  stk_one: 2*W, 1  
14036  DEFB 3  subtract: 2*W1=Z  
Perform step v, passing to the series generator the parameter '8' and the eight constants required.


14037  DEFB 136  series_08: Z  
14038  DEFB 19,54  
14040  DEFB 88,101,102  
14043  DEFB 157,120,101,64  
14047  DEFB 162,96,50,201  
14051  DEFB 231,33,247,175,36  
14056  DEFB 235,47,176,176,20  
14061  DEFB 238,126,187,148,88  
14066  DEFB 241,58,126,248,207  
At the end of the last loop the 'last value' is 2**W.
Perform step vi.


14071  DEFB 227  get_mem_3: 2**W, N  
14072  DEFB 56  end_calc  
14073  CALL FP_TO_A  The absolute value of N mod 256 is put into the A register.  
14076  JR NZ,N_NEGTV  Jump forward if N was negative.  
14078  JR C,REPORT_6_2  Error if ABS N>255.  
14080  ADD A,(HL)  Now add ABS N to the exponent.  
14081  JR NC,RESULT_OK  Jump unless e>255.  
Report 6  Number too big.


REPORT_6_2  14083  RST 8  Call the error handling routine.  
14084  DEFB 5  
N_NEGTV  14085  JR C,RSLT_ZERO  The result is to be zero if N<255.  
14087  SUB (HL)  Subtract ABS N from the exponent as N was negative.  
14088  JR NC,RSLT_ZERO  Zero result if e less than zero.  
14090  NEG  Minus e is changed to e.  
RESULT_OK  14092  LD (HL),A  The exponent, e, is entered.  
14093  RET  Finished: 'last value' is EXP X.  
RSLT_ZERO  14094  RST 40  Use the calculator to make the 'last value' zero.  
14095  DEFB 2  delete (the stack is now empty)  
14096  DEFB 160  stk_zero: 0  
14097  DEFB 56  end_calc  
14098  RET  Finished, with EXP X=0. 
Prev: 13999  Up: Map  Next: 14099 