[zxspectrum] Re: Interface 1, OPUS e hook code

  • From: "Andrea Vavassori" <andrea@xxxxxxxxxxxx>
  • To: "zxspectrum@xxxxxxxxxxxxx" <zxspectrum@xxxxxxxxxxxxx>
  • Date: Thu, 26 Aug 2004 13:00:13 +0200

On Wed, 25 Aug 2004 10:45:03 +0200, BODRATO Stefano wrote:

>- 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.

Una delle poche cose che la Sinclair aveva voluto fare, era proprio il
mettere a disposizione solo la descrizione delle funzioni del BIOS
della IF1 e raccomandare di usare solo quelle per la stesura dei
programmi. E, francamente, non vedo cosa altro avrebbero potuto
pretendere, se non fare numeri "strani" con protezioni o simili...

>A volte, come nel potente "Trans-Xpress" di Romantic Robot, il codice 
>funzionava solo con una particolare versione di ROM dell'IF1.

Ed e' una cosa completamente inutile, in quanto tutto quello che fa e'
fattibile con i soli hook code.

>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' ?)

Hm, secondo me non ce n'erano piu' di 2, fai un CLOSE#0: PRINT PEEK
23729 e vedi che valore ti da...

>- 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.

In realta' l' OPUS e' MOLTO piu' bello del microdrive, in quanto gli
hook codes vengono usati solo per fare il parsing delle linee basic,
per le chiamate al BIOS ci sono le lookup tables che si possono
interrogare e memorizzare per adattare automaticamente il codice a
qualsiasi versione di ROM sia presente.

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

E nella QuickDOS ne sono stati aggiunti molti altri conservando pero'
la compatibilita' verso il basso.

>- 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ì) ?

Ci si crea una jump-table in RAM creata con le apposite chiamate di
enquiry e si lavora con quella.

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

E c'e' da decidere, per la IF1, se vuoi creare una libreria di hook
codes da soli o se vuoi anche mettere tutte le entry sensate per
entrambe le versioni della ROM, anche se mi sembra un lavoro immane...

Ciao!

 /\
/--\ndrea

(C) 1982 Sinclair Research Ltd
homepage http://andrea.modelberg.it






Other related posts: