El Guru Programador
Usuario DESCONOCIDO | Registrate Gratis | Usuarios Registrados
Foro de C++/C#
Foros del Guru > C++/C#
 
Usuario hyperterminal en c++
Desconocido
Enviado - 13/6/2006
 
Necesito desarrollar un progrma en c++ para hacer un hiperterminal rs-232 en c++, no me funciona correctamente si alguien supiera decirme los error que en el codigo que incluyo halla o si hay algun metodo mas sencillo... GRACIAS!! Juanito

#include <dos.h>
#include <conio.h>
#include <stdio.h>
#include <string.h>
#include <stdlib.h>


union REGS rin,rout;
void inicia(void);
void lee(void);
char escribe(char);
int comprueba(void);

void main(void){
int st;
char c;
inicia();
while(1){
st=comprueba();
if(st){

c=lee();
putch(c);
}//fin if

if(kbhit()){
c=getch();
if(c==0x1b)exit(0);
escribe(c);
}//fin if
}//fin while
exit(0);
}//fin funcion main();

void inicia(void) {
/* rin - Registro de entrada para el rs232.
rout - Registro de salida para el rs232.
h- se van a guardar bytes.
x- se vana guardar palabras o caracteres.
nº - funcion que haremos sobre al, dx, o ah
*/
rin.h.ah=0;//¿¿¿Que hace esto???
rin.x.dx=0;//el puerto sera COM1
rin.h.al=0x83;
/*
7 bits por caracter,1bit de interrupcion,no paridad,v=1200 bps
*/
int86(0x14,&rin,&rout);
}//fin funcion inicia();

int comprueba(void) {
rin.h.ah=3;
/*
comprueba el estado de la linea serie
*/
rin.x.dx=0;//el puerto sera COM1

int86(0x14,&rin,&rout);
/*mandando info al puerto*/

return(rout.h.ah & 0x01);
/*
Esto tampoco lo entiendo, xq se manda a 0x01??
*/

}fin funcion comprueba();

char lee(void) {
rin.h.ah=2;
/*
devuelve un cero si se devolvio correctamente
¿para que se hace esto?
*/
rin.x.dx=0;//el puerto sera COM1
int86(0x14,&rin,&rout);
return(rout.h.al);//devolver caracter recibido
}//fin funcion lee();

void escribe(char c){

rin.h.ah=1;
rin.h.al=c;
rin.x.dx=0;//el puerto sera COM1
int86(0x14,&rin,&rout);
}//fin funcion lee();


 
 

 

Contactos myStudio Network