Den Parallel-Port vorbereiten

Obwohl die parallele Schnittstelle einfach ist, kann sie Interrupts auslösen. Diese Fähigkeit wird vom Drucker benutzt, um dem lp-Treiber mitzuteilen, daß er bereit ist, das nächste Zeichen aus dem Puffer entgegenzunehmen.

Wie die meisten Geräte generiert auch der Parallel-Port keine Interrupts, solange er nicht dazu aufgefordert wird. Der Standard schreibt vor, daß das Setzen von Bit 4 im Port 3 (0x37a, 0x27a oder was auch immer) Interrupts einschaltet. Die einfache outb-Anweisung, die dieses Bit setzt, wird von short während der Initialisierung des Moduls durchgeführt.

Nach dem Einschalten der Interrupts erzeugt die parallele Schnittstelle immer dann einen Interrupt, wenn das elektrische Signal an Pin 10 (das sogenannte “ACK”-Bit) von niedrig auf hoch wechselt. Die einfachste Möglichkeit, die Schnittstelle zum Generieren von Interrupts zu bringen (abgesehen von der Möglichkeit, einen Drucker anzuschließen), besteht darin, die Pins 9 und 10 der parallelen Schnittstelle zu verbinden. Ein kurzes Stückchen Draht in den passenden Löchern der Parallel-Port-Buchse hinten an Ihrem Computer erzeugt eine solche Verbindung. Die Pin-Belegung des Parallel-Ports ist in Abbildung 8-1 zu sehen.

Pin 9 ist das höchstwertige Bit des parallelen Datenbytes. Wenn Sie Binärdaten auf /dev/short0 schreiben, erzeugen Sie mehrere Interrupts. Das Schreiben von ASCII-Text auf den Port erzeugt jedoch keine Interrupts, da das höchstwertige Bit nicht gesetzt wird.

Wenn Sie lieber nicht zum Lötkolben greifen möchten, aber einen Drucker zur Hand haben, dann können Sie den Beispiel-Interrupt-Handler auch mit einem Drucker verwenden, wie später gezeigt wird. Die Suchfunktionen, die wir einführen werden, brauchen aber auf jeden Fall die Überbrückung zwischen Pin 9 und 10.