[333,103] -- C utilities. UFD ownership; disk usage manager

This UFD contains various C utilities in use at THE RECORD. Sources provided
can be built using VERSION 2.0 of the DECUS C compiler. Several of the
routines require the C executive extensions and the ".H" files, all of which
are provided with the DECUS C kit on the Spring 82 RSX tape. There are a few
home-grown subroutines (provided in CBER.OLB); you may want to place this in
[1,1] on your disk or edit the task build command files; sorry I had no time
to make a beautiful clean command file that works for everybody everywhere.

OWNER -- reports on and maintains a file, [1,5]UFDLIST.TXT, which records each
	UFD on a disk and a one-line description of its owner and contents.
	Written using Version 2.0 of DECUS C. Extremely useful for finding
	things on disks and finding out who is responsible for those 60,000
	blocks that got allocated last night. See OWNER.DOC and use OWN.CMD
	to build on system. Task images included for those who don't have C;
	but they have been built multi-user on an M-PLUS VERSION 2.0 system.

	Also provided with OWNER are two files, RSXS82.DIR and RSXF80.DIR,
	which give brief indices to the Spring '82 and Fall '80 RSX SIG tapes
	as an example of how OWN can be used.

MATCHUFDS.SH and MAKUFDLST.SH -- Two script files for use with the LBL tools
	shell program in conjunction with OWNER, above. MAKUFDLST will make
	a skeleton UFDLIST.TXT file for any disk if you don't want to go
	through the effort of doing it by hand with an editor. It lists all
	the UFD's as "UNDEFINED", and you can then edit in the ones you know
	and track down the ones you don't.
	MATCHUFDS.SH compares the contents of the MFD with the UFDLIST.TXT
	file and reports on any differences, e.g. directories not listed in
	UFDLIST or entries in UFDLIST that no longer exist on disk.

MCD -- Multi-column directory. Modified version of DIR.C by 
	from Fall '81 tape, fixed up to use standard C routines instead of
	special library routines (missing from original distribution), and
	also enhanced to handle files with size greater than 32,767 blocks.
	All sources etc. named "DIR*". Task build file gives task name of
	MCD to avoid conflict with DCL DIR. More info in MCD.HLP and MCD.TXT.

VT100 SUBROUTINES -- CURSOR, MODE, DISPLAY will in various ways manipulate
	the cursor or screen of a VT100 terminal. Some advanced video options
	included. Not all of these have been thoroughly debugged; MODE and
	DISPLAY work pretty well in a couple of applications we have, achieving
	an FMS-forms-like effect. See comments in the C sources.

FORMAT -- subroutine to convert a primitive UFD spec -- e.g. 1,2 -- into a
	expanded spec -- e.g. [001,002]. Used by OWNER, TOTBLK, and HOGBLK.

HDX --  This program reads and reports on HELP file indices in [1,2]. See
	HDX.HLP for more information. It provides a quick index to available
	HELP. See related TECO macros HDX.TES, TEH.TES and EDH.TES. The struc-
	ture of this program is terrible because it was based on the HDX TECO
	macro that I wrote first; however, it works beautifully.
	Here is an example of "HDX DCL TECO" for the TECO.HLP file in [333,100]

Help file qualifiers for: DCL TECO
rootfile is [1,2]DCL.HLP
1 TECO
    2 BEGINNER
      3 COMMANDS
      3 EXAMPLE
      3 MORE
    2 INITIALIZATION
    2 MANUAL
    2 MEMORY
    2 QUALIFIERS
    2 VTEDIT
      3 INITIALIZATION of VTEDIT
      3 LOCATION of VTEDIT
      3 COMMANDS(see KEYPAD)
      3 KEYPAD
      3 EXIT
      3 TERMINAL
    2 MUNG
      3 SEARCH
      3 TYPE
        4 ANNOUNCE
        4 HOLD
        4 SEEALL
        4 TRUNCATE
        4 SEARCH
        4 INSPECT
        4 FLAG
        4 SHORT
        4 OVERPRINT
    2 TERMINAL
	

TECO MACROS to index and edit help files. HDX.TES is an unsquished macro that
	does the same thing as HDX.C (only much slower). TEH.TES initiates a
	TECO edit on a given portion of a HELP file; EDH.TES does the same
	but switches to EDT for editing (it spawns EDT from TECO!) for those
	who prefer EDT. For example, MUNG TEH DCL SET TERMINAL will
	locate the help file text for DCL SET TERMINAL and open the file for
	editing at that point. If the named topic does not exist, TEH will
	position you at the end of the correct help file or sub-help file
	to allow you to add the new topic.

	Complete documentation is in EDITHELP.DOC (and .RNO) for TEH and EDH
	and in HELPINDEX.DOC (.RNO) for HDX.

	It is possible that these TECO macros will not work with your TECO.INI,
	so I have included ours.

TIATT -- C subroutine to attach TI: so that CNTL/O will work.

CBER.OLB -- contains object code of TIATT, DISPLAY, MODE, and FORMAT.

DISKUSE.CMD -- You must have the LBL tools installed to use this, and if you
	don't have them you ought to!  This command file goes through some
	strange gyrations to create a file called DISKUSE.RPT in [1,1], which
	shows the total blocks for each UFD on the disk combined with the
	text from UFDLIST.TXT that OWNER creates and maintains. The report
	is sorted in descending order by block usage. (I use a DISKUSE.BAT to
	submit this command file when I log off for the night; my LOGOUT.CMD
	file initiates the batch job automatically unless I cancel it.)

	DISKUSE currently relies on PIP /TB to get block usage; it really
	should use a special C program to do this since PIP is so slow.
	The strange stuff I go through with the OWN program is done because
	the output from PIP /TB is not in any predictable order; therefore
	I use OWN to look up each UFD in UFDLIST.TXT in the order they occur
	in PIP's output. I contemplated used SRD [0,0]/WB to sort the MFD
	each time DISKUSE is run, but I couldn't quite bring myself to trust
	that as a nightly procedure.

TOTBLK -- this C program is a spinoff of OWNER; it looks up a user name in
	DISKUSE.RPT and reports on the total blocks in use by that user as
	of last night's report. Requires running DISKUSE.CMD first.

HOGBLK -- another spinoff of OWNER. This one reads an interim file created
	by DISKUSE and compares today's version with yesterday's, and then
	reports only UFD's whose block usage changed between the two reports.
	Requires that DISKUSE.CMD be run twice first.

HELP FILES -- help files are included for the various programs above. In 
	addition I have thrown in help files I created for various other
	utilities that have appeared on past SIG tapes, such as LIST(T.C in
	the DECUS C tools), TIPE (the TYPE program in macro), CWD (the change
	working directory program; there should be an M-Plus V2 version on
	this tape from Jim Neeland), and TTY (report TT characteristics).
	Only the help files are here, you'll have to scrounge for the sources
	on past tapes.

APOLOGY: much of this stuff I did just before putting together this tape for
	Anaheim, and it is not yet polished up. I find it all so useful in
	the little time I've had it that I wanted to send it out. Next time
	around I will attempt to clean things up and document how it all
	hangs together just a little better.
