[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.

Ciao!


Other related posts: