Desde C++ (el viejito, el 3.0 de Borland), lo puedes hacer husando la libreria graphics.h y con las instrucciones:
outportb(direccion_del_puerto,valor_a_sacar);
variable=inportb(direccion_del_puerto);
//Direcciones del Puerto
int control = 0x037A; //Salida
int estado = 0x0379; //Entrada
int datos = 0x0378; //Salida