Google
 

Trailing-Edge - PDP-10 Archives - cuspbinsrc_1of2_bb-x128c-sb - 10,7/crscpy/crscpy.rno
There are no other files named crscpy.rno in the archive.
.;25-MAR-82
\\
.LM0;.RM70;.F;.J;.FLAG CAP;.SP1
.BLANK 10
.T <CRSCPY - ^PROGRAM ^FOR ^AUTOMATICALLY ^COPYING ^CRASHES
.SUBTITLE
.CENTER
<CRSCPY
.B2
.CENTER
^PROGRAM ^FOR ^AUTOMATICALLY ^COPYING ^CRASHES
.SKIP 15
.LITERAL
			Date:	    March 1982
			File:	    CRSCPY.RNO
			Version:    4
.END LITERAL
.SKIP 15
^THE INFORMATION IN THIS DOCUMENT IS SUBJECT TO CHANGE WITHOUT 
NOTICE AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY ^DIGITAL
^EQUIPMENT ^CORPORATION.  ^DIGITAL ^EQUIPMENT ^CORPORATION ASSUMES 
NO RESPONSIBILITY FOR ANY ERRORS THAT MAY APPEAR IN THIS 
DOCUMENT.
.SKIP 1
^THE SOFTWARE DESCRIBED IN THIS DOCUMENT IS FURNISHED UNDER 
A LICENSE AND MAY BE USED AND COPIED ONLY IN ACCORDANCE 
WITH THE TERMS OF SUCH LICENSE.
.SKIP 1
^DIGITAL ^EQUIPMENT ^CORPORATION ASSUMES NO RESPONSIBILITY FOR 
THE USE AND RELIABILITY OF ITS SOFTWARE ON 
EQUIPMENT THAT IS NOT SUPPLIED BY ^DIGITAL.
.SKIP 4
^COPYRIGHT (^C) 1979,1980,1981,1982 ^DIGITAL ^EQUIPMENT ^CORP., ^MAYNARD, ^MASS.
.PAGE
.HL 1 INTRODUCTION
\\
.B1
^THE <TOPS-10 MONITOR INCLUDES A FAST MONITOR RESIDENT BOOTSTRAP (<MONBTS)
WHICH HAS THE CAPABILITY OF VERY FAST DUMP/RELOAD, AND CONTINUABLE
<STOPCD DUMP.  ^IN ADDITION, THE MONITOR PROVIDES A MECHANISM TO
AUTOMATICALLY START UP A PROGRAM WHICH WILL COPY THE DUMP(S) JUST
TAKEN.  <CRSCPY IS AN EXAMPLE OF A PROGRAM WHICH CAN BE RUN TO DO
THIS.  <CRSCPY, AS DESCRIBED IN THIS DOCUMENT, IS A PROTOTYPE THAT
AN INSTALLATION MAY USE TO HELP IN UNDERSTANDING THE MONITOR INTERFACE
AND THE TASKS THAT MUST BE PERFORMED BY SUCH A PROGRAM.  <CRSCPY
IS BEING SUPPLIED TO SERVE AS A BASIS FOR THE PROGRAM THAT AN
INSTALLATION MAY WISH TO WRITE TO TAILOR THE COPY MECHANISM TO
LOCAL PROCEDURES.  ^EVERY INSTALLATION WILL HAVE VARYING NEEDS AND
PROCEDURES WITH REGARD TO CRASH COPYING, AND MAY INDEED ALREADY HAVE
SOME FORM OF SEMI-AUTOMATIC MECHANISM TO COPY CRASHES.  ^THEREFORE,
IT IS NOT EXPECTED THAT <CRSCPY WILL BE USED WITHOUT CHANGE.
^THE ^DIGITAL-SUPPLIED PROTOTYPE SUPPORTS AUTOMATIC CRASH COPY OF
CRASHES WHEN INVOKED BY THE MONITOR, MANUAL COPY OF CRASHES WHEN
RUN BY AN OPERATOR, AND A LOG AND REPORT FEATURE OF THE CRASHES THAT
IT COPIED.
.B2
.HL 1 RUNNING THE PROGRAM
\\
.B1
^THE MONITOR AUTOMATICALLY RUNS THE CRASH COPY PROGRAM FROM DEVICE <SYS: WHEN A
CONTINUABLE <STOPCD DUMP IS TAKEN OR WHEN THE MONITOR IS RELOADED.
^BY DEFAULT THE NAME OF THE CRASH COPY PROGRAM IS <CRSCPY.  ^THIS
DEFAULT MAY BE CHANGED BY DEFINING THE SYMBOL <CPYNAM TO BE THE
<SIXBIT NAME OF THE PROGRAM TO RUN IN THE <SIXBIT SYMBOL DEFINITIONS
IN THE <HDWCNF <MONGEN DIALOG.
.B1
<CRSCPY MAY ALSO BE RUN MANUALLY TO COPY CRASHES OR TO PERFORM
ONE OF ITS OTHER FUNCTIONS.  ^TO PERFORM MOST FUNCTIONS, <CRSCPY
MUST BE RUN WHILE LOGGED INTO
[1,2].
.B2
.HL 1 COMMAND SYNTAX
\\
.B1
^COMMANDS TO <CRSCPY ARE OF THE GENERAL FORM:
.B1
	<COMMAND ARGUMENT
.B1
AND ARE OF THREE TYPES, ^ACTION, ^STATUS SETTING, AND ^REPORT,
^DISPOSITION, OR ^MOVE
SELECTION.  ^ACTION COMMANDS CAUSE SOMETHING TO HAPPEN IMMEDIATELY
AS OPPOSED TO STORING A VALUE OR SETTING A FLAG FOR LATER PROCESSING.
^ACTION COMMANDS INCLUDE <CLEAR, <COPY, <DISPOSITION, <MOVE, <PURGE,
AND <REPORT.  ^STATUS
SETTING COMMANDS SET FLAGS OR STORE VALUES DIRECTING THE ACTION
OF ONE OF THE ACTION COMMANDS.  ^STATUS SETTING COMMANDS INCLUDE
<INFORM AND <STRUCTURE.  ^REPORT, DISPOSITION, OR ^MOVE
SELECTION COMMANDS RESTRICT THE
ENTRIES PROCESSED BY THE <REPORT, <DISPOSITION, OR <MOVE
 COMMANDS TO THE SUBSET
OF THE CRASHES THAT MEET ALL CRITERIA AND RESTRICTIONS.  ^THE
REPORT, DISPOSITION, OR MOVE SELECTION COMMANDS ONLY HAVE EFFECT ON THE 
<REPORT, <DISPOSITION, AND <MOVE COMMANDS
AND INCLUDE <ACTIVE, <BEGIN, <CBEGIN, <CEND, <DELETE, <DETAIL, <END,
<HEADER,
<INACTIVE, <MONVER, <PRIMETIME, <SEQUENCE,
<STOPCD, AND <UNDISPOSED.  ^EACH COMMAND IS DESCRIBED SEPARATELY BELOW.
.B2
.HL 1 ACTION COMMANDS
\\
.B1
^THE ACTION COMMANDS ARE:
.LM 24.I-24.TS 24.B 1
<CLEAR FILESPEC	^MARK THE SPECIFIED FILE AS HAVING BEEN PROCESSED SO THAT
<MONBTS CAN DUMP ON IT WITHOUT OPERATOR INTERVENTION.  ^THE USE OF
THIS COMMAND IS NOT USUALLY REQUIRED SINCE THE <COPY COMMAND MARKS
THE CRASH FILE AS HAVING BEEN COPIED WHEN IT FINISHES THE COPY.  ^IT
MAY BE USEFUL AFTER STAND ALONE TIME OR PREVENTATIVE MAINTENANCE TO
INSURE THAT NO STALE DUMPS ARE PRESENT.
.B.I-24
<COPY FILESPEC=FILESPEC	^COPY INPUT FILESPEC TO OUTPUT FILESPEC, MAKE A
LOG ENTRY IN ^^SYS:CRASH.SYS\\, AND CLEAR THE UNPROCESSED DUMP BIT IN THE
FILE BEING COPIED SO THAT <MONBTS CAN DUMP ON IT WITHOUT OPERATOR
INTERVENTION.  ^IF ONLY ONE FILESPEC IS TYPED, IT IS USED AS THE
FILESPEC OF THE FILE TO COPY.
.B.I-24
<DISPOSITION FILESPEC	^GIVE A DISPOSITION FOR THE CRASH OR CRASHES
SPECIFIED BY FILESPEC.  ^FILESPEC IS THE NAME OF THE CRASH FILE OR
FILES AS SPECIFIED IN ^^SYS:CRASH.SYS\\.  ^BOTH FILENAME AND EXTENSION
MAY BE WILDCARDED AND <DSK:, <ALL:, AND <XPN:, WHEN SPECIFIED AS A DEVICE
IN THE COMMAND, WILL MATCH ANY DEVICE IN AN ENTRY.
^THE DISPOSITION IS A ONE LINE DESCRIPTION OF WHAT
CAUSED THE CRASH AND IS GIVEN AFTER THE CRASH IS ANALYZED.  ^THE
DISPOSITION MAY BE PRINTED WITH THE <REPORT COMMAND USING THE
^^DETAIL:DISPOSITION\\ SWITCH OR COMMAND.
^THE CRASHES DISPOSED BY THIS COMMAND MAY BE FURTHER RESTRICED BY
USING ONE OR MORE OF THE REPORT OR DISPOSITION COMMANDS DESCRIBED
BELOW.
^NOTE THAT IT IS MUCH
MORE EFFICIENT TO DISPOSE A CRASH BY SEQUENCE NUMBER VIA A
^^DISPOSITION/SEQUENCE:\\NN COMMAND SINCE THIS ALLOWS <CRSCPY
TO DIRECTLY INDEX INTO <CRASH.SYS.  ^IF NO ^^/SEQUENCE\\ SWITCH
IS SPECIFIED, <CRSCPY MUST MAKE A LINEAR SCAN OF THE FILE.
.B.I-24
<MOVE FILESPEC=FILESPEC	^MOVE THE CRASH SPECIFIED BY THE INPUT FILESPEC
TO THE OUTPUT FILESPEC AND UPDATE THE ENTRY IN <CRASH.SYS TO REFLECT THE
NEW LOCATION OF THE CRASH FILE.  ^NOTE THAT THE INPUT FILESPEC IS THE ONE
STORED IN <CRASH.SYS BY THE <COPY COMMAND.  ^THE FILENAME MAY BE
WILDCARDED AND A DEVICE OF <DSK:, <ALL:, OR <XPN: WILL MATCH ANY ENTRY.
^IT IS MUCH MORE EFFICIENT TO MOVE CRASHES USING A COMMAND OF THE
FORM ^^MOVE\\ FILESPEC=FILESPEC^^/SEQUENCE:\\NN:MM SINCE THE SEQUENCE
NUMBER ALLOWS <CRSCPY TO INDEX DIRECTLY INTO <CRASH.SYS.  ^NOTE THAT
IF NEITHER THE ^^[NO]UNDISPOSED\\ SWITCH OR COMMAND IS SPECIFIED,
THE DEFAULT FOR THIS COMMAND IS ^^/UNDISPOSED\\.  <CRSCPY PRESERVES
THE CREATION DATE/TIME, THE ACCESS DATE, THE DATA MODE, THE PROTECTION
(IF NO /<PROTECTION SWITCH WAS SPECIFIED), THE VERSION NUMBER AND THE
SPOOLED NAME OF THE INPUT FILE WHEN IT MOVES IT.
.B.I-24
<PURGE <FILE	^DELETE THE CONTENTS OF ^^SYS:CRASH.SYS\\ BUT RETAIN
THE HEADER SO THAT THE CRASH SEQUENCE NUMBERS DO NOT START AT 1.  ^THE
USE OF THIS COMMAND IS PREFERED TO SIMPLY DELETING THE FILE FOR THIS
REASON.  ^THE ARGUMENT "<FILE" IS REQUIRED TO INSURE THAT THE USER
DOES NOT TYPE THE COMMAND BY ACCIDENT.
.B.I-24
<REPORT FILESPEC	^GENERATE A REPORT ON THE SPECIFIED FILE OF
THE CONTENTS OF ^^SYS:CRASH.SYS\\.  ^THE CONTENTS OF THIS REPORT MAY
BE RESTRICTED BY USING ONE OR MORE OF THE REPORT OR DISPOSITION
SELECTION COMMANDS
DESCRIBED BELOW.
.LM 0.TS 5
.B2
.HL 1 STATUS SETTING COMMANDS
\\
.B1
^THE STATUS SETTING COMMANDS ARE:
.LM 24.I-24.TS 24.B1
<INFORM NAME	^SELECT DESTINATION OF ALL OUTPUT.  ^LEGAL VALUES OF
NAME ARE <USER AND <OPR.  <USER IS THE DEFAULT IF <CRSCPY IS RUN
MANUALLY AND CAUSES OUTPUT TO GO TO THE USERS TERMINAL.
<OPR IS THE DEFAULT IF <CRSCPY IS RUN BY THE SYSTEM AND CAUSES
OUTPUT TO GO TO DEVICE <OPR:.  ^THIS COMMAND SHOULD NOT BE USED
IN NORMAL OPERATION.
.B1.I-24
<STRUCTURE _<STR:BLK,STR:BLK,..._>,_<STR:BLK,STR:BLK,..._>,...
.B 1
^SELECT THE STRUCTURE TO WHICH <CRSCPY
WILL COPY CRASHES IF NO OUTPUT STRUCTURE IS SPECIFIED IN THE <COPY
COMMAND OR IF IT IS RUN BY THE SYSTEM.
STR IS THE NAME OF A STRUCTURE AND BLK IS THE NUMBER OF BLOCKS WHICH
MUST REMAIN ON THAT STRUCTURE AFTER THE COPY IS COMPLETED.  <CRSCPY
WILL NOT COPY A CRASH TO A STRUCTURE UNLESS IT MEETS THIS MINIMUM
BLOCK RESTRICTION.  ^THE ANGLE BRACKETS GROUP STRUCTURES INTO
SETS.  <CRSCPY SCANS THE SETS FROM LEFT TO RIGHT AND WILL SELECT
A STRUCTURE FROM THE FIRST SET WHICH MEETS ALL RESTRICTIONS.  ^WITHIN
EACH SET, <CRSCPY WILL SELECT THE STRUCTURE WHICH MEETS THE MINIMUM
BLOCK RESTRICTIONS AND WILL CONTAIN THE MOST SPACE AFTER THE COPY.
  ^THIS COMMAND USUALLY APPEARS
IN <SWITCH.INI WITH A LINE OF THE FORM:
.LM 5.TS 5.B1
^^CRSCPY/STRUCTURE:(\\_<STR:BLK,STR:BLK,..._>,_<STR:BLK,..._>,...)
.LM 24.TS 24.B1
AND ALLOWS THE SYSTEM ADMINISTRATOR TO SPECIFY TO WHICH STRUCTURES
CRASHES MAY BE COPIED IF NOT EXPLICITLY OVERRIDDEN BY THE OPERATOR.
^NOTE THAT SINCE <CRSCPY RUNS LOGGED OUT ([2,5]) WHEN RUN BY THE
SYSTEM, THE <SWITCH.INI CONTAINING THE <STRUCTURE COMMAND MUST BE
PLACED IN [2,5].
.LM0.TS 5.B2
.HL 1 REPORT, DISPOSITION, OR MOVE SELECTION COMMANDS
\\
.B1
^THE REPORT, DISPOSITION, OR MOVE SELECTION COMMANDS ARE:
.B1.LM24.TS 24.I-24
<ACTIVE	^PROCESS ONLY THOSE CRASHES WHICH HAVE BEEN DISPOSED, BUT NOT
DELETED. <NOACTIVE RESTRICTS THE COMMAND TO THOSE CRASHES WHICH HAVE EITHER
NOT BEEN DISPOSED, OR THOSE WHICH HAVE BEEN BOTH DISPOSED AND DELETED.
.B1.I-24
<BEGIN DATE:TIME	^PROCESS ONLY THOSE CRASHES WHICH WERE DUMPED AFTER THE
SPECIFIED DATE AND TIME.
.B1.I-24
<CBEGIN DATE:TIME	^PROCESS ONLY THOSE CRASHES WHICH WERE COPIED AFTER
THE SPECIFIED DATE AND TIME.
.B1.I-24
<CEND DATE:TIME	^PROCESS ONLY THOSE CRASHES WHICH WERE COPIED BEFORE THE
SPECIFIED DATE AND TIME.
.B1.I-24
<DELETE	^DELETE THE CRASH FILE AFTER IT HAS BEEN DISPOSED.  <NODELETE
IS THE COMPLEMENT AND THE DEFAULT IF NO SWITCH IS SPECIFIED.
.B1.I-24
<DETAIL VALUE	^GIVE MORE DETAIL THAN THAT GIVEN BY THE NORMAL REPORT.
^LEGAL ARGUMENTS ARE <ALL WHICH GIVES A FULL REPORT, AND <DISPOSITION
WHICH GIVES ONLY THE DISPOSITION, IF ANY.
.B1.I-24
<END DATE:TIME	^PROCESS ONLY THOSE CRASHES WHICH WERE DUMPED BEFORE THE SPECIFIED
DATE AND TIME.
.B1.I-24
<HEADER	^GIVE A HEADER LINE ON THE <REPORT COMMAND.  <NOHEADER IS
THE COMPLEMENT AND CAUSES THE HEADER TO BE SUPPRESSED.
.B1.I-24
<INACTIVE	^PROCESS ONLY THOSE CRASH DUMPS WHICH HAVE BEEN DELETED.
<NOINACTIVE RESTRICTS THE COMMAND TO THE CRASHES WHICH HAVEN'T BEEN DELETED YET.
.B1.I-24
<MONVER N	^PROCESS ONLY THOSE CRASHES WHICH WERE RUNNING THE SPECIFIED
MONITOR VERSION.  ^THE ARGUMENT TO THIS COMMAND IS THE VERSION NUMBER
FROM THE MONITOR LOCATION <MONVER, NOT THAT CONTAINED IN <.JBVER.
.B1.I-24
<PRIMETIME	^PROCESS ONLY THOSE CRASHES WHICH OCCURRED DURING
PRIME TIME (0800-1700).
.B1.I-24
<SEQUENCE M:N	^PROCESS ONLY THOSE CRASHES WITH SEQUENCE NUMBERS
BETWEEN M AND N, INCLUSIVE.  ^IF ONLY ONE NUMBER IS SPECIFIED IT
IS TAKEN TO BE BOTH THE LOWER AND UPPER BOUND.
.B1.I-24
<STOPCD XXX	^PROCESS ONLY THOSE CRASHES WHICH OCCURRED BECAUSE OF
THE SPECIFIED <STOPCD.
.B1.I-24
<UNDISPOSED	^PROCESS ONLY THOSE CRASHES WHICH HAVE NOT YET BEEN
DISPOSED.  <NOUNDISPOSED IS THE COMPLEMENT AND RESTRICTS PROCESSING
TO THOSE CRASHES WHICH HAVE BEEN DISPOSED.
.TS 5.LM 0.B1
^THE REPORT, DISPOSITION OR MOVE SELECTION COMMANDS MAY ALSO APPEAR AS SWITCHES ON THE
<REPORT, <DISPOSITION, OR <MOVE COMMAND LINE, E.G.,
.B1
	^^CRSCPY>REPORT/BEGIN:TODAY\\
.BR
	^^CRSCPY>DISPOSITION/SEQUENCE:14:20\\
.BR
	^^CRSCPY>MOVE DSKR:=DSKN:/BEGIN:TODAY\\
.B1
^IF USED IN THIS MANNER, THE VALUE APPLIES ONLY TO THIS COMMAND.
^SUBSEQUENT COMMANDS WILL CONTINUE TO USE ANY STICKY DEFAULTS
SPECIFIED BY REPORT, DISPOSITION, OR MOVE SELECTION COMMANDS.  ^LOCAL SWITCHES OVERRIDE
ANY STICKY DEFAULTS.
.B2
.HL MONITOR INTERFACE
\\
.B1
^WHEN THE MONITOR TAKES A CONTINUABLE <STOPCD DUMP OR IS RELOADED,
IT STARTS THE CRASH COPY PROGRAM USING THE <FRCLIN MECHANISM (SEE
^^MCO\\S 8546, 8809, 8845, 8852, AND 8868).
^THE PROGRAM WHICH IS TO COPY THE CRASH(ES) IS RUN
LOGGED OUT BUT WITH THE <JACCT PRIVILEGE.  ^IT MUST DETERMINE THAT
IS WAS RUN ON <FRCLIN (SEE <MCO 8852 AND <GETTAB <%CNFLN) AND
DETACH ITSELF AS SOON AS POSSIBLE SO THAT <FRCLIN MAY BE USED AGAIN.
^IT MUST DETERMINE WHICH, IF ANY, STRUCTURES CONTAIN DUMPS WHICH HAVE
NOT BEEN COPIED, COPY THEN, AND THEN CLEAR THE BIT IN THE <RIB
(<RIPDMP IN <RIBSTS) WHICH TELLS <MONBTS THAT THE FILE CONTAINS
AN UNPROCESSED DUMP.  ^WHEN ALL DUMPS HAVE BEEN COPIED, IT MUST THEN
ISSUE A <LOGOUT <UUO.
.B2
.HL ALGORITHMS USED BY CRSCPY
\\
.B1
<CRSCPY DETERMINES WHETHER OR NOT IT WAS RUN ON <FRCLIN BY COMPARING
THE RESULTS OF A <GETLCH FOR ITS LINE WITH THE RESULT OF DOING
A <GETTAB FOR <%CNFLN.  ^IF IT IS RUNNING ON <FRCLIN, IT DETACHES
ITSELF IMMEDIATLY.  ^IF IT IS NOT RUNNING ON <FRCLIN,  <CRSCPY
WILL CONDITIONALLY CLEAR <JACCT.  ^IF THE SYMBOL <DFTPPN IS DEFINED,
<FILDAE IS NOT RUNNING, AND <CRSCPY IS RUNNING UNDER THE <PPN GIVEN
BY <DFTPPN, <JACCT WILL NOT BE CLEARED.  ^THIS IS USED DURING FIELD
TEST TO ALLOW <DEC TO DISPOSE CRASHES IN <CRASH.SYS FROM THE <PPN
ASSIGNED TO <DEC BY THE FIELD TEST SITE (USUALLY [10,1]).  <DFTPPN
SHOULD BE SET TO ZERO IF THE SITE IS NOT IN FIELD TEST OR IF THEY
RUN <FILDAE.
.B 1
^WHEN PROCESSING THE <DISPOSITION COMMAND, <CRSCPY STARTS WITH
THE ENTRY SPECIFIED BY THE LOWER BOUND TO THE /<SEQUENCE SWITCH
BY INDEXING DIRECTLY INTO THE FILE WITH <USETI AND <USETO.  ^IF
NO /<SEQUENCE SWITCH WAS SPECIFIED, <CRSCPY MUST START AT THE
BEGINNING OF THE FILE AND DO A LINEAR SCAN UNTIL IT FINDS
AN ENTRY MATCHING THE RESTRICTIONS.  ^IT IS MUCH MORE EFFICIENT
TO SPECIFY AT LEAST A BALL-PARK LOWER BOUND VIA /<SEQUENCE TO
AVOID HAVING TO SEARCH THE ENTIRE FILE.  ^THIS IS ESPECIALLY
IMPORTANT IF <CRASH.SYS IS LARGE.
.B 1
^WHEN PROCESSING THE <MOVE COMMAND, <CRSCPY USES THE SAME ALGORITHMS
DESCRIBED IN THE ABOVE PARAGRAPH.  ^THEREFORE, IT IS MUCH MORE
EFFICIENT TO SPECIFY A SEQUENCE NUMBER OR NUMBERS ON THE <MOVE
COMMAND ALSO.
.B 1
<CRSCPY FINDS UNPROCESSED DUMPS TO COPY BY FINDING THE NAME OF EACH
STRUCTURE IN THE SYSTEM WITH <SYSSTR, DOING A <DSKCHR ON THAT
STRUCTURE TO DETERMINE IF IT IS IN THE SYSTEM DUMP LIST AND THEN
LOOKING UP <CRASH.EXE[1,4] TO SEE IF <RIBDMP IS SET IN <RIBSTS.
^IT WILL NOT AUTOMATICALLY COPY CRASHES WHICH ARE DUMPED ON
STRUCTURES WHICH ARE NOT IN THE SYSTEM DUMP LIST.
.B 1
^WHEN <CRSCPY COPIES A CRASH FILE, IT COPIES THE LESSER OF THE
FILE SIZE AS SPECIFIED BY <.RBSIZ OR THE SIZE OF THE CRASH AS SPECIFIED
BY THE <.EXE DIRECTORY.  ^THIS MEANS THAT NO SPACE IS WASTED IN COPYING
BLOCKS THAT DO NOT CONTAIN DUMPED INFORMATION.  <CRSCPY DOES THIS
BY READING IN THE <.EXE DIRECTORY AND COMPUTING THE SIZE OF THE
DUMP FROM THE LAST POINTER.  ^NOTE THAT THIS COMPUTED SIZE IS USED
IN THE SELECTION OF THE OUTPUT STRUCTURE AS DESCRIBED BELOW.
.B 1
<CRSCPY SELECTS AN OUTPUT STRUCTURE BY FINDING A STRUCTURE IN ONE OF
THE SETS SPECIFIED IN THE <STRUCTURE COMMAND/SWITCH WHICH MEETS THE
MINIMUM BLOCK RESTRICTIONS AND WHICH WILL CONTAIN THE MOST SPACE
OF ANY STRUCTURE IN THE SET AFTER THE COPY IS DONE.  ^IF NO
STRUCTURE IS FOUND IN A SET WHICH MEETS THE BLOCK RESTRICTIONS,
<CRSCPY GOES ON TO THE NEXT SET.  ^IF EFFECT, <CRSCPY WILL LOAD
BALANCE COPIED CRASHES ACROSS STRUCTURES IN THE SAME SET AND WILL
GO TO THE NEXT SET IF AND ONLY IF IT REJECTS ALL STRUCTURES IN THE
CURRENT SET.  ^THIS SCHEME ALLOWS GREAT FLEXIBILITY IN SPECIFYING
WHERE CRASHES ARE TO BE COPIED.
^IF NO <STRUCTURE COMMAND/SWITCH WAS SPECIFIED, DEVICE <XPN IS USED.
^THE <STRUCTURE COMMAND/SWITCH IS USUALLY SPECIFIED WITH A LINE IN
<SWITCH.INI
OF THE FORM:
.B 1
	^^CRSCPY/STRUCTURE:(\\_<str:blk,str:blk,..._>,_<str:blk,..._>,...)
.B 1
<CRSCPY IS ASSEMBLED TO ACCEPT UP
TO FOUR SETS WITH UP TO TWENTY STRUCTURES IN ALL SETS.
^THESE DEFAULTS
MAY BE ADJUSTED BY CHANGING PARAMETERS <.MXSET, AND <.MXSTR.
.B 1
^WHEN RUN ON <FRCLIN, <CRSCPY SETS ITS JOB SEARCH LIST TO BE THE
FIRST TWO (ASSEMBLY PARAMETER, SEE <.SLSTR) STRUCTURES IN THE
SYSTEM SEARCH LIST.  ^THEREFORE, THE <SWITCH.INI SHOULD BE PLACED
ON ONE OF THESE STRUCTURES IN [2,5] SINCE IT RUNS LOGGED OUT.
^THIS WILL BE NECESSARY UNTIL <SCAN CAN BE TAUGHT TO READ THE
SYSTEM WIDE OPTIONS FILE (^^INI:SWITCH.INI\\) WITH SOME FUTURE
RELEASE.
.B 1
<CRSCPY SELECTS AN OUTPUT FILENAME BY APPENDING THE 3 CHARACTER
<STOPCD NAME WITH A 3 DIGIT SEQUENCE NUMBER OBTAINED FROM THE
HEADER OF THE LOG FILE, ^^SYS:CRASH.SYS\\, E.G., <EUE123.
^IF NO <STOPCD OCCURRED, <SER IS USED.
.B 1
<CRSCPY CLEARS THE UNPROCESSED DUMP BIT IN THE <RIB BY CALLING
<CLRBIT.  ^INSTALLATIONS THAT HAVE THEIR OWN CRASH COPY PROGRAMS
SHOULD INSTALL THIS ROUTINE IN THEIR PROGRAMS AND CALL IT WHEN
A CRASH IS COPIED.  <CLRBIT WORKS BY DOING A <USETI 0 AND READING
IN THE <RIB OF THE CRASH FILE, DOING A <DSKCHR ON THE CHANNEL
ON WHICH THE CRASH FILE IS OPEN TO GET THE PHYSICAL UNIT NAME
CONTAINING THE <RIB, OPENING THAT UNIT, AND DOING A SUPER <USETO
AND <OUTPUT TO REWRITE THE <RIB.  ^IF THIS ROUTINE IS NOT CALLED,
<MONBTS WILL NOT DUMP ON THIS FILE WITHOUT OPERATOR INTERVENTION.