Google
 

Trailing-Edge - PDP-10 Archives - bb-x130a-sb - failsa.doc
There are 8 other files named failsa.doc in the archive. Click here to see a list.


                         FAILSA.DOC
               VERSION 100(47)--AUGUST, 1974















COPYRIGHT (C) 1973,1978,1979 BY
DIGITAL EQUIPMENT CORPORATION, MAYNARD, MASS.


THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY BE USED AND  COPIED
ONLY  IN  ACCORDANCE  WITH  THE  TERMS  OF  SUCH  LICENSE AND WITH THE
INCLUSION OF THE ABOVE COPYRIGHT NOTICE.  THIS SOFTWARE OR  ANY  OTHER
COPIES  THEREOF MAY NOT BE PROVIDED OR OTHERWISE MADE AVAILABLE TO ANY
OTHER PERSON.  NO TITLE TO AND OWNERSHIP OF  THE  SOFTWARE  IS  HEREBY
TRANSFERRED.

THE INFORMATION IN THIS SOFTWARE IS SUBJECT TO CHANGE  WITHOUT  NOTICE
AND  SHOULD  NOT  BE  CONSTRUED  AS  A COMMITMENT BY DIGITAL EQUIPMENT
CORPORATION.

DIGITAL ASSUMES NO RESPONSIBILITY FOR THE USE OR  RELIABILITY  OF  ITS
SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPLIED BY DIGITAL.
  1.0 SUMMARY


THIS UPDATE FIXES NUMEROUS BUGS IN  VERSION  76/77
(LAST  RELEASE). FAILSA VERSION 100, ALIAS FAILWC,
RESTORES 5-SERIES TAPES UNDER BOTH FOUR  AND  FIVE
SERIES  DISK  MONITORS.  FAILSA VERSION 101, ALIAS
FAILSA, RESTORES 5-SERIES TAPES UNDER FIVE  SERIES
DISK  MONITORS.   FAILSA  CONFORMS  TO  THE DATE75
SPECIFICATIONS.


FAILSA VERSION 100(47) WILL RUN ON  ALL  SUPPORTED
MONITORS.  IT  HAS  BEEN TESTED UNDER 506 AND 507,
AND FULLY SUPERSEDES ALL PREVIOUS VERSIONS.


FAILSA IS DOCUMENTED IN SOFTWARE NOTEBOOK VOL.  7.
FAILSA.DOC                                            Page 2


2.0 EXTERNAL CHANGES


  EDIT--47
THIS EDIT CAUSES FAILSA TO SAVE ALL FILES  WITH  A
CREATION  OR  ACCESS  DATE OLDER THAN 1 JAN 67 AND
FILES WITH A DATE EQUAL TO 5 JAN 75.  THIS IS DONE
WITHOUT  REGARD TO THE /E OR /F SWITCH SETTINGS IN
AN ATTEMPT TO PREVENT THE USER FROM  LOSING  FILES
DUE  TO  DATE-75  BUGS.  IN A /K/U SAVE FILES WITH
"FUNNY" DATES ARE NOT DELETED OR SAVED SINCE THEY
ARE ASSUMED TO BE NEW FILES. IF FILES WITH "FUNNY"
DATES ARE NOT RESTORED DURING THE RESTORE  PROCESS
A  MESSAGE  IS  PRINTED  ON  THE  USERS CONSOLE. A
FILCOM OF THIS PATCH IS APPENDED  TO  THE  END  OF
THIS FILE.


  EDIT--46
FIXES EDIT 37 WHICH CAUSED  ALL  PROJECTS  GREATER
THAN 10 TO BE SAVED AND DELETED IN /K MODE.


  EDIT--45
FIXES "ADDRESS CHECK FOR DPA0..." WHEN COMMAND WAS
"/W/U/W/U"  AND  NO  FILES WERE SAVED FOR THE LAST
FILE STRUCTURE IN THE SEARCH LIST


  EDIT--44
/E STILL DOESN'T WORK.  THE TIME  FIELDS  ARE  NOT
ALIGNED BEFORE THEY ARE COMPARED.


  EDIT--43
"SWAPQ" ROUTINE REENTERS THE "TAPFL4"  ROUTINE  AT
THE WRONG POINT.  THIS PROBLEM OCCURES WHEN SAVING
WITH A /G OR /O SWITCH AND EOT IS ENCOUNTERED.


  EDIT--42
ARGUMENTS FOR DSKCHR AT "X:" ARE NOT INITIALIZED


  EDIT--41
DON'T CHECK THE VERSION NUMBER WHEN SAVING FILES AT
THE  CHKCRE  ROUTINE.   THIS  FIX  ALLOWS THE "/E"
SWITCH TO WORK PROPERLY.


  EDIT--40
ZERO THE PROTECTION FIELD  WHEN  PERFORMING  ENTER
FOR  FAILSA.DIR.   PREVENTS SUBSEQUENT ENTERS FROM
FAILING.
FAILSA.DOC                                            Page 3


  EDIT--37
EXTENDS THE CRITERIA FOR EXEMPTING FILES FROM A /K
PURGE  TO  INCLUDE  ALL  PROJECTS GREATER THAN 10.
AREAS AFFECTED:  UNCONS


  EDIT--36
MASKS DATE TO 15 BITS.  THIS IS  A  PATCH  TO  THE
DATE75 CODE. AREAS AFFECTED:  YRSMOS


  EDIT--35
ADDS A  CONTROL-Z  TRAP.  AREAS  AFFECTED:   ILCH,
NOTYET


  EDIT--34
REINITIALIZES THE TTY PRIOR  TO  ATTEMPTING  ERROR
MESSAGE PRINT ON OUTPUT FILE LOOKUP FAILURE. AREAS
AFFECTED:  PRINT


  EDIT--33
REMOVES UNCONDITIONAL DEFINITION OF ALFLEX.  AREAS
AFFECTED:  ALFLEX


  EDIT--32
PROVIDES  PROPER  OPERATION   OF   /K   WITH   /F.
PREVIOUSLY  SAVED AND DELETED FILES ACCESSED AFTER
RATHER THAN BEFORE THE /F  DATE.  AREAS  AFFECTED:
          CUSPPN, MORE10


  EDIT--31
CONVERT THE DATE FORMAT FROM A 12 BIT FIELD  TO  A
15 BIT FIELD.


  EDIT--30 (SPR 10-10280)
PROVIDES FOR AN ERROR RETURN FROM THE GETPPN UUOS.


TERMINATE CONDITIONAL ASSEMBLY  CODE  IN  THE  FS1
ROUTINE, AN ANGLE BRACKET IS MISSING.


TYPE "SYS:FAILSA.HLP FILE NOT FOUND" INSTEAD OF "H
IS ILLEGAL".


CHECK FOR A -1 RETURN FROM JOBSTR UUO.

FAILSA.DOC                                            Page 4


GET DENSITY BITS FROM THE INIT ARGUMENT BLOCK WHEN
THE MTCHR.  UUO FAILS.


TYPE CURRENT DATE AND TIME FOR /R OPERATION AS  IS
DONE FOR /S OPERATION.


FOR /T OPERATION FORCE OUT LEFT ANGLE  BRACKET  TO
INDICATE THAT FILE RESTORE WAS STARTED.


WRONG TEST IS MADE FOR UUOS  IN  MAYBE  AND  EXNAM
ROUTINES.


  EDIT--27 (SPR 10-9515)
THE "/L" OPERATION  DOES  NOT  CLOSE  THE  CHANNEL
ASSIGNED  TO  THE  MTA.   THIS  LEADS  TO "ADDRESS
CHECK" IF "/R" IS THE NEXT OPERATION AND  THE  PPN
IS NOT EQUAL TO 1,2.


  EDIT--26
THE "/T" AND "/Q" OPERATION CAUSE "ILL  MEM  REF".
THE  ROUTINES  SHOULD BE CALLED WITH A "PUSHJ" NOT
"JRST".


  EDIT--25
CLEAN-UP


  EDIT--24 (SPR 10-8532/10118)
THE FEATURE TO SAVE/RESTORE  FILES  OF  A  MINIMUM
LENGTH  FAILS  WHEN  THE  "/E"  OR  "/F" SWITCH IS
SPECIFIED.


  EDIT--23 THRU 14
MAKE GOBSTR WORK PROPERLY.


THE NUMBER OF RELEASE UUOS ARE  MINIMIZED  IF  THE
CONDITIONAL  ASSEMBLY  SWITCH  MINREL EQUALS ZERO,
THE DEFAULT VALUE.


BALANCE THE PUSH-DOWN  STACK  BEFORE  EXITING  THE
FORGIVE ROUTINE SO PDL OVER-FLOW IS AVOIDED.


THE WRONG FLAVOR OF  CONDITIONAL  ASSEMBLY  SWITCH
COMUFD  IS  BEING  TESTED SO UNUSED BLOCKS ARE NOT
DEALLOCATED.
FAILSA.DOC                                            Page 5


DO NOT TRANSFER A FILE TO DISK IF IT HAD ANY  TAPE
ERRORS.


IF MONITOR AND  FAILSA  DISAGREE  ON  RECORD  WORD
COUNT DON'T TRANSFER THE FILE.


AAN ATTEMPT TO COMPLY WITH DATE75 STANDARD -- ZERO
THE  LOOKUP/ENTER  ERROR CODE BUT NOT THE HI-ORDER
CREATE DATE BITS.
FAILSA.DOC                                            Page 6


3.0 KNOWN DEFICIENCIES

CAUTIONS WITH FAILSA:  ALL THE FOLLOWING  PROBLEMS
HAVE BEEN AROUND FOREVER.

          1) ERROR REPORTING IS MINIMAL AND  THEREFORE  VERY
          POOR.   IT  IS  RECCOMENDED  THAT A USER ALWAYS AT
          LEAST DO A  DIRECTORY  OF  A  FAILSA  TAPE  BEFORE
          BELIEVING   THE  TAPE  IS  GOOD.   AND  EVEN  THEN
          SOMETIMES DIRECT WILL NOT FIND ERRORS THAT  FAILSA
          WILL.

          2) FAILSA THINKS OF A SAVE SET  AS  A  "TAPE"  AND
          SOME  OF  ITS MESSAGES CAN BE MISLEADING.  ONE CAN
          ACCIDENTALLY WIPE OUT LATER SAVE  SETS  BY  TAKING
          FAILSA   MESSAGES   ABOUT   "END  OF  TAPE"  ,ETC.
          LITERALLY

          3) FAILSA ISN'T VERY SMART ABOUT  FILE  NAMES  AND
          STRUCTURES.   WHEN   GOING   TO  TAPE,  FAILSA  IS
          STRUCTURE-MINDED AND WHEN GOING TO DISK IT IS FILE
          NAME-MINDED.   THESE  ARE EXCLUSIVE OF EACH OTHER.
          THEREFORE, IF A USER HAS A FILE BY THE  SAME  NAME
          ON  TWO  STRUCTURES IN THE SAME SAVE SET, AND ASKS
          FOR THAT FILE NAME, FAILSAFE WILL ONLY GET THE ONE
          ON THE FIRST STRUCTURE.  IT IS ALSO TRUE THAT EVEN
          IF A USER SAYS /E AND ONLY THE FILE IN  THE  LATER
          STRUCTURE  FITS  THE  DESCRIPTION, FAILSA DOES THE
          WRONG THING.  IT LOOKS  ON  THE  FIRST  STRUCTURE,
          FINDS  THE RIGHT NAME AND SAYS "FILE FOUND" ON THE
          USER'S TERMINAL.  IT THEN NOTICES THE DATE IS  TOO
          EARLY  FOR  WHAT IS SPECIFIED BY THE /E COMMAND SO
          IT DOESN'T RESTORE THE  FILE  IT  SAID  IT  FOUND.
          NOTHING  CAN  INDUCE  FAILSA  TO  LOOK  ON A LATER
          STRUCTURE UNDER THESE CIRCUM- STANCES.   THE  ONLY
          WAY TO GET SUCH A FILE OFF IS WITH A COMPLETE WILD
          CARD.

          4) SFD  FILES  ARE  IGNORED,  RATHER  THAN   BEING
          TREATED  AS  A DIRECTORY FILE.  FILES UNDER AN SFD
          ARE THUS NOT SAVED BY FAILSA.


4.0 CHANGES IN INSTALLATION INSTRUCTIONS

NONE.


 5.0 INTERNAL CHANGES

THE SOURCE FILE NOW CONTAINS PAGE NUMBERS.  FAILSA
CONFORMS TO THE DATE75 SPECIFICATIONS.
File 1)	DSK:FAIL47.MAC	created: 1625 17-OCT-1984
File 2)	DSK:FAILSA.MAC	created: 0000 04-SEPT-1974

1)1	TECONO==47
1)	;THE # TIMES TECO-ED
****
2)1	TECONO==46
2)	;THE # TIMES TECO-ED
**************
1)1	; EDIT 47 - THIS PATCH CAUSES FAILSA TO SAVE ALL FILES WITH
1)	;		A CREATION OR ACCESS DATE OLDER THAN 1/1/67 OR
1)	;		WITH A DATE EQUAL TO 1/5/75. THIS IS DONE WITHOUT
1)	;		REGARD TO /E OR /F SWITCH SETTINGS IN AN ATTEMPT
1)	;		TO PREVENT THE USER FROM LOSING FILES DUE TO DATE75
1)	;		BUGS. IN A /K/U SAVE FILES WITH "FUNNY" DATES ARE NOT
1)	;		DELETED OR SAVED SINCE THEY ARE ASSUMED TO BE NEW FILES.
1)		RELOC
****
2)1		RELOC
**************
1)34		 JRST	[LDB	W,[POINT 3,FILDIR+3,20]	;[47]BRING
1)			LDB	U,[POINT 12,FILDIR+4,35];[47] CREATION
1)			LSH	W,14		;[47] DATE
1)			IOR	U,W		;[47] TOGETHER
1)			CAIE	U,10000		;[47] DATE = 1/5/75 OR
1)			CAIGE	U,2134		;[47] LESS-THAN 1/1/67 ?
1)			CAIA			;[47] YES - SAVE THE FILE
1)			JRST	MORE2		;[47] CRDATE .GT. FILE'S CREATE-DATE
1)			SETZ	A,		;[47] TO PASS ACCESS DATE CHECK
1)			JRST	UNCONS	]	;[47] SAVE IT
1)		 JFCL				;DATES ARE EQUAL
****
2)34		 JRST	MORE2			;CRDATE .GT. FILE'S CREATE-DATE
2)		 JFCL				;DATES ARE EQUAL
**************
1)34		CAIE	A,10000		;[47] IF DATE = 1/5/75 OR
1)		CAIGE	A,2134		;[47] OR LESS-THAN 1/1/67
1)		JRST	UNCONS		;[47] SAVE FILE ELSE
1)		SUB	A,ACCDAT	;COMPARE TWO DATES
****
2)34		SUB	A,ACCDAT	;COMPARE TWO DATES
**************
1)59		JRST	[PUSHJ P,FNR		;[47] DONT RESTORE THIS FILE
1)			JRST FTAPIN]		;[47]
1)		JFCL
****
2)59		JRST	FTAPIN
2)		JFCL
**************
1)59		JRST	[PUSHJ P,FNR1		;[47] YES, DON'T RESTORE THIS FILE
1)			JRST FTAPIN]	;[47]
1)	SKPCHK:	MOVE	U,5(B)		;GET THIS GUY'S PPN
****
2)59		JRST	FTAPIN		;YES, DON'T RESTORE THIS FILE
2)	SKPCHK:	MOVE	U,5(B)		;GET THIS GUY'S PPN
**************
1)60		JFCL			;YES, CLOSE CHK AND GET NEXT FILE
1)		JRST	[PUSHJ P,FNR	;[47] =, "FILE NOT RESTORED"
1)			JRST FTPIN1]	;[47]
File 1)	DSK:FAIL47.MAC	created: 1625 17-OCT-1984
File 2)	DSK:FAILSA.MAC	created: 0000 04-SEPT-1974

1)		CLOSE	CHK,DNC		;NO, CLOSE DISK FILE
****
2)60		JRST	FTPIN1		;YES, CLOSE CHK AND GET NEXT FILE
2)		JRST	FTPIN1		;=
2)		CLOSE	CHK,DNC		;NO, CLOSE DISK FILE
**************
1)81	ESTPR3:	MOVE	A,TAPHED		;[47] GET CURRENT STRUCTURE
1)		MOVE	B,3(A)	;
****
2)81		MOVE	A,TAPHED		;GET CURRENT STRUCTURE
2)		MOVE	B,3(A)	;
**************
1)81	FNR:	LDB	A,[POINT 3,7(B),20]	;[47] GET TOGETHER
1)		LDB	U,[POINT 12,10(B),35]	;[47] A CREATION
1)		LSH	A,14			;[47] DATE
1)		IOR	A,U			;[47]
1)	FNR1:	CAIE	A,10000			;[47] IF DATE = 1/5/75 OR
1)		CAIGE	A,2134			;[47] LESS-THAN 1/1/67
1)		CAIA				;[47] TELL USER FILE NOT RESTORED
1)		POPJ	P,			;[47] ELSE GET NEXT FILE
1)		LDB	A,[POINT 15,7(B),35]	;[47] GET ACCESS DATE
1)		PUSH	P,A			;[47] SAVE IT
1)		LDB	A,[POINT 3,7(B),20]	;[47] GET CREATION DATE
1)		LDB	U,[POINT 12,10(B),35]	;[47]
1)		LSH	A,14			;[47]
1)		IOR	A,U			;[47]
1)		PUSH	P,A			;[47] SAVE IT
1)		PRLIN1	<FILE NOT RESTORED#>
1)		PUSHJ	P,ESTPR3		;[47] PRINT FILE DESCRIPTOR
1)		 JFCL				;[47]
1)		PR1	<CREATE DATE:#>
1)		POP	P,Q			;[47] RESTORE CREATE DATE
1)		PUSHJ	P,YRSMOS		;[47] PRINT IT
1)		PR1	<ACCESS DATE:#>
1)		POP	P,Q			;[47] GET ACCESS DATE
1)		JRST	YRSMOS			;[47] PRINT AND RETURN
1)82	;CREATE AN INFINITE UFD FOR THE USER IF HE NEEDS IT
****
2)82	;CREATE AN INFINITE UFD FOR THE USER IF HE NEEDS IT
**************



[END OF FAILSA.DOC]