home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
High Voltage Shareware
/
high1.zip
/
high1
/
DIR2
/
DIGIPROG.ZIP
/
FCT1E.C
< prev
next >
Wrap
C/C++ Source or Header
|
1993-03-30
|
2KB
|
96 lines
#include <dos.h>
#include <stdio.h>
main()
{
struct REGPACK sregs;
int y,x,water,dx;
union REGS regs;
printf("\nEnter DX : ");
scanf("%d",&dx); while(kbhit()) getch();
Choose0:
printf("\nSoftware Flow Control (XON/XOFF) ");
printf("\n\nN)one");
printf("\nT)x Flow");
printf("\nR)x Flow");
printf("\nB)oth : ");
switch(toupper(getch()))
{
case 'N' : regs.h.bh = 0x0; break;
case 'T' : regs.h.bh = 0x1; break;
case 'R' : regs.h.bh = 0x2; break;
case 'B' : regs.h.bh = 0x3; break;
default : goto Choose0;
}
regs.x.cx = 0;
if(regs.h.bh)
{
printf("\nSet New XON/XOFF Characters ? (Y/*) : ");
if(toupper(getch()) == 'Y')
{
printf("\nEnter New XON Char (Hex) : ");
scanf("%x",®s.h.cl);
printf("\nEnter New XOFF Char (Hex) : ");
scanf("%x",®s.h.ch);
}
}
Choose1:
printf("\n\nHardware RX Flow Control ");
printf("\n\nN)one");
printf("\nD)TR Flow");
printf("\nR)TS Flow");
printf("\nB)oth : ");
switch(toupper(getch()))
{
case 'N' : regs.h.bl = 0x0; break;
case 'D' : regs.h.bl = 0x1; break;
case 'R' : regs.h.bl = 0x2; break;
case 'B' : regs.h.bl = 0x3; break;
default : goto Choose1;
}
Choose2:
printf("\n\nHardware TX Flow Control ");
printf("\n\nN)one");
printf("\nA) CTS Flow");
printf("\nB) DSR Flow");
printf("\nC) DCD Flow");
printf("\nD) CTS & DSR Flow");
printf("\nE) CTS & DCD Flow");
printf("\nF) DSR & DCD Flow");
printf("\nG) ALL : ");
switch(toupper(getch()))
{
case 'N' : regs.h.bl |= 0x0; break;
case 'A' : regs.h.bl |= 0x10; break;
case 'B' : regs.h.bl |= 0x20; break;
case 'C' : regs.h.bl |= 0x80; break;
case 'D' : regs.h.bl |= 0x30; break;
case 'E' : regs.h.bl |= 0x90; break;
case 'F' : regs.h.bl |= 0xA0; break;
case 'G' : regs.h.bl |= 0xB0; break;
default : goto Choose2;
}
regs.h.ah = 0x1e;
regs.x.dx = dx;
printf("\nCall - AH : %02X BH : %02X BL : %02X CH : %02X CL : %02X",
regs.h.ah, regs.h.bh, regs.h.bl, regs.h.ch, regs.h.cl);
int86(0x14,®s,®s);
printf("\nReturn - AH : %02X",regs.h.ah);
}