PDA

Ver la Versión Completa : Puerto Paralelo Kylix


snake + +
20-05-2004, 02:33:28
Hola que tal, esoty intentando hacer un sistema que mande señales por el puerto paralelo, ya lo hice en windows, calro nomas funciona een Win 9X porque en Xp y 2K no permite pasar sobre el Sistema Operativo, pues se genra un error sobre privilegios.

lo gre hacerlo en win9X con la siguiente funcion:

void out(BYTE c){
asm{
push ax
push dx
mov dx,0x0378 // LPT 1 Puerto Paralelo :P
mov al,c
out dx,al
pop dx
pop ax
}
}

estube probando usandola en Linux Suse 9.0 y con Kylix 3.0 Enterprise pero no funciona, pues manda error sobre algo de ASM.

Buscando en San Google encontre este codigo que esta publicado en http://bulma.net/body.phtml?nIdNoticia=1150

#include <stdio.h>#include <sys/io.h>#define BaseAddr 0x378 /* LPT1 */int main(){ unsigned char p=0x01; int sentit=1,i; if(ioperm(BaseAddr,3,1)) { perror("ioperm") exit(1); } while(1) { for(i=0;i<=7;i++) { outb(p,BaseAddr); if(sentit) { if(p<128) p <<= 1; // Desplazamos bits hacia la izquierda } else { if(p>1) p >>= 1; // Desplazamos bits hacia la derecha } usleep(950); } if(sentit) { sentit=0; } else sentit=1; } if(ioperm(BaseAddr,3,0)) { perror("ioperm"); exit(1); } exit(0);}
hace exactamento lo que hace el que hice para windows, pero no puede correr usando la CLx de Kylix, solo funciona en modo consola.

Alguien sabe como hacerle para adaptar este codigo a Kylix o una rutina de ASM mejor que la que publique arriba, pues algo que e pensado es hacer el programa en modo consola pero mandarle argumento y hacer que corra en segundo plano mandando los argumentos desde Kylix.

Alguna otra solucion o un funcion que me recomienden.

de antemano muchas gracias. :)

#include <snake ++.h>

Fabian Caminos
08-09-2006, 00:58:53
Hola a todos.

Quisiera saber si alguien hallo como se pueden sacar datos por el puerto paralelo en Kylix. Yo lo hacia en cualquier windows mediante la libreria inpout32.dll pero en linux no puedo hacer lo mismo.

Gracias.