Trailing-Edge
-
PDP-10 Archives
-
bb-bt99e-bb
-
backrs.c11
There are no other files named backrs.c11 in the archive.
REP 1/1 ;11C1
TITLE BACKRS -- MODULE TO DO THE WORK FOR BACKUP -- %4A(521)
SUBTTL FRANK NATOLI/FJN/PFC/KCM/JEF/MEB/CLRH/VLR/CGN/WMG/DC/BPK/MS/BAH/EDS 25-Jul-84
WIT
TITLE BACKRS -- MODULE TO DO THE WORK FOR BACKUP -- %4A(525)
SUBTTL FRANK NATOLI/FJN/PFC/KCM/JEF/MEB/CLRH/VLR/CGN/WMG/DC/BPK/MS/BAH/EDS 17-May-85
REP 6/1 ;11C2
DECEVR==521 ;EDIT NUMBER
WIT
DECEVR==525 ;EDIT NUMBER
INS 37/9 ;11C3
FL$ABS==1B30 ;[522] ABORT STRUCTURE SINCE /INITIAL NOT FOUND
REP 40/9 ;11C4
;+.HL1 HOME BLOCK WORDS
WIT
;+.HL1 /INITIAL BIT MASK DEFINITIONS
INS 45/9 ;11C5
IB$STR==1 ;[522] LOOKING FOR SPECIFIC /INITIAL FILE STRUCTURE
IB$NAM==2 ;[522] LOOKING FOR /INITIAL FILENAME AND EXTENSION
IB$UFD==4 ;[522] LOOKING FOR /INITIAL UFD
IB$SF1==10 ;[522] LOOKING FOR /INITIAL SFD LEVEL 1
IB$SF2==20 ;[522] LOOKING FOR /INITIAL SFD LEVEL 2
IB$SF3==40 ;[522] LOOKING FOR /INITIAL SFD LEVEL 3
IB$SF4==100 ;[522] LOOKING FOR /INITIAL SFD LEVEL 4
IB$SF5==200 ;[522] LOOKING FOR /INITIAL SFD LEVEL 5
;&#FLAG CONTROL
;+.HL1 HOME BLOCK WORDS
;.NOFILL.FLAG CONTROL #
;#END SELECT
;-
INS 116/10 ;11C6
INIBTS::BLOCK 1 ;[522] BIT MASK FOR /INITIAL FILESPEC
SAVBTS: BLOCK 1 ;[522] SAVED COPY OF ABOVE
INS 27/24 ;11C7
;HERE TO SETUP THE INITIAL FILESPEC BIT MASK BEFORE THE SAVE
SETZB T1,INIBTS ;[522] CLEAR THE WORKING BITS
MOVEM T1,SAVBTS ;[522] AND THE SAVED COPY
SKIPE S.INIT##+.FXDEV ;[522] ANY DEVICE SPECIFIED?
TXO T1,IB$STR ;[522] YES, REMEMBER
SKIPN S.INIT##+.FXNAM ;[522] ANY FILENAME SPECIFIED?
SKIPE S.INIT##+.FXEXT ;[522] NO, ANY EXTENSION?
TXO T1,IB$NAM ;[522] YES, FLAG THAT
MOVEI T2,.FXDIR+S.INIT## ;[522] POINT AT THE FIRST DIRECTORY WORD
MOVEI T3,6 ;[522] GET THE NUMBER OF DIRECTORY WORDS
MOVX T4,IB$UFD ;[522] GET THE FIRST BIT
SETINT: SKIPN (T2) ;[522] DIRECTORY SPECIFIED AT THIS LEVEL?
JRST SETI01 ;[522] NO, EXIT THIS LOOP
TDO T1,T4 ;[522] YES, LITE THE CORRESPONDING BIT
ADDI T2,2 ;[522] POINT TO THE NEXT DIRECTORY LEVEL
LSH T4,1 ;[522] SHIFT THE BIT FOR THE NEXT LEVEL
SOJG T3,SETINT ;[522] LOOP FOR ALL SPECIFIED LEVELS
SETI01: MOVEM T1,SAVBTS ;[522] STORE THE INITIAL FILESPEC BITS
MOVEM T1,INIBTS ;[522] IN BOTH PLACES.
INS 45/24 ;11C8
SKIPE INIBTS ;[522] ANY /INITIAL SPECIFIER?
REP 51/24 ;11C9
SETZM S.INIT##+.FXDEV ;ZILCH
WIT
MOVX T4,IB$STR ;[522] YES, GET THE DIRECTORY SPECIFIER
ANDCAM T4,INIBTS ;[522] CLEAR THE DEPENDENCY
INS 79/24 ;11C10
MOVE T1,SAVBTS ;[522] GET THE SAVED INITIAL BITS
SKIPE INIBTS ;[522] DID WE FIND THE INITIAL FILE?
MOVEM T1,INIBTS ;[522] NO, RESET THE SEARCH BITS
TXZ F,FL$ABS ;[522] CLEAR STRUCTURE ABORT FLAG
INS 90/24 ;11C11
SKIPE INIBTS ;[522] DID WE EVER FIND THE /INITIAL FILE?
JRST CPOPJ1 ;[522] YES, RETURN TO BACKUP WITH OPERATION DONE
SETZM S.INIT## ;[522] CLEAR THE
MOVE T1,[S.INIT##,,S.INIT##+1] ;[522] INITIAL
BLT T1,S.INIT##+FX$LEN-1 ;[522] FILESPEC
INS 44/27 ;11C12
SKIPE INIBTS ;[522] ANY /INITIAL SPECIFIER?
REP 48/27 ;11C13
SETZM S.INIT##+.FXDIR ;ZILCH
WIT
MOVX T4,IB$UFD ;[522] YES, GET THE UFD SPECIFIER BIT
ANDCAM T4,INIBTS ;[522] CLEAR THE DEPENDENCY
REP 89/27 ;11C14
TXNE F,FL$KIL ;SEE IF OPERATOR SAID KILL
WIT
SKIPE INIBTS ;[522] DID WE FIND THE /INITIAL FILE?
TXO F,FL$ABS ;[522] ONLY GOT PART OF IT - BLOW THIS STR OFF
TXNE F,FL$KIL!FL$ABS ;[522] SEE IF OPERATOR SAID KILL OR ABORT SET
REP 12/30 ;11C15
SKIPN T3,S.INIT+.FXDIR(T2) ;ANY INITIAL SFD?
JRST SAFE2 ;NO
CAME T3,CNAM ;SEE IF MATCH
SOJA LVL,NXTFIL ;NO, DROP IT
SETZM S.INIT+.FXDIR(T2) ;MATCH--ZILCH
WIT
SKIPN INIBTS ;[524][522] ANY /INITIAL SPECIFIER?
JRST SAFE2 ;[524] NO
SKIPN T3,S.INIT+.FXDIR(T2) ;ANY INITIAL SFD?
JRST NXTFIL ;[524] NO
CAME T3,CNAM ;SEE IF MATCH
SOJA LVL,NXTFIL ;NO, DROP IT
MOVX T4,IB$UFD ;[522] YES, GET THE DIRECTORY SEEN BIT
LSH T4,(LVL) ;[522] SHIFT TO THE RIGHT SFD LEVEL
ANDCAM T4,INIBTS ;[522] CLEAR THE BIT FOR THIS LEVEL
REP 34/30 ;11C16
SETZM PTHBLK+.PTPPN(LVL) ;ZERO
TXNE F,FL$KIL ;SEE IF OPERATOR SAID KILL
WIT
SKIPE INIBTS ;[522] DID WE FIND THE /INITIAL FILE?
TXO F,FL$ABS ;[522] NO, YES - ABORT THIS STRUCTURE
SETZM PTHBLK+.PTPPN(LVL) ;ZERO
TXNE F,FL$KIL!FL$ABS ;[522] SEE IF OPERATOR SAID KILL OR ABORT SET
REP 3/31 ;11C17
NOTSFD: MOVEI T2,(LVL) ;[327] GET NESTING COUNTER
LSH T2,1 ;[327] DOUBLE INDEX INTO SCAN BLOCK
SKIPE S.INIT+.FXDIR+2(T2);[327] SEE IF INITIAL SFD GIVEN
JRST NXTFIL ;YES, DROP THIS FILE
SKIPN T2,S.INIT+.FXNAM;ANY INITIAL FILE NAME?
JRST SETEXT ;NO
HLRZ T3,S.INIT+.FXEXT;GET INITIAL EXTENSION
WIT
NOTSFD: SKIPN T4,INIBTS ;[522] LOOKING FOR /INITIAL FILE?
JRST SETEXT ;[522] NO, GO AHEAD WITH THIS FILE
CAXE T4,IB$NAM ;[522] YES, JUST LOOKING FOR FILENAME?
JRST NXTFIL ;[522] NO, DROP THIS FILE
HLRZ T3,S.INIT+.FXEXT;GET INITIAL EXTENSION
MOVE T2,S.INIT+.FXNAM;[522] GET THE /INITIAL FILENAME
REP 13/31 ;11C18
SETZM S.INIT+.FXNAM ;YES, ZILCH
WIT
SETZM INIBTS ;[522] YES, NO MORE /INITIAL SPEC
REP 164/69 ;11C19
TRNE T1,IO.EOT ;IF EOT,
SETSTS F.MTAP,.IOBIN ; MUST CLEAR EOT BEFORE DOING OUTPUT
MOVSI T1,(1B0) ;USE BIT
WIT
;**;[525] @ MTASET +11L, Replace 1L, BAH, 17-MAY-85
TRNN T1,IO.EOT ;[525] EOT?
JRST MTASE1 ;[525] NO.
PUSHJ P,FNDBUF ;[525] FIND THE BUFFER MARKED WITH EOT
SKIPA ;[525] PUZZLING. CAN'T FIND EOT
ANDCAM P1,-1(P2) ;[525] CLEAR THE EOT BIT IN BUFFER STATUS WORD
SETSTS F.MTAP,.IOBIN ; MUST CLEAR EOT BEFORE DOING OUTPUT
MTASE1: MOVSI T1,(1B0) ;USE BIT
SUM 72341