PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Probleme auf NT


Mr. Boom
05.08.2002, 21:08
function Portlesen(addre:word):integer;
var x : char;
begin

asm
MOV DX,addre; { 279h, wäre hier auch direkt möglich}
IN AL,DX; ------------------ Fehler!!! ------------------------
MOV x,AL;
end;
Portlesen:=Ord(x);

end;

Die Zeile (IN AL,DX) funktioniert unter NT-basierenden Systemen (sprich: XP) nicht. Irgendeine Schutzverletzung tritt dort ein. Unter Win9x funktoniert alles wunderbar. Wie kann man dieses Problem lösen???

Ich will unter NT-basierenden System eine Schnittstelle ansteuern. Hier ist es die LPT-Schnittstelle.


Felix Kaiser
05.08.2002, 21:10
Du kannst das Problem lösen, in dem du einen Treiber für die NT Systeme mit dem DDK von Microsoft schreibst. NT ist nicht so blöd win Win9x und gestattet Zugriff auf 'alles'. Schnittstellenports sind allgemein dicht und provozieren Interrupt 0x0D.

Mr. Boom
05.08.2002, 21:56
Wow, das nenn ich Schnell!

Ist das DDK ein kompletes Paket?
Gibt es für Schnittstellenprogrammierung unter NT schon freierhältlich Bibiotheken? Irgendeine dll oder unit?
Oder habe ich wirklich gar keine Chance den LPT- oder Seriell-Port anzusteuern.

Felix Kaiser
06.08.2002, 15:04
Serial Port ist kein Problem, gibt es wunderbare Möglichkeiten über die API. Parellelport geht NUR über eigene Treiber oder du findest doch noch irgendwo was fertiges.

Wirf mal einen Blick in die Win32 SDK unter 'Communication Reference'.

Für Delphi gäbe es z.B. auch fertige Komponenten.