нашел еще парочку интересных псевдо рандомайзеров
Код:; 16-bit xorshift pseudorandom number generator ; returns hl = pseudorandom number ; corrupts a ; http://www.retroprogramming.com/2017/07/xorshift-pseudorandom-numbers-in-z80.html?m=1 Random: lxi h, 1 ; seed must not be 0 mov a,h rar mov a,l rar xra h mov h,a mov a,l rar mov a,h rar xra l mov l,a xra h mov h,a shld Random+1 ; 116 retКод:; Fast RND ; ; An 8-bit pseudo-random number generator, ; using a similar method to the Spectrum ROM, ; - without the overhead of the Spectrum ROM. ; ; R = random number seed ; an integer in the range [1, 256] ; ; R -> (33*R) mod 257 ; ; S = R - 1 ; an 8-bit unsigned integer. 256 period ; http://www.z80.info/pseudo-random.txt Random: mvi a, 34 mov l, a rrc rrc rrc xri $1f add l sbi 255 sta Random+1 ; 64 retКод:; returns pseudo random 8 bit number in A. Only affects A. ; By Lee Davison. 256 period ; https://philpem.me.uk/leeedavison/z80/prng/index.html Random: mvi a, 1 ; get seed. must not be zero ani $B8 ; mask non feedback bits stc ; set carry jpo no_clr ; skip clear if odd cmc ; complement carry (clear it) no_clr: lda Random+1 ; get seed back ral ; rotate carry into byte sta Random+1 ; save back for next prn ; 72 ret


Ответить с цитированием


Размещение рекламы на форуме способствует его дальнейшему развитию 
