[zxspectrum] Re: studio ULA
- From: Luca Bisti <lucbisti@xxxxxx>
- To: zxspectrum@xxxxxxxxxxxxx
- Date: Sat, 29 Jul 2006 16:05:14 +0200
Ho iniziato a leggermi il tuo documento, sono molto interessato ai
numeri che contiene perche' tendo a fidarmi molto della CPLD :)
Anche noi abbiamo preparato a suo tempo varie routines per testare
ogni genere di contesa ad istanti arbitrari, li ricerco e li rendo
disponibili. Nel frattempo ti sottopongo un documentino interno che
scrivemmo nel 1999 con i risultati sperimentali dei nostri studi
sulla ULA del 128K. Costruimmo allo scopo un circuitino che contava i
clock della ULA (non dello Z80) a partire dalla discesa di INT fino
ad al verificarsi di un dato evento di trigger. Rispetto al tuo
studio, i numeri si riferiscono quindi al 128K e soprattutto non
siamo sicurissimi dell'affidabilita' del circuitino usato da noi
(sebbene i valori prodotti fossero stabilmente riproducibili), motivo
per cui non e' mai stato pubblicato in perenne attesa di attenta
revisione e verifica col senno di poi.
http://www.ramsoft.bbk.org/ulasecrets.html
Oltre a stabilire gli istanti esatti di contesa, sui quali ormai c'e'
abbondanza di esperienza (almeno da parte nostra), un esperimento che
ci piacerebbe tantissimo veder ripetuto con il tuo equipaggiamento e'
il seguente: contare il numero di TSTATES dal fronte di discesa di
INT fino alla comparsa sullo schermo del primo puntino dell'area
pixel. Mi spiego meglio: come leggerai nel nostro documento, in una
delle nostre prove usammo come evento di stop del conteggio il canale
del colore rosso prodotto dalla ULA nella seguente situazione:
BORDER 0: PAPER 0: INK 7: BRIGHT 1: CLS
PLOT 0,175
Cito il pezzetto rilevante dei nostri appunti:
"the first screen pixel (the one that you set with PLOT 0,175) is
written to the CRT 14371T (71855 ULA clocks) after the /ULAINT
signal, that is about 7T later than you would normally expect
(63x228=14364); consequently, the electron beam is switched off 7T
(14 pixels) before the start of the 57th line of the bottom border as
it appears on the TV. Evidence of this fact can be observed at the
bottom of the following screen capture"
Purtroppo non ho piu' l'immagine acquisita dallo Spectrum 128K con
una banale scheda di acquisizione, ma si vedeva benissimo che
l'ultima riga del bordo inferiore era sganciata 14 pixel prima di
raggiungere la fine della scanline per la ritraccia orizzontale.
Magari sarebbe una buona idea che riprendessi uno screenshot del
genere per usi futuri :)
Questo delay di 7T tra l'inizio "logico" della prima riga di pixel
del quadro dello Spectrum 128K e l'effettivo istante in cui viene
acceso il primo pixel e' fondamentale per gli emulatori. Ci
piacerebbe avere una conferma di questo nostro risultato utilizzando
la tua attrezzatura. Ovviamente tenendo presente che tu lavori sul
48K mentre i nostri numeri si riferiscono al 128K. Non e' che hai
anche un 128K a portata di mano? :)
Altri commenti molto presto!
Luca
Other related posts: