Bei NT kommt Error-Message:
"Privilegierte Anweisung"
- nichts passiert und bei Win98 kommt kein Fehler, aber es passiert trotzdem nicht.
Was mache ich falsch ?
unit Main;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls;
type
TForm1 = class(TForm)
Pin4_aus: TButton;
Pin4_ein: TButton;
procedure Pin4_ausClick(Sender: TObject);
procedure Pin4_einClick(Sender: TObject);
private
{ Private-Deklarationen}
public
{ Public-Deklarationen}
end;
var
Form1: TForm1;
implementation
{$R *.DFM}
function InPort(PortAddr: Word): Byte;
{$IFDEF WIN32}
assembler; stdcall;
asm
mov dx,PortAddr
in al,dx
end;
{$ELSE}
begin
Result := Port[PortAddr];
end;
{$ENDIF}
procedure OutPort(PortAddr: Word; DataByte: Byte);
{$IFDEF WIN32}
assembler; stdcall;
asm
mov al,DataByte
mov dx,PortAddr
out dx,al
end;
{$ELSE}
begin
Port[PortAddr] := DataByte;
end;
{$ENDIF}
// Ende meine Proceduren
procedure TForm1.Pin4_ausClick(Sender: TObject);
begin
OutPort($03F8+4,0);
end;
procedure TForm1.Pin4_einClick(Sender: TObject);
begin
OutPort($03F8+4,1);
end;
end.
"Privilegierte Anweisung"
- nichts passiert und bei Win98 kommt kein Fehler, aber es passiert trotzdem nicht.
Was mache ich falsch ?
unit Main;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls;
type
TForm1 = class(TForm)
Pin4_aus: TButton;
Pin4_ein: TButton;
procedure Pin4_ausClick(Sender: TObject);
procedure Pin4_einClick(Sender: TObject);
private
{ Private-Deklarationen}
public
{ Public-Deklarationen}
end;
var
Form1: TForm1;
implementation
{$R *.DFM}
function InPort(PortAddr: Word): Byte;
{$IFDEF WIN32}
assembler; stdcall;
asm
mov dx,PortAddr
in al,dx
end;
{$ELSE}
begin
Result := Port[PortAddr];
end;
{$ENDIF}
procedure OutPort(PortAddr: Word; DataByte: Byte);
{$IFDEF WIN32}
assembler; stdcall;
asm
mov al,DataByte
mov dx,PortAddr
out dx,al
end;
{$ELSE}
begin
Port[PortAddr] := DataByte;
end;
{$ENDIF}
// Ende meine Proceduren
procedure TForm1.Pin4_ausClick(Sender: TObject);
begin
OutPort($03F8+4,0);
end;
procedure TForm1.Pin4_einClick(Sender: TObject);
begin
OutPort($03F8+4,1);
end;
end.
Comment