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

Previous  Top  Next

    
 

Модуль для работы с портами микропроцессора

Работает под Win9x.

НЕ работает под WinNT.

 

Code:

//Copyright(c) 1998 Zolotarenko P.V pvz@mail.univ.kiev.ua

 

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;

 

procedure TPortW.Set_(index_: word; value: word);

begin

 

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.

 

 

 

©Drkb::01444

http://delphiworld.narod.ru/

DelphiWorld 6.0