
			RT-11 V5.4 RELEASE NOTES ADDENDA
			================================

The following sections list new RT-11 features, new files, general infor-
mation, software corrections, documentation changes and additions, and re-
strictions finalized after the printing of the RT-11 System Release Notes,
AA-5286I-TC.

I. FEATURES OF RT-11 V5.4

Version 5.4 provides support for the following new features and devices:

	o Support for the TK50 magtape drive and the TK50 magtape as a dis-
	    tribution medium for automatic and manual installation
	o Support for the PDP-11/53 processor
	o Support for the RX33 diskette drive as a system and data device
	o Support for the RD31 disk drive under DU (limited support under DW)
	o Support for the new LA75 printer in the same manner as LA50 printer 
	    support
	o Support for fetching magtape handlers under the XM monitor
	o New DBG-11 Symbolic Debugger Package (unsupported)
	o New Ethernet hardware handler NU for UNIBUS Ethernet
	    controllers (DEUNA, DELUA)
	o New device handler macros: .DRTAB and .DRUSE
	o New system subroutines: JREADF and JWRITF
	o New TMSCP (MU) device controller
	    checking program: MSCPCK.SAV (unsupported)
	o New procedures to back up the distribution to magtape
	o New procedures to create bootable magtapes
	o New uniform automatic installation procedure for all input and out-
	    put media that are supported for automatic installation, with ad-
	    ditional supported media

II. NEW FILE ON THE DISTRIBUTION KIT

The following new file is included with the RT-11 V5.4 distribution kit, and
is not documented in the RT-11 System Release Notes for V5.4.

   MSCPCK.SAV

	MSCPCK.SAV checks your TMSCP (MU) device controller (if present) and
	reports its revision level by displaying the following message:

		?MSCPCK-I-MUx-FW Rev Level is nnn/HW Rev Level is nnn

		where x is the MU unit number and nnn is a 3-digit firmware or
		hardware revision level.
	
	A command to run MSCPCK is included and enabled in the start-up com-
	mand files for all monitors (except STARTA.COM). If your configuration
	includes a TMSCP device, be sure that MSCPCK.SAV resides on your sys-
	tem volume. If your configuration does not include a TMSCP device, you
	can disable the command to run MSCPCK in your start-up command file by
	editing that file and placing an exclamation point (!) before the com-
	mand (!R MSCPCK).

	Reliable TK50 operation on Q-BUS processors requires a controller of
	at least a particular revision level. See Section 7 (TK50 magtape) of
	this file for information specific to MSCPCK.SAV and the TK50.
								Page 2

III. GENERAL INFORMATION, SOFTWARE AND DOCUMENTATION CORRECTIONS

The following information is not included in the RT-11 System Release Notes
for V5.4:

 1. MONITORS

    BSTRAP

     o	For RT-11 V5.3, any RT-11 monitor that was generated with memory par-
	ity support would not boot on machines immediately following a power-
	up. For RT-11 V5.4, monitors that are generated with memory parity
	support boot correctly on power-up.

    USR

     o	For RT-11 V5.4, all monitors support the .DRPTR macro.

 2. UTILITIES and PROCEDURES

    Automatic Installation

     o	For RT-11 V5.4, if automatic installation is not valid for your hard-
	ware configuration and your distribution is multivolume, you are
	prompted to mount and boot diskette 1; diskette 1 boots the FB monitor
	on RX01/RX02 distributions or the XM monitor on the RX50 distribution.
	If your hardware configuration is not valid and your distribution is
	a single volume (disk), the automatic installation procedure boots the
	FB monitor on that volume and refers you to the RT-11 Installation
	Guide.  If your distribution is TK50, the automatic installation pro-
	cedure boots the AI monitor on device VM; see Section 4.4 of the RT-11
	System Release Notes for information on manually installing RT-11 from
	a TK50 magtape.

    BATCH

     o	Previously, BATCH did not work. Attempting to run BATCH returned the
	error messages, ?MON-F-No device, or ?BATCH-F-Invalid LOG device. For
	RT-11 V5.4, BATCH works as documented.

    BUP

     o	Previously, BUP could fail to correctly initialize, backup, and re-
	store data when the output device was an RL01/RL02 (DL) or RK06/RK07
	(DM) that was initialized with a non-RT-11 format. Results of a backup
	and restore operation using such a device were unpredictable and often
	incorrect. Now, BUP correctly performs backup and restore operations
	for those devices when they were previously initialized as non-RT-11
	devices.
								Page 3

     o	Previously, BUP could fail to restore a single file from a magtape
	back-up volume when file directory segments on the backed-up volume
	were not forward linked. BUP could not correctly search the directory 
	of a volume on a magtape backup if that directory contained one or
	more segments that were not forward-linked to the other segments. Now,
	BUP correctly follows the links of the directory segments and 
	successfully restores single files under those circumstances.

     o	Previously, BUP could incorrectly determine the size of an RK05 disk.
	When backing up a file that was larger than a single RK05 disk, BUP
	would incorrectly inform you to use PIP to copy the file to a single
	RK05. BUP now correctly sizes RK05 disks and no longer informs you to
	use PIP under those circumstances.

     o	Previously, when you attempted to use VBGEXE to run BUP, BUP returned
	the error message ?BUP-F-Channel in use. Now, you can successfully
	use VBGEXE to run BUP.

    DIR

     o	Previously, when you performed a directory (DIR command) on a magtape,
	you received the directory listing, the magtape rewound, and you then
	received the trailer information (number of files and free blocks).
	Now, you receive the directory listing with the trailer information
	while the tape is rewinding. You receive the monitor prompt after the
	magtape has rewound.

    DUMP

     o	Previously, if you assigned the DUMP default output device (LP) to a
	file-structured device (for example, ASSIGN DU1 LP), DUMP did not rec-
	ognize the assigned device as the default output device and returned
	the error message, ?DUMP-F-No LP, when you attempted to run DUMP. DUMP
	now recognizes the assigned device as the default output device and
	does not return the error message under those circumstances.

     o	Previously, if you used the CSI form to run DUMP and specified an out-
	put device (other than TT:) without a file name, the command failed
	and returned the error message, ?CSI-F-Invalid command. Now, the com-
	mand works as documented and places the output on the device you spec-
	ify with the default file name DUMP.DMP.

    ERROR LOGGER

     o	The following information is not included in Section 16.4.1 of the
	RT-11 System Utilities Manual, Using ELINIT:

	When you RUN ELINIT (or R ELINIT) followed by a carriage return and
	you receive the prompt requesting the device to which you want the
	statistics file ERRLOG.DAT written, you can press RETURN to select
	your system device (SY) or you can specify a device. If you specify a
	device, you must include a colon (:) following that device; for
	example, DL:. Also, do not specify a file name in response to that
	prompt; only the file name ERRLOG.DAT is valid.
								Page 4

	For RT-11 V5.4, if you do not specify a valid device in response to
	the ELINIT prompt requesting the device to which you want the statis-
	tics file ERRLOG.DAT written, ELINIT checks the default data device
	(DK) for ERRLOG.DAT. If ERRLOG.DAT is not on DK, ELINIT returns the
	warning message, ?ELINIT-W-File not found DK:ERRLOG.DAT. ELINIT then
	writes 	ERRLOG.DAT on DK. If you specify a valid device that does not 
	contain the file ERRLOG.DAT, ELINIT returns the warning message,
	?ELINIT-W-File not found <ddn:ERRLOG.DAT>, where ddn: is the device
	you specified. ELINIT then writes the file ERRLOG.DAT on that device.

     o	The block number returned in the device error report is now in decimal
	radix. Previously, the block number was in octal radix.

    IND

     o	For RT-11 V5.3, the .TESTDEVICE directive sometimes returned incorrect
	mounted (MTD) and unmounted (NMT) status information for logical
	disks. IND did not correctly track the new data table information in
	the LD(X).SYS file. For RT-11 V5.4, IND correctly tracks the LD(X).SYS
	file data tables, and the logical disk mount information returned by
	the .TESTDEVICE directive is correct.

     o	Previously, the .TESTDEVICE directive incorrectly returned off-line
	(OFL) status for a DL device that was logically possible but physi-
	cally nonexistent. By default, the DL handler contains valid table
	entries for two DL devices. If a configuration using the distributed
	DL handler included only one DL device (DL0), a .TESTDEVICE to the
	nonexistent DL1 device incorrectly returned OFL status, rather than
	the correct NSD (no such device). The .TESTDEVICE directive now cor-
	rectly returns the NSD status for logically possible but nonexistent
	DL devices.

     o	Previously, the .TESTDEVICE directive incorrectly returned the LOD
	(loaded) status for magtape handlers that were in fact not loaded.
	Other status information returned on unloaded magtape handlers was
	also randomly incorrect. Now, the .TESTDEVICE returns correct status
	information on unloaded magtape handlers.

     o	Previously, the .TESTDEVICE directive could incorrectly return size
	and status information for some DU devices. That problem is corrected
	for RT-11 V5.4.

     o	Previously, IND did not interpret some errors returned by PIP and DUP.
	Therefore, IND did not correctly process all PIP and DUP errors. For
	RT-11 V5.4, that error information is now mapped to IND's internal
	error table, and IND processes PIP and DUP errors correctly.
								Page 5
    KED/KEX

     o	If you are simultaneously using two KED/KEX editors and you enter (and
	keep open) command mode on the first editor and then exit or quit the
	second, you cannot at that point reenter the first editor because it
	is still in command mode and will not accept input from the keyboard. 
	If you attempt to reenter the first editor, you cannot return to the
	background or the foreground. 

	To free the editor and the keyboard, you must return to the editor
	using the appropriate special function key (CTRL/B, CTRL/F, or CTRL/X 
	and the editor name) and press the ESCAPE key twice. You can then
	press CTRL/W to repaint the screen, enter command mode to exit or quit
	editing that file, or use a special function key to perform other
	functions.

    LD (logical disk utility)

     o	For RT-11 V5.3, the LD handlers LD.SYS (appropriate for the SJ and FB
	monitors) and LDM.SYS (for RTEM-11), would crash the system if a
	MOUNT command was issued after the LD handler was loaded. The LD
	handler for the XM monitor (LDX.SYS) did not exhibit this problem. For
	RT-11 V5.4, the LD handler no longer crashes the system if mounted
	after being loaded.

     o	You may need to issue the command SET LD CLEAN more than once to veri-
	fy and correct nested logical disk assignments. Use the SHOW command
	to determine logical disk subsetting assignments and repeat the SET LD
	CLEAN command as necessary.

     o	Attempting to nest a logical disk within the same logical disk (MOUNT
	LD3: LD3:foo.dsk) now returns the error message, ?LD-F-Invalid
	nesting.

     o	Nesting a logical disk within a higher-numbered logical disk (MOUNT
	LD3: LD2:foo.dsk) is not recommended and now returns the warning mes-
	sage, ?LD-W-Invalid nesting.
	
    LINK

     o	Previously, if you directed the binary output file to the NL device
	in a LINK command line, LINK failed and returned the error message
	?LINK-F-Storing text beyond high limit. LINK did not recognize that
	you were directing the output to the null (NL) device and failed, pro-
	ducing that message indicating a bad read/write error. Now, LINK does 
	not fail when you direct binary file output to the NL device in a LINK
	command line.

     o	Previously, when link maps contained more than one page of undefined
	global symbols, the header information was incomplete on the second
	and following pages. Now, the link maps contain complete header infor-
	mation on all pages.
								Page 6
    MDUP

     o	For RT-11 V5.4, the MDUP programs no longer support the following
	devices: RPO2/RP03, RS03/RS04, and RF11. However, the MDUP programs
	now support VM and devices controlled by the DU handler. If you need
	to create MDUP support for a device not supported in the distributed
	MDUPs, see Appendix A of the RT-11 Installation Guide. 

	The text in Appendix A indicates the customization is for user-written
	devices. However, the customization also applies to device handlers
	distributed with RT-11 but not supported by the distributed MDUPs. The
	customization patch shows a value of 60000 for offset 1122; that pro-
	duces the documented 12K words of memory when you boot the modified SJ
	monitor. DIGITAL recommends you use a value of 70000 at offset 1122;
	that produces 14K words of memory and lets you support more and/or
	larger devices. That value is the maximum size you can use - do not
	exceed the value 70000.

     o	You cannot use the distributed MDUP programs with LSI-11 processors.
	Perform the following procedure to build an MDUP program that you can
	use with your LSI-11 processor:

	    1.	Use the SYSGEN procedure to build an SJ monitor on your LSI-11
		processor. You can use the distributed answer file SJFB.ANS to
		build a copy of the distributed SJ monitor. Respond Y to the
		second SYSGEN dialog question and specify SJFB.ANS in response
		to the third question. Respond to the rest of the SYSGEN
		prompts. You only need to build the SJ monitor; you do not
		need to build device handlers for this procedure.

	    2.	Modify that SJ monitor you built using the procedure described
		in Appendix A of the RT-11 Installation Guide. Also see the
		information included in this section of this file, located
		above.

		Follow the rest of the procedure described in Appendix A for
		customizing all handlers you want to support and then build
		an MDUP.?? as described.

	    3.	Use the monitor you built and modified, and the MDUP.?? file
		you created, with your LSI-11 processor. Use that SJ monitor
		only to build your MDUP.?? file, using that MDUP.SAV program;
		that monitor is useless for all other applications.

    PIP

     o	Previously, characters copied from your terminal (TT:) to an output
	device (such as LP:) were always copied in uppercase. Now, characters
	are copied from your terminal with no change in case.

     o	Previously, if the command DELETE/QUERY filenam.SYS was included in an
	indirect command file, responding N (no) to the prompt returned by
	that command incorrectly returned the message ?PIP-W-Reboot. However,
	the specified file was correctly not deleted. Now, PIP does not return
	that message under those circumstances.
								Page 7
    RESORC

     o	The SHOW CONFIGURATION command no longer displays 'Global .SCCA flag
	is disabled' when .SCCA support was not requested during SYSGEN.

    SETUP

     o	For RT-11 V5.3, the SETUP SMOOTH command did not work on PDP-11 pro-
	cessors as documented. For RT-11 V5.4, SETUP SMOOTH does work as doc-
	umented on PDP-11 processors. SETUP SMOOTH is not supported on Profes-
	sional 300 series processors.

     o	Previously, the SETUP GENERIC command returned an error message if you
	were using a PDP-11 processor with a VT200 series terminal. Now, the
	SETUP GENERIC command works as documented with VT200 series terminals.

    SIPP

     o	When a program you specify for a SIPP session is overlayed, SIPP reads
	in 259(decimal) words of that program at a time. That is three words
	more than a single block - SIPP reads in the first three words of the 
	next block too. If either block is a bad block, SIPP returns the error
	message, ?SIPP-F-Input error<dev:filenam.typ>. If you receive that er-
	ror message, issue the command DIRECTORY/BAD for that device to find
	the bad block. For RT-11 V5.4, SIPP reads in one block at a time when 
	the program is overlayed and you use the /A option, or if the program 
	is not overlayed.

     o	Previously, if you used the /L option and the device was write locked,
	SIPP incorrectly returned the error message, ?MON-F-Dir IO error<ad-
	dress>. Now, SIPP works as documented and does not return that error
	message under those circumstances.

     o	Previously, if you used CCL command mode to run SIPP and included the 
	checksum option (/C), the checksum prompt was not returned and SIPP
	saved none of the modifications. Now, when you run SIPP using CCL and 
	include the checksum option, the command works as documented.

   SPLIT

     o	When you use the SPLIT /2 option, the block allocation on the output
	volumes is determined by the standard RT-11 file size allocation algo-
	rithm; one-half of the largest free area. That could cause SPLIT to
	fail because of insufficient size. Therefore, when you use the /2
	option, you should include the [-1] optional size specification after 
	each output file specification. That lets SPLIT use the maximum blocks
	available on the output volumes. For example, the following command
	splits the file TEST.TXT, located on device DK, into two files:
	TESTA.TXT located on device DZ0 and TESTB.TXT located on device DZ1:

		.SPLIT DZ0:TESTA.TXT[-1],DZ1:TESTB.TXT[-1]=TEST.TXT/2
								Page 8
    SPOOL

     o	If you wish to use VM as the work device for SPOOL, you should attach 
	VM to SPOOL. However, that makes VM unavailable for other use. The
	following series of commands lets you attach VM as the work device for
	SPOOL, but still makes VM available for other use. These commands can
	be included in your start-up command file, but if you include them, be
	sure to remove or disable any current commands you use to start SPOOL.

		ASSIGN LS: SO0:
		ASSIGN VM7: SFD:
		ASSIGN SP: LP:
		ASSIGN SP0: LP0:
		FRUN SPOOL/PAUSE
		LOAD LS:=SPOOL
		LOAD VM7:=SPOOL
		RESUME SPOOL

    SYSGEN

     o	Previously, if SYSGEN needed to load a device handler, that device
	handler was not unloaded at the end of the SYSGEN procedure. Now,
	SYSGEN unloads any device handlers that it loaded.

    UCL

     o	For RT-11 V5.4, you can create and issue UCL commands in upper, lower,
	or mixed-case. The case you use to create the UCL command is stored
	(as entered) in the UCL data file, and the command's case is passed to
	KMON in the chain area as stored.

     o	Previously, UCL did not consider a command containing an asterisk
	(minimum abbreviation character) as a valid replacement for the same
	command that did not contain the asterisk. UCL did not clear the re-
	placed command. UCL now clears the replaced command under those cir-
	cumstances.

    VTCOM

     o	To run VTCOM.REL under XM is inefficient; you should run VTCOM.SAV.
	If you run VTCOM.REL under the XM monitor, VTCOM returns the message, 
	?VTCOM-W-Use XM version, VTCOM.SAV.

     o	If you attempt a VTCOM operation that uses a volume that is invalid
	(not initialized, for example), VTCOM returns the error message,
	?VTCOM-F-Invalid directory. Make the volume a valid RT-11 volume and
	retry the VTCOM operation.

     o	Previously, the modem's Clear To Send signal controlled whether VTCOM
	reported a connection as established or lost. Now, the Carrier Detect
	signal controls the status of the connection report. The connection
	report is the same and remains valid for all supported modems.
								Page 9
 3. DEVICE HANDLERS

    CT

     o	Previously, the CT handler would install on all processors under all
	monitors whether or not a TU60 cassette device was in fact in the con-
	figuration. Now, the CT handler will only install if the required
	hardware is present at the correct CSR.

    DD

     o	Previously, when running under the XM monitor, attempting to access
	files on an unloaded TU58 DECtape II could crash the system. For RT-11
	V5.4, accessing files on an unloaded TU58 returns the error message,
	?MON-F-Unloaded driver<address>, and does not crash the system.

    DL, DM

     o	Previously, the DL and DM  handlers did not check .READx/.WRITx re-
	quests from a non-file-structured .LOOKUP to determine if they cor-
	rectly accessed replaced blocks only through the bad-block replacement
	table. Now, the DL and DM handlers reject any attempt to access re-
	placed blocks other than through the bad-block replacement table and 
	return the carry bit set. Note that special function (.SPFUN) reads
	and writes continue to directly access any block on the device.

     o	Previously, when you issued the COPY/DEVICE/RETAIN command to the DL
	and DM handlers, those handlers incorrectly read two blocks beyond the
	data area on the input volume. DL and DM then wrote those two blocks
	to the first two replaced blocks on the output volume, thereby cor-
	rupting those first two blocks. For RT-11 V5.4, the DL and DM handlers
	only read from and write to the data area when you use the COPY/DEVICE
	/RETAIN command.

     o	Previously, some invalid SPFUN codes directed to DL and DM could cause
	a default action to occur. Now, all invalid SPFUN codes directed to DL
	and DM are correctly ignored.

    DU

     o	For RT-11 V5.4, the command SET DU SUCCES works as documented.

     o	For RT-11 V5.4, you can issue the command SET DUx PORT=0 when you have
	a single port DU configuration. That command no longer returns an er-
	ror message in a single port configuration.

    LP/LS

     o	The LS handler is distributed with support for both PRO and PDP-11
	processors. The SYSGEN conditionals that enable that support are
	LS$PC=1 for the PRO, and LS$PDP=1 for the PDP-11 processors. You can
	build an LS handler for only the PRO by requesting PC300 printer port
	support and also including the conditional LS$PDP=0 after replying Y
	to the SYSGEN prompt - Do you want to define or redefine any system
	conditionals (N)?.

	You can also build an LS handler for only PDP-11 processors by re-
	questing no PC300 printer port support in the SYSGEN dialog.
								Page 10

     o	For RT-11 V5.3, the SET LS CSR=nnnnnn command required the default
	system generation PC300 printer port support. That support was in-
	cluded in all distributed monitors. For RT-11 V5.4, the SET LS
	CSR=nnnnnn command works as documented with all LS handlers except
	those generated for only PC300 printer port support during system
	generation. The CSR and Vector addresses for the Professional 300
	series processors are fixed by the hardware and cannot be set.

    Magtape Handlers (MM,MS,MT,MU)

	The following information applies to all magtape handlers. Information
	about specific magtape handlers is listed under the particular handler
	name.

     o	Magtape devices require that you close channels rather than just
	deactivate them when you terminate your program. DIGITAL recommends
	you use the .CLOSE request before you terminate a program that per-
	forms I/O operations to any RT-11 magtape device. 

	Some RT-11 utilities (such as BUP) use the .PURGE request to deacti-
	vate a channel at program termination; that is appropriate for I/O op-
	erations to a disk device. You should LOAD some magtape handlers be-
	fore they are used with utilities such as BUP. If you LOAD your mag-
	tape handler and you use a utility that performs a .PURGE, that util-
	ity can return an error message at the next attempted magtape access
	because the channel has not been closed. You can clear that error con-
	dition by UNLOADing and then again LOADing the magtape handler.

	If a program does not require you to LOAD the magtape handler, then
	let the program .FETCH the handler. A .FETCH always loads a new copy
	of the handler into memory and therefore corrects any channel problem
	caused by a .PURGE request at program termination.

    MQ

     o	Previously, the MQ handler used only the .READx wcnt parameter value
	to determine the size of a data transfer. A mismatch between the wcnt 
	parameter value for a .WRITx and a .READx request could cause data or 
	code corruption. Now, the MQ handler uses the smaller of the .READx
	and .WRITx wcnt parameter values to determine the data transfer size, 
	and memory corruption can no longer occur under those circumstances.

    MS

     o	RT-11 V5.3 corrected a problem in which a double CTRL/C issued to a
	program using the MS magtape while it was in motion could cause the
	system to hang. That problem was caused by MS attempting to dismiss
	queue elements already dismissed by the monitor.
								Page 11
    XC/XL

     o	Additional functionality has been added to SPFUN 204 so that it now
	returns the following modem control information in bits 3 and 4 of the
	low byte of the user buffer:

		Bit	Meaning

		 3	Set indicates Carrier Detect is high (on); clear in-
			dicates Carrier Detect is low (off)

		 4	Set indicates Ring Indicator is high (on); clear in-
			dicates Ring Indicator is low (off)

	Because of changes made to SPFUN 204, the driver support level value
	returned in the high byte of the user buffer is now 18(decimal) rather
	than 17(decimal).


 4.  PROGRAMMED REQUESTS (SYSMAC)

   .SAVESTATUS

     o	For RT-11 V5.4, you can use the .SAVESTATUS request for a device chan-
	nel that is opened with the .ENTER request, so long as that device is 
	both special directory stuctured and write only. The .ENTER request
	remains an invalid way to open a channel for which you intend to use
	.SAVESTATUS for all other types of devices. You can also use the
	.LOOKUP request and .SAVESTATUS for special directory-structured
	devices, so long as the device is write only.

	A device is recognized as special directory structured and write only
	when the SPECL$ and WONLY$ bits are set in the $STAT entry table in
	the resident monitor (RMON). For RT-11 V5.4, the only devices that are
	special directory structured and write only are LP, LS, and SP.


 5. SYSTEM SUBROUTINES (SYSLIB)

    ICHCPY

     o	Previously, ICHCPY incorrectly interpreted the optional jobblk paraM
	eter. A value specified for the first word of jobblk was incorrectly
	used as the location of the string, rather than correctly as the first
	word of the string itself. Now, the ICHCPY subroutine works as docu-
	mented.

    IGETR

     o	Previously, IGETR could not be called from a FORTRAN program. Also,
	numerous problems occurred in the code with information mapping,
	sizing, and channel operations. For RT-11 V5.4, IGETR works as doc-
	umented. See Section 7 of this file for more information and an
	example program using IGETR.
								Page 12
    JREADF

     o	RT-11 V5.4 provides the JREADF variant of the JREAD function.
	
	The JREADF function transfers into memory a specified number of words
	from the indicated channel. The monitor returns control to the user
	program immediately after the JREADF function is initiated. When the
	operation is complete, the monitor enters the specified FORTRAN sub-
	program (crtn) as an asynchronous completion routine. (See Section
	1.2.1.2 of the RT-11 Programmer's Reference Manual for information on
	completion routines.)

	Form:  i = JREADF (wcnt,buff,jblock,chan,[area],lblk,crtn)

	where:

		wcnt, buff, jblock, chan, and area are the same as the JREAD
		function.

		lblk	is a 4-word area to be set aside for link information;
			this area must not be modified by the FORTRAN program 
			or swapped over by the USR. This area can be reclaimed
			by other FORTRAN completion functions when crtn has
			been activated

		crtn	is the FORTRAN routine to be activated on completion
			of the transfer. This name must be specified in an
			EXTERNAL statement in the routine that issues the
			JREADF call

	Errors:

		The return codes are the same as for JREAD, except 0 (and not
		n) is the normal return.

    JWRITF

     o	RT-11 V5.4 provides the JWRITF variant of the JWRITE function.
	
	The JWRITF function transfers a specified number of words from memory
	to the specified channel. The monitor returns control to the user
	program immediately after queuing the request. When the transfer is
	complete, the monitor enters the specified FORTRAN subprogram (crtn)
	as an asynchronous completion routine. (See Section 1.2.1.2 of the
	RT-11 Programmer's Reference Manual for information on completion rou-
	tines.)

	Form:  i = JWRITF (wcnt,buff,jblock,chan,[area],lblk,crtn)

	where:

		wcnt, buff, jblock, chan, and area are the same as the JWRITE
		function.

		lblk	is a 4-word area to be set aside for link information;
			this area must not be modified by the FORTRAN program 
			or swapped over by the USR. This area can be reclaimed
			by other FORTRAN completion functions when crtn has
			been activated
								Page 13

		crtn	is the FORTRAN routine to be activated on completion
			of the transfer. This name must be specified in an
			EXTERNAL statement in the routine that issues the
			JWRITF call.
	Errors:

		The return codes are the same as for JWRITE, except 0 (and not
		n) is the normal return.

    MRKT

     o	Previously, MRKT incorrectly interpreted the id parameter. The value
	specified for the id parameter was incorrectly interpreted as the
	address of the id parameter, rather than correctly as the id parameter
	itself. Now, the MRKT subroutine works as documented.

 6. PERIPHERAL DEVICES

    LA75 Printer

     o	For RT-11 V5.4, the LA75 printer is supported in the same manner as
	current LA50 printer support. That is, the LA75 responds to the same
	(and only) SET conditions and SETUP modes as an LA50.

    TK50 Magtape

     o	The new program, MSCPCK.SAV, checks the TQK50 Q-BUS controller for its
	rev level. If the TQK50 controller is below rev level, the MU handler 
	installs and MSCPCK.SAV returns the error message, ?MSCPCK-W-TQK50
	controller below FW Rev 4/HW Rev 6. Reliable TK50 operation on Q-BUS
	processors requires a controller of at least firmware revision 4 and
	hardware revision 6.

 7. DOCUMENTATION CORRECTIONS

    Introduction to RT-11

     o	Chapter 5, Creating and Editing Text Files, demonstrates the EDIT
	hard-copy editor. That editor is no longer the default RT-11 editor.
	Therefore, to start the EDIT editor, you must either SET EDIT EDIT
	and then issue the EDIT command, or issue the command RUN EDIT (or
	R EDIT).

    RT-11 Software Support Manual

     o	Section 3.5.7, Message Handling, should contain the following infor-
	mation about FB monitor support for message transfers:

	The distributed FB monitor only supports using the .SDAT/.RCVD/.MWAIT 
	requests to transfer messages. 

	You must build (SYSGEN) an FB monitor and request system job support
	(or use XM) to transfer messages, using the system job lookup macro
	(.LOOKUP) and the standard I/O requests. (You can also continue
	to use the .SDAT/.RCVD/.MWAIT requests to transfer messages between
	the foreground and background programs when you run any FB or XM
	monitor.)
								Page 14

     o	Section 7.8.2, How to Support Special Functions in a Device Handler,
	incorrectly states in the fourth paragraph that you should return a
	hard error for invalid special function codes. In fact, device han-
	dlers should simply ignore invalid special function codes.

     o	Section 11.2.3, Device Attributes (DA), incorrectly states the form of
	SETUP VT100 DA response and the secondary DA response for FB and XM
	monitors. 

	If the terminal is SETUP VT100, the correct DA responses are:

		When running under the FB monitor:  <ESC>[?1;1c

		When running under the XM monitor:  <ESC>[?1;3c

  	The following are the correct forms for the secondary DA response:

		For the FB monitor, the response is of the form:

			<ESC>[>7;VVNNc

			where VV is the version and NN is the edit level.

		For the XM monitor, the response is of the form:

			<ESC>[>8;VVNNc

			where VV is the version and NN is the edit level.

	The rest of the information in Section 11.2.3 is correct.

   RT-11 System Release Notes

     o	Section 1.5.4.10, JREAD/JREADC/JREADW, contains inaccurate information
	about the error codes returned for JREAD and JREADC. The normal return
	for JREAD and JREADC is 0, and not n. JREAD and JREADC cannot return
	the value for n because the monitor returns control to the user pro-
	gram immediately after they are initiated. JREADW does return n as the
	normal return because the monitor returns control to the user program 
	at completion of the subroutine. The rest of the section is correct.

     o	Section 1.5.4.11, JWRITE/JWRITC/JWRITW, contains inaccurate infor-
	mation about the error codes returned for JWRITE and JWRITC. The nor-
	mal return for JWRITE and JWRITC is 0, and not n. JWRITE and JWRITC
	cannot return the value for n because the monitor returns control to
	the user program immediately after they are initiated. JWRITW does
	return n as the normal return because the monitor returns control to
	the user program at completion of the subroutine. The rest of the
	section is correct.

     o	Section 3.4.4, RT-11 Software Support Manual changes and additions,
	contains inaccurate information in the addition to Section 10.15.1,
	(MU) Use of Special Functions. The buf parameter is inaccurately in-
	dicated as 0 (unused). In fact, the buf parameter is the address of
	the 52(decimal) word TMSCP area.
								Page 15

     o	Appendix C, Section C.3.2, A Working System for Performing a SYSGEN,
	contains an inaccurate value for which you set VM. The second command
	line in the file you create VMGEN.COM should read:

		SET VM BASE = 4000

	Setting that value (instead of 5000 as documented), provides enough
	MACRO work file space to successfully run the SYSGEN build files.

   RT-11 Programmer's Reference Manual

    Completion Routines (Section 1.2.1.2)

     o	The following information concerns possible stack overflow under the
	FB and SJ monitors when you use a subroutine that calls a completion
	routine.

	If your program is using a subroutine that calls a completion routine
	and you receive the message, ?MON-F-Trap to 4 (under the FB monitor),
	or ?MON-F-Stack overflow (under the SJ monitor), you should relink
	your program and increase its stack size. You increase the stack size
	of your program by raising the program base address, using the LINK
	/BOTTOM:value option. By default, LINK places the program base address
	at 1000(octal). Raise the base address and thereby increase the stack
	size by specifying a /BOTTOM:value address in the range of 1010 to
	1200(octal).

     o	The following restriction is not mentioned for the ISLEEP function:

	Do not call ISLEEP from within a completion routine when running under
	the SJ monitor. Doing that can hang the program containing the com-
	pletion routine.

    CONCAT (Section 3.4)

     o	The err argument is a logical error flag of data type LOGICAL*1; not
	simply LOGICAL. It is especially important to use the LOGICAL*1 form
	when you use the FORTRAN-77 compiler.

    GTJB/IGTJB (Section 3.11)

     o	You must include a valid ASCII job name in the jobblk parameter to ob-
	tain a 12-word block; simply including a comma after the addr param-
	eter obtains an 8-word block. Also, the example program is incorrect;
	you cannot use a job number for the jobblk parameter - you must use a
	valid ASCII job name.

    IFREEC (Section 3.29)

     o	Error code 1, Specified channel is not currently allocated, is incor-
	rect. The error code is actually -1.
								Page 16
    IGETR  (Section 3.32)

     o	The argument parameters, offset and msize, are in reverse order in the
	documented IGETR subroutine syntax and the parameter list. In fact,
	the correct syntax is [,msize[,offset]].

     o	The description of the IGETR system subroutine does not indicate the
	method you should employ to use IGETR from within a FORTRAN program.
	There is no example indicating how to force the addr parameter to
	begin on a PAR boundary. The following information and example show
	how to do that.

	As documented, the addr parameter is a variable. The base address of
	that variable is used for the global region. That variable must
	reside on a PAR boundary. Therefore, the variable's address must be a 
	4K-word multiple from 000000. Use the following procedure to place the
	variable on such an address (the example program below uses the var-
	iable names mentioned in the procedure):

	    1.	Copy any ASCII text (.TXT) file of at least one block to a
		file you create named TEST.DAT. The first 256 bytes of the
		file TEST.DAT is used as the initial input data for a global
		region you create using the following program.

	    2.	Create an INTEGER*2 array of one element.(this is X in the
		example).

	    3.	Create an INTEGER*2 index for that array. That index (called
		INDX in the example) contains the desired octal PAR boundary
		value minus the assembled address of the array X, divided by
		two, plus one. Those contents produce the offset into the ar-
		ray which falls on the PAR boundary. 

	    4.	Use the array at the calculated index as the address (addr
		parameter) in IGETR. That forces the addr parameter to a PAR
		boundary.

	    5.	The following restrictions apply when using IGETR with FORTRAN
		IV and FORTRAN-77:

		     o	If you are using FORTRAN IV, do not generate your OTS
			with the V2S array subscript bounds checking module -
			use the V2SN module instead.

		     o	If you are using FORTRAN-77, do not enable array sub-
			script bounds checking (do not use the /I compiler
			option).

	The following example program illustrates the procedure discussed
	above. The program tests the 4 methods of calling IGETR:

	INTEGER*2	RES, I, J, IPAR, CSIZ, MSIZ, OFS
 	INTEGER*2	WRKA(7), INDX, OFFSET, X(1)
	INTEGER*4	RNAME
	REAL*8		SPEC
	EXTERNAL	SETREY
	DATA		IPAR / "40000 /
	DATA		CSIZ / 128 /, MSIZ / 0 /, OFS / 0 /
								Page 17
C
	INDX = (IPAR - IADDR(X)) / 2 + 1	!CALCULATE INDEX
	OFFSET = INDX - 1			! AND SUBSCRIPT OFFSET
	CALL IRAD50( 6, 'REYJUN', RNAME )	! MAKE RAD50 REGION NAME
	CALL IRAD50( 12, 'DK TEST  DAT', SPEC )	! RAD50 TEST DATA FILE

C--------------------------TEST METHOD 1----------------------------------

	RES = IGETR( WRKA, 'P', RNAME, X(INDX), CSIZ, MSIZ, OFS )
	WRITE( 5, *) 'TEST 1 RETURNED', RES
	DO 10 I = 1, 128
	    X(OFFSET+I) = I
10	CONTINUE
	DO 20 I = 1, 10
	    WRITE( 5, 1001) I, IPEEK( IPAR+((I-1)*2))
1001	    FORMAT( ' EXPECTED/FOUND: ',I6,' / ',I6)
20	CONTINUE
	RES = IFREER( WRKA, 'E' )

C--------------------------TEST METHOD 2--------------------------

	ICHAN = IGETC()
	IF (ICHAN .LT. 0) STOP '- NO CHANNELS AVAILABLE'
	RES = LOOKUP( ICHAN, SPEC)
	RES = IGETR( WRKA, 'A',RNAME,X(INDX),CSIZ,MSIZ,OFS,ICHAN,0)
	WRITE( 5, *) 'TEST 2 RETURNED', RES
	CALL CLOSEC( ICHAN )
	CALL IFREEC( ICHAN )
	RES = IFREER( WRKA, 'E' )

C--------------------------TEST METHOD 3--------------------------

	RES = IGETR( WRKA,'A',RNAME,X(INDX),CSIZ,MSIZ,OFS,SPEC,0 )
	WRITE( 5, *) 'TEST 3 RETURNED', RES
	WRITE( 5, 1002) (IPEEK( IPAR+((I-1)*2)),I=1,10)
1002	FORMAT( ' STRING IN FILE: "',10A2, '"')
	RES = IFREER( WRKA, 'E' )

C--------------------------TEST METHOD 4--------------------------

	RES = IGETR(WRKA,'A',RNAME,X(INDX),CSIZ,MSIZ,OFS,SETREY,-1)
	WRITE( 5, *) 'TEST 4 RETURNED', RES
	DO 40 I = 1, 10
	    WRITE( 5, 1001) I, IPEEK( IPAR+((I-1)*2))
40	CONTINUE
	RES = IFREER( WRKA, 'E' )
	END

C-----------------------------------------------------------------

	SUBROUTINE SETREY( ADDR, LN )	! CALLED BY IGETR
	INTEGER*2	I, ADDR, LN
	DO 10 I = 1, LN
	    CALL IPOKE( ADDR+((I-1)*2), I)
10	CONTINUE
	RETURN
	END

								Page 18

     o	IREAD/IREADC/IREADF/IREADW (Section 3.48)

	Section 3.48, IREAD/IREADC/IREADF/IREADW, contains inaccurate infor-
	mation about the error codes returned for IREAD, IREADC, and IREADF.
	The normal return for IREAD, IREADC, and IREADF is 0, and not n.
	IREAD, IREADC, and IREADF cannot return the value for n because the
	monitor returns control to the user program immediately after they are
	initiated. IREADW does return n as the normal return because the mon-
	itor returns control to the user program at completion of the sub-
	routine. The rest of the section is correct.

     o	IRENAM (Section 3.49)

	Section 3.49, IRENAM, contains inaccurate information about the error
	codes it returns. Code 3 is incorrect and code 4 is omitted. The fol-
	lowing are the correct descriptions of those codes:

		i = 3	Device is currently in use.
		  = 4	A file by that name already exists and is protected

     o	IWRITE/IWRITC/IWRITF/IWRITW (Section 3.68)

	Section 3.68, IWRITE/IWRITC/IWRITF/IWRITW, contains inaccurate infor-
	mation about the error codes returned for IWRITE, IWRITC, and IWRITF. 
	The normal return for IWRITE, IWRITC, and IWRITF is 0, and not n.
	IWRITE, IWRITC, and IWRITF cannot return the value for n because the
	monitor returns control to the user program immediately after they are
	initiated. IWRITW does return n as the normal return because the mon-
	itor returns control to the user program at completion of the sub-
	routine. The rest of the section is correct.

     o	REPEAT, SCOPY, STRPAD (Sections 3.101,3.105,3.108)

     	The err argument is a logical error flag of data type LOGICAL*1; not
	simply LOGICAL. It is especially important to use the LOGICAL*1 form
	when you use the FORTRAN-77 compiler.


IV. RESTRICTIONS

RT-11 V5.4 includes the following restrictions not documented in the RT-11
System Release Notes:

     o	All DEQNA controllers used with RT-11 should be at revision E1/E2
	or higher.

     o	When you issue the command FRUN GIDIS.SAV, you lose the cursor. You do
	not get the cursor back until you reboot your system. You can continue
	to enter commands in the background, foreground, or to system jobs
	without the cursor.

     o	When you run under the XM monitor and you use any of the following
	handlers, you must explicitly load them using the LOAD command: BA,
	CT, DD, NC, NQ, NU, SD, and ST. You cannot fetch those handlers.
								Page 19

     o	Use the .CLOSE request, rather than the .PURGE request, when you
	terminate a program that performs I/O operations to any RT-11 magtape 
	device. See Section III, Magtape Handlers, of this file for infor-
	mation.

     o	The transparent spooler (SPOOL) supports only a single device: SP0 or
	SP. Attempts to SET conditions for SPn, where n is other than 0 or
	omitted, can cause SPOOL to hang.

     o	All terminals used with DBG-11 must have hardware tabs.

     o	You cannot run IND or RESORC from VBGEXE.

     o	You cannot use SL to edit the continuation line of a DCL KMON command.

     o	All DEQNA Ethernet controllers used with RT-11 must have the sanity
	timer disabled. The DEQNA sanity timer reboots the RT-11 system after
	a period of time under certain circumstances. If you suspect your
	DEQNA sanity timer is enabled, consult your DEQNA user documentation
	for information about disabling it.

     o	The LIBR /X option for creating multiple definition libraries is in-
	cluded in RT-11 only for compatibility with the RSTS operating system.
	DIGITAL recommends you do not use the LIBR /X option under the RT-11
	operating system.

     o	When you perform a SYSGEN and request no SPOOL banner page support,
	various SET conditions appropriate for SPOOL banner page support are
	made invalid. Also, you cannot change the default SET conditions FORM0
	and ENDPAG=0. If you want the SET condition NOFORM0 or ENDPAG=n, where
	n is other than 0, use the distributed SP handler.

     o	When you use the PRINT SCREEN function on Professional series proces-
	sors and the text displayed on your screen contains certain character
	sets or character and/or line attributes (bolding and so forth), your
	printer might not print the entire screen line.

	You can avoid (or minimize) this problem by setting the LS handler
	condition GRAPH, using the SET LS GRAPH command. You must unload and
	reload the LS handler before any LS condition will cha

###  Sector read ERROR: 0x0A ### 

 ??????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????or both input file
	names.

     o	On a multiterminal system, do not abort a job on a private console
	with two CTRL/Cs. Issuing two CTRL/Cs to a job on a private console
	can crash the system. You must abort a job on a private console from
	the hardware console. From the hardware console, first suspend the job
	on the private console using the SUSPEND command and then abort that
	job using the ABORT command.
								Page 20

     o	You cannot use the distributed MDUP programs with LSI-11 processors.
	Use the procedure described in the MDUP section of this file to build 
	an SJ monitor and an MDUP program that you can use with your LSI-11
	processor.

     o	If you use SIPP to patch or examine an overlayed program without using
	the /A option and SIPP reads to the end of a disk, SIPP returns the
	error message, ?SIPP-F-Input error<dev:filenam.typ>, and does not read
	the last block on the disk. 

----- End of V5NOTE.TXT
