home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 10 Tools / 10-Tools.zip / modu1096.zip / GPMsym / safe.def < prev    next >
Text File  |  1996-09-03  |  3KB  |  98 lines

  1. (****************************************************************)
  2. (*                                                              *)
  3. (*         Gardens Point Modula-2 Library Definition            *)
  4. (*                                                              *)
  5. (*                                                              *)
  6. (*     (c) Copyright 1996 Faculty of Information Technology     *)
  7. (*              Queensland University of Technology             *)
  8. (*                                                              *)
  9. (*     Permission is granted to use, copy and change this       *)
  10. (*     program as long as the copyright message is left intact  *)
  11. (*                                                              *)
  12. (****************************************************************)
  13.  
  14. (* ============================================================ *
  15.  *         Safe arithmetic operations 
  16.  *
  17.  * In all cases, the semantics are as follows
  18.  *  -- return the correct result, or fail=TRUE
  19.  *
  20.  *     original module: kjg June 1994 
  21.  * ============================================================ *)
  22.  
  23. (* !LIBRARY! *) DEFINITION MODULE Safe;
  24.  
  25.   PROCEDURE AbsInt(lSrc      : INTEGER; 
  26.             VAR dst  : INTEGER; 
  27.             VAR fail : BOOLEAN);
  28.  
  29.   PROCEDURE NegInt(lSrc      : INTEGER; 
  30.             VAR dst  : INTEGER; 
  31.             VAR fail : BOOLEAN);
  32.  
  33.   PROCEDURE AddInt(lSrc,rSrc : INTEGER; 
  34.             VAR dst  : INTEGER; 
  35.             VAR fail : BOOLEAN);
  36.  
  37.   PROCEDURE AddCrd(lSrc,rSrc : CARDINAL; 
  38.             VAR dst  : CARDINAL; 
  39.             VAR fail : BOOLEAN);
  40.  
  41.   PROCEDURE SubInt(lSrc,rSrc : INTEGER; 
  42.             VAR dst  : INTEGER; 
  43.             VAR fail : BOOLEAN);
  44.  
  45.   PROCEDURE SubCrd(lSrc,rSrc : CARDINAL; 
  46.             VAR dst  : CARDINAL; 
  47.             VAR fail : BOOLEAN);
  48.  
  49.   PROCEDURE DivInt(lSrc,rSrc : INTEGER;  (* Modula2 DIV *)
  50.             VAR dst  : INTEGER;  (* 2 quadrants *)
  51.             VAR fail : BOOLEAN);
  52.  
  53.   PROCEDURE DivInt4Q(lop,rop : INTEGER;  (* Modula3 DIV *)
  54.             VAR dst  : INTEGER;  (* 4 quadrants *)
  55.             VAR fail : BOOLEAN);
  56.  
  57.   PROCEDURE DivCrd(lSrc,rSrc : CARDINAL; 
  58.             VAR dst  : CARDINAL; 
  59.             VAR fail : BOOLEAN);
  60.  
  61.   PROCEDURE SlashI(lSrc,rSrc : INTEGER; 
  62.             VAR dst  : INTEGER; 
  63.             VAR fail : BOOLEAN);
  64.  
  65.   PROCEDURE SlashC(lSrc,rSrc : CARDINAL; 
  66.             VAR dst  : CARDINAL; 
  67.             VAR fail : BOOLEAN);
  68.  
  69.   PROCEDURE ModInt(lSrc,rSrc : INTEGER;  (* Modula2 MOD *)
  70.             VAR dst  : INTEGER;  (* 2 quadrants *)
  71.             VAR fail : BOOLEAN);
  72.  
  73.   PROCEDURE ModInt4Q(lop,rop : INTEGER;  (* Modula3 MOD *)
  74.             VAR dst  : INTEGER;  (* 4 quadrants *)
  75.             VAR fail : BOOLEAN);
  76.  
  77.   PROCEDURE ModCrd(lSrc,rSrc : CARDINAL; 
  78.             VAR dst  : CARDINAL; 
  79.             VAR fail : BOOLEAN);
  80.  
  81.   PROCEDURE RemInt(lSrc,rSrc : INTEGER; 
  82.             VAR dst  : INTEGER; 
  83.             VAR fail : BOOLEAN);
  84.  
  85.   PROCEDURE RemCrd(lSrc,rSrc : CARDINAL; 
  86.             VAR dst  : CARDINAL; 
  87.             VAR fail : BOOLEAN);
  88.  
  89.   PROCEDURE MulInt(lSrc,rSrc : INTEGER; 
  90.             VAR dst  : INTEGER; 
  91.             VAR fail : BOOLEAN);
  92.  
  93.   PROCEDURE MulCrd(lSrc,rSrc : CARDINAL; 
  94.             VAR dst  : CARDINAL; 
  95.             VAR fail : BOOLEAN);
  96.  
  97. END Safe.
  98.