beh, visto che la sorgente di interrupt e' un solo pin se non vuoi usare
il polling ti tocca usare l'IM2 dove il dispositivo che genera la
richiesta pone sul bus dati la parte meno significativa di un vettore
nel quale e' situato l'indirizzo a 16 bit verso il quale lo z80 deve
saltare. In questa maniera hai la possibita' di gestire 128 dispositivi
ognuno col la sua routine di gestione. Sullo spectrum quando e' la ula a
inviare la richiesta, il bus resta a $FF per via delle resistenze di
pullup. per gestire altri dispositivi ti serve comunque dell'hardware
aggiuntivo che ponga sul bus dati il vettore quando lo z80 riconosce l'int.
ciao
Alfonso Martone wrote:
Visto che gli hardwaristi in questi giorni abbondano, ne approfitto per chiedere una consulenza tecnica gratuita...
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).
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). Mi chiedo se sullo Spectrum si possa fare altrettanto... oppure se sia necessario fare tutto "a polling" (controllare continuamente tutte le periferiche per vedere chi è che va servito al momento).
alf
-- Email.it, the professional e-mail, gratis per te: http://www.email.it/f
Sponsor: Telefona con Email.it Phone Card, tanti minuti di conversazione con il massimo del risparmio, clicca qui Clicca qui: http://adv.email.it/cgi-bin/foclick.cgi?mid=2687&d=2-2