home *** CD-ROM | disk | FTP | other *** search
/ High Voltage Shareware / high1.zip / high1 / DIR2 / DIGIPROG.ZIP / FCT0.C < prev    next >
C/C++ Source or Header  |  1993-03-29  |  2KB  |  72 lines

  1.  
  2. #include <dos.h>
  3. #include <stdio.h>
  4.  
  5. main()
  6. {
  7.  
  8. struct REGPACK  sregs;
  9.  
  10. int    y,x,numbytes,dx;
  11.  
  12. union REGS regs;
  13. /*struct SREGS sregs;*/
  14.  
  15. /* special char - <CR> */
  16.  
  17.  
  18.     printf("\nEnter DX : ");
  19.     scanf("%d",&dx); while(kbhit()) getch();
  20.     regs.h.al = 0;
  21. DBits:
  22.     printf("\nSelect Data Bits  5)  6)  7)  8)  : ");
  23.     switch(toupper(getch()))
  24.     {
  25.         case '5' :    regs.h.al |= 0x0; break;
  26.         case '6' :    regs.h.al |= 0x1; break;
  27.         case '7' :    regs.h.al |= 0x2; break;
  28.         case '8' :    regs.h.al |= 0x3; break;
  29.         default  : goto DBits;
  30.     }
  31. SBits:
  32.     printf("\nSelect Stop Bits  1)  2)  : ");
  33.     switch(toupper(getch()))
  34.     {
  35.         case '1' :    regs.h.al |= 0x0; break;
  36.         case '2' :    regs.h.al |= 0x4; break;
  37.         default  : goto SBits;
  38.     }
  39. Par:
  40.     printf("\nSelect Parity  N)one   O)dd   E)ven  : ");
  41.     switch(toupper(getch()))
  42.     {
  43.         case 'N' :    regs.h.al |= 0x0; break;
  44.         case 'O' :    regs.h.al |= 0x8; break;
  45.         case 'E' :    regs.h.al |= 0x18; break;
  46.         default  : goto Par;
  47.     }
  48. Baud:
  49.     printf("\nSelect Parity  A) 110/19200  B) 150   C) 300   D) 600  \n");
  50.     printf(  "               E) 1200       F) 2400  G) 4800  H) 9600 ");
  51.     switch(toupper(getch()))
  52.     {
  53.         case 'A' :    regs.h.al |= 0x00; break;
  54.         case 'B' :    regs.h.al |= 0x20; break;
  55.         case 'C' :    regs.h.al |= 0x40; break;
  56.         case 'D' :    regs.h.al |= 0x60; break;
  57.         case 'E' :    regs.h.al |= 0x80; break;
  58.         case 'F' :    regs.h.al |= 0xA0; break;
  59.         case 'G' :    regs.h.al |= 0xC0; break;
  60.         case 'H' :    regs.h.al |= 0xE0; break;
  61.         default  : goto Par;
  62.     }
  63.     regs.h.ah = 0x0;
  64.     regs.x.dx = dx;
  65.  
  66.     printf("\n Call   - AH : %02X  AL : %02X  DX : %04X ",regs.h.ah, regs.h.al, regs.x.dx);
  67.  
  68.     int86(0x14,®s,®s);
  69.     printf("\n Return - AH : %02X  AL : %02X",regs.h.ah,regs.h.al);
  70.  
  71.  
  72. }