Google
 

Trailing-Edge - PDP-10 Archives - bb-bt99e-bb - lptspl.c08
There are 2 other files named lptspl.c08 in the archive. Click here to see a list.
 REP 1/1	;08C1
		TITLE	LPTSPL - TOPS10S20 LINE PRINTER DRIVER
 WIT
		TITLE	LPTSPL - TOPS10/TOPS20 LINE PRINTER DRIVER
 REP 42/1	;08C2
		LPTEDT==2771			;EDIT LEVEL
 WIT
		LPTEDT==3003			;EDIT LEVEL
 INS 478/4	;08C3

 INS 486/4	;08C4
	2772	24-Oct-83 Before OPENing device for a stream, see if device has been
		assigned or init'd by someone. This someone could be another
		one of our streams.
		SPR 10-33900 /LWS

	2773	25-Oct-83 Fix WTO concerning typeout of unrecognized LPFORM.INI switch.
		SPR 10-34039 /LWS

	2774	25-Oct-83 Print spooled file name in LOG and header.
		SPR 10-34149 /LWS

	2775	27-Oct-83 Recover from OUT UUO errors while loading VFUs a little better.
		SPR 10-34141 /LWS

	2776	12/21/83 Fix coding error in hung device interrupt code. Change
		J to S1 at LPIN.3. 
		SPR 10-34397  /LWS

	2777	20-Jan-84 Two edits 2771. Make one of them this edit.
		Handle comments properly in LPFORM.INI.
		SPR 10-33584  /LWS

	3000	24-Jan-84 Fix IFN stopcode bug introduce in EDIT 2771. IFN occurs
		if ALIGNment is specified in LPFORM.INI and the ".ALP" file
		doesn't exist.
		SPR 10-34461  /LWS

	3001	21-Mar-84 Fix problem in CPU Failure interrupt code. Code
		assumed that CPU Failure interrupts would always happen in
		the correct stream context...not so. Requires edit 2776.
		SPR 10-34573 GCO 10013 /LWS

	3002	24-Mar-84 Fix confusing typeout in WTOR that tells operator
		to switch reels when spooling to tape.
		SPR 10-34572 GCO 10014 /LWS

	3003	Fix coding error at STRE.1, CAMN should be CAME.
		13-Apr-84 GCO 10027 /LWS

 INS 33/13	;08C5
	;**;[2774] Insert 1 line. 25-Oct-83 /LWS
		LP	J$GSPL,2		;[2774] SPOOLED FILENAME THAT'S PUT IN LOG
 REP 11/31	;08C6
		$TEXT(LOGCHR,<^I/LPMSG/Starting File ^F/@J$DFDA(J)/>)
 WIT

	;**;[2774] Change 1 line at FILE+8L. 26-Oct-83  /LWS
		$TEXT(LOGCHR,<^I/LPMSG/Starting File ^F/@J$DFDA(J)/ ^T/J$GSPL(J)/>) ;[2774]
 REP 44/31	;08C7
		$TEXT (LOGCHR,<^I/LPMSG/Finished File ^F/@J$DFDA(J)/>)
 WIT
	;**;[2774] Changed 1 line at FILE.2+3L. 25-Oct-83  /LWS
		$TEXT (LOGCHR,<^I/LPMSG/Finished File ^F/@J$DFDA(J)/ ^T/J$GSPL(J)/>) ;[2774]
 REP 18/50	;08C8
		$WTO  (<^E/[-1]/>,<Cannot read ALIGN file ^F/@J$XFOB+FOB.FD(J)/>,@JOBOBA(S1))
 WIT
	;**;[3000] Insert 1 line and change 1 line at OALI.3+1L. /LWS
		SETZM	J$APRG(J)		;[3000] AVOID CONFUSION,,CAN'T ALIGN
		$WTO  (<Alignment Not Scheduled>,<Cannot read ALIGN file ^F/@J$XFOB+FOB.FD(J)/ - ^E/[-1]/>,@JOBOBA(S1)) ;[3000]
 REP 25/51	;08C9
		$TEXT (LOGCHR,<^I/LPMSG/File ^F/@J$DFDA(J)/ Forward spaced ^D/J$FPIG(J)/ Pages>)
 WIT
		;**;[2774] Change 1 line at FSPACE+7L. 25-Oct-83  /LWS
	$TEXT (LOGCHR,<^I/LPMSG/File ^F/@J$DFDA(J)/ ^T/J$GSPL(J)/ Forward spaced ^D/J$FPIG(J)/ Pages>) ;[2774]
 REP 31/51	;08C10
		$TEXT (LOGCHR,<^I/LPMSG/File ^F/@J$DFDA(J)/ Forward spaced ^D/S2/ Copies>)
 WIT
	;**;[2774] Changed 1 line at FCOPYS+2L. 25-Oct-83  /LWS
		$TEXT (LOGCHR,<^I/LPMSG/File ^F/@J$DFDA(J)/ ^T/J$GSPL(J)/ Forward spaced ^D/S2/ Copies>) ;[2774]
 REP 39/51	;08C11
		$TEXT	(LOGCHR,<^I/LPMSG/File ^F/@J$DFDA(J)/ Skipped by Operator>)
 WIT
	;**;[2774] Changed 1 line at FFILES+2L. 25-Oct-83  /LWS
		$TEXT	(LOGCHR,<^I/LPMSG/File ^F/@J$DFDA(J)/ ^T/J$GSPL(J)/ Skipped by Operator>) ;[2774]
 REP 22/52	;08C12
		$TEXT (LOGCHR,<^I/LPMSG/File ^F/@J$DFDA(J)/ Backspaced ^D/T1/ Pages>)
 WIT
	;**;[2774] Changed 1 line at BSPACE+3L. 25-Oct-83  /LWS
		$TEXT (LOGCHR,<^I/LPMSG/File ^F/@J$DFDA(J)/ ^T/J$GSPL(J)/ Backspaced ^D/T1/ Pages>) ;[2774]
 REP 7/54	;08C13
		$TEXT (LOGCHR,<^I/LPMSG/File ^F/@J$DFDA(J)/ Backspaced ^D/T1/ Copies>)
 WIT
	;**;[2774] Changed 1 line at BCOPYS+4L. 25-Oct-83 /LWS
		$TEXT (LOGCHR,<^I/LPMSG/File ^F/@J$DFDA(J)/ ^T/J$GSPL(J)/ Backspaced ^D/T1/ Copies>) ;[2774]
 INS 48/67	;08C14
	;**;[2774] Insert 7 lines after INPO.1+4L. 25-Oct-83  /LWS
		SETZM	J$GSPL(J)		;[2774] ASSUME NOT SPOOLED
		LOAD	S2,.FPINF(E),FP.SPL	;[2774] GET SPOOLED FILE BIT
		JUMPE	S2,.RETT		;[2774] RETURN IF NOT SPOOLED
		MOVX	S2,FI.SPL		;[2774] GET ATTRIBUTE WE WANT
		$CALL	F%INFO			;[2774] ASK FOR SPOOLED FILE NAME
		JUMPE	S1,.RETT		;[2774] RETURN IF NONE
		$TEXT(<-1,,J$GSPL(J)>,<^W/S1/^0>) ;[2774] SAVE NAME AS ASCIZ STRING
 INS 23/71	;08C15
	;**;[2777] Insert 2 lines at FRMIN2+2L. /LWS
		CAIN	C,";"			;[2777] START OF COMMENT?
		 $RETT				;[2777] YES,,WE'RE DONE
 INS 8/73	;08C16
	;**;[2777] Insert 2 lines at FRMIN5+3L. /LWS
		CAIN	C,";"		;[2777] BEGINNING OF A COMMENT
		 POPJ	P,		;[2777] YES,,WE'RE DONE
 REP 29/73	;08C17
		MOVE	T4,T1		;GET SWITCH NAME
		MOVE	S1,STREAM	;GET THE STREAM NUMBER.
		$WTOJ	(LPFORM.INI Error,<Unrecognized switch ^W/T1/ found.>,@JOBOBA(S1))
 WIT
	;**;[2773] Delete 1 line at FRMIN7+4L. 25-Oct-83 /LWS
		MOVE	S1,STREAM	;GET THE STREAM NUMBER.
	;**;[2773] Change line at FRMIN7+9L. 25-Oct-83 /LWS
		$WTOJ	(LPFORM.INI Error,<Unrecognized switch ^W/T4/ found.>,@JOBOBA(S1)) ;[2773]
 INS 8/75	;08C18
	;**;[2777] Insert 1 line after S$NOT1+1L. /LWS
		CAIE	C,";"			;[2777] DON'T INCLUDE COMMENTS
 REP 28/78	;08C19
		MOVE	T1,[2,,T2]		;LOAD ARG POINTER
		MOVX	T2,.DFDVL		;DISABLE VFU LOAD
		MOVE	T3,J$LCHN(J)		;AND CHANNEL NUMBER
		DEVOP.	T1,			;DO IT!
		  JRST	NODAVF			;LOSE
		MOVE	S1,J$FVIF(J)		;GET THE IFN
		PUSHJ	P,F%REL			;RELEASE IT
		MOVE	T1,J$FTAP(J)		;GET TAPE NAME
		MOVEM	T1,J$FLVT(J)		;SAVE AS TYPE LOADED
 WIT
	;**;[2775] Insert 1 line and delete 9 lines at LODV.2+0L. 27-Oct-83 /LWS
		PUSHJ	P,DISVFU		;[2775] DISABLE VFU LOADING
 INS 53/79	;08C20

	;**;[2775] Insert 11 lines at VLKUP+0L. 27-Oct-83 /LWS

	DISVFU:	MOVE	T1,[2,,T2]		;[2775] LOAD ARG POINTER
		MOVX	T2,.DFDVL		;[2775] DISABLE VFU LOAD
		MOVE	T3,J$LCHN(J)		;[2775] AND CHANNEL NUMBER
		DEVOP.	T1,			;[2775] DO IT!
		  JRST	NODAVF			;[2775] LOSE
		MOVE	S1,J$FVIF(J)		;[2775] GET THE IFN
		PUSHJ	P,F%REL			;[2775] RELEASE IT
		MOVE	T1,J$FTAP(J)		;[2775] GET TAPE NAME
		MOVEM	T1,J$FLVT(J)		;[2775] SAVE AS TYPE LOADED
		POPJ	P,			;[2775] RETURN
 INS 15/86	;08C21
	;**;[2772] Add 3 lines after OUTGET+8L. 24-Oct-83 /LWS
		DEVCHR	S1,			;[2772] GET DEVICE CHARACTERISTICS
		TXNE	S1,DV.ASC!DV.ASP	;[2772] SOMEONE ELSE BEAT US TO IT?
		  PJRST	OUTDNA			;[2772] YES,,COULD EVEN BE US!
 REP 42/94	;08C22
		$TEXT	(LOGCHR,<^I/LPERR/LPT I/O Error occurred during ^F/@J$DFDA(J)/, Copy:^D/S1/, Page:^D/J$RNPP(J)/; Status is: ^O/J$LIOS(J)/>)
 WIT
	;**;[2774] Change 1 line at OUTE.3+10L. 25-Oct-83 /LWS
		$TEXT	(LOGCHR,<^I/LPERR/LPT I/O Error occurred during ^F/@J$DFDA(J)/ ^T/J$GSPL(J)/, Copy:^D/S1/, Page:^D/J$RNPP(J)/; Status is: ^O/J$LIOS(J)/>) ;[2774]
 REP 66/94	;08C23
	OUTE.4:	TXNE	S,VFULOD		;Are we already loading VFU?
		JRST	[$WTO	(VFU error while loading VFU,,@JOBOBA(T4)); Yes
			JRST SHUTIN]		;Kill this stream
		$WTOR  (VFU error,<Re-align forms and put on-line^M^J^T/ENDRSP/>,@JOBOBA(T4),JOBWAC(T4))
 WIT
	;**; Redo code at OUTE.4. 27-Oct-83 /LWS
	OUTE.4:	TXZN	S,VFULOD		;[2775] ARE WE ALREADY LOADING VFU?
		  JRST	OUT.4A			;[2775] NO...
		$WTO	(VFU error while loading VFU,,@JOBOBA(T4)) ;[2775] YES
		LOAD 	S1,J$LCLS(J)		;[2775] GET CONTROLLER CLASS
		CAXE	S1,.DFS20		;[2775] FRONT END LPT?
		  PUSHJ	P,DISVFU		;[2775] NO,,GO DIASBLE VFU LOADING
		PUSHJ	P,OUTFLS		;[2775] GO RESET THE DEVICE
		SETZM	J$FORM(J)		;[2775] SAY FORMS NOT LOADED
		MOVX	S1,%RSUNA		;[2775] GET "DEVICE NOT AVAILABLE"
		PUSHJ	P,RSETUP		;[2775] TELL QUASAR TO FORGET US FOR NOW
		PJRST	SHUTIN			;[2775] SHUTDOWN THE STREAM
	OUT.4A:	$WTOR  (VFU error,<Re-align forms and put on-line^M^J^T/ENDRSP/>,@JOBOBA(T4),JOBWAC(T4))
 REP 22/95	;08C24
	OUT.5A:	$WTOR	(End of tape,<Mount next reel on ^W/J$MTAP(J)/^M^JType 'RESPOND ^7/[.CHLAB]/number/^7/[.CHRAB]/PROCEED' when ready>,@JOBOBA(T4),JOBWAC(T4))
 WIT
	OUT.5A:	$WTOR	(<End of tape>,<Mount next reel on ^W/J$MTAP(J)/^M^J^T/ENDRSP/>,@JOBOBA(T4),JOBWAC(T4)) ;[3002]
 REP 32/122	;08C25
		$TEXT(TBFCHR,<^M^JFile ^F/@J$DFDA(J)/, created: ^H/S1/,^T/(P1)/printed: ^H/[-1]/>)
 WIT
	;**;[2774] Changed 1 line at HEAD.1+16L. 26-Oct-83 /LWS
		$TEXT(TBFCHR,<^M^JFile ^F/@J$DFDA(J)/ ^T/J$GSPL(J)/, created: ^H/S1/,^T/(P1)/printed: ^H/[-1]/>) ;[2774]
 REP 14/138	;08C26
	STRE.1:	CAMN	P2,0(S1)		;FOUND THE STR?
 WIT
	STRE.1:	CAME	P2,0(S1)		;[3003] FOUND THE STR?
 REP 48/143	;08C27
	LPIN.2:	MOVEI	T1,CPUFAI		;CPU FAILURE
		MOVEM	T1,.PSVOP(S2)		;STORE FOR DEBRK. UUO
		$DEBRK				;DISMISS THE INTERRUPT.

	LPIN.3:	SETZM	JOBSTW(J)		;MAKE JOB RUNABLE
		MOVE	T1,J$RACS+P(J)		;GET STREAM STACK
		PUSH	T1,[HNGDEV]		;AVOID RACES
		MOVEM	T1,J$RACS+P(J)		;REPLACE PDL POINTER
		MOVEI	T1,HNGDEV		;GET ADDR OF HUNG DEVICE PROCESSOR
		CAMN	S1,STREAM		;HUNG DEVICE IN STREAM CONTEXT?
		MOVEM	T1,.PSVOP(S2)		;SET RETURN ADDRESS
 WIT
	;**;[3001] Rework CPU failure and hung device interrupt code.  /LWS
	LPIN.2:	SKIPA	T2,[CPUFAI]		;[3001] GET ROUTINE ADDR FOR CPU FAILURE

	LPIN.3:	MOVEI	T2,HNGDEV		;[3001] GET ROUTINE ADDR FOR HUNG DEVICE
	;**;[2776] Change 1 line at LPTIN.3+0L. 21-Dec-83 /LWS
		SETZM	JOBSTW(S1)		;MAKE JOB RUNABLE
		MOVE	T1,J$RACS+P(J)		;GET STREAM STACK
		PUSH	T1,T2			;[3001] AVOID RACES,,T2 HAS ROUTINE ADDR
		MOVEM	T1,J$RACS+P(J)		;REPLACE PDL POINTER
		CAMN	S1,STREAM		;HUNG DEVICE IN STREAM CONTEXT?
		MOVEM	T2,.PSVOP(S2)		;[3001] SET RETURN ADDRESS
 SUM 57110