Trailing-Edge
-
PDP-10 Archives
-
scratch
-
10,7/unscsp/failsa/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]