MC3 is a catch all task which is identical to the MC2 task described in the NASA/Ames BAYLUG DECUS submission documentation except that it does not have transparent command line passing to non-installed tasks and therefore does not need the executive or INS enhancements that MC2 needs. It is a non-privileged task and installs under the name ...CA. It then implements the following features: (From AMESCHGS.DOC file.) New tasks [1,54]: MC2.MAC, MC2.TSK (non-privileged task) 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 tasking to be included in the executive. The searching sequence is driven by tables in the front of the code and is easily 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 corresponding 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 separated 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.