| 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();
|
| |
|
|
|