Google
 

Trailing-Edge - PDP-10 Archives - bb-bt99e-bb - backrs.c09
There is 1 other file named backrs.c09 in the archive. Click here to see a list.
 REP 1/1	;09C1
		TITLE	BACKRS -- MODULE TO DO THE WORK FOR BACKUP -- %4A(514)
		SUBTTL	FRANK NATOLI/FJN/PFC/KCM/JEF/MEB/CLRH/VLR/CGN/WMG/DC/BPK/MS/BAH/EDS	13-Apr-83
 WIT
		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
 REP 6/1	;09C2
	DECEVR==514		;EDIT NUMBER
 WIT
	DECEVR==521		;EDIT NUMBER
 INS 35/10	;09C3
	;**;[520] @ SUSDF + 1L, Insert 1L, BAH, 3-Jul-84
	LSTFOP:	BLOCK	.FOMAX	;[520] FILOP. BLOCK FOR LISTING FILE

 REP 24/32	;09C4
	CLSUF2:	SETZ	T1,		;[307] USE T1 AS FLAG
		CLOSE	F.LIST,		;CLOSE LISTING FILE		[176]
		PUSH	P,S.LENT##+.RBPPN  ;[361] SAVE THE PATH
		LOOKUP	F.LIST,S.LENT## ;DO LOOKUP
		  SETO	T1,		;[307] MUST BE OUTPUT-ONLY DEVICE
		POP	P,S.LENT##+.RBPPN  ;[361] RESTORE THE PATH
		ENTER	F.LIST,S.LENT##	;RE-ENTER
		  JRST	LSTERR		;OUCH!
		SKIPL	T1		;[307] SKIP USETI IF LOOKUP FAILS
		USETI	F.LIST,-1	;POSITION TO APPEND TO FILE
		POPJ	P,		;THAT'S ALL
 WIT
	;**;[520] Replace routine CLSUF2, BAH, 3-Jul-84
	CLSUF2:	HRLI	T1,F.LIST	;[520] CHANNEL NUMBER OF LISTING FILE
		HRRI	T1,.FOURB	;[520] CHECKPOINT FUNCTION
		MOVEM	T1,LSTFOP+.FOFNC;[520] FIRST WORD OF FILOP BLOCK
		MOVEI	T1,S.LENT##	;[520] LOOKUP/ENTER BLOCK ADDRESS
		MOVEM	T1,LSTFOP+.FOLEB;[520]
		MOVE	T1,[.FOMAX,,LSTFOP] ;[520]
		FILOP.	T1,
		  JRST	LSTERR		;[520] REPORT THE ERROR
		POPJ	P,		;[520] RETURN
 REP 23/48	;09C5
		JRST	RSTRE2		;[426]
 WIT
	;**;[515] @ RSTREC + 20L, Replace 1L, BAH, 20-Jun-84
		JRST	[PUSHJ P,LSTXXX	;[515] YES, LIST IT AND
			 JRST  RSTREC]  ;[515] CONTINUE
 REP 33/48	;09C6

	RSTRE2:	PUSHJ	P,LSTXXX	;[426] LIST IT
		PUSHJ	P,LABSTS	;[426] CHECK LABEL TYPE
		JRST	RSTREC		;[426]

	;Make sure that the tape is being read using the same label
	;type that it was written with.  If it is not, give an error
	;message and wait for the user to type GO.
	;
	LABSTS:	MOVE	T1,TAPLBL##	;[426] GET THE LABEL TYPE 
		CAMN	T1,S$LBLT(MH)	;[426] IS CURRENT LABEL TYPE = SAVE LABEL TYPE?
		POPJ	P,		;[426] YES, RETURN 
		HRL	T1,S$LBLT(MH)	;[433] MOVE THE SAVE LABEL TYPE IN LH
		HRLZI	T2,LABCTE	;[433] SET UP AOBJN FOR TABLE SEARCH
	LABST1:	CAMN	T1,LABCTB(T2)	;[433] DO WE HAVE A MATCH?
		POPJ	P,		;[433] YES. DON'T COMPLAIN ABOUT THE MISMATCH
		AOBJN	T2,LABST1	;[433] LOOP THRU THE TABLE, REPORT IF NO MATCH
		OUTSTR	[ASCIZ/
	%BKPDLT Tape being read /]	;[426]
		MOVE	T1,LABTBL(T1)	;[426] GET THE POINTER FOR THE TABLE
		OUTSTR	@T1		;[426] 
		OUTSTR	[ASCIZ /was written /]	;[426]
		MOVE	T1,S$LBLT(MH)	;[426] SAVED LABEL
		MOVE	T1,LABTBL(T1)	;[426] GET THE POINTER FOR THE TABLE
		OUTSTR	@T1		;[426] 
		OUTSTR	CRLF		;[426]
		OPER$	(TGC,errors may occur type "GO" to continue..)
		PUSHJ	P,TYI		;[426] WAIT FOR GO
		POPJ	P,		;[426] 

	;The following table contains all label types as defined by
	;the .TFLBL function of the TAPOP. UUO.
	;
	LABTBL:	EXP	[ASCIZ /BYPASS /]				;[426]
		EXP	[ASCIZ /using ANSI labels /  ]			;[426]
		EXP	[ASCIZ /using ANSI labels and user labels /  ]	;[426]
		EXP	[ASCIZ /using IBM labels /  ]			;[426]
		EXP	[ASCIZ /using IBM labels and user labels /  ]	;[426]
		EXP	[ASCIZ /using leading tape mark /  ]		;[426]
		EXP	[ASCIZ /using NONSTANDARD labels /  ]		;[426]
		EXP	[ASCIZ /unlabeled /  ]				;[426]
		EXP	[ASCIZ /using DEC COBOL ASCII labels /  ]	;[426]
		EXP	[ASCIZ /using DEC COBOL SIXBIT labels /  ]	;[426]
		EXP	[ASCIZ /USER-EOT /  ]				;[426]


	;The following table contains all combinations of label types which are legal.
	;T1 contains the save label type in its LH and the current label type in its RH.
	;The routine LABSTS then does a table search for an equivalence.  Tapes written
	;by BACKUP before GALAXY 4.1 are written in BYPASS (label type 0) by definition.

	LABCTB:	.TFLBP,,.TFLNL		;[433] BYPASS,,UNLABELLED
		.TFLBP,,.TFLNV		;[433] BYPASS,,USER-EOT
		.TFLNL,,.TFLBP		;[433] UNLABELLED,,BYPASS
		.TFLNL,,.TFLNV		;[433] UNLABELLED,,USER-EOT
		.TFLNV,,.TFLBP		;[433] USER-EOT,,BYPASS
		.TFLNV,,.TFLNL		;[433] USER-EOT,,UNLABELLED
	LABCTE==LABCTB-.		;[433] Negative length of table
 WIT
	;**;[515] Delete routines RSTRE2 and LABSTS, BAH, 20-Jun-84
 INS 58/60	;09C7
	;**;[521] @ RSTUST + 5L, Insert 1L, BAH, 25-Jul-84
		WAIT	FILE,		;[521] WAIT FOR DISK ACTIVITY TO SETTLE DOWN
 SUM 184757