home *** CD-ROM | disk | FTP | other *** search
- /********************************************************/
- /* DEMO.C */
- /* Demonstration des Multitasking-Moduls MT.C */
- /* (C) 1990 J.Peter & toolbox */
- /********************************************************/
-
- #include <math.h>
- #include <string.h>
- #include <dos.h>
- #include <conio.h>
- #include <stdio.h>
- #include <fcntl.h>
- #include <stdlib.h>
- #include <stddef.h>
-
- #define escape 0x11B /* Keycode der <Esc> Taste */
- #define break_key 0x2E03
-
- extern int def_w[3][4];
-
- FILE *stream;
-
- key() /* Prozedur liest ein Zeichen von der Tastatur */
- {
- struct REGPACK regs;
- regs.r_ax=0;
- intr(0x16,®s);
- return(regs.r_ax);
- }
-
-
-
- p1() /*Prozedur gibt die Datei MT.C auf dem Bildschirm aus*/
- {
- char s[129];
- int i;
- if (stream==NULL) {
- p();
- cprintf("Datei MT.C konnte nicht geöffnet werden !");
- v();
- }
- else {
- while (fgets(s,128,stream)!=NULL){ /* Lesen e. Zeile */
-
- for (i=0; s[i]!=0; ++i) /* Entfernen d. Steuerz. */
- if (s[i]<32 && s[i]!=13 && s[i]!=10) s[i]=32;
-
- p();
- gotoxy(1,wherey());
- cprintf("%s",s);
- v();
- delay(20);
- }
- p();
- gotoxy(1,wherey()+1);
- cprintf ("Prozeß 1 beendet");
- v();
- }
- }
-
-
-
- p2() /* Berechnet die Quadratzahlen von 1 bis 1000 */
- {
- int j;
- double r;
- for (j=0; j<=1000; ++j) {
- r=pow((double) j,2.0);
- p();
- gotoxy(1,wherey());
- cprintf("%.18f",r);
- v();
- delay(10);
- }
- p();
- gotoxy(1,wherey());
- v();
- cprintf("Prozeß 2 beendet");
- }
-
- p3()
- {
- int i;
- p();
- cprintf("Im oberen,linken Fenster läuft ");
- cprintf("ein Prozeß der die Datei ");
- cprintf("MT.C liest und ausgibt. Rechts ");
- cprintf("daneben berechnet ein ");
- cprintf("weiterer Prozeß die Quadratzahlen ");
- cprintf("von 1-1000. ");
- cprintf("Diesem Fenster ist ein Prozeß ");
- cprintf("zugeordnet der Zeichen von ");
- cprintf("der Tastatur liest. Sie können ");
- cprintf("ihn mit <Esc> beenden. ");
- cprintf("<Ctrl>+<C> beendet alle Prozesse ");
- cprintf("außer diesem. ");
- v();
-
- do {
- if ((i=key())==break_key) stop_all_process();
- else if (i!=escape) {
- putch(i);
- }
- } while (i!=escape);
-
- cprintf("Prozeß 3 beendet ");
- }
-
-
- main()
- {
- int i;
-
- clrscr();
-
- i=open("mt.c",O_RDWR);
-
- stream=fdopen(i,"rb");
-
- gotoxy(4,1);
- cprintf(
- "DEMO Multitasking in Turbo-C ");
- cprintf(
- " Version 1.0 (C) 1990 by J.Peter & toolbox");
-
- draw_box(1,2,60,15);
- draw_box(61,2,80,25);
- draw_box(1,16,60,25);
-
- def_w[0][0]=2;
- def_w[0][1]=3;
- def_w[0][2]=59;
- def_w[0][3]=14;
-
- def_w[1][0]=62;
- def_w[1][1]=3;
- def_w[1][2]=79;
- def_w[1][3]=24;
-
- def_w[2][0]=2;
- def_w[2][1]=17;
- def_w[2][2]=59;
- def_w[2][3]=24;
-
- co_start(1,3,&p1,&p2,&p3);
- close (i);
-
- window(1,1,80,25);
-
- gotoxy(2,25);
- cprintf("Alle Prozesse beendet (beliebige Taste)");
- key();
- }
- /*****************************************************/
- /* DEMO.C */