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