This file is [307,23] README.3RD Non privileged catch-all tasks (...CA.): MC2.MAC This is a MCR catch all task (...CA.) that implements 14 commands of its own, searches directories for .TSK or .CMD files to process commands it can't handle and automatically invokes them, waits for their completion and passes back their exit status to MC2's parent. It will dynamically INStall and invoke task images, passing them through SPWN$ the command line that MC2 received. It will use STLO$ to wait for the spawned task to complete unless the system does not support the STOP directives in which case it uses WTSE$. MC2 does require parent/offspring tasksing to be included in the executive. The searching sequence is driven by tables in the front of the code and is easly changed. The default sequence is: 1st) SY:[default_uic] 2nd) SY:[protection_uic] (If different from default_uic.) 3rd) CM:[1,55] (To be compatible with old MC2.) 4th) LB:[1,54] (Verifies task is executable first.) 5th) CM:[1,56] (Only for privileged users.) 6th) CM1:[1,55] 7th) CM1:[1,56] (Only for privileged users.) If CM: or CM1: logical devices do not exist it will skip looking in the corrosponding directories. These are usually set up with "ASN dduu:=CM:/GBL" commands under VMR if [1,55] and [1,56] support is desired (see V3.1 MC2). One change from the old MC2 is that since the task is no longer a privileged task it can no longer directly obtain the login UIC. Instead it gets the protection UIC using GTSK$ which for non-privileged users is their login UIC but for privileged users is their default UIC. Hence it does not look in privileged users login UIC unless it is also their current default UIC (set by the "SET /UIC", "CHD" or "UIC" commands). It does not allow non-privileged users to invoke privileged tasks unless the task is found in [1,55] or unless it is found in LB:[1,54] and a .PRV file has been found first with the same command name as the filename. A good example of this is WHO.TSK which is a privileged task but is one that you want anyone to be able to invoke. Simply put WHO.TSK in LB:[1,54] and create a WHO.PRV by issuing the command "PIP WHO.PRV=NL:". Then do a "SRD /NA/WB" so the WHO.PRV will be in the directory before the WHO.TSK. The internal commands that MC2 proccesses and re-issues via SPWN$ to MCR... are: (only first 3 chars of command are necessary) ATS - Same as "ACT /ALL" CHD - Same as "SET /UIC" CHD grp,mem - Same as "SET /UIC=[grp,mem]" DELETE filespec - Same as "PIP filespec/DE" DIR filespec - Same as "PIP filespec/LI" DLG - Same as "DEV /LOG" ERASE filespec - Same as "PIP filespec/DE" except ;* assumed FREE dduu: - Same as "PIP dduu:/FR" POOL - Same as "SET /POOL" PURGE filespec - Same as "PIP filespec/PU" RENAME file1=file2 - Same as "PIP file1=file2/RE" SPOOL filespec - Same as "PIP filespec/SP" TRUNC filespec - Same as "PIP filespec/TR" TYPE filespec - Same as "PIP TI:=filespec" UIC - Identical to CHD "filespec" can contain more than one filename seperated by commas. ERA is identical to DEL except ERA inserts a ";*" as a version number on all filenames that do not specify a version number to be deleted. Remember that a command line can only be 79. characters and any expansion of the command that MC2 does subtracts from that 79. MC3.MAC This is an alternative MC2 program that is a further enhancement of the MC2 described above. New features include: 1) Most of the above described commands are commented out of the code so that only ATS, FREE, TRUNC, and TYPE remain. This is to allow file manipulation tasks (SRD and PIP, etc.) and command line interpreters to be installed, rather than translating all commands to PIP syntax (no wild cards in filename). 2) Support is added for SPAWN and EXIT (see DRSPW.SLP) so that there do not need to be a lot of ...CA. tasks cluttering memory needlessly. 3) NOMULT option prevents users from accidentally invoking their own tasks more than once. There are additional comments in the source code. ***NOTE that MC2 or MC3 will not work correctly unless INS has been rebuilt with the supplied patches and DREIF has been patched. (You can ZAP the DREIF patch into your system image, if you are clever, so that a SYSGEN is not immediately necessary).