Google
 

Trailing-Edge - PDP-10 Archives - bb-bt99g-bb - plropr.c08
There is 1 other file named plropr.c08 in the archive. Click here to see a list.
 DEL 16/2	;08C1
		CAIN	S1,100000		;^C RESET message from the monitor
		 $RETT				;Yes, ignore it for now
 REP 21/4	;08C2
		JSP	S1,COMERR		;Nope, somebody's confused
 WIT
		$RETT				;Nope, race conditions with abort stuff
 REP 54/11	;08C3
	VDIR.2:	PJRST	G$STTR##		;just return true to process
 WIT
		JRST	VDIR.3			;ONWARD
	VDIR.2:	PUSHJ	P,T$SUNI##		;SWAP SAME UNIT
	VDIR.3:	PJRST	G$STTR##		;just return true to process
 INS 20/12	;08C4

	; Convert 8-bit reelid to something useful in S2
	O$CN86::$SAVE	<P1,P2>			;SAVE P1 AND P2
		HRLI	S1,(POINT 8,)		;MAKE A BYTE POINTER
		MOVE	P1,[POINT 6,S2]		;BYTE POINTER TO STORAGE
		MOVEI	P2,6			;BYTE COUNT
	CN86.1:	ILDB	TF,S1			;GET A BYTE
		SUBI	TF,40			;CONVERT TO SIXBIT
		IDPB	TF,P1			;PUT A BYTE
		SOJG	P2,CN86.1		;LOOP FOR ALL CHARACTERS
		POPJ	P,			;RETURN
 REP 44/14	;08C5
		LOAD	S1,TCB.CH(B),TC.TYP	;Get the device type
		CAIN	S1,%DISK		;Is it a disk?
		$RET				;Yes - return TRUE or FALSE
 WIT
		PUSH	P,S1			;SAVE OPR RESPONSE CODE
		LOAD	S1,TCB.CH(B),TC.TYP	;Get the device type
		CAIN	S1,%DISK		;Is it a disk?
		JRST	OPRW.2			;YES
 REP 51/14	;08C6
		TXNE	S1,TY.MDA		;Device still owned by MDA?
		JUMPT	.RETT			;Yes - then proceed
		$RETF				;OPR must have made device unavailable

	;OPRPAR returned, false, so we check for retyping
		CAIN	S1,PLR%TY		;Want to retype it?
		JRST	OPRW.1			;Yes
		$RETF				;OPR said ABORT or CANCEL
 WIT
		TXNE	S1,TY.MDA		;DEVICE OWNED BY MDA?
		SKIPA	TF,[TRUE]		;YES--SET TRUE
		MOVX	TF,FALSE		;ELSE SET FALSE
	OPRW.2:	POP	P,S1			;RESTORE OPR RESPONSE CODE
		POPJ	P,			;RETURN EITHER TRUE OR FALSE
 REP 31/16	;08C7
		JUMPF	.RETT			;No, just continue the process
		JRST	OACR.R			;Yes, PROCEED is illegal, retype
 WIT
		JUMPT	OACR.R			;PROCEED IS ILLEGAL IF MOUNT WAIT
		MOVEI	S1,PLR%PR		;GET PROCEED CODE
		MOVEM	S1,TCB.AC+S1(B)		;SET IT
		$RETT				;AND RETURN
 INS 44/16	;08C8
	; Handle the RETRY response
	OACR.T:	MOVX	S1,TS.FSE		;GET A BIT
		TDNN	S1,TCB.S2(B)		;FILE SEQUENCE ERROR PROCESSING?
		JRST	OACR.R			;NO--BAD RESPONSE
		MOVEI	S1,PLR%RT		;OPR SAID RETRY
		MOVEM	S1,TCB.AC+S1(B)		;SET IN TCB
		$RETT				;RETURN

 INS 59/16	;08C9
		 KEYTAB	(OACR.T,RETRY)		;RETRY ,, return true
 INS 13/17	;08C10


	; Special routine to cancel a WTOR when labeler abort is processed.
	; Call:	MOVEI	S1, text address
	;	PUSHJ	P,O$KWTO

	O$KWTO::SKIPE	TCB.AK(B)		;PENDING WTOR?
		$WTOR	(<>,<^T/(S1)/>,TCB.OB(B),TCB.AK(B),<$WTFLG(WT.KIL!WT.SJI)>)
		SETZM	TCB.AK(B)		;CLEAR ACK CODE
		$RETT				;RETURN
 SUM 112037