les dejo el codigo fuente se que el puerto paralelo es 0x378 pero no se como lo tengo que inicializar para que funciones.. garcias
Cita:
#include <iostream.h>
#include <stdlib.h>
#include <dos.h>
#include <stdio.h>
#include <conio.h>
/*Definimos el puerto serie COM1*/
#define PUERTO 0x3F8
/*Declaramos la funcion saludo que da un saludo de bienvenida*/
void saludo();
/*Declaramos la funcion margen para dibujar la pantalla*/
void margen();
/*La funcion inicializar se encarga de enviar todos los parametros necesarios para inicializar el puerto*/
void inicializar();
/*Inicio del programa*/
void main(void)
{
unsigned char TECLA, CH;
int i=3,j=3,m=3,f=14;
saludo();
clrscr();
margen();//llamamos a la funcion margen para que dibuje la pantalla
gotoxy(3,3);
inicializar();//llamamos a la funcion inicializar para que prepare al puerto
while (TECLA!=27)//Mientras no presionemos escape...
{
if (inportb(PUERTO+5)&1)//
{
CH=inportb(PUERTO);//guardo en CH el valor que esta en el puerto
//limpiamos el puerto
if (CH==13)//preguntamos si el caracter recibido es enter
{
i=3;
f++;//controla la posicion del cursor
if (f==23)
{
window(3,14,77,22);
delline();
f=22;
window(1,1,80,25);
gotoxy(i,f);
}
}
if (CH!=NULL)//preguntamos si el caracter no es nulo
{
if(CH=='\r')//para que el cursor se mantenga siempre al final
CH='\n';
gotoxy(i,f);printf("%c",CH);//imprimimos el caracter
i++;
if (i==78)
{
i=3;
f++;
if (f==23)
{
window(3,14,77,22);
delline();
f=22;
window(1,1,80,25);
gotoxy(i,f);
}
}
}
}
if (kbhit())//preguntamos si se presiono alguna tecla
{
gotoxy(j,m); //mandamos el cursor al final de cada caracter
j++;//con j escribimos la palabra
if (j==78)
{
j=3;
m++;
if (m==13)
{
window(3,3,77,12);
delline();
m=12;
window(1,1,80,25);
gotoxy(j,m);
}
}
TECLA=getche();//guardamos la tecla presionada
if (TECLA==13)//preguntamos si la tecla presionada es un enter
{
gotoxy(3,m+1);printf("");//al apretar enter probocamos un salto de linea
j=3;
m++;
if (m==13)
{
window(3,3,77,12);
delline();
m=12;
window(1,1,80,25);
gotoxy(j,m);
}
}
if (TECLA!=27)//preguntamos si es distinto de escape
{
while(!inportb(PUERTO+5)&1);
outportb(PUERTO,TECLA);//enviamos el caracter al puerto
}
}
}
}
void saludo()
{
clrscr();
textbackground(BLACK);//Definimos los colores de la pantalla
textcolor(WHITE);
gotoxy(19,3);printf("ÛÛÛÛÛ Û Û Û ÛÛÛÛÛ ÛÛÛÛÛ Û Û ÛÛÛ ÛÛÛÛÛ");
gotoxy(19,4);printf("Û Û Û Û Û Û Û Û Û Û Û ");
gotoxy(19,5);printf("Û ÛÛÛÛÛ Û Û ÛÛÛ Û ÛÛÛÛÛ ÛÛÛÛÛ Û ");
gotoxy(19,6);printf("Û Û Û Û Û Û Û Û Û Û Û ");
gotoxy(19,7);printf("ÛÛÛÛÛ Û Û Û Û ÛÛÛÛÛ Û Û Û Û Û ");
gotoxy(19,9);printf("ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ");
gotoxy(19,11);printf("Programa de Chat por Puerto Serie. M‚todo Polling.");
gotoxy(40,18);printf("CATEDRA: Comunicaciones");
gotoxy(40,20);printf("Hecho por: Del Teso Leandro. LEG:45725");
gotoxy(51,21);printf("Larcher German. LEG:45703");
gotoxy(51,22);printf("Peralta Miguel. LEG:45686");
gotoxy(23,24);printf("Presione una tecla para seguir...");
getche();
}
void margen ()
{
int i;
for (i = 1; i < 80; i++) //Dibujamos los margenes
{
gotoxy (i, 1); printf ("Û");
gotoxy (i,24); printf ("Û");
}
for (i = 1; i < 80; i++)
{
gotoxy (i, 2); printf ("Í");
gotoxy (i,23); printf ("Í");
}
for (i = 1; i < 80; i++)
{
gotoxy (i,13); printf ("Í");
}
for (i = 2; i < 24; i++)
{
gotoxy (1 ,i); printf ("Û");
gotoxy (79,i); printf ("Û");
}
for (i = 2; i < 24; i++)
{
gotoxy (2 ,i); printf ("º");
gotoxy (78,i); printf ("º");
}
gotoxy (2 , 2); printf ("É");
gotoxy (2 ,23); printf ("È");
gotoxy (78, 2); printf ("»");
gotoxy (78,23); printf ("¼");
gotoxy(3,2);printf("Escribiste:");
gotoxy(3,13);printf("Recibiste:");
gotoxy(64,24);printf("ESC -> Salir.");
}
void inicializar()
{
outportb(PUERTO+1,0);//
outportb(PUERTO+3,0x80);//
outportb(PUERTO+0,0x0C);//
outportb(PUERTO+1,0x00);//
outportb(PUERTO+3,0x03);//
outportb(PUERTO+2,0XC7);
outportb(PUERTO+4,0X0B);
}
#include <stdlib.h>
#include <dos.h>
#include <stdio.h>
#include <conio.h>
/*Definimos el puerto serie COM1*/
#define PUERTO 0x3F8
/*Declaramos la funcion saludo que da un saludo de bienvenida*/
void saludo();
/*Declaramos la funcion margen para dibujar la pantalla*/
void margen();
/*La funcion inicializar se encarga de enviar todos los parametros necesarios para inicializar el puerto*/
void inicializar();
/*Inicio del programa*/
void main(void)
{
unsigned char TECLA, CH;
int i=3,j=3,m=3,f=14;
saludo();
clrscr();
margen();//llamamos a la funcion margen para que dibuje la pantalla
gotoxy(3,3);
inicializar();//llamamos a la funcion inicializar para que prepare al puerto
while (TECLA!=27)//Mientras no presionemos escape...
{
if (inportb(PUERTO+5)&1)//
{
CH=inportb(PUERTO);//guardo en CH el valor que esta en el puerto
//limpiamos el puerto
if (CH==13)//preguntamos si el caracter recibido es enter
{
i=3;
f++;//controla la posicion del cursor
if (f==23)
{
window(3,14,77,22);
delline();
f=22;
window(1,1,80,25);
gotoxy(i,f);
}
}
if (CH!=NULL)//preguntamos si el caracter no es nulo
{
if(CH=='\r')//para que el cursor se mantenga siempre al final
CH='\n';
gotoxy(i,f);printf("%c",CH);//imprimimos el caracter
i++;
if (i==78)
{
i=3;
f++;
if (f==23)
{
window(3,14,77,22);
delline();
f=22;
window(1,1,80,25);
gotoxy(i,f);
}
}
}
}
if (kbhit())//preguntamos si se presiono alguna tecla
{
gotoxy(j,m); //mandamos el cursor al final de cada caracter
j++;//con j escribimos la palabra
if (j==78)
{
j=3;
m++;
if (m==13)
{
window(3,3,77,12);
delline();
m=12;
window(1,1,80,25);
gotoxy(j,m);
}
}
TECLA=getche();//guardamos la tecla presionada
if (TECLA==13)//preguntamos si la tecla presionada es un enter
{
gotoxy(3,m+1);printf("");//al apretar enter probocamos un salto de linea
j=3;
m++;
if (m==13)
{
window(3,3,77,12);
delline();
m=12;
window(1,1,80,25);
gotoxy(j,m);
}
}
if (TECLA!=27)//preguntamos si es distinto de escape
{
while(!inportb(PUERTO+5)&1);
outportb(PUERTO,TECLA);//enviamos el caracter al puerto
}
}
}
}
void saludo()
{
clrscr();
textbackground(BLACK);//Definimos los colores de la pantalla
textcolor(WHITE);
gotoxy(19,3);printf("ÛÛÛÛÛ Û Û Û ÛÛÛÛÛ ÛÛÛÛÛ Û Û ÛÛÛ ÛÛÛÛÛ");
gotoxy(19,4);printf("Û Û Û Û Û Û Û Û Û Û Û ");
gotoxy(19,5);printf("Û ÛÛÛÛÛ Û Û ÛÛÛ Û ÛÛÛÛÛ ÛÛÛÛÛ Û ");
gotoxy(19,6);printf("Û Û Û Û Û Û Û Û Û Û Û ");
gotoxy(19,7);printf("ÛÛÛÛÛ Û Û Û Û ÛÛÛÛÛ Û Û Û Û Û ");
gotoxy(19,9);printf("ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ");
gotoxy(19,11);printf("Programa de Chat por Puerto Serie. M‚todo Polling.");
gotoxy(40,18);printf("CATEDRA: Comunicaciones");
gotoxy(40,20);printf("Hecho por: Del Teso Leandro. LEG:45725");
gotoxy(51,21);printf("Larcher German. LEG:45703");
gotoxy(51,22);printf("Peralta Miguel. LEG:45686");
gotoxy(23,24);printf("Presione una tecla para seguir...");
getche();
}
void margen ()
{
int i;
for (i = 1; i < 80; i++) //Dibujamos los margenes
{
gotoxy (i, 1); printf ("Û");
gotoxy (i,24); printf ("Û");
}
for (i = 1; i < 80; i++)
{
gotoxy (i, 2); printf ("Í");
gotoxy (i,23); printf ("Í");
}
for (i = 1; i < 80; i++)
{
gotoxy (i,13); printf ("Í");
}
for (i = 2; i < 24; i++)
{
gotoxy (1 ,i); printf ("Û");
gotoxy (79,i); printf ("Û");
}
for (i = 2; i < 24; i++)
{
gotoxy (2 ,i); printf ("º");
gotoxy (78,i); printf ("º");
}
gotoxy (2 , 2); printf ("É");
gotoxy (2 ,23); printf ("È");
gotoxy (78, 2); printf ("»");
gotoxy (78,23); printf ("¼");
gotoxy(3,2);printf("Escribiste:");
gotoxy(3,13);printf("Recibiste:");
gotoxy(64,24);printf("ESC -> Salir.");
}
void inicializar()
{
outportb(PUERTO+1,0);//
outportb(PUERTO+3,0x80);//
outportb(PUERTO+0,0x0C);//
outportb(PUERTO+1,0x00);//
outportb(PUERTO+3,0x03);//
outportb(PUERTO+2,0XC7);
outportb(PUERTO+4,0X0B);
}