linear feedback shift registerby david (no login)Qbasic is not very good with bit-wise operations so the implementation is a bit messy. It produces a pseudo-random byte (0-255). seed1 = 123 seed2 = 146 10 tap1 = (seed2 AND 128) \ 128 tap2 = (seed2 AND 32) \ 32 tap3 = (seed2 AND 16) \ 16 tap4 = (seed2 AND 4) \ 4 i1 = tap1 XOR tap2 i2 = i1 XOR tap3 i3 = i2 XOR tap4 j1 = (seed1 AND 128) \ 128 seed1 = (seed1 AND 127) * 2 seed1 = seed1 + i3 seed2 = (seed2 AND 127) * 2 seed2 = seed2 + j1 m = m + 1 IF m MOD 9 <> 0 THEN 10 PRINT seed1; x$ = INKEY$ IF x$ = CHR$(27) THEN END GOTO 10 |
| Response Title | Author and Date |
| *period is 21845 | lawgin on Dec 8 |