home *** CD-ROM | disk | FTP | other *** search
/ DP Tool Club 13 / CD_ASCQ_13_0494.iso / maj / 2233 / testmodc.c < prev    next >
Text File  |  1993-05-29  |  3KB  |  105 lines

  1. /*
  2. ╔═════════════════════════════════════════════════════════════════════════════╗
  3. ║ NOM       : TESTMODC.C                                                      ║
  4. ║ FONCTION  : Démonstration simple de l'utilisation de MODEM.C...             ║
  5. ║ COPYRIGHT : HETRU Fabrice 1991-1993.                                        ║
  6. ╚═════════════════════════════════════════════════════════════════════════════╝
  7. */
  8.  
  9.  
  10.  
  11. #include "modem.c"
  12.  
  13. #include <stdio.h>
  14. #include <ctype.h>
  15. #include <process.h>
  16.  
  17. #define Int1B     0x1B  /* N° d'int. BIOS gérant le "Ctrl-Break".           */
  18.  
  19.  
  20. void interrupt (*OldIBreak) ();
  21.  
  22.  
  23. void interrupt CtrlBreak()
  24.   {
  25.   }
  26.  
  27.  
  28. int kb_hit()
  29.   {
  30.   inregs.h.ah = 1;
  31.   int86(0x16,&inregs,&outregs);
  32.   return( !(outregs.x.flags & 64) );
  33.   }
  34.  
  35.  
  36. int get_clav()
  37.   {
  38.   int h,l;
  39.  
  40.   if (kb_hit())
  41.     {
  42.     inregs.h.ah = 0;
  43.     int86(0x16,&inregs,&outregs);
  44.     l = outregs.h.al;
  45.     h = outregs.h.ah;
  46.     if (l==0) l = h+0x100;
  47.     return(l);
  48.     }
  49.   else return(0);
  50.   }
  51.  
  52.  
  53. main()
  54.   {
  55.   unsigned char num_com;
  56.   int fmt;
  57.   int InBuffSz,OutBuffSz;
  58.   int car = ' ';
  59.   unsigned char cs,n;
  60.   unsigned char modsc;
  61.   int Curs_OFF = 0x0720;
  62.  
  63.   printf("Test du modem HAYES grâce à l'interface en C.\n");
  64.   if (Check_COMM_Present()==0)
  65.     {
  66.     printf("Chargez SLOWCOMM ou FASTCOMM S.V.P.\n");
  67.     exit(1);
  68.     }
  69.   else printf("<I>nitialise  <C>onnecte  <R>accroche  F==>FIN\n");
  70.   Open_COMM();
  71.   Init_status();
  72.   num_com = Voie_active - 0x30;
  73.   Init_COMM('7','1','N',2400,&InBuffSz,&OutBuffSz);
  74.   OldIBreak = getvect(Int1B);
  75.   setvect(Int1B,CtrlBreak);
  76.   Show_CorF = TRUE;
  77.   install_Clock(num_com);
  78.   while(car!='F')
  79.     {
  80.     if (kb_hit())
  81.       {
  82.       car=toupper(get_clav());
  83.       switch(car)
  84.         {
  85.         case 'I': { CmdeToModem(InitMod,''); break; }
  86.         case 'C': { CmdeToModem(Connect,''); break; }
  87.         case 'R': { CmdeToModem(Raccroch,''); break; }
  88.         case 59: printf("<I>nitialise  <C>onnecte  <R>accroche  F==>FIN\n");
  89.         }
  90.       }
  91.     if (CheckBufferIn(&n))
  92.       {
  93.       if (ReadSerie(&cs,1,&n)==0) printf("%c",cs);
  94.       }
  95.     }
  96.   Close_COMM();
  97.   un_install_Clock();
  98.   modsc = peekb(0x40,0x49);
  99.   if ( (modsc==2) | (modsc==3) | (modsc==7) )
  100.     movedata(FP_SEG(&Curs_OFF),FP_OFF(&Curs_OFF),seg_ecran,158,2);
  101.   else movedata(FP_SEG(&Curs_OFF),FP_OFF(&Curs_OFF),seg_ecran,76,2);
  102.   Reset_Init_status(Voie_active,Format);
  103.   printf("Test terminé.\n");
  104.   setvect(Int1B,OldIBreak);
  105.   }