Stavo esaminando una routine sonora in un gioco e mi sono reso conto che di SID non ne capisco praticamente un acca.
Ho provato a fare un generatore di rumori "videogiocosi" e quasi buttando valori a caso ho ottenuto questo:
;noise generator 1
;ian coog 18/05/06
* = $0801
word eop
word 7102
byte $9e
byte [eop]d
byte 0
eop
LDA #$00
STA $D407
STA $D408
STA $D40C
LDA #$A0
STA $D40D
LDA #$08
STA $D40B
LDA #$11
STA $D40B
LDA #$0F
STA $D418 ; volume al max
lp
LDA $D012 ; pos raster attuale
STA $D408 ; frequenza (hi) voce2
jsr $ffe4
cmp #"+"
beq incr
cmp #"-"
beq decr
def
ldx #$0f
lp2
jsr $eeb3; attesa di 1ms
dex
bne lp2
JMP lp
incr
inc def+1
jmp def
decr
dec def+1
jmp def
La frequenza cambia con la pos attuale del raster, ma il ritardo consente di prendere valori non del sempre consecutivi. Con i tasti +/- si cambia il ritardo.
Prg compilato