char *filename="COM2";
char recechar[100];
int handle;
int init()
{
union REGS inregs,outregs;
inregs.h.ah=0x3d;
inregs.h.al=0x02;
inregs.x.dx=FP_OFF(filename);
int86(0x21,&inregs,&outregs);
if (outregs.x.cflag==0)
{
handle=outregs.x.ax;
return 0;
}
else return 1;
}
int receive()
{
union REGS inregs,outregs;
inregs.h.ah=0x3f;
inregs.x.bx=handle;
inregs.x.cx=5;
inregs.x.dx=FP_OFF(recechar);
int86(0x21,&inregs,&outregs);
if (outregs.x.cflag==0)
return 0;
else return 1;
}
int close()
{
union REGS inregs,outregs;
inregs.h.ah=0x3e;
inregs.x.bx=handle;
int86(0x21,&inregs,&outregs);
if (outregs.x.cflag==0) return 0;
else return 1;
}
void main(void)
{
if (init()) printf("Please Check Your Network!");
else
{
if (receive()) printf("Failure to recive");
else
{
printf("Success to recive\n");
printf("%s",recechar);
}
close();
}
char *filename="COM2";
char sendstring[]="DOS COM Test!";
int handle;
int init()
{
union REGS inregs,outregs;
inregs.h.ah=0x3d;
inregs.h.al=0x02;
inregs.x.dx=FP_OFF(filename);
int86(0x21,&inregs,&outregs);
if (outregs.x.cflag==0)
{
handle=outregs.x.ax;
return 0;
}
else return 1;
}
int send()
{
union REGS inregs,outregs;
inregs.h.ah=0x40;
inregs.x.bx=handle;
inregs.x.cx=13;
inregs.x.dx=FP_OFF(sendstring);
int86(0x21,&inregs,&outregs);
if (outregs.x.cflag==0) return 0;
else return 1;
}
int close()
{
union REGS inregs,outregs;
inregs.h.ah=0x3e;
inregs.x.bx=handle;
int86(0x21,&inregs,&outregs);
if (outregs.x.cflag==0) return 0;
else return 1;
}
void main(void)
{
if (init()) printf("Please Check Your Network!");
else
{
if (send()) printf("Failure to Send");
else printf("Success to Send");
close();
}