Google
 

Trailing-Edge - PDP-10 Archives - bb-jr93j-bb - 7,6/ap018/ibmspl.c18
There are 9 other files named ibmspl.c18 in the archive. Click here to see a list.
 REP 5/1	;18C1
		     COPYRIGHT (C) 1977,1978,1979,1980,1981,1982,1983,1984,1985,1986
 WIT
		     COPYRIGHT (C) 1977,1978,1979,1980,1981,1982,1983,1984,1985,1986,
				   1987
			
 REP 21/3	;18C2
		XP	IBMEDT,	372		; Edit level
 WIT
		XP	IBMEDT,	405		; Edit level
 INS 486/4	;18C3
	4(373)	17-Jan-86	TPW	Fix for Tops10 703 so that IBMSPL will report
					correctly formatted port numbers.
	4(374)	30-Jul-87	LWS	Tops10: Change $STOPs to STOPCDs.
					Fix up edit 373.
	4(375)	17-Aug-87	LWS	Change object type to .OTBAT in hello block
					and add %IBMBT as attribute supported.
					Must have QUASAR edit 1466!!
					GCO 10554	SPR 10-35999
	4(376)	24-Sep-87	TPW	Initialize Queue Create Page with a structure 
					so that the /LSTR switch will work
	4(377)	29-Sep-87	TPW	Copyright					
	4(400)  01-Dec-87	TPW	Place a limit on the number of times GETIBM
					will transfer in 0 bytes so as not
					to loop in this sort of effort indefinitely.
	4(401)  10-Dec-87	TPW	Fix register referencing error in BUFSZ
	4(402)  01-Feb-88	TPW	Conditionalize edit 376
	4(403)  02-Feb-88	TPW	Conditionalize edit 373
	4(404)  04-Feb-88	TPW	Edit 365 has side (or no) effects.
	4(405)	04-Feb-88	TPW	Fix code in DISPOS so that file 
					disposition with(without) /LSTR 
					switch will happen as documented.
 REP 22/7	;18C4

 WIT
		ND	ZBITRY,^D10	;[400] Number of retries for zero byte input
 INS 13/12	;18C5
	ZBICNT: BLOCK	1		;[400] 0 byte-transfer retry counter
 REP 42/13	;18C6
		  $SET	(HEL.OB,,.OTIBM)	;  Object
 WIT
	TOPS20	 <$SET	(HEL.OB,,.OTIBM)>	;[375] Object
	TOPS10	 <$SET	(HEL.OB,HELOBJ,.OTBAT)	;[375] Object
		  $SET	(HEL.OB,HELATR,%IBMBT)>	;[375] Attribute (TOPS-10)
 REP 45/25	;18C7
	DEAERR:	$STOP	TNE,<Task not active>
 WIT
	DEAERR:
	TOPS20	<$STOP	TNE,<Task not active>>
	TOPS10	<STOPCD	(TNE,HALT,,<Task not active>)>
 REP 25/26	;18C8
	WAKERR:	$STOP CAT,<Cannot activate task>
 WIT
	WAKERR:
	TOPS20	<$STOP	CAT,<Cannot activate task>>
	TOPS10	<STOPCD	(CAT,HALT,,<Cannot activate task>)>
 REP 21/39	;18C9
		 $STOP	MRR,<Request received while another active>
 WIT
	TOPS20	<$STOP	MRR,<Request received while another active>>
	TOPS10	<STOPCD	(MRR,HALT,,<Request received while another active>)>
 INS 1/44	;18C10
	SUBTTL Multiple CPU port identifier -- DN60ID, get a port identifier string

	; Routine - DN60ID
	;
	; Function -    For Tops-10 Multiple CPU support this gets the correctly
	;		correctly formatted port number.
	;
	; Returns	S2/port identifier
	;
	TOPS10<					;[403]Conditionalize
	DN60ID:	PUSHJ	P,.SAVET		;[373]SAVE SOME ACS
		LOAD	T4,,L.PRT		;[373]GET THE PORT DATA
		HRLZS	T4			;[373]CAL11. STYLE
		LOAD	T1,T4,C1.1CN		;[373]CPU NUMBER
		LOAD	T2,T4,C1.1TY		;[373]PORT TYPE
		MOVE	T2,PORTAB(T2)		;[373]CONVERT TO TEXT
		LOAD	T3,T4,C1.1PN		;[373]PORT NUMBER
		LOAD	T4,,L.LIN		;[373]LINE NUMBER
		LOAD	S2,,L.NAM		;[373]STATION NAME
		$TEXT	(<-1,,DN60TX>,<^I/DN60IT/^0>)
		MOVEI	S2,DN60TX		;[373]POINT TO TEXT
		POPJ	P,			;[373]RETURN


	DN60IT:	ITEXT	(<Station ^N/S2/ CPU^D/T1/ ^T/(T2)/ port ^O/T3/ line ^O/T4/>)

	DN60TX:	BLOCK	25

	PORTAB:	[ASCIZ	/DL10/]
		[ASCIZ	/DTE/]
		[ASCIZ	/KMC/]
		[ASCIZ	/DMR/]

	>;[403]end TOPS10

 REP 46/46	;18C11
		 $STOP	ILW,<Illegal wakeup>
 WIT
	TOPS20	<$STOP	ILW,<Illegal wakeup>>
	TOPS10	<STOPCD	(ILW,HALT,,<Illegal wakeup>)>
 REP 102/47	;18C12
	CTSGO5:	$STOP	CAS,<Cannot accomplish SIGNON>
 WIT
	CTSGO5:
	TOPS20	<$STOP	CAS,<Cannot accomplish SIGNON>>
	TOPS10	<STOPCD	(CAS,HALT,,<Cannot accomplish SIGNON>)>
 REP 109/47	;18C13
	CTSFAI:	LOAD	S2,,L.LIN		;get line number
		LOAD	P1,,L.PRT		; and port

		$WTOJ	<Line ^O/S2/ on port ^O/P1/ went away>,,@T%OBA
 WIT
	CTSFAI:
	TOPS20	<
		LOAD	S2,,L.LIN		;get line number
		LOAD	P1,,L.PRT		; and port
		$WTOJ	<Line ^O/S2/ on port ^O/P1/ went away>,,@T%OBA
	>
	TOPS10	<
		PUSHJ	P,DN60ID		;[373]Get multiple CPU port number
		$WTOJ	(<Status information>,<^T/(S2)/ went away>,@T%OBA)
	>
 REP 116/47	;18C14

		LOAD	S1,,L.PRT		;get port number
		LOAD	S2,,L.LIN		;get line number

		$WTOJ	<Hanging up line ^O/S2/ on port ^O/S1/>,,@T%OBA

 WIT
	TOPS20	<
		LOAD	S1,,L.PRT		;get port number
		LOAD	S2,,L.LIN		;get line number
		$WTOJ	<Hanging up line ^O/S2/ on port ^O/S1/>,,@T%OBA
	>
	TOPS10	<
		PUSHJ	P,DN60ID		;[373]Get multiple CPU port number
		$WTOJ	(<Status information>,<Hanging up ^T/(S2)/>,@T%OBA)
	>
 REP 21/48	;18C15
		LOAD	S2,,L.LIN		;get line number
		LOAD	P1,,L.PRT		; and port

		$WTOJ	<Line ^O/S2/ on port ^O/P1/ signing off>,,@T%OBA

 WIT
	TOPS20	<
		LOAD	S2,,L.LIN		;get line number
		LOAD	P1,,L.PRT		; and port
		$WTOJ	<Line ^O/S2/ on port ^O/P1/ signing off>,,@T%OBA
	>
	TOPS10	<
		PUSHJ	P,DN60ID		;[373]Get multiple CPU port number
		$WTOJ	(<Status information>,<^T/(S2)/ signing off>,@T%OBA)
	>
 INS 26/57	;18C16
		MOVEI	S1,ZBITRY		;[400]Initialize the retry counter
		MOVEM	S1,ZBICNT		;[400]Set it for the input routine 
 REP 47/64	;18C17
	QSRDTH:	$STOP	SQF,<Send to QUASAR failed> ; SNDQSR users can come here to die
 WIT
	QSRDTH:
	TOPS20	<$STOP	SQF,<Send to QUASAR failed>> ; SNDQSR users can come here to die
	TOPS10	<STOPCD	(SQF,HALT,,<Send to QUASAR failed>)> ; SNDQSR users can come here to die
 INS 30/66	;18C18
	TOPS10	<
		MOVX	S1,%IBMBT		;[375] Get attribute
		CAXN	T2,%RSUOK		;[375] Success?
		STORE	S1,RSU.DA(S2),RO.ATR	;[375] Yep, set attribute
	> ;End TOPS10
 INS 35/69	;18C19
	TOPS10<					;[402]Conditionalize this
	INIQRS:	MOVE	T1,[XWD 2,.IBMST]	;[376]Make a structure entry
		MOVE	T2,IBMDEV		;[376]use the default structure
		MOVEI	S1,T1			;[376]pass address of entry
		$CALL	INSENT			;[376]add to Queue create page	
		JUMPF	.POPJ			;[376]couldn't do it, return error
		MOVE	T1,[XWD 2,.QCOID]	;[376]Make a "dummy" ppn entry
		MOVE	T2,[XWD 5,32]		;[376]Use D60's ppn
		MOVEI	S1,T1			;[376]pass address of entry
		$CALL	INSENT			;[376]add to Queue create page	
		JUMPF	.POPJ			;[376]couldn't do it, return error
	>					;[402]conditional
 REP 37/74	;18C20
		$STOP	IDC,<Illegal task/device type code>
 WIT
	TOPS20	<$STOP	IDC,<Illegal task/device type code>>
	TOPS10	<STOPCD	(IDC,HALT,,<Illegal task/device type code>)>
 REP 158/74	;18C21
		$STOP	IT2,<Illegal task type for 2780/3780>
 WIT
	TOPS20	<$STOP	IT2,<Illegal task type for 2780/3780>>
	TOPS10	<STOPCD	(IT2,HALT,,<Illegal task type for 2780/3780>)>
 REP 20/75	;18C22
		$STOP	RTT,<Couldn't find task to be released>
 WIT
	TOPS20	<$STOP	RTT,<Couldn't find task to be released>>
	TOPS10	<STOPCD	(RTT,HALT,,<Couldn't find task to be released>)>
 REP 94/75	;18C23
		$STOP	ERT,<Unexpected error in RELTKB>
 WIT
	TOPS20	<$STOP	ERT,<Unexpected error in RELTKB>>
	TOPS10	<STOPCD	(ERT,HALT,,<Unexpected error in RELTKB>)>
 REP 15/76	;18C24
		CAIN	S1,.TCNO		;console cruft ?
 WIT
		CAIN	T1,.TCNO		;[401]console cruft ?
 REP 22/77	;18C25
		$STOP	NPB,<No port block on releasing line block>
 WIT
	TOPS20	<$STOP	NPB,<No port block on releasing line block>>
	TOPS10	<STOPCD	(NPB,HALT,,<No port block on releasing line block>)>
 REP 27/77	;18C26
		$STOP	TSQ,<Tasks still queued to line block on release>
 WIT
	TOPS20	<$STOP	TSQ,<Tasks still queued to line block on release>>
	TOPS10	<STOPCD	(TSQ,HALT,,<Tasks still queued to line block on release>)>
 REP 50/77	;18C27
		$STOP	NLB,<Error finding line block>
 WIT
	TOPS20	<$STOP	NLB,<Error finding line block>>
	TOPS10	<STOPCD	(NLB,HALT,,<Error finding line block>)>
 REP 22/84	;18C28
		$STOP	LNA,<Logging illegally>
 WIT
	TOPS20	<$STOP	LNA,<Logging illegally>>
	TOPS10	<STOPCD	(LNA,HALT,,<Logging illegally>)>
 REP 124/88	;18C29
		JRST	GETIBF			; try again immediately
		VDSCHD	TW.IOD,POLEST		;wait a little - but don't be complacent
		JRST	GETIBF			;and try to get a buffer again
 WIT
		JRST	GETINX			;[400] Retry input
		VDSCHD	TW.IOD,POLEST		;wait a little - but don't be complacent

	GETINX: SOSG	ZBICNT			;[400]Reached the retry limit yet?
		TXO	S,IOABT			;[400]Yes, consider it a problem.
		JRST	GETIBF			;[400]Try to get one more buffer.

 REP 57/104	;18C30
		$STOP	CFF,<Couldn't find file entry>
 WIT
	TOPS20	<$STOP	CFF,<Couldn't find file entry>>
	TOPS10	<STOPCD	(CFF,HALT,,<Couldn't find file entry>)>
 REP 99/104	;18C31
		JUMPF	DISPSN			;if none, print/delete the file
		SKIPE	1(S1)			;if disposition is delete, then
 WIT
		JUMPT	DSPOSD			;[405]has one, see what it is
		MOVEI	T2,.IBMST		;[405]none, check for /LSTR 
		$CALL	FNDENT			;[405]see if structure present
		JUMPT	DISPSN			;[405]yes, print it anyway
	DSPOSD:	SKIPE	1(S1)			;[405]if disposition is delete, then
 REP 315/104	;18C32
		$STOP	CDF,<can't delete hold file>
 WIT
	TOPS20	<$STOP	CDF,<can't delete hold file>>
	TOPS10	<STOPCD	(CDF,HALT,,<can't delete hold file>)>
 REP 27/113	;18C33
		JUMPF	PRSTR			;[365] no, skip this
 WIT
		JUMPF	PRCALL			;[404] no, skip this
 REP 40/113	;18C34
	PRSTR:	
		MOVEI	T2,.IBMST		;[365]code for structure entry
		$CALL	FNDENT			;[365]see if structure present
		JUMPF	PRCALL			;[365]no - so don't do anything
		MOVEI	S1,[.IBMST]		;[365] delete the LSTR entry
		$CALL	INSENT			;[365]
		$RETT				;[365]
 WIT

 SUM 252535