-*- Text -*-				This is the file AI:.INFO.;DUMP INFO

HOW TO USE THE MACRO-TAPE DUMP AND LOAD PROGRAM: 

AFTER STARTING DUMP, OBSERVE THE PROMPT CHARACTER "_". 
TYPE "DUMP F" TO DO A FULL DUMP.
TYPE "DUMP I" TO DO AN INCREMENTAL DUMP.
TO DUMP ONLY ONE DIRECTORY, LET'S SAY FOO;, TYPE "DUMP".
WHEN THE PROGRAM SAYS "FILE =", TYPE "FOO;" FOLLOWED BY AN ALTMODE.


WHEN TYPING COMMANDS AT IT, "RUBOUT" WILL FLUSH AND ECHO THE LAST CHARACTER
UNTIL THE BEGINNING OF THE SYLLABLE.
TYPE CONTROL-G IF YOU WANT THE PROGRAM
TO IMMEDIATELY STOP WHAT IT IS DOING AND WAIT FOR
FURTHER INSTRUCTIONS.


THE COMMANDS ARE(FOLLOWED BY SPACE OR CR):

HELP	LISTS COMMANDS AVAILABLE
REWIND	REWIND TAPE
TAPED	CREATES A TAPE DIRECTORY ON THE DISK FOR
	THE CURRENTLY MOUNTED TAPE.  IT ASKS YOU IF YOU ARE SURE, IF
	A DIRECTORY ALREADY EXISTS FOR THE MOUNTED TAPE.
	ALL TAPE DIRECTORIES ON THE DISK
	ARE ON THE DISK DIRECTORIES .TAPE0 AND .TAPE1.
EOT	GO TO END OF TAPE (SO "DUMP" WILL APPEND NEW FILES RATHER 
	THAN OVERWRITE THE OLD ONES) 
SPACE <N>	SPACE FORWARD <N> FILES
LSPACE	SPACE FORWARD THROUGH FILES, LISTING NAMES OF EACH, 
	WAITS FOR CHARACTER EACH TIME, RUBOUT WILL TERMINATE.
LIST 	LIST ALL FILES FROM CURRENT POINT ON TAPE (ASK FOR 
	LISTING DEVICE TO USE BY TYPING "LIST=").
MFD	SIMILAR TO ABOVE, BUT LISTS OUT MASTER FILE DIRECTORY.
LISTF <DEV>:	SIMILAR TO ABOVE BUT LIST FILES ON DEVICE <DEV>.
TAPE	LIST INFORMATION AVAILABLE ON DISK ABOUT
	THE STATUS OF A PARTICULAR TAPE.(ASKS TAPE NO=, TYPES INFO ON TTY)
TAPES	LISTS ABOVE INFO FOR ALL TAPES , ASKS LIST=
TAPSET	DOES A TAPE THEN ALLOWS THE INFO TO BE RESET
TLIST	LIST NAMES OF FILES ON A TAPE DIRECTORY SAVED ON DISK.
	ASKS TAPE NO= AND LIST=
FIND	FIND WHAT TAPES PARTICULAR FILES ARE DUMPED ON(SEE BELOW).
LOAD	LOAD FILES FROM MAGNETIC TAPE (SEE BELOW).
DUMP	DUMP FILES ONTO MAGNETIC TAPE (SEE BELOW).
CDUMP	SAME AS "DUMP F", BUT CONTINUE FROM INTERRUPTION,
	SUCH AS SYSTEM LOSSAGE OR RELOAD. 


THE DUMP AND LOAD COMMANDS MUST BE FOLLOWED
BY A CARRIAGE RETURN WHICH MAY BE PRECEDED BY VARIOUS
SWITCHES, EACH OF WHICH MUST BE PRECEDED BY A SPACE.


THE SWITCHES HAVE THE FOLLOWING MEANING:

INCREM (OR I)	DUMP ONLY FILES WHOSE .DMPCH HAS NOT BEEN SET 
		(I.E. HAVE NOT BEEN PREVIOUSLY DUMPED)
MERGE (OR M)	LOAD ONLY THOSE FILES WHICH DO NOT ALREADY EXIST.
EXPERM (OR E)	DO NOT SET .DMPCH FOR THE FILES BEING DUMPED, 
		SINCE THIS IS ONLY AN EXPERIMENTAL DUMP.
CARE (OR C)	DO NOT LOAD FILES WHICH ALREADY EXIST ON DISK 
		AND DO NOT HAVE THEIR .DMPCH SET (I.E. PROBABLY CREATED NEW 
		SINCE THE VERSION ON TAPE WAS CREATED).
LIST (OR L)	LIST USERS WHEN DOING A FULL DUMP, LIST FILES 
		WHEN DOING A DUMP OF ONE USER - SIMILARLY FOR LOADING 
		(ASK WHAT LISTING DEVICE TO USE BY TYPING "LIST=").
ARCHIVE (OR A)	MARK THIS SET OF TAPES ON DISK AS A ARCHIVE.
		ATTEMPTED DUMPS ON THESE TAPES WILL SAY
		THAT TAPE IS AN ARCHIVE. ARE YOU SURE?
FULL (OR F)	DUMP THE WHOLE WORLD (ALL FILES)
		EQUIVALENT TO DSK:*;* *(SEE BELOW)


IF YOU JUST TYPE "DUMP FULL", THE PROGRAM GOES AHEAD AND
IMMEDIATELY DUMPS EVERY FILE FROM THE DISKS ONTO MAGNETIC
TAPE.  IF THE F SWITCH IS NOT SPECIFIED, OR YOU TYPE
"LOAD" OR "FIND", THE PROGRAM TYPES "FILE=" AND WAITS FOR
A FILE SPECIFICATION LINE FOLLOWED BY A CARRIAGE RETURN OR
AN ALTMODE.  IT THEN TYPES "FILE=" AGAIN UNLESS YOU TYPED
ONLY A CARRIAGE RETURN FOR THE LAST FILE SPECIFICATION
LINE, OR YOU TERMINATED THE LAST LINE WITH AN ALTMODE OR
YOUR LAST LINE IMPLIED THE WHOLE WORLD (*;* *), IN WHICH
CASE THE PROGRAM RETURNS TO THE CALLING ROUTINE.  (LOAD,
DUMP, OR FIND).  A FULL FILE SPECIFICATION LINE IS OF THE
FORM "DEV:USR;FN1 FN2_DEV:USR;FN1 FN2".  FOR EXPLANITARY
PURPOSES, LET'S CALL THE SPECS BEFORE THE "_" "TO" ARGS
AND THE ONES TO THE RIGHT OF THE "_" "FROM" ARGS.  ANY
UNSPECIFIED ARG IN A SPECIFICATION LINE IS GIVEN THE VALUE
OF SOME DEFAULT FOR THAT ARG.  THE DEFAULT FOR "FROM"
DEVICE SPECIFICATION IS DSK:.  THE INITIAL DEFAULT FOR
"FROM" SNAME IS YOUR USER NAME.(WHAT YOU LOGGED IN AS.)
THE INITIAL DEFAULT FOR "FROM" FN1 AND FN2 IS "*".  THE
DEFAULT FOR "FROM" SNAME, FN1, AND FN2 IS HENCEFORTH THE
"FROM" SPEC FROM THE LAST SPECIFICATION LINE.  "TO" ARGS
ALWAYS DEFAULT TO THE CORRESPONDING "FROM" ARG OF THE SAME
SPEC LINE.  A SPECIFICATION "*" HAS SPECIAL MEANINGS AS
DESCRIBED BELOW.  TO REALLY CAUSE A SPECIFICATION TO BE AN
ASTERISK, PRECEDE IT WITH A CONTROL-Q.  AFTER DOING THIS,
YOU SHOULD SEE ON YOUR TERMINAL "^Q*".  THE CHARACTERS
BACKARROW"_", SEMI-COLON";", COLON":", AND SPACE" " MUST
ALSO BE PRECEDED BY A CONTROL-Q, IF THEY ARE USED AS PART
OF A SPECIFICATION.

IF THE "_" IS NOT TYPED AT ALL, ALL THE ARGS OF THE SPEC
LINE ARE ASSUMED TO BE "FROM" ARGS.

THE DUMP COMMAND IGNORES ALL "TO" ARGS.  IT DUMPS ALL THE
FILES THAT MATCH ANY OF THE SPEC LINES.  AN "*" AS AN ARG
IN A SPEC LINE CAUSES ANYTHING TO BE MATCHED TO IT.  FOR
INSTANCE "*;" MEANS ANY DIRECTORY.

EXAMPLES OF DUMP:
TO DO AN INCREMENTAL DUMP, YOUR TTY SCREEN OR PAPER
MIGHT LOOK LIKE THIS:

_DUMP I
TAPE NO=105

_


THE PROGRAM ONLY ASKS FOR A TAPE NO IF IT DOESN'T ALREADY
KNOW IT.

TO DUMP THE FILE CALLED "RANDOM CRUD" FROM YOUR DIRECTORY
AND ALL OF THE FILES FROM FOO'S DIRECTORY, IT MAY LOOK
LIKE THIS:

_DUMP
FILE= RANDOM CRUD
FILE=FOO;* *
FILE=

_

TO DO A FULL DUMP, IT MIGHT LOOK LIKE THIS:

_DUMP F
TAPE NO=239

_

NOTE THAT A SPEC LINE IN A NON-FULL DUMP SAYING *;* *
CAUSES THE WHOLE WORLD TO BE DUMPED AS THOUGH YOU HAD USED
THE FULL SWITCH.


TO RESTART A FULL DUMP AFTER SOME ACCIDENT SUCH AS SYSTEM
CRASH, TYPE CDUMP <SWITCHES><RETURN>.  THE PROGRAM TRIES
TO INTELLIGENTLY CONTINUE DUMPING FROM WHERE IT LEFT OFF.
IF IT NEEDS SOME INFORMATION, IT WILL ASK YOU FOR IT.


THE LOAD COMMAND SEARCHES THROUGH THE CURRENT TAPE FOR
FILES MATCHING ANY OF THE SPECIFICATION "FROM" SPECS.  IF
IT FINDS A MATCH, IT LOADS IT INTO THE "TO" SPEC OF THE
LINE THAT WAS SUCCESSFULLY MATCHED.  THE CHARACTER "*" IN
A FROM SPEC MEANS MATCH TO ANYTHING, AND AN "*" IN A "TO"
SPEC GETS REPLACED WITH THE CORRESPONDING "FROM" ARG READ
FROM THE TAPE ITSELF.  IN OTHER WORDS, IF THE FILE ON THE
TAPE IS "HUR;TICTAC 9", THEN IT COULD MATCH THE SPEC LINE
"FOO;* 9_HUR;TICTAC *" WHICH WOULD CAUSE THE PROGRAM TO
TAKE THE FILE "TICTAC 9" FROM THE TAPE AND SAVE IT ON THE
DISK ON DIRECTORY "FOO" WITH THE NAME "TICTAC 9".  SOME
EXAMPLES SHOULD CLEAR IT ALL UP:


_LOAD
FILE=FOO;
FILE=

_

THE ABOVE IS HOW YOUR TTY SCREEN OR PAPER MIGHT LOOK IF
YOU TOLD THE DUMP PROGRAM TO RESTORE DIRECTORY "FOO"
COMPLETELY FROM TAPE.

TO LOAD A FILE INTO DIRECTORY "FOO" THAT IS STORED ON TAPE
AS "SHRDLU;MOBY DUMP", YOUR PAPER OR SCREEN MAY LOOK LIKE
THIS:

_LOAD
FILE=FOO;_SHRDLU;MOBY DUMP$

_

TO LOAD A BUNCH OF ARBITRARY FILES, THE APPEARANCE MIGHT BE:

_LOAD
FILE=HAL;ROBOT *
FILE=FOO;THIS ONE
FILE=*;HACK
FILE=

_

THAT LAST SPECIFICATION LINE MEANS TO LOAD ANY FILES ON
THE CURRENT TAPE THAT HAVE THE FIRST NAME OF "HACK".
OBSERVE THAT BY THE DEFAULT RULES GIVEN ABOVE, IF THERE IS
NO "_" IN A SPEC LINE FOR THE LOAD COMMAND, FILES THAT
MATCH THAT SPEC GET LOADED INTO THE SAME DIRECTORY THEY
WERE DUMPED FROM.

THE FOLLOWING IS HOW TO LOAD THE WHOLE WORLD FROM THE
CURRENT TAPE WITHOUT FEAR OF DELETING ANY EXISTING FILES
FROM THE DISKS THAT HAVEN'T YET BEEN DUMPED:

_LOAD CARE
FILE=*;* *
FILE=

_

THE FIND COMMAND TRIES ALSO TO MATCH "FROM" ARGS, BUT IT
SEARCHES THE FILES ON DIRECTORIES ".TAPE0" AND ".TAPE1" FOR
THE FILE NAMES OF FILES THAT HAVE BEEN DUMPED.
IF THE FIND COMMAND FINDS A MATCH, IT TELLS YOU THE TAPE #,
USER NAME, FILE NAME, AND CREATION DATE AND TIME.

EVERY TAPE THAT IS WRITTEN ON WITH THE DUMP PROGRAM HAS A
CORRESPONDING DIRECTORY FOR IT STORED ON THE DISK.  THE
DIRECTORY IS A FILE NAMED "TAPE NNN" WHERE "NNN" IS THE
TAPE NO OF THE TAPE.  THE DISK DIRECTORY ON WHICH THIS
DIRECTORY MAY BE FOUND IS ".TAPE0;" FOR EVEN NUMBERED
TAPES, AND ".TAPE1;" FOR ODD NUMBERED TAPES.

THE FIRST WORD IN A TAPE DIRECTORY IS -N,,0.  N IS THE
NUMBER OF WORDS IN THE TAPE HEADER INCLUDING THIS FIRST
WORD.  CURRENTLY N IS 4, AND THE NEXT WORD HAS THE TAPE NO
(NUMBER) IN THE LEFT HALF AND THE REEL NUMBER IN THE RIGHT
HALF.  THE NEXT TWO WORDS HOLD THE SIXBIT DATE OF CREATION
OF THE TAPE, AND A NUMBER DESIGNATING WHAT TYPE OF DUMP
THIS TAPE IS.  0 MEANS RANDOM, -1 MEANS FULL, AND 1 MEANS
INCREMENTAL.

THE NEXT WORD IS -N,,0 WHERE N, CURRENTLY 5, TELLS THE
NUMBER OF WORDS IN EACH FILE BLOCK.  THE REST OF THE
DIRECTORY IS FILE BLOCKS.  EACH FILE BLOCK TELLS
INFORMATION ABOUT ONE FILE DUMPED FROM A DISK ONTO THIS
TAPE.  CURRENTLY, THE 5 WORD BLOCK SPECIFIES IN THE
FOLLOWING ORDER, DIRECTORY FILE WAS DUMPED FROM, FIRST
FILE NAME, SECOND FILE NAME, DISK PACK NUMBER FILE CAME
FROM, AND COMPACT DATE AND TIME OF CREATION FOR THE FILE.


THE FORMAT OF DATA ON THE TAPE IS IDENTICAL TO THE FORMAT
OF THE DIRECTORY DESCRIBED ABOVE, EXCEPT FOR THE FOLLOWING
THINGS:  THE FILE ITSELF IS WRITTEN ON THE TAPE AFTER THE
FILE BLOCK.  EACH FILE IS FOLLOWED BY A SYSTEM "END OF
FILE" MARK ON THE TAPE.  THE WORD -N,,0 THAT PRECEDES THE
FIRST FILE BLOCK IN THE DIRECTORY PRECEDES EVERY FILE
BLOCK ON THE TAPE.  IF A FILE BEING DUMPED IS ACTUALLY
ONLY A LINK TO ANOTHER FILE ON THE DISK, THE WORD USUALLY
HOLDING THE PACK NUMBER IS USED TO HOLD THE DIRECTORY NAME
OF THE DIRECTORY CONTAINING THE FILE THAT THIS ONE IS
LINKED TO.  FOR LINKS, THE ACTUAL FILE CONTENTS ON THE
TAPE IS ONLY A SPECIFICATION AS TO WHICH FILE THIS FILE IS
LINKED TO.

A CRUDE COMPARE OPERATION IS POSSIBLE BY USING THE FOLLOWING COMMAND:
LCHECK	WILL LIST OUT A LOT OF INFORMATION ABOUT THE FILES ON 
	MACRO-TAPE WHILE COMPARING THEM WITH SIMILARLY NAMED FILES 
	ON DISK (WILL ASK FOR LISTING DEVICE BY TYPING "LIST=").
CHECK	SIMILAR BUT ONLY LISTS FILES IT HAD PROBLEMS WITH.



ERROR COMMENTS:

WHEN OPENING A CERTAIN FILES DOES NOT WIN THE PROGRAM WILL 
TYPE THE APPROPRIATE (FILE NAME AND) REASON, THIS IS ALSO TRUE OF VARIOUS 
I/O ERRORS. AT TIMES THE PROGRAM MAY GET CONFUSED 
AND TYPE ONE OF THE FOLLOWING:

<N> RANDOM INTERRUPT	UN-ENABLED INTERRUPT <N> HAPPENED.
<N> INTERRUPT FROM RANDOM DEVICE <MESSAGE>	INTERRUPT FROM 
	DEVICE <N> (OTHER THAN MACRO-TAPE), STATUS AS IN <MESSAGE>.
INTERRUPT ON MAG TAPE WHEN NOT DUMPING <MESSAGE>	INTERRUPT 
	FROM MACRO-TAPE WHILE IN OPERATION OTHER THAN DUMP. STATUS 
	AS IN <MESSAGE>.
<N> INTERRUPT ON OUTPUT NOT END OF TAPE <MESSAGE>	INTERRUPT 
	<N> HAPPENED ON MAG-TAPE OUTPUT.
OTHER ERROR COMMENTS EXPLAIN THEMSELVES.

 
CAPACITY:

AT 800 BPI A 2400 FOOT TAPE COULD HOLD 3840. BLOCKS (1024. WORDS EACH)
IF THE WHOLE TAPE WAS ONE RECORD. ASSUMING ONE INCH INTERRECORD GAPS,
RECORDS OF SIZE 1024. WORDS, BUT STILL ONLY ONE FILE, THIS IS REDUCED
TO 3400. BLOCKS. IN PRACTICE ONE GETS ONLY ABOUT 2500. BLOCKS ON ONE
REEL (REST OF SPACE TAKEN UP BY HEADERS, INTERRECORD GAPS AND FILE MARKS). 

These are the DUMP commands and options and their
self-documentation as of 9/2/81:


_?
FIND    Find what tape a particular file is on
OFIND   FIND command using a tape for info
DUMP    Dump files
LOAD    Load files
RELOAD  Load files, modify dir ctory from tape copy
CLOAD   Continue previous LOAD RELOAD operation
CDUMP   Continue full dump
REWIND  Rewind mag tape
UNLOAD  Rewind/unload
EOT     Go to end of tape
SPACE   Space forward n files
LSPACE  Space forward and list files, hit <space> after each
LIST    List files on tape
MFD     List MFD from disk
LISTF   List a file directory from disk
HELP    Type out commands
CHECK   Check files on tape against disk
LCHECK  Check files and list them
ICHECK  Check files on incremental dump, update dump-check bits
TAPED   Generate tape directory from mounted tape
TAPES   List all saved tape info
TAPE    List saved info about one tape
TAPSET  Set tape info for one tape
TLIST   List files on a tape (from tape directory stored on disk)
GFR     Grim File Reaper (Don't use this, please)
QUIT    return to DDT
ERRSTS  Print tape control status as of last error
ALLOC   Examine or change directory allocation
LSTALC  List all directories with allocations
PTDIR   Print directories from tape


_dump ?
INCREM, I   Do an Incremental Dump
FULL, F     Do a Complete dump
LIST, L     Generate a listing of files loaded or dumped
MERGE, M    Don't load over existing file with the same name
CARE, C     Don't load over files not yet backed up
EXPERI, E   Don't set has-been backed-up bits
SORRY, S    Go ahead and load over files with newer creation dates
NOASK       Don't ask whether a file should be loaded over, assume "no"
DATE        Dump only files with creation date greater or equal specified
DATES       Dump only files with creation date between two dates specified
ARCHIV, A   Declare this dump tape to be Archival.
REAP, R     Do a reap after dumping (don't use this, please)
DECIDE, D   (Supposedly controls tape number assignment)
NO          Don't check incremental dump (one pass instead of two)


_gfr ?
H       MAKE HISTOGRAM OF BLOCKS FREED VERSUS DATE
L       LIST HISTOGRAM AND/OR FILES REAPED
DUMP    DUMP REAPED FILES ONTO TAPE
DELETE  DELETE REAPED FILES (AFTER DUMPING)
TO dev  DUMP TO DISK DEVICE dev  (E.G. SECOND) INSTEAD OF TAPE
DATE    ENTER DATE OF OLDEST FILE TO RETAIN
BLOCKS  ENTER NUMBER OF BLOCKS TO BE OBTAINED
CREATE  USE CREATION DATE INSTEAD OF REFERENCE DATE
QUOTA   ENFORCE DIRECTORY QUOTAS
ALLOC   REAP ALLOCATED DIRS TOO
EVERY   ALLOW NO SPECIAL DIRECTORIES (DON'T USE THIS, PLEASE!)
FROM dev REAP OFF OF DEVICE dev (E.G. SECOND) AS WELL AS MAIN DISK.
ONLY    REAP ONLY FROM SPECIFIED DEVICE, NOT MAIN DISK.
DISK    DUMP TO SECONDARY DISK INSTEAD OF TAPE
        (THIS IS AN OBSOLETE FORM FOR "TO SECOND")
SECOND  REAP SECONDARY DISK ALSO
        (THIS IS AN OBSOLETE FORM FOR "FROM SECOND")
