home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
High Voltage Shareware
/
high1.zip
/
high1
/
DIR2
/
DIGIPROG.ZIP
/
FCT0.C
< prev
next >
Wrap
C/C++ Source or Header
|
1993-03-29
|
2KB
|
72 lines
#include <dos.h>
#include <stdio.h>
main()
{
struct REGPACK sregs;
int y,x,numbytes,dx;
union REGS regs;
/*struct SREGS sregs;*/
/* special char - <CR> */
printf("\nEnter DX : ");
scanf("%d",&dx); while(kbhit()) getch();
regs.h.al = 0;
DBits:
printf("\nSelect Data Bits 5) 6) 7) 8) : ");
switch(toupper(getch()))
{
case '5' : regs.h.al |= 0x0; break;
case '6' : regs.h.al |= 0x1; break;
case '7' : regs.h.al |= 0x2; break;
case '8' : regs.h.al |= 0x3; break;
default : goto DBits;
}
SBits:
printf("\nSelect Stop Bits 1) 2) : ");
switch(toupper(getch()))
{
case '1' : regs.h.al |= 0x0; break;
case '2' : regs.h.al |= 0x4; break;
default : goto SBits;
}
Par:
printf("\nSelect Parity N)one O)dd E)ven : ");
switch(toupper(getch()))
{
case 'N' : regs.h.al |= 0x0; break;
case 'O' : regs.h.al |= 0x8; break;
case 'E' : regs.h.al |= 0x18; break;
default : goto Par;
}
Baud:
printf("\nSelect Parity A) 110/19200 B) 150 C) 300 D) 600 \n");
printf( " E) 1200 F) 2400 G) 4800 H) 9600 ");
switch(toupper(getch()))
{
case 'A' : regs.h.al |= 0x00; break;
case 'B' : regs.h.al |= 0x20; break;
case 'C' : regs.h.al |= 0x40; break;
case 'D' : regs.h.al |= 0x60; break;
case 'E' : regs.h.al |= 0x80; break;
case 'F' : regs.h.al |= 0xA0; break;
case 'G' : regs.h.al |= 0xC0; break;
case 'H' : regs.h.al |= 0xE0; break;
default : goto Par;
}
regs.h.ah = 0x0;
regs.x.dx = dx;
printf("\n Call - AH : %02X AL : %02X DX : %04X ",regs.h.ah, regs.h.al, regs.x.dx);
int86(0x14,®s,®s);
printf("\n Return - AH : %02X AL : %02X",regs.h.ah,regs.h.al);
}