mirror of
https://github.com/SEPPDROID/Digital-Research-Source-Code.git
synced 2025-10-25 17:34:06 +00:00
2488 lines
130 KiB
Plaintext
2488 lines
130 KiB
Plaintext
PL/M-86 COMPILER CCP/M-86 1.0 SYSTAT PROCESS - TRANSIENT PAGE 1
|
||
|
||
|
||
ISIS-II PL/M-86 V2.0 COMPILATION OF MODULE STATUS
|
||
OBJECT MODULE PLACED IN SYSTAT.OBJ
|
||
COMPILER INVOKED BY: :F0: SYSTAT.PLM XREF OPTIMIZE(3) DEBUG
|
||
|
||
|
||
|
||
$title('CCP/M-86 1.0 Systat Process - Transient')
|
||
$compact
|
||
/* want 32 bit pointers */
|
||
1 status:
|
||
do;
|
||
|
||
$include (:f2:copyrt.lit)
|
||
=
|
||
= /*
|
||
= Copyright (C) 1983
|
||
= Digital Research
|
||
= P.O. Box 579
|
||
= Pacific Grove, CA 93950
|
||
= */
|
||
=
|
||
|
||
$include (:f2:vaxcmd.lit)
|
||
=
|
||
= /**** VAX commands for generation - read the name of this program
|
||
= for PROGNAME below.
|
||
=
|
||
= $ util := PROGNAME
|
||
= $ ccpmsetup ! set up environment
|
||
= $ assign 'f$directory()' f1: ! use local dir for temp files
|
||
= $ plm86 'util'.plm xref 'p1' optimize(3) debug
|
||
= $ link86 f2:scd.obj, 'util'.obj to 'util'.lnk
|
||
= $ loc86 'util'.lnk od(sm(code,dats,data,stack,const)) -
|
||
= ad(sm(code(0),dats(10000h))) ss(stack(+32)) to 'util'.
|
||
= $ h86 'util'
|
||
=
|
||
= ***** Then, on a micro:
|
||
= A>vax progname.h86 $fans
|
||
= A>gencmd progname data[b1000]
|
||
=
|
||
= ***** Notes: Stack is increased for interrupts. Const(ants) are last
|
||
= to force hex generation.
|
||
= ****/
|
||
|
||
$include (scomon.plm)
|
||
=
|
||
=
|
||
=
|
||
=
|
||
=
|
||
=
|
||
= /* Common Include Module for RSP and Transient CCPMSTAT */
|
||
=
|
||
=
|
||
= $include(:f2:newcom.lit)
|
||
=1
|
||
2 1 =1 declare
|
||
PL/M-86 COMPILER CCP/M-86 1.0 SYSTAT PROCESS - TRANSIENT PAGE 2
|
||
|
||
|
||
=1 lit literally 'literally',
|
||
=1 dcl lit 'declare',
|
||
=1 true lit '0ffh',
|
||
=1 false lit '0',
|
||
=1 no lit 'not',
|
||
=1 boolean lit 'byte',
|
||
=1 forever lit 'while true',
|
||
=1 tab lit '9';
|
||
=1
|
||
3 1 = dcl buff (128) byte external;
|
||
=
|
||
=
|
||
4 1 = mon1:
|
||
= procedure (func,info) external;
|
||
5 2 = dcl func byte;
|
||
6 2 = dcl info address;
|
||
7 2 = end mon1;
|
||
=
|
||
8 1 = mon2:
|
||
= procedure (func,info) byte external;
|
||
9 2 = dcl func byte;
|
||
10 2 = dcl info address;
|
||
11 2 = end mon2;
|
||
=
|
||
12 1 = mon3:
|
||
= procedure (func,info) address external;
|
||
13 2 = dcl func byte;
|
||
14 2 = dcl info address;
|
||
15 2 = end mon3;
|
||
=
|
||
16 1 = mon4:
|
||
= procedure (func,info) pointer external;
|
||
17 2 = dcl func byte;
|
||
18 2 = dcl info address;
|
||
19 2 = end mon4;
|
||
=
|
||
=
|
||
20 1 = patch: procedure; /* dummy area for patching code segments */
|
||
21 2 = declare i address;
|
||
22 2 = i=i+5; i=i+5; i=i+5; i=i+5; i=i+5;
|
||
27 2 = i=i+5; i=i+5; i=i+5; i=i+5; i=i+5;
|
||
32 2 = i=i+5; i=i+5; i=i+5; i=i+5; i=i+5;
|
||
37 2 = i=i+5; i=i+5; i=i+5; i=i+5; i=i+5;
|
||
42 2 = i=i+5; i=i+5; i=i+5; i=i+5; i=i+5;
|
||
47 2 = i=i+5; i=i+5; i=i+5; i=i+5; i=i+5;
|
||
52 2 = i=i+5; i=i+5; i=i+5; i=i+5; i=i+5;
|
||
57 2 = i=i+5; i=i+5; i=i+5; i=i+5; i=i+5;
|
||
62 2 = i=i+5; i=i+5; i=i+5; i=i+5; i=i+5;
|
||
67 2 = i=i+5; i=i+5; i=i+5; i=i+5; i=i+5;
|
||
72 2 = i=i+5; i=i+5; i=i+5; i=i+5; i=i+5;
|
||
77 2 = end patch;
|
||
=
|
||
=
|
||
78 1 = dcl maxpd byte initial (63); /* Maximum # process descript's*/
|
||
79 1 = dcl maxmd byte initial (80); /* Maximum # memory descriptors*/
|
||
80 1 = dcl maxqflags byte initial (40h); /* Max Value for a queue flag */
|
||
81 1 = dcl freename (*)byte initial ('* FREE *'); /* For free memory partitions */
|
||
PL/M-86 COMPILER CCP/M-86 1.0 SYSTAT PROCESS - TRANSIENT PAGE 3
|
||
|
||
|
||
82 1 = dcl maxqueues byte initial (64); /* Maximum # of system queues */
|
||
83 1 = dcl lbracket byte initial ('[');
|
||
84 1 = dcl rbracket byte initial (']');
|
||
85 1 = dcl repeat byte; /* Controls continuous display */
|
||
86 1 = dcl intrval word; /* Controls update timing */
|
||
87 1 = dcl specified byte; /* Command Line argument flag */
|
||
88 1 = dcl flaglen byte initial (3);
|
||
=
|
||
= /***************************************************************************/
|
||
= /* */
|
||
= /* Terminal-dependent Control Characters */
|
||
= /* */
|
||
= /***************************************************************************/
|
||
=
|
||
89 1 = dcl clearseq (6) byte initial (2,01bh,'E',0,0,0); /* ESC E = clear screen*/
|
||
90 1 = dcl homeseq (6) byte initial (2,01bh,'H',0,0,0); /* ESC H = home cursor */
|
||
91 1 = dcl CR lit '13'; /* CR = carriage return*/
|
||
92 1 = dcl LF lit '10'; /* LF = line feed */
|
||
=
|
||
=
|
||
= $include (:f2:mdsat.lit)
|
||
=1
|
||
93 1 =1 declare md$structure literally
|
||
=1 'structure(
|
||
=1 link word,
|
||
=1 start word,
|
||
=1 length word,
|
||
=1 plist word,
|
||
=1 unused word)';
|
||
=1
|
||
94 1 =1 declare ms$structure literally
|
||
=1 'structure(
|
||
=1 link word,
|
||
=1 start word,
|
||
=1 length word,
|
||
=1 flags word,
|
||
=1 mau word)';
|
||
=1
|
||
95 1 =1 declare sat$structure literally
|
||
=1 'structure(
|
||
=1 start word,
|
||
=1 len word,
|
||
=1 num$allocs byte)';
|
||
=1
|
||
= $include (:f2:proces.lit)
|
||
=1
|
||
=1 /*
|
||
=1 Proces Literals MP/M-8086 II
|
||
=1 */
|
||
=1
|
||
96 1 =1 declare pnamsiz literally '8';
|
||
=1
|
||
97 1 =1 declare pd$hdr literally 'structure
|
||
=1 (link word,thread word,stat byte,prior byte,flag word,
|
||
=1 name (8) byte,uda word,dsk byte,user byte,ldsk byte,luser byte,
|
||
=1 mem word';
|
||
=1
|
||
PL/M-86 COMPILER CCP/M-86 1.0 SYSTAT PROCESS - TRANSIENT PAGE 4
|
||
|
||
|
||
98 1 =1 declare pd$structure literally 'pd$hdr,
|
||
=1 dvract word,wait word,org byte,net byte,parent word,
|
||
=1 cns byte,abort byte,conmode word,lst byte,sf3 byte,sf4 byte,sf5 byte,
|
||
=1 reservd (4) byte,pret word,scratch word)';
|
||
=1
|
||
99 1 =1 declare psrun lit '00',
|
||
=1 pspoll lit '01',
|
||
=1 psdelay lit '02',
|
||
=1 psswap lit '03',
|
||
=1 psterm lit '04',
|
||
=1 pssleep lit '05',
|
||
=1 psdq lit '06',
|
||
=1 psnq lit '07',
|
||
=1 psflagwait lit '08',
|
||
=1 psciowait lit '09';
|
||
=1
|
||
100 1 =1 declare pf$sys lit '00001h',
|
||
=1 pf$keep lit '00002h',
|
||
=1 pf$kernal lit '00004h',
|
||
=1 pf$pure lit '00008h',
|
||
=1 pf$table lit '00010h',
|
||
=1 pf$resource lit '00020h',
|
||
=1 pf$raw lit '00040h',
|
||
=1 pf$ctlc lit '00080h',
|
||
=1 pf$active lit '00100h',
|
||
=1 pf$tempkeep lit '00200h',
|
||
=1 pf$ctld lit '00400h',
|
||
=1 pf$childabort lit '00800h',
|
||
=1 pf$noctls lit '01000h';
|
||
=1
|
||
101 1 =1 declare pcm$11 lit '00001h',
|
||
=1 pcm$ctls lit '00002h',
|
||
=1 pcm$rout lit '00004h',
|
||
=1 pcm$ctlc lit '00008h',
|
||
=1 pcm$ctlo lit '00080h',
|
||
=1 pcm$rsx lit '00300h';
|
||
= $include (:f2:sd.lit)
|
||
=1
|
||
=1 /* System Data Page */
|
||
=1
|
||
102 1 =1 dcl sysdat$pointer pointer;
|
||
103 1 =1 dcl sysdat$ptr structure(
|
||
=1 offset word,
|
||
=1 segment word) at (@sysdat$pointer);
|
||
104 1 =1 declare sd based sysdat$pointer structure (
|
||
=1 supmod (4) word,
|
||
=1 /* rtmmod (4) word,
|
||
=1 memmod (4) word,
|
||
=1 ciomod (4) word,
|
||
=1 bdosmod (4) word,
|
||
=1 xiosmod (4) word,
|
||
=1 netmod (4) word,
|
||
=1 reservd (4) word */
|
||
=1 space(28) word,
|
||
=1 mpmseg word,
|
||
=1 rspseg word,
|
||
=1 endseg word,
|
||
PL/M-86 COMPILER CCP/M-86 1.0 SYSTAT PROCESS - TRANSIENT PAGE 5
|
||
|
||
|
||
=1 module$map byte,
|
||
=1 ncns byte,
|
||
=1 nlst byte,
|
||
=1 nccb byte,
|
||
=1 nflags byte,
|
||
=1 srchdisk byte,
|
||
=1 mmp word,
|
||
=1 nslaves byte,
|
||
=1 dayfile byte,
|
||
=1 tempdisk byte,
|
||
=1 tickspersec byte,
|
||
=1 lul word,
|
||
=1 ccb word,
|
||
=1 flags word,
|
||
=1 mdul word,
|
||
=1 mfl word,
|
||
=1 pul word,
|
||
=1 qul word,
|
||
=1 qmau (4) word,
|
||
=1 rlr word,
|
||
=1 dlr word,
|
||
=1 drl word,
|
||
=1 plr word,
|
||
=1 slr word,
|
||
=1 thrdrt word,
|
||
=1 qlr word,
|
||
=1 mal word,
|
||
=1 version word,
|
||
=1 vernum word,
|
||
=1 mpmvernum word,
|
||
=1 tod (2) word,
|
||
=1 tod_sec byte,
|
||
=1 ncondev byte,
|
||
=1 nlstdev byte,
|
||
=1 nciodev byte,
|
||
=1 lcb (2) word,
|
||
=1 lckmax byte,
|
||
=1 opmax byte,
|
||
=1 sysltot (2) word,
|
||
=1 cmod byte );
|
||
=1
|
||
=1
|
||
105 1 =1 declare sd$byte based sysdat$pointer (1) byte;
|
||
=1
|
||
= $include (:f2:qd.lit)
|
||
=1
|
||
=1 /* Queue Descriptor */
|
||
=1
|
||
106 1 =1 dcl qnamsiz lit '8';
|
||
=1
|
||
107 1 =1 dcl qd$structure lit 'structure(
|
||
=1 link word,
|
||
=1 net byte,
|
||
=1 org byte,
|
||
=1 flags word,
|
||
=1 name(qnamsiz) byte,
|
||
=1 msglen word,
|
||
PL/M-86 COMPILER CCP/M-86 1.0 SYSTAT PROCESS - TRANSIENT PAGE 6
|
||
|
||
|
||
=1 nmsgs word,
|
||
=1 dq word,
|
||
=1 nq word,
|
||
=1 msgcnt word,
|
||
=1 msgout word,
|
||
=1 buffer word)';
|
||
=1
|
||
=1 /* queue flag values */
|
||
=1
|
||
108 1 =1 dcl qf$mx lit '001h'; /* Mutual Exclusion */
|
||
109 1 =1 dcl qf$keep lit '002h'; /* NO DELETE */
|
||
110 1 =1 dcl qf$hide lit '004h'; /* Not User writable */
|
||
111 1 =1 dcl qf$rsp lit '008h'; /* rsp queue */
|
||
112 1 =1 dcl qf$table lit '010h'; /* from qd table */
|
||
113 1 =1 dcl qf$rpl lit '020h'; /* rpl queue */
|
||
114 1 =1 dcl qf$dev lit '040h'; /* device queue */
|
||
=1
|
||
=1 /* Queue Parameter Block */
|
||
=1
|
||
115 1 =1 dcl qpb$structure lit 'structure(
|
||
=1 flgs byte,
|
||
=1 net byte,
|
||
=1 qaddr word,
|
||
=1 nmsgs word,
|
||
=1 buffptr word,
|
||
=1 name (qnamsiz) byte )';
|
||
=1
|
||
= $include (:f2:flag.lit)
|
||
=1
|
||
=1 /* Flag Format */
|
||
=1
|
||
116 1 =1 dcl flag$structure lit 'structure(
|
||
=1 pd word,
|
||
=1 ignore byte)';
|
||
=1
|
||
= $include (:f2:uda.lit)
|
||
=1
|
||
=1 /* MP/M-86 II User Data Area format - August 8, 1981 */
|
||
=1
|
||
117 1 =1 declare uda$structure lit 'structure (
|
||
=1 dparam word,
|
||
=1 dma$ofst word,
|
||
=1 dma$seg word,
|
||
=1 func byte,
|
||
=1 searchl byte,
|
||
=1 searcha word,
|
||
=1 searchabase word,
|
||
=1 dcnt word,
|
||
=1 dblk word,
|
||
=1 error$mode byte,
|
||
=1 mult$cnt byte,
|
||
=1 df$password (8) byte,
|
||
=1 pd$cnt byte)';
|
||
=1
|
||
= $include (:f2:vccb.lit)
|
||
=1 /* Concurrent CP/M Character Control Block Structure */
|
||
=1
|
||
PL/M-86 COMPILER CCP/M-86 1.0 SYSTAT PROCESS - TRANSIENT PAGE 7
|
||
|
||
|
||
=1 /* +---------+---------+---------+---------+
|
||
=1 00 | attach | queue |
|
||
=1 +---------+---------+---------+---------+
|
||
=1 04 | flag | startcol| column | nchar |
|
||
=1 +---------+---------+---------+---------+
|
||
=1 08 | mimic | msource | pc | vc |
|
||
=1 +---------+---------+---------+---------+
|
||
=1 0C | btmp | resrvd | state |
|
||
=1 +---------+---------+---------+---------+
|
||
=1 10 | maxbufsiz | vinq |
|
||
=1 +---------+---------+---------+---------+
|
||
=1 14 | voutq | vcmxq |
|
||
=1 +---------+---------+---------+---------+
|
||
=1 18 | qpbflgs | qpbfill | qpbqaddr |
|
||
=1 +---------+---------+---------+---------+
|
||
=1 1C | qpbnmsgs | qpbbuffptr |
|
||
=1 +---------+---------+---------+---------+
|
||
=1 20 | qbuff | cosleep |
|
||
=1 +---------+---------+---------+---------+
|
||
=1 24 | usleep | vsleep |
|
||
=1 +---------+---------+---------+---------+
|
||
=1 28 | ... reserved ... |
|
||
=1 +---------+---------+---------+---------+
|
||
=1
|
||
=1
|
||
=1
|
||
=1
|
||
=1 */
|
||
=1
|
||
118 1 =1 dcl ccb$structure lit 'structure (attach address, queue address,
|
||
=1 flag byte, startcol byte, column byte, nchar byte, mimic byte, msource byte,
|
||
=1 ccb$tail1';
|
||
119 1 =1 dcl ccb$tail1 lit
|
||
=1 'pc byte, vc byte, btmp byte, reservd byte, state word, maxbufsiz word,
|
||
=1 ccb$tail2';
|
||
120 1 =1 dcl ccb$tail2 lit
|
||
=1 'vinq address, voutq address, vcmxq address,
|
||
=1 qpbflags byte, qpbresrvd byte, qpbqaddr address,
|
||
=1 qpbnmsgs address, qpbbuffptr address, qbuff address, cosleep word,
|
||
=1 usleep word, vsleep word, r1 word, r2 word)';
|
||
=1
|
||
121 1 =1 declare /* flag values */
|
||
=1 cf$listcp lit '001h', /* control P toggle */
|
||
=1 cf$compc lit '002h', /* suppress output */
|
||
=1 cf$switchs lit '004h', /* XIOS supports switch screening */
|
||
=1 cf$conout lit '008h', /* XIOS console output ownership */
|
||
=1 cf$vout lit '010h', /* process writing to VOUTQ */
|
||
=1 cf$bufp lit '020h'; /* toggle to control printer echo */
|
||
=1 /* on control P when background */
|
||
=1 /* and buffered */
|
||
=1 /* values of state byte */
|
||
=1 /* conout goes to XIOS */
|
||
=1
|
||
=1 /* state word flags */
|
||
=1
|
||
122 1 =1 dcl
|
||
=1 csm$buffered lit '0001h',
|
||
PL/M-86 COMPILER CCP/M-86 1.0 SYSTAT PROCESS - TRANSIENT PAGE 8
|
||
|
||
|
||
=1 csm$background lit '0002h',
|
||
=1 csm$purging lit '0004h',
|
||
=1 csm$noswitch lit '0008h',
|
||
=1 csm$suspend lit '0010h',
|
||
=1 csm$abort lit '0020h',
|
||
=1 csm$filefull lit '0040h',
|
||
=1 csm$ctrlS lit '0080h',
|
||
=1 csm$ctrlO lit '0100h',
|
||
=1 csm$ctrlP lit '0200h';
|
||
=1
|
||
123 1 =1 dcl x$init$offset lit '0Ch',
|
||
=1 x$init$pointer pointer,
|
||
=1 x$init$ptr structure (offset word, segment word) at (@x$init$pointer),
|
||
=1 x$init based x$init$pointer structure
|
||
=1 (tick byte, ticks$sec byte, door byte, resrvd1 (2) byte,
|
||
=1 nvcns byte, nccb byte, nlst byte, ccb word, lcb word);
|
||
=1
|
||
=1
|
||
124 1 =1 dcl lcb$structure lit 'structure (attach address, queue address,
|
||
=1 flag byte, startcol byte, column byte, nchar byte,
|
||
=1 mimic byte, msource byte)';
|
||
=1
|
||
= /*$include (:f2:ccb.lit)*/
|
||
=
|
||
125 1 = dcl pd$pointer pointer; /* double word bases for MP/M-86 data structures */
|
||
126 1 = dcl pd$ptr structure(
|
||
= offset word,
|
||
= segment word) at (@pd$pointer);
|
||
127 1 = dcl pd based pd$pointer pd$structure;
|
||
=
|
||
128 1 = dcl qd$pointer pointer;
|
||
129 1 = dcl qd$ptr structure(
|
||
= offset word,
|
||
= segment word) at (@qd$pointer);
|
||
130 1 = dcl qd based qd$pointer qd$structure;
|
||
=
|
||
131 1 = dcl md$pointer pointer;
|
||
132 1 = dcl md$ptr structure(
|
||
= offset word,
|
||
= segment word) at (@md$pointer);
|
||
133 1 = dcl md based md$pointer md$structure;
|
||
=
|
||
134 1 = dcl ms$pointer pointer;
|
||
135 1 = dcl ms$ptr structure(
|
||
= offset word,
|
||
= segment word) at (@ms$pointer);
|
||
136 1 = dcl ms based ms$pointer ms$structure;
|
||
=
|
||
137 1 = dcl sat$pointer pointer;
|
||
138 1 = dcl sat$ptr structure(
|
||
= offset word,
|
||
= segment word) at (@sat$pointer);
|
||
139 1 = dcl sat based sat$pointer sat$structure;
|
||
=
|
||
140 1 = dcl flag$pointer pointer;
|
||
141 1 = dcl flag$ptr structure(
|
||
= offset word,
|
||
PL/M-86 COMPILER CCP/M-86 1.0 SYSTAT PROCESS - TRANSIENT PAGE 9
|
||
|
||
|
||
= segment word) at (@flag$pointer);
|
||
142 1 = dcl flag based flag$pointer flag$structure;
|
||
=
|
||
143 1 = dcl vccb$pointer pointer;
|
||
144 1 = dcl vccb$ptr structure (
|
||
= offset word,
|
||
= segment word) at (@vccb$pointer);
|
||
145 1 = dcl vccb based vccb$pointer ccb$structure;
|
||
=
|
||
146 1 = dcl uda$pointer pointer;
|
||
147 1 = dcl uda$ptr structure (
|
||
= offset word,
|
||
= segment word) at (@uda$pointer);
|
||
148 1 = dcl uda based uda$pointer uda$structure;
|
||
=
|
||
=
|
||
= /* BDOS Calls */
|
||
=
|
||
149 1 = reboot:
|
||
= procedure;
|
||
150 2 = call mon1(0,0);
|
||
151 2 = end reboot;
|
||
=
|
||
152 1 = conin:
|
||
= procedure byte;
|
||
153 2 = return(mon2(1,0));
|
||
154 2 = end conin;
|
||
=
|
||
155 1 = co:
|
||
= procedure (char);
|
||
156 2 = dcl char byte;
|
||
157 2 = call mon1 (2,char);
|
||
158 2 = end co;
|
||
=
|
||
159 1 = rawconin:
|
||
= procedure byte;
|
||
160 2 = return mon2(6,0fdh);
|
||
161 2 = end rawconin;
|
||
=
|
||
162 1 = constat:
|
||
= procedure byte;
|
||
163 2 = return(mon2(11,0));
|
||
164 2 = end constat;
|
||
=
|
||
165 1 = rawco:
|
||
= procedure (char);
|
||
166 2 = dcl char byte;
|
||
167 2 = call mon1(6,char);
|
||
168 2 = end rawco;
|
||
=
|
||
169 1 = delay:
|
||
= procedure (num);
|
||
170 2 = dcl num address;
|
||
171 2 = call mon1(141,num);
|
||
172 2 = end delay;
|
||
=
|
||
173 1 = print$buffer:
|
||
PL/M-86 COMPILER CCP/M-86 1.0 SYSTAT PROCESS - TRANSIENT PAGE 10
|
||
|
||
|
||
= procedure (bufferadr);
|
||
174 2 = dcl bufferadr address;
|
||
175 2 = call mon1 (9,bufferadr);
|
||
176 2 = end print$buffer;
|
||
=
|
||
177 1 = get$version:
|
||
= procedure word;
|
||
178 2 = return mon3(12,0);
|
||
179 2 = end get$version;
|
||
=
|
||
180 1 = terminate:
|
||
= procedure;
|
||
181 2 = call mon1(143,0);
|
||
182 2 = end terminate;
|
||
=
|
||
183 1 = get$sysdat:
|
||
= procedure pointer;
|
||
184 2 = return mon4(154,0);
|
||
185 2 = end get$sysdat;
|
||
=
|
||
186 1 = get$currpd:
|
||
= procedure pointer;
|
||
187 2 = return mon4(156,0);
|
||
188 2 = end get$currpd;
|
||
=
|
||
=
|
||
= /* utility functions */
|
||
=
|
||
189 1 = crlf:
|
||
= procedure;
|
||
190 2 = call co (CR);
|
||
191 2 = call co (LF);
|
||
192 2 = end crlf;
|
||
=
|
||
193 1 = print$infield: /* Prints 'len' # of bytes in a */
|
||
= /* left- or right-justified field*/
|
||
= /* of 'width' dimension. */
|
||
= procedure (width,justify,len,dataddr);
|
||
=
|
||
194 2 = dcl dataddr pointer;
|
||
195 2 = dcl (width,len) byte,
|
||
= (i,justify) byte;
|
||
196 2 = dcl char based dataddr byte;
|
||
197 2 = dcl dat$ptr structure(
|
||
= offset word,
|
||
= segment word) at (@dataddr);
|
||
=
|
||
198 2 = if len <= width then do; /* Error Check */
|
||
200 3 = if justify = 'r' then /* Right Justify */
|
||
201 3 = do i=1 to (width-len) ; /* Pad on the left */
|
||
202 4 = call co(' ');
|
||
203 4 = end;
|
||
204 3 = do i=1 to len ;
|
||
205 4 = call co (char and 7fh); /* Print the data */
|
||
206 4 = dat$ptr.offset = dat$ptr.offset + 1;
|
||
207 4 = end;
|
||
208 3 = if justify = 'l' then /* Left-justified*/
|
||
PL/M-86 COMPILER CCP/M-86 1.0 SYSTAT PROCESS - TRANSIENT PAGE 11
|
||
|
||
|
||
209 3 = do i = 1 to (width-len); /* Pad on the right*/
|
||
210 4 = call co(' ');
|
||
211 4 = end;
|
||
212 3 = end;
|
||
=
|
||
213 2 = end print$infield;
|
||
=
|
||
=
|
||
=
|
||
214 1 = dcl hex$digit (*) byte data ('0123456789ABCDEF');
|
||
=
|
||
215 1 = display$hex$byte:
|
||
= procedure (value);
|
||
216 2 = dcl value byte;
|
||
217 2 = call co (hex$digit(shr(value,4)));
|
||
218 2 = call co (hex$digit(value mod 16));
|
||
219 2 = end display$hex$byte;
|
||
=
|
||
220 1 = display$hex$word:
|
||
= procedure (value);
|
||
221 2 = dcl value word;
|
||
222 2 = call display$hex$byte (high(value));
|
||
223 2 = call display$hex$byte (low (value));
|
||
224 2 = end display$hex$word;
|
||
=
|
||
=
|
||
225 1 = print$hex$byte: /* Prints hex byte in a right- or */
|
||
= /* left-justified field of 'width'*/
|
||
= /* dimension. */
|
||
= procedure (width,justify,val);
|
||
226 2 = dcl (val,width) byte,
|
||
= (i,justify) byte;
|
||
=
|
||
227 2 = if width < 2 then return; /* Must be at least 2 for hex byte */
|
||
229 2 = else do;
|
||
230 3 = if justify = 'r' then /* Right Justify */
|
||
231 3 = do i=1 to (width - 2) ;
|
||
232 4 = call co(' '); /* Pad on the left */
|
||
233 4 = end;
|
||
234 3 = call display$hex$byte(val); /* Print the digits */
|
||
235 3 = if justify = 'l' then
|
||
236 3 = do i=1 to (width-2) ;
|
||
237 4 = call co(' '); /* Pad on the right */
|
||
238 4 = end;
|
||
239 3 = end;
|
||
240 2 = end print$hex$byte;
|
||
=
|
||
=
|
||
241 1 = print$hex$word: /* Prints hex word in a right- */
|
||
= /* or left-justified field of */
|
||
= /* 'width' dimension. */
|
||
= procedure(width,justify,val);
|
||
242 2 = dcl val word,
|
||
= (justify,width) byte;
|
||
243 2 = dcl i byte;
|
||
=
|
||
244 2 = if width < 4 then return; /* Error check */
|
||
PL/M-86 COMPILER CCP/M-86 1.0 SYSTAT PROCESS - TRANSIENT PAGE 12
|
||
|
||
|
||
246 2 = else do;
|
||
247 3 = if justify = 'r' then /* Field is right-justified */
|
||
248 3 = do i=1 to (width-4) ;
|
||
249 4 = call co(' '); /* Pad on the left */
|
||
250 4 = end;
|
||
251 3 = call display$hex$word(val); /* Print the digits */
|
||
252 3 = if justify = 'l' then
|
||
253 3 = do i=1 to (width-4) ;
|
||
254 4 = call co(' '); /* Pad on the right */
|
||
255 4 = end;
|
||
256 3 = end;
|
||
=
|
||
257 2 = end print$hex$word;
|
||
=
|
||
258 1 = clear: procedure;
|
||
259 2 = dcl i byte;
|
||
=
|
||
260 2 = do i = 1 to clearseq(0); /* 1st element = counter */
|
||
261 3 = call rawco(clearseq(i)); /* Direct clear_screen sequence */
|
||
262 3 = end; /* to terminal. */
|
||
263 2 = end clear;
|
||
=
|
||
264 1 = home: procedure;
|
||
265 2 = dcl i byte;
|
||
=
|
||
266 2 = do i = 1 to homeseq(0); /* 1st element = counter */
|
||
267 3 = call rawco(homeseq(i)); /* direct home cursor sequence */
|
||
268 3 = end; /* to terminal. */
|
||
=
|
||
269 2 = end home;
|
||
=
|
||
270 1 = skip$lines: procedure(numlines);
|
||
271 2 = dcl (numlines,i) byte;
|
||
=
|
||
272 2 = do i = 1 to numlines;
|
||
273 3 = call co(LF);
|
||
274 3 = end;
|
||
275 2 = end skip$lines;
|
||
=
|
||
276 1 = cons$wait: procedure;
|
||
277 2 = dcl chr byte;
|
||
=
|
||
278 2 = call print$buffer(.(CR,LF,
|
||
= ' Type any key to leave and return to main menu.$'));
|
||
279 2 = chr = conin;
|
||
=
|
||
280 2 = end cons$wait;
|
||
=
|
||
281 1 = aschex: /* Convert ascii to hex*/
|
||
= procedure(num) byte;
|
||
282 2 = dcl num byte;
|
||
=
|
||
283 2 = if (num > 47) and (num < 58) then do; /* 0 - 9 range */
|
||
285 3 = num = num - '0';
|
||
286 3 = end;
|
||
287 2 = else do;
|
||
288 3 = if (num > 64) and (num < 71) then do; /* A - F range */
|
||
PL/M-86 COMPILER CCP/M-86 1.0 SYSTAT PROCESS - TRANSIENT PAGE 13
|
||
|
||
|
||
290 4 = num = num - 55;
|
||
291 4 = end;
|
||
292 3 = else do;
|
||
293 4 = if (num > 96) and (num < 103) then do; /* a - f range */
|
||
295 5 = num = num - 87;
|
||
296 5 = end;
|
||
= else
|
||
297 4 = num = 015h; /* Error -> Default */
|
||
298 4 = end;
|
||
299 3 = end;
|
||
300 2 = return (num);
|
||
=
|
||
301 2 = end aschex;
|
||
=
|
||
302 1 = get$intrval: procedure word;
|
||
303 2 = dcl (chr,chr1) byte,
|
||
= ticdelay word;
|
||
=
|
||
304 2 = chr = conin;
|
||
305 2 = if (chr <> LF) and (chr <> CR) then do; /* It's not a default */
|
||
307 3 = chr = aschex(chr); /* Get true hex version */
|
||
308 3 = chr1 = conin; /* wait for CR or LF */
|
||
309 3 = if (chr1 <> LF) and (chr1 <> CR) then do; /* 2nd hex digit */
|
||
311 4 = chr = shl(chr,4) + aschex(chr1);
|
||
312 4 = chr1 = conin; /* Get this CR LF */
|
||
313 4 = end;
|
||
314 3 = end;
|
||
= else
|
||
315 2 = chr = 01h; /* Default value */
|
||
316 2 = ticdelay = chr * (sd.tickspersec); /* Convert to system ticks */
|
||
317 2 = return (ticdelay);
|
||
=
|
||
318 2 = end get$intrval;
|
||
=
|
||
=
|
||
319 1 = disp$mainhdr: procedure; /* Main Menu Display */
|
||
=
|
||
320 2 = call home; call clear;
|
||
322 2 = call crlf; call crlf;
|
||
324 2 = call print$infield(34,'r',14,@('Which Option ?'));
|
||
325 2 = call crlf; call crlf;
|
||
327 2 = call print$infield(33,'r',7,@('H (elp)'));
|
||
328 2 = call crlf;
|
||
329 2 = call print$infield(35,'r',9,@('M (emory)'));
|
||
330 2 = call crlf; call print$infield(37,'r',11,@('O (verview)'));
|
||
332 2 = call crlf; call print$infield(44,'r',18,@('P (rocesses - all)'));
|
||
334 2 = call crlf; call print$infield(35,'r',9,@('Q (ueues)'));
|
||
336 2 = call crlf; call print$infield(43,'r',17,@('U (ser processes)'));
|
||
338 2 = call crlf; call print$infield(33,'r',7,@('E (xit)'));
|
||
340 2 = call crlf; call crlf; call print$infield(26,'r',2,@('->'));
|
||
=
|
||
343 2 = end disp$mainhdr;
|
||
=
|
||
344 1 = print$opt$err: procedure;
|
||
345 2 = call print$buffer(.(CR,LF,' Illegal command tail.$'));
|
||
346 2 = call crlf;
|
||
347 2 = call terminate;
|
||
PL/M-86 COMPILER CCP/M-86 1.0 SYSTAT PROCESS - TRANSIENT PAGE 14
|
||
|
||
|
||
348 2 = end print$opt$err;
|
||
=
|
||
349 1 = display$help: procedure;
|
||
=
|
||
350 2 = call home; call clear;
|
||
352 2 = call crlf; call crlf;
|
||
354 2 = call crlf; call print$infield(42,'r',23,@('VALID SYSTAT COMMANDS :'));
|
||
356 2 = call crlf; call crlf; call print$infield(25,'r',6,@('SYSTAT'));
|
||
359 2 = call crlf; call print$infield(34,'r',15,@('SYSTAT [OPTION]'));
|
||
361 2 = call crlf; call print$infield(36,'r',17,@('SYSTAT [OPTION C]'));
|
||
363 2 = call crlf; call print$infield(39,'r',20,@('SYSTAT [OPTION C ##]'));
|
||
365 2 = call crlf; call crlf; call print$infield(28,'r',9,@('- where -'));
|
||
368 2 = call crlf; call crlf;
|
||
370 2 = call print$infield(44,'r',25,@('-> C = continuous display'));
|
||
371 2 = call crlf; call print$infield(47,'r',28,@('-> ## = 1-2 digit hex timer.'));
|
||
373 2 = call crlf; call crlf; call print$infield(30,'r',11,@('-> OPTION ='));
|
||
376 2 = call crlf; call print$infield(56,'r',33,@('M(emory) P(rocesses) O(verview)'));
|
||
378 2 = call crlf; call print$infield(56,'r',33,@('U(ser Processes) Q(ueues) H(elp)'));
|
||
380 2 = call crlf;
|
||
=
|
||
381 2 = if not(specified) then
|
||
382 2 = call cons$wait;
|
||
= else
|
||
383 2 = call terminate;
|
||
=
|
||
384 2 = end display$help;
|
||
=
|
||
=
|
||
=
|
||
385 1 = prntheader: procedure; /* Used in Process Data Display */
|
||
=
|
||
386 2 = call home; call clear;
|
||
388 2 = call print$infield(20,'r',18,@('Virtual Process'));
|
||
389 2 = call crlf;
|
||
390 2 = call print$infield(20,'r',18,@('Console Name '));
|
||
391 2 = call print$infield(37,'r',35,@('Flag Prior Status Resource'));
|
||
392 2 = call crlf;
|
||
393 2 = call print$infield(20,'r',18,@('------- -------'));
|
||
394 2 = call print$infield(37,'r',35,@('---- ----- ------ --------'));
|
||
=
|
||
395 2 = end prntheader;
|
||
=
|
||
=
|
||
=
|
||
396 1 = disp$status: procedure(stat); /* Prints formatted status field */
|
||
397 2 = dcl stat byte; /* of Process display. */
|
||
=
|
||
398 2 = if (stat >=0) and (stat < 11) then do;
|
||
400 3 = do case stat;
|
||
401 4 = call print$infield(13,'l',5,@('READY'));
|
||
402 4 = call print$infield(13,'l',4,@('POLL'));
|
||
403 4 = call print$infield(13,'l',5,@('DELAY'));
|
||
404 4 = call print$infield(13,'l',4,@('SWAP'));
|
||
405 4 = call print$infield(13,'l',9,@('TERMINATE'));
|
||
406 4 = call print$infield(13,'l',5,@('SLEEP'));
|
||
407 4 = call print$infield(13,'l',7,@('READING'));
|
||
408 4 = call print$infield(13,'l',7,@('WRITING'));
|
||
PL/M-86 COMPILER CCP/M-86 1.0 SYSTAT PROCESS - TRANSIENT PAGE 15
|
||
|
||
|
||
409 4 = call print$infield(13,'l',9,@('FLAG WAIT'));
|
||
410 4 = call print$infield(13,'l',8,@('CIO WAIT'));
|
||
411 4 = call print$infield(13,'l',8,@('SYNCHING'));
|
||
412 4 = end;
|
||
413 3 = end;
|
||
= else
|
||
414 2 = call print$infield(13,'l',5,@('ERROR'));
|
||
=
|
||
415 2 = end disp$status;
|
||
=
|
||
=
|
||
=
|
||
416 1 = disp$resource: procedure(stats,rsrce);/* Prints formatted resource field */
|
||
417 2 = dcl stats byte; /* of Process display. */
|
||
418 2 = dcl (rsrce,offs) word;
|
||
419 2 = dcl (count,notfound) byte; /* For flag table traversal */
|
||
=
|
||
420 2 = if (stats >=0) and (stats < 11) then do;
|
||
422 3 = do case stats;
|
||
423 4 = call print$infield(13,'l',3,@('CPU ')); /* Case 0 */
|
||
424 4 = do; /* Case 1 */
|
||
425 5 = call print$infield(8,'l',8,@('DEVICE #'));
|
||
426 5 = call print$hex$byte(4,'l',low(rsrce));
|
||
427 5 = end;
|
||
428 4 = do; /* Case 2 */
|
||
429 5 = call print$infield(8,'l',8,@('TICKS = '));
|
||
430 5 = call print$hex$word(4,'l',rsrce);
|
||
431 5 = end;
|
||
432 4 = call print$infield(13,'l',7,@('SWAPERR ')); /* Case 3 */
|
||
433 4 = call print$infield(13,'l',3,@('CPU ')); /* Case 4 */
|
||
434 4 = do;
|
||
435 5 = if rsrce = sd.rlr then /* Case 5 */
|
||
436 5 = call print$infield(13,'l',10,@('READY LIST'));
|
||
437 5 = else if rsrce = sd.dlr then
|
||
438 5 = call print$infield(13,'l',10,@('DELAY LIST'));
|
||
439 5 = else if rsrce = sd.drl then
|
||
440 5 = call print$infield(13,'l',10,@('DISPATCHER'));
|
||
441 5 = else if rsrce = sd.plr then
|
||
442 5 = call print$infield(13,'l',9,@('POLL LIST'));
|
||
= else
|
||
443 5 = call print$infield(13,'l',5,@('OTHER'));
|
||
444 5 = end;
|
||
445 4 = do; /* Case 6 */
|
||
446 5 = qd$ptr.offset = rsrce;
|
||
447 5 = call print$in$field(12,'l',pnamsiz,@qd.name);
|
||
448 5 = end;
|
||
449 4 = do; /* Case 7 */
|
||
450 5 = qd$ptr.offset = rsrce;
|
||
451 5 = call print$infield(12,'l',pnamsiz,@qd.name);
|
||
452 5 = end;
|
||
453 4 = do; /* Case 8 */
|
||
454 5 = call co(023h); /* A '#' sign */
|
||
455 5 = if rsrce <> 0ffffh then
|
||
456 5 = call print$hex$byte(12,'l',low(rsrce));
|
||
= else
|
||
457 5 = call print$in$field(12,'l',1,@('?'));
|
||
458 5 = end;
|
||
PL/M-86 COMPILER CCP/M-86 1.0 SYSTAT PROCESS - TRANSIENT PAGE 16
|
||
|
||
|
||
459 4 = do; /* Case 9 */
|
||
460 5 = call print$infield(10,'l',9,@('CONSOLE #'));
|
||
461 5 = call display$hex$byte(low(rsrce));
|
||
462 5 = end;
|
||
463 4 = call print$infield(13,'l',13,@(' ')); /* Case 10*/
|
||
464 4 = end; /* case */
|
||
465 3 = end;
|
||
= else /* Invalid Status Value */
|
||
466 2 = call print$infield(12,'l',5,@('ERROR'));
|
||
467 2 = end disp$resource;
|
||
=
|
||
468 1 = dcl pd$list (64) structure ( /* Stores fields of successive pd's.*/
|
||
= cns byte,
|
||
= name (8) byte,
|
||
= flag word,
|
||
= prior byte,
|
||
= stat byte ,
|
||
= resource word);
|
||
=
|
||
469 1 = dcl link$list (64) word;
|
||
=
|
||
470 1 = display$proc: procedure(lnkfield);
|
||
471 2 = dcl lnkfield byte; /* True = user proc's only,False = all proc's*/
|
||
472 2 = dcl (char,temp) byte; /* Temp controls continuous printout */
|
||
473 2 = dcl (k,n) byte,
|
||
= (notfound,i) byte;
|
||
=
|
||
474 2 = if not(specified) then do;
|
||
476 3 = call crlf;
|
||
477 3 = call print$buffer(.(CR,LF,' Continuous Display?$'));
|
||
478 3 = char = conin;
|
||
479 3 = if (char = 'y') or ( char = 'Y') then do;
|
||
481 4 = repeat = true;
|
||
482 4 = call print$buffer(.(CR,LF,'Time Interval (in hex) :$'));
|
||
483 4 = intrval = get$intrval;
|
||
=
|
||
484 4 = end;
|
||
485 3 = end;
|
||
=
|
||
486 2 = temp = true;
|
||
487 2 = call prntheader;
|
||
=
|
||
488 2 = do while (temp or repeat); /* Display until user hits any key */
|
||
489 3 = disable; /* critical section required to obtain list*/
|
||
490 3 = temp = false;
|
||
491 3 = n = -1;
|
||
492 3 = pd$ptr.offset = sd.thrdrt; /* Start at Thread List root. */
|
||
493 3 = getpds: /* Put all pd's on the list */
|
||
= do while (pd$ptr.offset <> 0) and (n <> maxpd);
|
||
494 4 = n = n + 1;
|
||
495 4 = if not(lnkfield) or (pd.mem <> 0) then /* Is it user processes only ? */
|
||
496 4 = do; /* Either display all processes anyway or */
|
||
= /* or this is a valid user process. */
|
||
497 5 = pd$list(n).cns = pd.cns;
|
||
498 5 = do i= 0 to pnamsiz-1;
|
||
499 6 = pd$list(n).name(i) = pd.name(i);
|
||
500 6 = end;
|
||
PL/M-86 COMPILER CCP/M-86 1.0 SYSTAT PROCESS - TRANSIENT PAGE 17
|
||
|
||
|
||
501 5 = pd$list(n).flag = pd.flag;
|
||
502 5 = pd$list(n).prior = pd.prior;
|
||
503 5 = pd$list(n).stat = pd.stat;
|
||
= /* Use sysdat info to determine what each*/
|
||
= /* process is waiting for or using. Get */
|
||
= /* Queue names,flag #'s,system ticks,list*/
|
||
= /* names and device or console #'s. Must */
|
||
= /* be done in critical region. */
|
||
504 5 = i = pd.stat; /* Save this to determine resource . */
|
||
505 5 = if (i = 1) or (i = 2 )then
|
||
506 5 = pd$list(n).resource = pd.wait; /* Device # or # of ticks delayed */
|
||
= else
|
||
507 5 = if i = 5 then /* Process is sleeping - find out which list*/
|
||
508 5 = do;
|
||
509 6 = uda$ptr.segment = pd.uda;
|
||
510 6 = uda$ptr.offset = 0;
|
||
511 6 = pd$list(n).resource = uda.dparam;
|
||
512 6 = end;
|
||
= else
|
||
513 5 = if (i = 6) or (i = 7) then /* Process is reading from or writing to */
|
||
514 5 = do; /* a queue. Get address of queue name. */
|
||
515 6 = uda$ptr.segment = pd.uda;
|
||
516 6 = uda$ptr.offset = 0;
|
||
517 6 = if i = 6 then
|
||
518 6 = pd$list(n).resource = (uda.dparam) - 12h;
|
||
= else
|
||
519 6 = pd$list(n).resource = (uda.dparam) - 14h;
|
||
520 6 = end;
|
||
= else
|
||
521 5 = if i = 8 then /* Process is waiting on a flag, get the #*/
|
||
522 5 = do;
|
||
523 6 = pd$list(n).resource = 0ffffh; /* Remains if no flag found .*/
|
||
524 6 = flag$ptr.offset = sd.flags;
|
||
525 6 = notfound = true;
|
||
526 6 = k = 0; /* Flag counter */
|
||
527 6 = do while notfound;
|
||
528 7 = if (flag.pd <> pd$ptr.offset) then do;
|
||
530 8 = k = k+ 1;
|
||
531 8 = flag$ptr.offset = flag$ptr.offset + flaglen;
|
||
532 8 = if k > sd.nflags then /* End of table */
|
||
533 8 = notfound = false;
|
||
534 8 = end;
|
||
= else /* This is the flag*/
|
||
535 7 = do;
|
||
536 8 = pd$list(n).resource = k;
|
||
537 8 = notfound = false;
|
||
538 8 = end;
|
||
539 7 = end;
|
||
540 6 = end;
|
||
= else
|
||
541 5 = if i = 9 then do;
|
||
543 6 = pd$list(n).resource = pd.cns;
|
||
544 6 = end;
|
||
= end; /* Valid processes*/
|
||
= else
|
||
546 4 = n = n-1; /* Ignore system processes */
|
||
547 4 = pd$ptr.offset = pd.thread; /* Get the next process*/
|
||
PL/M-86 COMPILER CCP/M-86 1.0 SYSTAT PROCESS - TRANSIENT PAGE 18
|
||
|
||
|
||
548 4 = end getpds;
|
||
=
|
||
549 3 = if n = -1 then return; /* stop here if no pds */
|
||
=
|
||
551 3 = enable;
|
||
552 3 = call home; call skip$lines(3); /* enables interrupts */
|
||
554 3 = printpds:
|
||
= do k = 0 to n;
|
||
555 4 = if k <> 0 then call crlf;
|
||
557 4 = call print$hex$byte(7,'r',pd$list(k).cns);/* print virtual console #*/
|
||
558 4 = call print$buffer(.(' $'));
|
||
559 4 = call print$infield(9,'l',pnamsiz,@pd$list(k).name); /* print name */
|
||
560 4 = call print$hex$word(8,'l',pd$list(k).flag);
|
||
561 4 = call print$hex$byte(7,'l',pd$list(k).prior); /* print its priority */
|
||
562 4 = call disp$status(pd$list(k).stat); /* print process status */
|
||
563 4 = call disp$resource(pd$list(k).stat,pd$list(k).resource);
|
||
= /* print resource */
|
||
=
|
||
564 4 = end printpds;
|
||
=
|
||
565 3 = if n < 21 then do;
|
||
567 4 = do k = n to 18;
|
||
568 5 = call print$buffer(.(CR,LF,
|
||
= ' $'));
|
||
569 5 = end;
|
||
570 4 = end;
|
||
=
|
||
=
|
||
571 3 = if constat then do; /* Check for User Interrupt*/
|
||
573 4 = repeat = false;
|
||
574 4 = char = conin; /* Swallow stop char */
|
||
575 4 = end;
|
||
576 3 = if repeat then do; /* If still going,delay it */
|
||
578 4 = call delay(intrval); /* and go back to loop top */
|
||
579 4 = if (n >= 20) then
|
||
580 4 = call prntheader;
|
||
581 4 = end;
|
||
582 3 = else do;
|
||
583 4 = if not(specified) then /* If not comline args then */
|
||
584 4 = call cons$wait; /* let them get to main menu*/
|
||
= else
|
||
585 4 = call terminate;
|
||
586 4 = end;
|
||
=
|
||
587 3 = end;/*while loop*/
|
||
=
|
||
588 2 = end display$proc;
|
||
=
|
||
=
|
||
589 1 = dcl sortrecd structure ( name (8) byte, /* Stores data when sorting*/
|
||
= start word,
|
||
= pd word,
|
||
= len word,
|
||
= cns byte );
|
||
=
|
||
590 1 = dcl sortarray (80) structure ( /* For sorting and printing*/
|
||
= name (8) byte,
|
||
PL/M-86 COMPILER CCP/M-86 1.0 SYSTAT PROCESS - TRANSIENT PAGE 19
|
||
|
||
|
||
= start word,
|
||
= pd word,
|
||
= len word,
|
||
= cns byte );
|
||
=
|
||
591 1 = dcl sharearray (80) structure ( /* For Shared Code List */
|
||
= name (8) byte,
|
||
= start word,
|
||
= disk byte,
|
||
= user byte,
|
||
= len word,
|
||
= cns byte );
|
||
=
|
||
592 1 = disp$memhdr : procedure;
|
||
=
|
||
593 2 = call home; call clear;
|
||
595 2 = call print$buffer(.('Process Virtual | $'));
|
||
596 2 = call print$buffer(.('Process Virtual $'));
|
||
597 2 = call print$buffer(.(CR,LF,' Name Console PD# Start Len | $'));
|
||
598 2 = call print$buffer(.(' Name Console PD# Start Len $'));
|
||
599 2 = call print$buffer(.(CR,LF,'________ _______ ____ _____ ____ | $'));
|
||
600 2 = call print$buffer(.(' _______ _______ ____ _____ ____ $'));
|
||
=
|
||
=
|
||
601 2 = end disp$memhdr;
|
||
=
|
||
602 1 = print$sorted: /* Prints two columns of memory data */
|
||
= procedure(cnt,scnt); /* Uses sorted array of structures. */
|
||
603 2 = dcl (cnt,scnt) byte, /* cnt: regular mem,scnt: shared mem */
|
||
= (m,q,k) byte;
|
||
=
|
||
=
|
||
604 2 = call home;
|
||
605 2 = call skip$lines(3);
|
||
=
|
||
606 2 = if (cnt > 1) then do; /* Must have two per line here */
|
||
608 3 = do m = 0 to ((cnt/2)-1) ; /* If odd #, hold last one */
|
||
609 4 = call crlf; /* Print 2 columns,ascending values*/
|
||
610 4 = k = m;
|
||
611 4 = do q = 1 to 2 ;
|
||
612 5 = call print$infield(12,'l',pnamsiz,@sortarray(k).name);
|
||
613 5 = if sortarray(k).cns = 030h then
|
||
614 5 = call print$buffer(.(' $'));
|
||
615 5 = else call print$hex$byte(7,'l',sortarray(k).cns);
|
||
616 5 = call print$hex$word(6,'l',sortarray(k).pd);
|
||
617 5 = call print$hex$word(7,'l',sortarray(k).start);
|
||
618 5 = call print$hex$word(5,'l',sortarray(k).len);
|
||
619 5 = if (q mod 2) <> 0 then
|
||
620 5 = call print$buffer(.('| $'));
|
||
621 5 = k = k + (cnt/2); /* Go to other half of the array */
|
||
622 5 = end;
|
||
623 4 = end;
|
||
624 3 = end;
|
||
=
|
||
625 2 = if (cnt mod 2) <> 0 then do; /* Only put one on last line */
|
||
= /* Print blanks on left */
|
||
627 3 = call print$buffer(.(CR,LF,
|
||
PL/M-86 COMPILER CCP/M-86 1.0 SYSTAT PROCESS - TRANSIENT PAGE 20
|
||
|
||
|
||
= ' | $'));
|
||
628 3 = call print$infield(12,'l',pnamsiz,@sortarray(cnt-1).name);
|
||
629 3 = if sortarray(cnt-1).cns = 030h then
|
||
630 3 = call print$buffer(.(' $'));
|
||
= else
|
||
631 3 = call print$hex$byte(7,'l',sortarray(cnt-1).cns);
|
||
632 3 = call print$hex$word(6,'l',sortarray(cnt-1).pd);
|
||
633 3 = call print$hex$word(7,'l',sortarray(cnt-1).start);
|
||
634 3 = call print$hex$word(5,'l',sortarray(cnt-1).len);
|
||
635 3 = end;
|
||
= /* Print Shared Code,if any */
|
||
636 2 = if (scnt > 0) then do;
|
||
638 3 = call print$buffer(.(CR,LF,
|
||
= ' Shared Code List $'));
|
||
639 3 = call print$buffer(.(' $'));
|
||
640 3 = end;
|
||
=
|
||
641 2 = if (scnt > 1) then do;
|
||
643 3 = do m = 0 to ((scnt/2) - 1);
|
||
644 4 = call crlf;
|
||
645 4 = k = m;
|
||
646 4 = do q = 1 to 2;
|
||
647 5 = call print$infield(12,'l',pnamsiz,@sharearray(k).name);
|
||
648 5 = call print$hex$byte(7,'l',sharearray(k).cns);
|
||
649 5 = call print$hex$byte(2,'l',sharearray(k).disk);
|
||
650 5 = call print$hex$byte(4,'l',sharearray(k).user);
|
||
651 5 = call print$hex$word(7,'l',sharearray(k).start);
|
||
652 5 = call print$hex$word(5,'l',sharearray(k).len);
|
||
653 5 = if (q mod 2) <> 0 then
|
||
654 5 = call print$buffer(.('| $'));
|
||
655 5 = k = k + (scnt/2);
|
||
656 5 = end;
|
||
657 4 = end;
|
||
658 3 = end;
|
||
=
|
||
659 2 = if (scnt > 0) then do;
|
||
=
|
||
661 3 = if (scnt mod 2) <> 0 then do; /* Odd # of md's. */
|
||
= /* Put just 1 on last line*/
|
||
663 4 = call print$buffer(.(CR,LF,
|
||
= ' | $'));
|
||
664 4 = call print$infield(12,'l',pnamsiz,@sharearray(scnt-1).name);
|
||
665 4 = call print$hex$byte(7,'l',sharearray(scnt-1).cns);
|
||
666 4 = call print$hex$byte(2,'l',sharearray(scnt-1).disk);
|
||
667 4 = call print$hex$byte(4,'l',sharearray(scnt-1).user);
|
||
668 4 = call print$hex$word(7,'l',sharearray(scnt-1).start);
|
||
669 4 = call print$hex$word(5,'l',sharearray(scnt-1).len);
|
||
670 4 = end;
|
||
=
|
||
671 3 = scnt = scnt + 1; /* Count its heading */
|
||
672 3 = end;
|
||
=
|
||
673 2 = if ((cnt+scnt)/2) < 21 then do; /* Clear rest of screen */
|
||
675 3 = do k = ((cnt+scnt)/2) to 18;
|
||
676 4 = call print$buffer(.(CR,LF,
|
||
= ' $'));
|
||
677 4 = call print$buffer(.(' $'));
|
||
PL/M-86 COMPILER CCP/M-86 1.0 SYSTAT PROCESS - TRANSIENT PAGE 21
|
||
|
||
|
||
678 4 = end;
|
||
679 3 = end;
|
||
=
|
||
=
|
||
680 2 = end print$sorted;
|
||
=
|
||
=
|
||
681 1 = display$mem:
|
||
= procedure;
|
||
682 2 = dcl (i,mdcnt,pdcnt) byte; /* Mdcnt = memory descriptor count*/
|
||
683 2 = dcl (x,y) byte, /* Pdcnt = process descr. count */
|
||
= (cont,scdcnt) byte, /* cont = Boolean 'continue' */
|
||
= n integer,
|
||
= (temp,chr) byte,
|
||
= savmau word;
|
||
=
|
||
684 2 = if not(specified) then do;
|
||
= /* Does User want continuous display?*/
|
||
686 3 = call print$buffer(.(CR,LF,' Continuous Display? $'));
|
||
687 3 = chr = conin;
|
||
688 3 = if (chr = 'y') or ( chr = 'Y') then do;
|
||
690 4 = repeat = true;
|
||
691 4 = call print$buffer(.(CR,LF,' Time Interval (in hex): $'));
|
||
692 4 = intrval = get$intrval; /* Get hex value from terminal */
|
||
693 4 = end;
|
||
694 3 = end;
|
||
695 2 = temp = true;
|
||
=
|
||
696 2 = call home; call clear;
|
||
698 2 = call disp$memhdr;
|
||
699 2 = do while (temp or repeat); /* Display at least once */
|
||
700 3 = temp = false;
|
||
701 3 = do pdcnt = 0 to maxpd;
|
||
702 4 = link$list(pdcnt) = 0;
|
||
703 4 = end;
|
||
704 3 = n = -1;
|
||
705 3 = pdcnt = 0;
|
||
=
|
||
=
|
||
706 3 = disable; /* Critical section required to obtain list */
|
||
=
|
||
707 3 = getmemowners:
|
||
= pd$ptr.offset = sd.thrdrt; /* Start at Thread Root */
|
||
708 3 = do while (pd$ptr.offset <> 0) and (pdcnt <> maxpd);
|
||
709 4 = if pd.mem <> 0 then do; /* If it owns memory, */
|
||
711 5 = link$list(n:=n+1) = pd$ptr.offset; /* put it on the list. */
|
||
712 5 = pdcnt = pdcnt + 1;
|
||
713 5 = end;
|
||
714 4 = pd$ptr.offset = pd.thread; /* Go to next process */
|
||
715 4 = end;
|
||
716 3 = if pdcnt = 0 then return;
|
||
=
|
||
718 3 = getmds:
|
||
= mdcnt = 0;
|
||
719 3 = do i = 0 to (pdcnt-1);
|
||
720 4 = pd$ptr.offset = link$list(i); /* Reset Proc Descriptor */
|
||
721 4 = ms$ptr.offset = pd.mem;
|
||
PL/M-86 COMPILER CCP/M-86 1.0 SYSTAT PROCESS - TRANSIENT PAGE 22
|
||
|
||
|
||
722 4 = cont = true;
|
||
723 4 = do while (cont and (mdcnt <= maxmd));
|
||
724 5 = sortarray(mdcnt).pd = pd$ptr.offset; /* Get proc descriptor */
|
||
725 5 = cont = false;
|
||
726 5 = md$ptr.offset = ms.mau; /* Md is on MAL */
|
||
727 5 = sortarray(mdcnt).start = md.start;
|
||
728 5 = sortarray(mdcnt).len = md.length;
|
||
729 5 = sortarray(mdcnt).cns = pd.cns;
|
||
730 5 = do x = 0 to 7; /* Get owner's name */
|
||
731 6 = sortarray(mdcnt).name(x) = pd.name(x); /* A byte at a time */
|
||
732 6 = end;
|
||
733 5 = if ms.link <> 0 then do; /* More md's for this */
|
||
= /* process ? */
|
||
735 6 = savmau = ms.mau;
|
||
736 6 = ms$ptr.offset = ms.link;
|
||
737 6 = do while (ms.mau = savmau) and (ms.link <> 0);
|
||
738 7 = savmau = ms.mau; /* Look for a different */
|
||
739 7 = ms$ptr.offset = ms.link; /* partition,same pd. */
|
||
740 7 = end;
|
||
741 6 = if (savmau <> ms.mau) then /* Check if same mau */
|
||
742 6 = cont = true; /* If not, go get another md*/
|
||
743 6 = end;
|
||
744 5 = mdcnt = mdcnt + 1;
|
||
=
|
||
745 5 = end; /* while cont : a single pd's memory*/
|
||
=
|
||
746 4 = end; /* All pd's memory*/
|
||
=
|
||
= /* That's all the used memory. Now go */
|
||
= /* to the Memory Free List. */
|
||
747 3 = md$ptr.offset = sd.mfl;
|
||
748 3 = do while md$ptr.offset <> 0 and (mdcnt < maxmd);
|
||
749 4 = do x = 0 to 7;
|
||
750 5 = sortarray(mdcnt).name(x) = freename(x); /*Use 'FREE' as name*/
|
||
751 5 = end;
|
||
752 4 = sortarray(mdcnt).start = md.start;
|
||
753 4 = sortarray(mdcnt).pd = 0;
|
||
754 4 = sortarray(mdcnt).len = md.length;
|
||
755 4 = sortarray(mdcnt).cns = 030h;
|
||
756 4 = mdcnt = mdcnt+1;
|
||
757 4 = md$ptr.offset = md.link;
|
||
758 4 = end;
|
||
= /* Get shared code */
|
||
759 3 = getshared: /* Free and used */
|
||
= n = -1;
|
||
760 3 = pdcnt = 0;
|
||
761 3 = scdcnt = 0;
|
||
762 3 = pd$ptr.offset = sd.slr; /* Top of shared list*/
|
||
763 3 = do while (pd$ptr.offset <> 0) and (pdcnt < maxpd);
|
||
764 4 = link$list(n:=n + 1) = pd$ptr.offset;
|
||
765 4 = pdcnt = pdcnt + 1;
|
||
766 4 = pd$ptr.offset = pd.thread;
|
||
767 4 = end;
|
||
768 3 = if (pdcnt > 0) then do;
|
||
770 4 = do i = 0 to (pdcnt-1);
|
||
771 5 = pd$ptr.offset = link$list(i);
|
||
772 5 = ms$ptr.offset = pd.mem;
|
||
PL/M-86 COMPILER CCP/M-86 1.0 SYSTAT PROCESS - TRANSIENT PAGE 23
|
||
|
||
|
||
773 5 = cont = true;
|
||
774 5 = do while (cont and (scdcnt < maxmd));
|
||
775 6 = cont = false;
|
||
776 6 = sharearray(scdcnt).cns = pd.cns;
|
||
777 6 = sharearray(scdcnt).disk = pd.ldsk;
|
||
778 6 = sharearray(scdcnt).user = pd.luser;
|
||
779 6 = md$ptr.offset = ms.mau;
|
||
780 6 = sharearray(scdcnt).start = md.start;
|
||
781 6 = sharearray(scdcnt).len = md.length;
|
||
782 6 = do x = 0 to (pnamsiz - 1);
|
||
783 7 = sharearray(scdcnt).name(x) = pd.name(x);
|
||
784 7 = end;
|
||
785 6 = if (ms.link <> 0) then do;
|
||
787 7 = savmau = ms.mau;
|
||
788 7 = ms$ptr.offset = ms.link;
|
||
789 7 = do while (ms.mau = savmau) and (ms.link <> 0);
|
||
790 8 = savmau = ms.mau;
|
||
791 8 = ms$ptr.offset = ms.link;
|
||
792 8 = end;
|
||
793 7 = if (ms.mau <> savmau) then
|
||
794 7 = cont = true;
|
||
795 7 = end;
|
||
796 6 = scdcnt = scdcnt + 1;
|
||
797 6 = end;
|
||
798 5 = end;
|
||
799 4 = end;
|
||
=
|
||
800 3 = enable; /* End critical section */
|
||
=
|
||
= /* Now sort the list of partitions */
|
||
801 3 = sortmds :
|
||
= do x = 0 to (mdcnt-1);
|
||
802 4 = sortrecd.start = sortarray(x).start;
|
||
803 4 = do i = 0 to 7;
|
||
804 5 = sortrecd.name(i) = sortarray(x).name(i);
|
||
805 5 = end;
|
||
806 4 = sortrecd.len = sortarray(x).len;
|
||
807 4 = sortrecd.pd = sortarray(x).pd;
|
||
808 4 = sortrecd.cns = sortarray(x).cns;
|
||
809 4 = y = x;
|
||
810 4 = find : do while (y > 0) and ( sortarray(y-1).start > sortrecd.start);
|
||
811 5 = sortarray(y).start = sortarray(y-1).start;
|
||
812 5 = do i = 0 to 7;
|
||
813 6 = sortarray(y).name(i) = sortarray(y-1).name(i);
|
||
814 6 = end;
|
||
815 5 = sortarray(y).len = sortarray(y-1).len;
|
||
816 5 = sortarray(y).pd = sortarray(y-1).pd;
|
||
817 5 = sortarray(y).cns = sortarray(y-1).cns;
|
||
818 5 = y = y-1;
|
||
819 5 = end find;
|
||
=
|
||
820 4 = sortarray(y).start = sortrecd.start;
|
||
821 4 = do i = 0 to 7;
|
||
822 5 = sortarray(y).name(i) = sortrecd.name(i);
|
||
823 5 = end;
|
||
824 4 = sortarray(y).len = sortrecd.len;
|
||
825 4 = sortarray(y).pd = sortrecd.pd;
|
||
PL/M-86 COMPILER CCP/M-86 1.0 SYSTAT PROCESS - TRANSIENT PAGE 24
|
||
|
||
|
||
826 4 = sortarray(y).cns = sortrecd.cns;
|
||
827 4 = end sortmds;
|
||
=
|
||
=
|
||
=
|
||
828 3 = call print$sorted(mdcnt,scdcnt); /* Print the sorted list */
|
||
829 3 = if constat then do; /* Want to loop again ? */
|
||
831 4 = repeat = false;
|
||
832 4 = chr = conin; /* Swallow stop char */
|
||
833 4 = end;
|
||
834 3 = if repeat then do; /* Keep looping,delay first */
|
||
836 4 = if ((mdcnt / 2) >= 20) then
|
||
837 4 = call disp$memhdr;
|
||
838 4 = call delay(intrval);
|
||
839 4 = end;
|
||
840 3 = else do;
|
||
841 4 = if not(specified) then /* Get back to main menu*/
|
||
842 4 = call cons$wait;
|
||
= else /* Skip menu, -> system */
|
||
843 4 = call terminate;
|
||
844 4 = end;
|
||
845 3 = end;/*while*/
|
||
=
|
||
846 2 = end display$mem;
|
||
=
|
||
=
|
||
847 1 = dcl qlist (64) structure (
|
||
= name (8) byte,
|
||
= nmsgs word,
|
||
= msglen word,
|
||
= msgcnt word,
|
||
= nq word,
|
||
= dq word,
|
||
= owner (8) byte,
|
||
= flags byte);
|
||
=
|
||
848 1 = print$qhdr: procedure; /* Print Queue Heading */
|
||
=
|
||
849 2 = call home; call clear;
|
||
851 2 = call print$buffer(.(' NAME NMSGS MSGLEN MSGCNT $'));
|
||
852 2 = call print$buffer(.('READER WRITER MX-OWNER FLAGS $'));
|
||
853 2 = call crlf;
|
||
854 2 = call print$buffer(.(' ________ ______ ______ ______ $'));
|
||
855 2 = call print$buffer(.('______ ______ ________ _____ $'));
|
||
856 2 = call crlf;
|
||
=
|
||
857 2 = end print$qhdr;
|
||
=
|
||
=
|
||
858 1 = display$flag$status: /* Print Queue Flag Status*/
|
||
= procedure(flag);
|
||
859 2 = dcl prev boolean;
|
||
860 2 = dcl (i,flag,cnt) byte;
|
||
=
|
||
861 2 = prev = false;
|
||
862 2 = i = 1;
|
||
863 2 = cnt = 0;
|
||
PL/M-86 COMPILER CCP/M-86 1.0 SYSTAT PROCESS - TRANSIENT PAGE 25
|
||
|
||
|
||
=
|
||
864 2 = do while (i <= maxqflags) ;
|
||
865 3 = if (flag and i) <> 0 then do;
|
||
867 4 = if prev then do; /* Take care of formatting */
|
||
869 5 = call co(',');
|
||
870 5 = cnt = cnt + 1; /* Count all chars */
|
||
871 5 = end;
|
||
872 4 = call display$hex$byte(i);
|
||
873 4 = cnt = cnt + 2;
|
||
874 4 = prev = true;
|
||
875 4 = end;
|
||
876 3 = i = i*2; /* Flags are 1 bit each */
|
||
877 3 = end;
|
||
878 2 = do i = cnt to 14; /* Clear previous line's flags */
|
||
879 3 = call co(' ');
|
||
880 3 = end;
|
||
=
|
||
881 2 = end display$flag$status;
|
||
=
|
||
=
|
||
882 1 = display$queue:
|
||
= procedure;
|
||
883 2 = dcl temp byte,
|
||
= n integer,
|
||
= (qdcnt,cont) byte,
|
||
= (chr,i) byte;
|
||
=
|
||
884 2 = if not(specified) then do;
|
||
886 3 = call crlf;
|
||
887 3 = call print$buffer(.(CR,LF,' Continuous Display? $'));
|
||
888 3 = chr = conin;
|
||
889 3 = if (chr = 'y') or (chr = 'Y') then do;
|
||
891 4 = repeat = true;
|
||
892 4 = call print$buffer(.(CR,LF,'Time Interval (in hex) : $'));
|
||
893 4 = intrval = get$intrval;
|
||
894 4 = end;
|
||
895 3 = end;
|
||
=
|
||
896 2 = temp = true;
|
||
897 2 = call print$qhdr;
|
||
=
|
||
898 2 = do while ( temp or repeat);
|
||
899 3 = temp = false;
|
||
900 3 = qdcnt = 0;
|
||
901 3 = call home; call skip$lines(2);
|
||
=
|
||
903 3 = getqueues:
|
||
= disable; /* Begin Critical Section */
|
||
904 3 = qd$ptr.offset = sd.qlr;
|
||
905 3 = do while ((qdcnt < maxqueues) and (qd$ptr.offset <> 0)) ;
|
||
906 4 = do i = 0 to pnamsiz-1;
|
||
907 5 = qlist(qdcnt).name(i)= qd.name(i);
|
||
908 5 = end;
|
||
909 4 = qlist(qdcnt).nmsgs = qd.nmsgs;
|
||
910 4 = qlist(qdcnt).msglen = qd.msglen;
|
||
911 4 = qlist(qdcnt).msgcnt = qd.msgcnt;
|
||
912 4 = qlist(qdcnt).nq = qd.nq;
|
||
PL/M-86 COMPILER CCP/M-86 1.0 SYSTAT PROCESS - TRANSIENT PAGE 26
|
||
|
||
|
||
913 4 = qlist(qdcnt).dq = qd.dq;
|
||
914 4 = if ((qd.flags mod 2) <> 0) then do; /* It's an MX queue */
|
||
916 5 = pd$ptr.offset = qd.buffer;
|
||
917 5 = if pd$ptr.offset <> 0 then /* It has an owner */
|
||
918 5 = do i = 0 to pnamsiz -1;
|
||
919 6 = qlist(qdcnt).owner(i) = pd.name(i);
|
||
920 6 = end;
|
||
= else /* No one owns it now */
|
||
921 5 = do i = 0 to pnamsiz-1; /* Print blanks */
|
||
922 6 = qlist(qdcnt).owner(i) = ' ';
|
||
923 6 = end;
|
||
924 5 = end;
|
||
= else /* It's not an MX queue*/
|
||
925 4 = do i = 0 to pnamsiz-1;
|
||
926 5 = qlist(qdcnt).owner(i) = ' ';
|
||
927 5 = end;
|
||
928 4 = qlist(qdcnt).flags = qd.flags;
|
||
929 4 = qdcnt = qdcnt + 1;
|
||
930 4 = qd$ptr.offset = qd.link;
|
||
931 4 = end;
|
||
932 3 = enable; /* End critical section */
|
||
=
|
||
933 3 = print$qds: /* Print the Queue info */
|
||
= do i = 0 to qdcnt-1;
|
||
934 4 = call print$buffer(.(' $'));
|
||
935 4 = call print$infield(11,'l',pnamsiz,@qlist(i).name);/* Queue Name */
|
||
936 4 = call print$hex$word(8,'l',qlist(i).nmsgs); /* Number of Msgs*/
|
||
937 4 = call print$hex$word(8,'l',qlist(i).msglen); /* Message Length*/
|
||
938 4 = call print$hex$word(7,'l',qlist(i).msgcnt); /* Message Count */
|
||
939 4 = pd$ptr.offset = qlist(i).dq;
|
||
940 4 = if pd$ptr.offset <> 0 then
|
||
941 4 = call print$infield(9,'l',pnamsiz,@pd.name);
|
||
= else
|
||
942 4 = call print$buffer(.(' $'));
|
||
943 4 = pd$ptr.offset = qlist(i).nq;
|
||
944 4 = if pd$ptr.offset <> 0 then
|
||
945 4 = call print$infield(9,'l',pnamsiz,@pd.name);
|
||
= else
|
||
946 4 = call print$buffer(.(' $'));
|
||
947 4 = call print$infield(10,'l',pnamsiz,@qlist(i).owner); /* Print it */
|
||
948 4 = call display$flag$status(qlist(i).flags); /* Print Flag Value*/
|
||
949 4 = call crlf;
|
||
950 4 = end;
|
||
=
|
||
= /* Print the Flag Key */
|
||
951 3 = call print$buffer(.(' Flag Values : 1 = MX, 2 = NO DELETE, $'));
|
||
952 3 = call print$buffer(.('4 = NOT USER WRITEABLE, $'));
|
||
953 3 = call crlf;
|
||
954 3 = call print$buffer(.(' 8 = RSP, 10 = FROM QD TABLE, 20 = RPL QUEUE, $'));
|
||
955 3 = call print$buffer(.('40 = DEVICE QUEUE.$'));
|
||
956 3 = qdcnt = qdcnt - 1; /* To normalize */
|
||
=
|
||
957 3 = if (qdcnt < 22) then do;
|
||
959 4 = do i = qdcnt to 17;
|
||
960 5 = call print$buffer(.(CR,LF,
|
||
= ' $'));
|
||
961 5 = end;
|
||
PL/M-86 COMPILER CCP/M-86 1.0 SYSTAT PROCESS - TRANSIENT PAGE 27
|
||
|
||
|
||
962 4 = end;
|
||
=
|
||
963 3 = if constat then do; /* Check for continue */
|
||
965 4 = repeat = false;
|
||
966 4 = chr = conin;
|
||
967 4 = end;
|
||
968 3 = if repeat then do; /* Keep going,delay first */
|
||
970 4 = call delay(intrval);
|
||
971 4 = if (qdcnt >= 19) then do;
|
||
973 5 = call print$qhdr;
|
||
974 5 = end;
|
||
975 4 = end;
|
||
976 3 = else do; /* Stop display */
|
||
977 4 = if not(specified) then /* Go to main menu */
|
||
978 4 = call cons$wait;
|
||
= else /* Go back to system */
|
||
979 4 = call terminate;
|
||
980 4 = end;
|
||
981 3 = end; /* while loop */
|
||
=
|
||
982 2 = end display$queue;
|
||
=
|
||
=
|
||
=
|
||
983 1 = dcl driv$letter (*) byte data ('ABCDEFGHIJKLMNOP');
|
||
=
|
||
984 1 = display$gen: procedure(vers); /* Overview Display Routine*/
|
||
985 2 = dcl vers byte;
|
||
986 2 = dcl (count,qsize) word;
|
||
987 2 = dcl mode word;
|
||
=
|
||
=
|
||
988 2 = call home; call clear;
|
||
990 2 = pd$pointer = get$currpd; /* Get PD for Current Process*/
|
||
991 2 = vccb$ptr.offset = sd.ccb + (pd.cns * size(vccb));
|
||
=
|
||
992 2 = call crlf; call print$infield(42,'r',17,@('Default Disk = '));
|
||
994 2 = call co(driv$letter(pd.dsk));
|
||
995 2 = call co(':');
|
||
=
|
||
996 2 = call crlf; call print$infield(42,'r',24,@('Default User Number = '));
|
||
998 2 = call display$hex$byte(pd.user);
|
||
=
|
||
999 2 = call crlf; call print$infield(42,'r',20,@('Default Printer = '));
|
||
1001 2 = if (vers) then /* It's MPM-86 */
|
||
1002 2 = call display$hex$byte(pd.lst - sd.ncondev);
|
||
= else /* It's Concurrent */
|
||
1003 2 = call display$hex$byte(pd.lst);
|
||
=
|
||
1004 2 = call crlf; call print$infield(42,'r',28,@('Current Virtual Console = '));
|
||
1006 2 = call display$hex$byte(pd.cns);
|
||
=
|
||
1007 2 = if (not vers) then do;
|
||
1009 3 = call crlf;call print$infield(42,'r',20,@('Background Mode = '));
|
||
1011 3 = mode = (vccb.state);
|
||
1012 3 = if (mode >= 0) and (mode <= 0200h ) then do;
|
||
1014 4 = if (mode mod 2) = 0 then
|
||
PL/M-86 COMPILER CCP/M-86 1.0 SYSTAT PROCESS - TRANSIENT PAGE 28
|
||
|
||
|
||
1015 4 = call print$buffer(.('DYNAMIC $'));
|
||
= else
|
||
1016 4 = call print$buffer(.('BUFFERED$'));
|
||
1017 4 = end;
|
||
1018 3 = else call print$buffer(.('OTHER $'));
|
||
1019 3 = end;
|
||
=
|
||
1020 2 = if (not vers) then do;
|
||
1022 3 = call crlf; call print$infield(42,'r',17,@('Buffer Space = '));
|
||
1024 3 = call display$hex$word(vccb.maxbufsiz);
|
||
1025 3 = call co('K');
|
||
1026 3 = end;
|
||
=
|
||
1027 2 = call crlf;
|
||
1028 2 = call print$infield(42,'r',31,@('Maximum Memory Per Process = '));
|
||
1029 2 = call display$hex$word(sd.mmp);
|
||
1030 2 = call print$buffer(.(' PARA$'));
|
||
=
|
||
1031 2 = call crlf; call print$infield(42,'r',31,@('Number of Virtual Consoles = '));
|
||
1033 2 = call display$hex$byte(sd.ncns);
|
||
=
|
||
1034 2 = call crlf; call print$infield(42,'r',23,@('Number of Printers = '));
|
||
1036 2 = call display$hex$byte(sd.nlst);
|
||
=
|
||
1037 2 = call crlf; call print$infield(42,'r',20,@('Temporary Drive = '));
|
||
1039 2 = call co(driv$letter(sd.tempdisk));
|
||
1040 2 = call co(':');
|
||
=
|
||
1041 2 = call crlf; call print$infield(42,'r',17,@('System Drive = '));
|
||
1043 2 = call co(driv$letter(sd.srchdisk));
|
||
1044 2 = call co(':');
|
||
=
|
||
1045 2 = call crlf; call print$infield(42,'r',21,@('Ticks Per Second = '));
|
||
1047 2 = call display$hex$byte(sd.tickspersec);
|
||
=
|
||
1048 2 = call crlf; call print$infield(42,'r',20,@('Day File Option = '));
|
||
1050 2 = if sd.dayfile = 0 then
|
||
1051 2 = call print$buffer(.('NO $'));
|
||
= else
|
||
1052 2 = call print$buffer(.('YES$'));
|
||
=
|
||
=
|
||
1053 2 = call crlf; call print$infield(42,'r',23,@('BDOS Compatability = '));
|
||
1055 2 = if sd.cmod <> 0 then
|
||
1056 2 = call print$buffer(.('YES$'));
|
||
= else
|
||
1057 2 = call print$buffer(.('NO $'));
|
||
=
|
||
1058 2 = call crlf; call print$infield(42,'r',20,@('Number of Flags = '));
|
||
1060 2 = call display$hex$byte(sd.nflags);
|
||
=
|
||
1061 2 = call crlf; call print$infield(42,'r',27,@('Free Queue Descriptors = '));
|
||
1063 2 = pd$ptr.offset = sd.qul;
|
||
1064 2 = count = 0;
|
||
1065 2 = do while pd$ptr.offset <> 0;
|
||
1066 3 = count = count + 1;
|
||
1067 3 = pd$ptr.offset = pd.link;
|
||
PL/M-86 COMPILER CCP/M-86 1.0 SYSTAT PROCESS - TRANSIENT PAGE 29
|
||
|
||
|
||
1068 3 = end;
|
||
1069 2 = call display$hex$byte(count);
|
||
=
|
||
1070 2 = call crlf; call print$infield(42,'r',22,@('Free Queue Buffer = '));
|
||
1072 2 = md$ptr.offset = .sd.qmau(0);
|
||
1073 2 = sat$ptr.segment = md.start; /* start of qbuffer SAT */
|
||
1074 2 = sat$ptr.offset = size(sat); /* skip 1st 5 bytes bookeeping*/
|
||
1075 2 = qsize = 0;
|
||
1076 2 = do while sat.start <> 0; /* byte offset for queue buffer*/
|
||
1077 3 = if sat.num$allocs = 0 then /* dooes anyone own this piece?*/
|
||
1078 3 = qsize = qsize + sat.len;
|
||
1079 3 = sat$ptr.offset = size(sat) + sat$ptr.offset; /* Get next entry */
|
||
1080 3 = end;
|
||
1081 2 = call display$hex$word(qsize);
|
||
1082 2 = call print$buffer(.(' BYTES$'));
|
||
=
|
||
1083 2 = call crlf; call print$infield(42,'r',29,@('Free Process Descriptors = '));
|
||
1085 2 = pd$ptr.offset = sd.pul;
|
||
1086 2 = count = 0;
|
||
1087 2 = do while pd$ptr.offset <> 0;
|
||
1088 3 = count = count + 1;
|
||
1089 3 = pd$ptr.offset = pd.link;
|
||
1090 3 = end;
|
||
1091 2 = call display$hex$byte(count);
|
||
=
|
||
1092 2 = call crlf; call print$infield(42,'r',28,@('Free Memory Descriptors = '));
|
||
1094 2 = pd$ptr.offset = sd.mdul;
|
||
1095 2 = count = 0;
|
||
1096 2 = do while pd$ptr.offset <> 0;
|
||
1097 3 = count = count + 1;
|
||
1098 3 = pd$ptr.offset = pd.link;
|
||
1099 3 = end;
|
||
1100 2 = call display$hex$byte(count);
|
||
=
|
||
1101 2 = call crlf;
|
||
1102 2 = if not(specified) then
|
||
1103 2 = call cons$wait;
|
||
= else
|
||
1104 2 = call terminate;
|
||
=
|
||
1105 2 = end displaygen;
|
||
=
|
||
=
|
||
=
|
||
|
||
|
||
|
||
/**************************************************************************
|
||
|
||
MAIN PROGRAM
|
||
|
||
**************************************************************************/
|
||
|
||
|
||
1106 1 plmstart: procedure public;
|
||
1107 2 dcl (i,version) byte,
|
||
ver address,
|
||
PL/M-86 COMPILER CCP/M-86 1.0 SYSTAT PROCESS - TRANSIENT PAGE 30
|
||
|
||
|
||
validchar byte;
|
||
1108 2 dcl bdosversion lit '30h'; /* BDOS 3.o or later */
|
||
1109 2 dcl osproduct lit '14h'; /* CCP/M-86 */
|
||
1110 2 dcl mpmproduct lit '11h'; /* MP/M-86 */
|
||
|
||
1111 2 dcl vers$str$pointer pointer;
|
||
1112 2 dcl vers$str$ptr structure (
|
||
offset word,
|
||
segment word) at (@vers$str$pointer);
|
||
1113 2 dcl (doscan,chr) byte;
|
||
|
||
1114 2 ver = get$version;
|
||
1115 2 if low(ver) < bdosversion or
|
||
( (high(ver) <> osproduct) and (high(ver) <> mpmproduct) ) then
|
||
1116 2 do;
|
||
1117 3 call print$buffer (.('Requires Concurrent CP/M-86 or MP/M-86$'));
|
||
1118 3 call reboot; /* use CP/M exit */
|
||
1119 3 end;
|
||
else
|
||
1120 2 do;
|
||
1121 3 version = high(ver) mod 2; /* 0 = CCP/M-86, 1 = MP/M-86 */
|
||
1122 3 sysdat$pointer = get$sysdat;
|
||
1123 3 flag$ptr.segment,md$ptr.segment,ms$ptr.segment,
|
||
sat$ptr.segment,qd$ptr.segment,pd$ptr.segment,vccb$ptr.segment
|
||
= sysdat$ptr.segment;
|
||
|
||
1124 3 doscan = true;
|
||
1125 3 repeat = false;
|
||
1126 3 specified = false; /* Default */
|
||
1127 3 intrval = 01h; /* Default */
|
||
/* Scan for option */
|
||
1128 3 do while doscan ; /* Loop until Q(uit)*/
|
||
1129 4 if buff(0) <> 0 then do; /* Command line arg */
|
||
1131 5 i = 1; /* was used. Get it.*/
|
||
1132 5 do while buff(i) = ' ' ; /* Skip intervening blanks */
|
||
1133 6 i = i + 1;
|
||
1134 6 end;
|
||
1135 5 if buff(i) = lbracket then
|
||
1136 5 i = i + 1;
|
||
else
|
||
1137 5 call print$opt$err;
|
||
1138 5 chr = buff(i); /* 1st arg */
|
||
1139 5 i = i + 1;
|
||
1140 5 if (buff(i) = ',') or (buff(i) = ' ') or (buff(i) = ']') then
|
||
1141 5 i = i + 1; /* Skip blank or comma */
|
||
else
|
||
1142 5 call print$opt$err;
|
||
1143 5 if (buff(i-1) <> rbracket) then do; /* Keep going,more args*/
|
||
1145 6 if (buff(i) = 'c') or (buff(i) = 'C') then do;
|
||
1147 7 repeat = true;
|
||
1148 7 i = i + 1;
|
||
1149 7 end;
|
||
else
|
||
1150 6 call print$opt$err;
|
||
1151 6 if (buff(i) <> rbracket) then do; /* Still more ?*/
|
||
1153 7 if (buff(i) = ' ') or (buff(i) = ',') then do;
|
||
1155 8 i = i + 1;
|
||
PL/M-86 COMPILER CCP/M-86 1.0 SYSTAT PROCESS - TRANSIENT PAGE 31
|
||
|
||
|
||
1156 8 end;
|
||
else
|
||
1157 7 call print$opt$err;
|
||
/* Get ascii hex interval data */
|
||
1158 7 intrval = aschex(buff(i));
|
||
1159 7 i = i + 1;
|
||
1160 7 if (buff(i) <> rbracket) then do;
|
||
1162 8 intrval = shl(intrval,4);
|
||
1163 8 intrval = intrval + aschex(buff(i));
|
||
1164 8 end; /* Now convert to system ticks */
|
||
1165 7 intrval = intrval * sd.tickspersec;
|
||
1166 7 end;
|
||
1167 6 end;
|
||
|
||
1168 5 buff(0) = 0; /* Go back to menu*/
|
||
1169 5 specified = true; /* next time. */
|
||
1170 5 end;
|
||
1171 4 else do; /* No args's given*/
|
||
1172 5 call disp$mainhdr; /* Show the menu */
|
||
1173 5 chr = conin;
|
||
1174 5 end;
|
||
|
||
1175 4 validchar = false;
|
||
1176 4 do while not(validchar); /* Select action */
|
||
1177 5 validchar = true;
|
||
1178 5 if (chr = 'h') or (chr = 'H') then do;
|
||
1180 6 call display$help;
|
||
1181 6 end;
|
||
1182 5 else if (chr = 'm') or (chr = 'M') then do;
|
||
1184 6 call display$mem;
|
||
1185 6 end;
|
||
1186 5 else if (chr = 'o') or (chr = 'O') then do;
|
||
1188 6 call display$gen(version);
|
||
1189 6 end;
|
||
1190 5 else if (chr = 'e') or (chr = 'E') then do;
|
||
1192 6 call terminate; /* The Exit */
|
||
1193 6 end;
|
||
1194 5 else if (chr = 'p') or (chr = 'P') then do;
|
||
1196 6 call display$proc(0);
|
||
1197 6 end;
|
||
1198 5 else if (chr = 'q') or (chr = 'Q') then do;
|
||
1200 6 call display$queue;
|
||
1201 6 end;
|
||
1202 5 else if (chr = 'u') or (chr = 'U') then do;
|
||
1204 6 call display$proc(1);
|
||
1205 6 end;
|
||
1206 5 else do; /* Incorrect character was used */
|
||
1207 6 validchar = false;
|
||
|
||
1208 6 if not(specified) then do; /* Invalid char was from menu */
|
||
1210 7 if (chr = CR) then
|
||
1211 7 call print$buffer(.(' ->$'));
|
||
1212 7 call print$buffer(.(' Invalid Option.$'));
|
||
1213 7 call co(CR); /* Move left to beginning of line */
|
||
1214 7 call print$buffer(.(' ->$'));
|
||
1215 7 chr = conin; /* Get another char, hopefully a good one */
|
||
1216 7 end;
|
||
PL/M-86 COMPILER CCP/M-86 1.0 SYSTAT PROCESS - TRANSIENT PAGE 32
|
||
|
||
|
||
|
||
else /* Invalid char was from the command line */
|
||
1217 6 call print$opt$err;
|
||
|
||
1218 6 end; /* Incorrect char case */
|
||
1219 5 end; /* inner while loop - validchar */
|
||
|
||
1220 4 end; /* outer while loop - doscan */
|
||
1221 3 end;
|
||
|
||
1222 2 end plmstart;
|
||
|
||
1223 1 end status;
|
||
PL/M-86 COMPILER CCP/M-86 1.0 SYSTAT PROCESS - TRANSIENT PAGE 33
|
||
|
||
|
||
CROSS-REFERENCE LISTING
|
||
-----------------------
|
||
|
||
|
||
DEFN ADDR SIZE NAME, ATTRIBUTES, AND REFERENCES
|
||
----- ------ ----- --------------------------------
|
||
|
||
|
||
127 0021H 1 ABORT. . . . . . . BYTE MEMBER(PD)
|
||
281 03CFH 68 ASCHEX . . . . . . PROCEDURE BYTE STACK=0004H 307 311 1158 1163
|
||
145 0000H 2 ATTACH . . . . . . WORD MEMBER(VCCB)
|
||
1108 BDOSVERSION. . . . LITERALLY 1115
|
||
2 BOOLEAN. . . . . . LITERALLY 859
|
||
145 000CH 1 BTMP . . . . . . . BYTE MEMBER(VCCB)
|
||
3 0000H 128 BUFF . . . . . . . BYTE ARRAY(128) EXTERNAL(0) 1129 1132 1135 1138 1140 1143 1145
|
||
1151 1153 1158 1160 1163 1168
|
||
130 001AH 2 BUFFER . . . . . . WORD MEMBER(QD) 916
|
||
173 0004H 2 BUFFERADR. . . . . WORD PARAMETER AUTOMATIC 174 175
|
||
123 0008H 2 CCB. . . . . . . . WORD MEMBER(XINIT)
|
||
104 0054H 2 CCB. . . . . . . . WORD MEMBER(SD) 991
|
||
118 CCBSTRUCTURE . . . LITERALLY 145
|
||
119 CCBTAIL1 . . . . . LITERALLY 145
|
||
120 CCBTAIL2 . . . . . LITERALLY 145
|
||
121 CFBUFP . . . . . . LITERALLY
|
||
121 CFCOMPC. . . . . . LITERALLY
|
||
121 CFCONOUT . . . . . LITERALLY
|
||
121 CFLISTCP . . . . . LITERALLY
|
||
121 CFSWITCHS. . . . . LITERALLY
|
||
121 CFVOUT . . . . . . LITERALLY
|
||
472 04AAH 1 CHAR . . . . . . . BYTE 478 479 574
|
||
196 0000H 1 CHAR . . . . . . . BYTE BASED(DATADDR) 205
|
||
165 0004H 1 CHAR . . . . . . . BYTE PARAMETER AUTOMATIC 166 167
|
||
155 0004H 1 CHAR . . . . . . . BYTE PARAMETER AUTOMATIC 156 157
|
||
683 0E2AH 1 CHR. . . . . . . . BYTE 687 688 832
|
||
277 00E5H 1 CHR. . . . . . . . BYTE 279
|
||
303 00E6H 1 CHR. . . . . . . . BYTE 304 305 307 311 315 316
|
||
883 14F1H 1 CHR. . . . . . . . BYTE 888 889 966
|
||
1113 14F7H 1 CHR. . . . . . . . BYTE 1138 1173 1178 1182 1186 1190 1194 1198 1202 1210 1215
|
||
303 00E7H 1 CHR1 . . . . . . . BYTE 308 309 311 312
|
||
258 0355H 36 CLEAR. . . . . . . PROCEDURE STACK=000EH 321 351 387 594 697 850 989
|
||
89 00D3H 6 CLEARSEQ . . . . . BYTE ARRAY(6) INITIAL 260 261
|
||
104 0090H 1 CMOD . . . . . . . BYTE MEMBER(SD) 1055
|
||
127 0020H 1 CNS. . . . . . . . BYTE MEMBER(PD) 497 543 729 776 991 1006
|
||
589 000EH 1 CNS. . . . . . . . BYTE MEMBER(SORTRECD) 808 826
|
||
468 0000H 1 CNS. . . . . . . . BYTE MEMBER(PDLIST) 497 557
|
||
591 000EH 1 CNS. . . . . . . . BYTE MEMBER(SHAREARRAY) 648 665 776
|
||
590 000EH 1 CNS. . . . . . . . BYTE MEMBER(SORTARRAY) 613 615 629 631 729 755 808 817
|
||
826
|
||
860 14EDH 1 CNT. . . . . . . . BYTE 863 870 873 878
|
||
602 0006H 1 CNT. . . . . . . . BYTE PARAMETER AUTOMATIC 603 606 608 621 625 628 629 631
|
||
632 633 634 673 675
|
||
155 013CH 19 CO . . . . . . . . PROCEDURE STACK=000AH 190 191 202 205 210 217 218 232
|
||
237 249 254 273 454 869 879 994 995 1025 1039 1040 1043 1044
|
||
1213
|
||
145 0006H 1 COLUMN . . . . . . BYTE MEMBER(VCCB)
|
||
152 012DH 15 CONIN. . . . . . . PROCEDURE BYTE STACK=0008H 279 304 308 312 478 574 687
|
||
832 888 966 1173 1215
|
||
PL/M-86 COMPILER CCP/M-86 1.0 SYSTAT PROCESS - TRANSIENT PAGE 34
|
||
|
||
|
||
127 0022H 2 CONMODE. . . . . . WORD MEMBER(PD)
|
||
162 015EH 15 CONSTAT. . . . . . PROCEDURE BYTE STACK=0008H 571 829 963
|
||
276 03BDH 18 CONSWAIT . . . . . PROCEDURE STACK=000EH 382 584 842 978 1103
|
||
683 0E27H 1 CONT . . . . . . . BYTE 722 723 725 742 773 774 775 794
|
||
883 14F0H 1 CONT . . . . . . . BYTE
|
||
145 0022H 2 COSLEEP. . . . . . WORD MEMBER(VCCB)
|
||
986 00B6H 2 COUNT. . . . . . . WORD 1064 1066 1069 1086 1088 1091 1095 1097 1100
|
||
419 00E8H 1 COUNT. . . . . . . BYTE
|
||
91 CR . . . . . . . . LITERALLY 190 278 305 309 345 477 482 568 597 599 627
|
||
638 663 676 686 691 887 892 960 1210 1213
|
||
189 01DCH 17 CRLF . . . . . . . PROCEDURE STACK=000EH 322 323 325 326 328 330 332 334
|
||
336 338 340 341 346 352 353 354 356 357 359 361 363 365
|
||
366 368 369 371 373 374 376 378 380 389 392 476 556 609
|
||
644 853 856 886 949 953 992 996 999 1004 1009 1022 1027 1031
|
||
1034 1037 1041 1045 1048 1053 1058 1061 1070 1083 1092 1101
|
||
122 CSMABORT . . . . . LITERALLY
|
||
122 CSMBACKGROUND. . . LITERALLY
|
||
122 CSMBUFFERED. . . . LITERALLY
|
||
122 CSMCTRLO . . . . . LITERALLY
|
||
122 CSMCTRLP . . . . . LITERALLY
|
||
122 CSMCTRLS . . . . . LITERALLY
|
||
122 CSMFILEFULL. . . . LITERALLY
|
||
122 CSMNOSWITCH. . . . LITERALLY
|
||
122 CSMPURGING . . . . LITERALLY
|
||
122 CSMSUSPEND . . . . LITERALLY
|
||
193 0004H 4 DATADDR. . . . . . POINTER PARAMETER AUTOMATIC 194 196 197 205
|
||
197 0004H 4 DATPTR . . . . . . STRUCTURE AT AUTOMATIC 206
|
||
104 004FH 1 DAYFILE. . . . . . BYTE MEMBER(SD) 1050
|
||
148 000EH 2 DBLK . . . . . . . WORD MEMBER(UDA)
|
||
2 DCL. . . . . . . . LITERALLY
|
||
148 000CH 2 DCNT . . . . . . . WORD MEMBER(UDA)
|
||
169 0180H 16 DELAY. . . . . . . PROCEDURE STACK=000AH 578 838 970
|
||
148 0012H 8 DFPASSWORD . . . . BYTE ARRAY(8) MEMBER(UDA)
|
||
591 000AH 1 DISK . . . . . . . BYTE MEMBER(SHAREARRAY) 649 666 777
|
||
858 16D6H 107 DISPLAYFLAGSTATUS. PROCEDURE STACK=0016H 948
|
||
984 1A91H 1006 DISPLAYGEN . . . . PROCEDURE STACK=001EH 1188
|
||
349 0552H 280 DISPLAYHELP. . . . PROCEDURE STACK=001CH 1180
|
||
215 0264H 44 DISPLAYHEXBYTE . . PROCEDURE STACK=0010H 222 223 234 461 872 998 1002 1003
|
||
1006 1033 1036 1047 1060 1069 1091 1100
|
||
220 0290H 23 DISPLAYHEXWORD . . PROCEDURE STACK=0016H 251 1024 1029 1081
|
||
681 10CEH 1499 DISPLAYMEM . . . . PROCEDURE STACK=002CH 1184
|
||
470 094DH 872 DISPLAYPROC. . . . PROCEDURE STACK=002EH 1196 1204
|
||
882 1741H 848 DISPLAYQUEUE . . . PROCEDURE STACK=0024H 1200
|
||
319 046FH 209 DISPMAINHDR. . . . PROCEDURE STACK=001CH 1172
|
||
592 0CB5H 53 DISPMEMHDR . . . . PROCEDURE STACK=0012H 698 837
|
||
416 07BEH 399 DISPRESOURCE . . . PROCEDURE STACK=0028H 563
|
||
396 06D5H 233 DISPSTATUS . . . . PROCEDURE STACK=001EH 562
|
||
104 006AH 2 DLR. . . . . . . . WORD MEMBER(SD) 437
|
||
148 0002H 2 DMAOFST. . . . . . WORD MEMBER(UDA)
|
||
148 0004H 2 DMASEG . . . . . . WORD MEMBER(UDA)
|
||
123 0002H 1 DOOR . . . . . . . BYTE MEMBER(XINIT)
|
||
1113 14F6H 1 DOSCAN . . . . . . BYTE 1124 1128
|
||
148 0000H 2 DPARAM . . . . . . WORD MEMBER(UDA) 511 518 519
|
||
847 0010H 2 DQ . . . . . . . . WORD MEMBER(QLIST) 913 939
|
||
130 0012H 2 DQ . . . . . . . . WORD MEMBER(QD) 913
|
||
983 0010H 16 DRIVLETTER . . . . BYTE ARRAY(16) DATA 994 1039 1043
|
||
104 006CH 2 DRL. . . . . . . . WORD MEMBER(SD) 439
|
||
PL/M-86 COMPILER CCP/M-86 1.0 SYSTAT PROCESS - TRANSIENT PAGE 35
|
||
|
||
|
||
127 0012H 1 DSK. . . . . . . . BYTE MEMBER(PD) 994
|
||
127 0018H 2 DVRACT . . . . . . WORD MEMBER(PD)
|
||
104 0044H 2 ENDSEG . . . . . . WORD MEMBER(SD)
|
||
148 0010H 1 ERRORMODE. . . . . BYTE MEMBER(UDA)
|
||
2 FALSE. . . . . . . LITERALLY 490 533 537 573 700 725 775 831 861 899 965
|
||
1125 1126 1175 1207
|
||
810 154CH FIND . . . . . . . LABEL
|
||
145 0004H 1 FLAG . . . . . . . BYTE MEMBER(VCCB)
|
||
858 0004H 1 FLAG . . . . . . . BYTE PARAMETER AUTOMATIC 860 865
|
||
127 0006H 2 FLAG . . . . . . . WORD MEMBER(PD) 501
|
||
142 0000H 3 FLAG . . . . . . . STRUCTURE BASED(FLAGPOINTER) 528
|
||
468 0009H 2 FLAG . . . . . . . WORD MEMBER(PDLIST) 501 560
|
||
88 00D2H 1 FLAGLEN. . . . . . BYTE INITIAL 531
|
||
140 0020H 4 FLAGPOINTER. . . . POINTER 141 142 528
|
||
141 0020H 4 FLAGPTR. . . . . . STRUCTURE AT 524 531 1123
|
||
847 001AH 1 FLAGS. . . . . . . BYTE MEMBER(QLIST) 928 948
|
||
130 0004H 2 FLAGS. . . . . . . WORD MEMBER(QD) 914 928
|
||
136 0006H 2 FLAGS. . . . . . . WORD MEMBER(MS)
|
||
104 0056H 2 FLAGS. . . . . . . WORD MEMBER(SD) 524
|
||
116 FLAGSTRUCTURE. . . LITERALLY 142
|
||
2 FOREVER. . . . . . LITERALLY
|
||
81 00C5H 8 FREENAME . . . . . BYTE ARRAY(8) INITIAL 750
|
||
12 0000H 1 FUNC . . . . . . . BYTE PARAMETER 13
|
||
8 0000H 1 FUNC . . . . . . . BYTE PARAMETER 9
|
||
148 0006H 1 FUNC . . . . . . . BYTE MEMBER(UDA)
|
||
16 0000H 1 FUNC . . . . . . . BYTE PARAMETER 17
|
||
4 0000H 1 FUNC . . . . . . . BYTE PARAMETER 5
|
||
186 01CDH 15 GETCURRPD. . . . . PROCEDURE POINTER STACK=0008H 990
|
||
302 0413H 92 GETINTRVAL . . . . PROCEDURE WORD STACK=000CH 483 692 893
|
||
718 11B3H GETMDS . . . . . . LABEL
|
||
707 1154H GETMEMOWNERS . . . LABEL
|
||
493 09B5H GETPDS . . . . . . LABEL
|
||
903 17A6H GETQUEUES. . . . . LABEL
|
||
759 1354H GETSHARED. . . . . LABEL
|
||
183 01BEH 15 GETSYSDAT. . . . . PROCEDURE POINTER STACK=0008H 1122
|
||
177 01A0H 15 GETVERSION . . . . PROCEDURE WORD STACK=0008H 1114
|
||
214 0000H 16 HEXDIGIT . . . . . BYTE ARRAY(16) DATA 217 218
|
||
HIGH . . . . . . . BUILTIN 222 1115 1121
|
||
264 0379H 36 HOME . . . . . . . PROCEDURE STACK=000EH 320 350 386 552 593 604 696 849
|
||
901 988
|
||
90 00D9H 6 HOMESEQ. . . . . . BYTE ARRAY(6) INITIAL 266 267
|
||
682 0E22H 1 I. . . . . . . . . BYTE 719 720 770 771 803 804 812 813 821 822
|
||
473 04AFH 1 I. . . . . . . . . BYTE 498 499 504 505 507 513 517 521 541
|
||
271 00E4H 1 I. . . . . . . . . BYTE 272
|
||
265 00E3H 1 I. . . . . . . . . BYTE 266 267
|
||
259 00E2H 1 I. . . . . . . . . BYTE 260 261
|
||
243 00E1H 1 I. . . . . . . . . BYTE 248 253
|
||
195 00DFH 1 I. . . . . . . . . BYTE 201 204 209
|
||
860 14ECH 1 I. . . . . . . . . BYTE 862 864 865 872 876 878
|
||
226 00E0H 1 I. . . . . . . . . BYTE 231 236
|
||
1107 14F3H 1 I. . . . . . . . . BYTE 1131 1132 1133 1135 1136 1138 1139 1140 1141 1143 1145 1148
|
||
1151 1153 1155 1158 1159 1160 1163
|
||
21 0000H 2 I. . . . . . . . . WORD 22 23 24 25 26 27 28 29 30 31 32 33
|
||
34 35 36 37 38 39 40 41 42 43 44 45 46 47
|
||
48 49 50 51 52 53 54 55 56 57 58 59 60 61
|
||
62 63 64 65 66 67 68 69 70 71 72 73 74 75
|
||
76
|
||
PL/M-86 COMPILER CCP/M-86 1.0 SYSTAT PROCESS - TRANSIENT PAGE 36
|
||
|
||
|
||
883 14F2H 1 I. . . . . . . . . BYTE 906 907 918 919 921 922 925 926 933 935 936 937
|
||
938 939 943 947 948 959
|
||
142 0002H 1 IGNORE . . . . . . BYTE MEMBER(FLAG)
|
||
8 0000H 2 INFO . . . . . . . WORD PARAMETER 10
|
||
16 0000H 2 INFO . . . . . . . WORD PARAMETER 18
|
||
4 0000H 2 INFO . . . . . . . WORD PARAMETER 6
|
||
12 0000H 2 INFO . . . . . . . WORD PARAMETER 14
|
||
86 0002H 2 INTRVAL. . . . . . WORD 483 578 692 838 893 970 1127 1158 1162 1163 1165
|
||
241 0006H 1 JUSTIFY. . . . . . BYTE PARAMETER AUTOMATIC 242 247 252
|
||
225 0006H 1 JUSTIFY. . . . . . BYTE PARAMETER AUTOMATIC 226 230 235
|
||
193 000AH 1 JUSTIFY. . . . . . BYTE PARAMETER AUTOMATIC 195 200 208
|
||
603 0E21H 1 K. . . . . . . . . BYTE 610 612 613 615 616 617 618 621 645 647 648 649
|
||
650 651 652 655 675
|
||
473 04ACH 1 K. . . . . . . . . BYTE 526 530 532 536 554 555 557 559 560 561 562 563
|
||
567
|
||
83 00CEH 1 LBRACKET . . . . . BYTE INITIAL 1135
|
||
123 000AH 2 LCB. . . . . . . . WORD MEMBER(XINIT)
|
||
104 0086H 4 LCB. . . . . . . . WORD ARRAY(2) MEMBER(SD)
|
||
124 LCBSTRUCTURE . . . LITERALLY
|
||
104 008AH 1 LCKMAX . . . . . . BYTE MEMBER(SD)
|
||
127 0014H 1 LDSK . . . . . . . BYTE MEMBER(PD) 777
|
||
589 000CH 2 LEN. . . . . . . . WORD MEMBER(SORTRECD) 806 824
|
||
591 000CH 2 LEN. . . . . . . . WORD MEMBER(SHAREARRAY) 652 669 781
|
||
193 0008H 1 LEN. . . . . . . . BYTE PARAMETER AUTOMATIC 195 198 201 204 209
|
||
590 000CH 2 LEN. . . . . . . . WORD MEMBER(SORTARRAY) 618 634 728 754 806 815 824
|
||
139 0002H 2 LEN. . . . . . . . WORD MEMBER(SAT) 1078
|
||
136 0004H 2 LENGTH . . . . . . WORD MEMBER(MS)
|
||
133 0004H 2 LENGTH . . . . . . WORD MEMBER(MD) 728 754 781
|
||
92 LF . . . . . . . . LITERALLY 191 273 278 305 309 345 477 482 568 597 599
|
||
627 638 663 676 686 691 887 892 960
|
||
133 0000H 2 LINK . . . . . . . WORD MEMBER(MD) 757
|
||
127 0000H 2 LINK . . . . . . . WORD MEMBER(PD) 1067 1089 1098
|
||
136 0000H 2 LINK . . . . . . . WORD MEMBER(MS) 733 736 737 739 785 788 789 791
|
||
130 0000H 2 LINK . . . . . . . WORD MEMBER(QD) 930
|
||
469 0030H 128 LINKLIST . . . . . WORD ARRAY(64) 702 711 720 764 771
|
||
2 LIT. . . . . . . . LITERALLY 2 91 92 99 100 101 106 107 108 109 110
|
||
111 112 113 114 115 116 117 118 119 120 121 122 123 124
|
||
1108 1109 1110
|
||
470 0004H 1 LNKFIELD . . . . . BYTE PARAMETER AUTOMATIC 471 495
|
||
LOW. . . . . . . . BUILTIN 223 426 456 461 1115
|
||
127 0024H 1 LST. . . . . . . . BYTE MEMBER(PD) 1002 1003
|
||
104 0052H 2 LUL. . . . . . . . WORD MEMBER(SD)
|
||
127 0015H 1 LUSER. . . . . . . BYTE MEMBER(PD) 778
|
||
603 0E1FH 1 M. . . . . . . . . BYTE 608 610 643 645
|
||
104 0076H 2 MAL. . . . . . . . WORD MEMBER(SD)
|
||
136 0008H 2 MAU. . . . . . . . WORD MEMBER(MS) 726 735 737 738 741 779 787 789 790 793
|
||
145 0010H 2 MAXBUFSIZ. . . . . WORD MEMBER(VCCB) 1024
|
||
79 00C3H 1 MAXMD. . . . . . . BYTE INITIAL 723 748 774
|
||
78 00C2H 1 MAXPD. . . . . . . BYTE INITIAL 493 701 708 763
|
||
80 00C4H 1 MAXQFLAGS. . . . . BYTE INITIAL 864
|
||
82 00CDH 1 MAXQUEUES. . . . . BYTE INITIAL 905
|
||
133 0000H 10 MD . . . . . . . . STRUCTURE BASED(MDPOINTER) 727 728 752 754 757 780 781
|
||
1073
|
||
682 0E23H 1 MDCNT. . . . . . . BYTE 718 723 724 727 728 729 731 744 748 750 752 753
|
||
754 755 756 801 828 836
|
||
131 0014H 4 MDPOINTER. . . . . POINTER 132 133 727 728 752 754 757 780 781 1073
|
||
132 0014H 4 MDPTR. . . . . . . STRUCTURE AT 726 747 748 757 779 1072 1123
|
||
PL/M-86 COMPILER CCP/M-86 1.0 SYSTAT PROCESS - TRANSIENT PAGE 37
|
||
|
||
|
||
93 MDSTRUCTURE. . . . LITERALLY 133
|
||
104 0058H 2 MDUL . . . . . . . WORD MEMBER(SD) 1094
|
||
127 0016H 2 MEM. . . . . . . . WORD MEMBER(PD) 495 709 721 772
|
||
104 005AH 2 MFL. . . . . . . . WORD MEMBER(SD) 747
|
||
145 0008H 1 MIMIC. . . . . . . BYTE MEMBER(VCCB)
|
||
104 004CH 2 MMP. . . . . . . . WORD MEMBER(SD) 1029
|
||
987 00BAH 2 MODE . . . . . . . WORD 1011 1012 1014
|
||
104 0046H 1 MODULEMAP. . . . . BYTE MEMBER(SD)
|
||
4 0000H MON1 . . . . . . . PROCEDURE EXTERNAL(1) STACK=0000H 150 157 167 171 175 181
|
||
8 0000H MON2 . . . . . . . PROCEDURE BYTE EXTERNAL(2) STACK=0000H 153 160 163
|
||
12 0000H MON3 . . . . . . . PROCEDURE WORD EXTERNAL(3) STACK=0000H 178
|
||
16 0000H MON4 . . . . . . . PROCEDURE POINTER EXTERNAL(4) STACK=0000H 184 187
|
||
1110 MPMPRODUCT . . . . LITERALLY 1115
|
||
104 0040H 2 MPMSEG . . . . . . WORD MEMBER(SD)
|
||
104 007CH 2 MPMVERNUM. . . . . WORD MEMBER(SD)
|
||
136 0000H 10 MS . . . . . . . . STRUCTURE BASED(MSPOINTER) 726 733 735 736 737 738 739
|
||
741 779 785 787 788 789 790 791 793
|
||
847 000CH 2 MSGCNT . . . . . . WORD MEMBER(QLIST) 911 938
|
||
130 0016H 2 MSGCNT . . . . . . WORD MEMBER(QD) 911
|
||
847 000AH 2 MSGLEN . . . . . . WORD MEMBER(QLIST) 910 937
|
||
130 000EH 2 MSGLEN . . . . . . WORD MEMBER(QD) 910
|
||
130 0018H 2 MSGOUT . . . . . . WORD MEMBER(QD)
|
||
145 0009H 1 MSOURCE. . . . . . BYTE MEMBER(VCCB)
|
||
134 0018H 4 MSPOINTER. . . . . POINTER 135 136 726 733 735 736 737 738 739 741 779
|
||
785 787 788 789 790 791 793
|
||
135 0018H 4 MSPTR. . . . . . . STRUCTURE AT 721 736 739 772 788 791 1123
|
||
94 MSSTRUCTURE. . . . LITERALLY 136
|
||
148 0011H 1 MULTCNT. . . . . . BYTE MEMBER(UDA)
|
||
473 04ADH 1 N. . . . . . . . . BYTE 491 493 494 497 499 501 502 503 506 511 518 519
|
||
523 536 543 546 549 554 565 567 579
|
||
683 00B0H 2 N. . . . . . . . . INTEGER 704 711 759 764
|
||
883 00B4H 2 N. . . . . . . . . INTEGER
|
||
127 0008H 8 NAME . . . . . . . BYTE ARRAY(8) MEMBER(PD) 499 731 783 919 941 945
|
||
847 0000H 8 NAME . . . . . . . BYTE ARRAY(8) MEMBER(QLIST) 907 935
|
||
590 0000H 8 NAME . . . . . . . BYTE ARRAY(8) MEMBER(SORTARRAY) 612 628 731 750 804 813
|
||
822
|
||
468 0001H 8 NAME . . . . . . . BYTE ARRAY(8) MEMBER(PDLIST) 499 559
|
||
591 0000H 8 NAME . . . . . . . BYTE ARRAY(8) MEMBER(SHAREARRAY) 647 664 783
|
||
589 0000H 8 NAME . . . . . . . BYTE ARRAY(8) MEMBER(SORTRECD) 804 822
|
||
130 0006H 8 NAME . . . . . . . BYTE ARRAY(8) MEMBER(QD) 447 451 907
|
||
123 0006H 1 NCCB . . . . . . . BYTE MEMBER(XINIT)
|
||
104 0049H 1 NCCB . . . . . . . BYTE MEMBER(SD)
|
||
145 0007H 1 NCHAR. . . . . . . BYTE MEMBER(VCCB)
|
||
104 0085H 1 NCIODEV. . . . . . BYTE MEMBER(SD)
|
||
104 0047H 1 NCNS . . . . . . . BYTE MEMBER(SD) 1033
|
||
104 0083H 1 NCONDEV. . . . . . BYTE MEMBER(SD) 1002
|
||
127 001DH 1 NET. . . . . . . . BYTE MEMBER(PD)
|
||
130 0002H 1 NET. . . . . . . . BYTE MEMBER(QD)
|
||
104 004AH 1 NFLAGS . . . . . . BYTE MEMBER(SD) 532 1060
|
||
123 0007H 1 NLST . . . . . . . BYTE MEMBER(XINIT)
|
||
104 0048H 1 NLST . . . . . . . BYTE MEMBER(SD) 1036
|
||
104 0084H 1 NLSTDEV. . . . . . BYTE MEMBER(SD)
|
||
847 0008H 2 NMSGS. . . . . . . WORD MEMBER(QLIST) 909 936
|
||
130 0010H 2 NMSGS. . . . . . . WORD MEMBER(QD) 909
|
||
2 NO . . . . . . . . LITERALLY
|
||
473 04AEH 1 NOTFOUND . . . . . BYTE 525 527 533 537
|
||
419 00E9H 1 NOTFOUND . . . . . BYTE
|
||
PL/M-86 COMPILER CCP/M-86 1.0 SYSTAT PROCESS - TRANSIENT PAGE 38
|
||
|
||
|
||
847 000EH 2 NQ . . . . . . . . WORD MEMBER(QLIST) 912 943
|
||
130 0014H 2 NQ . . . . . . . . WORD MEMBER(QD) 912
|
||
104 004EH 1 NSLAVES. . . . . . BYTE MEMBER(SD)
|
||
281 0004H 1 NUM. . . . . . . . BYTE PARAMETER AUTOMATIC 282 283 285 288 290 293 295 297
|
||
300
|
||
169 0004H 2 NUM. . . . . . . . WORD PARAMETER AUTOMATIC 170 171
|
||
139 0004H 1 NUMALLOCS. . . . . BYTE MEMBER(SAT) 1077
|
||
270 0004H 1 NUMLINES . . . . . BYTE PARAMETER AUTOMATIC 271 272
|
||
123 0005H 1 NVCNS. . . . . . . BYTE MEMBER(XINIT)
|
||
418 002EH 2 OFFS . . . . . . . WORD
|
||
126 0000H 2 OFFSET . . . . . . WORD MEMBER(PDPTR) 492 493 528 547 707 708 711 714 720
|
||
724 762 763 764 766 771 916 917 939 940 943 944 1063 1065
|
||
1067 1085 1087 1089 1094 1096 1098
|
||
129 0000H 2 OFFSET . . . . . . WORD MEMBER(QDPTR) 446 450 904 905 930
|
||
197 0000H 2 OFFSET . . . . . . WORD MEMBER(DATPTR) 206
|
||
147 0000H 2 OFFSET . . . . . . WORD MEMBER(UDAPTR) 510 516
|
||
1112 0000H 2 OFFSET . . . . . . WORD MEMBER(VERSSTRPTR)
|
||
144 0000H 2 OFFSET . . . . . . WORD MEMBER(VCCBPTR) 991
|
||
141 0000H 2 OFFSET . . . . . . WORD MEMBER(FLAGPTR) 524 531
|
||
138 0000H 2 OFFSET . . . . . . WORD MEMBER(SATPTR) 1074 1079
|
||
135 0000H 2 OFFSET . . . . . . WORD MEMBER(MSPTR) 721 736 739 772 788 791
|
||
132 0000H 2 OFFSET . . . . . . WORD MEMBER(MDPTR) 726 747 748 757 779 1072
|
||
123 0000H 2 OFFSET . . . . . . WORD MEMBER(XINITPTR)
|
||
103 0000H 2 OFFSET . . . . . . WORD MEMBER(SYSDATPTR)
|
||
104 008BH 1 OPMAX. . . . . . . BYTE MEMBER(SD)
|
||
127 001CH 1 ORG. . . . . . . . BYTE MEMBER(PD)
|
||
130 0003H 1 ORG. . . . . . . . BYTE MEMBER(QD)
|
||
1109 OSPRODUCT. . . . . LITERALLY 1115
|
||
847 0012H 8 OWNER. . . . . . . BYTE ARRAY(8) MEMBER(QLIST) 919 922 926 947
|
||
127 001EH 2 PARENT . . . . . . WORD MEMBER(PD)
|
||
20 0002H 285 PATCH. . . . . . . PROCEDURE STACK=0002H
|
||
145 000AH 1 PC . . . . . . . . BYTE MEMBER(VCCB)
|
||
101 PCM11. . . . . . . LITERALLY
|
||
101 PCMCTLC. . . . . . LITERALLY
|
||
101 PCMCTLO. . . . . . LITERALLY
|
||
101 PCMCTLS. . . . . . LITERALLY
|
||
101 PCMROUT. . . . . . LITERALLY
|
||
101 PCMRSX . . . . . . LITERALLY
|
||
127 0000H 48 PD . . . . . . . . STRUCTURE BASED(PDPOINTER) 495 497 499 501 502 503 504
|
||
506 509 515 543 547 709 714 721 729 731 766 772 776 777
|
||
778 783 919 941 945 991 994 998 1002 1003 1006 1067 1089 1098
|
||
590 000AH 2 PD . . . . . . . . WORD MEMBER(SORTARRAY) 616 632 724 753 807 816 825
|
||
589 000AH 2 PD . . . . . . . . WORD MEMBER(SORTRECD) 807 825
|
||
142 0000H 2 PD . . . . . . . . WORD MEMBER(FLAG) 528
|
||
682 0E24H 1 PDCNT. . . . . . . BYTE 701 702 705 708 712 716 719 760 763 765 768 770
|
||
148 001AH 1 PDCNT. . . . . . . BYTE MEMBER(UDA)
|
||
97 PDHDR. . . . . . . LITERALLY 127
|
||
468 00EAH 960 PDLIST . . . . . . STRUCTURE ARRAY(64) 497 499 501 502 503 506 511 518 519
|
||
523 536 543 557 559 560 561 562 563
|
||
125 000CH 4 PDPOINTER. . . . . POINTER 126 127 495 497 499 501 502 503 504 506 509
|
||
515 543 547 709 714 721 729 731 766 772 776 777 778 783
|
||
919 941 945 990 991 994 998 1002 1003 1006 1067 1089 1098
|
||
126 000CH 4 PDPTR. . . . . . . STRUCTURE AT 492 493 528 547 707 708 711 714 720 724
|
||
762 763 764 766 771 916 917 939 940 943 944 1063 1065 1067
|
||
1085 1087 1089 1094 1096 1098 1123
|
||
98 PDSTRUCTURE. . . . LITERALLY 127
|
||
100 PFACTIVE . . . . . LITERALLY
|
||
PL/M-86 COMPILER CCP/M-86 1.0 SYSTAT PROCESS - TRANSIENT PAGE 39
|
||
|
||
|
||
100 PFCHILDABORT . . . LITERALLY
|
||
100 PFCTLC . . . . . . LITERALLY
|
||
100 PFCTLD . . . . . . LITERALLY
|
||
100 PFKEEP . . . . . . LITERALLY
|
||
100 PFKERNAL . . . . . LITERALLY
|
||
100 PFNOCTLS . . . . . LITERALLY
|
||
100 PFPURE . . . . . . LITERALLY
|
||
100 PFRAW. . . . . . . LITERALLY
|
||
100 PFRESOURCE . . . . LITERALLY
|
||
100 PFSYS. . . . . . . LITERALLY
|
||
100 PFTABLE. . . . . . LITERALLY
|
||
100 PFTEMPKEEP . . . . LITERALLY
|
||
133 0006H 2 PLIST. . . . . . . WORD MEMBER(MD)
|
||
1106 1E7FH 659 PLMSTART . . . . . PROCEDURE PUBLIC STACK=0032H
|
||
104 006EH 2 PLR. . . . . . . . WORD MEMBER(SD) 441
|
||
96 PNAMSIZ. . . . . . LITERALLY 447 451 498 559 612 628 647 664 782 906 918
|
||
921 925 935 941 945 947
|
||
127 002CH 2 PRET . . . . . . . WORD MEMBER(PD)
|
||
859 14EBH 1 PREV . . . . . . . BYTE 861 867 874
|
||
173 0190H 16 PRINTBUFFER. . . . PROCEDURE STACK=000AH 278 345 477 482 558 568 595 596
|
||
597 598 599 600 614 620 627 630 638 639 654 663 676 677
|
||
686 691 851 852 854 855 887 892 934 942 946 951 952 954
|
||
955 960 1015 1016 1018 1030 1051 1052 1056 1057 1082 1117 1211 1212
|
||
1214
|
||
225 02A7H 87 PRINTHEXBYTE . . . PROCEDURE STACK=001AH 426 456 557 561 615 631 648 649
|
||
650 665 666 667
|
||
241 02FEH 87 PRINTHEXWORD . . . PROCEDURE STACK=0020H 430 560 616 617 618 632 633 634
|
||
651 652 668 669 936 937 938
|
||
193 01EDH 119 PRINTINFIELD . . . PROCEDURE STACK=0018H 324 327 329 331 333 335 337 339
|
||
342 355 358 360 362 364 367 370 372 375 377 379 388 390
|
||
391 393 394 401 402 403 404 405 406 407 408 409 410 411
|
||
414 423 425 429 432 433 436 438 440 442 443 447 451 457
|
||
460 463 466 559 612 628 647 664 935 941 945 947 993 997
|
||
1000 1005 1010 1023 1028 1032 1035 1038 1042 1046 1049 1054 1059 1062
|
||
1071 1084 1093
|
||
344 0540H 18 PRINTOPTERR. . . . PROCEDURE STACK=0012H 1137 1142 1150 1157 1217
|
||
554 0BA9H PRINTPDS . . . . . LABEL
|
||
933 18F7H PRINTQDS . . . . . LABEL
|
||
848 16A9H 45 PRINTQHDR. . . . . PROCEDURE STACK=0012H 897 973
|
||
602 0CEAH 996 PRINTSORTED. . . . PROCEDURE STACK=0028H 828
|
||
127 0005H 1 PRIOR. . . . . . . BYTE MEMBER(PD) 502
|
||
468 000BH 1 PRIOR. . . . . . . BYTE MEMBER(PDLIST) 502 561
|
||
385 066AH 107 PRNTHEADER . . . . PROCEDURE STACK=001CH 487 580
|
||
99 PSCIOWAIT. . . . . LITERALLY
|
||
99 PSDELAY. . . . . . LITERALLY
|
||
99 PSDQ . . . . . . . LITERALLY
|
||
99 PSFLAGWAIT . . . . LITERALLY
|
||
99 PSNQ . . . . . . . LITERALLY
|
||
99 PSPOLL . . . . . . LITERALLY
|
||
99 PSRUN. . . . . . . LITERALLY
|
||
99 PSSLEEP. . . . . . LITERALLY
|
||
99 PSSWAP . . . . . . LITERALLY
|
||
99 PSTERM . . . . . . LITERALLY
|
||
104 005CH 2 PUL. . . . . . . . WORD MEMBER(SD) 1085
|
||
603 0E20H 1 Q. . . . . . . . . BYTE 611 619 646 653
|
||
145 0020H 2 QBUFF. . . . . . . WORD MEMBER(VCCB)
|
||
130 0000H 28 QD . . . . . . . . STRUCTURE BASED(QDPOINTER) 447 451 907 909 910 911 912
|
||
PL/M-86 COMPILER CCP/M-86 1.0 SYSTAT PROCESS - TRANSIENT PAGE 40
|
||
|
||
|
||
913 914 916 928 930
|
||
883 14EFH 1 QDCNT. . . . . . . BYTE 900 905 907 909 910 911 912 913 919 922 926 928
|
||
929 933 956 957 959 971
|
||
128 0010H 4 QDPOINTER. . . . . POINTER 129 130 447 451 907 909 910 911 912 913 914
|
||
916 928 930
|
||
129 0010H 4 QDPTR. . . . . . . STRUCTURE AT 446 450 904 905 930 1123
|
||
107 QDSTRUCTURE. . . . LITERALLY 130
|
||
114 QFDEV. . . . . . . LITERALLY
|
||
110 QFHIDE . . . . . . LITERALLY
|
||
109 QFKEEP . . . . . . LITERALLY
|
||
108 QFMX . . . . . . . LITERALLY
|
||
113 QFRPL. . . . . . . LITERALLY
|
||
111 QFRSP. . . . . . . LITERALLY
|
||
112 QFTABLE. . . . . . LITERALLY
|
||
847 0E2BH 1728 QLIST. . . . . . . STRUCTURE ARRAY(64) 907 909 910 911 912 913 919 922 926
|
||
928 935 936 937 938 939 943 947 948
|
||
104 0074H 2 QLR. . . . . . . . WORD MEMBER(SD) 904
|
||
104 0060H 8 QMAU . . . . . . . WORD ARRAY(4) MEMBER(SD) 1072
|
||
106 QNAMSIZ. . . . . . LITERALLY 130
|
||
145 001EH 2 QPBBUFFPTR . . . . WORD MEMBER(VCCB)
|
||
145 0018H 1 QPBFLAGS . . . . . BYTE MEMBER(VCCB)
|
||
145 001CH 2 QPBNMSGS . . . . . WORD MEMBER(VCCB)
|
||
145 001AH 2 QPBQADDR . . . . . WORD MEMBER(VCCB)
|
||
145 0019H 1 QPBRESRVD. . . . . BYTE MEMBER(VCCB)
|
||
115 QPBSTRUCTURE . . . LITERALLY
|
||
986 00B8H 2 QSIZE. . . . . . . WORD 1075 1078 1081
|
||
145 0002H 2 QUEUE. . . . . . . WORD MEMBER(VCCB)
|
||
104 005EH 2 QUL. . . . . . . . WORD MEMBER(SD) 1063
|
||
145 0028H 2 R1 . . . . . . . . WORD MEMBER(VCCB)
|
||
145 002AH 2 R2 . . . . . . . . WORD MEMBER(VCCB)
|
||
165 016DH 19 RAWCO. . . . . . . PROCEDURE STACK=000AH 261 267
|
||
159 014FH 15 RAWCONIN . . . . . PROCEDURE BYTE STACK=0008H
|
||
84 00CFH 1 RBRACKET . . . . . BYTE INITIAL 1143 1151 1160
|
||
149 011FH 14 REBOOT . . . . . . PROCEDURE STACK=0008H 1118
|
||
85 00D0H 1 REPEAT . . . . . . BYTE 481 488 573 576 690 699 831 834 891 898 965 968
|
||
1125 1147
|
||
145 000DH 1 RESERVD. . . . . . BYTE MEMBER(VCCB)
|
||
127 0028H 4 RESERVD. . . . . . BYTE ARRAY(4) MEMBER(PD)
|
||
468 000DH 2 RESOURCE . . . . . WORD MEMBER(PDLIST) 506 511 518 519 523 536 543 563
|
||
123 0003H 2 RESRVD1. . . . . . BYTE ARRAY(2) MEMBER(XINIT)
|
||
104 0068H 2 RLR. . . . . . . . WORD MEMBER(SD) 435
|
||
104 0042H 2 RSPSEG . . . . . . WORD MEMBER(SD)
|
||
416 0004H 2 RSRCE. . . . . . . WORD PARAMETER AUTOMATIC 418 426 430 435 437 439 441 446
|
||
450 455 456 461
|
||
139 0000H 5 SAT. . . . . . . . STRUCTURE BASED(SATPOINTER) 1074 1076 1077 1078 1079
|
||
137 001CH 4 SATPOINTER . . . . POINTER 138 139 1076 1077 1078
|
||
138 001CH 4 SATPTR . . . . . . STRUCTURE AT 1073 1074 1079 1123
|
||
95 SATSTRUCTURE . . . LITERALLY 139
|
||
683 00B2H 2 SAVMAU . . . . . . WORD 735 737 738 741 787 789 790 793
|
||
683 0E28H 1 SCDCNT . . . . . . BYTE 761 774 776 777 778 780 781 783 796 828
|
||
602 0004H 1 SCNT . . . . . . . BYTE PARAMETER AUTOMATIC 603 636 641 643 655 659 661 664
|
||
665 666 667 668 669 671 673 675
|
||
127 002EH 2 SCRATCH. . . . . . WORD MEMBER(PD)
|
||
104 0000H 145 SD . . . . . . . . STRUCTURE BASED(SYSDATPOINTER) 316 435 437 439 441 492 524
|
||
532 707 747 762 904 991 1002 1029 1033 1036 1039 1043 1047 1050
|
||
1055 1060 1063 1072 1085 1094 1165
|
||
105 0000H 1 SDBYTE . . . . . . BYTE BASED(SYSDATPOINTER) ARRAY(1)
|
||
PL/M-86 COMPILER CCP/M-86 1.0 SYSTAT PROCESS - TRANSIENT PAGE 41
|
||
|
||
|
||
148 0008H 2 SEARCHA. . . . . . WORD MEMBER(UDA)
|
||
148 000AH 2 SEARCHABASE. . . . WORD MEMBER(UDA)
|
||
148 0007H 1 SEARCHL. . . . . . BYTE MEMBER(UDA)
|
||
126 0002H 2 SEGMENT. . . . . . WORD MEMBER(PDPTR) 1123
|
||
123 0002H 2 SEGMENT. . . . . . WORD MEMBER(XINITPTR)
|
||
197 0002H 2 SEGMENT. . . . . . WORD MEMBER(DATPTR)
|
||
147 0002H 2 SEGMENT. . . . . . WORD MEMBER(UDAPTR) 509 515
|
||
144 0002H 2 SEGMENT. . . . . . WORD MEMBER(VCCBPTR) 1123
|
||
141 0002H 2 SEGMENT. . . . . . WORD MEMBER(FLAGPTR) 1123
|
||
138 0002H 2 SEGMENT. . . . . . WORD MEMBER(SATPTR) 1073 1123
|
||
135 0002H 2 SEGMENT. . . . . . WORD MEMBER(MSPTR) 1123
|
||
132 0002H 2 SEGMENT. . . . . . WORD MEMBER(MDPTR) 1123
|
||
103 0002H 2 SEGMENT. . . . . . WORD MEMBER(SYSDATPTR) 1123
|
||
1112 0002H 2 SEGMENT. . . . . . WORD MEMBER(VERSSTRPTR)
|
||
129 0002H 2 SEGMENT. . . . . . WORD MEMBER(QDPTR) 1123
|
||
127 0025H 1 SF3. . . . . . . . BYTE MEMBER(PD)
|
||
127 0026H 1 SF4. . . . . . . . BYTE MEMBER(PD)
|
||
127 0027H 1 SF5. . . . . . . . BYTE MEMBER(PD)
|
||
591 096FH 1200 SHAREARRAY . . . . STRUCTURE ARRAY(80) 647 648 649 650 651 652 664 665 666
|
||
667 668 669 776 777 778 780 781 783
|
||
SHL. . . . . . . . BUILTIN 311 1162
|
||
SHR. . . . . . . . BUILTIN 217
|
||
SIZE . . . . . . . BUILTIN 991 1074 1079
|
||
270 039DH 32 SKIPLINES. . . . . PROCEDURE STACK=0010H 553 605 902
|
||
104 0070H 2 SLR. . . . . . . . WORD MEMBER(SD) 762
|
||
590 04BFH 1200 SORTARRAY. . . . . STRUCTURE ARRAY(80) 612 613 615 616 617 618 628 629 631
|
||
632 633 634 724 727 728 729 731 750 752 753 754 755 802
|
||
804 806 807 808 810 811 813 815 816 817 820 822 824 825
|
||
826
|
||
801 14D8H SORTMDS. . . . . . LABEL
|
||
589 04B0H 15 SORTRECD . . . . . STRUCTURE 802 804 806 807 808 810 820 822 824 825 826
|
||
104 0008H 56 SPACE. . . . . . . WORD ARRAY(28) MEMBER(SD)
|
||
87 00D1H 1 SPECIFIED. . . . . BYTE 381 474 583 684 841 884 977 1102 1126 1169 1208
|
||
104 004BH 1 SRCHDISK . . . . . BYTE MEMBER(SD) 1043
|
||
591 0008H 2 START. . . . . . . WORD MEMBER(SHAREARRAY) 651 668 780
|
||
590 0008H 2 START. . . . . . . WORD MEMBER(SORTARRAY) 617 633 727 752 802 810 811 820
|
||
589 0008H 2 START. . . . . . . WORD MEMBER(SORTRECD) 802 810 820
|
||
139 0000H 2 START. . . . . . . WORD MEMBER(SAT) 1076
|
||
136 0002H 2 START. . . . . . . WORD MEMBER(MS)
|
||
133 0002H 2 START. . . . . . . WORD MEMBER(MD) 727 752 780 1073
|
||
145 0005H 1 STARTCOL . . . . . BYTE MEMBER(VCCB)
|
||
127 0004H 1 STAT . . . . . . . BYTE MEMBER(PD) 503 504
|
||
468 000CH 1 STAT . . . . . . . BYTE MEMBER(PDLIST) 503 562 563
|
||
396 0004H 1 STAT . . . . . . . BYTE PARAMETER AUTOMATIC 397 398 400
|
||
145 000EH 2 STATE. . . . . . . WORD MEMBER(VCCB) 1011
|
||
416 0006H 1 STATS. . . . . . . BYTE PARAMETER AUTOMATIC 417 420 422
|
||
1 0002H STATUS . . . . . . PROCEDURE STACK=0000H
|
||
104 0000H 8 SUPMOD . . . . . . WORD ARRAY(4) MEMBER(SD)
|
||
102 0004H 4 SYSDATPOINTER. . . POINTER 103 104 105 316 435 437 439 441 492 524 532
|
||
707 747 762 904 991 1002 1029 1033 1036 1039 1043 1047 1050 1055
|
||
1060 1063 1072 1085 1094 1122 1165
|
||
103 0004H 4 SYSDATPTR. . . . . STRUCTURE AT 1123
|
||
104 008CH 4 SYSLTOT. . . . . . WORD ARRAY(2) MEMBER(SD)
|
||
2 TAB. . . . . . . . LITERALLY
|
||
683 0E29H 1 TEMP . . . . . . . BYTE 695 699 700
|
||
472 04ABH 1 TEMP . . . . . . . BYTE 486 488 490
|
||
883 14EEH 1 TEMP . . . . . . . BYTE 896 898 899
|
||
PL/M-86 COMPILER CCP/M-86 1.0 SYSTAT PROCESS - TRANSIENT PAGE 42
|
||
|
||
|
||
104 0050H 1 TEMPDISK . . . . . BYTE MEMBER(SD) 1039
|
||
180 01AFH 15 TERMINATE. . . . . PROCEDURE STACK=0008H 347 383 585 843 979 1104 1192
|
||
104 0072H 2 THRDRT . . . . . . WORD MEMBER(SD) 492 707
|
||
127 0002H 2 THREAD . . . . . . WORD MEMBER(PD) 547 714 766
|
||
303 002CH 2 TICDELAY . . . . . WORD 316 317
|
||
123 0000H 1 TICK . . . . . . . BYTE MEMBER(XINIT)
|
||
104 0051H 1 TICKSPERSEC. . . . BYTE MEMBER(SD) 316 1047 1165
|
||
123 0001H 1 TICKSSEC . . . . . BYTE MEMBER(XINIT)
|
||
104 007EH 4 TOD. . . . . . . . WORD ARRAY(2) MEMBER(SD)
|
||
104 0082H 1 TOD_SEC. . . . . . BYTE MEMBER(SD)
|
||
2 TRUE . . . . . . . LITERALLY 481 486 525 690 695 722 742 773 794 874 891
|
||
896 1124 1147 1169 1177
|
||
127 0010H 2 UDA. . . . . . . . WORD MEMBER(PD) 509 515
|
||
148 0000H 27 UDA. . . . . . . . STRUCTURE BASED(UDAPOINTER) 511 518 519
|
||
146 0028H 4 UDAPOINTER . . . . POINTER 147 148 511 518 519
|
||
147 0028H 4 UDAPTR . . . . . . STRUCTURE AT 509 510 515 516
|
||
117 UDASTRUCTURE . . . LITERALLY 148
|
||
133 0008H 2 UNUSED . . . . . . WORD MEMBER(MD)
|
||
127 0013H 1 USER . . . . . . . BYTE MEMBER(PD) 998
|
||
591 000BH 1 USER . . . . . . . BYTE MEMBER(SHAREARRAY) 650 667 778
|
||
145 0024H 2 USLEEP . . . . . . WORD MEMBER(VCCB)
|
||
241 0004H 2 VAL. . . . . . . . WORD PARAMETER AUTOMATIC 242 251
|
||
225 0004H 1 VAL. . . . . . . . BYTE PARAMETER AUTOMATIC 226 234
|
||
1107 14F5H 1 VALIDCHAR. . . . . BYTE 1175 1176 1177 1207
|
||
220 0004H 2 VALUE. . . . . . . WORD PARAMETER AUTOMATIC 221 222 223
|
||
215 0004H 1 VALUE. . . . . . . BYTE PARAMETER AUTOMATIC 216 217 218
|
||
145 000BH 1 VC . . . . . . . . BYTE MEMBER(VCCB)
|
||
145 0000H 44 VCCB . . . . . . . STRUCTURE BASED(VCCBPOINTER) 991 1011 1024
|
||
143 0024H 4 VCCBPOINTER. . . . POINTER 144 145 1011 1024
|
||
144 0024H 4 VCCBPTR. . . . . . STRUCTURE AT 991 1123
|
||
145 0016H 2 VCMXQ. . . . . . . WORD MEMBER(VCCB)
|
||
1107 00BCH 2 VER. . . . . . . . WORD 1114 1115 1121
|
||
104 007AH 2 VERNUM . . . . . . WORD MEMBER(SD)
|
||
984 0004H 1 VERS . . . . . . . BYTE PARAMETER AUTOMATIC 985 1001 1007 1020
|
||
104 0078H 2 VERSION. . . . . . WORD MEMBER(SD)
|
||
1107 14F4H 1 VERSION. . . . . . BYTE 1121 1188
|
||
1111 00BEH 4 VERSSTRPOINTER . . POINTER 1112
|
||
1112 00BEH 4 VERSSTRPTR . . . . STRUCTURE AT
|
||
145 0012H 2 VINQ . . . . . . . WORD MEMBER(VCCB)
|
||
145 0014H 2 VOUTQ. . . . . . . WORD MEMBER(VCCB)
|
||
145 0026H 2 VSLEEP . . . . . . WORD MEMBER(VCCB)
|
||
127 001AH 2 WAIT . . . . . . . WORD MEMBER(PD) 506
|
||
241 0008H 1 WIDTH. . . . . . . BYTE PARAMETER AUTOMATIC 242 244 248 253
|
||
225 0008H 1 WIDTH. . . . . . . BYTE PARAMETER AUTOMATIC 226 227 231 236
|
||
193 000CH 1 WIDTH. . . . . . . BYTE PARAMETER AUTOMATIC 195 198 201 209
|
||
683 0E25H 1 X. . . . . . . . . BYTE 730 731 749 750 782 783 801 802 804 806 807 808
|
||
809
|
||
123 0000H 12 XINIT. . . . . . . STRUCTURE BASED(XINITPOINTER)
|
||
123 XINITOFFSET. . . . LITERALLY
|
||
123 0008H 4 XINITPOINTER . . . POINTER 123
|
||
123 0008H 4 XINITPTR . . . . . STRUCTURE AT
|
||
683 0E26H 1 Y. . . . . . . . . BYTE 809 810 811 813 815 816 817 818 820 822 824 825
|
||
826
|
||
|
||
|
||
|
||
MODULE INFORMATION:
|
||
PL/M-86 COMPILER CCP/M-86 1.0 SYSTAT PROCESS - TRANSIENT PAGE 43
|
||
|
||
|
||
CODE AREA SIZE = 2112H 8466D
|
||
CONSTANT AREA SIZE = 09B5H 2485D
|
||
VARIABLE AREA SIZE = 14F8H 5368D
|
||
MAXIMUM STACK SIZE = 0032H 50D
|
||
1774 LINES READ
|
||
0 PROGRAM ERROR(S)
|
||
|
||
END OF PL/M-86 COMPILATION
|