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