home *** CD-ROM | disk | FTP | other *** search
/ C!T ROM 5 / ctrom5b.zip / ctrom5b / PROGRAM / ASM / ALIB30B / RANDOM7.ASM < prev    next >
Assembly Source File  |  1994-12-05  |  963b  |  43 lines

  1.     page    66,132
  2. ;******************************* RANDOM7.ASM *********************************
  3.  
  4. LIBSEG           segment byte public "LIB"
  5.         assume cs:LIBSEG , ds:nothing
  6.  
  7. ;----------------------------------------------------------------------------
  8. .xlist
  9.     include  mac.inc
  10.     include  common.inc
  11. .list
  12. comment 
  13. ;- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -( RANDOM  )
  14. RANDOM_WORD5 - generate random word value, method 5
  15. ;  inputs:  none
  16. ;  output:  ax = random value
  17. ;         
  18. * * * * * * * * * * * * * *
  19. 
  20.  
  21.     public    RANDOM_WORD5
  22. RANDOM_WORD5    proc    far
  23.     push    dx
  24.     mov    ax,r_seed[bp]
  25.     mul    r_multipler[bp]
  26.     add    ax,r_increment[bp]
  27.     adc    dx,0
  28.     div    r_permute1[bp]
  29.     xchg    ax,dx
  30.     mov    r_seed[bp],ax
  31.     pop    dx
  32.     retf
  33. RANDOM_WORD5    endp
  34.  
  35.  
  36. r_seed        dw    0        ; random number seed
  37. r_permute1    dw    0FFEFh        ;  modulus    2^16-17
  38. r_multipler    dw    0FFD9h        ;  multiplier    2^16-39
  39. r_increment    dw    0FFFFh        ;  increment    -1
  40.  
  41. LIBSEG    ENDS
  42. ;;    end
  43.