Google
 

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