У.Н. Румфорд.
----------------------------------------
http://www.youtube.com/watch?v=qWfIYU9Zzs4 А.К. "Легион"
Код: Выделить всё
Procedure OutPort(port:word; value:byte);assembler;stdcall;
asm
mov al, value
mov dx, port
out dx, ax
end;
function InPort(port:word):byte;assembler;stdcall;
asm
mov dx,port
in al,dx
mov Result,al
end;http://radiokot.ru/forum/viewtopic.php?p=658398#p658398Пухич писал(а):Хм, а что за зверь giveio.pas? Откуда он взялся?
Чего-то я отстал от обсуждения.
Код: Выделить всё
procedure TForm1.FormCreate(Sender: TObject);
Procedure InitDriver;
Begin
lpServiceArgVectors:=nil;
DeviceName:='giveio';
hSCMan:=OpenSCManager(Nil,Nil,SC_MANAGER_ALL_ACCESS);
hService:=CreateService(
hSCMan,
pChar(DeviceName),
pChar(DeviceName),
SERVICE_ALL_ACCESS,
SERVICE_KERNEL_DRIVER,
SERVICE_DEMAND_START,
SERVICE_ERROR_NORMAL,
PChar(ExtractFilePath(ParamStr(0))+'giveio.sys'),nil,nil,nil,nil,nil);
If hService<>0 then
CloseServiceHandle(hService);
hService:=OpenService(hSCMan,pChar(DeviceName),SERVICE_ALL_ACCESS);
If hService<>0 then
begin
StartService(hService,0,PChar(lpServiceArgVectors));
CloseServiceHandle(hService);
end;
hDevice:=CreateFile(pChar('\\.\'+DeviceName),
GENERIC_READ or GENERIC_WRITE,0,PSECURITY_DESCRIPTOR(nil),
OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL,0);
end;
FRIM@N писал(а):procedure TForm1.FormCreate(Sender: TObject);
Begin
InitDriver;
end; и поставить это перед
это правильно.
Procedure InitDriver;
Begin
lpServiceArgVectors:=nil;
DeviceName:='giveio';
hSCMan:=OpenSCManager(Nil,Nil,SC_MANAGER_ALL_ACCESS);
hService:=C................
этого не нужно
Код: Выделить всё
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs;
type
TForm1 = class(TForm)
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
end.
Код: Выделить всё
procedure TForm1.FormCreate(Sender: TObject);
Begin
InitDriver;
end;
Procedure OutPort(port:word; value:byte);stdcall;
Function InPort(port:word):byte;stdcall;
Код: Выделить всё
var
aa,e:word;
port,base,data:word;
{.........}
aa:=0;
base:=$3F8;
begin
port:=base+4;
data:=2;
outport(port,aa,data);
sleep(10);
port:=base+6;