mirror of
https://github.com/SEPPDROID/Digital-Research-Source-Code.git
synced 2025-10-26 09:54:20 +00:00
917 lines
41 KiB
Plaintext
917 lines
41 KiB
Plaintext
PL/M-86 COMPILER REN: RENAME FILE PAGE 1
|
||
|
||
|
||
ISIS-II PL/M-86 V2.0 COMPILATION OF MODULE REN
|
||
OBJECT MODULE PLACED IN REN.OBJ
|
||
COMPILER INVOKED BY: :F0: REN.PLM XREF OPTIMIZE(3) DEBUG
|
||
|
||
|
||
|
||
$compact
|
||
$title ('REN: Rename File')
|
||
1 ren:
|
||
do;
|
||
|
||
/*
|
||
Revised:
|
||
19 Jan 80 by Thomas Rolander
|
||
31 July 81 by Doug Huskey
|
||
6 Aug 81 by Danny Horovitz
|
||
23 Jun 82 by Bill Fitler
|
||
*/
|
||
|
||
$include (:f1:copyrt.lit)
|
||
=
|
||
= /*
|
||
= Copyright (C) 1983
|
||
= Digital Research
|
||
= P.O. Box 579
|
||
= Pacific Grove, CA 93950
|
||
= */
|
||
=
|
||
|
||
$include (:f1: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 (:f1:vermpm.lit)
|
||
=
|
||
= /* This utility requires MP/M or Concurrent function calls */
|
||
=
|
||
= /****** commented out for CCP/M-86 :
|
||
= declare Ver$OS literally '11h',
|
||
PL/M-86 COMPILER REN: RENAME FILE PAGE 2
|
||
|
||
|
||
= 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 '0FFh',
|
||
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 (:f1: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',
|
||
= pf$keep lit '00002h',
|
||
PL/M-86 COMPILER REN: RENAME FILE PAGE 3
|
||
|
||
|
||
= 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 (:f1: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)';
|
||
=
|
||
|
||
|
||
/**************************************
|
||
* *
|
||
* B D O S INTERFACE *
|
||
* *
|
||
**************************************/
|
||
|
||
|
||
13 1 mon1:
|
||
procedure (func,info) external;
|
||
14 2 declare func byte;
|
||
15 2 declare info address;
|
||
16 2 end mon1;
|
||
|
||
17 1 mon2:
|
||
procedure (func,info) byte external;
|
||
18 2 declare func byte;
|
||
19 2 declare info address;
|
||
PL/M-86 COMPILER REN: RENAME FILE PAGE 4
|
||
|
||
|
||
20 2 end mon2;
|
||
|
||
21 1 mon3:
|
||
procedure (func,info) address external;
|
||
22 2 declare func byte;
|
||
23 2 declare info address;
|
||
24 2 end mon3;
|
||
|
||
25 1 mon4:
|
||
procedure (func,info) pointer external;
|
||
26 2 declare func byte;
|
||
27 2 declare info address;
|
||
28 2 end mon4;
|
||
|
||
|
||
|
||
29 1 declare cmdrv byte external; /* command drive */
|
||
30 1 declare fcb (1) byte external; /* 1st default fcb */
|
||
31 1 declare fcb16 (1) byte external; /* 2nd default fcb */
|
||
32 1 declare pass0 address external; /* 1st password ptr */
|
||
33 1 declare len0 byte external; /* 1st passwd length */
|
||
34 1 declare pass1 address external; /* 2nd password ptr */
|
||
35 1 declare len1 byte external; /* 2nd passwd length */
|
||
36 1 declare tbuff (1) byte external; /* default dma buffer */
|
||
|
||
|
||
/**************************************
|
||
* *
|
||
* B D O S Externals *
|
||
* *
|
||
**************************************/
|
||
|
||
37 1 read$console:
|
||
procedure byte;
|
||
38 2 return mon2 (1,0);
|
||
39 2 end read$console;
|
||
|
||
40 1 conin:
|
||
procedure byte;
|
||
41 2 return mon2(6,0fdh);
|
||
42 2 end conin;
|
||
|
||
43 1 printchar:
|
||
procedure (char);
|
||
44 2 declare char byte;
|
||
45 2 call mon1 (2,char);
|
||
46 2 end printchar;
|
||
|
||
47 1 check$con$stat:
|
||
procedure byte;
|
||
48 2 return mon2(11,0);
|
||
49 2 end check$con$stat;
|
||
|
||
50 1 print$buf:
|
||
procedure (buffer$address);
|
||
51 2 declare buffer$address address;
|
||
52 2 call mon1 (9,buffer$address);
|
||
PL/M-86 COMPILER REN: RENAME FILE PAGE 5
|
||
|
||
|
||
53 2 end print$buf;
|
||
|
||
54 1 version: procedure address;
|
||
/* returns current cp/m version # */
|
||
55 2 return mon3(12,0);
|
||
56 2 end version;
|
||
|
||
57 1 search$first:
|
||
procedure (fcb$address) byte;
|
||
58 2 declare fcb$address address;
|
||
59 2 return mon2 (17,fcb$address);
|
||
60 2 end search$first;
|
||
|
||
61 1 search$next:
|
||
procedure byte;
|
||
62 2 return mon2 (18,0);
|
||
63 2 end search$next;
|
||
|
||
64 1 delete$file:
|
||
procedure (fcb$address);
|
||
65 2 declare fcb$address address;
|
||
66 2 call mon1 (19,fcb$address);
|
||
67 2 end delete$file;
|
||
|
||
68 1 rename$file:
|
||
procedure (fcb$address) address;
|
||
69 2 declare fcb$address address;
|
||
70 2 return mon3 (23,fcb$address);
|
||
71 2 end rename$file;
|
||
|
||
72 1 setdma: procedure(dma);
|
||
73 2 declare dma address;
|
||
74 2 call mon1(26,dma);
|
||
75 2 end setdma;
|
||
|
||
/* 0ff => return BDOS errors */
|
||
76 1 return$errors:
|
||
procedure(mode);
|
||
77 2 declare mode byte;
|
||
78 2 call mon1 (45,mode);
|
||
79 2 end return$errors;
|
||
|
||
80 1 terminate:
|
||
procedure;
|
||
81 2 call mon1 (143,0);
|
||
82 2 end terminate;
|
||
|
||
83 1 declare
|
||
parse$fn structure (
|
||
buff$adr address,
|
||
fcb$adr address);
|
||
|
||
84 1 parse: procedure address;
|
||
85 2 return mon3(152,.parse$fn);
|
||
86 2 end parse;
|
||
|
||
87 1 declare
|
||
PL/M-86 COMPILER REN: RENAME FILE PAGE 6
|
||
|
||
|
||
pd$pointer pointer,
|
||
pd based pd$pointer pd$structure;
|
||
88 1 declare
|
||
uda$pointer pointer,
|
||
uda$ptr structure (
|
||
offset word,
|
||
segment word) at (@uda$pointer),
|
||
uda based uda$pointer uda$structure;
|
||
|
||
89 1 get$uda: procedure;
|
||
90 2 pd$pointer = mon4(156,0);
|
||
91 2 uda$ptr.segment = pd.uda;
|
||
92 2 uda$ptr.offset = 0;
|
||
93 2 end get$uda;
|
||
|
||
|
||
/**************************************
|
||
* *
|
||
* GLOBAL VARIABLES *
|
||
* *
|
||
**************************************/
|
||
|
||
/* Note: there are three fcbs used by
|
||
this program:
|
||
|
||
1) new$fcb: the new file name
|
||
(this can be a wildcard if it
|
||
has the same pattern of question
|
||
marks as the old file name)
|
||
Any question marks are replaced
|
||
with the corresponding filename
|
||
character in the old$fcb before
|
||
doing the rename function.
|
||
|
||
2) cur$fcb: the file to be renamed
|
||
specified in the rename command.
|
||
(any question marks must correspond
|
||
to question marks in new$fcb).
|
||
|
||
3) old$fcb: a fcb in the directory
|
||
matching the cur$fcb and used in
|
||
the bdos rename function. This
|
||
cannot contain any question marks.
|
||
*/
|
||
|
||
94 1 declare successful lit '0FFh';
|
||
95 1 declare failed (*) byte data(cr,lf,'Not renamed: $'),
|
||
read$only (*) byte data(cr,lf,'Drive Read Only$'),
|
||
bad$wildcard (*) byte data('Invalid Wildcard$');
|
||
96 1 declare passwd (8) byte;
|
||
97 1 declare
|
||
new$fcb$adr address, /* new name */
|
||
new$fcb based new$fcb$adr (32) byte;
|
||
98 1 declare cur$fcb (33) byte; /* current fcb (old name) */
|
||
|
||
/**************************************
|
||
* *
|
||
PL/M-86 COMPILER REN: RENAME FILE PAGE 7
|
||
|
||
|
||
* S U B R O U T I N E S *
|
||
* *
|
||
**************************************/
|
||
|
||
|
||
/* upper case character from console */
|
||
99 1 crlf: proc;
|
||
100 2 call printchar(cr);
|
||
101 2 call printchar(lf);
|
||
102 2 end crlf;
|
||
/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */
|
||
|
||
|
||
/* fill string @ s for c bytes with f */
|
||
103 1 fill: proc(s,f,c);
|
||
104 2 dcl s addr,
|
||
(f,c) byte,
|
||
a based s byte;
|
||
|
||
105 2 do while (c:=c-1)<>255;
|
||
106 3 a = f;
|
||
107 3 s = s+1;
|
||
108 3 end;
|
||
109 2 end fill;
|
||
/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */
|
||
|
||
|
||
/* error message routine */
|
||
110 1 error: proc(code);
|
||
111 2 declare
|
||
code byte;
|
||
|
||
112 2 if code = 0 then do;
|
||
114 3 call print$buf(.('No such file to rename$'));
|
||
115 3 call terminate;
|
||
116 3 end;
|
||
117 2 if code=1 then do;
|
||
119 3 call print$buf(.(cr,lf,'BDOS Bad Sector$'));
|
||
120 3 call terminate;
|
||
121 3 end;
|
||
122 2 if code=2 then do;
|
||
124 3 call print$buf(.read$only);
|
||
125 3 call terminate;
|
||
126 3 end;
|
||
127 2 if code = 3 then
|
||
128 2 call print$buf(.read$only(8));
|
||
129 2 if code = 5 then
|
||
130 2 call print$buf(.('Currently Opened$'));
|
||
131 2 if code = 7 then
|
||
132 2 call print$buf(.('Password Error$'));
|
||
133 2 if code = 8 then
|
||
134 2 call print$buf(.('already exists$'));
|
||
135 2 if code = 9 then do;
|
||
137 3 call print$buf(.bad$wildcard);
|
||
138 3 call terminate;
|
||
139 3 end;
|
||
140 2 end error;
|
||
PL/M-86 COMPILER REN: RENAME FILE PAGE 8
|
||
|
||
|
||
/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */
|
||
|
||
|
||
/* print file name */
|
||
141 1 print$file: procedure(fcbp);
|
||
142 2 declare k byte;
|
||
143 2 declare typ lit '9'; /* file type */
|
||
144 2 declare fnam lit '11'; /* file type */
|
||
145 2 declare
|
||
fcbp addr,
|
||
fcbv based fcbp (32) byte;
|
||
|
||
146 2 do k = 1 to fnam;
|
||
147 3 if k = typ then
|
||
148 3 call printchar('.');
|
||
149 3 call printchar(fcbv(k) and 7fh);
|
||
150 3 end;
|
||
151 2 end print$file;
|
||
/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */
|
||
|
||
|
||
/* try to rename fcb at old$fcb$adr to name at new$fcb$adr
|
||
return error code if unsuccessful */
|
||
152 1 rename:
|
||
procedure(old$fcb$adr) byte;
|
||
153 2 declare
|
||
old$fcb$adr address,
|
||
old$fcb based old$fcb$adr (32) byte,
|
||
error$code address,
|
||
code byte;
|
||
|
||
154 2 call move (16,new$fcb$adr,old$fcb$adr+16);
|
||
155 2 call setdma(.passwd); /* password */
|
||
156 2 call return$errors(0FFh); /* return bdos errors */
|
||
157 2 error$code = rename$file (old$fcb$adr);
|
||
158 2 call return$errors(0); /* normal error mode */
|
||
159 2 if low(error$code) = 0FFh then do;
|
||
161 3 code = high(error$code);
|
||
162 3 if code < 3 then
|
||
163 3 call error(code);
|
||
164 3 return code;
|
||
165 3 end;
|
||
166 2 return successful;
|
||
167 2 end rename;
|
||
/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */
|
||
|
||
|
||
/* upper case character from console */
|
||
168 1 ucase: proc(c) byte;
|
||
169 2 dcl c byte;
|
||
|
||
170 2 if c >= 'a' then
|
||
171 2 if c < '{' then
|
||
172 2 return(c-20h);
|
||
173 2 return c;
|
||
174 2 end ucase;
|
||
/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */
|
||
PL/M-86 COMPILER REN: RENAME FILE PAGE 9
|
||
|
||
|
||
|
||
|
||
/* get password and place at fcb + 16 */
|
||
175 1 getpasswd: proc;
|
||
176 2 dcl (i,c) byte;
|
||
|
||
177 2 call crlf;
|
||
178 2 call print$buf(.('Password ? ','$'));
|
||
179 2 retry:
|
||
call fill(.passwd,' ',8);
|
||
180 2 do i = 0 to 7;
|
||
181 3 nxtchr:
|
||
if (c:=ucase(conin)) >= ' ' then
|
||
182 3 passwd(i)=c;
|
||
183 3 if c = cr then do;
|
||
185 4 call crlf;
|
||
186 4 goto exit;
|
||
187 4 end;
|
||
188 3 if c = ctrlx then
|
||
189 3 goto retry;
|
||
190 3 if c = bksp then do;
|
||
192 4 if i<1 then
|
||
193 4 goto retry;
|
||
194 4 else do;
|
||
195 5 passwd(i:=i-1)=' ';
|
||
196 5 goto nxtchr;
|
||
197 5 end;
|
||
198 4 end;
|
||
199 3 if c = ctrlc then
|
||
200 3 call terminate;
|
||
201 3 end;
|
||
202 2 exit:
|
||
c = check$con$stat;
|
||
203 2 end getpasswd;
|
||
/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */
|
||
|
||
|
||
/* check for wildcard in rename command */
|
||
204 1 wildcard: proc byte;
|
||
205 2 dcl (i,wild) byte;
|
||
|
||
206 2 wild = false;
|
||
207 2 do i=1 to 11;
|
||
208 3 if cur$fcb(i) = '?' then
|
||
209 3 if new$fcb(i) <> '?' then do;
|
||
211 4 call print$buf(.failed);
|
||
212 4 call print$buf(.bad$wildcard);
|
||
213 4 call terminate;
|
||
214 4 end;
|
||
else
|
||
215 3 wild = true;
|
||
216 3 end;
|
||
217 2 return wild;
|
||
218 2 end wildcard;
|
||
/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */
|
||
|
||
|
||
PL/M-86 COMPILER REN: RENAME FILE PAGE 10
|
||
|
||
|
||
/* set up new name for rename function */
|
||
219 1 set$new$fcb: proc(old$fcb$adr);
|
||
220 2 dcl old$fcb$adr address,
|
||
old$fcb based old$fcb$adr (32) byte;
|
||
221 2 dcl i byte;
|
||
|
||
222 2 old$fcb(0) = cur$fcb(0); /* set up drive */
|
||
223 2 do i=1 to 11;
|
||
224 3 if cur$fcb(i) = '?' then
|
||
225 3 new$fcb(i) = old$fcb(i);
|
||
226 3 end;
|
||
227 2 end set$new$fcb;
|
||
/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */
|
||
|
||
|
||
/* try deleting files one at a time */
|
||
228 1 single$file:
|
||
procedure;
|
||
229 2 declare (code,dcnt,savsearchl) byte;
|
||
230 2 declare (old$fcb$adr,savdcnt,savsearcha) addr;
|
||
231 2 declare old$fcb based old$fcb$adr (32) byte;
|
||
|
||
232 2 file$err: procedure(fcba);
|
||
233 3 dcl fcba address;
|
||
234 3 call print$buf(.failed);
|
||
235 3 call print$file(fcba);
|
||
236 3 call printchar(' ');
|
||
237 3 call error(code);
|
||
238 3 end file$err;
|
||
|
||
239 2 call setdma(.tbuff);
|
||
240 2 if (dcnt:=search$first(.cur$fcb)) = 0ffh then
|
||
241 2 call error(0);
|
||
|
||
242 2 do while dcnt <> 0ffh;
|
||
243 3 old$fcb$adr = shl(dcnt,5) + .tbuff;
|
||
244 3 savdcnt = uda.dcnt;
|
||
245 3 savsearcha = uda.searcha;
|
||
246 3 savsearchl = uda.searchl;
|
||
247 3 call set$new$fcb(old$fcb$adr);
|
||
248 3 if (code:=rename(old$fcb$adr)) = 8 then do;
|
||
250 4 call file$err(new$fcb$adr);
|
||
251 4 call print$buf(.(', delete (Y/N)?$'));
|
||
252 4 if ucase(read$console) = 'Y' then do;
|
||
254 5 call delete$file(new$fcb$adr);
|
||
255 5 code = rename(old$fcb$adr);
|
||
256 5 end;
|
||
else
|
||
257 4 go to next;
|
||
258 4 end;
|
||
259 3 if code = 7 then do;
|
||
261 4 call file$err(old$fcb$adr);
|
||
262 4 call getpasswd;
|
||
263 4 code = rename(old$fcb$adr);
|
||
264 4 end;
|
||
265 3 if code <> successful then
|
||
266 3 call file$err(old$fcb$adr);
|
||
PL/M-86 COMPILER REN: RENAME FILE PAGE 11
|
||
|
||
|
||
267 3 else do;
|
||
268 4 call crlf;
|
||
269 4 call print$file(new$fcb$adr);
|
||
270 4 call printchar('=');
|
||
271 4 call print$file(old$fcb$adr);
|
||
272 4 end;
|
||
273 3 next:
|
||
call setdma(.tbuff);
|
||
274 3 uda.dcnt = savdcnt;
|
||
275 3 uda.searcha = savsearcha;
|
||
276 3 uda.searchl = savsearchl;
|
||
277 3 dcnt = search$next;
|
||
278 3 end;
|
||
279 2 end single$file;
|
||
/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */
|
||
|
||
|
||
/* invalid rename command */
|
||
280 1 bad$entry: proc;
|
||
|
||
281 2 call print$buf(.failed);
|
||
282 2 call print$buf(.('Invalid File','$'));
|
||
283 2 call terminate;
|
||
284 2 end bad$entry;
|
||
|
||
|
||
/**************************************
|
||
* *
|
||
* M A I N P R O G R A M *
|
||
* *
|
||
**************************************/
|
||
|
||
285 1 declare ver address;
|
||
|
||
286 1 declare last$dseg$byte byte
|
||
initial (0);
|
||
|
||
287 1 plm$start:
|
||
procedure public;
|
||
288 2 ver = version;
|
||
289 2 if low(ver) < Ver$BDOS or (high(ver) and Ver$Mask) = 0 then
|
||
290 2 call print$buf (.(Ver$Needs$OS,'$'));
|
||
291 2 else do;
|
||
292 3 call get$uda;
|
||
293 3 parse$fn.buff$adr = .tbuff(1);
|
||
294 3 new$fcb$adr, parse$fn.fcb$adr = .fcb;
|
||
295 3 if (parse$fn.fcb$adr:=parse) <> 0FFFFh then do; /* old file */
|
||
297 4 parse$fn.buff$adr = parse$fn.fcb$adr + 1; /* skip delim */
|
||
298 4 parse$fn.fcb$adr = .cur$fcb;
|
||
299 4 parse$fn.fcb$adr = parse; /* new file */
|
||
300 4 call move (8,.cur$fcb+16,.passwd); /* password */
|
||
301 4 end;
|
||
302 3 if parse$fn.fcb$adr = 0ffffh then
|
||
303 3 call bad$entry;
|
||
304 3 if fcb(0) <> 0 then
|
||
305 3 if cur$fcb(0) <> 0 then do;
|
||
307 4 if fcb(0) <> cur$fcb(0) then
|
||
PL/M-86 COMPILER REN: RENAME FILE PAGE 12
|
||
|
||
|
||
308 4 call bad$entry;
|
||
309 4 end;
|
||
else
|
||
310 3 cur$fcb(0) = new$fcb(0); /* set drive */
|
||
311 3 if wildcard then
|
||
312 3 call singlefile;
|
||
313 3 else if rename(.cur$fcb) <> successful then
|
||
314 3 call singlefile;
|
||
end;
|
||
316 2 call mon1(0,0);
|
||
317 2 end plm$start;
|
||
|
||
318 1 end ren;
|
||
|
||
PL/M-86 COMPILER REN: RENAME FILE PAGE 13
|
||
|
||
|
||
CROSS-REFERENCE LISTING
|
||
-----------------------
|
||
|
||
|
||
DEFN ADDR SIZE NAME, ATTRIBUTES, AND REFERENCES
|
||
----- ------ ----- --------------------------------
|
||
|
||
|
||
104 0000H 1 A. . . . . . . . . BYTE BASED(S) 106
|
||
87 0021H 1 ABORT. . . . . . . BYTE MEMBER(PD)
|
||
5 ADDR . . . . . . . LITERALLY 104 145 230
|
||
280 048DH 22 BADENTRY . . . . . PROCEDURE STACK=000EH 303 308
|
||
95 0022H 17 BADWILDCARD. . . . BYTE ARRAY(17) DATA 137 212
|
||
5 BKSP . . . . . . . LITERALLY 190
|
||
83 0000H 2 BUFFADR. . . . . . WORD MEMBER(PARSEFN) 293 297
|
||
50 0004H 2 BUFFERADDRESS. . . WORD PARAMETER AUTOMATIC 51 52
|
||
168 0004H 1 C. . . . . . . . . BYTE PARAMETER AUTOMATIC 169 170 171 172 173
|
||
103 0004H 1 C. . . . . . . . . BYTE PARAMETER AUTOMATIC 104 105
|
||
176 0044H 1 C. . . . . . . . . BYTE 181 182 183 188 190 199 202
|
||
43 0004H 1 CHAR . . . . . . . BYTE PARAMETER AUTOMATIC 44 45
|
||
47 0033H 15 CHECKCONSTAT . . . PROCEDURE BYTE STACK=0008H 202
|
||
29 0000H 1 CMDRV. . . . . . . BYTE EXTERNAL(4)
|
||
87 0020H 1 CNS. . . . . . . . BYTE MEMBER(PD)
|
||
229 0048H 1 CODE . . . . . . . BYTE 237 248 255 259 263 265
|
||
153 0042H 1 CODE . . . . . . . BYTE 161 162 163 164
|
||
110 0004H 1 CODE . . . . . . . BYTE PARAMETER AUTOMATIC 111 112 117 122 127 129 131 133
|
||
135
|
||
40 0011H 15 CONIN. . . . . . . PROCEDURE BYTE STACK=0008H 181
|
||
87 0022H 2 CONMODE. . . . . . WORD MEMBER(PD)
|
||
5 CR . . . . . . . . LITERALLY 95 100 119 183
|
||
99 0109H 17 CRLF . . . . . . . PROCEDURE STACK=000EH 177 185 268
|
||
5 CTRLC. . . . . . . LITERALLY 199
|
||
5 CTRLX. . . . . . . LITERALLY 188
|
||
98 0020H 33 CURFCB . . . . . . BYTE ARRAY(33) 208 222 224 240 298 300 305 307 310 313
|
||
88 000EH 2 DBLK . . . . . . . WORD MEMBER(UDA)
|
||
5 DCL. . . . . . . . LITERALLY
|
||
229 0049H 1 DCNT . . . . . . . BYTE 240 242 243 277
|
||
88 000CH 2 DCNT . . . . . . . WORD MEMBER(UDA) 244 274
|
||
64 0080H 16 DELETEFILE . . . . PROCEDURE STACK=000AH 254
|
||
88 0012H 8 DFPASSWORD . . . . BYTE ARRAY(8) MEMBER(UDA)
|
||
72 0004H 2 DMA. . . . . . . . WORD PARAMETER AUTOMATIC 73 74
|
||
88 0002H 2 DMAOFST. . . . . . WORD MEMBER(UDA)
|
||
88 0004H 2 DMASEG . . . . . . WORD MEMBER(UDA)
|
||
88 0000H 2 DPARAM . . . . . . WORD MEMBER(UDA)
|
||
87 0012H 1 DSK. . . . . . . . BYTE MEMBER(PD)
|
||
87 0018H 2 DVRACT . . . . . . WORD MEMBER(PD)
|
||
110 013AH 123 ERROR. . . . . . . PROCEDURE STACK=0010H 163 237 241
|
||
153 000EH 2 ERRORCODE. . . . . WORD 157 159 161
|
||
88 0010H 1 ERRORMODE. . . . . BYTE MEMBER(UDA)
|
||
202 02DEH EXIT . . . . . . . LABEL 186
|
||
103 0006H 1 F. . . . . . . . . BYTE PARAMETER AUTOMATIC 104 106
|
||
95 0000H 16 FAILED . . . . . . BYTE ARRAY(16) DATA 211 234 281
|
||
5 FALSE. . . . . . . LITERALLY 206
|
||
30 0000H 1 FCB. . . . . . . . BYTE ARRAY(1) EXTERNAL(5) 294 304 307
|
||
31 0000H 1 FCB16. . . . . . . BYTE ARRAY(1) EXTERNAL(6)
|
||
232 0004H 2 FCBA . . . . . . . WORD PARAMETER AUTOMATIC 233 235
|
||
68 0004H 2 FCBADDRESS . . . . WORD PARAMETER AUTOMATIC 69 70
|
||
PL/M-86 COMPILER REN: RENAME FILE PAGE 14
|
||
|
||
|
||
64 0004H 2 FCBADDRESS . . . . WORD PARAMETER AUTOMATIC 65 66
|
||
57 0004H 2 FCBADDRESS . . . . WORD PARAMETER AUTOMATIC 58 59
|
||
83 0002H 2 FCBADR . . . . . . WORD MEMBER(PARSEFN) 294 295 297 298 299 302
|
||
141 0004H 2 FCBP . . . . . . . WORD PARAMETER AUTOMATIC 145 149
|
||
145 0000H 32 FCBV . . . . . . . BYTE BASED(FCBP) ARRAY(32) 149
|
||
232 046CH 33 FILEERR. . . . . . PROCEDURE STACK=0016H 250 261 266
|
||
103 011AH 32 FILL . . . . . . . PROCEDURE STACK=0008H 179
|
||
87 0006H 2 FLAG . . . . . . . WORD MEMBER(PD)
|
||
144 FNAM . . . . . . . LITERALLY 146
|
||
5 FOREVER. . . . . . LITERALLY
|
||
17 0000H 1 FUNC . . . . . . . BYTE PARAMETER 18
|
||
13 0000H 1 FUNC . . . . . . . BYTE PARAMETER 14
|
||
25 0000H 1 FUNC . . . . . . . BYTE PARAMETER 26
|
||
88 0006H 1 FUNC . . . . . . . BYTE MEMBER(UDA)
|
||
21 0000H 1 FUNC . . . . . . . BYTE PARAMETER 22
|
||
175 0259H 141 GETPASSWD. . . . . PROCEDURE STACK=0012H 262
|
||
89 00E1H 40 GETUDA . . . . . . PROCEDURE STACK=0008H 292
|
||
HIGH . . . . . . . BUILTIN 161 289
|
||
176 0043H 1 I. . . . . . . . . BYTE 180 182 192 195
|
||
205 0045H 1 I. . . . . . . . . BYTE 207 208 209
|
||
221 0047H 1 I. . . . . . . . . BYTE 223 224 225
|
||
13 0000H 2 INFO . . . . . . . WORD PARAMETER 15
|
||
25 0000H 2 INFO . . . . . . . WORD PARAMETER 27
|
||
17 0000H 2 INFO . . . . . . . WORD PARAMETER 19
|
||
21 0000H 2 INFO . . . . . . . WORD PARAMETER 23
|
||
142 0041H 1 K. . . . . . . . . BYTE 146 147 149
|
||
286 004BH 1 LASTDSEGBYTE . . . BYTE INITIAL
|
||
87 0014H 1 LDSK . . . . . . . BYTE MEMBER(PD)
|
||
33 0000H 1 LEN0 . . . . . . . BYTE EXTERNAL(8)
|
||
35 0000H 1 LEN1 . . . . . . . BYTE EXTERNAL(10)
|
||
5 LF . . . . . . . . LITERALLY 95 101 119
|
||
87 0000H 2 LINK . . . . . . . WORD MEMBER(PD)
|
||
5 LIT. . . . . . . . LITERALLY 9 10 11 12 94 143 144
|
||
LOW. . . . . . . . BUILTIN 159 289
|
||
87 0024H 1 LST. . . . . . . . BYTE MEMBER(PD)
|
||
87 0015H 1 LUSER. . . . . . . BYTE MEMBER(PD)
|
||
87 0016H 2 MEM. . . . . . . . WORD MEMBER(PD)
|
||
76 0004H 1 MODE . . . . . . . BYTE PARAMETER AUTOMATIC 77 78
|
||
13 0000H MON1 . . . . . . . PROCEDURE EXTERNAL(0) STACK=0000H 45 52 66 74 78 81
|
||
316
|
||
17 0000H MON2 . . . . . . . PROCEDURE BYTE EXTERNAL(1) STACK=0000H 38 41 48 59 62
|
||
21 0000H MON3 . . . . . . . PROCEDURE WORD EXTERNAL(2) STACK=0000H 55 70 85
|
||
25 0000H MON4 . . . . . . . PROCEDURE POINTER EXTERNAL(3) STACK=0000H 90
|
||
MOVE . . . . . . . BUILTIN 154 300
|
||
88 0011H 1 MULTCNT. . . . . . BYTE MEMBER(UDA)
|
||
87 0008H 8 NAME . . . . . . . BYTE ARRAY(8) MEMBER(PD)
|
||
87 001DH 1 NET. . . . . . . . BYTE MEMBER(PD)
|
||
97 0000H 32 NEWFCB . . . . . . BYTE BASED(NEWFCBADR) ARRAY(32) 209 225 310
|
||
97 000CH 2 NEWFCBADR. . . . . WORD 97 154 209 225 250 254 269 294 310
|
||
273 0441H NEXT . . . . . . . LABEL 257
|
||
181 027FH NXTCHR . . . . . . LABEL 196
|
||
88 0000H 2 OFFSET . . . . . . WORD MEMBER(UDAPTR) 92
|
||
231 0000H 32 OLDFCB . . . . . . BYTE BASED(OLDFCBADR) ARRAY(32)
|
||
153 0000H 32 OLDFCB . . . . . . BYTE BASED(OLDFCBADR) ARRAY(32)
|
||
220 0000H 32 OLDFCB . . . . . . BYTE BASED(OLDFCBADR) ARRAY(32) 222 225
|
||
230 0010H 2 OLDFCBADR. . . . . WORD 231 243 247 248 255 261 263 266 271
|
||
219 0004H 2 OLDFCBADR. . . . . WORD PARAMETER AUTOMATIC 220 222 225
|
||
PL/M-86 COMPILER REN: RENAME FILE PAGE 15
|
||
|
||
|
||
152 0004H 2 OLDFCBADR. . . . . WORD PARAMETER AUTOMATIC 153 154 157
|
||
87 001CH 1 ORG. . . . . . . . BYTE MEMBER(PD)
|
||
87 001EH 2 PARENT . . . . . . WORD MEMBER(PD)
|
||
84 00D2H 15 PARSE. . . . . . . PROCEDURE WORD STACK=0008H 295 299
|
||
83 0000H 4 PARSEFN. . . . . . STRUCTURE 85 293 294 295 297 298 299 302
|
||
32 0000H 2 PASS0. . . . . . . WORD EXTERNAL(7)
|
||
34 0000H 2 PASS1. . . . . . . WORD EXTERNAL(9)
|
||
96 0018H 8 PASSWD . . . . . . BYTE ARRAY(8) 155 179 182 195 300
|
||
11 PCM11. . . . . . . LITERALLY
|
||
11 PCMCTLC. . . . . . LITERALLY
|
||
11 PCMCTLO. . . . . . LITERALLY
|
||
11 PCMCTLS. . . . . . LITERALLY
|
||
11 PCMROUT. . . . . . LITERALLY
|
||
11 PCMRSX . . . . . . LITERALLY
|
||
87 0000H 48 PD . . . . . . . . STRUCTURE BASED(PDPOINTER) 91
|
||
88 001AH 1 PDCNT. . . . . . . BYTE MEMBER(UDA)
|
||
7 PDHDR. . . . . . . LITERALLY 87
|
||
87 0004H 4 PDPOINTER. . . . . POINTER 87 90 91
|
||
8 PDSTRUCTURE. . . . LITERALLY 87
|
||
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
|
||
287 04A3H 179 PLMSTART . . . . . PROCEDURE PUBLIC STACK=001EH
|
||
6 PNAMSIZ. . . . . . LITERALLY
|
||
87 002CH 2 PRET . . . . . . . WORD MEMBER(PD)
|
||
50 0042H 16 PRINTBUF . . . . . PROCEDURE STACK=000AH 114 119 124 128 130 132 134 137
|
||
178 211 212 234 251 281 282 290
|
||
43 0020H 19 PRINTCHAR. . . . . PROCEDURE STACK=000AH 100 101 148 149 236 270
|
||
141 01B5H 56 PRINTFILE. . . . . PROCEDURE STACK=0010H 235 269 271
|
||
87 0005H 1 PRIOR. . . . . . . BYTE MEMBER(PD)
|
||
5 PROC . . . . . . . LITERALLY 99 103 110 168 175 204 219 280
|
||
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
|
||
37 0002H 15 READCONSOLE. . . . PROCEDURE BYTE STACK=0008H 252
|
||
95 0010H 18 READONLY . . . . . BYTE ARRAY(18) DATA 124 128
|
||
1 0002H REN. . . . . . . . PROCEDURE STACK=0000H
|
||
152 01EDH 83 RENAME . . . . . . PROCEDURE BYTE STACK=0016H 248 255 263 313
|
||
68 0090H 16 RENAMEFILE . . . . PROCEDURE WORD STACK=000AH 157
|
||
87 0028H 4 RESERVD. . . . . . BYTE ARRAY(4) MEMBER(PD)
|
||
PL/M-86 COMPILER REN: RENAME FILE PAGE 16
|
||
|
||
|
||
179 0266H RETRY. . . . . . . LABEL 189 193
|
||
76 00B0H 19 RETURNERRORS . . . PROCEDURE STACK=000AH 156 158
|
||
103 0008H 2 S. . . . . . . . . WORD PARAMETER AUTOMATIC 104 106 107
|
||
230 0012H 2 SAVDCNT. . . . . . WORD 244 274
|
||
230 0014H 2 SAVSEARCHA . . . . WORD 245 275
|
||
229 004AH 1 SAVSEARCHL . . . . BYTE 246 276
|
||
87 002EH 2 SCRATCH. . . . . . WORD MEMBER(PD)
|
||
88 0008H 2 SEARCHA. . . . . . WORD MEMBER(UDA) 245 275
|
||
88 000AH 2 SEARCHABASE. . . . WORD MEMBER(UDA)
|
||
57 0061H 16 SEARCHFIRST. . . . PROCEDURE BYTE STACK=000AH 240
|
||
88 0007H 1 SEARCHL. . . . . . BYTE MEMBER(UDA) 246 276
|
||
61 0071H 15 SEARCHNEXT . . . . PROCEDURE BYTE STACK=0008H 277
|
||
88 0002H 2 SEGMENT. . . . . . WORD MEMBER(UDAPTR) 91
|
||
72 00A0H 16 SETDMA . . . . . . PROCEDURE STACK=000AH 155 239 273
|
||
219 0333H 57 SETNEWFCB. . . . . PROCEDURE STACK=0004H 247
|
||
87 0025H 1 SF3. . . . . . . . BYTE MEMBER(PD)
|
||
87 0026H 1 SF4. . . . . . . . BYTE MEMBER(PD)
|
||
87 0027H 1 SF5. . . . . . . . BYTE MEMBER(PD)
|
||
SHL. . . . . . . . BUILTIN 243
|
||
228 036CH 256 SINGLEFILE . . . . PROCEDURE STACK=001AH 312 314
|
||
87 0004H 1 STAT . . . . . . . BYTE MEMBER(PD)
|
||
94 SUCCESSFUL . . . . LITERALLY 166 265 313
|
||
36 0000H 1 TBUFF. . . . . . . BYTE ARRAY(1) EXTERNAL(11) 239 243 273 293
|
||
80 00C3H 15 TERMINATE. . . . . PROCEDURE STACK=0008H 115 120 125 138 200 213 283
|
||
87 0002H 2 THREAD . . . . . . WORD MEMBER(PD)
|
||
5 TRUE . . . . . . . LITERALLY 215
|
||
143 TYP. . . . . . . . LITERALLY 147
|
||
168 0240H 25 UCASE. . . . . . . PROCEDURE BYTE STACK=0004H 181 252
|
||
88 0000H 27 UDA. . . . . . . . STRUCTURE BASED(UDAPOINTER) 244 245 246 274 275 276
|
||
87 0010H 2 UDA. . . . . . . . WORD MEMBER(PD) 91
|
||
88 0008H 4 UDAPOINTER . . . . POINTER 88 244 245 246 274 275 276
|
||
88 0008H 4 UDAPTR . . . . . . STRUCTURE AT 91 92
|
||
12 UDASTRUCTURE . . . LITERALLY 88
|
||
87 0013H 1 USER . . . . . . . BYTE MEMBER(PD)
|
||
285 0016H 2 VER. . . . . . . . WORD 288 289
|
||
4 VERBDOS. . . . . . LITERALLY 289
|
||
3 VERMASK. . . . . . LITERALLY 289
|
||
2 VERNEEDSOS . . . . LITERALLY 290
|
||
2 VEROS. . . . . . . LITERALLY
|
||
54 0052H 15 VERSION. . . . . . PROCEDURE WORD STACK=0008H 288
|
||
87 001AH 2 WAIT . . . . . . . WORD MEMBER(PD)
|
||
205 0046H 1 WILD . . . . . . . BYTE 206 215 217
|
||
204 02E6H 77 WILDCARD . . . . . PROCEDURE BYTE STACK=000EH 311
|
||
|
||
|
||
|
||
MODULE INFORMATION:
|
||
|
||
CODE AREA SIZE = 0556H 1366D
|
||
CONSTANT AREA SIZE = 00D0H 208D
|
||
VARIABLE AREA SIZE = 004CH 76D
|
||
MAXIMUM STACK SIZE = 001EH 30D
|
||
635 LINES READ
|
||
0 PROGRAM ERROR(S)
|
||
|
||
END OF PL/M-86 COMPILATION
|