mirror of
https://github.com/SEPPDROID/Digital-Research-Source-Code.git
synced 2025-10-26 18:04:07 +00:00
1 line
2.5 KiB
Plaintext
1 line
2.5 KiB
Plaintext
$title ('MP/M 1.1 Rename File')
|
||
ren:
|
||
do;
|
||
|
||
$include (copyrt.lit)
|
||
/*
|
||
Revised:
|
||
19 Jan 80 by Thomas Rolander
|
||
*/
|
||
|
||
declare start label;
|
||
declare jmp$to$start structure (
|
||
jmp$instr byte,
|
||
jmp$location address ) data (
|
||
0C3H,
|
||
.start-3);
|
||
|
||
mon1:
|
||
procedure (func,info) external;
|
||
declare func byte;
|
||
declare info address;
|
||
end mon1;
|
||
|
||
mon2:
|
||
procedure (func,info) byte external;
|
||
declare func byte;
|
||
declare info address;
|
||
end mon2;
|
||
|
||
declare fcb (1) byte external;
|
||
declare fcb16 (1) byte external;
|
||
declare tbuff (1) byte external;
|
||
|
||
/**************************************
|
||
* *
|
||
* B D O S Externals *
|
||
* *
|
||
**************************************/
|
||
|
||
read$console:
|
||
procedure byte;
|
||
return mon2 (1,0);
|
||
end read$console;
|
||
|
||
print$console$buffer:
|
||
procedure (buffer$address);
|
||
declare buffer$address address;
|
||
call mon1 (9,buffer$address);
|
||
end print$console$buffer;
|
||
|
||
search$first:
|
||
procedure (fcb$address) byte;
|
||
declare fcb$address address;
|
||
declare dcnt byte;
|
||
dcnt = mon2 (17,fcb$address);
|
||
if dcnt <> 0ffh then
|
||
do;
|
||
if tbuff(ror(dcnt,3) and 110$0000b)
|
||
<> low (mon2 (32,0ffh)) then
|
||
dcnt = 0ffh;
|
||
end;
|
||
return dcnt;
|
||
end search$first;
|
||
|
||
delete$file:
|
||
procedure (fcb$address);
|
||
declare fcb$address address;
|
||
call mon1 (19,fcb$address);
|
||
end delete$file;
|
||
|
||
rename$file:
|
||
procedure (fcb$address);
|
||
declare fcb$address address;
|
||
call mon1 (23,fcb$address);
|
||
end rename$file;
|
||
|
||
terminate:
|
||
procedure;
|
||
call mon1 (143,0);
|
||
end terminate;
|
||
|
||
declare locfcb (33) byte;
|
||
|
||
/*
|
||
Main Program
|
||
*/
|
||
|
||
declare response byte;
|
||
|
||
declare last$dseg$byte byte
|
||
initial (0);
|
||
|
||
start:
|
||
do;
|
||
call move (16,.fcb16,.locfcb);
|
||
if search$first (.fcb) <> 0ffh then
|
||
do;
|
||
call print$console$buffer
|
||
(.('File already exists, delete (Y/N)?','$'));
|
||
response = read$console;
|
||
if (response = 'y') or
|
||
(response = 'Y') then
|
||
do;
|
||
call delete$file (.fcb);
|
||
end;
|
||
else
|
||
do;
|
||
call terminate;
|
||
end;
|
||
end;
|
||
if search$first (.locfcb) = 0ffh then
|
||
do;
|
||
call print$console$buffer
|
||
(.('No such file to rename.','$'));
|
||
end;
|
||
else
|
||
do;
|
||
call move (16,.fcb,.locfcb+16);
|
||
call rename$file (.locfcb);
|
||
end;
|
||
call terminate;
|
||
end;
|
||
|
||
end ren;
|
||
|