leer y escribir en puertos de E/S con C++

nachocamart
30 de Enero del 2002
Hola a todos. Estoy realizando un programa en C++ builder para controlar un almacen automatico y quiero leer y enviar datos a los puertos de E/S. La version anterior del programa usaba inport y outport pero estaba realizada en c y bajo dos, mi compilador actual no las admite pero sé que windows95 si, ¿puedo seguir usándolas o debo usar funciones de la API de windows como Createfile, Readfile..?
Muchas gracias de antemano a todos por vuestra ayuda, un saludo.

Xavi
30 de Enero del 2002
Visita la pagina www.bcbdev.com y ve a componentes. Allí encontrarás un archivo Llamado Ports que te será de ayuda. También podrias crear un par de funciones (inp y outp) con la macro "EMIT Op codes" y generar directamente las instruciones en código máquina de esta forma no necesitarás el archivo anterior.

Xavi
30 de Enero del 2002
Aquí tienes un poco más de informaciónn sobre "emit".

//----------------------------------------------
unsigned inportb(unsigned short puerto)
{
_DX = puerto;
__emit__(0xEC); // 0xEC = opcode in al,dx
return _AL;
}

//----------------------------------------------
void outportb(unsigned short puerto, unsigned char valor)
{
_DX = puerto;
_AL = valor;
__emit__(0xEE); // 0xEE = opcode out dx,al
}
//----------------------------------------------

Con esto conseguiras introducir instrucciones en ensamblador sin necesidad de usar el "tasm".
Ojo. Para el manejo de puertos, esto sólo funciona en Win9X, en WinNT al ejecutar el programa que contenga esto lanzará la correspondiente exección.