INPOUT32.DLL
Klaus Peterka
Source-KodeDa VisualBasic 4.0/5.0 serienmäßig keinen Zugriff auf die parallele Schnittstelle bietet, muß man sich diesen mittels einer DLL-Datei verschaffen. Fündig wurde ich im Internet, wo ich auf der Homepage von Jan Axelson’s Lakeview Research die Datei INPOUT32.DLL fand.
Mit dieser Datei ist es leicht möglich, die parallele Schnittstelle unter Visual Basic anzusprechen. Ob Version 4 oder 5 ist gleichgültig, wichtig ist nur, daß es eine 32-bit Version ist.
1 Verwendung
1.1 Kopieren Sie die Datei INPOUT32.DLL in eines der drei folgenden Verzeichnisse
Stammverzeichnis von Windows (z.B.: \Windows),
Systemverzeichnis von Windows (z.B.: \Windows\System),
Arbeitsverzeichnis der Applikation
1.2 Fügen Sie die Datei INPOUT32.BAS zu Ihrem vorhandenen Projekt hinzu.
VB 4.0: (Menü)
File |
||||
... Add File ... |
VB 5.0: (Menü)
Project |
||
... Add Module ... |
Dieses Basic-Modul enthält die Visual-Basic-Deklarationen für die neuen Befehle Inp und Out.
1.3 Nach Ausführung dieser beiden Schritte, können Sie auf zwei neue Befehle zurückgreifen
OUT |
Schreibt einen Wert auf einen Port der parallelen Schnittstelle |
Syntax: |
OUT PortAdress, ValueToWrite |
Beispiel: |
OUT &h378, &h55 Schreibt 55h auf den DataPort von LPT 1 |
INP |
Liest einen Wert von einem Port der parallel Schnittstelle ein |
Syntax: |
ValueToRead = INP(PortAddress) |
Beispiel: |
I = INP (&h379) |
Anmerkung
Die hier in den Beispielen verwendeten Portadressen können in verschiedenen Installationen differieren.
Hier eine kleine Aufstellung von typischen Portadressen:
Printer |
Data Port |
Status Port |
Control Port |
LPT 1 |
0x0378 |
0x0379 |
0x037a |
LPT 2 |
0x0278 |
0x0279 |
0x027a |
Bemerkung |
8 output pins |
5 input pins |
4 output pins |
2 INPOUT32.BAS
‘Inp and Out declarations for direct
‘port I/O in 32-bit Visual Basic 4 programs.
Public Declare Function Inp Lib _
“inpout32.dll“ Alias “Inp32” _
(ByVal PortAddress As Integer)_
As Integer
Public Declare Sub Out Lib _
“inpout32.dll“ Alias “Out32" _
(ByVal
PortAddress As Integer, _
ByVal Value As Integer)
3 INPOUT32.DLL
{Source code for inpout32.dll.
Enables 32-bit Visual Basic programs to do direct port I/O (Inp and Out) under Windows 95. To be compiled with Borland’s Delphi 2.0. }
library inpout32;
uses SysUtils;
procedure Out32(PortAddress:smallint;Value:smallint);
stdcall;export;
var
ByteValue:Byte;
begin
ByteValue:=Byte(Value);
asm
push dx
mov dx,PortAddress
mov al, ByteValue
out dx,al
pop dx
end;
end;
function Inp32(PortAddress:smallint)
:smallint;stdcall;export;
var
ByteValue:byte;
begin
asm
push dx
mov dx, PortAddress
in al,dx
mov ByteValue,al
pop dx
end;
Inp32:=smallint(ByteValue) and $00FF;
end;
Exports
Inp32,
Out32;
begin
end.
4 Quellen
Hier nun einige nützliche Links zum Thema parallele Schnittstelle:
Jan Axelson’s Lakeview Research
http://www.lvr.com/
Warp Nine Engineering
http://www.fapo.com/
Interfacing to the IBM-PC Parallel Printer Port
http://www.doc.ic.ac.uk/~ich/doc/par/
Use of a PC printer port for control and data acquisition
http://et.nmsu.edu/~etti/fall96/
computer/printer/printer.html