Direkter Hardwarezugriff unter Win95/98 |
|
| System | Win9x |
|---|---|
| Ab Delphi-Version | Delphi 1 |
| Letzte Änderung | 28.09.2010 |
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;