                   RSX/IAS SIG Tape Distribution - Spring 1986
                   ===========================================


          This is the RSX/IAS SIG Symposium Tape from the Spring 1986 DECUS
     Symposium at Dallas.  The tape contains material submitted by the user
     community for the tape at that meeting.  

          The  programs  on this tape are from user submissions.  The DECUS
     staff, the RSX & IAS SIG staffs, and DEC are all in complete ignorance
     of  the  contents of the tapes.  No warranty of any kind is implied in
     the distribution of these tapes.  The programs may or may not be  well
     documented, they may or may not work, they may even crash your system.
     If you have a problem with the  contents  of  the  tape,  contact  the
     author  of  the program.  Do not contact DECUS, DEC, or the RSX or IAS
     SIGs.  

          The  tape  contains  about  2846 files requiring 61,000 blocks of
     disk space.  Since this will fit on a single 2400 foot  tape  only  in
     BRU  at  1600  bpi,  it  is  being  distributed  as such.  To simplify
     distribution and production, the tape is a single BRU  container  file
     followed (for the LUG distribution only) by several extra files.  

          Directory  [300,1] contains the files documenting the contents of
     the tape.  The following files are present:  
     RSX86ATPE.DOC contains an abstract of the contents of the tape by UIC. 
     ALLREADME.86A  contains a concatenated list of all the README files on
        the tape.  
     RSX86ADIR.LIS  contains  a directory of all the files on the tape (BRU
        does not produce nice directories).  This is a brief  listing  with
        UICs and filenames only for space reasons.  
     SUBMIT.DOC contains guidelines for submissions to the RSX/IAS Sig Tape
        collection.  This is MUST  reading  for  everyone  who  desires  to
        submit a program to the SIG tape.  
     BEGIN86A.DOC has a copy of this text.  
     UICSET86A.CMD contains the UFD commands to create all the needed UIC's
        on a device whose name is asked for in the command file.   Edit  it
        to  match your needs before using BRU to extract the tape contents.
        A word of caution:  under at least  some  circumstances,  11M  V4.0
        BRU's  /UFD  switch  creates  directories  even when it doesn't put
        anything in them.  
     If  your  disk  is  smaller than an RM03, you may want to exclude some
        files from the copy in order to have a backup set that  fits  on  a
        smaller  disk.  Copy these off in separate passes.  The directories
        [5,*] contain 5247 blocks in 2 directories and 197 files  and  have
        tools  from  DECUS C with some utilities needed to decompress a few
        files  elsewhere  also  (See  [5,14]lzpdp11.arc  for  these).   The
        directory [70,101] has a rerelease of "Swedish" PASCAL and occupies
        2131 blocks, and the directory [150,1] contains some utilities  for
        Commodore  Amiga  containing 4114 blocks.  Also, directory [356,40]
        contains several Kermit packages occupying a total of 7587  blocks.
        If  these  are  omitted,  the  rest of tape will fit on an RK07.  A
        second pass through the  tape  can  extract  the  [5,*]  and  other
        directories onto another device.  



                                        Glenn C. Everhart
                                        RSX/IAS SIG Tape Copy Coordinator
                                        RCA A&D Engineering MS 206-1
                                        Rt. 38
                                        Cherry Hill, N.J. 08358
                                        (609)-338-6022





---------------------------------------------------------------------------------
 [005,014]README.602
----------------------------------------------------------------------------------------
		Miscellaneous stuff
		------------- -----

Miscellaneous stuff -- use at your own risk.  Many routines were contributed
by Decus C users.  Generally untested.  Of special interest are:

pinst		Decompile PDP-11 instruction codes. (This is a
		subroutine -- you call it with a program counter
		location.)

maze		an amazing program, especially if you have a VT52 and a
		five year old child.

gothic		Generate big gothic lettered banners.  See gothic.cmd
		for build instructions.

banner		Generate medium size letters.

cookie		Fortune cookie program.  See cookie.cmd for build
		instructions.  Enjoy.

roff.arc	Somewhat incomplete and untested runoff (from Software
		Tools) in archive format.

basic.arc	Basic interpretor

focal		Focal interpretor

units		Convert units

flx		File transfer utility, runs on Unix, reads Dos-11 tapes.

spell.arc	Spelling checker -- includes a large dictionary.  Needs
		the RMS interface library.

rmslib.arc	RMS interface library for Fortran and C.

---------------------------------------------------------------------------------
 [005,026]README.601
----------------------------------------------------------------------------------------
	Software Tools
	-------- -----

This account contains source for a number of programs that are generally
useful.  You will probably have to modify the account names in the command
files to suit your own taste.  Of course, there's no accounting for taste.

NOTE: as of this writing, there seems to be a bug in the sorts program
(or in the file-service library) that causes sorts to return an initial
zero-length record as the first sorted record.  There is a work-around
for this in kwik.c, but it may be a general problem.

The old C pre-processor (mp) has been replaced by cpp.  mp sources
are in the miscellaneous directory, stored in mp.arc.

The programs are:

arch	The old (mostly obsolete) archive maintenence program.
	The data format is slightly different from the newer
	archc and archx programs.

archc	The new archive builder (reads files, writes an archive).

archx	The new archive extractor (reads an archive, writes the files).

build	Reads C source files, builds a command file to compile them.

comm	Compare the contents of two files, indicating what is common
	to both files, and what is different.  comm ? gives help.

cpp	C pre-processor with full functionality.  Usage:
	cpp [input [output]].  cpp replaces mp.  Follows the
	Draft Ansi C Standard and may be conditionally compiled
	to accept other "non-standard" flavors of cpp.  See
	the source code (especially CPPDEF.H) for details.

detab	Convert <TAB> to an appropriate number of blanks.

diff	Differential file comparison program, as described in Bell Labs
	C.S. technical report 41.

echo	Echo arguments -- used mostly to debug the compiler and
	run-time system.

entab	Converts a string of blanks to <TABs>.

fixdoc	For building the documentation.

getcmd	Reads filenames to build macro compilation commands.
	For maintaining Decus C.

getkwk	Builds index entries for kwik -- for building the documentation.

getrno	Reads C and macro source files,
	extracting runoff documentation source.

grep	"Global Regular Expression Pattern" -- search files for
	lines which satisfy an argument pattern.  grep ? gives help.

kwik	Kwik index program.  See kwik.rno/kwik.doc.  Link with sorts.c.

linepr	listing utility that writes a line-numbered output file.

mc	A multi-column print utility.

nm	Print "namelist" -- prints global symbols for an object module.
	Lots of options described in the source code, but nowhere else.

od	Octal dump of a file -- Options described in the source code only.
	As the RSX library doesn't mangle file attributes, some of the
	features don't work.  od dumps records on RSX, blocks on RT11

pr	Print with line numbers.

rnoidx	Converts the output of kwik to a form that can be processed
	by runoff ("quoting" special runoff characters, such as '#').

scat	Concatenate a list of files (accepting wildcards).

scopy	Clean up runoff output files and other files with strange RMS
	attributes.  RSX-11M and VMS only (needs file version numbers).

sortc	Sort a file.

sorts	Sort library routines.  Help in the source code.  Used by kwik.

t	File type (on a video screen) utility.  Run T and see.  Works
	well on a network virtual terminal.  Handles random RMS file
	formats.

uniq	Print unique lines from a file, uniq ? gives help.

units	Convert between various units.  Needs floating-point hardware.
	The first time you run it, it will compile the units database
	(this is a slow process).  Make sure the units database
	(units.txt, which becomes units.dat) is in a reasonable place.
	See the comments in the source code.

wc	Word/line/byte counter

xrf	Cross reference listing for C programs

---------------------------------------------------------------------------------
 [210,001]AAAREADME.1ST
----------------------------------------------------------------------------------------
MCE and CLE

These are command line editors for MCR and for MCR and DCL both,
respectively. All sources are present and these files implement
command line editing in RSX. Also present is a command file
CPMRSX.CMD which generates a CP/M format (8") disk read/write
utility for RSX. From David C. Guelet of Worren, Switzerland.

---------------------------------------------------------------------------------
 [270,001]AAAREAD1.
----------------------------------------------------------------------------------------
	This is a chapter newsletter article on
patching MCR's SET /SPEED command.
---------------------------------------------------------------------------------
 [271,100]README.1ST
----------------------------------------------------------------------------------------
(README.1ST)


	Machiavelli Systems / Wittenoom and Associates

		"B4S"  and "BASIC MINUS 2"

B4S is a preprocessor set up by Dean Elsner in an attempt to make BP2
compile and run at a finite speed and fit into a reasonable area of
disk at a time when both time and space were critical. 

There would be little justification for taking such a course on
today's hardware. However at the time (1982) it was a lifesaver. 
It could still be of great use to those with old, small, slow 
systems who are using Basic Plus 2..

B4S takes a file of basic code without necessarily any line numbers.
It inserts its own numbers as required, taking note of any numbers
which may have been included. This means that spource modules can be
made more easily portable, as line numbers can be effectively ignored
in most cases. 

B4S makes provision for "include" pre-processing, by including the
name of the required file in curly brackets. e.g.: 

	{BL:[101,5]FNFCSCHK.B4S}

This is very useful in the case of large MAP or COMMON definitions
which must be included in each of several modules.

A key link in trying to make Basic Plus 2 acceptable was to throw out 
RMS and write a series of BP2 and MACRO subroutines using the FCS
routines for file access. These have proved very successful in the
relatively straightforward world of engineering where there is no
great need for ISAM capabilities. These routines and the relevant
libraries are in [274,101]. A number of "include" modules treated
as library modules are in [274,105]. This system is referred to as
"BASIC MINUS 2" (BM2).

Typically, task file sizes were reduced by anything up to 75% (e.g.
from 240 blocks using RMS to 60 blocks using BM2. Task builds sped
up by a substantial amount (measured in cups of coffee).

A full example of how the basic minus 2 system is used is given in 
[274,6]. This area includes the sources for a Hardy Cross network
analysis utility written in "BM2" as an example only.

Much of our site's forward programming is in DECUS-C. However BM2 is
still used almost all the time by our young draftsmen for routine
engineering software development. We often find that the quickest way
to get something up and running is to throw it together in B4S and
when you know what is actually required, re-write it properly in C.
Meanwhile, your office has been making money with the interim B4S
utility. There have also been a number of times when I have faced a 
delivery deadline of 8 a.m., abandoned the C code in which I have
been trying to follow pointers off random parts of the end of the
earth, and written a quick hack in BM2 which worked slowly but
adequately in the morning.



				Richard Wittenoom
				3 Ord Street, West Perth 6005,
				Australia.
				Phone (0)9-3-222-777
---------------------------------------------------------------------------------
 [271,104]README.1ST
----------------------------------------------------------------------------------------
FLD:	FIXED LENGTH RECORD DUMP UTILITY
----------------------------------------
SOURCE: BASIC MINUS 2 (BP2 minus RMS using FCS I/O)

FLD dumps the contents of each byte of a fixed length record
threating it as though it were each of the possible data types.

Read FLD.HLP

Author: Dean Elsner, @ Wittenoom and Associates, 1982
---------------------------------------------------------------------------------
 [272,001]AAAREADME.AAA
----------------------------------------------------------------------------------------
	UIC LAYOUT FOR [272,*] ACCOUNTS AUSTRALIAN DECUS C FIXES
       ==========================================================


	[272,1%]	Chester Wilson's RT-11 Fixes
	[272,2%]

	[272,3%]	Dean Elsners RSX fixes
	[272,4%]

	[272,5%]	Richard Wittenooms RSX fixes
	[272,6%]

	These accounts Parralell the decus c distribution kit accounts
	the [5,*] account is the odd number first digit of the owner code
	and the [6,*] is the even number.

	eg [272,11] == [5,1]
	   [272,34] == [5,4]


---------------------------------------------------------------------------------
 [272,010]README.1ST
----------------------------------------------------------------------------------------
Interim C bugs disc					23-Sep-84


Bugs found (& hopefully corrected) by CGW

1) STDIO.H	Missing definition of _base

2) FCLOSE	Failed to flush a terminal

3) IOABUF	Allocated 82 words for a terminal buffer.  On output appended
		a <200> byte before using a .PRINT, but as it could have
		already used up all 82 bytes it clobbered the pointer word
		to the next piece of memory allocated, causing most weird
		crashes.

4) IOFOPA	Would not allow reading of "DEV:" alone.  Now allows this,
		and, if the user sets (global) $WRDV$ non-zero, will
		allow writing of "DEV:" alone also (treat with care!).



Bugs found & corrected before C came to me:

SEQEB  - M Leditschke:

Missing macros - added in new version of RT11.EIS (I also hacked RT11.EIS to
shorten the listings).

The SEQEB conversions are included in SEQEB.DSK.  A copy of their compiler
is included as CC.SAV, and their assembler as AS.SAV.



Other things on this disc:

C.OBJ	A combination SUPORT/CLIB containing the corrected routines

All rude remarks, comments, etc etc will be appreciated and read with
interest.

						Chester Wilson,
						71 Galatea St,
						Charleville 4470,
						Australia.

---------------------------------------------------------------------------------
 [272,030]README.1ST
----------------------------------------------------------------------------------------

	The [272,3x] and [272,4x] accounts are Dean Elsners bug
	fixes etc for DECUS C.

	ACCOUNTS AS FOLLOWS

	[272,30]	This account
	[272,31]   ==	[5,1]	<EMPTY>
	[272,32]   ==	[5,2]		<Headers, document, etc>
	[272,33]   ==	[5,3]	<EMPTY>
	[272,34]   ==	[5,4]		<Common library>
	[272,35]   ==	[5,5]		<I/O Library>
	[272,36]   ==	[5,6]	<EMPTY>
	[272,37]   ==	[5,7]		<Native RSX11M interface library>
	[272,40]			<RMS for DECUS C (sorry about the uic)>
	[272,41]   ==	[6,1]		<Software tools>
	[272,42]   ==	[6,2]	<EMPTY>
	[272,43]   ==	[6,3]	<EMPTY>
	[272,44]   ==	[6,4]	<EMPTY>
	[272,45]   ==	[6,5]	<EMPTY>
	[272,46]   ==	[6,6]		<Usefull subroutines>
	[272,47]   ==	[6,7]	<EMPTY>
---------------------------------------------------------------------------------
 [272,031]README.1ST
----------------------------------------------------------------------------------------
		Dean Elsners fixes for DECUS C

The accounts [272,30] - [272,47] are fixes for Decus C done by
Dean elsner. These are submitted for application to the DECUS C package.

[272,31]	ALGOL68.H

ALGOL68.H	I use this #include file to write C that my fellow
		programmers (at least until they are re-captured)
		can use and read. This was evolved when I had to
		pay professional rates to these people. Because of
		our style, the number of bugs we did not write 
		was very high.

		Examples of using this are all over these submissions.

---------------------------------------------------------------------------------
 [272,032]README.1ST
----------------------------------------------------------------------------------------
[273,12]	DECUS C *.H, *.DOC, *.HLP

QIOTTD.H	2 symbols added. Cosmetic fixes.

QIOFUN.H	1 symbol added. Cosmetic fixes.

F11MOR.H	Another Files-11 parameter file. Bitmap header.

DECUSC.DOC	Trys to briefly describe useful library functions.
		I regret it has some mistakes and many ommisions.
		Please re-submit any cleaned-up versions.
		I wish I had common lisp to do this automagically.
		Sort it by GINDENT.C, SOR.C, CLEAN.C .
NEWDECUSC.CMD	Example of the way I maintain DECUSC.DOC in order.
---------------------------------------------------------------------------------
 [272,034]README.1ST
----------------------------------------------------------------------------------------
[273,14]	This is the *.mac from [5,4] but edited to work in I/D space.
		Also other patches to [5,4] DECUS C stuff. Most patched files
		here have mandatory patches. No known bugs are caused by these
		patches.
-----------------------------------------------------------------------------
		The new C library is [1,1]CID.OLB derived from [1,1]C.OLB and
		the *.mac above.

C5TA.MAC	Convert rad50 to ascii.
		Changed psects: OK for I/D tasks.

IOGETC.MAC	Mandatory patch if you ever do sscanf(...%s .

LTOA.MAC	Convert long integers to ascii (various radices).
		Cosmetics + psect changes. OK for I/D tasks.

MALLOC.MAC	Allocate and free memory.
		Cosmetic psect changes. OK for I/D tasks.

MAMCHK.MAC	Veryify memory allocation pointers.
		Cosmetic psect changes. Simplify TKB maps.

PCSV.MAC	One day (like when I need it!) I will rewrite PCSV.MAC
		for I/D space. Until then: why don't YOU hack one for me?

RSX.MAC		I just use this to save time testing these mothers.
		Delete it from distribution.
-----------------------------------------------------------------------------

		Following patches are optional

INCHR.MAC	Corrects documentation bug. No code bugs.

ISALLO.MAC	Corrects documentation bug. No code bugs.
---------------------------------------------------------------------------------
 [272,035]README.1ST
----------------------------------------------------------------------------------------
[273,15]	These are updates to [5,5] of the DECUS C.
		[5,5] is the area for RSX-specific runtime modules.

		If you replace your DECUS C.OLB modules with these
		updates: I/D tasks should work for you.

		16-Jun-85: I have a bug in exec: $$wank in wank.mac
		will reveal all: I use this kludge so applications
		folks can have I/D while I work out why EXTK fails.
		25jul85: from other DECUS submissions, not my own investigation,
		I guess TKB is the culprit: unprivileged code can kill RSX
		and Crash Dump Analyser won't have a chance of understanding
		the mess. (Kernal D registers are mapped to K I-space!!)

ATOD.MAC	Ascii to double precision floating.
		Update so I/D tasks work: eliminate psects with "."
		in their names: such psects can't be touched with
		.psect lines in .ODL files.

ATODD.MAC	Dummy of ATOD: saves space if you don't need ATOD but
		things like printf() refer to it.
		Comments say I created it! What do other people use?

ATOF.MAC	Ascii to double precision floating.
		Modify psects so I/D tasks can work.

ATOFD.MAC	Dummy of ATOF: saves space if you need the globals
		but not the code.
		Psect'ed so I/D tasks can work.

C.CMD		Developed by a friend to keep the natives happy at a RSX
		site. (The secretaries have been seen debugging C programs:
		I think the site is now quite sophisticated.) C compile and
		link, minimum of fuss.

DELETE.MAC	File deletion. Invent unlink() entry for UNIX compliance.

DOSCAN.MAC	Re-code a switch construct in getnum: works much better
		on kinky 11's, 25-bit addresses, I/D etc.

DTOA.MAC	Use new version number. Use psects properly. Now OK
		for I/D tasks.
		000005:	make it really understand double precision.
		000006:	one of my crew wanted to change default
			field width: another %^$#@& 'feature' !
		000007:	make psects sane.

DTOAD.MAC	Dummy DTOA: give globals, saves code.

EXIT.MAC	Reconstructed from DOB'ed .OBJ files & out-of-date sources.
		OK for I/D tasks. **NEVER** use a dot in a psect name
		if you want current taskbuilder to change .psect attributes
		for you!

INIT.MAC	Again an unofficial version 000038, plus version 999999
		mods to call $$wank to patch around exec crashes at one
		of my sites. Works for I/D. v00039a does NOT GMCR$ unless
		it has to. $$narg=1; will stop it wasting (terminal wait)
		time doing GMCR$. Needed for truly phantom C utilities
		which must never do real I/O.

IOQIOW.MAC	Calls RSX exec. Change psect names. Helps I/D tasks work.

TENS.MAC	Doutab:: is a table of powers of 10 in floating point.
		My DECUS C tape never had one, so I guessed this must
		be about what they wrote.

RSX.MAC		If this file appears, it is a mistake. I sometimes keep
		it here to "simplify" assemblies. Delete it from
		distribution tapes.

SUPORT.MAC	Starts up DECUS C runtime system.
		Reconstructed from old sources and .OBJ files.
		Re-arrange psects so I/D tasks work.

UTIME.MAC	Yield a (almost) unix ascii time string. Change psect names
		so I/D tasks are easier.

WANK.MAC	Temporary patch so one of my RSX doesn't tangle its'
		kernal mapping registers. Pity the bug isn't useful:
		DEC's network security just might be secure.

		This module subsumes SBREAK.MAC or SBRK.MAC.
		Read comments.
---------------------------------------------------------------------------------
 [272,037]README.1ST
----------------------------------------------------------------------------------------
[273,17]	This is updates to DECUS C [5,7]: RSX exec calls.
		I only made the ones I need: I suspect someone
		else has done all of them. All these are OK for
		I/D tasks.

FEATURE.C	Tests gin(). Shows what features an exec supports.

GIN.MAC		Allows structured crashes of RSX.

GMCR.MAC	Total re-write! (Previous version could never work).

SFUIC.C		Test gin() SFUIC$ function.

TASK.C		Test gin() SFFTK$ fuction: give details of own task.

VSDA.MAC	Invented.

VRCS.MAC	Invented.

VSRC.MAC	Invented.
---------------------------------------------------------------------------------
 [272,040]README.1ST
----------------------------------------------------------------------------------------
[273,20]	RRMS, RMS


RRMS - a remotable RMS for DECUS C - 18th October 1984 Dean Elsner
					16th June 1985 Dean Elsner

The RMS package supplied with DECUS C has some drawbacks:
1	you must know at RMSsubs ASSEMBLY time how many files
	you want to use, and some of how you want to use them.
2	RMS can take up a lot of room in your task.
3	Memory that RMS MIGHT use some of the time is lost to your
	program ALL the time. (This is like FCS does if you just copy
	code from the I/O Operations Reverence Manual as is done for
	DECUS C run-time system.)

This RMS package dynamically allocates memory only as needed
and lets RMS use the C runtime system memory allocator (Malloc() and
friends) so there need be no conflict between RMS and your C program.

In lb:'<libuic>'rms.olb will be ForTran callable RMS subroutines
that let you do most anything with RMS. My C stuff uses them.

One flavour of this package keeps RMS code and buffers in your task
virtual address space. It lives inter alia on 11/23 RSX-11/M.

The other flavour uses a remote RMS: another task has RMS & buffers
while your task has applications code. The tasks use variable length
send/receive. It lives inter alia on 11/23 RSX-11M+.
A sub-package allows DECUS C to use variable send/receive exec directives.
This is V*.MAC.
The remote flavour will let you trace (to any file) transactions
between your application task(s) and the remote RMS server task.
The RRMSST just writes to stdout. You send it a message to toggle the
trace bit.

Both flavours use an IDENTICAL interface to your applications code, shown
in RMSDOC.H and demonstrated in RMSTST.C .

Bugs:
1	The code is sloppy. (I don't touch it until someone pays me!)
	I submit this because it seems so much nicer than current C/RMS
2	Variable Send/Receive doesn't happen on RSX-11M. This stuff is
	M+ only. However the send/receive is modular: roll your own.
3	As noted in RMS.H the RMS.C/RRMS.C module includes stuff most
	people don't need. Split it into maybe 20 smaller modules.
4	No support for records exceeding about 490 bytes.
	Such a package is brewing, but I don't want to release it
	to DECUS yet.
5	(Because I do kinky things to M systems) the logic of rmscs()
	explicitly creates a server task name. I should just use RRT
	instead of RRTtnn. Please change it if you like, the next
	release will do it different anyway. Now the next release
	has happened: you still need a call to rmscs(), which
	kickstarts lots of things.
6	General rampant featuritus. Most unUnixy.
	Sorry, I have been managed here: my public commands this slop.
7	NO SECURITY IS ATTEMPTED. Smart programmers may rape YOUR
	RMS files (or just inspect your transactions on the fly).
	Roll your own security, hooks are there.

Experience:
	Some really gross programs (My clients can write C with a heavy
COBOL accent) have run without overlays using RRMS. The RRMS server
task itself uses RMS.C . No known bugs. The system needs re-writing
for a nicer interface than this one, but my application programmers
don't want me to change anything. A CPM-86 version of these calls
also runs with no bugs known. A CP/M-80 version is around.
	The tracing and testing (RMSTRC & RMSTST) suffice to show
that all bugs reported in the past 13 months aren't in this stuff.
I can't think of any more feature(?)s to add to RMSTST/TRC.
Well... actually, an RMSDDT would be nice ... STOP THAT !!!

	June 1985. The COBOL reached critical mass. We decided
to use more tricknology to allow yet bigger applications. I
actually got paid to make DECUS C run I/D tasks. They never
needed that. Overlays were "too hard" because the "structured
applications code" could not adapt to the idea. Actually I
think it might have, but we didn't need overlays anyway.
	This crud works with I/D, supervisor etc. Seems robust.
Would somebody try DECnet? Tell me about the bugs.

	As always, a sensible "structured" version is coming
"real soon now". It takes me about 8 hours to test each new
version, so I won't make minor mods.

Maintenance:	+61(9)322-6048 Dean Elsner @ ML Silbert Ltd
		26 Queen Street Perth Western Australia 6000
		Telex (Aust) 9325       GPO Box S1525 Perth

More:	README.2ND is a flame. (removed to protect the guilty!)
	README.3RD is installation guide.
	README.4TH is a software bill of materials

Liability: Ha! Ha! I will try to help, but will NOT be liable for
any function or dysfunction of this software. When you feel sick
enough to re-write this software, send rewritten files to DECUS or me.
The first rewrite commands in TECO read HK ... .

ALSO: to confuse the enemy (that's you) RMSCHECK.C was part of
a desperate effort to scrape records from a disk for a government
which scrambled 5 years of records, without a backup. It worked.
Likewise G.C H.C I.C were used to re-construct RSTS RMS files. Worked.
		[end README.1ST]
---------------------------------------------------------------------------------
 [272,041]README.1ST
----------------------------------------------------------------------------------------
[273,21]	DECUS C [6,1] patches. [6,1] is utilities.

ADDAR.C		Adds groups of files to .ARC files.
		Someone built it because it was faster than AR.C

RIPOUT.C	Faster than AR.C to -x *.* from a .ARC file.

SCVTSOROC.MAC	SCREEN.MAC lobotomised to handle (ecch!) SOROC Challenger
		530 crts, which are barely SOROC compatible and NOT ansi
		compatible. Use as skeleton for other odd crts. Still works
		with ordinary crts.

UNIQ.C		You could crash uniq.c with (unusual) arguments.
		By adding ( ) uniq.c will not crash as much.

T1.C		Due to a Basic programmer specifying (non-ansi!)
T2.C		terminals for a client, I patched screen.mac.
T3.C		Then I patched T.C (TXX to RSX users) to do various
T5.C		minor tasks better. The patched modules (in full)
T.CMD		are here. Get the rest from [6,1]t*.* off a DECUS C
T.H		tape. It IO.ATT's the TI: so you can type ahead.
T.TKB		File attributes are better understood. Nicer ways
		to print or delete files.

--------------------------------------------------------------------------
		Yet another bloody attempt to mend sortc.c .

SOR.C		A kludge to replace [6,1]sortc.c, which is nice
		in theory but bugged in practice for big sorts.
		Believed to have much more graceful failure.
		Believed to tolerate bigger sorts before breaking.
		Only good for text records: loses anything past '\0'.

SORTS.C		Warmed-over [6,1]SORTS.C. Used with SOR.C.
---------------------------------------------------------------------------------
 [272,046]README.1ST
----------------------------------------------------------------------------------------
[273,26]	for DECUS C [6,6] - useful functions.

SASSOC.C		Map strings onto other strings. Used to reduce
			keywords to int size for table lookup etc.
			Crude associative memory for strings.
			Intended for maps known at compile time.
			If you want a run-time built mapping, try
			Jerry Leichter's TABLES.C in DECUS C [6,6].


ICSP.C			Weird character in string tester. Permits
			binary strings with embedded '\0's.

FSBUO.C			Implement Data General's "byte move (to self)
FSFUO.C			until ..." instructions. Scan strings with
FSTUO.C			various stop-scan conditions.
FSBUI.C
FSFUI.C			They conform to FS???? conventions of V24 things.
FSTUI.C
---------------------------------------------------------------------------------
 [273,001]README.1ST
----------------------------------------------------------------------------------------
[273,1]		Roadmap to [273,*] from Dean Elsner.

		These are my contributions to Australian 1985 tape.

		Because I might be held responsible for some of these
		indecent acts (committed in the form of psychotoxic
		programs) I dare not attend DECUS this year.
		If I can stay ahead of the Customs, Tax, Police and
		Mental Hygene people, I hope to submit some commercially
		useful stuff for the next tape. It is still being
		debugged.

CONTENTS.UIC	A quick guide to my stuff.



Another Note from Bruce cook [21-APR-1986 12:41:52]
Dean Elsner is now at MIT, an therefore cannot be contacted
in Perth at M.L. Silberts. If you realy wish to contact him, contact

The Nice Computer Company of Australia
GPO Box S1517
Perth 6001,
Australia
----------------------------------------------
 [273,002]README.1ST
-------------------------------------------------------
[273,2] experiments in terminal serving with DECUS C RSX11M+.
Looking for various timeout tricknology.

Rational.c is the result of this. It gives unechoed timedout input of
a char from keyboard. I never got the multi-terminal server going.
Note that you get 8 bits from a keystroke - beware strange terminal modes.

SET /RPA=TI: is bloody dangerous - beware of it. ie ^C for MCR will fail.
Try SET /EBC=TI: if you need 8 bits. (which will catch ^C but is nicer).
----------------------------------------------
 [273,003]README.1ST
-------------------------------------------------------
[273,3] lun.c - routines to manage LUNs in an rsx decus-c application

		No longer a mess, but still not useful I think.
		Many conceptual bugs. I hope the interface will
		be stable, but the guts WILL be rethought. Maybe
		what I want to do is "unnatural" for RSX.

LUN		Manages the LUN resources of a task.
		LUNFIX()	begin, internal
		LUNATTACH(dev)	Allocate, return Lun #
		LUNDETACH(lun)	Free up Lun
		LUNRESERVE(lun)	Note we may not use said Lun

GETBIT.C	Extract bit from vector
PUTBIT.MAC	Force bit into vector. "C" version won't compile straight.

LUN.OLB		Library of LUN things to build against.

LUNTST.C	Tests above.



A Note from BRU (No not that confounded DEC [f]utility)

A lun allocation package, the fits in with the DECUSC C library, has been
submitted by Bruce Cook. This is probably a better solution, though the
function names may not be appropriate. 
----------------------------------------------
 [273,010]README.1ST
-------------------------------------------------------
[273,10]	CPM

This is CPM.C, a DECUS C (and many 8080 Cs) compatible kludge
that reads/writes/modifies CP/M diskettes.
I use it on RX01s to diddle standard CP/M 8" floppys.
I know DECUS is wretching with CP/M diskette readers, but I include this
because: (1) you can #include cpmoscpm.h to do a BDS C version
of this program for your 8080, and (2) I haven't seen one done in
C.
If DECUS C's wild cards worked, this would be much better.
Because I pranged DECUS C's quick-sort routine, a crude bubble sort
is used instead.

A program to drive RX01/02/03 diskette drives to use
CP/M(sic(k)) standard diskettes. Diskettes are electromagnetically
equivalent to IBM 3740 standards. Program does detailed or brief
directories. Binary or text input or output are supported. Help
is in the program. Wildcards are supported. Beware DECUS C wildcards
for RSX: needs a total rewrite! Initialising diskettes or deleting
(wild) files is easy. The program is in production and has been sold.
No known bugs or deficiencies. Design suggestions welcomed. Contact:

	Dean Elsner			Dean Elsner
	M L Silbert P/L			Rent-A-Mind
	26 Queen Street			Box T 1680
	Perth 6000			GPO Perth 6001
	Western Australia		Western Australia

	phone: +61 (9) 322 6048		phone: +61 (9) 271 9014
----------------------------------------------
 [273,030]README.1ST
-------------------------------------------------------
[273,30]	DTC stuff. (corrections to old decus tape)


 [312,365] is the Desk Top Calendar area.

Find DANY.FOR being corrected version of [312,365]DANY.FOR.
Corrected bug is for leap year accounting.
Now January 1985 starts on Tuesday like it should, not on Monday
like before.

Find DTCAT.FOR, YEAR.FOR, DAY.FOR all correcting cosmetic bugs.

Dean Elsner, M L Silbert Pty/Ltd. +61 (9) 322 6048.
26 Queen Street
Perth Western Australia 6000.
----------------------------------------------
 [273,031]README.1ST
-------------------------------------------------------
[273,31]	Quick and dirty re-construction of stuff for
		Chris' C sickness @ MLS

WOTTY.MAC	Returns the terminal type (SF.GMC,TC.TTP)
----------------------------------------------
 [273,032]README.1ST
-------------------------------------------------------
[273,32]	Attempt to explore gmcr$. object: long command lines and less
		editing of command lines by MCR and other CLIs.

		Aim of this project is to re-write FRC (force) program.
		I want better stropping of magic characters, and long command
		lines.

INIT.MAC	SPECIAL. Does no GMCR$.
		Subsumed & obsoleted by (Bruce Cook inspired) patch
		to init.mac so gmcr$ is not done if $$narg is TRUE.
		cf [273,15]INIT.MAC or DECUS C [5,5].
----------------------------------------------
 [273,040]README.1ST
-------------------------------------------------------
[273,40] BINCMP

	Compares two Files-11 files in binary. Crude tool.

	Good to test equality. Verbose if files are different.

	Comparison is byte by byte. Whole of EOF block is
compared: this is a feature not a bug. Use this (f)utility
if you cannot be bothered using CMP on two outputs from DMP
simply to see if two files contain the same data.
----------------------------------------------
 [273,041]README.1ST
-------------------------------------------------------
[273,41]	Command file modules to assist installing packages.

These in*.cmd files run on RSX-11M/M+ and help me make install
command files for other kludges i submit to DECUS etc.
What do you think? Are they worth using?

The 'reason for existence' of these files is that unlike simple commands e.g.

	MAC foo=bar

these commands will (a) complain in english(?) about any problems
		    (b) pause so you can fix the problem
		    (c) re-try the failed command and keep on trucking.
By using these macro-commands, you can build quite robust command files
that cope with many flavours of RSX (assuming a wizard is available to
pick up command files that fall over).
Features (frobs) of these command files include
-	automatic clean-up of intermediate files if desired
-	automatic back-out of the install process if desired (not perfect)
-	a list of what the install file needs, and what it will do

The table sumarises the commands as I use them.

p0	p1	p2	p3	p4			does

inc	prg	wot				xcc prg -a
incl	prg	wot	lib.olb	wot		@inc prg wot
						@inl prg wot lib.olb wot
inh	foo	wot				pip [1,1]=foo.h
ini	tsknam	$tsk	wot			ins $tsk/task=tsknam
ink	proc	wot				pip '<libuic>'=proc.cmd
inl	prg	wot	lib.olb	wot		lbr lib.olb/in=prg
inm	prg	wot				mac prg=prg
inml	prg	wot	lib.olb	wot		@inm prg wot
						@inl prg wot lib.olb wot
inmp	prg	wot	pre1	...		mac prg=pre1,...,prg
inmpl	prg	wot	lib.olb	wot	pre...	@inmp prg wot pre...
						@inl prg wot lib.olb wot
inn	lib	wot				lbr lib/cr
int	tsk	wot				pip lb:'<libuic>'/nv=tsk
inx	fil	wot				ensure file exists

#1	cleanup instructions
#2	backout instructions
#3	requirements documentation

inn.cmd expects lbr to be installed, checking this nests at. too deeply
use ini.cmd to check lbr before @inn
----------------------------------------------
 [273,042]README.1ST
-------------------------------------------------------
[273,42]	Offspring tasks in DECUS C.

CSPAWN.C	Contains a main() to test  cspawn(), which will spawn a task
		and wait for it.
		I use this a lot so applications programmers can call up
		MCR commands from inside their programs: you don't write
		fspool() when they can spawn to mcr... "PRI foo/DE" .

CHAIN.C		Equivalent routine to give a command and EXIT.
		Again some applications programmers think it useful,
		particularly for micky-mouse menu programs (yes virginia,
		people still do menus in 2nd generation languages!)
		that just dispatch to a worker program.
----------------------------------------------
 [273,043]README.1ST
-------------------------------------------------------
[273,43]	REODER.C utility.

This utility is called REODER for historical reasons.
It should be called RE-ORDER.
It is a C utility that re-arranges lines.
REODER has power somewhere between sed and awk.

The idea is that you get one output record for each input record.
An output record is a concatenation of fields.
Each field is manufactured from a recipie given on the command line
(the recipie may include constant strings) and from data in one input line.

Uses of reoder are to e.g. pull a column out of a report (PIP/FU), and
to re-arrange one utility's output before use by another utility.

I paid big $ to have this kludge written, and it has made my work much
easier doing simple commercial data processing. I often suck down raw
magtape data and use reoder to re-arrange each record before processing
with standard utilities.

Read XFIELD.C for details of field building.
Read REODER.C for details of comand lines.
Tested OK with DECUS C.

Stop press: new version of REODER even has a manual. (and a .hlp yet!)
----------------------------------------------
 [273,044]README.1ST
-------------------------------------------------------
[273,44]	Get Command Line demos.


These kludges are adapted from a Get Command Line (ForTran-callable)
subroutine originally used with BASIC+2 and now used with DECUS C.
Demo program provided.
----------------------------------------------
 [273,046]README.1ST
-------------------------------------------------------
[273,46]	Tape vivisection programs.

		These will read (fast enough) lots of different
		tape formats. One day I will double-buffer them.
		(22jun85: Maybe I won't double-buffer them. My
		problem is that I want the tape to stop just
		after a bad record. If I double-buffer, the 2nd
		QIO might read the next tape record before I
		inspect the damage; then again it might not.
		Will think it over.)

		I use these for media conversion, typically of
		fixed-field-length records. They work with no
		problems. Improvements are solicited.

		For many of my media conversion programs, I use a
		disk file layout with R.VAR where 1 record of
		disk matches 1 tape record.

		These programs evolved when I paid by wall-clock time
		for use of a PDP-11. So I would set mylar spinning
		then write the other half of a medium conversion
		program while the tape(s) poured onto disk. I.E.
		speed and reliability overrode simplicity.

		I found MAG SET unusable for some tasks and just used
		these trusted kludges.

ASCII.H		Ecch.

B2T.C		Copies a disk file to tape.

CASCII.H	Table to convert EBCDIC to ASCII. (Always a good idea!)

REW.C		Rewind to BeginOfTape.

SPB.C		Space along tape +-n blocks. IO.SPB .

SPF.C		Space along tape +-n file marks. IO.SPF .

T2B.C		The original and best. Wizards only.

T3B.C		A nicer tape reader, with simpler commands.

ANSID.C		Turn T2B output from ANSI "D" format tape into F.CR R.VAR.
----------------------------------------------
 [273,050]README.1ST
-------------------------------------------------------
[273,50]	TAR format tape untanglers.

		I paid $60.00 for a modula 2 compiler (in M2).
		The tape was some kinky TAR format (I think BSD4.2)
		so I used this to untangle the mess.

MODULARIP.C	Shame on you for using this to rip off unix tar tapes!
		This program assumes T2B or similar has already read
		the tape to disk for us.
		The DGT program is also good at TAR tapes.

MYTAR.C		Prototype TAR tape reader. Unlike the DECUS C
		distributed reader, this one understands file
		aliases: "linked files" in UNIXese.

SUCKER.C	Unknown TAR tape reader from the dark ages. Untested.
----------------------------------------------
 [273,051]README.1ST
-------------------------------------------------------
[273,51]	Disk(ette) vivisection, ignoring file structures.

		I never used these except to re-build corrupt
		XXDP diskettes etc. Would someone in DECUS please
		give us a decent TECO in XXDP?

		Binary file format is like T2B: 1 R.VAR record matches
		1 diskette block.

B2F.C		From binary file to floppy.

D2B.C		From DEC disk (512 bytes/block) to binary file.

DREDGE.C	Prototype disk recovery program. Never used to
		my knowledge.

F2B.C		From floppy diskette to binary file.
----------------------------------------------
 [273,052]README.1ST
-------------------------------------------------------
[273,52]	Empty directory (f)utilities.

		I use these to help clean up disks. 1 gigabyte is
		not enough for pdp-11 DECUS software. I will need
		perhaps 10Gb if I ever play with VAX DECUS software.

MTD.C		Gives a list of empty directories on a disk.
		I use it when I have finished using a DECUS tape
		that I copied down. I delete contents of directories
		as I work through the tape. When I am done this
		helps me make a command file to delete the empty
		directories themselves.

NED.C		This gives a list of all directories on a files-11
		structure (ODS-1 actually) and the number of
		entries in each directory. Remember that the
		number of directory entries is not related to any number
		of files concept in files-11.
----------------------------------------------
 [273,053]README.1ST
-------------------------------------------------------
[273,53]	Kludges for a letter quality printer.

		These have nothing to recommend them except 2 users
		like them: one is cyber-wise and the other is a
		digital virgin who is afraid to turn her terminal on.

MAILMERGE.C	Simple way to merge mailing list (rather free format)
		and a template to produce mail labels, form letters etc.

PAGETYPE.C	Types letters a page at a time, and waits while you
		hand load the next page into a letter-quality printer.
		When laser printers are common we can kill this program.
		Also allows typing selected pages of a document, in
		case you goof on a few pages.

SPC.C		Print files but indented 'n' columns. Users like it
		because unlike PIP they need not specify explicit
		output file.
----------------------------------------------
 [273,054]README.1ST
-------------------------------------------------------
[273,54]	Telex (5-hole Baudot code) routines.

		A client uses these to prepare telexes with a
		PDP-11 then punch a telex tape. Ditto to read
		telex tapes into a computer. Our reader/punch
		is a TTY-33 with tape reader punch. We use a
		paper clip to narrow the reader/punch for 5-hole
		tape, since 33's are built for 8-hole tape.

TLR.C		Read a baudot tape.

TLP.C		Punch a baudot tape.

TLX.CMD		Set up a terminal for this

SHUTDOWN.CMD	Demo what mantra to feed RSX to let these programs work.
		This is what you say AFTER using telex programs.
		It tries to turn ASR33 back to a VDU terminal.

SHUTUP.CMD	Demo what mantra to feed RSX to let these programs work.
		This is what you say BEFORE using telex programs.
		It makes TT: driver happy.
----------------------------------------------
 [273,055]README.1ST
-------------------------------------------------------
[273,55]	Various skeleton filter programs.

BORING.C	Classic. getchar() putchar() ... EOF

F.C		Fgetss(). Fputss().

FALTER.C	Fgetss(). Fputss().

FILTER.C	Fgetss(). Fputss(). Use to sort out kinky files
		with more than one line/record.

FILTERIN.C	Fgetss(). As for filter.c, but does no output.

UFILTER.C	You must name the files. I/O redirection won't work.
		Fast as they use fget() & fput(). Binaries work
		pretty well, but kinky many lines per record files
		will lose.

UFILTER2.C	Fails for binary files. Fast as it uses fget() &
		fput(). I/O redirection works.

UFILTER3.C	Nicer UFILTER2. Modular get & put of records. Still
		useless for binary files. Still redirects.

UFILTER4.C	Modular. Ultimate weapon for speed. OK for binaries.
		No redirection. NO '\n' funnies. Recommended skeleton
		for production stuff.

UFILTER5.C	As UFILTER4, but seperate input & output buffers.
		Recommended skeleton for production stuff.
----------------------------------------------
 [273,056]README.1ST
-------------------------------------------------------
[273,56]	Various filters.

		I know most of these are trivial. But I keep my
		filters in one bag so I can find a good filter fast.

CLEAN.C		Fast way to lose all weird embedded control characters
		from text records. TKB, PIP/TB, RNO output is messy
		with embedded [\r\n\0] characters.

COAGULATE.C	Untangle very complex '\r' '\n' s in big block
		files. Like CLEAN.C but allows weird control characters
		to pass through.

FF2LF.C		Read a file, changing form-feeds to line-feeds. Optionally
		assumes 66 lines/page. (Metric A4 is usually 70).
		*** full of CONCEPTUAL bugs. files-11/unix don't mix. ***

FUNNYOCT.C	Inverse of FUNNYTEXT.C.

FUNNYTEXT.C	Turn a readable ascii file into binary. Used a lot
		for loading smart terminals, front panels etc from
		a human-readable file.

GINDENT.C	Group a master line and detail line(s) into one line.
		Detail lines are indented lines after master line.
		Use CLEAN.C to untangle back to original text.
		Mostly use GINDENT, SORT, CLEAN to sort files like
		this readme.1st.

INORDP.C	Determines if lines in a file are in sorted order.

ISSORTEDP.C	Print lines in a file that are out of order.
		Tests if a file is sorted. Only known use is for
		highlighting buggy sorts (a usual problem here).

LASTREC.C	Will (one day) be re-written to give the "n" last lines
		of a file. Does it the hard way, by reading whole file.

LUMP.C		Catenates groups of lines according to simple rules.
		Helps reduce many cards per record files into 
		1 "card" per record files, suitable for reoder.c .

NLI.C		A sophisticated version of LUMP.C. Reads input in
		m-line groups, and makes output in n-line groups.
		One use is to get 6 lines per label in a mailing list
		regardless of how many lines are used for the address.

NOENDSPAC.C	Removes trailing spaces (NOT tabs etc) from lines.

NO2SPACE.C	Trivial futility to supress groups of spaces. Each such
		group is reduced to 1 space. Useful for micro-computer
		files that have lots of junk in them.

PAD.C		Widen records in a file to specified length.

PGCOUNT.C	Count number of formfeeds in file. One day, will understand
		page size in lines too!

RECCOUNT.C	Count the records in a file.

RECPROFIL.C	Output record lengths of input records.

RECSIZ.C	Turn R.VAR FD.CR records into R.FIX FD.CR records.

REV.C		Reverse each line in a file. Only here we reverse each
		record (RSX FCS Files-11 sense of record).

RSPLIT.C	Chop a file up into "n"-line lumps.

SPLIT.C		Split a big file into smaller files. Each small file
		is approximately 'n' blocks. Ideal for chopping up
		a magtape full of data for transport by e.g. floppys.

UPCASE.C	Fold alphabetics to upper case.

WRAP.C		Turn lines over a certain length into >1 short lines.
		Frobs include prefixing both 1st and subsiduary lines.
		Created to cope with printing 400+ character records
		on a narrow lineprinter, catching all the details.

XTRACTREC.C	Gets a bunch of records from the middle of a file.

2ASCII.C	Ebcdic -> ASCII. Primitive, due for re-write.

3GREP.C		Extract records that begin with a certain 3 chars.

3OCTAL.C	Just print 1 char per line, rendered as %03o.

7BITS.C		Strip parity bit of characters in a file. Common
		problem if you import WORDSTAR documents.

ASCII.H		Ebcdic -> ASCII table.
----------------------------------------------
 [273,057]README.1ST
-------------------------------------------------------
[273,57]	Playing with RSX send/receive directives.

		Demos of send/receive. No known use.

CHAT.C		General purpose.

RECV.C		Needs SEND.C .

SEND.C		Needs RECV.C .

BABBLE.C	this slime was a prototype for eg DEQ.C.
 GABBLE.C
 ABBLEV.H	Play with vsda$, vrcs$
 ABBLE.H	Crude play with send, receive, unstop etc.
----------------------------------------------
 [273,060]README.1ST
-------------------------------------------------------
[273,60]	Double Ended QUEue.

DEQ.C		Implements a deque. Your tasks sends/receives with it.
		One client used it to save memory in a basic+2 program.
		Each element in the deque is only 12. words, but at least
		it ports to RSX11M.
		No protection or privacy. 1 tasks implements 31. deques
		each of which is a public resource. Tracing provided.
		Tracing is great to debug application programs (because
		anything 12. words wide is a well-defined interface.
----------------------------------------------
 [273,061]README.1ST
-------------------------------------------------------
[273,61]	FIles-11 Header bashing.

FID.C		Now subsumed by srd/fi, but was used when you knew
		the file number and wanted to know the current
		usage count number of a file's FID.

		No known use except as an example.

UNDELETE.C	Never finished. Subsumed by UND.MAC etc.

FIND.C		Report all file headers that have a text name that
		matches an ambiguous file specification.

---		I have not included (this time) my CPM-80 programs
		that do ALL files-11 tricks. Write me if you want them.
----------------------------------------------
 [273,062]README.1ST
-------------------------------------------------------
[273,62]	METER.C

		Helps remind me when a parking meter should be fed.
----------------------------------------------
 [273,107]README.1ST
-------------------------------------------------------
[273,107]	Ring Buffers

RB.C		Library routines to handle ring buffers of items,
		where all items in a ring buffer are the same size.
		Different ring buffers can have different item sizes.
		Use DECUS C tool GETRNO to get documentation.

RB.H		Needed for use with struct "rb".

RBTEST.C	Crude test & demo of RB.C.
----------------------------------------------
 [273,110]README.1ST
-------------------------------------------------------
[273,100]	IBM interchange things.

EBCDIC.HLP	Table of Ebcdic characters. Needs better format.

EBCDMP.C	Dumps a file as DMP would /RC but converts EBCDIC to
		ASCII.

ASCII.H		Table for C programs. Converts EBCDIC byte to ASCII byte.

EBCDIC.H	Table for C programs. Converts ASCII byte to EBCDIC byte.

SAVELIBR.C	Knowledge of IBM SAVELIBR format diskette files.

?		Sundry other "work in progress" for IBM conversion.
		A project I didn't include is a COMPLETE RPG environment
		for DEC computers. Assists conversion from IBM to a
		computer.
----------------------------------------------
 [273,111]README.1ST
-------------------------------------------------------
[273,111]	Dean's HEX protocol for booting kermit etc.
----------------------------------------------
 [273,112]README.1ST
-------------------------------------------------------
[273,112]	Indirect files. Mainly file scrubbing.

BALLSUP.CMD	Report file errors to user, execute recovery code.

KILLFILE.CMD	Unprotect then delete a file.

KILMTDIRS.CMD	Delete any empty directories.

WANT2USE.CMD	Try various INStall commands to find FSL, RES etc flavours
		of a task, then install it.

WHOGOTWOT.CMD	Reports disk usage (blocks & files per UIC).
----------------------------------------------
 [273,114]README.1ST
-------------------------------------------------------
[273,114]	Demo many ASTs doing cute things.

		Keyboard ASTs feed a ring buffer.
		Time-out ASTs milk the ring buffer.
		Offspring status ASTs tell us when a worker task has
		done it's thing.

1.C		Demo astset() astx(), using MKRT$.

2.C		Demo type-in asts, and time-out asts.

3.C		Demo type-in asts, and timeout asts, with a common event flag.

4.C		3.C, + background worker task emmitting status. Fun.

5.C		Demo Send, Request and Connect SDRC$.

		All this slime is a demo for a nice user-resistant terminal
		server. (Being written, but not yet fit for DECUS. Watch your
		tapes. If I haven't died by the time we perpetrate the NEXT
		bloody Australian tape, it will be there.)
----------------------------------------------
 [273,117]README.1ST
-------------------------------------------------------
[273,117]	.CMD files.

RMS2TEXT.CMD	Convert RMS indexed file to text, for editing.

RMSCLONE.CMD	Create an empty RMS file, with the same "shape"
		(attributes in Files-11speak) as an existing file.
		I let computer-naieve users set up their directories
		with this command file. No disasters so far.

BALLSUP.CMD	Universal file error reporter, corrector.

WANT2USE.CMD	My utility to try installing various flavours of a task.
		(e.g. PIP, PIPRES, PIPFSL, PIPFS5, etc.)

NEEDVT.CMD	Demands a ANSI tube.

CONESTAT.CMD	I read a manual, and tried to get CON to emit status.
		Ecch! I can see why the IND people gave us .TESTDEVICE!

BACKUP.CMD	Example command file using much of above. Backs up
		a single UIC using BRU.

QUICKSAND.CMD	Just in case some other .CMD file refers to it.

C.CMD		DECUS C users will love this. Lets raw idiots (i.e. your
		typical applications programmer, who in another time would
		have been a clerk with a quill pen) use C compiler and
		fast taskbuilder without knowing what they are doing.
		It saves me time because I am a slow typist. Was
		originally written because some secretaries at one of my
		sites taught themselves C and RSX to avoid taking insults
		(in the form of software) from various computer stores.
		I didn't write this version, but it represents a collective
		frob.

EXISTTEST.C	Used by command files to check file existence.

----------------------------------------------
 [273,120]README.1ST
-------------------------------------------------------
[273,120]	Disk Manipulation. Not bound to any On Disk Structure.

DREDGE.C	Obtain some data from contiguous disk blocks.
		** UNTESTED **
----------------------------------------------
 [273,122]README.1ST
-------------------------------------------------------
[273,122]	Kermit things.

This kermit.hlp is the distributed k11.hlp with annotations about what
subtopics you may summon from help (DEC-11 help is too dumb to do this for you.)
I install this for on-line documentation users as well as using k11hlp.hlp for
within-kermit help. I know this is trivial, but I wish they had done it and put
it on the distribution tape. 


BUG WARNING about kermit 11 help files. K11HLP.MAC does an open for both read
and WRITE(!!) on the [1,2]K11HLP.HLP file. So PIP [1,2]K11HLP.HLP/PR:0 or the
mother will fake a ER$FNF when it can't get write-access  and you will wonder
why it can't find the file. 
----------------------------------------------
 [273,200]README.1ST
-------------------------------------------------------
Wittenoom and Associates/Machiavelli Systems
--------------------------------------------

[273,200]		DECUS C Documentation

This account was created for the purpose of documenting the libraries in 
[273,201]. There are command files to build documentation, and runoff header
files for each of the documents in [273,201]. These command files have been 
generalized so that they will document any set of routines with the DECUS 'C
documentation standard.

	MAKDOC.CMD	This command file creates a manual for a specified set
			of routines.
			Format :
				@MAKDOC lisfil
			LISFIL is a file containing a list of functions to be
			placed in the document. The name of the file is carried
			through to be used as :
				1. Name of document header files
					[lisfil]1ST.RNO
					[lisfil]HDR.RNO
				2. Name of the created .RNO and .DOC files
					[lisfil].RNO
					[lisfil].DOC
				3. Name of the Function index file output
					[lisfil].IND
				4. The device name and uic specified in the list
				   File spec. is used as the default for the
				   'C source file specification.
			The account you are logged into is the account that
			the output files are created on.
		This function assumes that all source files are 'C, perhaps
		someone would modify it to copy with macro source files as 
		well [very little to change].


	MAKFNLIS.CMD
		This command file creates A .IND file as above, without the
		documentation the same rules for the file name apply as above


	LSTNOTDOC.CMD
		This command file is meant to find un-documented files...
		It FAILED ... would someone please fix it.


	FNAMEPARS.CMD
		This command file gets a file name passed to it and strips it 
		into it's various componants.
		Is called by
		.SETS DEFDEV "defualt device name including colon"
		.SETS DEFUIC "default uic including brackets"
		.SETS DEFEXT "default file extension including period"
		@FNAMEPARS/LO filename
		;	DEV 	has resolved device name
		;	UIC 	has resolved uic
		;	FILE 	has file name
		;	EXT 	has resolved file extension
		;	FILNAM	has composite file name with resolved items



	BATDOC.CMD
		This command file creates a command file to submit to the batch
		to create documentation. The format is
		@BATDOC lisfile destin
		Where lisfile is the listing file to search through same as
		MAKDOC, and destin is the device/uic specification of where
		the documentation is to be put



	GO.CMD
		This command file changes the default device/uic. Format is :
		@GO DEV:[UIC]
		Brackets are not nessacerry for the uic, and the uic may be 
		spaced apart from the device.


	*.DOC
		These are the documentation for the lirarys in [273,201]


	*.IND
		Indexes for the functions in the lirarys in [273,201]


	*HDR.RNO
		This is the header file placed before the index of a document
		for the particular libraries.


	*1ST.RNO
		This is the header placed at the front of the documentation for
		the particular libraries.


	*.TSK
		These are the programs used to extract the documentation from
		the libraries, and make them into a runoff file.
		[ DECUS C distribution ]

----------------------------------------------
 [273,200]README.ALL
-------------------------------------------------------
[273,200]		DECUS C Documentation

This account was created for the purpose of documenting the librarys in 
[273,201]. There are command files to build documentation, and runoff header
files for each of the documents in [273,201]. These command files have been 
generalized so that they will document any set of routines with the DECUS 'C
documentation standard.

	MAKDOC.CMD	This command file creates a manual for a specified set
			of routines.
			Format :
				@MAKDOC lisfil
			LISFIL is a file containing a list of functions to be
			placed in the document. The name of the file is carried
			through to be used as :
				1. Name of document header files
					[lisfil]1ST.RNO
					[lisfil]HDR.RNO
				2. Name of the created .RNO and .DOC files
					[lisfil].RNO
					[lisfil].DOC
				3. Name of the Function index file output
					[lisfil].IND
				4. The device name and uic specified in the list
				   File spec. is used as the default for the
				   'C source file specification.
			The account you are logged into is the account that
			the output files are created on.
		This function assumes that all source files a C, perhaps
		someone would modify it to copy with macro source files as 
		well [very little to change].


	MAKFNLIS.CMD
		This command file creates A .IND file as above, without the
		documentation the same rules for the file name apply as above


	LSTNOTDOC.CMD
		This command file is meant to find un-documented files...
		It FAILED ... would someone please fix it.


	FNAMEPARS.CMD
		This command file gets a file name passed to it and strips it 
		into it's various componants.
		Is called by
		.SETS DEFDEV "defualt device name including colon"
		.SETS DEFUIC "default uic including brackets"
		.SETS DEFEXT "default file extension including period"
		@FNAMEPARS/LO filename
		;	DEV 	has resolved device name
		;	UIC 	has resolved uic
		;	FILE 	has file name
		;	EXT 	has resolved file extension
		;	FILNAM	has composite file name with resolved items



	BATDOC.CMD
		This command file creates a command file to submit to the batch
		to create documentation. The format is
		@BATDOC lisfile destin
		Where lisfile is the listing file to search through same as
		MAKDOC, and destin is the device/uic specification of where
		the documentation is to be put



	GO.CMD
		This command file changes the default device/uic. Format is :
		@GO DEV:[UIC]
		Brackets are not nessacerry for the uic, and the uic may be 
		spaced apart from the device.

	I have since found a bug in MAKDOC.CMD :
		Every time GETRNO starts up, as a matter of course, it sets
		up headers etc for RNO. This has the effect of putting the
		header line for a page of documentation onto the next page,
		therfore putting the header line out by one page throughout
		the document. I havn't had time to bash this bug [ I think
		that I will have to put another switch into GETRNO ] so if
		someone thinks it's worth doing, please send me a copy.
		...BRU [No not that DEC f[]utility, Bruce Cook].
----------------------------------------------
 [273,201]README.1ST
-------------------------------------------------------
WITTENOOM AND ASSOCIATES/MACHIAVELLI SYSTEMS
--------------------------------------------
	This account is a set of utility routines and the command
	file to build them (used at RWA).
	
----------------------------------------------
 [273,202]README.1ST
-------------------------------------------------------
[273,202] 		Bruce Cook Garbology

	A collection of files from my account doing various things.
	I promise this account will be cleaned up next time arround.

	MEMDUMP.C	Dump a block of memory to ti: in hex

	PURGE.C		Purge all redundant files in account by spawning
			pip under a different name.

	MASK.C		Create a character mask for ti: input QIO's
	QIOMASK.C

	RENAME.C	Rename a file from 'C [old cludge uses pip]

	SPEED.C		Set the serial port on a KAYPRO II [BDS C]

	ASTACK.DAT	Description of the C stack after an AST in C

	ASTSIT.MAC	Functions to terminate routines in mid-execution
	SAVPOS.MAC	Primitive -- will have a better version next time
	STOPIT.MAC

	FCALL.MAC	Macro to call fortran-1v routines

	VARSENREC.MAC	C variable send/recieve functions

	GCL.ULB		Gcl under Decus C [with example program]

	ATOD.MAC	Fixes for Decus 'C routines
	SPWN.MAC
	SPAWN.ULB

	NTWS.C		Filter to remove trailing white spaces from a file
			[ good for those people who leave ws arround with edt]

	NLWS.C		Filter to remove trailing whilte spaces from a file
			[ good when re-tabbing a file]

	FILEDMP.C	This routine dumps all known information about a C
			File header & associated info, to a specified output
			file. It's usefull

	LGR.C		This program is basically a username driven notepad
			program. Very usefull for logging bugs, needed utilitys
			time sheets etc.

	HMM4.C		This is a filter that reads text in, making sure that
			a line isn't greater than 132 characters, if one is,
			a newline is places at the 133th position

	LP.C		This is a program to generate pages of Line printer
			test data. Good for checking print heads.

	PHELP.C		This program gets a help file, and turns it into a
			doc file. It knows about all the standard help file
			operators, and will take care of nested help files.
			It's output does not contain formfeeds, and therfore
			will work on DECWRITERS etc. Any formfeeds in the input
			file are also converted to linefeeds. Output is
			categorized in sections depending upon the documentation
			level.

	PRINTABL.C	This filter reads a file from stdin, and outputs it at
			stdout, with any non-printable characters as periods.
			this is usefull for editing DTEXT.DAT and other files
			with bits of binary in them.

	QUEUE.C		This module inmpliments a queue system for C.
			Usefull for many applications. Queue's are opened
			like a file, so seperate queues can co-exists easily
			exist.
	
	SCAN.C		This program scans the lights on a VT100.
			It is usefull when run at a priority of 1. for testing
			system load.
----------------------------------------------
 [276,001]README.1ST
-------------------------------------------------------
Files in this area contain the Murdoch University data logging
system. Basically there are two systems.

            Laboratory system (PYRO) for RSX-11M or 11S
            Remote data logging system (STARLOG).

The Laboratory system was built to run on small LSI 11/02 computer
systems running RSX-11S, logging data to a TU58 cassette system. It
will however, also run on an 11-M system, logging data into a disc file.
Further documentation may be found in PYDOC.RNO.

All .TSK files were prepared under RSX11M 4.0 and require the FCSRES
partition to be resident. Otherwise a rebuild is in order. Task builder
options for the privaledged tasks (Pyro, Labmon) can be found in the
".LNK" files.
 
The remote logging system is a UNIDATA - Starlog logger which requires
no external power source nor tapes or discs. It can be placed in the
most remote locations, with its own battery power and memory logging system
and can perform for months without attention.
Program STARLOG is a Ratfor program that communicates to a UNIDATA remote
data logging device. The program can extract logged data, initialize the
logger, and be used to pre-program the logger. Data extracted from the
logger is placed in a formatted file. The pre-proceesed .FTN file of
STARLOG is included for those who don't run Ratfor.

If re-building programs, use the MURDLIB.OLB to resolve any
unresolved variables.


FILES:

*.RNO         Documentation
PYRO.*        Stand-alone data logging system.
PYTAPE.*      Program to read TU58 data tapes from PYRO.
STARLOG.*     Program to handle a Unidata model Starlog data logger.



John Horgan
Murdoch University
South Street
Murdoch 
Western Australia 6150
Tel. 3322298 
----------------------------------------------
 [276,002]README.1ST
-------------------------------------------------------
This UIC contains the Murdoch University plotting system library
and some sample bar and pie plotting tasks. Also a polinomial and
exponetial curve fitting program (POLY) with graphics output.

All .TSK files were prepared under RSX11M 4.0 and require the FCSRES
partition to be resident. Otherwise a rebuild is in order.
 
If rebuilding the stand-alone programs, use the MURDLIB.OLB to resolve
any unresolvable variables.


FILES:
 
*.RNO            Relevant documentation.
PLOTBLD.CMD      Command file to build the PLOT.OLB system.
PLOT.RNO         Documentation for the plotting library.
*.RAT            Ratfor programs and modules
*.FTN            Fortran generated from Ratfor processing.
BAR.*            Stand-alone bar graph program
PIE.*            Stand-alone pie plotting program
MIPLOT.*         Program to drive any Wantanbe multi-pen plotter
TK4006.*         Program to drive Tektronix 4006 VDU.
POLY.*           Program to curve fit to given data.
MURDLIB.OLB      Just in case you need it.


John Horgan
Murdoch University
South St.
Murdoch
Western Australia 6150
Tel. 3322298
----------------------------------------------
 [276,003]README.1ST
-------------------------------------------------------
Files in this area contain the Murdoch University LABORATORY control
system. 

The time shared system was designed so that non-privileged users can
write Fortran programs to moniter Analogue devices without disruption
to other time shared users of the system. This is accomplished by
installing the privileged task (Labmon) which does all the nasty A/D
conversion and clock driven analogue sweeps and communicates to the
user task via a common area (ACOM). The user program need only call
two subroutines (LABINI and LABWT) to get a hold of the analogue buffers.
An example program can be found in the LAB.RNO document.
During TKB the user task must issue a "RESCOM=[1,1]ACOM/RO" option.

Several users can be using the same analogue hardware concurrently,
provided that they all agree on a common sampling time and different
physical channels.

Sampling times and dispalys of channel usage can be obtained with
the LAB command.

Install the following two tasks before any of the "LAB" commands
or user tasks are run.
                       INS LABMON
                       INS LABSND

All .TSK files were prepared under RSX11M 4.0 and require the FCSRES
partition to be resident. Otherwise a rebuild is in order. Task builder
options for the privileged task (Labmon) can be found in the
".LNK" file.
 
Program AUTO is a Ratfor program written to use the lab control system.
It analyses peak over background data from the analogue port of an
auto-analyser instrument. It is used in our 6 terminal general computing
system without noticable loss of response.

If rebuilding the stand-alone programs, use the MURDLIB.OLB to resolve
any unresolvable variables.


FILES:

*.RNO         Documentation
STARLOG.*     Program to handle a Unidata model Starlog data logger.
LABMON.*      Heart of the Time shared data logging system
LABSND.*      Command processor for LABMON.
LABINI.*      Fortran callable initialization routine.
LABWT.*       Fortran callable logging routine.
AUTO.*        Program to interpret analogue data from auto-analyser.


John Horgan
Murdoch University
South Street
Murdoch 
Western Australia 6150
Tel. 3322298 
!**************************************************************************************************
----------------------------------------------
 [276,010]README1ST.AAA
-------------------------------------------------------
!	README.GAM
!
!		PROGRAMS SUPPLIED TO PUBLIC DOMAIN FROM SCGH
!
!		PROGRAMMER	G. GUELFI
!
!		FROM		SIR CHARLES GAIRDNER HOSPITAL
!				VERDUN STREET
!				NEDLANDS W.A. 6009
!				AUSTRALIA
!
!				02 - 3892322
!
!
!		TO BUILD PROGRAMS USING VIRTUAL ARRAYS CONCURRENTLY WITH 
!		FGAMMA BOTH FGAMMA AND THE FORTRAN OBJECT LIBRARY MUST BE MODIFIED
!		AS SPECIFIED BY B. HUTTON RPAH SYDNEY AUSTRALIA .
!		SEE COMAND FILE	FORPAT.COM FOR PATCH DETAILS
----------------------------------------------
 [301,050]README.1ST
-------------------------------------------------------

BRUDIR is a program to list the contents of BRU tapes.   It was written
by Richard Kirkman whilst investigating the structure of BRU tapes.
Current modifications are by Alan Frisbie to produce cleaner listings.

It will produce a directory listing of a BRU Tapeset (up to some limit -
currently 32767 files) in formats similar to that used by PIP: BRIEF,
LIST and FULL.

It has not been checked out with tapes produced under RSX-11M-Plus v3.0.
------------------------------------------------------------------------
----------------------------------------------
 [307,020]README.1ST
-------------------------------------------------------
[307,20]	README.1ST

U.S. Geological Survey, Menlo Park, California, submissions to the
Spring 1986 DECUS Tape.

This material was discussed in the presentation "Fortran-77 Performance and
Optimization Issues" at the Dallas Symposium.

Contents of this UIC:

  F77VBUG.DOC	Description and correction to Fortran-77 V5.0 OTS
		which causes Virtual Array problems with I/D Tasks.

  VIRT.MAC	Experimental "Fast Virtual Array" package. This code is
  CRVIRT.MAC	meant to replace standard Virtual arrays when performance
  DSVIRT.MAC	or Virtual Array index limitations need to be stretched.
  DSWIND.MAC	Allows creation of one or more regions, and performs
  TEST.FTN	manual mapping to the region through any arbitrary common
  TESTBLD.CMD	block. Once mapped, array accesses to the "Virtual array" are
		as fast as normal array accesses. Look at the source 
		files and the test program for details.

  GETVIR.MAC	Map and return the virtual address of a Virtual Array element

  BLKIO.FTN	Virtual disk I/O routines from Fortran-77. Allows you to read
		and write disk blocks directly into arrays (regular OR
		Virtual!) using direct QIOs. Uses the GETVIR routine for
		accessing Virtual Arrays. A MUST for reducing disk I/O 
		overhead for an application. See the source files for details.

----------------------------------------------
 [312,315]AAAREADME.TXT
-------------------------------------------------------
	SPRING 1986 RCA SUBMISSIONS

This set of programs has hopefully something for everyone.

Directories and contents are BRIEFLY summarized here. Look at
AAAREADME.1ST, README.1ST, and other manual files and .RNO files
for further information.

[312,371]	New release of AnalytiCalc. Many bugfixes and new
		features since Fall '85 including more string
		functions, a CHOOSE function, and some internal
		improvements related to storage use. Also the
		AAINSTALL.COM file does installation for VMS and
		command file and program documents are much improved.
		Another late addition is input and output "areas"
		which allow you to connect ANY application or DBMS
		to AnalytiCalc.
			Before you go buying an expensive spreadsheet,
		try this one first. It does generally MORE than the
		expensive ones and is also quite easy on your system.
		It does not need special privileges and can be built
		from source. It introduces NO security holes in VMS.
		Also in this area: DATMG*.* is a complete relational
		DBMS in src. with docs. Dearchive with ARCH and build
		with the .COM files included. (Use a scratch empty
		directory.)
[312,345]	Document area (and old VMS version) AnalytiCalc. The
		documents are better done and there's a reference
		card file for a handy reference to all commands and
		functions.
[312,375]	Object libraries for AnalytiCalc for those who don't
		have Fortran. You can install from these libraries.
		Also task images for RSX and POS for those who don't
		have the F77 compiler.
[312,315]	This area contains some useful odds and ends.
		Among them are RSX Focal, and LIST, a multicolumn
		lister, with the ASSLUN module needed to get around a
		VAX/RSX bug. If you have a compat mode program crashing
		VAX/RSX V2.0, try linking ASSLUN into it rather than using
		the default one from SYSLIB. This will get around a bug in
		the AME that fails to range check LUN assignments. The
		problem should be resolved in VAX/RSX V2.1 (one hopes).
----------------------------------------------
 [321,100]AAAREADME.1ST
-------------------------------------------------------
This area contains a modified tape positioning program I have used to
read SIG tapes and 2 programs for the PRO350.

FRG   -	The disk fragmentation report for the 11 from Ed Cetron
	modified for the PRO.

USE   - The cpu usage utility from John Lloyd that shows useage
	just like on a vax. This has been modified for the PRO

TMV   - This utility is a modified version of the one submitted
	by Alan Watson. It has been changed to use the MS: device.
		*****NOTE*****
	This can be used to read the second backup set on a DECUS
	SIG tape. Our drive would report errors when BRU came to
	the Second backup set caused by an extra EOF mark on tapes
	made on a VAX. To read the second backup set try the following:

	>MOU MS:/FOR
	>TMV MS0:/FS
	>TMV MS0:/FS
	   I/O ERROR # -64 ON MAG TAPE UNIT      <- MESSAGE FROM TMV
	>TMV MS0:/FS
	>BRU MS0: VE1:			<- DON'T TELL BRU TO REWIND

	Also included are the .RNO files from my sessions on PRO/Toolkit.

----------------------------------------------
 [333,100]README.1ST
-------------------------------------------------------
	Hans J. Jung SUBMISSIONS


The [333,*] UIC's contain primarily FCS and DECnet extensions for 
DECUS "C". There are also two set of useful DECnet tasks. 
These UIC's require about 2500 blocks of disk space.

	[333,100] - Contains this file and ready to use CX and
			CN librarys. It also contains the FCS
			extensions. The FCS stuff was submitted
			on the Fall '84 SIG tape. See README.2ND.

	[333,101] - DECUS "C" DECnet extensions. Sources for the CN 
			library. Also conatins NETIO and NETLNK
			routines easier network access.

	[333,102] - Contains a DECnet remote file access package.
			Uses a special remote DECnet object, not
			FAL.

	[333,103] - REX - a remote execution package. Allows
			submitting command on a remote node
			without losing the use of the local node.

	[333,104] - Remote print spooling from RSX to VMS. Contains 
		sources for a virtual printer driver (VP:) and a 
		special priveleged task (VPVDV) that allow 
		transparent print spooling to a VMS system over DECnet. 
		Documentation may be sparse.

	[333,105] - A resubmission of the unsupported DECnet mail system
		from the Spring '81 tape. Provides RSX and VMS DECnet
		mail.





This submission was put together shortly before symposium (as 
usual). I believe it is complete, but as with all DECUS software, 
your on your own.

Questions, complaints, praise (I rather like the last) can be 
addressed to:

	Hans J. Jung
	Assistant Manager of Research and Development
	The Associated Press
	50 Rockerfeller Plaza
	New York, NY 10020
	(212) 621-1568

I will take calls, but am notoriously hard to reach by phone. I also 
can't guarantee you much phone time.
----------------------------------------------
 [337,024]README.1ST
-------------------------------------------------------
 
 
 
 
 
 
				Abstract
 
 
 
 
		CRU: Convert, Compress, and Restore File Utility
	 
	 
	    This program is primarily designed for operations on text files,
	and includes the following options:
	 
	    1) Converts files between fixed and variable length records.
	    2) Converts carriage control types (FORTRAN, LIST, and NONE).
	    3) Converts between 8 column tabs and spaces.
	    4) Truncates or padds records.
	    5) Removes trailing blanks and tabs from records.
	    6) Selects a range of pages for output.
	    7) Compresses (or restores) records.
	 
	    The compression algorithm is based on repeat characters, and is
	therefore especially effective on reducing the storage required for
	files which contain significant amounts of filler (spaces) or nulls.
	    The program was written in MACRO-11 and uses large buffers for
	efficient processing.
----------------------------------------------
 [344,001]README.1ST
-------------------------------------------------------
			       K M S K I T
			   R E A D M E . 1 S T
				V 4 . 2B

***************************************************************************
**	Please note. Support for the KMS enhancements is dying even      **
**  faster than it was before.  (DEC would refer to this as Category Z-  **
**  support on an SPD for KMSKIT.)   However, the RSX modifications      **
**  still work, even though KMS has converted everything to M-Plus       **
**  and does not care about RSX-11M any more than for sentimental        **
**  reasons.  Tony Scandora of Argonne National Laboratory still uses    **
**  KMSKIT on some steam-powered 11s, and has updated KMSKIT for V4.2B.  **
**  A feeble attempt was made to install the whole thing as a package,   **
**  as you, the user, might want to do.  Jim tended to put changes in    **
**  piece meal as he had time.  The master command files are an attempt  **
**  to try and make the kit easily installable, and they actually have   **
**  been tried a few times.  That sadly, does not mean that they are     **
**  guaranteed to work.  Tony has built most of KMSKIT, but has only     **
**  tested what he uses.  He hopes all that you need to build KMSKIT     **
**  is here, and he will do his best to keep it current as long as he    **
**  supports the steam-powered 11s.
**                                                                       **
**  Please be careful.   The SLP files may not conform to the source     **
**  files you have (though they should). BEWARE-----BEWARE.  If the SLP  **
**  files don't work, if the command files don't work, or if you need    **
**  help, find a mirror (preferably larger than the pocket variety) and  **
**  gaze at it intently. Note the face looking back at you. It is the    **
**  kindly face of your Software Support Specialist.   Good Luck!!       **
***************************************************************************

     In going from V4.1 (field test version) to V4.1 Updata B version,
  all that Jim ever needed to change was the first ASCII locator string
  (which looks for that last audit trail record in the text preamble) to
  reflect the correct place for the SLP file audit trail to go.  We have
  attempted to make the process fullproof, which is a sure indication that
  it is bound to fail for some.  Three files (EXECSLP.CMD, MCRSLP.CMD, and
  ICPSLP.CMD) actually do all the SLPing.  They used to assume most files 
  are the unupdated distribution files with a NAME.EXT;1 file name, and a
  few (known internally to the command files) are known to be updated (via
  Update B).  Tony took all of that version number stuff out and let it all
  work with latest versions.

  Since users have not yet seriously proposed that KMS try generating a
  "product", our assumption is that users interested in KMSKIT are
  generally sophisticated and able to fix minor "bugs" that creep into the
  installation procedure. 

  In practice, Tony does the following:
	
	1. Apply DEC Autopatch/Update "xx" to produce .XYZ;2 files
	2. Read each and every .SLP file and what it patches
	   to insure reasonablness
	3. Use EXECSLP.CMD, ICPSLP.CMD, MCRSLP.CMD
	   If SLP complains, you missed something that needed to be fixed
	4. Read each and every SLPed source file to insure reasonablness

  I know of no way to set up a command procedure that can tell if the
  autopatch has been done and to set things up automatically.  Perhaps if
  I gave it enough thought... But someone else should worry about this.


	As a note of MINOR encouragement, I have all of KMSKIT working on
   V4.2B of RSX11M and the enclosed files are the ones I used.  This is
   is it intended to be a rerelease of the entire KMSKIT.  Send comments
   to Tony Scandora if it is not.

        The following UIC's are part of the KMSKIT RSX11M Enhancements
   Package Update for V4.2.
 
[344,1]		Documentation files.  Command file to create the document
		files.  You need RUNOFF to do this.  Hope you have it.
		The documentation has not been updated recently.

[344,40]	Terminal and disk accounting, privilege allocation,
   		modifications to HELLO, HELP and BYE, account utilities
   		and report programs. 
		Run privilege checking and searching 
		LIBUIC, NETUIC and SYSUIC on a RUN $ command. 
		SET /LIBUIC for RSX11M (just like M-Plus).
		Enhancements to ...AT. to implement the /-LI switch.
    
[344,43]	Utilities. Updated versions of GREP and LIST
 
[344,44]	Here is a version of the old RMDEMO which runs on VT100's
		which are in ANSI mode.  This version is almost half as
		small as the new version and supports reploting and
		easy exit. In addition, if KMS Accounting is present
		and active, it provides a dynamic display of the percent
		of total system utilization.  This version (less
		my mods) was distributed with the field test kit of 
		RSX11M V3.2 and is distributed here courtesy of the the
		RSX group.  It runs on a RSX11M V4.1 system.
    
[344,45]	PDQ -- Program Development Queues.   PDQ is a multi-
		queue command file despooler (using QMG...).  Submit
		a command file for execution.  When a program development
		queue becomes free, the command file executes at your TI:

[344,61]	CCL has been taken over by Paul Sorenson. 
		Best command line processor for RSX available, bar none.
		Need I say more?  CCL is almost too useful to be free.

[344,65]	A complete SYSTEM ACCOUNTING package for RSX11M.
		While oriented towards providing performance measurement,
		it provides the basis for implementing a versitile and
		reasonable charge-back accounting system.  Some reports
		are provided which will do this.  Please read SYSLOG.DOC.
 
 
Please, create and read the documentation before leaping in and trying to use
the kit! 

     A discription of all the modifications and enhancements and most of
the  utilities is in KMSKIT.DOC.  The command file [344,40]KMSGEN.CMD will 
provide all required information (or most of it)for building the  KMS  
Enhancements and a number of the other programs. Read KMSKIT.DOC before 
trying to include the executive data base changes.  Please note that
it has not been updated since V4.0 and the file REQSB.SLP is no longer
needed.
 
     To use this kit, transfer the files to their respective UIC's. Read all
the documentation over twice. Set /UIC=[344,40] and type @KMSGEN/-MC and run
through a KMSGEN asking for a long dialog. Place the required DEC sources in
the correct places, KMSGEN will try and do all the SLP patches both to MCR
sources, the EXEC modules and the SYSGEN command files. If KMSGEN sucessfully
SLPs the MCR, EXEC and SYSGEN command files, stop, place the OLB's and sources
on your SYSGEN disks and do a SYSGEN if you are incorporating data structures
(accounting) requiring a SYSGEN. Once the SYSGEN is done use KMSGEN again to
create all needed files. 

     These programs have been extensively tested for the case where all KMS
options are selected and where most DEC sysgen options are selected.
KMSGEN and the command files to implement KMSKIT for the general user have
had almost no testing since I do all patches one at a time checking results
as I go.  The first user to try KMSKIT found a bunch of bugs in the command
files.  These I tried to fix.  But, as we all know, bugs are hard to 
completely stamp out.  Be warned, be careful, and be alert.  Since, I know
the SLP patches once incorporated work, I am sure they can be incorporated
with a bit of perseverence.  I apologize in advance for any potential
inconvenience, but current government regulations (let alone my family)
preclude me spending in excess of 24 hours daily at work.  I simply do not
have time to do all that I have to do as well as all that I would like to
do.

     We owe Jim Downward a large debt for this package.  Now that he has
converted to M-Plus, send comments, praise, and bug reports (preferably
with fixes) to Tony Scandora, who will forward any praise to Jim.

Thanks again, Jim, and good luck out there,

Tony Scandora
Argonne National Laboratory
CMT 205
Argonne, IL  60439
BitNet B35048 at ANLCMT
312-972-7541  FTS 972-7541
----------------------------------------------
 [350,031]README.1ST
-------------------------------------------------------
	Sorry, for the strange format.....

	I have 12 hours before I leave for Dallas and
my tape drive (as usual) is on the fritz..... BRU and FLX will not work
at all.  However, PIP seems to work fine. So here it is.

	There are two 'articles' that I have submitted. they are machine
readable code versions of my session notes....

	I have also included my connect time accounting package for 11m
and m+. I have updated it to include support for TT's, VT's, HT's and
the new RT's.

	Please send me copies of any suggestions, comments, and especially
bugs and/or fixes to:
		Ed Cetron
		Center for Biomedical Design
		3168 MEB, Univ. of Utah
		Salt Lake City, Utah   84112

	Ma bell:	(801) - 581-6499 or 581-5304
	ARPA:		cetron%utah-cbd@utah-cs.arpa

p.s.	Please feel free to contact me for any help or further articles or whatever.
----------------------------------------------
 [350,120]README.1ST
-------------------------------------------------------
This submission contains various update to various software from the sig tapes 
of years gone past. They are:

Directory VD2:[356,60]
24-APR-86 19:15

MAKE.CMD;1          1.         21-APR-86 21:19
POS.CMD;1           2.         21-APR-86 21:14
POS.SLP;1           15.        14-MAR-86 13:57
README.1ST;1        2.         21-APR-86 21:26
REC.CMD;1           2.         21-APR-86 21:14
REC.SLP;1           15.        21-APR-86 21:11
REW.CMD;1           2.         21-APR-86 21:13
REW.DOC;1           3.         26-OCT-83 00:35
REW.MAC;1           12.        26-OCT-83 00:35
REW.RNO;1           3.         26-OCT-83 00:35
REW.SLP;1           5.         14-MAR-86 13:57
TEST.CMD;1          1.         03-OCT-85 16:20

Total of 63./63. blocks in 12. files

Directory VD2:[351,41]
24-APR-86 19:15

ACCBYE.MAC;2        52.        24-APR-86 11:38
ACCBYE.SLP;1        1.         24-APR-86 11:34
README.1ST;2        2.         24-APR-86 12:56

Total of 55./55. blocks in 3. files

Directory VD2:[307,120]
24-APR-86 19:15

COOKIE.MAC;4        48.        13-MAR-86 21:40
README.1ST;1        2.         24-APR-86 10:58

Total of 50./50. blocks in 2. files

Directory VD2:[312,16]
24-APR-86 19:15

BACKUP.CMD;15       12.        06-JAN-86 08:08
BRUDIR.CMD;1        2.         17-APR-86 19:43
BRUDIR.FTN;1        22.        11-MAY-82 23:56
BRUDIR.HLP;1        2.         11-MAY-82 23:56
BRUDIR.SLP;1        21.        17-APR-86 19:47
README.1ST;1        3.         24-APR-86 19:06

Total of 62./62. blocks in 6. files
----------------------------------------------
 [350,122]README.1ST
-------------------------------------------------------
This is an update to the program BRUDIR. It has been modified to allow for MCR 
and DCL input type calls. Also a spooling and rewind switch has been added. If 
the -rewind switch is used then the progran will not look for the volume header 
which is normally found as the first record of a tape. This was done so that one
could position a tape to a BRU dataset and do a directory of that data set 
rather than doing the whole tape set. A copy of the backup command file that We 
use to backup our disk is included to show how the BRUDIR may be used to do a
directory of an incremental backup set. The other programs to manuplate the 
Mag-tape are in other UIC's on the distribution tape. You need POS and REC to 
position the magtape for the directory process.

To run the program:
	run brudir

It will prompt for the proper info or one may place it all on one line.


See the source listing for further information on the program.

		Dan L. Eisner
		Perkin-Elmer Corporation
		Applied Optics Operation
		Garden Grove, California
		714-895-1667
----------------------------------------------
 [350,123]README.1ST
-------------------------------------------------------
	Changes to the accounting package from:
		School of Chem Engr.
		Cornell University
	
	This is a correction to the subroutines for the BYE
process changes from the fall 1985 distribution.

	I found that the original produced an odd address
trap. The error was that the account file system disc info
was placed into location 0 thru 5 since a pointer to the
device name string was zero. I added a check to see if the
string address was zero or not and corrected the error. 

			Dan L. Eisner
			Perkin-Elmer Corp
			Garden Grove, CA
			714 895 1667
----------------------------------------------
 [350,131]AAAREADME.1ST
-------------------------------------------------------
This area contains ZCL, a short program which permits you to set
character length, parity, etc. on a DH(v)11 interface under
RSX11M V4.1. It is donated by Allen Bennett.
        It can serve as a simple example of a task that uses CSI$
macros to handle its commands as well as a utility for those with
DH11's.
----------------------------------------------
 [351,040]README.1ST
-------------------------------------------------------

		Cornell University Submissions

		Coordinated by: Dennis P. Costello
				National Submicron Facility
				G02 Knight Lab
				Cornell University
				Ithaca, NY 14853

				607-255-2329

BRUIN - Author: Dennis Costello

	A corrected version of the command files which appeared on the Fall 85 
(Anaheim) tape. This submissions will also appear on the Spring 86 VMS SIG 
tape.

	These command files copy a BRU backup set onto an ODS-2 rooted
directory. Specify the backup set name and the device name on which the rooted 
directory should be created, eg:

	$ @BRUIN RSX85B DU1

VAXBRURDR.EXE, as provided here, is required. (This is a copy of the one on 
the RSX85A tape). Before running BRUIN, change the line in BRUIN.COM which 
reads:

	$ vmsbru :== $[manager.bru]vaxbrurdr

to point to the correct location of VAXBRURDR.EXE on your system.

	To read in multiple backup sets from one tape, use the command file 
BRUALL.COM:

	$ @BRUALL DU1

This will make a list of all backup sets on the tape, and read each into its
own subdirectory. All files on the tape must be BRU backup sets, or the command 
file will probably die horribly. As in BRUIN.COM above, you should change the 
following 2 lines to point to appropriate directories:

	$ vmsbru :== $[manager.bru]vaxbrurdr
	$	@[manager.bru]bruin 'name' 'p1'

This command is quite appropriate to run as a batch job.

TABBUILD - Author: Dennis Costello

	This is a command file which produces a loadable device database for 
use in a loadable device driver. In particular, the driver source, normally 
found in [11,10]xxDRV.MAC, can be used to produce a loadable/loadable driver, 
and that driver can then be LOAded into the RSX system, even though the device 
was not defined during Sysgen. Tabbuild does not actually produce the database 
code directly; it merely provides an environment in which the Sysgen command
file SGNPER.CMD is called. SGNPER then does the real work. The instructions 
for using this command file are in the paper "Adding Device to RSX Without a 
Sysgen", which will be in the Spring 86 Proceedings and the Multi-tasker. A 
preliminary copy of the paper is included here for your benifit, as PAPER.RNO.
The slides from the talk, some of which will be figures in the final version 
of the paper, are included as *.sls. These are sixel files, and can be printed 
on any printer which supports that format, such as the LA50, LA100, and LN03.
----------------------------------------------
 [351,144]README.1ST
-------------------------------------------------------
         FIGure - Calculator for RSX and VMS -- Version:  86.080  PAGE 1 
          
 
 
         Author: T. R. Wyant III, E. I. DuPont de Nemours, Richmond, VA. 
 
         Operating System:  RSX11M+, RSX-11M, VMS 
 
         Language:  FORTRAN 
 
         Memory Required:  RSX - 20KW 
 
         Other Hardware Required:  RSX - FPP instruction set. 
 
         Keywords:  RSX-11;  VMS;  Calculators;  Mathematical. 
 
         Abstract: 
 
         FIGure is a calculator to evaluate arithmetic and  logical  ex- 
         pressions.   Syntax is similar to the FORTRAN assignnemt state- 
         ment.  Up to 100 variables may be defined, with 1  to  6  char- 
         acter  alphanumeric  names  beginning  with an alphabetic.  All 
         data are stored in REAL*4 format, but converted to  scaled  in- 
         tegers  for  the  logical  operations  &  (and), !  (or), and ~ 
         (not).  Data may be entered and displayed in any radix  from  2 
         through  36.   Commonly used expressions can be executed from a 
         command  file.   Online  help  is  available.   Compiles  under 
         F4P/RSX V2.5 forward, F77/RSX, and VAX FORTRAN. 
----------------------------------------------
 [351,145]README.1ST
-------------------------------------------------------
         TEM - Terminal EMulator for RSX -- Version:  86.093      PAGE 1 
          
 
 
         Author: T. R. Wyant III, E. I. DuPont de Nemours, Richmond, VA. 
 
         Operating System:  RSX11M+ V2.0 forward, RSX-11M V4.0  forward, 
                   RSX-11S V4.0 forward, VAX-11 RSX V2.0 forward.   
 
         Language:  MACRO-11 
 
         Memory Required:  16KW 
 
         Other Hardware Required:  Dial-out Modem 
 
         Keywords:  RSX-11;  Communications;  Terminal Emulator 
 
         Abstract: 
 
         TEM provides "dumb" terminal emulation over a full  duplex  TT: 
         line.   It  allows  the user to "become" a terminal on a remote 
         system, and to do ASCII file transfer between systems.  TEM has 
         been  used to communicate with RSX, VMS, RSTS, and TOPS-20 sys- 
         tems, as well as non-DEC equipment.  It requires no software on 
         the remote system (and therefore has no error checking).   
 
              In addition to the basic functionality, TEM can  automati- 
         cally  issue  canned  commands to smart modems at the beginning 
         and end of a session.  The user can also select from  the  fol- 
         lowing features: 
             * Local Echo. 
             * Automatic linefeed on carriage return. 
             * Translation of inbound control characters to ASCII abbre- 
                 viations. 
             * Passthru of control/s, control/q, control/o and control/x 
                 to the remote system. 
             * User selectable attention and end-of-file characters. 
             * Inbound and outbound character mapping. 
             * Specifiable record delay and prompt  character  for  file 
                 transfer. 
             * Parity generation and checking. 
             * Support for dialout modems as remote devices. 
 
              TEM requires at least  RSX-11M+  V2.0,  VAX-11  RSX  V2.0, 
         RSX-11M  V4.0,  or  RSX-11S  V4.0.  If running under RSX-11M or 
         RSX-11S, it requires the full-duplex TT:  driver, get/set  mul- 
         tiple  characteristics,  and  unsolicited input AST's.  Correct 
         access of named directories and files numbered in  decimal  re- 
         quires the FEAT$ directive.  The GIN$ directive is used to pre- 
         vent nonprivileged users from using TEM to read files that  are 
         none  of  their  business (eg:  LB:[0,0]RSX11.SYS).  An attempt 
         has been made to conditionalize TEM for  RSX-11M  V3.2,  but  I 
         have no way to check it.  TEM can be initiated from and commun- 
         icate with any reasonable serial device, but there may be  res- 
         trictions if not being used on a TT:-type device.   
----------------------------------------------
 [356,040]README.1ST
-------------------------------------------------------
KERMIT-11 UPDATE

The [356,40] area contains an update to Kermit-11 from Brian Nelson.
The [356,41] area has sources to the IAS version of Kermit-11.

----------------------------------------------
 [356,042]AAAREADME.1ST
-------------------------------------------------------
	VMSTPC
	By Brian Nelson

This area is a rewrite of the BIGTPC utility by Brian Nelson for native
mode VMS. BIGTPC basically takes any format tape and copies its' contents
onto a disk container file, or copies the container file to a tape.
It is a PRELIMINARY effort but tries to copy the major advantage on
RSX of BIGTPC, namely, that it is AST driven and so tends to keep
lots of outstanding I/O on tapes (and disk) to keep the tape
moving. The idea is to copy tapes on sites with disk space but only
one drive, or to make copies faster than most any tape to tape method
could.
	VMSTPC does not have the baroque switch set of BIGTPC but
does its' major job. Also some things need to be set externally
(like density).
	The program has not had a whole lot of testing but is presented
in the hope it may prove useful.

----------------------------------------------
 [370,106]AAAREADME.TXT
-------------------------------------------------------

                             Pro Computing
                            222 Third Street
                          Cambridge, Ma 02142

                     Jared M. Spool & John Dunning


                   SHEAP - SuperHeap for Pro Pascal.

The SHeap is a way to allow your Pro Pascal programs to get more memory.
It  deals  with a data structure called a super pointer which is 32 bits
big.  The first 16 bits are the region number and the last 16  bits  are
the pointer within the region.

When you create a region, it creates a  region  with  the  name  SHPxxx,
where  xxx  is  the  number  of  the region that it created.  If you are
multi-tasking, you can have one task send a pointer to another task, and
connect to it, thus sharing data.

There are three files in this directory:

     1.  SHEAP.MAC - The source file.  Just PMA this and then  link  the
         OBJ into your task image.

     2.  SHEAP.DOC - This describes all of  the  calls,  and  also  some
         symbol  definitions  you  need  to  include in your PAB command
         file.

     3.  SHEAP.INC - This is an include file for your Pascal programs.


The functions are self explanatory.

----------------------------------------------
 [370,210]README.1ST
-------------------------------------------------------

		Caterpillar Inc. Submissions [370,210]

		Submitted by:	Rick Webster
				Caterpillar Inc.
				Factory Integration Div.
				Mail Stop AD235
				600 W. Washington St. 
				East Peoria, Il. 61630

				309-675-9662

VTL - Virtual Terminal Logger (Not to be confused with Robin Miller's
      VTL, Video Terminal List from previous tapes)

	VTL  is  a utility to allow a virtual terminal to be accessed
	from  an actual physical terminal. Any output directed to the
	virtual  terminal  will  be  displayed  on  the  user's  TI:.
	Optionally, the data can be logged to a file at the same time,
	creating an exact log of all the data that appears on the
	screen during the interactive terminal session. 

	Note that this is for RSX11M+ only and has been tested on
	both V2.1 and V3.0.

	Files:	VTL.MAC		Source code
		VTLON.MAC	Program to re-attach to VTL after
				a detach from VTL
		VTL.RNO		User's Guide
		VTLBLD.CMD	Build command file

BYEBRK - Task to implement automatic disconnect from Micom port
	 on user log out.

	BYEBRK and companion task CSRFND can be used to send a
	BREAK to a port when a user logs out. This will cause
	an automatic disconnect on a properly configured Micom
	port selector.

	This has been tested on RSX11M+ V2.1 and V3.0 and although
	not tested, it should also work on RSX11M V4.0 and beyond.

	Files:	BYEBRK.MAC	Source to BYEBRK
		CSRFND.MAC	Source to CSRFND
		BYEBRKBLD.CMD	Command file to build BYEBRK
				and CSRFND
		SYSLOGOUT.CMD	Sample system log out command file
				to implement BYEBRK
		BYEBRK.RNO	User's Guide

----------------------------------------------
 [370,352]README.1ST
-------------------------------------------------------
	README.1ST

	This UIC contains submissions from Steve Jobes, Mayo Foundation,
	including CLE, an interactive command line editor.  With CLE,
	the user is able to edit his command line before or even after
	dispatching the CLI and it "remembers" the last several commands
	which can be recalled, edited, and resubmitted as well.

	CLE is non-privileged and requires no changes to other software.
	The user creates or edits a command line in a local buffer and
	sends it off to his CLI when ready.  If installed, CLE can be
	invoked by typing "CLE".  Or, for regular use, the last line of
	LOGIN.CMD should be ".xqt CLE".

	Questions, comments and suggestions can be addressed to
	
	  Steve Jobes
	  Mayo Clinic
	  232 Plummer Bldg
	  Rochester, MN  55905
