home *** CD-ROM | disk | FTP | other *** search
/ Super Net 1 / SUPERNET_1.iso / PC / OTROS / MSDOS / NCSA / TEL2307S.ZIP / NET14 / ST.C < prev    next >
Encoding:
C/C++ Source or Header  |  1993-11-19  |  1.9 KB  |  117 lines

  1. //Really small program to test net14.exe with - RMG 931100
  2.  
  3. #include <stdio.h>
  4. #include <dos.h>
  5. #ifdef SERIALCOM
  6. #include <bios.h>
  7. #endif
  8. #include <conio.h>
  9.  
  10. #define PORT 0
  11. #define HOST "void"
  12.  
  13. void main(int argc, char *argv[])
  14. {
  15.   char c=0,in,stat;
  16.   void initb(char *);
  17.   int  chkb(void);
  18.   int  getb(char *);
  19.   int  putb(char);
  20.  
  21.   if(argc == 2) {
  22.     if(strcmp(argv[1],"-o"))
  23.       initb(argv[1]);
  24.   }
  25.   else {
  26.     printf("Usage: st {-o | <hostname>}\n");
  27.     exit(1);
  28.   }
  29.  
  30.   while(1) {
  31.     while(!kbhit()) {
  32.       stat=chkb();
  33.       if(stat & 1) {
  34.         in=getb(&c);
  35.         putch(c);
  36.         if(in)
  37.           printf("error %d getting byte\n",in);
  38.       }
  39.     }
  40.     c=getch();
  41.     putb(c);
  42.   }
  43.  
  44. return;
  45. }
  46.  
  47.  
  48. int getb(char *c)
  49. {
  50.   char local_c;
  51. #ifdef SERIALCOM
  52.   int i;
  53. #endif
  54.   union _REGS inregs,outregs;
  55.   struct _SREGS segregs;
  56.  
  57. #ifdef SERIALCOM
  58.   i = (char) _bios_serialcom(_COM_RECEIVE, PORT, 0);
  59.   local_c = i;
  60. #else
  61.   inregs.h.ah = (char) 2;
  62.   inregs.x.dx = (char) PORT;
  63.   _int86x( 0x14, &inregs, &outregs, &segregs);
  64.   local_c = (char) outregs.h.al;
  65. #endif
  66.   *c = local_c;
  67.  
  68. return((int) outregs.h.ah);
  69. }
  70.  
  71.  
  72. int chkb(void)
  73. {
  74.   union _REGS inregs, outregs;
  75.   struct _SREGS segregs;
  76.  
  77.   inregs.h.ah = (char) 3;
  78.   inregs.x.dx = (char) PORT;
  79.   _int86x( 0x14, &inregs, &outregs, &segregs);
  80.  
  81. return((int) outregs.h.ah);
  82. }
  83.  
  84.  
  85. int putb(char c)
  86. {
  87.   union _REGS inregs,outregs;
  88.   struct _SREGS segregs;
  89.  
  90.   inregs.h.ah = (char) 1;
  91.   inregs.h.al = (char) c;
  92.   inregs.x.dx = (char) PORT;
  93.   _int86x( 0x14, &inregs, &outregs, &segregs);
  94.  
  95. return((int) outregs.h.ah);
  96. }
  97.  
  98.  
  99. void initb(char *host)
  100. {
  101.   int i,l;
  102.   union _REGS inregs,outregs;
  103.   struct _SREGS segregs;
  104.  
  105.   inregs.h.ah = 0;
  106.   inregs.x.dx = PORT;
  107.   _int86x( 0x14, &inregs, &outregs, &segregs);
  108.  
  109.   putb(2);
  110.   l=strlen(host);
  111.   for(i=0;i<l;i++)
  112.     putb(host[i]);
  113.   putb(3);
  114.  
  115. return;
  116. }
  117.