home *** CD-ROM | disk | FTP | other *** search
/ Turbo Toolbox / Turbo_Toolbox.iso / 1990 / 03 / multi / demo.c next >
Text File  |  1989-12-19  |  3KB  |  155 lines

  1. /********************************************************/
  2. /*                         DEMO.C                       */
  3. /*       Demonstration des Multitasking-Moduls MT.C     */
  4. /*               (C) 1990 J.Peter & toolbox             */
  5. /********************************************************/
  6.  
  7. #include <math.h>
  8. #include <string.h>
  9. #include <dos.h>
  10. #include <conio.h>
  11. #include <stdio.h>
  12. #include <fcntl.h>
  13. #include <stdlib.h>
  14. #include <stddef.h>
  15.  
  16. #define escape 0x11B      /* Keycode der <Esc> Taste */
  17. #define break_key 0x2E03
  18.  
  19. extern int def_w[3][4];
  20.  
  21. FILE *stream;
  22.  
  23. key() /* Prozedur liest ein Zeichen von der Tastatur */
  24. {
  25.  struct REGPACK regs;
  26.  regs.r_ax=0;
  27.  intr(0x16,®s);
  28.  return(regs.r_ax);
  29. }
  30.  
  31.  
  32.  
  33. p1() /*Prozedur gibt die Datei MT.C auf dem Bildschirm aus*/
  34. {
  35.  char s[129];
  36.   int i;
  37.   if (stream==NULL) {
  38.     p();
  39.     cprintf("Datei MT.C konnte nicht geöffnet werden !");
  40.     v();
  41.   }
  42.   else {
  43.    while (fgets(s,128,stream)!=NULL){ /* Lesen e. Zeile */
  44.  
  45.     for (i=0; s[i]!=0; ++i) /* Entfernen d. Steuerz. */
  46.       if (s[i]<32 && s[i]!=13 && s[i]!=10) s[i]=32;
  47.  
  48.     p();
  49.     gotoxy(1,wherey());
  50.     cprintf("%s",s);
  51.     v();
  52.     delay(20);
  53.    }
  54.   p();
  55.   gotoxy(1,wherey()+1);
  56.   cprintf ("Prozeß 1 beendet");
  57.   v();
  58.   }
  59. }
  60.  
  61.  
  62.  
  63. p2()      /* Berechnet die Quadratzahlen von 1 bis 1000 */
  64. {
  65.  int j;
  66.  double r;
  67.  for (j=0; j<=1000; ++j) {
  68.     r=pow((double) j,2.0);
  69.     p();
  70.     gotoxy(1,wherey());
  71.     cprintf("%.18f",r);
  72.     v();
  73.     delay(10);
  74.  }
  75.  p();
  76.  gotoxy(1,wherey());
  77.  v();
  78.  cprintf("Prozeß 2 beendet");
  79. }
  80.  
  81. p3()
  82. {
  83.  int i;
  84.  p();
  85.  cprintf("Im oberen,linken Fenster läuft ");
  86.  cprintf("ein Prozeß der die Datei   ");
  87.  cprintf("MT.C liest und ausgibt. Rechts ");
  88.  cprintf("daneben berechnet ein      ");
  89.  cprintf("weiterer Prozeß die Quadratzahlen ");
  90.  cprintf("von 1-1000.             ");
  91.  cprintf("Diesem Fenster ist ein Prozeß ");
  92.  cprintf("zugeordnet der Zeichen von  ");
  93.  cprintf("der Tastatur liest. Sie können ");
  94.  cprintf("ihn mit <Esc> beenden.     ");
  95.  cprintf("<Ctrl>+<C> beendet alle Prozesse ");
  96.  cprintf("außer diesem.            ");
  97.  v();
  98.  
  99.  do {
  100.   if ((i=key())==break_key) stop_all_process();
  101.   else if (i!=escape) {
  102.     putch(i);
  103.   }
  104.  } while (i!=escape);
  105.  
  106.  cprintf("Prozeß 3 beendet ");
  107. }
  108.  
  109.  
  110. main()
  111. {
  112.   int i;
  113.  
  114.   clrscr();
  115.  
  116.   i=open("mt.c",O_RDWR);
  117.  
  118.   stream=fdopen(i,"rb");
  119.  
  120.     gotoxy(4,1);
  121.     cprintf(
  122.     "DEMO Multitasking in Turbo-C ");
  123.     cprintf(
  124.     " Version 1.0 (C) 1990 by J.Peter & toolbox");
  125.  
  126.     draw_box(1,2,60,15);
  127.     draw_box(61,2,80,25);
  128.     draw_box(1,16,60,25);
  129.  
  130.     def_w[0][0]=2;
  131.     def_w[0][1]=3;
  132.     def_w[0][2]=59;
  133.     def_w[0][3]=14;
  134.  
  135.     def_w[1][0]=62;
  136.     def_w[1][1]=3;
  137.     def_w[1][2]=79;
  138.     def_w[1][3]=24;
  139.  
  140.     def_w[2][0]=2;
  141.     def_w[2][1]=17;
  142.     def_w[2][2]=59;
  143.     def_w[2][3]=24;
  144.  
  145.   co_start(1,3,&p1,&p2,&p3);
  146.   close (i);
  147.  
  148.   window(1,1,80,25);
  149.  
  150.   gotoxy(2,25);
  151.   cprintf("Alle Prozesse beendet (beliebige Taste)");
  152.   key();
  153. }
  154. /*****************************************************/
  155. /*                      DEMO.C                       */