mirror of
https://github.com/SEPPDROID/Digital-Research-Source-Code.git
synced 2025-10-27 02:14:19 +00:00
Upload
Digital Research
This commit is contained in:
@@ -0,0 +1,836 @@
|
||||
PL/M-86 COMPILER ERA: UTILITY TO ERASE FILE FOR MP/M & CCP/M PAGE 1
|
||||
|
||||
|
||||
ISIS-II PL/M-86 V2.0 COMPILATION OF MODULE ERASE
|
||||
OBJECT MODULE PLACED IN ERA.OBJ
|
||||
COMPILER INVOKED BY: :F0: ERA.PLM XREF OPTIMIZE(3) DEBUG
|
||||
|
||||
|
||||
|
||||
$compact
|
||||
$title ('ERA: Utility to Erase File for MP/M & CCP/M')
|
||||
1 erase:
|
||||
do;
|
||||
|
||||
/*
|
||||
Revised:
|
||||
19 Jan 80 by Thomas Rolander (MP/M 1.1)
|
||||
19 July 81 by Doug Huskey (MP/M II )
|
||||
8 Aug 81 by Danny Horovitz (MP/M-86 )
|
||||
31 Jan 83 by Bill Fitler (CCP/M-86 )
|
||||
*/
|
||||
/* ERA checks if files are open by other users */
|
||||
|
||||
$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:vermpm.lit)
|
||||
=
|
||||
= /* This utility requires MP/M or Concurrent function calls */
|
||||
=
|
||||
= /****** commented out for CCP/M-86 :
|
||||
PL/M-86 COMPILER ERA: UTILITY TO ERASE FILE FOR MP/M & CCP/M PAGE 2
|
||||
|
||||
|
||||
= declare Ver$OS literally '11h',
|
||||
= Ver$Needs$OS literally '''Requires MP/M-86''';
|
||||
= ******/
|
||||
=
|
||||
2 1 = declare Ver$OS literally '14h',
|
||||
= Ver$Needs$OS literally '''Requires Concurrent CP/M-86''';
|
||||
=
|
||||
=
|
||||
3 1 = declare Ver$Mask literally '0fdh'; /* mask out Is_network bit */
|
||||
=
|
||||
4 1 = declare Ver$BDOS literally '30h'; /* minimal BDOS version rqd */
|
||||
=
|
||||
|
||||
5 1 declare
|
||||
true literally '1',
|
||||
false literally '0',
|
||||
forever literally 'while true',
|
||||
lit literally 'literally',
|
||||
proc literally 'procedure',
|
||||
dcl literally 'declare',
|
||||
addr literally 'address',
|
||||
cr literally '13',
|
||||
lf literally '10',
|
||||
ctrlc literally '3',
|
||||
ctrlx literally '18h',
|
||||
bksp literally '8';
|
||||
|
||||
$include (:f2:proces.lit)
|
||||
=
|
||||
= /*
|
||||
= Proces Literals MP/M-8086 II
|
||||
= */
|
||||
=
|
||||
6 1 = declare pnamsiz literally '8';
|
||||
=
|
||||
7 1 = declare pd$hdr literally 'structure
|
||||
= (link word,thread word,stat byte,prior byte,flag word,
|
||||
= name (8) byte,uda word,dsk byte,user byte,ldsk byte,luser byte,
|
||||
= mem word';
|
||||
=
|
||||
8 1 = declare pd$structure literally 'pd$hdr,
|
||||
= dvract word,wait word,org byte,net byte,parent word,
|
||||
= cns byte,abort byte,conmode word,lst byte,sf3 byte,sf4 byte,sf5 byte,
|
||||
= reservd (4) byte,pret word,scratch word)';
|
||||
=
|
||||
9 1 = declare psrun lit '00',
|
||||
= pspoll lit '01',
|
||||
= psdelay lit '02',
|
||||
= psswap lit '03',
|
||||
= psterm lit '04',
|
||||
= pssleep lit '05',
|
||||
= psdq lit '06',
|
||||
= psnq lit '07',
|
||||
= psflagwait lit '08',
|
||||
= psciowait lit '09';
|
||||
=
|
||||
10 1 = declare pf$sys lit '00001h',
|
||||
PL/M-86 COMPILER ERA: UTILITY TO ERASE FILE FOR MP/M & CCP/M PAGE 3
|
||||
|
||||
|
||||
= pf$keep lit '00002h',
|
||||
= pf$kernal lit '00004h',
|
||||
= pf$pure lit '00008h',
|
||||
= pf$table lit '00010h',
|
||||
= pf$resource lit '00020h',
|
||||
= pf$raw lit '00040h',
|
||||
= pf$ctlc lit '00080h',
|
||||
= pf$active lit '00100h',
|
||||
= pf$tempkeep lit '00200h',
|
||||
= pf$ctld lit '00400h',
|
||||
= pf$childabort lit '00800h',
|
||||
= pf$noctls lit '01000h';
|
||||
=
|
||||
11 1 = declare pcm$11 lit '00001h',
|
||||
= pcm$ctls lit '00002h',
|
||||
= pcm$rout lit '00004h',
|
||||
= pcm$ctlc lit '00008h',
|
||||
= pcm$ctlo lit '00080h',
|
||||
= pcm$rsx lit '00300h';
|
||||
|
||||
$include (:f2:uda.lit)
|
||||
=
|
||||
= /* MP/M-86 II User Data Area format - August 8, 1981 */
|
||||
=
|
||||
12 1 = declare uda$structure lit 'structure (
|
||||
= dparam word,
|
||||
= dma$ofst word,
|
||||
= dma$seg word,
|
||||
= func byte,
|
||||
= searchl byte,
|
||||
= searcha word,
|
||||
= searchabase word,
|
||||
= dcnt word,
|
||||
= dblk word,
|
||||
= error$mode byte,
|
||||
= mult$cnt byte,
|
||||
= df$password (8) byte,
|
||||
= pd$cnt byte)';
|
||||
=
|
||||
|
||||
|
||||
13 1 dcl stack$siz lit '16';
|
||||
14 1 dcl int3 lit '0CCCCh';
|
||||
15 1 dcl plmstack (stack$siz) word public initial(
|
||||
int3,int3,int3,int3, int3,int3,int3,int3,
|
||||
int3,int3,int3,int3, int3,int3,int3,int3);
|
||||
16 1 dcl stack$size word public data(stack$siz + stack$siz);
|
||||
|
||||
/**************************************
|
||||
* *
|
||||
* B D O S INTERFACE *
|
||||
* *
|
||||
**************************************/
|
||||
|
||||
|
||||
17 1 mon1:
|
||||
procedure (func,info) external;
|
||||
PL/M-86 COMPILER ERA: UTILITY TO ERASE FILE FOR MP/M & CCP/M PAGE 4
|
||||
|
||||
|
||||
18 2 declare func byte;
|
||||
19 2 declare info address;
|
||||
20 2 end mon1;
|
||||
|
||||
21 1 mon2:
|
||||
procedure (func,info) byte external;
|
||||
22 2 declare func byte;
|
||||
23 2 declare info address;
|
||||
24 2 end mon2;
|
||||
|
||||
25 1 mon3:
|
||||
procedure (func,info) address external;
|
||||
26 2 declare func byte;
|
||||
27 2 declare info address;
|
||||
28 2 end mon3;
|
||||
|
||||
29 1 mon4:
|
||||
procedure (func,info) pointer external;
|
||||
30 2 declare func byte;
|
||||
31 2 declare info address;
|
||||
32 2 end mon4;
|
||||
|
||||
|
||||
|
||||
33 1 declare cmdrv byte external; /* command drive */
|
||||
34 1 declare fcb (1) byte external; /* 1st default fcb */
|
||||
35 1 declare fcb16 (1) byte external; /* 2nd default fcb */
|
||||
36 1 declare pass0 address external; /* 1st password ptr */
|
||||
37 1 declare len0 byte external; /* 1st passwd length */
|
||||
38 1 declare pass1 address external; /* 2nd password ptr */
|
||||
39 1 declare len1 byte external; /* 2nd passwd length */
|
||||
40 1 declare tbuff (1) byte external; /* default dma buffer */
|
||||
|
||||
|
||||
/**************************************
|
||||
* *
|
||||
* B D O S Externals *
|
||||
* *
|
||||
**************************************/
|
||||
|
||||
41 1 read$console:
|
||||
procedure byte;
|
||||
42 2 return mon2 (1,0);
|
||||
43 2 end read$console;
|
||||
|
||||
|
||||
44 1 printchar:
|
||||
procedure(char);
|
||||
45 2 declare char byte;
|
||||
46 2 call mon1(2,char);
|
||||
47 2 end printchar;
|
||||
|
||||
48 1 conin:
|
||||
procedure byte;
|
||||
49 2 return mon2(6,0fdh);
|
||||
50 2 end conin;
|
||||
|
||||
PL/M-86 COMPILER ERA: UTILITY TO ERASE FILE FOR MP/M & CCP/M PAGE 5
|
||||
|
||||
|
||||
51 1 check$con$stat:
|
||||
procedure byte;
|
||||
52 2 return mon2(11,0);
|
||||
53 2 end check$con$stat;
|
||||
|
||||
54 1 print$buf:
|
||||
procedure (buffer$address);
|
||||
55 2 declare buffer$address address;
|
||||
56 2 call mon1 (9,buffer$address);
|
||||
57 2 end print$buf;
|
||||
|
||||
58 1 version: procedure address;
|
||||
/* returns current cp/m version # */
|
||||
59 2 return mon3(12,0);
|
||||
60 2 end version;
|
||||
|
||||
61 1 setdma: procedure(dma);
|
||||
62 2 declare dma address;
|
||||
63 2 call mon1(26,dma);
|
||||
64 2 end setdma;
|
||||
|
||||
65 1 search:
|
||||
procedure (fcb$address) byte;
|
||||
66 2 declare fcb$address address;
|
||||
67 2 return mon2 (17,fcb$address);
|
||||
68 2 end search;
|
||||
|
||||
69 1 searchn:
|
||||
procedure byte;
|
||||
70 2 return mon2 (18,0);
|
||||
71 2 end searchn;
|
||||
|
||||
72 1 delete$file:
|
||||
procedure (fcb$address) address;
|
||||
73 2 declare fcb$address address;
|
||||
74 2 return mon3 (19,fcb$address);
|
||||
75 2 end delete$file;
|
||||
|
||||
76 1 get$user$code:
|
||||
procedure byte;
|
||||
77 2 return mon2 (32,0ffh);
|
||||
78 2 end get$user$code;
|
||||
|
||||
/* 0ff => return BDOS errors */
|
||||
79 1 return$errors:
|
||||
procedure;
|
||||
80 2 call mon1 (45,0ffh);
|
||||
81 2 end return$errors;
|
||||
|
||||
82 1 terminate:
|
||||
procedure;
|
||||
83 2 call mon1 (143,0);
|
||||
84 2 end terminate;
|
||||
|
||||
85 1 declare
|
||||
parse$fn structure (
|
||||
buff$adr address,
|
||||
PL/M-86 COMPILER ERA: UTILITY TO ERASE FILE FOR MP/M & CCP/M PAGE 6
|
||||
|
||||
|
||||
fcb$adr address);
|
||||
86 1 declare (saveax,savecx) word external; /* reg return vals, set in mon1 */
|
||||
|
||||
87 1 parse: procedure;
|
||||
88 2 declare (retcode,errcode) word;
|
||||
|
||||
89 2 call mon1(152,.parse$fn);
|
||||
90 2 retcode = saveax;
|
||||
91 2 errcode = savecx;
|
||||
92 2 if retcode = 0ffffh then /* parse returned an error*/
|
||||
93 2 do;
|
||||
94 3 call print$buf(.('Invalid Filespec$'));
|
||||
95 3 if errcode = 23 then call print$buf(.(' (drive)$'));
|
||||
97 3 else if errcode = 24 then call print$buf(.(' (filename)$'));
|
||||
99 3 else if errcode = 25 then call print$buf(.(' (filetype)$'));
|
||||
101 3 else if errcode = 38 then call print$buf(.(' (password)$'));
|
||||
call print$buf(.('.',13,10,'$')); call terminate;
|
||||
105 3 end;
|
||||
106 2 end parse;
|
||||
|
||||
107 1 declare
|
||||
pd$pointer pointer,
|
||||
pd based pd$pointer pd$structure;
|
||||
108 1 declare
|
||||
uda$pointer pointer,
|
||||
uda$ptr structure (
|
||||
offset word,
|
||||
segment word) at (@uda$pointer),
|
||||
uda based uda$pointer uda$structure;
|
||||
|
||||
109 1 get$uda: procedure;
|
||||
|
||||
110 2 pd$pointer = mon4(156,0);
|
||||
111 2 uda$ptr.segment = pd.uda;
|
||||
112 2 uda$ptr.offset = 0;
|
||||
113 2 end get$uda;
|
||||
|
||||
/**************************************
|
||||
* *
|
||||
* GLOBAL VARIABLES *
|
||||
* *
|
||||
**************************************/
|
||||
|
||||
114 1 declare xfcb byte initial(0);
|
||||
115 1 declare successful lit '0FFh';
|
||||
|
||||
/**************************************
|
||||
* *
|
||||
* S U B R O U T I N E S *
|
||||
* *
|
||||
**************************************/
|
||||
|
||||
|
||||
/* upper case character from console */
|
||||
116 1 crlf: proc;
|
||||
117 2 call printchar(cr);
|
||||
118 2 call printchar(lf);
|
||||
PL/M-86 COMPILER ERA: UTILITY TO ERASE FILE FOR MP/M & CCP/M PAGE 7
|
||||
|
||||
|
||||
119 2 end crlf;
|
||||
/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */
|
||||
|
||||
|
||||
/* fill string @ s for c bytes with f */
|
||||
120 1 fill: proc(s,f,c);
|
||||
121 2 dcl s addr,
|
||||
(f,c) byte,
|
||||
a based s byte;
|
||||
|
||||
122 2 do while (c:=c-1)<>255;
|
||||
123 3 a = f;
|
||||
124 3 s = s+1;
|
||||
125 3 end;
|
||||
126 2 end fill;
|
||||
/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */
|
||||
|
||||
|
||||
/* error message routine */
|
||||
127 1 error: proc(code);
|
||||
128 2 declare
|
||||
code byte;
|
||||
|
||||
129 2 call printchar(' ');
|
||||
130 2 if code=1 then
|
||||
131 2 call print$buf(.(cr,lf,'Disk I/O Error.$'));
|
||||
132 2 if code=2 then
|
||||
133 2 call print$buf(.(cr,lf,'Drive $'));
|
||||
134 2 if code = 3 or code = 2 then
|
||||
135 2 call print$buf(.('Read Only$'));
|
||||
136 2 if code = 4 then
|
||||
137 2 call print$buf(.(cr,lf,'Invalid Filespec (drive).$'));
|
||||
138 2 if code = 5 then
|
||||
139 2 call print$buf(.('Currently Opened$'));
|
||||
140 2 if code = 7 then
|
||||
141 2 call print$buf(.('Password Error$'));
|
||||
142 2 if code < 3 or code = 4 then
|
||||
143 2 call terminate;
|
||||
144 2 end error;
|
||||
/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */
|
||||
|
||||
|
||||
/* print file name */
|
||||
145 1 print$file: procedure(fcbp);
|
||||
146 2 declare k byte;
|
||||
147 2 declare typ lit '9'; /* file type */
|
||||
148 2 declare fnam lit '11'; /* file type */
|
||||
149 2 declare
|
||||
fcbp addr,
|
||||
fcbv based fcbp (32) byte;
|
||||
|
||||
150 2 do k = 1 to fnam;
|
||||
151 3 if k = typ then
|
||||
152 3 call printchar('.');
|
||||
153 3 call printchar(fcbv(k) and 7fh);
|
||||
154 3 end;
|
||||
155 2 end print$file;
|
||||
PL/M-86 COMPILER ERA: UTILITY TO ERASE FILE FOR MP/M & CCP/M PAGE 8
|
||||
|
||||
|
||||
/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */
|
||||
|
||||
|
||||
/* try to delete fcb at fcb$address
|
||||
return error code if unsuccessful */
|
||||
156 1 delete:
|
||||
procedure(fcb$address) byte;
|
||||
157 2 declare
|
||||
fcb$address address,
|
||||
fcbv based fcb$address (32) byte,
|
||||
error$code address,
|
||||
code byte;
|
||||
|
||||
158 2 if xfcb then
|
||||
159 2 fcbv(5) = fcbv(5) or 80h;
|
||||
160 2 call setdma(.fcb16); /* password */
|
||||
161 2 fcbv(0) = fcb(0); /* drive */
|
||||
162 2 error$code = delete$file(fcb$address);
|
||||
163 2 fcbv(5) = fcbv(5) and 7fh; /* reset xfcb bit */
|
||||
164 2 if low(error$code) = 0FFh then do;
|
||||
166 3 code = high(error$code);
|
||||
167 3 if (code=1) or (code=2) or (code=4) then
|
||||
168 3 call error(code);
|
||||
169 3 return code;
|
||||
170 3 end;
|
||||
171 2 return successful;
|
||||
172 2 end delete;
|
||||
/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */
|
||||
|
||||
|
||||
/* upper case character from console */
|
||||
173 1 ucase: proc byte;
|
||||
174 2 dcl c byte;
|
||||
|
||||
175 2 if (c:=conin) >= 'a' then
|
||||
176 2 if c < '{' then
|
||||
177 2 return(c-20h);
|
||||
178 2 return c;
|
||||
179 2 end ucase;
|
||||
/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */
|
||||
|
||||
|
||||
/* get password and place at fcb + 16 */
|
||||
180 1 getpasswd: proc;
|
||||
181 2 dcl (i,c) byte;
|
||||
|
||||
182 2 call crlf;
|
||||
183 2 call print$buf(.('Password ? ','$'));
|
||||
184 2 retry:
|
||||
call fill(.fcb16,' ',8);
|
||||
185 2 do i = 0 to 7;
|
||||
186 3 nxtchr:
|
||||
if (c:=ucase) >= ' ' then
|
||||
187 3 fcb16(i)=c;
|
||||
188 3 if c = cr then do;
|
||||
190 4 call crlf;
|
||||
191 4 goto exit;
|
||||
PL/M-86 COMPILER ERA: UTILITY TO ERASE FILE FOR MP/M & CCP/M PAGE 9
|
||||
|
||||
|
||||
192 4 end;
|
||||
193 3 if c = ctrlx then
|
||||
194 3 goto retry;
|
||||
195 3 if c = bksp then do;
|
||||
197 4 if i<1 then
|
||||
198 4 goto retry;
|
||||
199 4 else do;
|
||||
200 5 fcb16(i:=i-1)=' ';
|
||||
201 5 goto nxtchr;
|
||||
202 5 end;
|
||||
203 4 end;
|
||||
204 3 if c = 3 then
|
||||
205 3 call terminate;
|
||||
206 3 end;
|
||||
207 2 exit:
|
||||
c = check$con$stat;
|
||||
208 2 end getpasswd;
|
||||
/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */
|
||||
|
||||
|
||||
/* try deleting files one at a time */
|
||||
209 1 single$file:
|
||||
procedure;
|
||||
210 2 declare (code,dcnt,sav$searchl) byte;
|
||||
211 2 declare (fcba,sav$dcnt) addr;
|
||||
|
||||
212 2 file$err: procedure;
|
||||
213 3 call crlf;
|
||||
214 3 call print$buf(.('Not erased: $'));
|
||||
215 3 call print$file(fcba);
|
||||
216 3 call error(code);
|
||||
217 3 end file$err;
|
||||
|
||||
218 2 call setdma(.tbuff);
|
||||
219 2 dcnt = search(.fcb);
|
||||
220 2 do while dcnt <> 0ffh;
|
||||
221 3 fcba = shl(dcnt,5) + .tbuff;
|
||||
222 3 sav$dcnt = uda.dcnt;
|
||||
223 3 sav$searchl = uda.searchl;
|
||||
224 3 if (code:=delete(fcba)) = 7 then do;
|
||||
226 4 call file$err;
|
||||
227 4 call getpasswd;
|
||||
228 4 code = delete(fcba);
|
||||
229 4 end;
|
||||
230 3 if code <> successful then
|
||||
231 3 call file$err;
|
||||
232 3 call setdma(.tbuff);
|
||||
/* restore dcnt and search length of 11 */
|
||||
233 3 uda.dcnt = sav$dcnt;
|
||||
234 3 uda.searchl = sav$searchl;
|
||||
235 3 dcnt = searchn;
|
||||
236 3 end;
|
||||
237 2 end single$file;
|
||||
|
||||
/**************************************
|
||||
* *
|
||||
* M A I N P R O G R A M *
|
||||
PL/M-86 COMPILER ERA: UTILITY TO ERASE FILE FOR MP/M & CCP/M PAGE 10
|
||||
|
||||
|
||||
* *
|
||||
**************************************/
|
||||
|
||||
|
||||
238 1 declare (i,response,user,code) byte;
|
||||
239 1 declare ver address;
|
||||
240 1 declare last$dseg$byte byte
|
||||
initial (0);
|
||||
|
||||
241 1 plm$start: procedure public;
|
||||
|
||||
242 2 ver = version;
|
||||
243 2 if low(ver) < Ver$BDOS or (high(ver) and Ver$Mask) = 0 then do;
|
||||
245 3 call print$buf (.(cr,lf,Ver$Needs$OS,'$'));
|
||||
246 3 call mon1(0,0);
|
||||
247 3 end;
|
||||
|
||||
248 2 parse$fn.buff$adr = .tbuff(1);
|
||||
249 2 parse$fn.fcb$adr = .fcb;
|
||||
250 2 user = get$user$code;
|
||||
251 2 call getuda; /* get uda address */
|
||||
252 2 call return$errors;
|
||||
253 2 if fcb(17) <> ' ' then
|
||||
254 2 if fcb(17) = 'X' then
|
||||
255 2 xfcb = true;
|
||||
256 2 else do;
|
||||
257 3 call print$buf (.(
|
||||
'Invalid Command Option.$'));
|
||||
258 3 call terminate;
|
||||
259 3 end;
|
||||
|
||||
260 2 i = 0;
|
||||
261 2 do while fcb(i:=i+1) = '?';
|
||||
262 3 ;
|
||||
263 3 end;
|
||||
264 2 if i > 11 then
|
||||
265 2 if not xfcb then
|
||||
266 2 do;
|
||||
267 3 call print$buf (.(
|
||||
'Confirm delete all user files (Y/N)?','$'));
|
||||
268 3 response = read$console;
|
||||
269 3 if not ((response = 'y') or
|
||||
(response = 'Y'))
|
||||
then call terminate;
|
||||
271 3 end;
|
||||
272 2 call parse;
|
||||
273 2 if (code:=delete(.fcb)) <> successful then do;
|
||||
275 3 if code = 0 then
|
||||
276 3 call print$buf (.(cr,lf,
|
||||
'File Not Found.','$'));
|
||||
277 3 else if code < 3 or code = 4 then
|
||||
278 3 call error(code); /* fatal errors */
|
||||
else
|
||||
279 3 call single$file; /* single file error */
|
||||
280 3 end;
|
||||
281 2 call terminate;
|
||||
282 2 end plm$start;
|
||||
PL/M-86 COMPILER ERA: UTILITY TO ERASE FILE FOR MP/M & CCP/M PAGE 11
|
||||
|
||||
|
||||
|
||||
283 1 end erase;
|
||||
PL/M-86 COMPILER ERA: UTILITY TO ERASE FILE FOR MP/M & CCP/M PAGE 12
|
||||
|
||||
|
||||
CROSS-REFERENCE LISTING
|
||||
-----------------------
|
||||
|
||||
|
||||
DEFN ADDR SIZE NAME, ATTRIBUTES, AND REFERENCES
|
||||
----- ------ ----- --------------------------------
|
||||
|
||||
|
||||
121 0000H 1 A. . . . . . . . . BYTE BASED(S) 123
|
||||
107 0021H 1 ABORT. . . . . . . BYTE MEMBER(PD)
|
||||
5 ADDR . . . . . . . LITERALLY 121 149 211
|
||||
5 BKSP . . . . . . . LITERALLY 195
|
||||
85 0000H 2 BUFFADR. . . . . . WORD MEMBER(PARSEFN) 248
|
||||
54 0004H 2 BUFFERADDRESS. . . WORD PARAMETER AUTOMATIC 55 56
|
||||
181 003DH 1 C. . . . . . . . . BYTE 186 187 188 193 195 204 207
|
||||
120 0004H 1 C. . . . . . . . . BYTE PARAMETER AUTOMATIC 121 122
|
||||
174 003BH 1 C. . . . . . . . . BYTE 175 176 177 178
|
||||
44 0004H 1 CHAR . . . . . . . BYTE PARAMETER AUTOMATIC 45 46
|
||||
51 0033H 15 CHECKCONSTAT . . . PROCEDURE BYTE STACK=0008H 207
|
||||
33 0000H 1 CMDRV. . . . . . . BYTE EXTERNAL(4)
|
||||
107 0020H 1 CNS. . . . . . . . BYTE MEMBER(PD)
|
||||
157 003AH 1 CODE . . . . . . . BYTE 166 167 168 169
|
||||
238 0044H 1 CODE . . . . . . . BYTE 273 275 277 278
|
||||
127 0004H 1 CODE . . . . . . . BYTE PARAMETER AUTOMATIC 128 130 132 134 136 138 140 142
|
||||
|
||||
210 003EH 1 CODE . . . . . . . BYTE 216 224 228 230
|
||||
48 0024H 15 CONIN. . . . . . . PROCEDURE BYTE STACK=0008H 175
|
||||
107 0022H 2 CONMODE. . . . . . WORD MEMBER(PD)
|
||||
5 CR . . . . . . . . LITERALLY 117 131 133 137 188 245 276
|
||||
116 015AH 17 CRLF . . . . . . . PROCEDURE STACK=000EH 182 190 213
|
||||
5 CTRLC. . . . . . . LITERALLY
|
||||
5 CTRLX. . . . . . . LITERALLY 193
|
||||
108 000EH 2 DBLK . . . . . . . WORD MEMBER(UDA)
|
||||
5 DCL. . . . . . . . LITERALLY
|
||||
210 003FH 1 DCNT . . . . . . . BYTE 219 220 221 235
|
||||
108 000CH 2 DCNT . . . . . . . WORD MEMBER(UDA) 222 233
|
||||
156 0233H 91 DELETE . . . . . . PROCEDURE BYTE STACK=0016H 224 228 273
|
||||
72 0090H 16 DELETEFILE . . . . PROCEDURE WORD STACK=000AH 162
|
||||
108 0012H 8 DFPASSWORD . . . . BYTE ARRAY(8) MEMBER(UDA)
|
||||
61 0004H 2 DMA. . . . . . . . WORD PARAMETER AUTOMATIC 62 63
|
||||
108 0002H 2 DMAOFST. . . . . . WORD MEMBER(UDA)
|
||||
108 0004H 2 DMASEG . . . . . . WORD MEMBER(UDA)
|
||||
108 0000H 2 DPARAM . . . . . . WORD MEMBER(UDA)
|
||||
107 0012H 1 DSK. . . . . . . . BYTE MEMBER(PD)
|
||||
107 0018H 2 DVRACT . . . . . . WORD MEMBER(PD)
|
||||
1 0002H ERASE. . . . . . . PROCEDURE STACK=0000H
|
||||
88 0026H 2 ERRCODE. . . . . . WORD 91 95 97 99 101
|
||||
127 018BH 112 ERROR. . . . . . . PROCEDURE STACK=0010H 168 216 278
|
||||
157 0030H 2 ERRORCODE. . . . . WORD 162 164 166
|
||||
108 0010H 1 ERRORMODE. . . . . BYTE MEMBER(UDA)
|
||||
207 032FH EXIT . . . . . . . LABEL 191
|
||||
120 0006H 1 F. . . . . . . . . BYTE PARAMETER AUTOMATIC 121 123
|
||||
5 FALSE. . . . . . . LITERALLY
|
||||
34 0000H 1 FCB. . . . . . . . BYTE ARRAY(1) EXTERNAL(5) 161 219 249 253 254 261 273
|
||||
35 0000H 1 FCB16. . . . . . . BYTE ARRAY(1) EXTERNAL(6) 160 184 187 200
|
||||
211 0032H 2 FCBA . . . . . . . WORD 215 221 224 228
|
||||
156 0004H 2 FCBADDRESS . . . . WORD PARAMETER AUTOMATIC 157 159 161 162 163
|
||||
PL/M-86 COMPILER ERA: UTILITY TO ERASE FILE FOR MP/M & CCP/M PAGE 13
|
||||
|
||||
|
||||
65 0004H 2 FCBADDRESS . . . . WORD PARAMETER AUTOMATIC 66 67
|
||||
72 0004H 2 FCBADDRESS . . . . WORD PARAMETER AUTOMATIC 73 74
|
||||
85 0002H 2 FCBADR . . . . . . WORD MEMBER(PARSEFN) 249
|
||||
145 0004H 2 FCBP . . . . . . . WORD PARAMETER AUTOMATIC 149 153
|
||||
149 0000H 32 FCBV . . . . . . . BYTE BASED(FCBP) ARRAY(32) 153
|
||||
157 0000H 32 FCBV . . . . . . . BYTE BASED(FCBADDRESS) ARRAY(32) 159 161 163
|
||||
212 03BAH 29 FILEERR. . . . . . PROCEDURE STACK=0014H 226 231
|
||||
120 016BH 32 FILL . . . . . . . PROCEDURE STACK=0008H 184
|
||||
107 0006H 2 FLAG . . . . . . . WORD MEMBER(PD)
|
||||
148 FNAM . . . . . . . LITERALLY 150
|
||||
5 FOREVER. . . . . . LITERALLY
|
||||
29 0000H 1 FUNC . . . . . . . BYTE PARAMETER 30
|
||||
17 0000H 1 FUNC . . . . . . . BYTE PARAMETER 18
|
||||
108 0006H 1 FUNC . . . . . . . BYTE MEMBER(UDA)
|
||||
21 0000H 1 FUNC . . . . . . . BYTE PARAMETER 22
|
||||
25 0000H 1 FUNC . . . . . . . BYTE PARAMETER 26
|
||||
180 02AEH 137 GETPASSWD. . . . . PROCEDURE STACK=0012H 227
|
||||
109 0132H 40 GETUDA . . . . . . PROCEDURE STACK=0008H 251
|
||||
76 00A0H 15 GETUSERCODE. . . . PROCEDURE BYTE STACK=0008H 250
|
||||
HIGH . . . . . . . BUILTIN 166 243
|
||||
238 0041H 1 I. . . . . . . . . BYTE 260 261 264
|
||||
181 003CH 1 I. . . . . . . . . BYTE 185 187 197 200
|
||||
21 0000H 2 INFO . . . . . . . WORD PARAMETER 23
|
||||
17 0000H 2 INFO . . . . . . . WORD PARAMETER 19
|
||||
25 0000H 2 INFO . . . . . . . WORD PARAMETER 27
|
||||
29 0000H 2 INFO . . . . . . . WORD PARAMETER 31
|
||||
14 INT3 . . . . . . . LITERALLY 15
|
||||
146 0039H 1 K. . . . . . . . . BYTE 150 151 153
|
||||
240 0045H 1 LASTDSEGBYTE . . . BYTE INITIAL
|
||||
107 0014H 1 LDSK . . . . . . . BYTE MEMBER(PD)
|
||||
37 0000H 1 LEN0 . . . . . . . BYTE EXTERNAL(8)
|
||||
39 0000H 1 LEN1 . . . . . . . BYTE EXTERNAL(10)
|
||||
5 LF . . . . . . . . LITERALLY 118 131 133 137 245 276
|
||||
107 0000H 2 LINK . . . . . . . WORD MEMBER(PD)
|
||||
5 LIT. . . . . . . . LITERALLY 9 10 11 12 13 14 115 147 148
|
||||
LOW. . . . . . . . BUILTIN 164 243
|
||||
107 0024H 1 LST. . . . . . . . BYTE MEMBER(PD)
|
||||
107 0015H 1 LUSER. . . . . . . BYTE MEMBER(PD)
|
||||
107 0016H 2 MEM. . . . . . . . WORD MEMBER(PD)
|
||||
17 0000H MON1 . . . . . . . PROCEDURE EXTERNAL(0) STACK=0000H 46 56 63 80 83 89
|
||||
246
|
||||
21 0000H MON2 . . . . . . . PROCEDURE BYTE EXTERNAL(1) STACK=0000H 42 49 52 67 70
|
||||
77
|
||||
25 0000H MON3 . . . . . . . PROCEDURE WORD EXTERNAL(2) STACK=0000H 59 74
|
||||
29 0000H MON4 . . . . . . . PROCEDURE POINTER EXTERNAL(3) STACK=0000H 110
|
||||
108 0011H 1 MULTCNT. . . . . . BYTE MEMBER(UDA)
|
||||
107 0008H 8 NAME . . . . . . . BYTE ARRAY(8) MEMBER(PD)
|
||||
107 001DH 1 NET. . . . . . . . BYTE MEMBER(PD)
|
||||
186 02D4H NXTCHR . . . . . . LABEL 201
|
||||
108 0000H 2 OFFSET . . . . . . WORD MEMBER(UDAPTR) 112
|
||||
107 001CH 1 ORG. . . . . . . . BYTE MEMBER(PD)
|
||||
107 001EH 2 PARENT . . . . . . WORD MEMBER(PD)
|
||||
87 00CDH 101 PARSE. . . . . . . PROCEDURE STACK=000EH 272
|
||||
85 0020H 4 PARSEFN. . . . . . STRUCTURE 89 248 249
|
||||
36 0000H 2 PASS0. . . . . . . WORD EXTERNAL(7)
|
||||
38 0000H 2 PASS1. . . . . . . WORD EXTERNAL(9)
|
||||
11 PCM11. . . . . . . LITERALLY
|
||||
PL/M-86 COMPILER ERA: UTILITY TO ERASE FILE FOR MP/M & CCP/M PAGE 14
|
||||
|
||||
|
||||
11 PCMCTLC. . . . . . LITERALLY
|
||||
11 PCMCTLO. . . . . . LITERALLY
|
||||
11 PCMCTLS. . . . . . LITERALLY
|
||||
11 PCMROUT. . . . . . LITERALLY
|
||||
11 PCMRSX . . . . . . LITERALLY
|
||||
107 0000H 48 PD . . . . . . . . STRUCTURE BASED(PDPOINTER) 111
|
||||
108 001AH 1 PDCNT. . . . . . . BYTE MEMBER(UDA)
|
||||
7 PDHDR. . . . . . . LITERALLY 107
|
||||
107 0028H 4 PDPOINTER. . . . . POINTER 107 110 111
|
||||
8 PDSTRUCTURE. . . . LITERALLY 107
|
||||
10 PFACTIVE . . . . . LITERALLY
|
||||
10 PFCHILDABORT . . . LITERALLY
|
||||
10 PFCTLC . . . . . . LITERALLY
|
||||
10 PFCTLD . . . . . . LITERALLY
|
||||
10 PFKEEP . . . . . . LITERALLY
|
||||
10 PFKERNAL . . . . . LITERALLY
|
||||
10 PFNOCTLS . . . . . LITERALLY
|
||||
10 PFPURE . . . . . . LITERALLY
|
||||
10 PFRAW. . . . . . . LITERALLY
|
||||
10 PFRESOURCE . . . . LITERALLY
|
||||
10 PFSYS. . . . . . . LITERALLY
|
||||
10 PFTABLE. . . . . . LITERALLY
|
||||
10 PFTEMPKEEP . . . . LITERALLY
|
||||
15 0000H 32 PLMSTACK . . . . . WORD ARRAY(16) PUBLIC INITIAL
|
||||
241 03D7H 246 PLMSTART . . . . . PROCEDURE PUBLIC STACK=001EH
|
||||
6 PNAMSIZ. . . . . . LITERALLY
|
||||
107 002CH 2 PRET . . . . . . . WORD MEMBER(PD)
|
||||
54 0042H 16 PRINTBUF . . . . . PROCEDURE STACK=000AH 94 96 98 100 102 103 131 133
|
||||
135 137 139 141 183 214 245 257 267 276
|
||||
44 0011H 19 PRINTCHAR. . . . . PROCEDURE STACK=000AH 117 118 129 152 153
|
||||
145 01FBH 56 PRINTFILE. . . . . PROCEDURE STACK=0010H 215
|
||||
107 0005H 1 PRIOR. . . . . . . BYTE MEMBER(PD)
|
||||
5 PROC . . . . . . . LITERALLY 116 120 127 173 180
|
||||
9 PSCIOWAIT. . . . . LITERALLY
|
||||
9 PSDELAY. . . . . . LITERALLY
|
||||
9 PSDQ . . . . . . . LITERALLY
|
||||
9 PSFLAGWAIT . . . . LITERALLY
|
||||
9 PSNQ . . . . . . . LITERALLY
|
||||
9 PSPOLL . . . . . . LITERALLY
|
||||
9 PSRUN. . . . . . . LITERALLY
|
||||
9 PSSLEEP. . . . . . LITERALLY
|
||||
9 PSSWAP . . . . . . LITERALLY
|
||||
9 PSTERM . . . . . . LITERALLY
|
||||
41 0002H 15 READCONSOLE. . . . PROCEDURE BYTE STACK=0008H 268
|
||||
107 0028H 4 RESERVD. . . . . . BYTE ARRAY(4) MEMBER(PD)
|
||||
238 0042H 1 RESPONSE . . . . . BYTE 268 269
|
||||
88 0024H 2 RETCODE. . . . . . WORD 90 92
|
||||
184 02BBH RETRY. . . . . . . LABEL 194 198
|
||||
79 00AFH 15 RETURNERRORS . . . PROCEDURE STACK=0008H 252
|
||||
120 0008H 2 S. . . . . . . . . WORD PARAMETER AUTOMATIC 121 123 124
|
||||
211 0034H 2 SAVDCNT. . . . . . WORD 222 233
|
||||
86 0000H 2 SAVEAX . . . . . . WORD EXTERNAL(12) 90
|
||||
86 0000H 2 SAVECX . . . . . . WORD EXTERNAL(13) 91
|
||||
210 0040H 1 SAVSEARCHL . . . . BYTE 223 234
|
||||
107 002EH 2 SCRATCH. . . . . . WORD MEMBER(PD)
|
||||
65 0071H 16 SEARCH . . . . . . PROCEDURE BYTE STACK=000AH 219
|
||||
108 0008H 2 SEARCHA. . . . . . WORD MEMBER(UDA)
|
||||
PL/M-86 COMPILER ERA: UTILITY TO ERASE FILE FOR MP/M & CCP/M PAGE 15
|
||||
|
||||
|
||||
108 000AH 2 SEARCHABASE. . . . WORD MEMBER(UDA)
|
||||
108 0007H 1 SEARCHL. . . . . . BYTE MEMBER(UDA) 223 234
|
||||
69 0081H 15 SEARCHN. . . . . . PROCEDURE BYTE STACK=0008H 235
|
||||
108 0002H 2 SEGMENT. . . . . . WORD MEMBER(UDAPTR) 111
|
||||
61 0061H 16 SETDMA . . . . . . PROCEDURE STACK=000AH 160 218 232
|
||||
107 0025H 1 SF3. . . . . . . . BYTE MEMBER(PD)
|
||||
107 0026H 1 SF4. . . . . . . . BYTE MEMBER(PD)
|
||||
107 0027H 1 SF5. . . . . . . . BYTE MEMBER(PD)
|
||||
SHL. . . . . . . . BUILTIN 221
|
||||
209 0337H 131 SINGLEFILE . . . . PROCEDURE STACK=001AH 279
|
||||
13 STACKSIZ . . . . . LITERALLY 15 16
|
||||
16 0000H 2 STACKSIZE. . . . . WORD PUBLIC DATA
|
||||
107 0004H 1 STAT . . . . . . . BYTE MEMBER(PD)
|
||||
115 SUCCESSFUL . . . . LITERALLY 171 230 273
|
||||
40 0000H 1 TBUFF. . . . . . . BYTE ARRAY(1) EXTERNAL(11) 218 221 232 248
|
||||
82 00BEH 15 TERMINATE. . . . . PROCEDURE STACK=0008H 104 143 205 258 270 281
|
||||
107 0002H 2 THREAD . . . . . . WORD MEMBER(PD)
|
||||
5 TRUE . . . . . . . LITERALLY 255
|
||||
147 TYP. . . . . . . . LITERALLY 151
|
||||
173 028EH 32 UCASE. . . . . . . PROCEDURE BYTE STACK=000CH 186
|
||||
108 0000H 27 UDA. . . . . . . . STRUCTURE BASED(UDAPOINTER) 222 223 233 234
|
||||
107 0010H 2 UDA. . . . . . . . WORD MEMBER(PD) 111
|
||||
108 002CH 4 UDAPOINTER . . . . POINTER 108 222 223 233 234
|
||||
108 002CH 4 UDAPTR . . . . . . STRUCTURE AT 111 112
|
||||
12 UDASTRUCTURE . . . LITERALLY 108
|
||||
238 0043H 1 USER . . . . . . . BYTE 250
|
||||
107 0013H 1 USER . . . . . . . BYTE MEMBER(PD)
|
||||
239 0036H 2 VER. . . . . . . . WORD 242 243
|
||||
4 VERBDOS. . . . . . LITERALLY 243
|
||||
3 VERMASK. . . . . . LITERALLY 243
|
||||
2 VERNEEDSOS . . . . LITERALLY 245
|
||||
2 VEROS. . . . . . . LITERALLY
|
||||
58 0052H 15 VERSION. . . . . . PROCEDURE WORD STACK=0008H 242
|
||||
107 001AH 2 WAIT . . . . . . . WORD MEMBER(PD)
|
||||
114 0038H 1 XFCB . . . . . . . BYTE INITIAL 158 255 265
|
||||
|
||||
|
||||
|
||||
MODULE INFORMATION:
|
||||
|
||||
CODE AREA SIZE = 04CDH 1229D
|
||||
CONSTANT AREA SIZE = 012BH 299D
|
||||
VARIABLE AREA SIZE = 0046H 70D
|
||||
MAXIMUM STACK SIZE = 001EH 30D
|
||||
566 LINES READ
|
||||
0 PROGRAM ERROR(S)
|
||||
|
||||
END OF PL/M-86 COMPILATION
|
||||
Reference in New Issue
Block a user