home *** CD-ROM | disk | FTP | other *** search
/ AmigActive 4 / AACD04.ISO / AACD / Programming / powerd / lib / PowerD / Rnd.ass < prev    next >
Encoding:
Text File  |  1999-09-29  |  368 b   |  31 lines

  1. ; (4,a7) - top/seed
  2.  
  3.     xdef    _Rnd
  4.  
  5. _Rnd    move.l    (4,a7),d2
  6.     blt.s    .set
  7.     move.w    d2,d1
  8.     subq.w    #1,d1
  9.     move.l    (.rnd,pc),d0
  10. .2    add.l    d0,d0
  11.     bhi.s    .3
  12.     eori.l    #$1d872b41,d0
  13. .3    lsr.w    #$1,d1
  14.     bne.s    .2
  15.     lea    (.rnd,pc),a0
  16.     move.l    d0,(a0)
  17.     tst.w    d2
  18.     bne.s    .4
  19.     swap    d0
  20.     bra.s    .5
  21. .4    mulu    d2,d0
  22. .5    clr.w    d0
  23.     swap    d0
  24.     rts
  25. .set    neg.l    d2
  26.     lea    (.rnd,pc),a0
  27.     move.l    d2,(a0)
  28.     rts
  29.  
  30. .rnd    dc.l    0
  31.