[zxspectrum] ZX Spectrum 48K per Chameleon64 e fix alla CPU T80

  • From: Alessandro Dorigatti <adorigatti@xxxxxxxxx>
  • To: zxspectrum@xxxxxxxxxxxxx
  • Date: Sun, 15 Jan 2012 11:29:03 +0100

Ciao a tutti!
E' un po' che non mi faccio sentire in lista.

Volevo aggiornarvi sulle ultime novità: la più importante è il fatto che
ho portato il core sviluppato per la V6Z80p di Phil Ruston sulla
cartuccia Chameleon64 (praticamente il successore del C-One).

Per chi non conoscesse Chameleon64:
http://www.syntiac.com/chameleon.html

Questa nuova versione del core supporta ResiDOS (emulando la ZXMMC+ di
Alessandro Poppi) e al momento utilizza il tastierino numerico delle
tastiere PS/2 per emulare un joystick Kempston.

Dato che la cartuccia non monta uno Z80 reale, ho dovuto utilizzare la
CPU T80 (un emulatore Z80 scritto in VHDL); questo ovviamente ha
riportato a galla tutti i problemi con i software di test che avevamo
discusso tempo addietro in lista (es. Fusetest instabile, BTime che
flickera selvaggiamente, Ulatest3 che si pianta.. ecc.); giusto per
ricordare a cosa mi sto riferendo:
//www.freelists.org/post/zxspectrum/Test-funzionamento-cloni-FPGA

A questo punto mi sono messo di impegno a capire cosa non stava
funzionando nel T80.. e ho scoperto che... la sequenza di risposta ad un
IM2 durava 21 T-States invece dei 19 previsti!! Dunque ho corretto il
comportamento e ora ottengo risultati decisamente migliori, ovvero:

-BTime si comporta in modo ineccepibile
-FuseTest è stabile, anche se mi da errore su alcuni test su istruzioni
specifiche, ma Frame length è corretto come anche contention e floating
bus
-Ulatest3 è perfetto
-FloatSpy è perfetto

Direi quindi che la situazione è migliorata notevolmente rispetto a
quanto avevamo discusso tempo fa!

Un test che invece fallisce (e mi piacerebbe capire perchè) è
IR-Contention che traccia barre colorate sul bordo superiore e inferiore
del video sfruttando, credo, le porte contese con indirizzo tra 0x4000 e
0x7FFF.. lo dico perchè il test genera anche Snow Effect.. sospetto
timing errato in qualche istruzione, ma non so esattamente da dove
partire.. magari Luca Bisti mi sa dare qualche dritta per circoscrivere
il problema? :-)
(il link al test incriminato è questo:
http://homepage.ntlworld.com/mark.woodmass/IR_Contention.tap)

Attualmente ho inviato anche ad Alessandro Poppi le modifiche al T80,
sperando possa giovare in qualche modo anche al Badaloc, a Chris Smith
(che sta preparando qualcosa di veramente interessante per il
trentennale!! Date un'occhiata qui:
http://www.worldofspectrum.org/forums/showpost.php?p=591864&postcount=13) e a 
MikeJ (co-autore del T80) per inserire il fix nella versione ufficiale (previa 
sua verifica ovviamente).

A presto, e grazie in anticipo a chiunque mi voglia dare una mano!

Alessandro


Other related posts: