38 lines
		
	
	
	
		
			1.1 KiB
		
	
	
	
		
			Modula-2
		
	
	
	
	
	
			
		
		
	
	
			38 lines
		
	
	
	
		
			1.1 KiB
		
	
	
	
		
			Modula-2
		
	
	
	
	
	
| (*$Foreign *)
 | |
| DEFINITION MODULE EM;
 | |
| (*
 | |
|   Module:	Interface to some EM instructions and data
 | |
|   Author:	Ceriel J.H. Jacobs
 | |
|   Version:	$Id$
 | |
| *)
 | |
| 
 | |
| 	FROM SYSTEM IMPORT ADDRESS;
 | |
| 
 | |
| 	TYPE TrapHandler = PROCEDURE(INTEGER);
 | |
| 
 | |
| 	PROCEDURE FIF(arg1, arg2: LONGREAL; VAR intres: LONGREAL) : LONGREAL;
 | |
| 	(* multiplies arg1 and arg2, and returns the integer part of the
 | |
| 	   result in "intres" and the fraction part as the function result.
 | |
| 	*)
 | |
| 
 | |
| 	PROCEDURE FEF(arg: LONGREAL; VAR exp: INTEGER) : LONGREAL;
 | |
| 	(* splits "arg" in mantissa and a base-2 exponent.
 | |
| 	   The mantissa is returned, and the exponent is left in "exp".
 | |
| 	*)
 | |
| 
 | |
| 	PROCEDURE TRP(trapno: INTEGER);
 | |
| 	(* Generate EM trap number "trapno" *)
 | |
| 
 | |
| 	PROCEDURE SIG(t: TrapHandler): TrapHandler;
 | |
| 	(* install traphandler t; return previous handler *)
 | |
| 
 | |
| 	PROCEDURE FILN(): ADDRESS;
 | |
| 	(* return current program file-name. This only works if file-name
 | |
| 	   and line-number generation is not disabled during compilation
 | |
| 	*)
 | |
| 
 | |
| 	PROCEDURE LINO(): INTEGER;
 | |
| 	(* return current program line-number. This only works if file-name
 | |
| 	   and line-number generation is not disabled during compilation
 | |
| 	*)
 | |
| END EM.
 |