| Zeile 90: | Zeile 90: | ||
Vom Statusregister aus kann nur gelesen werden. Dort wird der Zustand der Peripherie gespeichert. | Vom Statusregister aus kann nur gelesen werden. Dort wird der Zustand der Peripherie gespeichert. | ||
| − | Die | + | Die Bits haben folgende Bedeutung: |
| − | + | {| {{Prettytable}} | |
| − | + | ! Bit || Signal-Bezeichnung || Info | |
| − | + | |- | |
| − | + | | 0 || - || unbenutzt | |
| + | |- | ||
| + | | 1 || - || unbenutzt | ||
| + | |- | ||
| + | | 2 || - || unbenutzt | ||
| + | |- | ||
| + | | 3 || /ERROR || 0 = Fehler | ||
| + | |- | ||
| + | | 4 || SELECT || 1 = Drucker ist On-Line (Selected) | ||
| + | |- | ||
| + | | 5 || PE || 1 = Drucker hat kein Papier mehr (Paper Error) | ||
| + | |- | ||
| + | | 6 || /ACK || 0 = Drucker ist für nächstes Zeichen bereit (Acknowledge) | ||
| + | |- | ||
| + | | 7 || /BUSY || 0 = Drucker ist beschäftigt | ||
| + | |} | ||
| − | + | Nachfolgend ein kleines Programm, um die Bits zu testen: | |
| − | |||
| − | test ah, 00100000b ; Bit 5 -> Kein Papier mehr? | + | <pre> |
| − | jne error | + | mov ah, 02h |
| + | xor dx, dx | ||
| + | int 17h | ||
| + | |||
| + | test ah, 10000000b ; Bit 7 -> Drucker bereit? | ||
| + | je error | ||
| + | |||
| + | test ah, 00100000b ; Bit 5 -> Kein Papier mehr? | ||
| + | jne error | ||
error: | error: | ||
jmp error | jmp error | ||
| − | </ | + | </pre> |
| − | |||
=== Steuerregister === | === Steuerregister === | ||
In das Steuerregister kann sowohl gelesen als auch geschrieben werden. Wird das 4. Bit gesetzt, wird ein Interrupt ausgelöst. Wird das 5. Bit gesetzt, ist eine Art bidirektionaler Übertragung möglich. | In das Steuerregister kann sowohl gelesen als auch geschrieben werden. Wird das 4. Bit gesetzt, wird ein Interrupt ausgelöst. Wird das 5. Bit gesetzt, ist eine Art bidirektionaler Übertragung möglich. | ||
| + | |||
| + | |||
| + | Die Bits haben folgende Bedeutung: | ||
| + | |||
| + | {| {{Prettytable}} | ||
| + | ! Bit || Signal-Bezeichnung || Info | ||
| + | |- | ||
| + | | 0 || /STROBE || 0 = Daten liegen auf D0 - D7 an | ||
| + | |- | ||
| + | | 1 || AUTO FEED || 1 = LF nach CR (auto linefeed) | ||
| + | |- | ||
| + | | 2 || /INIT || 0 = Reset des Druckers herbeiführen | ||
| + | |- | ||
| + | | 3 || SELECT IN || 1 = Drucker on-line schalten (Select Input) | ||
| + | |- | ||
| + | | 4 || IRQ Enable || 1 = Interrupt auslösen, wenn /ACK auf 0 geht | ||
| + | |- | ||
| + | | 5 || - || unbenutzt | ||
| + | |- | ||
| + | | 6 || - || unbenutzt | ||
| + | |- | ||
| + | | 7 || - || unbenutzt | ||
| + | |} | ||