keyboard buffer löschen?
-
hi,
ich habe mir ein paar funktionen geschrieben welche über port 60h(i/o reg) und 64h(status reg) zeichen vom keyboard einlesen können... funktioniert auch wunderbar, aber diese werden ja ebenfalls vom bios irgendwo in der BDA "gebuffert" wenn dieser buffer voll ist piepst der rechner dann nurnoch...
meine frage: wie lösche ich diesen buffer?
danke schonmal
MFG
-
wieso puffer löschen?? warum biegst du nicht einfach den BIOS-Keyboard-Handler (Int 0x09) auf eine eig. (leere (bis auf acknodledge an PIC)) routine?? dann wird der puffer gar nicht erst gefüllt...
-
full ack. Den IRQ umzubiegen waere hier IMHO das einzig Sinnvolle.
Allerdings dann nicht nur mit einem ACK an den PIC, sondern auch mit einem Keyboard Reset drin(!)
-
ok, und wie genau würde das dann aussehen?
wärt ihr so net und würdet mir ein beispiel zeigen?MFG
-
*hrml*
Um das Rad nicht neu zu erfinden:
C/C++ Forum :: FAQ - Assembler :: OSDev Links / Hardware :: the Operating System resource center :: Human Interface Devices
-
hab ich das jetzt richtig verstanden dass jedesmal wenn das keyboard etwas schickt der interrupt 9 und der IRQ1 ausgelöst werden?
MFG
-
An sich schon: Jedesmal, wenn sich etwas am Status des Keyboards aendert (Taste gedrueckt/losgelassen) wird IRQ 1 ausgeloest, was wiederum im Realmode einen Aufruf von Interrupt 9 bewirkt.
-
und wie verhindere ich im protected mode das dieser komische puffer voll wird? muss ich da den PIC verwenden?
-
Kommt darauf an, in welcher Umgebung dein Programm laeuft.
Befindest du dich unter einem PM-Betriebssystem, solltest du das mit Port 60h direkt auslesen usw. besser schnell wieder vergessen - das bringt nur Probleme.
Wenn du an einem eigenen OS schreibst, muesstest du den IRQ 1 eh auf einen neuen von dir geschriebenen code umleiten, da der RM-code im PM normalerweise nicht so gut laeuft.
Bei deinem code kannst du dann selbst bestimmen, wie und ob der Tastaturpuffer befuellt werden soll und ob der PC piepsen soll, wenn nichts mehr geht o.ae..
Dann muesstest du dir auch selbst ueberlegen koennen, wie du es verhinderst, dass dein Tastaturpuffer ueberlaeuft.[edit]BTW: Vielleicht solltest du dir bei den OS Dev Links in den FAQ nochmal durchlesen, wozu der PIC eigentlich gut ist.
Der hat an sich nicht direkt etwas mit der Tastatur zu tun.[/edit]