[zxspectrum] Z80 testbench

  • From: "Alessandro" <alessandro.poppi@xxxxxxxxxx>
  • To: <zxspectrum@xxxxxxxxxxxxx>
  • Date: Sun, 30 Nov 2008 00:31:51 +0100

Ciao a tutti. Durante lo sviluppo del Badaloc su fpga mi ero accorto che il
T80 non rispetta il timing di nessuna istruzione di I/O, che per inciso
durano 1T in meno.

Questo era particolarmente deleterio per l'accesso alla sdcard, visto che
(da una idea di Paolo Ferraris) il trasferimento si basa sul fatto che per
shiftare 8 bit occorrono 16 cicli di clock, proprio come i 16T di una
istruzione INI o OUTI. Questo porta ad una velocita' di accesso pari a
quello ottenibile da memoria a memoria.

Peccato che se il ciclo I/O dura 15T invece di 16, non funziona piu' nulla.

Ho allora contattato Mike J (mantainer del T80) che ha constatato il
problema e mi ha chiesto di mandargli un testbench dello Z80, in modo da
poter confrontare il T80 con uno Z80 reale (ha un analizzatore di stati).

Al momento ho scritto questo codice, ritengo che esegua tutte le istruzioni
*documentate* dello Z80, facendo attenzione a quelle che manderebbero in
crash il test se eseguite senza precauzioni (una su tutte i jump):
http://www.zxbada.bbk.org/BENCH_V1.00.zip

Mi ha gia' mandato una patch non ufficiale in cui gli I/O sono tornati
normali :-) ma non vorrei aver tralasciato qualcosa. Non e` che qualche
bravo programmatore di spectrum :-) gli darebbe un'occhiata?

Mi ha anche detto che se gli preparo un testbench per le istruzioni non
documentate, le implementa tutte quante. Sapete se esiste un lavoro gia'
fatto, o devo proprio cominciare?

Ciao e grazie!
Alessandro


Other related posts: