[zxspectrum] Interface 1, OPUS e hook code

  • From: "BODRATO Stefano" <Stefano.Bodrato@xxxxxxxxxxxxxxxx>
  • To: <zxspectrum@xxxxxxxxxxxxx>
  • Date: Wed, 25 Aug 2004 10:45:03 +0200

Ciao a tutti.
Studiando il modo di costruire le librerie FCNTL di Z88DK per OPUS e 
Microdrive, ho cominciato a raccogliere documentazione in giro, scoprendo varie 
cosucce interessanti, anche se probabilmente già note a molti da tempo:

- Gli hook-code non sono praticamente mai stati usati
si preferiva piuttosto creare un "comando esteso", che, essendo attivato con la 
ROM dell'Interface 1 già paginata, chiamava direttamente le routine con una 
CALL; spesso a cappello c'era un programma di auto-diagnostica che puntava a 
jump table diverse a seconda della versione di ROM riscontrata.
A volte, come nel potente "Trans-Xpress" di Romantic Robot, il codice 
funzionava solo con una particolare versione di ROM dell'IF1.
Molto spesso nei tool erano presenti solo 2 di queste tabelle anche se secondo 
"Master You ZX Microdrive" esistevano 3 versioni di ROM...  (Erano di piu' ?)

- Tra la seconda e la terza versione delle Shadow ROM dell'Interface 1 c'è uno 
shift di soli 2 byte !!!   ..sic.. assassini..

- OPUS Discovery NON era compatibile con i microdrive a livello di HOOK Code, 
anche se supportava lo stesso meccanismo; tuttavia la tabella di corrispondenza 
codice/indirizzo veniva copiata nella RAM di OPUS, quindi e' probabilmente 
possibile migliorare la compatibilità via software.

- Nella prima versione della ROM mancavano 4 hook code aggiunti poi in seguito, 
comunque non vitali.

- Anche senza avere la memoria paginata è possibile chiamare le funzioni della 
Shadow ROM tramite un HOOK code sull'IF1, ma non su OPUS (chissà se in qualche 
modo si può fare anche lì) ?


In conclusione, non ha senso scrivere una libreria unica per Microdrive e OPUS, 
dato che le somiglianze si fermano all'alto livello.


Other related posts: