Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- 'Shift Register Simulator: Noise Generator with sound output
- '(c)2021, @_sorceress
- DEFLNG A-Z
- DIM y AS SINGLE
- 'bitmasks for each tap
- DIM SHARED Q(8): Q(1) = 1: FOR i = 2 TO 8: Q(i) = 2 * Q(i - 1): NEXT
- SR1 = 1 'pre-load the first register
- SampleRate = _SNDRATE 'generator frequency determined by soundcard
- DO
- FOR i = 1 TO SampleRate
- 'select an output tap
- y = Tap(SR3, 8)
- 'output to soundcard * volume
- _SNDRAW y * 0.125
- 'wiring the registers together
- SR1Data = Tap(SR3, 2) XOR Tap(SR3, 7) 'feedback
- SR2Data = Tap(SR1, 8) 'chaining SR1 and SR2
- SR3Data = Tap(SR2, 8) 'chaining SR2 and SR3
- 'clock
- SR1 = (SR1 AND 127%) * 2 + SR1Data
- SR2 = (SR2 AND 127%) * 2 + SR2Data
- SR3 = (SR3 AND 127%) * 2 + SR3Data
- NEXT
- _LIMIT 1
- LOOP UNTIL INKEY$ = CHR$(27) 'escape key halts the program
- END
- FUNCTION Tap (SR%, bit%)
- Tap = SGN(SR% AND Q(bit%))
- END FUNCTION
Advertisement
Add Comment
Please, Sign In to add comment