No capto específicamente lo que deseas, pero ten esto tal vez te podría ayudar:
Manejo del lpt1 desde linux
el pin 2 al 9 son salidas controlables
el pin 1 vcc +5v constante
el pin 18 al 25 GND
Conecta un display de cátodo común, las entradas A,B,C,D,E,F,G a las salidas del 2 al 9 del paralelo
el cátado envía mediante una resistencia de 1k a tierra (18 a 25 puenteados)
el siguiente programa lo puedes compilar con
g++ -Wno-deprecated -o2 -o contar contar.cpp
#include <iostream.h>
#include <stdio.h>
#include <sys/io.h>
#define Lpt1 0x378
const int led[8]={1,2,4,8,16,32,64,128};
const int A=1,B=2,C=4,D=8,E=16,F=32,G=64;
/*
A
F B
G
E C
D
*/
const int display[]={ A+B+C+D+E+F, //0
B+C, //1
A+B+G+E+D, //2
A+B+G+C+D, //3
F+G+B+C, //4
A+F+G+C+D, //5
A+F+G+E+C+D, //6
A+B+C, //7
A+B+C+D+E+F+G, //8
A+G+F+B+C, //9
E+F+A+B+C+G, //A
F+E+G+D+C, //B
A+F+E+D, //C
E+G+D+C+B, //D
A+F+G+E+D, //E
A+F+G+E //F
};
int main()
{
int i=0;
if(ioperm(Lpt1,3,1))
{
perror("ioperm");
}
while(1)
{
for(i=0;i<16;i++)
{
outb(display[i],Lpt1);
usleep(1000000);
}
}
outb(0x00,Lpt1);
if(ioperm(Lpt1,3,0))
{
perror("ioperm");
}
}
Solo puede ser ejecutado como root por las funciones de ioperm,...
Espero que esto te ayude un poco.
Saludos...