88 lines
		
	
	
	
		
			1.5 KiB
		
	
	
	
		
			Text
		
	
	
	
	
	
			
		
		
	
	
			88 lines
		
	
	
	
		
			1.5 KiB
		
	
	
	
		
			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 ?
 | 
						|
 | 
						|
#define TRAP    0
 | 
						|
 | 
						|
; TRP is called with one parameter:
 | 
						|
;       - trap number (TRAP)
 | 
						|
; Definition:
 | 
						|
; PROCEDURE TRP(trapno: INTEGER);
 | 
						|
 | 
						|
 exp $TRP
 | 
						|
 pro $TRP, 0
 | 
						|
 lol TRAP
 | 
						|
 trp
 | 
						|
 ret 0
 | 
						|
 end ?
 | 
						|
 | 
						|
#define PROC    0
 | 
						|
 | 
						|
; SIG is called with one parameter:
 | 
						|
;       - procedure instance identifier (PROC)
 | 
						|
; and returns the old traphandler.
 | 
						|
; only the procedure identifier inside the PROC is used.
 | 
						|
 | 
						|
 exp $SIG
 | 
						|
 pro $SIG, 0
 | 
						|
 lal PROC
 | 
						|
 loi EM_PSIZE
 | 
						|
 sig
 | 
						|
 ret EM_PSIZE
 | 
						|
 end ?
 | 
						|
 | 
						|
 exp $LINO
 | 
						|
 pro $LINO,0
 | 
						|
 loe 0
 | 
						|
 ret EM_WSIZE
 | 
						|
 end ?
 | 
						|
 | 
						|
 exp $FILN
 | 
						|
 pro $FILN,0
 | 
						|
 lae 4
 | 
						|
 loi EM_PSIZE
 | 
						|
 ret EM_PSIZE
 | 
						|
 end ?
 |