Files
Sepp J Morris 31738079c4 Upload
Digital Research
2020-11-06 18:50:37 +01:00

952 lines
48 KiB
Plaintext
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

PL/M-86 COMPILER VCMODE.CMD - SET VIRTUAL CONSOLE BACKGROUND MODE PAGE 1
ISIS-II PL/M-86 V2.0 COMPILATION OF MODULE VCMODE
OBJECT MODULE PLACED IN VCMODE.OBJ
COMPILER INVOKED BY: :F0: VCMODE.PLM XREF OPTIMIZE(3) DEBUG
$title('VCMODE.CMD - Set Virtual Console Background Mode')
$compact
1 vcmode:
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 (:f2:comlit.lit)
=
2 1 = declare
= lit literally 'literally',
= dcl lit 'declare',
= true lit '0ffh',
= false lit '0',
= no lit 'not',
= boolean lit 'byte',
= forever lit 'while true',
= cr lit '13',
= lf lit '10',
= tab lit '9',
= ctrlc lit '3',
= ff lit '12',
= page$len$offset lit '1ch',
PL/M-86 COMPILER VCMODE.CMD - SET VIRTUAL CONSOLE BACKGROUND MODE PAGE 2
= nopage$mode$offset lit '2Ch',
= sectorlen lit '128';
$include (:f2:mfunc.lit)
=
= /* Concurrent CP/M function numbers */
=
3 1 = dcl m$prtbuf lit '9',
= m$select lit '14',
= m$openf lit '15',
= m$closef lit '16',
= m$deletef lit '19',
= m$readf lit '20',
= m$writef lit '21',
= m$makef lit '22',
= m$getlogin lit '24',
= m$curdsk lit '25',
= m$setdma lit '26',
= m$setatt lit '30',
= m$setusr lit '32',
= m$readrf lit '33',
= m$writerf lit '34',
= m$resetdrv lit '37',
= m$errmode lit '45',
= m$dirbios lit '50',
= m$makeq lit '134',
= m$openq lit '135',
= m$deleteq lit '136',
= m$readq lit '137',
= m$creadq lit '138',
= m$writeq lit '139',
= m$cwriteq lit '140',
= m$delay lit '141',
= m$dispatch lit '142',
= m$setprior lit '145',
= m$attach lit '146',
= m$detach lit '147',
= m$setcns lit '148',
= m$parse lit '152',
= m$getcns lit '153',
= m$sysdat lit '154',
= m$getpd lit '156',
= m$abort lit '157';
=
= /* Internal calls */
=
4 1 = dcl mi$sleep lit '0212H',
= mi$wakeup lit '0213H';
=
$include (:f2:fcb.lit)
=
5 1 = declare
= f$drvusr lit '0', /* drive/user byte */
= f$name lit '1', /* file name */
= f$namelen lit '8', /* file name length */
= f$type lit '9', /* file type field */
= f$typelen lit '3', /* type length */
= f$rw lit '9', /* high bit is R/W attribute */
PL/M-86 COMPILER VCMODE.CMD - SET VIRTUAL CONSOLE BACKGROUND MODE PAGE 3
= f$dirsys lit '10', /* high bit is dir/sys attribute */
= f$arc lit '11', /* high bit is archive attribute */
= f$ex lit '12', /* extent */
= f$s1 lit '13', /* module byte */
= f$rc lit '15', /* record count */
= f$diskmap lit '16', /* file disk map */
= diskmaplen lit '16', /* disk map length */
= f$drvusr2 lit '16', /* fcb2 */
= f$name2 lit '17',
= f$type2 lit '25',
= f$cr lit '32', /* current record */
= f$rrec lit '33', /* random record */
= f$rreco lit '35'; /* " " overflow */
=
6 1 dcl fcb (1) byte external;
7 1 dcl buff (1) byte external;
$include (:f2:sd.lit)
=
= /* System Data Page */
=
8 1 = dcl sysdat$pointer pointer;
9 1 = dcl sysdat$ptr structure(
= offset word,
= segment word) at (@sysdat$pointer);
10 1 = declare sd based sysdat$pointer structure (
= supmod (4) word,
= /* rtmmod (4) word,
= memmod (4) word,
= ciomod (4) word,
= bdosmod (4) word,
= xiosmod (4) word,
= netmod (4) word,
= reservd (4) word */
= space(28) word,
= mpmseg word,
= rspseg word,
= endseg word,
= module$map byte,
= ncns byte,
= nlst byte,
= nccb byte,
= nflags byte,
= srchdisk byte,
= mmp word,
= nslaves byte,
= dayfile byte,
= tempdisk byte,
= tickspersec byte,
= lul word,
= ccb word,
= flags word,
= mdul word,
= mfl word,
= pul word,
= qul word,
PL/M-86 COMPILER VCMODE.CMD - SET VIRTUAL CONSOLE BACKGROUND MODE PAGE 4
= qmau (4) word,
= rlr word,
= dlr word,
= drl word,
= plr word,
= slr word,
= thrdrt word,
= qlr word,
= mal word,
= version word,
= vernum word,
= mpmvernum word,
= tod (2) word,
= tod_sec byte,
= ncondev byte,
= nlstdev byte,
= nciodev byte,
= lcb (2) word,
= lckmax byte,
= opmax byte,
= sysltot (2) word,
= cmod byte );
=
=
11 1 = declare sd$byte based sysdat$pointer (1) byte;
=
12 1 dcl ccb$pointer pointer;
13 1 dcl ccb$ptr structure ( offset address, segment address) at
(@ccb$pointer);
$include (:f2:vccb.lit)
= /* Concurrent CP/M Character Control Block Structure */
=
= /* +---------+---------+---------+---------+
= 00 | attach | queue |
= +---------+---------+---------+---------+
= 04 | flag | startcol| column | nchar |
= +---------+---------+---------+---------+
= 08 | mimic | msource | pc | vc |
= +---------+---------+---------+---------+
= 0C | btmp | resrvd | state |
= +---------+---------+---------+---------+
= 10 | maxbufsiz | vinq |
= +---------+---------+---------+---------+
= 14 | voutq | vcmxq |
= +---------+---------+---------+---------+
= 18 | qpbflgs | qpbfill | qpbqaddr |
= +---------+---------+---------+---------+
= 1C | qpbnmsgs | qpbbuffptr |
= +---------+---------+---------+---------+
= 20 | qbuff | cosleep |
= +---------+---------+---------+---------+
= 24 | usleep | vsleep |
= +---------+---------+---------+---------+
= 28 | ... reserved ... |
= +---------+---------+---------+---------+
=
PL/M-86 COMPILER VCMODE.CMD - SET VIRTUAL CONSOLE BACKGROUND MODE PAGE 5
=
=
=
= */
=
14 1 = dcl ccb$structure lit 'structure (attach address, queue address,
= flag byte, startcol byte, column byte, nchar byte, mimic byte, msource byte,
= ccb$tail1';
15 1 = dcl ccb$tail1 lit
= 'pc byte, vc byte, btmp byte, reservd byte, state word, maxbufsiz word,
= ccb$tail2';
16 1 = dcl ccb$tail2 lit
= 'vinq address, voutq address, vcmxq address,
= qpbflags byte, qpbresrvd byte, qpbqaddr address,
= qpbnmsgs address, qpbbuffptr address, qbuff address, cosleep word,
= usleep word, vsleep word, r1 word, r2 word)';
=
17 1 = declare /* flag values */
= cf$listcp lit '001h', /* control P toggle */
= cf$compc lit '002h', /* suppress output */
= cf$switchs lit '004h', /* XIOS supports switch screening */
= cf$conout lit '008h', /* XIOS console output ownership */
= cf$vout lit '010h', /* process writing to VOUTQ */
= cf$bufp lit '020h'; /* toggle to control printer echo */
= /* on control P when background */
= /* and buffered */
= /* values of state byte */
= /* conout goes to XIOS */
=
= /* state word flags */
=
18 1 = dcl
= csm$buffered lit '0001h',
= csm$background lit '0002h',
= csm$purging lit '0004h',
= csm$noswitch lit '0008h',
= csm$suspend lit '0010h',
= csm$abort lit '0020h',
= csm$filefull lit '0040h',
= csm$ctrlS lit '0080h',
= csm$ctrlO lit '0100h',
= csm$ctrlP lit '0200h';
=
19 1 = dcl x$init$offset lit '0Ch',
= x$init$pointer pointer,
= x$init$ptr structure (offset word, segment word) at (@x$init$pointer),
= x$init based x$init$pointer structure
= (tick byte, ticks$sec byte, door byte, resrvd1 (2) byte,
= nvcns byte, nccb byte, nlst byte, ccb word, lcb word);
=
=
20 1 = dcl lcb$structure lit 'structure (attach address, queue address,
= flag byte, startcol byte, column byte, nchar byte,
= mimic byte, msource byte)';
=
21 1 dcl ccb based ccb$pointer ccb$structure;
PL/M-86 COMPILER VCMODE.CMD - SET VIRTUAL CONSOLE BACKGROUND MODE PAGE 6
22 1 dcl ccpmproduct lit '14h';
23 1 dcl bdosversion lit '31h';
24 1 mon1: procedure (func,info) external;
25 2 declare func byte;
26 2 declare info address;
27 2 end mon1;
28 1 mon2: procedure (func,info) byte external;
29 2 declare func byte;
30 2 declare info address;
31 2 end mon2;
32 1 mon3: procedure (func,info) address external;
33 2 dcl func byte, info address;
34 2 end mon3;
35 1 mon4: procedure (func,info) pointer external;
36 2 dcl func byte, info address;
37 2 end mon4;
/**************************************
* *
* B D O S Externals *
* *
**************************************/
38 1 print$char: procedure(char);
39 2 declare char byte;
40 2 call mon1(2,char);
41 2 end print$char;
42 1 print$console$buffer: procedure (buffer$address);
43 2 declare buffer$address address;
44 2 call mon1 (9,buffer$address);
45 2 end print$console$buffer;
46 1 version: procedure address;
47 2 return mon3(12,0);
48 2 end version;
/**************************************
* *
* X D O S Externals *
* *
**************************************/
49 1 terminate: procedure;
50 2 call mon1 (143,0);
51 2 end terminate;
52 1 get$console$number: procedure byte;
53 2 return mon2 (153,0);
54 2 end get$console$number;
PL/M-86 COMPILER VCMODE.CMD - SET VIRTUAL CONSOLE BACKGROUND MODE PAGE 7
55 1 printb: procedure public;
56 2 call print$char(' ');
57 2 end printb;
58 1 pdecimal: procedure(v,prec,zerosup) public;
/* print value v, field size = (log10 prec) + 1 */
/* with leading zero suppression if zerosup = true */
59 2 declare v address, /* value to print */
prec address, /* precision */
zerosup boolean, /* zero suppression flag */
d byte; /* current decimal digit */
60 2 do while prec <> 0;
61 3 d = v / prec; /* get next digit */
62 3 v = v mod prec; /* get remainder back to v */
63 3 prec = prec / 10; /* ready for next digit */
64 3 if prec <> 0 and zerosup and d = 0 then
65 3 call printb;
else
66 3 do;
67 4 zerosup = false;
68 4 call printchar('0'+d);
69 4 end;
70 3 end;
71 2 end pdecimal;
/*lbracket: procedure byte; /* find left bracket in command tail return */
/* dcl i byte; /* its index. if not found ret 0 */
/* i = 1;
do while i <= buff(0) and (buff(i) = ' ' or buff(i) = tab);
i = i + 1;
end;
if buff(i) = '[' then
return(i);
return(0);
end lbracket;
*/
72 1 help: procedure;
73 2 call mon1(m$prt$buf, .(cr, lf, tab, tab, tab ,'VCMODE EXAMPLES$'));
74 2 call mon1(m$prt$buf, .(cr, lf, lf, 'vcmode', tab, tab, tab, tab, tab,
'(show background mode)$'));
75 2 call mon1(m$prt$buf, .(cr, lf, 'vcmode dynamic', tab, tab, tab, tab,
'(sets background mode)$'));
76 2 call mon1(m$prt$buf, .(cr, lf, 'vcmode buffered', tab, tab, tab, tab,
tab, '"$'));
/* call mon1(m$prt$buf, .(cr, lf, 'vcmode suspend', tab, tab, tab, tab,
tab, '"$'));*/
77 2 call mon1(m$prt$buf, .(cr, lf, 'vcmode size = 5', tab, tab, tab, tab,
'(sets buffered mode max file size in)$'));
78 2 call mon1(m$prt$buf, .(cr, lf, tab, tab, tab, tab, tab,
'(kilobytes, legal range is 1 to 8191)$'));
79 2 call mon1(m$prt$buf, .(cr, lf, tab, tab, tab, tab, tab,
'(also sets background mode to buffered)$'));
/* call mon1(m$prt$buf, .(cr, lf, 'vcmode size = 100H', tab, tab, tab,
'(legal range in HEX is 1H to 1FFFFH)$'));*/
80 2 call mon1(m$prt$buf, .(cr, lf, 'vcmode help', tab, tab, tab, tab,
PL/M-86 COMPILER VCMODE.CMD - SET VIRTUAL CONSOLE BACKGROUND MODE PAGE 8
'(prints this message)$'));
81 2 call mon1(m$prt$buf, .(cr, lf, '$'));
82 2 call terminate;
83 2 end help;
84 1 showstate: procedure (verb);
85 2 dcl (verb,state) address;
86 2 call mon1(m$prt$buf, .(cr,lf,'Background Mode For Virtual Console$'));
87 2 call pdecimal (console, 100, true);
88 2 call printb;
89 2 call mon1(m$prt$buf, verb);
90 2 state = ccb.state and csm$buffered;
91 2 if state = 0 then
92 2 call mon1(m$prt$buf, .(' Dynamic$'));
else
93 2 do;
94 3 call mon1(m$prt$buf, .(' Buffered', cr, lf, 'Maximum file size = $'));
95 3 call pdecimal(ccb.maxbufsiz, 10000, true);
96 3 call mon1(m$prt$buf, .('K$'));
97 3 end;
98 2 call mon1(m$prt$buf, .(cr, lf, '$'));
99 2 end show$state;
$include (:f2:qd.lit)
=
= /* Queue Descriptor */
=
100 1 = dcl qnamsiz lit '8';
=
101 1 = dcl qd$structure lit 'structure(
= link word,
= net byte,
= org byte,
= flags word,
= name(qnamsiz) byte,
= msglen word,
= nmsgs word,
= dq word,
= nq word,
= msgcnt word,
= msgout word,
= buffer word)';
=
= /* queue flag values */
=
102 1 = dcl qf$mx lit '001h'; /* Mutual Exclusion */
103 1 = dcl qf$keep lit '002h'; /* NO DELETE */
104 1 = dcl qf$hide lit '004h'; /* Not User writable */
105 1 = dcl qf$rsp lit '008h'; /* rsp queue */
106 1 = dcl qf$table lit '010h'; /* from qd table */
107 1 = dcl qf$rpl lit '020h'; /* rpl queue */
108 1 = dcl qf$dev lit '040h'; /* device queue */
=
= /* Queue Parameter Block */
=
109 1 = dcl qpb$structure lit 'structure(
PL/M-86 COMPILER VCMODE.CMD - SET VIRTUAL CONSOLE BACKGROUND MODE PAGE 9
= flgs byte,
= net byte,
= qaddr word,
= nmsgs word,
= buffptr word,
= name (qnamsiz) byte )';
=
110 1 dcl qpb qpb$structure;
111 1 read$change$mxq: procedure;
112 2 qpb.qaddr = ccb.vcmxq;
113 2 call mon1 (m$readq, .qpb);
114 2 end read$change$mxq;
115 1 write$change$mxq: procedure;
116 2 qpb.qaddr = ccb.vcmxq;
117 2 call mon1 (m$writeq, .qpb);
118 2 end write$change$mxq;
119 1 atohb: procedure (char) byte public; /* convert ascii hex to nibble value */
120 2 declare char byte;
121 2 if char >= '0' and char <= '9' then
122 2 char = char - '0';
123 2 else if char >= 'A' and char <= 'F' then
124 2 char = char - 'A' + 10;
else
125 2 char = 255;
126 2 return(char);
127 2 end atohb;
128 1 atodb: procedure (char) byte public;/* convert ascii decimal to nibble value */
129 2 declare char byte;
130 2 if char >= '0' and char <= '9' then
131 2 char = char - '0';
else
132 2 char = 255;
133 2 return(char);
134 2 end atodb;
135 1 atoi: procedure(str) word; /* convert ascii to 16 bit unsigned value */
136 2 dcl str pointer;
137 2 dcl (accum, temp) word;
138 2 dcl (val, i, len) byte;
139 2 dcl string based str (1) byte;
140 2 i, accum = 0;
141 2 if (len := findb(str, 'H', 5)) <> 0ffffh then /* hex conversion */
142 2 do while (val := atohb(string(i))) <> 0ffh and i < len;
143 3 accum = shl(accum, 4) + val;
144 3 i = i + 1;
145 3 end;
else /* decimal is default base */
146 2 do while (val := atodb(string(i))) <> 0ffh and i < 5;
147 3 accum = 10 * accum + val;
148 3 if i = 4 then
149 3 temp = accum;
150 3 i = i + 1;
PL/M-86 COMPILER VCMODE.CMD - SET VIRTUAL CONSOLE BACKGROUND MODE PAGE 10
151 3 end;
152 2 if temp > accum then /* overflow */
153 2 accum = 0ffffh;
154 2 return(accum);
155 2 end atoi;
156 1 compare: procedure(ustr, ostr, minlen, maxlen) boolean;
157 2 dcl (ustr, ostr) pointer; /* user string, option string */
158 2 dcl user$string based ustr (1) byte;
159 2 dcl (minlen, maxlen) byte;
160 2 dcl cmplen word;
161 2 cmplen = cmpb(ustr, ostr, maxlen);
162 2 if cmplen = 0ffffh or (user$string(cmplen) = ' ' and cmplen >= minlen) then
163 2 return(true);
164 2 if user$string(cmplen) = ' ' then
165 2 do;
166 3 call mon1(m$prt$buf, .(cr,lf,'Invalid Command Option.', cr ,lf, '$'));
167 3 call help;
168 3 end;
169 2 return(false);
170 2 end compare;
171 1 dcl vers address initial (0);
172 1 dcl no$state lit '0ffh';
173 1 dcl console byte;
/*
Main Program
*/
174 1 plmstart: procedure public;
175 2 dcl option$ptr byte;
176 2 dcl num word;
177 2 vers = version;
178 2 if (high(vers) <> ccpmproduct) then
179 2 do;
180 3 call print$console$buffer(.(cr,lf,'Requires Concurrent CP/M-86', cr, lf,
'$'));
181 3 call mon1(0,0);
182 3 end;
183 2 sysdat$pointer, ccb$pointer = mon4(m$sysdat, 0); /* system data segment */
184 2 ccb$ptr.offset = sd.ccb + (console := mon2(m$getcns, 0)) * size(ccb);
185 2 call read$change$mxq; /* MXQ is written in kernel terminate code */
186 2 if (ccb.state and csm$background) <> 0 then
187 2 call mon1(m$prt$buf, .(cr,lf,'Virtual Console not in foreground', cr, lf,
'$'));
188 2 else if buff(0) = 0 then
189 2 call show$state(.('is$')); /* show current state */
else /* try to set state or show help message */
190 2 do;
191 3 fcb(f$type) = ' ';
192 3 if compare(@fcb(f$name), @('BUFFERED'), 1, 8) then
193 3 ccb.state = ccb.state or csm$buffered;
194 3 else if compare(@fcb(f$name), @('DYNAMIC'), 1, 7) then
195 3 ccb.state = ccb.state and not double(csm$buffered);
PL/M-86 COMPILER VCMODE.CMD - SET VIRTUAL CONSOLE BACKGROUND MODE PAGE 11
196 3 else if compare(@fcb(f$name), @('HELP'), 1, 4) then
197 3 call help;
198 3 else if compare(@fcb(f$name), @('SIZE'), 1, 4) then /* change to 2,4 */
199 3 do; /* when suspend is put back in */
200 4 num = atoi(@fcb(f$name2));
201 4 if num > 0 and num < 2000H then
202 4 ccb.maxbufsiz = num; /* limit size to 16 bit record count */
else
203 4 do;
204 5 call mon1(m$prt$buf, .(cr,lf,'File size out of range', cr ,lf, '$'));
205 5 call help;
206 5 end;
207 4 ccb.state = ccb.state or csm$buffered;
/* automatically sets to buffered */
208 4 end;
else
209 3 do;
210 4 call mon1(m$prt$buf, .(cr,lf,'Invalid Command Option.', cr ,lf, '$'));
211 4 call help;
212 4 end;
213 3 call show$state(.('set to$'));
214 3 end;
215 2 call terminate;
216 2 end plmstart;
217 1 end vcmode;
PL/M-86 COMPILER VCMODE.CMD - SET VIRTUAL CONSOLE BACKGROUND MODE PAGE 12
CROSS-REFERENCE LISTING
-----------------------
DEFN ADDR SIZE NAME, ATTRIBUTES, AND REFERENCES
----- ------ ----- --------------------------------
137 001EH 2 ACCUM. . . . . . . WORD 140 143 147 149 152 153 154
128 01F2H 32 ATODB. . . . . . . PROCEDURE BYTE PUBLIC STACK=0004H 146
119 01BEH 52 ATOHB. . . . . . . PROCEDURE BYTE PUBLIC STACK=0004H 142
135 0212H 215 ATOI . . . . . . . PROCEDURE WORD STACK=000CH 200
21 0000H 2 ATTACH . . . . . . WORD MEMBER(CCB)
23 BDOSVERSION. . . . LITERALLY
2 BOOLEAN. . . . . . LITERALLY 59 156
21 000CH 1 BTMP . . . . . . . BYTE MEMBER(CCB)
7 0000H 1 BUFF . . . . . . . BYTE ARRAY(1) EXTERNAL(1) 188
42 0004H 2 BUFFERADDRESS. . . WORD PARAMETER AUTOMATIC 43 44
110 0006H 2 BUFFPTR. . . . . . WORD MEMBER(QPB)
10 0054H 2 CCB. . . . . . . . WORD MEMBER(SD) 184
21 0000H 44 CCB. . . . . . . . STRUCTURE BASED(CCBPOINTER) 90 95 112 116 184 186 193
195 202 207
19 0008H 2 CCB. . . . . . . . WORD MEMBER(XINIT)
12 0004H 4 CCBPOINTER . . . . POINTER 13 21 90 95 112 116 183 186 193 195 202
207
13 0004H 4 CCBPTR . . . . . . STRUCTURE AT 184
14 CCBSTRUCTURE . . . LITERALLY 21
15 CCBTAIL1 . . . . . LITERALLY 21
16 CCBTAIL2 . . . . . LITERALLY 21
22 CCPMPRODUCT. . . . LITERALLY 178
17 CFBUFP . . . . . . LITERALLY
17 CFCOMPC. . . . . . LITERALLY
17 CFCONOUT . . . . . LITERALLY
17 CFLISTCP . . . . . LITERALLY
17 CFSWITCHS. . . . . LITERALLY
17 CFVOUT . . . . . . LITERALLY
119 0004H 1 CHAR . . . . . . . BYTE PARAMETER AUTOMATIC 120 121 122 123 124 125 126
38 0004H 1 CHAR . . . . . . . BYTE PARAMETER AUTOMATIC 39 40
128 0004H 1 CHAR . . . . . . . BYTE PARAMETER AUTOMATIC 129 130 131 132 133
10 0090H 1 CMOD . . . . . . . BYTE MEMBER(SD)
CMPB . . . . . . . BUILTIN 161
160 0022H 2 CMPLEN . . . . . . WORD 161 162 164
21 0006H 1 COLUMN . . . . . . BYTE MEMBER(CCB)
156 02E9H 111 COMPARE. . . . . . PROCEDURE BYTE STACK=001CH 192 194 196 198
173 002CH 1 CONSOLE. . . . . . BYTE 87 184
21 0022H 2 COSLEEP. . . . . . WORD MEMBER(CCB)
2 CR . . . . . . . . LITERALLY 73 74 75 76 77 78 79 80 81 86 94
98 166 180 187 204 210
18 CSMABORT . . . . . LITERALLY
18 CSMBACKGROUND. . . LITERALLY 186
18 CSMBUFFERED. . . . LITERALLY 90 193 195 207
18 CSMCTRLO . . . . . LITERALLY
18 CSMCTRLP . . . . . LITERALLY
18 CSMCTRLS . . . . . LITERALLY
18 CSMFILEFULL. . . . LITERALLY
18 CSMNOSWITCH. . . . LITERALLY
18 CSMPURGING . . . . LITERALLY
PL/M-86 COMPILER VCMODE.CMD - SET VIRTUAL CONSOLE BACKGROUND MODE PAGE 13
18 CSMSUSPEND . . . . LITERALLY
2 CTRLC. . . . . . . LITERALLY
59 0028H 1 D. . . . . . . . . BYTE 61 64 68
10 004FH 1 DAYFILE. . . . . . BYTE MEMBER(SD)
2 DCL. . . . . . . . LITERALLY
5 DISKMAPLEN . . . . LITERALLY
10 006AH 2 DLR. . . . . . . . WORD MEMBER(SD)
19 0002H 1 DOOR . . . . . . . BYTE MEMBER(XINIT)
DOUBLE . . . . . . BUILTIN 195
10 006CH 2 DRL. . . . . . . . WORD MEMBER(SD)
10 0044H 2 ENDSEG . . . . . . WORD MEMBER(SD)
2 FALSE. . . . . . . LITERALLY 67 169
5 FARC . . . . . . . LITERALLY
6 0000H 1 FCB. . . . . . . . BYTE ARRAY(1) EXTERNAL(0) 191 192 194 196 198 200
5 FCR. . . . . . . . LITERALLY
5 FDIRSYS. . . . . . LITERALLY
5 FDISKMAP . . . . . LITERALLY
5 FDRVUSR. . . . . . LITERALLY
5 FDRVUSR2 . . . . . LITERALLY
5 FEX. . . . . . . . LITERALLY
2 FF . . . . . . . . LITERALLY
FINDB. . . . . . . BUILTIN 141
21 0004H 1 FLAG . . . . . . . BYTE MEMBER(CCB)
10 0056H 2 FLAGS. . . . . . . WORD MEMBER(SD)
110 0000H 1 FLGS . . . . . . . BYTE MEMBER(QPB)
5 FNAME. . . . . . . LITERALLY 192 194 196 198
5 FNAME2 . . . . . . LITERALLY 200
5 FNAMELEN . . . . . LITERALLY
2 FOREVER. . . . . . LITERALLY
5 FRC. . . . . . . . LITERALLY
5 FRREC. . . . . . . LITERALLY
5 FRRECO . . . . . . LITERALLY
5 FRW. . . . . . . . LITERALLY
5 FS1. . . . . . . . LITERALLY
5 FTYPE. . . . . . . LITERALLY 191
5 FTYPE2 . . . . . . LITERALLY
5 FTYPELEN . . . . . LITERALLY
32 0000H 1 FUNC . . . . . . . BYTE PARAMETER 33
35 0000H 1 FUNC . . . . . . . BYTE PARAMETER 36
28 0000H 1 FUNC . . . . . . . BYTE PARAMETER 29
24 0000H 1 FUNC . . . . . . . BYTE PARAMETER 25
52 0043H 15 GETCONSOLENUMBER . PROCEDURE BYTE STACK=0008H
72 00B3H 98 HELP . . . . . . . PROCEDURE STACK=000CH 167 197 205 211
HIGH . . . . . . . BUILTIN 178
138 002AH 1 I. . . . . . . . . BYTE 140 142 144 146 148 150
35 0000H 2 INFO . . . . . . . WORD PARAMETER 36
32 0000H 2 INFO . . . . . . . WORD PARAMETER 33
28 0000H 2 INFO . . . . . . . WORD PARAMETER 30
24 0000H 2 INFO . . . . . . . WORD PARAMETER 26
19 000AH 2 LCB. . . . . . . . WORD MEMBER(XINIT)
10 0086H 4 LCB. . . . . . . . WORD ARRAY(2) MEMBER(SD)
20 LCBSTRUCTURE . . . LITERALLY
10 008AH 1 LCKMAX . . . . . . BYTE MEMBER(SD)
138 002BH 1 LEN. . . . . . . . BYTE 141 142
2 LF . . . . . . . . LITERALLY 73 74 75 76 77 78 79 80 81 86 94
98 166 180 187 204 210
2 LIT. . . . . . . . LITERALLY 2 3 4 5 14 15 16 17 18 19 20
PL/M-86 COMPILER VCMODE.CMD - SET VIRTUAL CONSOLE BACKGROUND MODE PAGE 14
22 23 100 101 102 103 104 105 106 107 108 109 172
10 0052H 2 LUL. . . . . . . . WORD MEMBER(SD)
3 MABORT . . . . . . LITERALLY
10 0076H 2 MAL. . . . . . . . WORD MEMBER(SD)
3 MATTACH. . . . . . LITERALLY
21 0010H 2 MAXBUFSIZ. . . . . WORD MEMBER(CCB) 95 202
156 0004H 1 MAXLEN . . . . . . BYTE PARAMETER AUTOMATIC 159 161
3 MCLOSEF. . . . . . LITERALLY
3 MCREADQ. . . . . . LITERALLY
3 MCURDSK. . . . . . LITERALLY
3 MCWRITEQ . . . . . LITERALLY
3 MDELAY . . . . . . LITERALLY
3 MDELETEF . . . . . LITERALLY
3 MDELETEQ . . . . . LITERALLY
3 MDETACH. . . . . . LITERALLY
3 MDIRBIOS . . . . . LITERALLY
3 MDISPATCH. . . . . LITERALLY
10 0058H 2 MDUL . . . . . . . WORD MEMBER(SD)
3 MERRMODE . . . . . LITERALLY
10 005AH 2 MFL. . . . . . . . WORD MEMBER(SD)
3 MGETCNS. . . . . . LITERALLY 184
3 MGETLOGIN. . . . . LITERALLY
3 MGETPD . . . . . . LITERALLY
21 0008H 1 MIMIC. . . . . . . BYTE MEMBER(CCB)
156 0006H 1 MINLEN . . . . . . BYTE PARAMETER AUTOMATIC 159 162
4 MISLEEP. . . . . . LITERALLY
4 MIWAKEUP . . . . . LITERALLY
3 MMAKEF . . . . . . LITERALLY
3 MMAKEQ . . . . . . LITERALLY
10 004CH 2 MMP. . . . . . . . WORD MEMBER(SD)
10 0046H 1 MODULEMAP. . . . . BYTE MEMBER(SD)
24 0000H MON1 . . . . . . . PROCEDURE EXTERNAL(2) STACK=0000H 40 44 50 73 74 75
76 77 78 79 80 81 86 89 92 94 96 98 113 117
166 181 187 204 210
28 0000H MON2 . . . . . . . PROCEDURE BYTE EXTERNAL(3) STACK=0000H 53 184
32 0000H MON3 . . . . . . . PROCEDURE WORD EXTERNAL(4) STACK=0000H 47
35 0000H MON4 . . . . . . . PROCEDURE POINTER EXTERNAL(5) STACK=0000H 183
3 MOPENF . . . . . . LITERALLY
3 MOPENQ . . . . . . LITERALLY
3 MPARSE . . . . . . LITERALLY
10 0040H 2 MPMSEG . . . . . . WORD MEMBER(SD)
10 007CH 2 MPMVERNUM. . . . . WORD MEMBER(SD)
3 MPRTBUF. . . . . . LITERALLY 73 74 75 76 77 78 79 80 81 86 89
92 94 96 98 166 187 204 210
3 MREADF . . . . . . LITERALLY
3 MREADQ . . . . . . LITERALLY 113
3 MREADRF. . . . . . LITERALLY
3 MRESETDRV. . . . . LITERALLY
3 MSELECT. . . . . . LITERALLY
3 MSETATT. . . . . . LITERALLY
3 MSETCNS. . . . . . LITERALLY
3 MSETDMA. . . . . . LITERALLY
3 MSETPRIOR. . . . . LITERALLY
3 MSETUSR. . . . . . LITERALLY
21 0009H 1 MSOURCE. . . . . . BYTE MEMBER(CCB)
3 MSYSDAT. . . . . . LITERALLY 183
3 MWRITEF. . . . . . LITERALLY
PL/M-86 COMPILER VCMODE.CMD - SET VIRTUAL CONSOLE BACKGROUND MODE PAGE 15
3 MWRITEQ. . . . . . LITERALLY 117
3 MWRITERF . . . . . LITERALLY
110 0008H 8 NAME . . . . . . . BYTE ARRAY(8) MEMBER(QPB)
10 0049H 1 NCCB . . . . . . . BYTE MEMBER(SD)
19 0006H 1 NCCB . . . . . . . BYTE MEMBER(XINIT)
21 0007H 1 NCHAR. . . . . . . BYTE MEMBER(CCB)
10 0085H 1 NCIODEV. . . . . . BYTE MEMBER(SD)
10 0047H 1 NCNS . . . . . . . BYTE MEMBER(SD)
10 0083H 1 NCONDEV. . . . . . BYTE MEMBER(SD)
110 0001H 1 NET. . . . . . . . BYTE MEMBER(QPB)
10 004AH 1 NFLAGS . . . . . . BYTE MEMBER(SD)
19 0007H 1 NLST . . . . . . . BYTE MEMBER(XINIT)
10 0048H 1 NLST . . . . . . . BYTE MEMBER(SD)
10 0084H 1 NLSTDEV. . . . . . BYTE MEMBER(SD)
110 0004H 2 NMSGS. . . . . . . WORD MEMBER(QPB)
2 NO . . . . . . . . LITERALLY
2 NOPAGEMODEOFFSET . LITERALLY
172 NOSTATE. . . . . . LITERALLY
10 004EH 1 NSLAVES. . . . . . BYTE MEMBER(SD)
176 0026H 2 NUM. . . . . . . . WORD 200 201 202
19 0005H 1 NVCNS. . . . . . . BYTE MEMBER(XINIT)
9 0000H 2 OFFSET . . . . . . WORD MEMBER(SYSDATPTR)
19 0000H 2 OFFSET . . . . . . WORD MEMBER(XINITPTR)
13 0000H 2 OFFSET . . . . . . WORD MEMBER(CCBPTR) 184
10 008BH 1 OPMAX. . . . . . . BYTE MEMBER(SD)
175 002DH 1 OPTIONPTR. . . . . BYTE
156 0008H 4 OSTR . . . . . . . POINTER PARAMETER AUTOMATIC 157 161
2 PAGELENOFFSET. . . LITERALLY
21 000AH 1 PC . . . . . . . . BYTE MEMBER(CCB)
58 005DH 86 PDECIMAL . . . . . PROCEDURE PUBLIC STACK=0018H 87 95
174 0358H 336 PLMSTART . . . . . PROCEDURE PUBLIC STACK=0022H
10 006EH 2 PLR. . . . . . . . WORD MEMBER(SD)
58 0006H 2 PREC . . . . . . . WORD PARAMETER AUTOMATIC 59 60 61 62 63 64
55 0052H 11 PRINTB . . . . . . PROCEDURE PUBLIC STACK=000EH 65 88
38 0002H 19 PRINTCHAR. . . . . PROCEDURE STACK=000AH 56 68
42 0015H 16 PRINTCONSOLEBUFFER PROCEDURE STACK=000AH 180
10 005CH 2 PUL. . . . . . . . WORD MEMBER(SD)
110 0002H 2 QADDR. . . . . . . WORD MEMBER(QPB) 112 116
21 0020H 2 QBUFF. . . . . . . WORD MEMBER(CCB)
101 QDSTRUCTURE. . . . LITERALLY
108 QFDEV. . . . . . . LITERALLY
104 QFHIDE . . . . . . LITERALLY
103 QFKEEP . . . . . . LITERALLY
102 QFMX . . . . . . . LITERALLY
107 QFRPL. . . . . . . LITERALLY
105 QFRSP. . . . . . . LITERALLY
106 QFTABLE. . . . . . LITERALLY
10 0074H 2 QLR. . . . . . . . WORD MEMBER(SD)
10 0060H 8 QMAU . . . . . . . WORD ARRAY(4) MEMBER(SD)
100 QNAMSIZ. . . . . . LITERALLY 110
110 000EH 16 QPB. . . . . . . . STRUCTURE 112 113 116 117
21 001EH 2 QPBBUFFPTR . . . . WORD MEMBER(CCB)
21 0018H 1 QPBFLAGS . . . . . BYTE MEMBER(CCB)
21 001CH 2 QPBNMSGS . . . . . WORD MEMBER(CCB)
21 001AH 2 QPBQADDR . . . . . WORD MEMBER(CCB)
21 0019H 1 QPBRESRVD. . . . . BYTE MEMBER(CCB)
109 QPBSTRUCTURE . . . LITERALLY 110
PL/M-86 COMPILER VCMODE.CMD - SET VIRTUAL CONSOLE BACKGROUND MODE PAGE 16
21 0002H 2 QUEUE. . . . . . . WORD MEMBER(CCB)
10 005EH 2 QUL. . . . . . . . WORD MEMBER(SD)
21 0028H 2 R1 . . . . . . . . WORD MEMBER(CCB)
21 002AH 2 R2 . . . . . . . . WORD MEMBER(CCB)
111 018AH 26 READCHANGEMXQ. . . PROCEDURE STACK=0008H 185
21 000DH 1 RESERVD. . . . . . BYTE MEMBER(CCB)
19 0003H 2 RESRVD1. . . . . . BYTE ARRAY(2) MEMBER(XINIT)
10 0068H 2 RLR. . . . . . . . WORD MEMBER(SD)
10 0042H 2 RSPSEG . . . . . . WORD MEMBER(SD)
10 0000H 145 SD . . . . . . . . STRUCTURE BASED(SYSDATPOINTER) 184
11 0000H 1 SDBYTE . . . . . . BYTE BASED(SYSDATPOINTER) ARRAY(1)
2 SECTORLEN. . . . . LITERALLY
19 0002H 2 SEGMENT. . . . . . WORD MEMBER(XINITPTR)
13 0002H 2 SEGMENT. . . . . . WORD MEMBER(CCBPTR)
9 0002H 2 SEGMENT. . . . . . WORD MEMBER(SYSDATPTR)
SHL. . . . . . . . BUILTIN 143
84 0115H 117 SHOWSTATE. . . . . PROCEDURE STACK=001EH 189 213
SIZE . . . . . . . BUILTIN 184
10 0070H 2 SLR. . . . . . . . WORD MEMBER(SD)
10 0008H 56 SPACE. . . . . . . WORD ARRAY(28) MEMBER(SD)
10 004BH 1 SRCHDISK . . . . . BYTE MEMBER(SD)
21 0005H 1 STARTCOL . . . . . BYTE MEMBER(CCB)
21 000EH 2 STATE. . . . . . . WORD MEMBER(CCB) 90 186 193 195 207
85 000CH 2 STATE. . . . . . . WORD 90 91
135 0004H 4 STR. . . . . . . . POINTER PARAMETER AUTOMATIC 136 139 141 142 146
139 0000H 1 STRING . . . . . . BYTE BASED(STR) ARRAY(1) 142 146
10 0000H 8 SUPMOD . . . . . . WORD ARRAY(4) MEMBER(SD)
8 0000H 4 SYSDATPOINTER. . . POINTER 9 10 11 183 184
9 0000H 4 SYSDATPTR. . . . . STRUCTURE AT
10 008CH 4 SYSLTOT. . . . . . WORD ARRAY(2) MEMBER(SD)
2 TAB. . . . . . . . LITERALLY 73 74 75 76 77 78 79 80
137 0020H 2 TEMP . . . . . . . WORD 149 152
10 0050H 1 TEMPDISK . . . . . BYTE MEMBER(SD)
49 0034H 15 TERMINATE. . . . . PROCEDURE STACK=0008H 82 215
10 0072H 2 THRDRT . . . . . . WORD MEMBER(SD)
19 0000H 1 TICK . . . . . . . BYTE MEMBER(XINIT)
10 0051H 1 TICKSPERSEC. . . . BYTE MEMBER(SD)
19 0001H 1 TICKSSEC . . . . . BYTE MEMBER(XINIT)
10 007EH 4 TOD. . . . . . . . WORD ARRAY(2) MEMBER(SD)
10 0082H 1 TOD_SEC. . . . . . BYTE MEMBER(SD)
2 TRUE . . . . . . . LITERALLY 87 95 163
158 0000H 1 USERSTRING . . . . BYTE BASED(USTR) ARRAY(1) 162 164
21 0024H 2 USLEEP . . . . . . WORD MEMBER(CCB)
156 000CH 4 USTR . . . . . . . POINTER PARAMETER AUTOMATIC 157 158 161 162 164
58 0008H 2 V. . . . . . . . . WORD PARAMETER AUTOMATIC 59 61 62
138 0029H 1 VAL. . . . . . . . BYTE 142 143 146 147
21 000BH 1 VC . . . . . . . . BYTE MEMBER(CCB)
1 0002H VCMODE . . . . . . PROCEDURE STACK=0000H
21 0016H 2 VCMXQ. . . . . . . WORD MEMBER(CCB) 112 116
84 0004H 2 VERB . . . . . . . WORD PARAMETER AUTOMATIC 85 89
10 007AH 2 VERNUM . . . . . . WORD MEMBER(SD)
171 0024H 2 VERS . . . . . . . WORD INITIAL 177 178
10 0078H 2 VERSION. . . . . . WORD MEMBER(SD)
46 0025H 15 VERSION. . . . . . PROCEDURE WORD STACK=0008H 177
21 0012H 2 VINQ . . . . . . . WORD MEMBER(CCB)
21 0014H 2 VOUTQ. . . . . . . WORD MEMBER(CCB)
21 0026H 2 VSLEEP . . . . . . WORD MEMBER(CCB)
PL/M-86 COMPILER VCMODE.CMD - SET VIRTUAL CONSOLE BACKGROUND MODE PAGE 17
115 01A4H 26 WRITECHANGEMXQ . . PROCEDURE STACK=0008H
19 0000H 12 XINIT. . . . . . . STRUCTURE BASED(XINITPOINTER)
19 XINITOFFSET. . . . LITERALLY
19 0008H 4 XINITPOINTER . . . POINTER 19
19 0008H 4 XINITPTR . . . . . STRUCTURE AT
58 0004H 1 ZEROSUP. . . . . . BYTE PARAMETER AUTOMATIC 59 64 67
MODULE INFORMATION:
CODE AREA SIZE = 04A8H 1192D
CONSTANT AREA SIZE = 024CH 588D
VARIABLE AREA SIZE = 002EH 46D
MAXIMUM STACK SIZE = 0022H 34D
590 LINES READ
0 PROGRAM ERROR(S)
END OF PL/M-86 COMPILATION