rand.s 349 B

1234567891011121314151617181920212223242526
  1. .data
  2. .xdef rand,__randseed
  3. .even
  4. rand:
  5. lea __randseed(%pc),%a0
  6. move.l #0x41C64E6D,%d2
  7. move.l (%a0),%d1
  8. move.l %d2,%d0
  9. mulu %d1,%d0
  10. swap %d2
  11. mulu %d1,%d2
  12. swap %d1
  13. mulu #0x4E6D,%d1
  14. add.w %d1,%d2
  15. swap %d2
  16. clr.w %d2
  17. add.l %d2,%d0
  18. add.l #12345,%d0
  19. move.l %d0,(%a0)
  20. lsr.l #8,%d0
  21. and.w #32767,%d0
  22. rts
  23. .data
  24. .even
  25. __randseed:
  26. .long 1