Another Noise Generator
Posted: Sun Mar 08, 2015 4:36 pm
I have written a 24-bit pseudorandom noise generator for the FV-1. It is a little different than the one that Frank posted and uses fewer instructions.
It should run for over 8.5 minutes without repeating.
For a REALLY long period before repeats, you could run a pair of these number generators and then combine the outputs in an alternating stop-and-go configuration to make the noise output.
Best regards, Jack
It should run for over 8.5 minutes without repeating.
Code: Select all
; 24 bit maximal period Galois LFSR
; Example by Jack Orman
; http://www.muzique.com
; March 5, 2015
; REG 0 : LFSR NOISE REGISTER
; REG 1 : OUTPUT BIT
;
EQU LFSR REG0
EQU TEMP REG1
;
; SEED THE LFSR WITH A NON-ZERO VALUE
SKP RUN,START
SOF 0,0.666 ; JUST TO ENSURE IT IS REALLY NON-ZERO
WRAX LFSR,0
;
;
START:
LDAX LFSR ; GET LFSR REGISTER
AND 0x000001 ; GET LSB OF THE NOISE REGISTER
WRAX TEMP,0 ; SAVE BIT
RDAX LFSR,0.5 ; GET LFSR REG AND SHIFT RIGHT 1 PLACE
AND 0x7FFFFF ; CLEAR MSB
WRAX LFSR,0 ; SAVE RESULT
LDAX TEMP ; GET THE OUTPUT BIT
SKP ZRO,SHFTZRO ; IF 0 THEN JUMP
; IF LSB WAS SET THEN PROCESS
CLR ; CLEAR ACC
LDAX LFSR ; GET THE SAVED LFSR
XOR 0xD80000 ; TOGGLE THE MASK BITS
WRAX LFSR,0 ; SAVE IT
;
SHFTZRO:
LDAX LFSR
WRAX DACL,0
Best regards, Jack