Il driver della tastiera
I driver sono routine in linguaggio macchina, di livello ISA cioe', come IJVM.
Il driver della tastiera, una volta chiamato, per prima cosa
azzererà IP
per segnalare al device che l'interruzione è stata accolta e che le operazioni
relative stanno avendo luogo
(volendo, si potrebbe anche
supporre che l'hardware sia fatto in modo tale che una lettura del BR causi
automaticamente l'azzeramento di IP). Poi preleverà il carattere che si trova
nel BR e lo inserirà in un buffer circolare che contiene appunto i caratteri
letti dal driver e che possono essere utilizzati da qualsiasi programma
attraverso una procedura GETCH (tale procedura non farà altro che prelevare un
carattere dal buffer circolare del driver della tastiera, magari ponendolo sullo
Stack nel caso il linguaggio macchina sia IJVM).
Il driver dunque, per memorizzare i caratteri letti deve anche gestire il buffer
circolare. Il driver della tastiera potrebbe trovare il buffer pieno, nel qual
caso il carattere viene perso ed inserisce nel CSR un codice d'errore.
Dopo aver fatto quanto specificato sopra, il driver controllerà se nei
bit 13-1 del CSR sia presente un codice di errore. A questo punto il driver può
porre a 0 il bit RDY del CSR (indicando cosi' che il carattere e' stato prelevato),
abilitare nuovamente le interruzioni e ritornare dall'interruzione.
Ricordiamo che, trattandosi di memory-mapped I/O, le operazioni sui
registri vengono effettuate come normali letture/scritture in memoria
<---- Il controller della tastiera
Il controller della stampante ---->