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