Home » Tipps & Tricks » System » Hardware » Direkter Hardwarezugriff unter Win95/98

Direkter Hardwarezugriff unter Win95/98

Die folgenden Prozeduren erlauben den direkten Hardwarezugriff z.B. auf den Druckerport, die serielle Schnittstelle oder allgemein auf jede Adresse im E/A-Bereich. Sie sind hilfreich wenn man einen Port einmal für anderes als nur die Druckausgabeverwenden möchte (z.B. Ansteuerung eigener Hardware).Die aktuell eingestellten Portadressen (PortAdress) kann man meist im BIOS-Setup nachsehen, wo sie als Hexadezimalwert angegeben sind.

// Auf eine Adresse schreiben
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;

// Von einer Adresse lesen
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;