home *** CD-ROM | disk | FTP | other *** search
/ CD Shareware Magazine 1996 December / CD_shareware_12-96.iso / DOS / Programa / CCDL122.ZIP / CLIBS / MATH / RAND.SRC < prev   
Encoding:
Text File  |  1996-08-08  |  601 b   |  48 lines

  1.     SECTION    data
  2. _seed:
  3.     DC.L    $45168297
  4.     SECTION    code
  5. _srand:
  6. ;
  7. ; Line 6:    {
  8. ;
  9.     MOVEM.L    A6,-(A7)
  10.     MOVE.L    A0,A6
  11. ;
  12. ; Line 7:        seed = sseed;
  13. ;
  14.     MOVE.L    (A6),(_seed,A5)
  15. ;
  16. ; Line 8:    }
  17. ;
  18.     MOVEM.L    (A7)+,A6
  19.     RTS
  20. _rand:
  21. ;
  22. ; Line 10:    {
  23. ;
  24.     MOVEM.L    A2,-(A7)
  25.     LEA    (_seed,A5),A2
  26. ;
  27. ; Line 11:        seed = seed * 0x15a4e35 + 1;
  28. ;
  29.     PEA    $15A4E35
  30.     MOVE.L    (A2),-(A7)
  31.     BSR    _mulu
  32.     ADDQ.W    #$8,A7
  33.     MOVE.L    D0,D0
  34.     ADDQ.L    #$1,D0
  35.     MOVE.L    D0,(A2)
  36. ;
  37. ; Line 12:        return(seed >> 16);
  38. ;
  39.     MOVE.L    (A2),D0
  40.     LSR.L    #$8,D0
  41.     LSR.L    #$8,D0
  42. L_0:
  43.     MOVEM.L    (A7)+,A2
  44.     RTS
  45.     XREF    _mulu
  46.     XDEF    _srand
  47.     XDEF    _rand
  48.