		This file is [307,23] README.2ND


Executive correction files:

CORAL.SLP,INITL.SLP,SYSCM.SLP
	These modifications are the basis for a pool-saving trick as follows:
		1) A number of I/O packets are pre-allocated when the system
		   boots for the very first time.  These packets are reserved
		   at the bottom (low addresses) of the Dynamic Storage Region
		   where the module INITL.MAC ordinarily resides.  To define
		   the maximum number of pre-allocated packets, include the
		   following line in your RSXMC.MAC:
			DS$OPT = 30.	;pre-allocate all possible packets

		2) These pre-allocated packets will no longer be used by all
		   sorts of system structures...they will only be allocated
		   when the executive routine $ALPKT is called.  $ALPKT is
		   called in the exec to allocated I/O packets (DRQIO.MAC),
		   send data packets (DRRAS.MAC), and send by reference
		   packets (DRMAP.MAC).  All other structures (sub-partition
		   control blocks, file control blocks, window blocks, etc.)
		   will be allocated from general system pool, even if they
		   are the same size as I/O packets.  This guarantees that the
		   pre-allocated I/O packets are only used when necessary.

		3) Pre-allocated I/O packets will no longer fragment the
		   system pool since they will be deallocated back to general
		   pool if fragmentation would occur.  This renders the
		   function of SET /MAXPKT useless.  In general, there will
		   be 15 - 17 I/O packets available.  When system activity
		   goes up and down, these packets will be recycled, but no
		   additional packets will be reserved from general pool.

	These mods seem to work very nicely for us in keeping fragmentation
	way down without any adverse affects on system performance.

	
DRSPW.SLP
	This correction file implements an additional flavor of task spawning.
	If a normal SPAWN directive is issued with an event flag of -1, which
	is normally illegal, the following happens:
		1) If the spawn is successful and the requesting task has
		   its MCR synchronization bit set (T3.MCR), then it is
		   cleared for the requestor and set in the child's TCB.
		   In this way, the parent can exit without the system
		   issuing the '>' prompt and the child's exit will cause
		   the '>' prompt to come out at the terminal.  In this
		   way, a non-privileged task may spawn a child and exit,
		   with the '>' prompt not being issued.  An example of the
		   utility of this is when the catch-all task (...CA.)
		   receives a command (eg. FREE DK0:) and spawns a task
		   to process it (eg. PIP DK0:/FR) then exits.  Without
		   this change, the '>' prompt would be printed when ...CA.
		   exits, rather than when PIP exits, as you would like.

		2) If the spawn is successful and the requesting task has
		   one or more parents (Offspring Control Blocks), then
		   the OCB list is unlinked from the requestor and linked
		   to the child.  In this way, the child becomes the child
		   of the requestor's parent, freeing the requestor to exit
		   without screwing up the exit status for its parent.  An
		   example of this is when ...CA. is spawned from an indirect
		   command file and ...AT. wants to get the status back.
		   Using the previous example, if ...AT. spawns the command
		   FREE DK0: to MCR..., then  ...CA. will be spawned as the
		   child of ...AT. and ordinarily would spawn the command
		   PIP DK0:/FR, waiting for PIP to return status.  ...CA.
		   would then exit with the status returned from PIP, in
		   order for ...AT. to get the final result.  This means that
		   there is a stopped copy of ...CA. in (or out of) memory
		   until PIP exits.  With many users, there could be many
		   copies of the catch-all task hanging around.  With this
		   modification implemented, however, the catch-all task
		   could spawn PIP and exit, with status returned properly
		   to ...AT. and the MCR '>' prompt properly synchronized.

		3) The ESB and AST parameters are ignored if the event flag
		   of the spawn is -1.  This is because the requestor task
		   is, to all intents and purposes, becoming its child, and
		   should have no need to synchronize its execution with that
		   of its child.  Under most circumstances, tasks that
		   spawn with a -1 event flag will exit upon verifying that
		   the spawn worked.

		4) The event flag of -1 may also be used with the connect
		   directive.  In this case, the requestor's MCR synch bit
		   and parent OCB list will be transferred to the task
		   specified in the connect directive.

		5) If the requesting task has more than one parent and is
		   requesting a command line interpreter task, a directive
		   error of IE.ITS is returned.  This is because the MCR
		   will crash if it gets a command line from more than one
		   parent.

	This modification, coupled with the catch-all task (MC3.MAC) and
	INStall enhancements has made it possible to implement a CCL with
	very low system overhead.  With very few catch-all tasks active,
	pool fragmentation stays pretty low (fewer TCBs, task headers, etc.).


DREIF.SLP
	Adds a delayed T3.REM bit in T.ST3 for dynamic INStallation of
	tasks support in MC2.


REQSB.SLP
	Modifies the $NXTSK routine to not allow a higher priority task
	that can't fit into memory to prevent tasks of a lower priority
	that can fit if checkpointing is enabled.



TTATT.SLP,TTCAN.SLP,TTDAT.SLP,TTFP.SLP,TTICH.SLP,TTMAC.SLP,TTMIS.SLP
TTMOD.SLP,TTODN.SLP,TTOIS.SLP,TTRW.SLP,TTSUB.SLP,TTYH.SLP,TTYZ.SLP

	These corrections apply only to the full-duplex terminal driver!

	Modifies TTRW.MAC so that checkpointing on terminal output is
	disabled, except for IO.RPR requests which are treated (as they
	should be) as input requests.

	Adds auto-baud support for DH11/DM11 and DZ11 lines.  Auto-baud
	code is table driven off a table in TTDAT.MAC and is initially
	set up for 300, 1200, 2400 and 9600 baud with ctrl-c as the
	universal auto-baud character.  See comments in TTDAT.COR for
	more details.

	Allows 19.2k baud to be a valid speed for DZ11 interfaces.
	Use: "SET /SPEED=ttn:A:A" to set a DZ line to 19.2K baud.

	Implements the control-y key which aborts the users current
	task.  Current task is defined as:
	   1st) The task that is currently attached to the terminal.
	   2nd) The task that is currently reading from the terminal.
	   3rd) The task that is currently writing to the terminal.
	   4th) (This code is commented out in TTFP.SLP...
		To implement it, remove the ;** comments before applying
		the patch.)
		The first task found in the TCB list that is active
		on this terminal and is abortable.
	A "ABO tsknam" command is queued to MCR for the user and the
	abort messages from ABO identify which task got aborted.

	Modifies TTMOD to ignore CTS modem line and ignore RING line
	while a line is enabled.  This should be changed if you need
	to use half/duplex modems and may help things if you use full
	duplex modems and your modems don't always return CTS correctly.
	Also changes TTMOD to ignore a change in the ring line as long
	as carrier is still asserted.

	Changes the default initial state for a remote line to 80.
	characters wide, lower-case and CRT rubout.


ABOOV.SLP
	Allows users from one terminal to delete tasks initiated
	from another terminal if the tasks UIC is the same as the
	users UIC.


BYE.SLP
	BEWARE:  DECNET Phase 3 for RSX rebuilds the BYE task to
	include a module to get rid of per terminal alias node names
	on BYE.  Make sure the MCR.OLB library it links to has the
	the updated BYE.OBJ module.

	If DS$LOG is defined in RSXMC.MAC, a connect-time accounting
	packet is sent to the task LOG... for logging.

	Make sure terminal I/O is cancelled or completed before exit.

	Clean up MCR spawn code (routine GIVMCR).

	Don't abort a catch-all task (...CA.) on this terminal.

	Spawn a fortune cookie message to the terminal, rather than
	printing GOOD MORNING/AFTERNOON/EVENING/NIGHT.

	Don't clear T3.MCR bit....when BYE is complete, '>' prompt is issued.



HELLO.SLP
	Allow special users (privileged) to login even if system logins
	are disabled....by typing 'HELN' rather than 'HEL'.

	If user may not log in because of a SET /NOLOGON, type the
	file LB:[1,2]NOLOG.TXT at the user's terminal if s/he tries
	to log in.

	Establish slaved accounts that are reasonably secure....user
	is logged in slaved and LOGIN.CMD is executed.  If ...AT. exits
	(watch out for user answering a question with ^Z), then the
	terminal is left slaved.  Otherwise, LOGIN.CMD should end with
	a '.XQT BYE' command.

	Don't spawn the login command:  'ASN SY00:=SY0:/LOGIN'

	If GT$MAL defined in RSXMC.MAC prefix file:
	Print "You have mail." if the file LB:[10,3]grpmem.TXT exists.

	If DS$LOG defined in RSXMC.MAC prefix file:
	Adds login accounting support (login message packet sent to
	task LOG...).  User prompted to enter a project number for
	billing purposes.



DEVOV.SLP
	Remove the 'LOADED' string for devices printed by DEV command.

	Relax the syntax for DEV so that 'DEV DR1:' == 'DEV DR:'


FIXOV.SLP
	Adds delayed T3.REM bit in T.ST3 needed for MC2 dynamic task
	INStallation support.



INDAS1.SLP,INDERR.SLP,INDFDC.SLP,INDFIL.SLP,INDIMP.SLP,INDINX.SLP
INDMCR.SLP,INDOPN.SLP,INDPDW.SLP,INDPO1.SLP,INDPRC.SLP,INDROT.SLP
INDSU1.SLP,INDSU2.SLP
	Changes ...AT. to not display "@ <EOF>" at end of command 
	file if QUIET mode is enabled.	

	Uses IO.RPR and cancel-^O for .ASK directives, so that
	^R and ^U work nicely.

	Enable STOP-bit directives (a la Release Notes) in INDIMP.MAC
	and INDPDW.MAC.

	Implement /-LI switch to start up ...AT. in quiet mode.

	Allow comments beginning with ';' to be printed at the
	terminal if in quiet mode.  Comments preceeded by '!' are
	not printed.

	Add .ENABLE NOMCR and NOTRACE to control state of /MC and /TR
	within an executing command file.

	Detach on .ENABLE QUIET.

	Add .SPAWN command...this works identically to the .XQT command,
	except that a spawn with an event flag of -1 is attempted first
	(see DRSPW.SLP).  If the spawning enhancement is implemented,
	then and indirect command file could execute a .SPAWN command
	and exit immediately, with the MCR '>' prompt synchronized with
	the spawned task.  To appreciate the problem, execute the following
	one-line command file:
			.XQT PIP /FR
	The MCR prompt will be printed for ...AT.'s exit, rather than PIP's.
	The file:	.SPAWN PIP /FR
	will synchronize correctly if the DRSPW enhancement has been made.
	If DRSPW.SLP has not been applied, .SPAWN will map directly to .XQT.

	Ensure that all commands are printed at the terminal if /TR mode.

	Add support for LIBUIC  (if DS$LUI defined in RSXMC.MAC and SYSCM.SLP
	patch has been applied).



INSFL.SLP,INSHD.SLP,INSLB.SLP,INSPS.SLP
	Adds support for dynamic task INStallations used by MC2.
	Also changes it so that any RUN filename command uses a
	task name formed from the first 3 chars of the filename
	and his terminal device name.

	Add support for LIBUIC (if DS$LUI defined in RSXMC.MAC).

	Remove default uic propagation for privileged users.  If a privileged
	user changes only the default uic (see SPROV.SLP), then tasks
	initiated from that terminal will have the same protection/default
	uic as the terminal.  (Under vanilla RSX11-M, privileged users have
	their protection uic always following their default uic, making it
	difficult to manipulate system files from non-system uics.  This
	modification, coupled with the SET /UIC enhancement, allow a system
	user to change uics without losing protection.  Note that files
	created in other uic's still have the file ownership set to the
	protection uic of the creator.


MCRDIS.SLP
	Remove default uic propagation for privileged users (see note
	above).

	Allows any number, instead of just one copy of a given task
	to invoked from each terminal.  Each succeeding taskname
	is formed by incrementing the device code letter, example:
	"PIPT11, PIPU11, PIPV11 ...".

	Allows 1 or 2 character tasknames.  Examples:
	"...LC., LC.T10, L..T12".



SDSOV.SLP,SDSOVFDT.SLP,SETOV.SLP,SETOVFDT.SLP,SETOV2.SLP
SPROV.SLP,SPROVFDT.SLP
	BEWARE:  The sysgen does an unexpected replacement "/RP"
	of the xxxOVFDT modules in MCR.OLB to make sure that
	MCR.OLB contains the correct SET command support for the
	full/duplex terminal driver.

	Makes the "/" slash optional on SET's keywords.

	The SET /UIC=[x,y] command will no longer change the login UIC
	for privileged users.  This makes the WHO command to be able
	to identify users using their login UIC.  Since protection UICs
	are generated from the default UIC for privileged users and the
	login UIC for non-privileged users and since the login UIC for
	non-privileged users was never changed in the first place it
	appears that this change does not cause any problems.

	There are five new keywords added to SET.  LOGGED-OUT, OFFLINE,
	ABSCAN (expecting an autobaud character), DISABLED, and
	CARRIER-WAIT.  Used without an equals sign they present a list
	of terminals that have or do not have the specified mode set.
	All but CARRIER-WAIT when used (by privileged terminals) with
	an equals sign and a device name sets or clears these modes.

	Add SET /TOP command to change the top of a system-controlled
	partition  (from Jim Downward--KMS Fusion).

	Add SET /LIBUIC support.

	Make "[" and "]" optional on SET /UIC commands.


SYSOV.SLP
	Make CLQ command non-privileged.


TASOV.SLP
	Adds optional task name parameter to TAS command  (e.g.:  TAS ...MCR)


TKTN.SLP
	Makes all TKTN messages use IO.WBT to help prevent TKTN from
	getting hung up.  Another useful thing to do is to install TKTN
	and SHF tasks in their own partition seperate from MCRPAR.
	This way also MCR... never gets checkpointed and is always in
	memory ready when needed.

	Allow TKTN to be fixed in memory.

