Autore Topic: Programmazione Base Del Sid  (Letto 2884 volte)

Fabrizio

  • Neo-iscritto
  • *
  • Post: 35
Programmazione Base Del Sid
« il: 02 Settembre 2005, 20:01:16 »
 Ciao ragazzi, sono nuovamente qui a chiedere una vostra indicazione...spero non mi maledirete... :P Sono alle prese con i miei esperimentucoli di programmazione assembly e in questo momento sto provando un pò di programmazione a livello base del SID, al momento ho scritto una semplicissima melodia con una sola voce (che per ora non usa nemmeno le interruzioni del timer per la temporizzazione) che però mi lascia un pò perplesso: mi sembra di notare un certo ritardo tra il primo settaggio del suono e la sua riproduzione (questo in Vice v.1.6, in CCS non si presenta il problema), non so se questa è una caratteristica dell'emulazione del sintetizzatore sotto Vice oppure se sto sbagliando qualcosa, ho provato a leggere un pò di documentazione ma non si fa accenno a questo fenomeno... Il codice che sto utilizzando è riportato sotto... si nota il ritardo tra la stampa del carattere e l'inizio della melodia... secondo voi è qualcosa legato all'emulatore o sono io che sbaglio nella programmazione? Vi ringrazio ancora una volta per la disponibilità. Ciao! Fabrizio.

Codice: [Seleziona]
fl = $d400 ; freq low
fh = $d401 ; freq hi
vol = $d418 ; volume
ad = $d405 ; attack-decay
sr = $d406 ; sustain-release
wave = $d404 ; forma onda


* = $c000

sei ; disabilto interruzioni

lda #$0f; volume a 15 (max)
sta vol
lda #$00; attack-decay (2ms, 6ms)
sta ad ; vale per tutto il brano  
lda #$98; sustain-release (0.25s e 0.30s)
sta sr
    
ldy #$00

lda #113
jsr $ffd2; segnala a video la partenza

play lda music,y; carica nota
sta fh
iny
lda music,y
sta fl

lda #17 ; forma d'onda triangolo
sta wave
iny

ldx #$ff
pausa lda music,y; ritardo
pausa_ nop
sbc #$01
bne pausa_
dex
bne pausa
  
iny
cpy #$8d; prosegui
bne play

lda #16 ; forma d'onda reset
sta wave

cli

rts


music .byte 13,10,240, 14,162,60, 17,103,60, 16,109,60, 14,162,60, 19,137,120, 19,137,60
.byte 19,137,60, 21,237,60, 16,109,60, 17,103,60, 14,162,120, 14,162,120, 14,162,60
.byte 17,103,60, 16,109,60, 14,162,60, 13,10,60, 26,20,60, 24,157,60, 21,237,60
.byte 19,137,60, 17,103,60, 16,109,60, 14,162,60, 13,10,240, 14,162,60, 17,103,60
.byte 16,109,60, 14,162,60, 19,137,120, 19,137,120, 19,137,60, 21,237,60, 16,109,60
.byte 17,103,60, 14,162,120, 14,162,120, 14,162,60, 17,103,60, 16,109,60, 14,162,60
.byte 13,10,60, 19,137,60, 14,162,60, 16,109,60, 13,10,240

iAN CooG

  • Utente
  • **
  • Post: 1774
    • http://iancoog.altervista.org
  • Gioco Preferito: Turbo Assembler, ActionReplay Monitor, DiskDemon
Programmazione Base Del Sid
« Risposta #1 il: 03 Settembre 2005, 13:58:53 »
 Settings/Sound settings/sound buffer size=100ms
Settings/SID settings/SID engine=reSID + Sid filters
-=[]=--- iAN CooG/HVSC^C64Intros ---=[]=-
- http://hvsc.c64.org - http://intros.c64.org -

Fabrizio

  • Neo-iscritto
  • *
  • Post: 35
Programmazione Base Del Sid
« Risposta #2 il: 03 Settembre 2005, 19:34:37 »
 Thanks!  :)