Работа с портами процессора

Модуль для работы с портами микропроцессора с сохранением синтаксиса.
Работает под Win9x.
НЕ работает под WinNT.

//Copyright(c) 1998 Zolotarenko P.V Этот e-mail защищен от спам-ботов. Для его просмотра в вашем браузере должна быть включена поддержка Java-script

unit Ports;
interface
Type


TPort=class
private
procedure
Set_(index_:word;value:byte);register;
function Get_(index_:word):byte;register;
public
property
Element[index_ :word]:byte read Get_ write Set_ ;default;
end;

TPortW=class
private
procedure
Set_(index_:word;value:Word);register;
function Get_(index_:word):word;register;
public
property
Element[index_ :word]:word read Get_ write Set_ ;default;
end;

Var Port  :TPort;

PortW :TportW;

implementation
procedure
TPort.Set_(index_:word;value:byte);
begin
asm
mov dx,index_
mov al,value
out dx,al
end;
end;
function TPort.Get_(index_:word):byte;
begin
asm
mov dx,index_
in al,dx
mov @Result,al
end;
end;

asm
mov dx,index_
mov ax,value
out dx,ax
end;
end;
function TPortW.Get_(index_:word):word;
begin
asm
mov dx,index_
in ax,dx
mov @Result,ax
end;
end;

initialization
Port:=TPort.Create;
PortW:=TPortW.Create;

finalization
Port.free;
PortW.free;
end.

 
« Предыдущая статья   Следующая статья »