Nananana...
Para C++ podes usar esto...
#include <conio.h>
#include <iostream.h>
#include <dos.h>
main(){
char puerto;
int puertoa,puertob,puertoc,dato;
cout << " ingrese la dir del puerto lpr\n"; // Uso el cout
cout << " 1) 378 2) 278 3) 3BC "; //que es como el prinf
// es de la libreria iostream
cin >> puerto;
switch (puerto){
case '1':
puertoa= 0x378;
puertob= 0x379;
puertoc= 0x37A;
break;
case '2':
puertoa= 0x278;
puertob= 0x279;
puertoc= 0x27A;
break;
case '3':
puertoa= 0x3BC;
puertob= 0x3BD;
puertoc= 0x3BE;
break;
}
outport(puertoc,0x26); //Seteo el Bus de control
//Para leer los bits 2 al 9
dato = inport(puertoa); // Leo los datos
cout << dato; // los pongo en pantalla.
//En el caso de que quieras enviar informacion
//Del pin 2 al 9
ouport(puertoc,0x00); //Seteo el bus de control
//Para escribir los bit del 2 al 9
int enviar=32;
outport(puertoa,enviar); // envia el 32
// que seria 00100000
//El puerto b osea el 379, 279 .....
//son los pines 15 a 11
// y solo son entradas.
//podemos obtener la info
//asi:
//PD:. no hace falta setear nada para leer
dato = inport(puertob);
//Deberias hacer un enmascaramiento
//Para obtener el bit deseado...
//Por ejemplo si quiero obtener un 0 o un
//uno en el pin 15, deberia
dato = (inport(puertob)&0x08)/8;
//El 0x08 hace el enmascaramiento
// y para que no te de 0 o 8
// lo divido por 8
// Recorda que dentro de las computadoras
// las entradas estan en estado
//alto por las r de pull up
//osea las entradas estan en 1
//a menos que las mandes a masa (podes usar el
//pin 18 que es masa. Nunca olvides
//de conectar la masa del circuito.
getch();
}
/****************************************
El programa puede tener errores, lo escribi asi nomas
para que tengas una idea...
cualquier cosa si qures mas info
contactate por msn o mail
nico_offspring@hotmail.com*/