46 lines
		
	
	
	
		
			944 B
		
	
	
	
		
			Text
		
	
	
	
	
	
			
		
		
	
	
			46 lines
		
	
	
	
		
			944 B
		
	
	
	
		
			Text
		
	
	
	
	
	
| #
 | |
|  mes 2,EM_WSIZE,EM_PSIZE
 | |
| 
 | |
| #define ARG1    0
 | |
| #define ARG2    EM_DSIZE
 | |
| #define IRES    2*EM_DSIZE
 | |
| 
 | |
| ; FIF is called with three parameters:
 | |
| ;       - address of integer part result (IRES)
 | |
| ;       - float two (ARG2)
 | |
| ;       - float one (ARG1)
 | |
| ; and returns an EM_DSIZE-byte floating point number
 | |
| ; Definition:
 | |
| ;	PROCEDURE FIF(ARG1, ARG2: LONGREAL; VAR IRES: LONGREAL) : LONGREAL;
 | |
| 
 | |
|  exp $FIF
 | |
|  pro $FIF,0
 | |
|  lal 0
 | |
|  loi 2*EM_DSIZE
 | |
|  fif EM_DSIZE
 | |
|  lal IRES
 | |
|  loi EM_PSIZE
 | |
|  sti EM_DSIZE
 | |
|  ret EM_DSIZE
 | |
|  end ?
 | |
| 
 | |
| #define FARG    0
 | |
| #define ERES    EM_DSIZE
 | |
| 
 | |
| ; FEF is called with two parameters:
 | |
| ;       - address of base 2 exponent result (ERES)
 | |
| ;       - floating point number to be split (FARG)
 | |
| ; and returns an EM_DSIZE-byte floating point number (the mantissa)
 | |
| ; Definition:
 | |
| ;	PROCEDURE FEF(FARG: LONGREAL; VAR ERES: integer): LONGREAL;
 | |
| 
 | |
|  exp $FEF
 | |
|  pro $FEF,0
 | |
|  lal FARG
 | |
|  loi EM_DSIZE
 | |
|  fef EM_DSIZE
 | |
|  lal ERES
 | |
|  loi EM_PSIZE
 | |
|  sti EM_WSIZE
 | |
|  ret EM_DSIZE
 | |
|  end ?
 |