rand.s 337 B

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