nodeus

pseudo random 8bit number in A

Aug 3rd, 2012
95
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. ; returns pseudo random 8 bit number in A. Only affects A.
  2. ; (r_seed) is the byte from which the number is generated and MUST be
  3. ; initialised to a non zero value or this function will always return
  4. ; zero. Also r_seed must be in RAM, you can see why......
  5.  
  6. rand_8:
  7.     LD    A,(r_seed)    ; get seed
  8.     AND    #B8h        ; mask non feedback bits
  9.     SCF            ; set carry
  10.     JP    PO,no_clr    ; skip clear if odd
  11.     CCF            ; complement carry (clear it)
  12. no_clr:
  13.     LD    A,(r_seed)    ; get seed back
  14.     RLA            ; rotate carry into byte
  15.     LD    (r_seed),A    ; save back for next prn
  16.     RET            ; done
  17.  
  18. r_seed:
  19.     DB    1        ; prng seed byte (must not be zero)
Advertisement
Add Comment
Please, Sign In to add comment