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