           CSECT  text
           XDEF   _rnd

_rnd       lea     rndseed,a0
           move.l  4(sp),d1
           tst.l   d1
           ble.s   setseed

           move.l  (a0),d0
           add.l   d0,d0
           bhi.s   over
           eori.l  #$1d872b41,d0
over
           move.l  d0,(a0)
           andi.l  #$ffff,d0
           andi.l  #$ffff,d1
           divu    d1,d0
           swap    d0
           ext.l   d0
           rts

setseed    neg.l   d1
           move.l  d1,(a0)
           rts

           CSECT   data

rndseed    dc.l    0           

           END

