[zxspectrum] Re: x Alessandro: riguardo alla ZXMMC...
From: "Alessandro" <apoppi@xxxxxxxx>
To: <zxspectrum@xxxxxxxxxxxxx>
Date: Sat, 3 Feb 2007 22:05:05 +0100
On Saturday, February 03, 2007 8:19 PM [GMT+1],
Paolo Ferraris <pieffe8@xxxxxxxxx> wrote:
Acc... allora bisogna fare qualcosa :-)
Ho una novita`. Non so se l'avevo detto qui in area, ma da quando ho
sostituito da ram da 128K con una da 512K ho dovuto inserire un wait state
su opcode fetch in ram, perche` la piu` veloce che ho trovato e` da 45ns
contro i 15 delle 128K.
E` necessario proprio soltanto su opcode fetch a 21MHz. Il motivo e` che
dovendo far spazio per il ciclo di refresh, lo Z80 campiona il databus sul
rising di T3 invece del falling, come avviene per le normali letture. A
21MHz si tratta di 23,8ns di differenza; una differenza che determina il
crash della macchina.
Quindi, la cpld sa che deve sospendere il clock allo Z80 per 1T-state ogni
volta che avviene un ciclo M1 in ram e stiamo andando a 21MHz. Ora vengo al
punto: due banchi da 16K di quella ram sono storicamente dedicati alla
funzione di "shadow_rom", perche` mi avanzavano essendo che altrettanti
banchi (il 5 ed il 7, che sono i banchi "video" nello spectrum 128K) sono
allocati nel chip a doppia porta da 32K.
La shadow_rom mi e` stata di vitale utilita` per il debug del firmware, che
uploadavo via seriale. Questo fino a quando non ho installato una flashrom
con relativo controllo di scrittura, che e` talmente comodo che ormai flasho
direttamente ogni volta che devo fare una prova (prima o poi si rompe :-)).
L'ho fatto anche stavolta, per la prova degli INI. Se avessi usato la ram,
avrei avuto 1 wait state su opcode fetch...
...ED INFATTI COSI` FUNZIONA! Facendo girare il firmware in shadow_rom, il
tuo trucco ha funzionato, confermando che 17T-states sono sufficienti. Ha
caricato i 105 frames in 4,5 secondi, pari a 23,3fps. Probabilmente non e`
andato oltre a causa del wait state stesso, ma prova che ne basta uno solo.
Ho paura che sia un problema implementarlo veramente su accesso I/O (risorse
scarse), ma cmq e` bello aver potuto toccare con mano.