|
The parallel interface of the PC
Internal Registers
Schnittstelle (Interface) | Datenregister Adresse | Statusregister Adresse | Steuerregister Adresse |
1 | 3BCh | 3BDh | 3BEh |
2 | 378h | 379h | 37Ah |
3 | 278h | 279h | 27Ah |
4 | 2BCh | 2BDh | 2BEh |
The control of the internal registers
40:08 Basisadresse LPT1 (Adresse d. Datenregisters) 16 Bit 40:0A Basisadresse LPT2 (Adresse d. Datenregisters) 16 Bit 40:0C Basisadresse LPT3 (Adresse d. Datenregisters) 16 Bit 40:0E Basisadresse LPT4 (Adresse d. Datenregisters) 16 Bit 40:11 Systemkonfiguration, hier speziell: das 7. und 8. Bit enthalten binär codiert die Anzahl der vorhandenen parallelen Schnittstellen
Bei Verwendung des DEBUG gehen Sie folgendermaßen vor: -d 40:11 0040:0010 44 FF 80 02 00 00 A0-00 00 28 00 28 00 08 0E 0040:0020 3A 34 30 0B 38 09 0D 1C-20 39 64 20 65 12 62 30 0040:0030 65 12 0D 1C 64 20 20 39-34 05 30 0B 3B 33 00 00
-d 40:08 0040:0000 78 03 00 00 00 00 00 00 0040:0010 61 44 FF 80 02 00 00 A0-00 00 28 00 28 00 08 0E 0040:0020 3A 34 30 0B 38 09 0D 1C-20 39 64 20 65 12 62 30
Ergebnis: 0378h (das niederwertige Byte der Adresse steht - entsprechend der Intel-Konvention - jeweils zuerst im Speicher). Dann den Debugger verlassen mit: portadr??=0 ! push ds ! mov ax,&h40 ! mov ds,ax ! mov ax,[&h08] oder >>> def seg = &h40 ! pop ds portadr??=peeki(&h08) ! mov portadr??,ax datenreg??=portadr?? statusreg??=portadr??+1 steuerreg??=portadr??+2
Ansteuerung des EPP-Ports
In order to read in the data register there are two condition that must be met: |
||