Google
 

Trailing-Edge - PDP-10 Archives - bb-y390o-bm_tops20_v41_atpch_20 - autopatch/qsradm.c10
There are no other files named qsradm.c10 in the archive.
 REP 17/13	;10C1

 WIT
	;**;[1234]Add 2 lines at A$STND:+11L  DRB  1/11/84
		LOAD	S1,NETSTS(S2),NETSNA	;[1234]Is it a SNA node?
		JUMPN	S1,STND.2		;[1234]Yes, go start it up
 INS 48/13	;10C2
	;**;[1234]Add 21 lines at STAERR:-1L  DRB 1/11/85
	; Here to start up an SNA type node,  S2 contains pointer to node entry
	;

	STND.2:	MOVE	P1,S2			;[1234]Save pointer to node entry
		MOVX	S1,.OTBAT		;[1234]Get batch stream object type
		MOVEM	S1,.OHDRS+ARG.DA+OBJ.TY(M) ;[1234]Save as the object type
		MOVEI	S1,1			;[1234]Unit 1 is main batch stream
		MOVEM	S1,.OHDRS+ARG.DA+OBJ.UN(M) ;[1234]Save as the object unit
		MOVEI	S1,.OHDRS+ARG.DA(M)	;[1234]Get the start of the object block
		PUSHJ	P,A$OSTA		;[1234]Start a batch stream for the node

		MOVE	S1,NETNOB(P1)		;[1234]Link List Index for Objects
		$CALL	L%FIRST			;[1234]Get first object
		SKIPA				;[1234]
	STND.3:	$CALL	L%NEXT			;[1234]Get next object
		 JUMPF	STND.4			;[1234]All done
		MOVE	S1,NOBTYP(S2)		;[1234]Get type
		MOVEM	S1,.OHDRS+ARG.DA+OBJ.TY(M) ;[1234]Save as the object type
		MOVE	S1,NOBUNI(S2)		;[1234]Get Unit
		MOVEM	S1,.OHDRS+ARG.DA+OBJ.UN(M) ;[1234]Save as the object unit
		PUSHJ	P,A$OSTA		;[1234]Start the object
		MOVE	S1,NETNOB(P1)		;[1234]Link List Index for Objects
		JRST	STND.3			;[1234]Loop for all objects
	STND.4:	SETOM	.MSCOD(M)		;[1234]Clear common ACK code
		$RETT				;[1234]And return

 INS 29/17	;10C3
	;**;[1234]Add 51 lines at SETTBL:-1L  DRB  1/11/85
	SETDST:	$SAVE	<P2>			;[1234]Save P2
		MOVE	S1,OBJNOD(P1)		;[1234]Get node name
		$CALL	N$NODE##		;[1234]Get the node DB entry
		MOVE	P2,S2			;[1234]Keep it
		LOAD	S1,NETSTS(P2),NETSNA	;[1234]Is this an SNA Workstation?
		 JUMPE	S1,SETE.2		;[1234]No, return error
	        LOAD	S1,OBJSCH(P1)		;[1234]Get scheduler flags
		TXNE	S1,OBSSUP!OBSSIP	;[1234]Error if setup started
		 JRST	SETE.1			;[1234]
		MOVE	S1,NETNOB(P2)		;[1234]Get list index
		$CALL	GETNOB			;[1234]Get NOB entry for this object
		 JUMPF	SETE.3			;[1234]Return failure
		MOVE	S2,NETNOB(P2)		;[1234]Get list index, again
		MOVE	P2,S1			;[1234]P2 points to NOB
		MOVE	T1,P3			;[1234]Address of destination string
		HRLI	T1,(POINT 7)		;[1234]Make a pointer
	SETD.1:	ILDB	T2,T1			;[1234]Get a char
		 JUMPE	T2,[MOVE  S1,S2		;[1234]If null,
			    $CALL L%DENT	;[1234]Delete this entry
			    JRST SETMSG]	;[1234]Finish up
		CAIN	T2," "			;[1234]If blank,
		 JRST	SETD.1			;[1234]Keep looking
		MOVEI	S1,DSTSIZ		;[1234]Size of "destination field"
		MOVEI	S2,NOBDST(P2)		;[1234]Its address
		$CALL	.ZCHNK			;[1234]Clear it
		SETZM	NOBFLG(P2)		;[1234]Clear any flags
		LOAD	S1,ARG.HD-ARG.DA(P3),AR.LEN	;[1234]Get length
		CAILE	S1,DSTSIZ		;[1234]Make sure
		JRST	SETE.4			;[1234]We have enough room
		HRLZ	S2,P3			;[1234]Source
		HRRI	S2,NOBDST(P2)		;[1234]Source,,destination
		ADDI	S1,NOBDST-2(P2)		;[1234]Last address
		BLT	S2,(S1)			;[1234]Move it
	SETD.2:	PUSHJ	P,A$GBLK		;[1234]Get next message block
		 JUMPF	SETMSG			;[1234]None, all done
		MOVEI	S1,1			;[1234]Get a 1
		CAIN	T1,.STSPL		;[1234]/SPOOL ?
		 JRST	[STORE	S1,NOBFLG(P2),NOBSPL	;[1234]Yes, set the flag
			 JRST	SETD.2]
		CAIE	T1,.STNTL		;[1234]/NOTRANSLATE ?
		 JRST	BADMSG			;[1234]No, error
		STORE	S1,NOBFLG(P2),NOBNTL	;[1234]Set the flag
		JRST	SETD.2			;[1234]

	SETE.1:	$ACK	(<Set ignored>,<Object already started>,OBJTYP(P1),.MSCOD(M)) 
		$RETF				;[1234]

	SETE.2:	$ACK	(<Set ignored>,<Node must be an SNA Workstation>,OBJTYP(P1),.MSCOD(M)) 
		$RETF				;[1234]

	SETE.3:	$ACK	(<Set ignored>,<Could not create object block>,OBJTYP(P1),.MSCOD(M))
		$RETF				;[1234]

	SETE.4:	$ACK	(<Set ignored>,<Destination string too long>,OBJTYP(P1),.MSCOD(M))
		$RETF				;[1234]

 REP 38/17	;10C4

			NSETS==.-SETTBL
 WIT
	;**;[1234]Replace 1 line at NSETS with 45 lines  DRB  1/11/85
		.STDST,,SETDST			;[1234]Set Destination
			NSETS==.-SETTBL
		SUBTTL	GETNOB  --  Get NOB entry in the SNA workstation object list

		;[1234]CALL:	S1/ NOB List Index
		;[1234]	P1/ The address of object queue entry for object
		;[1234]
		;[1234]RET:	S1/ The address of the NOB entry or false

	FNDNOB::
		SKIPA	S2,[1]			;[1234]Indicate "FIND"
	GETNOB:	SETZ	S2,			;[1234]Indicate "GET"
		PUSHJ	P,.SAVET		;[1234]Save the 'T' ACs
		PUSH	P,S1			;[1234]Keep index
		PUSH	P,S2			;[1234]Keep entry flag
		MOVE	T1,OBJTYP(P1)		;[1234]Get the model object type
		MOVE	T2,OBJUNI(P1)		;[1234]Get the model object unit
		MOVE	T3,OBJNOD(P1)		;[1234]Get the model object node
		$CALL	L%FIRST			;[1234]Get first entry
		SKIPA				;[1234]
	GETN.1:	$CALL	L%NEXT			;[1234]Get next entry
		 JUMPF	GETN.2			;[1234]No more entries
		MOVE	T4,S2			;[1234]Address of NOB
		CAMN	T1,NOBTYP(T4)		;[1234]Do object types match ???
		CAME	T2,NOBUNI(T4)		;[1234]Do object units match ???
		JRST	GETN.1			;[1234]No to either,,try next object
		MOVE	S1,T3			;[1234]Get the model object node name/number
		MOVE	S2,NOBNOD(T4)		;[1234]Get the source object node name/number
		PUSHJ	P,N$MTCH##		;[1234]Do they match ???
		JUMPF	GETN.1			;[1234]No,,try next object in the queue
		ADJSP	P,-2			;[1234]Adjust stack
		MOVE	S1,T4			;[1234]Get the NOB entry address
		$RETT				;[1234]And return
	;[1234]
	;[1234]Could not find the entry so here to create a new entry
	;[1234]

	GETN.2:	POP	P,S2			;[1234]Entry flag
		POP	P,S1			;[1234]List index
		JUMPN	S2,.RETF		;[1234]Quit now, if only looking
		MOVEI	S2,NOBSIZ		;[1234]Entry size
		$CALL	L%CENT			;[1234]Create an entry
		 JUMPF	.RETF			;[1234]Pass on failure
		MOVEM	T1,NOBTYP(S2)		;[1234]Save type
		MOVEM	T2,NOBUNI(S2)		;[1234]Save unit
		MOVEM	T3,NOBNOD(S2)		;[1234]Save node
		MOVE	S1,S2			;[1234]Get the NOB entry address
		$RETT				;[1234]And return

 INS 10/18	;10C5
	;**;[1234]Add 7 lines at NETSET:+4L  DRB  1/11/85
		SETZ	S2,			;[1234]Say we want online check
		$CALL	N$CKND##		;[1234]Check out the node
		JUMPF	NETS.3			;[1234]Failed, online
		JUMPE	S2,NETS.2		;[1234]Not found, not defined
		MOVE	P1,S2			;[1234]Save the data base entry address
		LOAD	S2,NETSTS(P1),NETSNA	;[1234]Is this an SNA node
		JUMPN	S2,NETS.5		;[1234]Yes, go do it
 REP 14/18	;10C6
		JUMPE	S2,NETS.2		;Not found, not defined
		MOVE	P1,S2			;SAVE THE DATA BASE ENTRY ADDRESS
 WIT
	;**;[1234]Delete 2 lines at NETSET:+7L  DRB  1/11/85
 INS 46/18	;10C7
	;**;[1234]Add 7 lines at NETS.2:-2L  DRB  1/11/85
		MOVSI	S1,-NETS		;[1234]Get negative # of SET commands.
	NETS.0:	HLRZ	S2,NETTBL(S1)		;[1234]Pick up a SET command type.
		CAMN	S2,T1			;[1234]Do we match ???
		JRST	[MOVEI	S1,[ITEXT(Parameter invalid for IBM remote)] ;[1234]Yes
			 MOVE	S2,P1		;[1234]Address of Node database entry
			 JRST	NETS.3]		;[1234]Go report error
		AOBJN	S1,NETS.0		;[1234]Bump to next tbl entry and continue.

 INS 57/18	;10C8
	;**;[1234]Add 29 lines at NETS.4:+2L  DRB  1/11/85

		;[1234]CONTINUED ON THE NEXT PAGE
		;[1234]CONTINUED FROM THE PREVIOUS PAGE

	NETS.5:					;[1234]Here to set SNA attributes
		PUSHJ	P,A$GBLK		;[1234]Go get a block
		JUMPF	BADMSG			;[1234]No more, return through 'BADMSG'
		CAIN	T1,.ORNOD		;[1234]Is this the node block (already done)
		JRST	NETS.5			;[1234]Yes, try the next one
		MOVSI	S1,-NETS		;[1234]Get negative # of SET commands.
	NETS.6:	HLRZ	S2,NETTBL(S1)		;[1234]Pick up a SET command type.
		CAMN	S2,T1			;[1234]Do we match ???
		JRST	NETS.7			;[1234]Yes, Go process it
		AOBJN	S1,NETS.6		;[1234]Bump to next tbl entry and continue.
		MOVEI	S1,[ITEXT(Parameter invalid for SNA-Workstation)] ;[1234]No match
		MOVE	S2,P1			;[1234]Address of Node database entry
		JRST	NETS.3			;[1234]Go report error

	NETS.7:	HRRZ	S2,NETTBL(S1)		;[1234]Get the NAB offset
		LOAD	S1,NETNAB(P1),NA.ADR	;[1234]Get address of Node Attribute Block
		ADD	S1,S2			;[1234]Add in appropriate offset
		HRL	S1,T3			;[1234]Get source address
		ADDI	T2,-2(S1)		;[1234]Determine last destination address
		BLT	S1,(T2)			;[1234]Move value to Node Attribute Block
		$ACK	(<Set for Node ^T/NETASC(P1)/ Accepted>,,,.MSCOD(M))
		$RETT				;[1234]RETURN

	NETTBL:	.STDAT,,NABDAT			;[1234]LOGON DATA
		.STLOM,,NABLOM			;[1234]LOGON MODE
		.STPLU,,NABPLU			;[1234]APPLICATION
		.STCIR,,NABCIR			;[1234]CIRCUIT
		.STCHS,,NABCHS			;[1234]CHARACTER SET TRANSLATION FILE

	NETS==.-NETTBL				;[1234]
 INS 16/21	;10C9
	;**;[1234]Add 2 lines at A$OREQ:+11L  DRB  1/11/85
		TXNE	S1,OBSSNA		;[1234]Is this an SNA Workstation device
		JRST	OREQ.3			;[1234]Yes, just send the message.
 INS 28/23	;10C10
	;**;[1234]Add 2 lines at A$OSND:+11L  DRB  1/11/85
		TXNE	S2,NETSNA		;[1234]Is this node an SNA Workstation
		JRST	OSND.1			;[1234]Yes, go take care of it
 REP 33/23	;10C11
		LOAD	S2,OBJSCH(S1)		;SO FAR, SO GOOD - GET SCHEDULING BITS
 WIT
	;**;[1234]Change 1 line at A$OSND:+17L  DRB 1/11/85
	OSND.1:	LOAD	S2,OBJSCH(S1)		;SO FAR, SO GOOD - GET SCHEDULING BITS
 INS 42/28	;10C12
	;**;[1234]Add 3 lines at A$DEFINE:+14L  DRB  1/11/85
	;[1234]Add the node to the data base, purging any existing entry

		MOVE	S1,P1			;[1234]Get the node name
		PUSHJ	P,N$NNET##		;[1234]Add the node
		MOVE	P2,S2			;[1234]Remember the entry

 REP 63/28	;10C13
	;  Add the node to the data base if needed

	DEFI.1:	JUMPN	P2,DEFI.2		;Skip this if node already defined
		PUSHJ	P,N$NNET##		;Add the node
		MOVE	P2,S2			;Remember the entry

	DEFI.2:	MOVE	S2,DEF.MD(P3)		;Get the node mode
		CAXN	S2,DF.TRM		;Is it termination
 WIT
	;**;[1234]Replace 5 lines with 2 lines at DEFI.1:  DRB  1/11/85
	DEFI.1:	MOVE	S2,DEF.MD(P3)		;[1234]Get the node mode
		CAXN	S2,DF.TRM		;[1234]Is it termination
 INS 75/28	;10C14
	;**;[1234]Add 8 lines at DEFI.1:+9L  DRB  1/11/85
		MOVEI	S1,DEFD60		;[1234]Try for DN60 type node
		CAXN	S2,DF.SNA		;[1234]Is it SNA workstation
		MOVEI	S1,DEFSNA		;[1234]Yes, set for that
		$CALL	(S1)			;[1234]Go do right kind of initialization

		$ACK	(< ^T/DEFTAB(P4)/efine for node ^T/NETASC(P2)/ accepted >,,,.MSCOD(M))
		$RETT				;[1234]AND RETURN

	DEFBD1:	$ACK(< Define for node ^N/P1/ ignored >,<^I/0(S1)/>,,.MSCOD(M))
		$RETT				;[1234]
	DEFD60:					;[1234]Here for DN60 type initialization

 REP 131/28	;10C15

		$ACK	(< ^T/DEFTAB(P4)/efine for node ^T/NETASC(P2)/ accepted >,,,.MSCOD(M))
		$RETT				;AND RETURN

	DEFBD1:	$ACK(< Define for node ^N/P1/ ignored >,<^I/0(S1)/>,,.MSCOD(M))
		$RETT
	>
 WIT
	;**;[1234]Replace 4 lines with 18 lines at DEFBD1:-2L  DRB  1/11/85
		$RET				     ;[1234]
	DEFSNA:					;[1234]Here for SNA type initialization
		MOVEI	S1,1			;[1234]Get a 1
		STORE	S1,NETSTS(P2),NETSNA	;[1234]Lite the SNA node bit
		LOAD	S1,DEF.GW(P3)		;[1234]Get the Gateway Name
		STORE	S1,NETGWY(P2)		;[1234]Store in Node database
		HRLI	S1,DEF.AN(P3)		;[1234]Get start of access name
		HRRI	S1,NETACC(P2)		;[1234]And destination
		BLT	S1,NETACC+2(P2)		;[1234]Copy to Node database
		MOVEI	S1,NABSIZ		;[1234]Get size of Node Attribute Block
		PUSHJ	P,M%GMEM		;[1234]Go get the memory
		JUMPF	[MOVEI S1,[ITEXT(<No memory to create Node Attribute Block>)]
			 JRST  DEFBD1]		;[1234]Fail
		STORE	S1,NETNAB(P2),NA.LEN	;[1234]Save length
		STORE	S2,NETNAB(P2),NA.ADR	;[1234]And address
		PUSHJ	P,L%CLST		;[1234]Create a linked list for objects
		MOVEM	S1,NETNOB(P2)		;[1234]Save index
		$RET
	>

 INS 46/48	;10C16
	;**;[1234]Add 6 lines at GETO.0:+20L   DRB  1/11/85
		MOVX	S2,OBSSNA		;[1234]Get SNA bit
		LOAD	S1,NETSTS(P2),NETSNA	;[1234]Is this SNA Workstation
		JUMPN	S1,[MOVE  S1,OBJTYP(AP)	;[1234]Yes, get object type
			    CAIE  S1,.OTBAT	;[1234]Is it batch
			    IORM  S2,OBJSCH(AP)	;[1234]No,,lite the SNA bit
			    JRST  .+1]		;[1234]Continue on

		;[1234]CONTINUED ON THE NEXT PAGE
		;[1234]CONTINUED FROM THE PREVIOUS PAGE


 REP 51/48	;10C17

		;CONTINUED ON THE NEXT PAGE
		;CONTINUED FROM THE PREVIOUS PAGE

 WIT
	;**;[1234]Delete 2 lines at GETO.0:+24L  DRB  1/11/85
 INS 4/50	;10C18
	;**;[1234]Add 2 lines at CHKOBJ:+1L  DRB  1/11/85
		LOAD	S2,NETSTS(P2),NETSNA	;[1234]Is this an SNA-Workstation?
		JUMPN	S2,CHKO.4		;[1234]Yes, go process it
 INS 33/50	;10C19
	;**;[1234]Add 15 lines at CHKO.3:+1L  DRB  1/11/85
	CHKO.4:	CAIE	S1,.OTBAT		;[1234]Is it batch object
		CAIN	S1,.OTLPT		;[1234]Or printer
		JRST	CHKO.5			;[1234]Yes
		CAIE	S1,.OTCDP		;[1234]Or card-punch
		CAIN	S1,.OTRDR		;[1234]Or reader
		JRST	CHKO.5			;[1234]Yes
		$ACK	(<Ignored>,<Device invalid for SNA-Workstation>,0(P1),.MSCOD(M))
		$RETF				;[1234]

	CHKO.5:	LOAD	S1,OBJ.UN(P1)		;[1234]GET THE UNIT NUMBER.
		CAIL	S1,1			;[1234]
		CAILE	S1,7			;[1234]UNIT IN RANGE?
		SKIPA
		$RETT				;[1234]NO,,THEN RETURN TRUE.
		$ACK	(<Ignored>,<Invalid unit for SNA-Workstation>,0(P1),.MSCOD(M)) ;TELL OPR
		$RETF				;[1234]RETURN FALSE.

 SUM 223197