SQUAREPUSHER
; SQUAREPUSHER
; 95 UNINTERESTING BYTES OF ALIASED RANDOMNESS FOR THE COMMODORE C=64
; CODE: WERTSTAHL / G*P (7/2012)
; INSTALLER/AUTOLOADER method borrowed from STREETUFF´s "AETHERWAVES"
; INSPIRED BY ALL THE TINY MAD GLITCHERS OUT THERE
; !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
; IMPORTANT NOTE: PRESS SOME KEYS (PREFERRABLY SPACE) TO STIR THE SHIT UP OR FAST FORWARD
; THIS NEEDS SOME SECONDS TO SYNC. IT HAS NO ENDING.
; !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
; SID MODEL RECOMMENDED: 8580R5 3691 + digi boost
; YES, STILL I AM HOOKED UP WITH THE COLOR RAM BUS NOISE.
; IF THIS IS NOT PROCEDURAL ENOUGH FOR YOU, PLEASE EXPAND YOUR SHORT TERM MEMORY.
; SYNTAX: CBM PRG STUDIO
*=$0326
word getin
word $f6ed
getin rol $d018 ;flush screen
sty $d020 ;black border
loop lda $02
eor #$ff ;alternate amplitude
sta $02
ww0 inc $d011 ;pouet
sta $d418 ;set amplitude
dey ;wait last d012 times
bne ww0
iny ;surpress further y operation
dec $d011 ;pouet
dec $04 ;wait random seq byte times
bne ww0 ;max wait time is $1ff. that * all the instructions = wavelenght
sync cmp $d012
bne linear ;this makes it a bit more digital-ish
ldx #$ee ;loadx inc
rdout lda $d9ab ;loada busnoise
choice and #$f0 ;hi or lo state?
cswitch bne setupd ;<-- branch command is randomized
ldx #$ce ;in some cases load dec
setupd stx upd ;update counter advance command
inc rdout+1 ;change bus read position
upd dec waitinc+1 ;modify waitbyte (base freq) in an unknown way
linear ldx $d012 ;d012 in x
txa
ora #$01 ;better dont be 0
asl ;shift this up
asl ;
asl ;
asl ;
sta cswitch ;and write branch command
waitinc lda #$80 ;random waitbyte
sta $04 ;to waitbyte container
eor $02 ;invert (or maybe not)
sta $d400,x ;mess up some sound register randomly
tax
lda $0200,x ;waitbyte multiplicator (sequenced by d012)
sta $d400,x ;mess up some sound register randomly (doppelt haelt besser)
lsr ;make sure the waiting times are
lsr ;a bit more aliased
tay
jmp loop
; for curious people:
; adding one or removing one or both of the LSR´s (in line 60 and 61) will give you some nice variations
; also, moving the TAX from line 57 to line 55 (before the EOR) will change everything strongly[ back to the prod ]
