Как читать/писать в I/O порты?

Previous  Top  Next

    
 

 

В Delphi 1 записывать и считывать из портов можно через глобальный массив 'ports'. Однако данная возможность отсутствует в '32-битном' Delphi.

 

Следующие две функции можно использовать в любой версии delphi:

Code:

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}

 

 

 

©Drkb::01339

Взято из http://forum.sources.ru