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
Il driver per prima cosa mette IP a 0
(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.
Il driver per prima cosa mette IP a 0
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 ---->