Sources
Delphi Russian Knowledge Base
DRKB - это самая большая и удобная в использовании база знаний по Дельфи в рунете, составленная Виталием Невзоровым

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

01.01.2007

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

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

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} 

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