home *** CD-ROM | disk | FTP | other *** search
- #include <compiler.h>
- #include <ts.h>
-
-
- extern TIMER *_tpfrnt;
- extern int _ts_trace;
-
-
- TS_SPY()
- {
- PROCESS *p, *pl[20];
- CHAN *cn;
- INTLST *il;
- TIMER *tp;
- CRCLASS *cr;
- int Line, i, cpuflags;
- char *s = "SXC ";
-
- for (;;)
- {
- {
- char *s = "DOS 0";
- s[4] = '0' + *_DosFlag;
- prout(75, 1, NORMVID, s);
- }
-
- for (i = 0; i < 4; i++)
- {
- char *s = "0 ";
- if (crit_tab[i].crcur)
- {
- cpuflags = cli() ;
-
- cr = &crit_tab[i];
- s[0] = '0' + cr->crlev; prout(20, i + 1, NORMVID, s);
- prout(22, i + 1, NORMVID, cr->crcur->name);
- if (cr->crblkd)
- prout(30, i + 1, NORMVID, cr->crblkd->name);
- else
- prout(30, i + 1, NORMVID, " ");
-
- putf(cpuflags);
- }
- else prout(20, i + 1, NORMVID, " ");
- }
-
- cpuflags = cli();
- pl[i = 1] = curproc;
-
- for (p = curproc->nxt; p != curproc; p = p->nxt)
- {
- pl[++i] = p;
- if (i >= 20) break;
- }
- putf( cpuflags ) ;
-
- Line = 1;
- for (Line = 1; Line <= i; ++Line)
- {
- char *s = "SXC ";
-
- p = pl[Line];
- if (! (p->status & (ASLEEP | CRITWAIT | CHANWAIT)))
- prout(44, Line, NORMVID, "GO ");
- else
- {
- s[0] = (p->status & ASLEEP ) ? 'S' : ' ';
- s[1] = (p->status & CHANWAIT) ? 'C' : ' ';
- if (p->status & CRITWAIT)
- {
- s[2] = 'X';
- s[3] = p->crwait + '0';
- }
- else
- {
- s[2] = ' ';
- s[3] = ' ';
- }
- prout(44, Line, NORMVID, s);
- }
-
- prout(50, Line, NORMVID, p->name);
- }
- prout(50, Line, NORMVID, " ");
-
-
- Line = 1;
- for( cn = _chfrnt ; cn; cn = cn->nxt)
- prout(60, Line++, NORMVID, cn->cname);
-
- Line = 1;
- for( il = (INTLST*)&ilhead ; il->nxt; il = il->nxt )
- prout(70, Line++, NORMVID, "*");
- prout(70, Line, NORMVID, " ");
-
- Line = 1;
- for( tp = _tpfrnt ; tp ; tp = tp->nxt )
- prout(72, Line++, NORMVID, "T");
-
- prout(72, Line, NORMVID, " ");
-
-
- guc();
- }
- }
-
-
- GLOBAL TS_LIST()
- {
- static PROCESS *spy = NULLPTR;
-
- if (spy) { kill(spy); spy = NULLPTR; _ts_trace = 0;}
- else { spy = spawn("Big Spy", 0x100, TS_SPY); _ts_trace = 1; }
- }
-