Zona HTML Zona Java Zona PHP Zona ASP Zona Bases de datos
Inicio > Foros > C / C++ > Ayuda para compilar
-Foros de debate

C / C++
Lista de foros | Lista de mensajes de este foro

Privacidad: Recuerde que la información escrita en los foros de programación es 100% pública y que su ip será registrada asociada a su mensaje. Si encuentra un mensaje fuera de lugar, por favor, notifiquelo para su revisión y eliminación.

Ayuda para compilar
Enviado por fedemarengo el día 17 de junio de 2008

Hola, mi consulta puede ser un poco tonta pero necesito ayuda para compilar un programa en c++ que me dan en la facultad (me dan el programa y tengo que armar el cable para que 2 maquinas se puedan comunicar por puerto serie) y mi problema es que al compilar el programa con Borland C++ 5.02 me da errores en la compilacion. El problema sera que tengo que usar un compilador mas viejo??? cual puedo usar??
El programa es el siguente:

---Int1.cpp---
#include <iostream.h>
#include <stdlib.h>
#include <dos.h>
#include <stdio.h>
#include <conio.h>
#define PUERTO 0x3F8 /* Contiene la "Base Address" del puerto
serial */
/* COM1 0x3F8
*/
/* COM2 0x2F8
*/
/* COM3 0x3E8
*/
/* COM4 0x2E8
*/
#define INTVECTOR 0x0C /* Contiene el IRQ del puerto */
/* COM1 - 0x0C
*/
/* COM2 - 0x0B
*/
/* COM3 - 0x0C
*/
/* COM4 - 0x0B
*/
#define PIC 0xEF /* Para el "Programmable Interrupt Controller"
*/
/* COM1 (IRQ4) - 0xEF
*/
/* COM2 (IRQ3) - 0xF7
*/
/* COM3 (IRQ4) - 0xEF
*/
/* COM4 (IRQ3) - 0xF7
*/
#define PicMasc 0x10 /* Enmascara el IRQ usando el PIC */
/* COM1 (IRQ4) - 0x10
*/
/* COM2 (IRQ3) - 0x08
*/
/* COM3 (IRQ4) - 0x10
*/
/* COM4 (IRQ3) - 0x08
*/
int Cuantollega = 0;
int CuantoSale = 0;
char C_llega;
char buffer[1025];
//////////////// Las dos Rutinas de Interrupt
////////////////////////////
void interrupt (*ViejoISRdePUERTO)(...);
void interrupt NuevoISRdePUERTO(...) /* Rutina de servicio del
interrupt (ISR) para PUERTO */
{
int c;
do {
c = inportb(PUERTO + 5);
if (c & 1)
{
buffer[Cuantollega] = inportb(PUERTO);
Cuantollega++;
if (Cuantollega == 1024) {Cuantollega = 0;};
};
}while (c & 1);
outportb(0x20,0x20);
}
/////////////////////////// El MAIN
///////////////////////////////////////
void main(void)
{
int Tecla;
outportb(PUERTO + 1 , 0); /* Apaga los interrupts
de PUERTO */
ViejoISRdePUERTO = getvect(INTVECTOR); /* Resguarda el vector de
interrupt actual
para restitu¡rlo al final
*/
setvect(INTVECTOR, NuevoISRdePUERTO); /* Coloca nuestra nueva
rutina del interrupt */
///////////* Ahora el Seteo del puerto de comunicaciones
*////////////////
outportb(PUERTO + 3 , 0x80); /* Pone DLAB ON */
outportb(PUERTO + 0 , 0x0C); /* Pone el "Baud rate" - (Divisor
Latch Low Byte) */
outportb(PUERTO + 1 , 0x00); /* Pone el "Baud rate" - (Divisor
Latch High Byte) */
outportb(PUERTO + 3 , 0x03); /* 8 Bits, No Parity, 1 Stop Bit
*/
outportb(PUERTO + 2 , 0xC7); /* FIFO Control Register
*/
outportb(PUERTO + 4 , 0x0B); /* Enciende el DTR, RTS y OUT2
*/
outportb(0x21,(inportb(0x21) & PIC )); /* Pone el "Programmable
Interrupt Controller" */
outportb(PUERTO + 1 , 0x01); /* Activa el Interrupt */
printf("\nPrograma de chat por puertos seriales. Presione ESC para
finalizar \n");
do {
if (Cuantollega != CuantoSale)
{
C_llega = buffer[CuantoSale];
CuantoSale++;
if (CuantoSale == 1024) {CuantoSale = 0;};
printf("%c",C_llega);
};
if (kbhit())
{
Tecla = getch();
outportb(PUERTO, Tecla);
};
} while (Tecla !=27);
outportb(PUERTO + 1 , 0); /* Apaga los
interrupts de PUERTO */
outportb(0x21,(inportb(0x21) | PicMasc )); /* Enmascara el IRQ
usando el PIC */
setvect(INTVECTOR, ViejoISRdePUERTO); /* Restaura el vector
de interrupciones anterior */
clrscr();
exit(0);
} /* Fin del Main */

Y este...

---Poll1.cpp---
#include <iostream.h>
#include <stdlib.h>
#include <dos.h>
#include <stdio.h>
#include <conio.h>
#define PUERTO 0x3F8 /* COM1 */
void main(void)
{
int c, ch, Tecla;
outportb(PUERTO + 1 , 0); /* Apaga los interrupts de PUERTO */
///////////* Ahora el Seteo del puerto de comunicaciones
*////////////////
outportb(PUERTO + 3 , 0x80); /* Pone DLAB ON */
outportb(PUERTO + 0 , 0x0C); /* Pone el "Baud rate" - (Divisor
Latch Low Byte) */
outportb(PUERTO + 1 , 0x00); /* Pone el "Baud rate" - (Divisor
Latch High Byte) */
outportb(PUERTO + 3 , 0x03); /* 8 Bits, No Parity, 1 Stop Bit
*/
outportb(PUERTO + 2 , 0xC7); /* FIFO Control Register
*/
outportb(PUERTO + 4 , 0x0B); /* Enciende el DTR, RTS y OUT2
*/
printf("\nPrograma de chat por puertos seriales. Presione ESC para
finalizar \n");
do {
c = inportb(PUERTO + 5); /* Controla si se recibi¢ un caracter
*/
if (c & 1)
{
ch = inportb(PUERTO); /* Si llega, lo toma */
printf("%c",ch); /* Imprime el caracter en la pantalla */
};
if (kbhit())
{
Tecla = getch(); /* Si presiona tecla, obtiene el
caracter */
outportb(PUERTO, Tecla); /* Manda el caracter al puerto
serial */
};
} while (Tecla !=27); /* Fin cuando se presiona ESC (ASC 27) */
clrscr();
exit(0);
}


No se nada de C++ pero a mi lo unico que me interesa es que compile... jeje...
Muchas Gracias...

 
Re: Ayuda para compilar
Enviado por NMs el día 18 de junio de 2008

fede, bajate este

http://rapidshare.com/files/99913145/TC3.rar Pass:smartwarez.org

borland 3.0 o 3.1

nosotros ya lo hicimos

XD supongo que es para el pt de comunicaciones

de la UTN :P

un beso.

capas que ya lo sabes pero solo conecta los cables 3-2; 2-3; 5-5

 
Re: Re: Ayuda para compilar
Enviado por Sami el día 18 de junio de 2008

Hola, yo tmb tengo que hacer el trabajo, por casualidad no podras subir el codigo tmb? Por si nos preguntan je... gracias!!

 

Re: Re: Ayuda para compilar
Enviado por fedemarengo el día 19 de junio de 2008

Muchas gracias ya lo pude compilar y anda OK.. Habia un problema con los comentarios... Use el Borland C++ 3.1..

 



Tienda
Patrocinados
 

Copyright © 1999-2006 Programación en castellano. Todos los derechos reservados.
Formulario de Contacto - Datos legales - Publicidad

Hospedaje web y servidores dedicados linux por Ferca Network