Google
 

Trailing-Edge - PDP-10 Archives - bb-bt99g-bb - sclink.c12
There are no other files named sclink.c12 in the archive.
 REP 28/55	;12C1
		OPSTR <SKIPGE T1,>,SAAA1,(SA) ;GET THE LENGTH OF THE USER'S BUFFER
		  SCERR %NEADE,RTN,<Address Error> ;DON'T ALLOW NEGATIVE COUNT
 WIT
		LOAD T1,SAAA1,(SA)	;GET THE LENGTH OF THE USER'S BUFFER
	;
	; SPR 10-34926
	; If there's a negative count here, it should be because we're discarding
	; DECnet messages for the user until we see EOM in an incoming message.
	; This happens if the user sets the EOM bit in his arg block, but
	; the incoming message is too big to fit in his buffer, and it doesn't
	; have EOM set itself.  We should discard bytes until we see an EOM.
	; SCMUUO already checked to make sure that the user didn't give us a
	; negative count to begin with.
	;
 INS 51/55	;12C2
		JUMPLE P1,NSFDRA	;Don't copy if no room.
 REP 16/56	;12C3
		JUMPE P2,RSKP		;IF THERE'S NO PTR, WE HAVE MORE TO READ
 WIT
	NSFDRA:	JUMPE P2,RSKP		;IF THERE'S NO PTR, WE HAVE MORE TO READ
 REP 16/95	;12C4
		LOAD T1,SJCHT,(P1)	;GET POINTER TO THE SLB TABLE
		LOAD T2,SJCHC,(P1)	; AND THE COUNT OF ENTRIES
		JUMPLE T2,FRESJ2	;DON'T CHECK IF COUNT IS ZERO
	FRESJ1:	SKIPE (T1)		;IS THERE AN ENTRY THERE?
 WIT
		CALL CHKSJB		;CHECK SJB FOR ACTIVE SLBs
 DEL 25/95	;12C5
		SOSE T2			;SEE IF THERE ARE ANY MORE ENTRIES
		AOJA T1,FRESJ1		;THERE ARE, TEST THEM

 INS 1/96	;12C6
		SUBTTL	Subroutines -- CHKSJB - Check an SJB for SLBs
	;CHKSJB - Check an SJB for SLBs
	;
	; Call:
	;	T1/ Pointer to SJB
	;
	; Return:
	;	RET			;There are SLBs associated with this SJB
	;	RETSKP			;No SLBs associated with this SJB
	;
	; Uses: T1-T2
	CHKSJB::	LOAD T2,SJCHC,(T1)	;GET COUNT OF SLB SLOTS
		LOAD T1,SJCHT,(T1)	;AND ADDRESS OF SLB TABLE
	CHKSJ1:	SOJL T2,RSKP		;IF NONE LEFT, RETURN
		SKIPE (T1)	;IS THERE AN SLB ADDRESS IN THIS SLOT?
		RET		;YES, RETURN
		AOJA T1,CHKSJ1	;NO, CHECK NEXT ONE
 SUM 26723