Google
 

Trailing-Edge - PDP-10 Archives - bb-bt99e-bb - qsrt10.c10
There is 1 other file named qsrt10.c10 in the archive. Click here to see a list.
 DEL 1/23	;10C1
 INS 14/39	;10C2
	;**;[1226] Insert 2 lines after I$CUNK+3L. /LWS
		CAXN	S1,%DISK		;[1226] OR 'DISK' ???
		TRNA				;[1226] YES TO EITHER
 REP 25/39	;10C3
	CUNK.1:	HRROI	S1,.VSVSN(P1)		;GET PTR TO THE VSN
		PUSHJ	P,S%SIXB		;CONVERT TO SIXBIT 
		LDB	S1,S1			;GET THE TERMINATION CHARACTER
		MOVX	S2,%DISK		;DEFAULT TO A DISK REQUEST
		LOAD	TF,.VSFLG(P1),VS.REL	;GET THE REEL SPECIFIED FLAG BIT
		SKIPN	TF			;IF A REEL ID WAS SPECIFIED
		SKIPE	S1			;   OR THE VOL SET NAME IS COMPOUND
		MOVX	S2,%TAPE		;	THEN MAKE THIS A TAPE REQUEST
		STORE	S2,.VSFLG(P1),VS.TYP	;SAVE THE REQUEST TYPE
 WIT
	CUNK.1:	MOVE	S1,P1			;[1226] GET VSL ADDRESS
		PUSHJ	P,DEVCHK		;[1226] CHECK OUT DEVICE
		$RETIF				;[1226] RETURN IF PROBLEMS
		STORE	S1,.VSFLG(P1),VS.TYP	;[1226] SAVE THE REQUEST TYPE
 INS 1/40	;10C4
	;**;[1226] ADD DEVCHK ROUTINE
	;DEVCHK - ROUTINE TO ENSURE DEVICE STRING IS VALID

	;ACCEPTS	S1/ VSL ADDRESS

	;RETURNS TRUE	S1/ DEVICE TYPE (%DISK OR %TAPE)
	;		S2/ SIXBIT DEVICE NAME
	;	G$ERR IS SET WITH ERROR CODE IF PROBLEMS

	DEVCHK: PUSHJ	P,.SAVE4	        ;[1226] SAVE P1-P4
		MOVE	P1,S1			;[1226] COPY VSL ADDRESS
		HRROI	S1,.VSVSN(P1)		;[1226] GET ADDRESS OF VOLUME SET NAME
		PUSHJ	P,S%SIXB		;[1226] CONVERT TO SIXBIT
		$SAVE	<S2>			;[1226] SAVE DEVICE NAME FOR RETURN
		ILDB	P4,S1			;[1226] GET TERMINATOR
		JUMPN	P4,DEVC.3		;[1226] GO SEE IF REELID SPECIFIED
		MOVE	P2,S2			;[1226] SAVE THE DEVICE NAME
		MOVE	TF,[1,,P2]		;[1226] YES, GET DSKCHR PARMS
		DSKCHR	TF,			;[1226] GET STRUCTURE STATUS BITS
		JRST	DEVC.1			;[1226] NOT A DISK
		LOAD	TF,TF,DC.TYP		;[1226] GET THE DEVICE TYPE
		CAXN	TF,.DCTAB		;[1226] AMBIGUOUS?
		PJRST	E$ASN##			;[1226] YES - SAY SO
		CAXE	TF,.DCTUF		;[1226] UNIT WITHIN STRUCTURE?
		CAXN	TF,.DCTCN		;[1226] CONTROLLER CLASS?
		PJRST	E$ISN##			;[1226] YES - INVALID STRUCTURE
		CAXE	TF,.DCTCC	    	;[1226] CONTROLLER CLASS?
		CAXN	TF,.DCTPU		;[1226] PHYSICAL UNIT?
		PJRST	E$ISN##			;[1226] YES, ILLEGAL STRUCTURE
		CAXN	TF,.DCTDS		;[1226] GENERIC OR ERSATZ?
		JRST	DEVC.2			;[1226] YES, CHECK IT OUT SOME MORE
		MOVX	S1,%DISK		;[1226] ITS A DISK
		$RETT				;[1226] AND RETURN

	DEVC.1:	DEVTYP	S2,			;[1226] GET DEVICE TYPE
		JRST	DEVC.3			;[1226] CHECK FOR REELID
		JUMPE	S2,DEVC.3		;[1226] GO LOOK FOR REELID
		TXNE	S2,TY.GEN		;[1226] A GENERIC DEVICE ?
		PJRST	E$GDN##			;[1226] YES
		LOAD	S1,S2,TY.DEV		;[1226] LOAD THE DEVICE TYPE
		CAIE	S1,.TYMTA		;[1226] IS IT TAPE??
		PJRST	E$DNM##	 		;[1226] NO,,UNSUPPORTED DEVICE
						;[1226] (DSKCHR WOULD WIN IF A DISK)
		MOVX	S1,%TAPE		;[1226] YES
		$RETT				;[1226] RETURN

	DEVC.2:	MOVE	TF,[3,,P2]		;[1226] GET PATH. ARGS
		PATH.	TF,			;[1226] FIND OUT SOME MORE
		PJRST	E$UST##			;[1226] CATCH ALL
		TXNE	P3,PT.DLN!PT.EDA	;[1226] PATHOLOGICAL NAME?
		PJRST	E$PLD##			;[1226] YES, SAY SO
		TXNE	P3,PT.IPP		;[1226] IMPLIED PPN? (ERSATZ)
		PJRST	E$ERZ##			;[1226] YES, SAY SO
		PJRST	E$GDN##			;[1226] ELSE CALL IT GENERIC

	DEVC.3:	MOVX	S1,%TAPE		;[1226] ASSUME TAPE
		LOAD	TF,.VSFLG(P1),VS.REL	;[1226] GET REELID SPECIFIED FLAG
		JUMPN	TF,.RETT		;[1226] RETURN TRUE IF REELID THERE
		JUMPN	P4,E$IVN##		;[1226] MORE THAN 6 CHARS AND NO REELID
		MOVX	S1,%DISK		;[1226] ASSUME DISK
		$RETT				;[1226] RETURN OK
 REP 24/53	;10C5
		MOVX	S2,FSSSTR		;GET A STRUCTURE
 WIT
	;**;[1226] Change 1 line at I$LGFD+9L. /LWS
		MOVE	S2,G$QSTR##		;[1226] GET A STRUCTURE
 INS 50/86	;10C6
	;**;[1226] Insert 2 lines before OQUE.1-4L. /LWS
		MOVE	S1,ACTSTR+.DCSNM	;[1226] GET STR NAME
		MOVEM	S1,G$QSTR##		;[1226] SAVE
 SUM 165517