Google
 

Trailing-Edge - PDP-10 Archives - bb-kl11c-bm_tops20_v6_1_atpch1_16 - autopatch/dumper.c12
There are no other files named dumper.c12 in the archive.
 INS 1/1	;12C1
	; *** Edit 534 to DUMPER.MAC by MAYO on 25-Nov-85
	; Make sure the volid gets saved when doing Retrievals with tape allocation
	; disabled; otherwise Retrievalk forces a mount/dismount for every file
	; *** Edit 534 to DUMPER.MAC by MAYO on 25-Nov-85
	; Save the VOLID of the tape when doing Retrievals with tape allocation
	; disabled. Otherwise, tapes get unloaded and remounted for every file
	; retrieved.
	; Edit 533 to DUMPER.MAC by MAYO on 18-Oct-85
	; Set .FBBK1 to the tape volid if the monitor allows it during SAVE/INCR. 
	; Edit 532 to DUMPER.MAC by MAYO on 6-Aug-85
	; Fix typo at NEWDCR+16 (T4 instead of P4)
	; Edit 531 to DUMPER.MAC by MAYO on 6-Aug-85
	; Rewrite code at ENDFIL:+11 to make SAVE/INCR:n not save extra files.
	; Edit 530 to DUMPER.MAC by MAYO on 6-Aug-85
	; GETTAD should skip on a bad parse
	; Edit 529 to DUMPER.MAC by MAYO on 6-Aug-85
	; Insure we get correct tape after refusing a tape mounted out of order.

 REP 6/2	;12C2
		.EDIT=^D532
 WIT
		.EDIT=^D534
 REP 12/2	;12C3
	532 SM	 1-Aug-85	Don't allow SKIP n, n greater than 0, if F.NORD is
				 lit!

	531 SM	26-Jul-85	Saving too many files on a SAVE/INCR:2. Fix the reversed
				 compare instruction below ENDFIL:.

	530 SM	22-Jul-85	GETTAD's fail return wasn't fixing the stack before
				 returning to NOCMD. Teach it skip/nonskip.

	529 SM	15-Jul-85	If tapes put up out of order, fix UPTAPE to demand
				 the right tape after complaining about the wrong one.
 WIT
	    SM	 6-Aug-85	DUMPER released as part of 6.1; see top of file for
				 edit history after release.
 INS 15/6	;12C4
	SUPMRK:	BLOCK	1			;NONZERO IF NO RECORDING OF TAPE IN FILE
 INS 52/6	;12C5
	ORGTAP:	BLOCK	1			;TAPE WE STARTED SAVING THIS FILE ON
 REP 302/12	;12C6
		 JRST	BADDAT
		MOVEM	T1,(Q1)
		JRST	DATEND

	BADDAT:	 ERROR	<Illegal date/time given>,NOCMD

 WIT
		 JRST	NOCMD
		MOVEM	T1,(Q1)
		JRST	DATEND
 REP 315/12	;12C7
		 JRST	BADDAT
 WIT
		 JRST	NOCMD
 INS 190/19	;12C8
		MOVE	T1,VOLID6
		MOVEM	T1,ORGTAP	;SAVE TAPE FILE WAS STARTED ON
 INS 256/19	;12C9
		MOVE	T4,DMPFLG
		TXNN	T4,D.FINC!D.INC	;SOME SORT OF INCREMENTAL?
		JRST	NOINCR
 REP 259/19	;12C10
		MOVE	T4,DMPFLG
		TXNN	T4,D.FINC!D.INC	;SOME SORT OF INCREMENTAL?
		JRST	NOINCR
		HLRZ	T2,FDB+.FBCNT	;COMPARE #-OF-DISK-WRITES
		MOVE	T3,FDB+.FBBK0	;NUMBER DISK-WRITES AT LAST SAVE
		CAIE	T2,(T3)		;IF DIFFERENT, IT'S BEEN WRITTEN, SO...
		MOVE	T3,T2		;SAY "0 SAVES,,NEW-#-OF DISK WRITES"
		TXO	T3,1B0		;FLAG AS HALF-DONE
 WIT
	;This code will set .FBBK0 to:
	;LH: Number of times THIS version of the file has been written to tape (less
	;	this save, which we add in at the end of PASS 2 for this run)
	;	Also, 1B0 is set (meaning PASS 2 should note this file)
	;RH: How many times this version was modified when it was saved this time.
	; If this is different at the next incremental, we know the file has been
	; modified in place and needs to be saved n more times.
		HLRZ	T2,FDB+.FBCNT	;GET NUMBER OF WRITES-ON-DISK
		MOVE	T3,FDB+.FBBK0	;HOW MANY WRITES-ON-DISK AT LAST SAVE?
		CAIE	T2,(T3)		;IF THE SAME, DON'T RESTART "TIMES SAVED"
		MOVE	T3,T2		;DIFFERENT - SAY SAVED 0 TIMES (LH OF .FBBK0)
		TXO	T3,1B0		;SAY HALF-SAVED (2ND PASS NEEDED)
 REP 274/19	;12C11
		JRST	.+2
	NOINCR:	HRRZS	FDB+.FBBK0	;NO INCREMENTAL, JUST CLEAR TAPE_SAVE_COUNT
		MOVE	T1,JFN
 WIT
		MOVE	T3,ORGTAP
		MOVEM	T3,FDB+.FBBK1
		SKIPE	SUPMRK		;TRY TO RECORD TAPE WE STARTED SAVING THIS FILE
		JRST	NOINCA		;ON, UNLESS WE KNOW WE CAN'T
		MOVE	T1,JFN
		HRLI	T1,.FBBK1(CF%NUD);CHANGE .FBBK1, NO UPDATE
		CHFDB%
		 ERJMPR	FALSMK		;NOT ALL MONITORS ALLOW THIS
		JRST	NOINCA
	FALSMK:	CAIN	T1,CFDBX2
		SETOM	SUPMRK		;THIS MONITOR DOESN'T ALLOW, SO DON'T TRY
		JRST	NOINCA
	NOINCR:	HRRZS	FDB+.FBBK0	;NO INCREMENTAL, JUST CLEAR TAPE_SAVE_COUNT
	NOINCA:	MOVE	T1,JFN
 REP 39/22	;12C12
	ARCTS2:	TXNN	T4,D.AOEF	;ARCHIVE ONLINE EXPIRED FILES?
 WIT
	ARCTS2:	TXNN	T4,D.AOEF	;ARCHIVE ONLINE EXPRIED FILES?
 REP 22/25	;12C13
	PAT02A:	ADDI	T1,1		;GET EXPECTED TAPE NUMBER IN T1
		CAMN	T1,TAPENO	;NEW TAPE NUMBER CORRECT?
		JRST	GETRET		;YES, RETURN FROM OUTER GETREC
		SUBI	T1,1		;WRONG. FIX EXPECTATION FOR NEXT TIME (IF ANY)
		MOVEM	T1,TAPENO	;..
 WIT
	PAT02A:	MOVEI	T2,1(T1)	;GET EXPECTED TAPE NUMBER
		CAMN	T2,TAPENO	;NEW TAPE NUMBER CORRECT?
		JRST	GETRET		;YES, RETURN FROM OUTER GETREC
		MOVEM	T1,TAPENO	;NO, CORRECT EXPECTATION & POSSIBLY TRY AGAIN
 REP 14/27	;12C14
		JUMPLE	Q1,SKPBAC	;BACK OR FORWARD
		TXNE	F,F.NORD	;FORWARD IS THAT ALLOWED?
		JRST	SKPSKP		;NO! SAY END OF TAPE
		CALL	GETREC		;OK, READ A RECORD
 WIT
		JUMPLE	Q1,SKPBAC
		CALL	GETREC
 REP 22/27	;12C15
		JRST	SKPSKP
 WIT
		JRST	[TYPE	[ASCIZ/ End of tape./]
			 JRST	SKPFIN]
 DEL 31/27	;12C16
	SKPSKP:	TYPE	[ASCIZ/ End of tape./]
		JRST	SKPFIN

 REP 63/34	;12C17
		SETZM	.CDPEV(P4)	;YES, MAKE ENCRYPTION VERSION # ZERO
 WIT
		SETZM	.CDPEV(T4)	;YES, MAKE ENCRYPTION VERSION # ZERO
 REP 135/40	;12C18
		 RET
		MOVE	T1,T2
		CONFIRM	CPOPJ
 WIT
		 ERROR	<Illegal date/time given>,CPOPJ
		MOVE	T1,T2
		CONFIRM
 INS 336/43	;12C19
			 MOVEM	Q1,VOLID6 ;SET VOLID
 SUM 192406