Hardware-Zugriff unter Win NT oder 2000

Wie kann ich mit einem Pascal-Programm (Dos-Programm) direkt auf Hardware-Ports zugreifen z.B. x:=port[$360] oder port[$361]:=$80.
Unter Win98 erhalte ich beim Lesebefehl den Inhalt des Ports, unter NT immer FF(255).
Das gleiche passiert auch mit einem Delphi-Programm.

Hallo Fragewurm,

Wie kann ich mit einem Pascal-Programm (Dos-Programm) direkt
auf Hardware-Ports zugreifen z.B. x:=port[$360] oder
port[$361]:=$80.
Unter Win98 erhalte ich beim Lesebefehl den Inhalt des Ports,
unter NT immer FF(255).

Bei einem Multitask-Betriebssystem ist dies schlicht und einfach NICHT erlaubt !!
Also unter NT W2k und XP DARF das so nicht funktionieren.

Stell dir mal vor, dass du mit deinem Programm eine Ausgabe auf den Drucker machst. Gleichzeitig druckst du aus Word ein Dukument aus. Da Windows keine Ahnung hat, dass da ein anderes Programm was auf dem Druckerport macht, wird auf dem Papier irgend eine Mischung aus beiden Ausgaben entstehen und da dabei sicher auch noch Steuersequenzen durcheinander geraten wird das Ergebnich nicht einmal aus lesbaren Zeichen bestehen.
Um dies zu verhindern muss jedes Programm über Windows ausdrucken, wobei dann Win die Daten beider Programme in je eine Datei ablegt und diese dann nacheinander ausdrucken kann.

MfG Peter(TOO)

Hi!
Ab und zu kannst du mit einer Assemblerrutine und direkter Addressierung (hier ist Vorsicht geboten) was erreichen. Aber eher weniger. Besorg dir einfach aus dem Netz eine Port-IO-DLL. DIe sind i.d.R. auch gut dokumentiert. Mit der tut dein Programm auch recht schnell.

Christian