Lectura del puerto de impresora desde Delphi

Estoy trabajando en Delphi 3.0, y necesito leer un dato del puerto paralelo, no he encontrado una funcion propia de Delphi o informacion sobre un control OCX para hacer esto. Necesito de urgencia informacion acerca de este tema. El control puede ser version para Visual Basic.

Uno de los métodos que puedes usar para recuperar información del puerto de la impresora consiste en leer directamente los puertos de E/S asociados. Estos son tres: el de datos, el de estado y el de control. La dirección base es, por regla general, $378 para la salida LPT1 y $278 para la LPT2.
Delphi dispone de un ensamblador integrado, característica que muchos de los usuarios desconocen. Mediante dicho ensamblador es posible hacer cualquier tarea que no esté implementada directamente en Object Pascal, como es la lectura de un puerto de E/S. Para ello podríamos escribir una función como la siguiente, que toma como parámetro un número de puerto y devuelve el dato leído de él.

Function InpB(Port: Word): Byte;
asm
   Mov DX, Port
   In AL, DX
end;

En este caso se trata de un byte porque los registros de la impresora ocupan ese espacio, pero podríamos usar los tipos Word y LongInt junto con los registros AX y EAX para leer 16 o 32 bits.
Este método tan sólo será funcional en Windows 95, pero causará un error en Windows NT. Esto se debe a que dicho sistema operativo no permite el acceso directo a los puertos a las aplicaciones de tipo general, sólo pueden usar estos recursos los controladores.