home *** CD-ROM | disk | FTP | other *** search
Modula Definition | 1993-10-23 | 5.4 KB | 97 lines |
- (************************************************************************
- * *
- * D E F I N I T I O N M O D U L *
- * *
- * Projekt : Modula Einpass Compiler (m1pc) *
- * Hauptmodul : *
- * Modul : System *
- * Beginn : 20.02.87 *
- * *
- * Bearbeitung *
- * Freigegeben <---- *
- * *
- ************************************************************************)
-
-
- DEFINITION MODULE System; (* C. Vetterli, 22-Dec-85 / 22-Dec-85 *)
-
- FROM SYSTEM IMPORT ADDRESS;
-
- (* 'System' FOR MC68000/MC68010 runtime support of Modula-2.*)
-
-
- (* System procedure numbers used by the compiler : *)
- (* These numbers must correspond with the procedure numbers *)
- (* associated with a specific procedure in the definition *)
- (* module 'System'. *)
- (*
- BodyOfSystem = 0; (* 0 is reserved for module body *)
- HALTX = 1; (* System.HALTX = HALT-statement *)
- MULU32 = 2; (* System.MULU32 = unsigned long MUL *)
- DIVU32 = 3; (* System.DIVU32 = unsig. long DIV/MOD *)
- MULS32 = 4; (* System.MULS32 = signed long MUL *)
- DIVS32 = 5; (* System.DIVS32 = signed long DIV/MOD *)
- FADDs = 6; (* System.FADDs = Floating ADD single *)
- FSUBs = 7; (* System.FSUBs = Floating SUB single *)
- FMULs = 8; (* System.FMULs = Floating MUL single *)
- FDIVs = 9; (* System.FDIVs = Floating DIV single *)
- FREMs = 10;(* System.FREMs = Floating REM single *)
- FCMPs = 11;(* System.FCMPs = Floating CMP single *)
- FNEGs = 12;(* System.FNEGs = Floating NEG single *)
- FABSs = 13;(* System.FABSs = Floating ABS single *)
- FLOATs = 14;(* System.FLOATs = FLOAT single *)
- TRUNCs = 15;(* System.TRUNCs = TRUNC single *)
- FADDd = 16;(* System.FADDd = Floating ADD double *)
- FSUBd = 17;(* System.FSUBd = Floating SUB double *)
- FMULd = 18;(* System.FMULd = Floating MUL double *)
- FDIVd = 19;(* System.FDIVd = Floating DIV double *)
- FREMd = 20;(* System.FREMd = Floating REM double *)
- FCMPd = 21;(* System.FCMPd = Floating CMP double *)
- FNEGd = 22;(* System.FNEGd = Floating NEG double *)
- FABSd = 23;(* System.FABSd = Floating ABS double *)
- FLOATd = 24;(* System.FLOATd = FLOAT double *)
- TRUNCd = 25;(* System.TRUNCd = TRUNC double *)
- FLONG = 26;(* System.FLONG = Floating single to double *)
- FSHORT = 27;(* System.FSHORT = Floating double to single *)
- *)
-
-
- TYPE HaltProc = PROCEDURE();
-
- VAR HALTX0 : HaltProc; (* use only this HALT Proc *)
-
- PROCEDURE HALTX; (* argument in register D0 ! *)
-
- PROCEDURE MULU32; (* arguments and quadword-result in regs. D0/D1 ! *)
- PROCEDURE DIVU32; (* arguments and quadword-result in regs. D0/D1 ! *)
- PROCEDURE MULS32; (* arguments and quadword-result in regs. D0/D1 ! *)
- PROCEDURE DIVS32; (* arguments and quadword-result in regs. D0/D1 ! *)
-
- PROCEDURE FADDs (adder, addend : REAL) : REAL;
- PROCEDURE FSUBs (minuend, subtrahend : REAL) : REAL;
- PROCEDURE FMULs (multiplicand, multiplier : REAL) : REAL;
- PROCEDURE FDIVs (dividend, divisor : REAL) : REAL;
- PROCEDURE FREMs (dividend, divisor : REAL) : REAL;
- PROCEDURE FCMPs (first, second : REAL); (* result in CCR *)
- PROCEDURE FNEGs (toNeg : REAL) : REAL;
- PROCEDURE FABSs (toAbs : REAL) : REAL;
- PROCEDURE FLOATs (toFloat : LONGINT) : REAL;
- PROCEDURE TRUNCs (toTrunc : REAL) : LONGINT;
-
- PROCEDURE FADDd (adder, addend : LONGREAL) : LONGREAL;
- PROCEDURE FSUBd (minuend, subtrahend : LONGREAL) : LONGREAL;
- PROCEDURE FMULd (multiplicand, multiplier : LONGREAL) : LONGREAL;
- PROCEDURE FDIVd (dividend, divisor : LONGREAL) : LONGREAL;
- PROCEDURE FREMd (dividend, divisor : LONGREAL) : LONGREAL;
- PROCEDURE FCMPd (first, second : LONGREAL); (* result in CCR *)
- PROCEDURE FNEGd (toNeg : LONGREAL) : LONGREAL;
- PROCEDURE FABSd (toAbs : LONGREAL) : LONGREAL;
- PROCEDURE FLOATd (toFloat : LONGINT) : LONGREAL;
- PROCEDURE TRUNCd (toTrunc : LONGREAL) : LONGINT;
-
- PROCEDURE FLONG (toConvert : REAL) : LONGREAL;
- PROCEDURE FSHORT (toConvert : LONGREAL) : REAL;
-
- END System.
-
-