[zxspectrum] Re: domandone tecnicone

  • From: "Andrea Vavassori" <andrea@xxxxxxxxxxxx>
  • To: "zxspectrum@xxxxxxxxxxxxx" <zxspectrum@xxxxxxxxxxxxx>
  • Date: Thu, 02 Feb 2006 14:38:54 +0100

On Thu, 2 Feb 2006 14:16:26 +0100, Alfonso Martone wrote:

>Visto che gli hardwaristi in questi giorni abbondano, ne approfitto  
>per chiedere una consulenza tecnica gratuita...

Ueh, non offendiamo, gli hardwaristi sono SEMPRE abbondati. Io e Mario,
in particolare, abbondiamo assai... :-)

>Lo Spectrum ha un solo interrupt (ogni cinquantesimo di secondo  
>succede qualcosa come "RST $38") e tutto il resto è fatto "a  
>polling" (ZX Printer, la stessa tastiera -sia pure nella RST $38-, etc).
>
>Ma sarebbe possibile usare altre fonti di interrupt senza usare un  
>8255 o robe del genere? (per esempio un RST $30 ogni volta che una la  
>scheda di rete riceve un pacchetto, oltre al canonico RST $38 quando  
>è finito il frame video).

Quello che tu descrivi e' l' IM0: il dispositivo che richiede l'
interrupt mette sul bus dei dati (che lo Z80 ha messo ad alta impedenza
in risposta all' interrupt) un valore, che lo Z80 legge come
istruzione. Evidentemente questa istruzione deve essere uno "RST n". Il
problema e' che nello Spectrum tutti i restart sono impegnati per fare
altre cose, quindi questo modo di funzionamento non puo' essere messo
in pratica. Si puo' solo usare l' IM2, dove il dispositivo fornisce i
bit A0-A7, e il registro I i bit A8-A15, di una locazione di memoria in
cui c'e' una word che viene caricata nel Program Counter.

Comunque, una cosa in comune a tutte queste modalita' consiste nel
fatto che la periferica che ha chiesto l' interrupt ha SEMPRE MESSO un
valore sul bus dei dati. NON PUOI prescindere da questa operazione,
salvo di usare il normale IM1 che provoca il salto a 0038H, tornando
cosi' allo Spectrum standard :-)

>Nel '90 scrissi un driverino per far usare quattro seriali veloci ad  
>un 286, usando solo i due canonici IRQ4/IRQ3 (la routine che  
>rispondeva all'interrupt doveva vedere a chi era figlio prima di  
>procedere).

Quindi tu, ad interrupt, andavi a fare un polling delle perideriche?

Ciao!

 /\
/--\ndrea

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





Other related posts: