home *** CD-ROM | disk | FTP | other *** search
/ Amiga ISO Collection / AmigaUtilCD2.iso / Programming / Misc / OB3.2D2.DMS / in.adf / Module / Random.mod < prev    next >
Encoding:
Text File  |  1994-08-05  |  984 b   |  35 lines

  1. (*-------------------------------------------------------------------------*)
  2. (*                                                                         *)
  3. (*  Amiga Oberon Library Module: Random               Date: 02-Nov-92      *)
  4. (*                                                                         *)
  5. (*   © 1991 by Fridtjof Siebert                                            *)
  6. (*                                                                         *)
  7. (*-------------------------------------------------------------------------*)
  8.  
  9. MODULE Random;
  10.  
  11. IMPORT sys := SYSTEM, I := Intuition;
  12.  
  13. VAR i: LONGINT;
  14.     j: LONGINT;
  15.  
  16. PROCEDURE RND*(n: INTEGER): INTEGER;
  17. BEGIN
  18.   (* $OvflChk- $RangeChk- *)
  19.   INC(j,9699689);
  20.   i := sys.ROT(i,13) * 223092871 + j;
  21.   RETURN sys.VAL(INTEGER,sys.VAL(SET,SHORT(i))-{15}) MOD n;
  22.   (* $OvflChk= $RangeChk= *)
  23. END RND;
  24.  
  25. PROCEDURE PutSeed*(seed: LONGINT);
  26. BEGIN
  27.   i := seed;
  28.   j := seed;
  29. END PutSeed;
  30.  
  31. BEGIN
  32.   I.CurrentTime(i,j);
  33. END Random.
  34.  
  35.