Título: In/Out no C++ Builder 1.0
Linguagem: C++Builder
S.O.: Windows
Autor(es): Cássius Adriano Firion
Os desenvolvedores do Windows, por motivo de segurança, decidiram que aplicações de nível de usuário não poderiam executar comandos que acessassem ports diretamente, para isso você necessita de um driver especial, que aloca o port como um recurso e evita conflito com outros dispositivos que tentem acessar o mesmo port. No entanto o Windows 95 ainda permite que esse acesso direto seja feito para manter compatibilidade com os antigos aplicativos de 16 bits, já o NT, captura qualquer tentativa de acesso a ports, por isso o C++ Builder, o Borland C++ e o Delphi, retiraram as rotinas de inport e outport da sua biblioteca de 32 bits, para desencorajar esta prática por parte dos programadores, para que seus aplicativos sejam, o que se chama de "Windows 95 Compatible", ou seja, eles rodam da mesma maneira tanto no Windows 95 quanto no NT.
void outp(int iPort, int iDado) { _DX = iPort; _AX = iDado; __emit__ (0xEE); } unsigned int inp(int iPort) { _DX = iPort; __emit__ (0xEC); return (_AL); }
Você ainda pode utilizar este VCL, TVicPort32 (30,285 bytes), que eu considero um verdadeiro IN/OUT, pois ele tem recursos interessantes e funciona tanto no Windows 95, como no NT.
TVicPort32 é um componente para Delphi 2.x, Delphi 3.x e C++Builder. Ele escreve e lê de um port de I/O no Windows 95 e no Windows NT.