INPOUT32.DLL

Klaus Peterka

Source-Kode

Da 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

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)
Weist der Variablen
I den vom StatusPort eingelesenen Wert zu

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