ASMB,R,Q,C
      HED RTE-L VERSION 
      NAM RESL,6 91750-1X161 REV 2013 801014 L
      SPC 1 
* 
      ENT #MCTR,#MTBL,#MARN,#MAHC,#MARL,#MAZE 
      ENT #RSM,#POOL,#DFUN,#PASS
      ENT #BUSY,#FWAM,#GRPM,#BREJ,#LDEF,#MNUM,#MRTH 
      ENT #PNLH,#TRCL,#TRCN,#CL3K,#NRV,#NCNT
      ENT #RDLY,#PRLU,#LEVL,#ACRN,#LUMP,#LMPE 
      ENT #MSTO,#NODE,#NULL,#QRN,#RSAX,#RTRY
      ENT #ST00,#ST01,#ST02,#ST03,#ST04,#ST05,#ST06,#ST07 
      ENT #ST08,#ST09,#ST10,#SVTO,#TBRN,#WAIT,#CNOD,#LNOD 
      ENT #ST11 
      ENT #QCLM,#NCLR,#SCLR,#SWRD,#PLOG,#RFSZ,#SAVM 
      ENT #RPCV,#RQCV,#LU3K,#QZRN,#CLRN,#QXCL,#TST
      ENT #INCV,#OTCV,#MHCT,#MDCT,#NMSC 
      ENT #LV,#LCNT,#CM,#CMCT,#EXHC,#EXTC,#TCB
      ENT D$LID,D$RID 
      EXT $XQT,#PRGL
      SPC 1 
      EXT $ALC,$CGRN,$LIBR,$LIBX,$RTN,.ENTP 
* 
*    NAME:   RESM (21MX-M/E/F COMPUTERS)
*            RESL (21MX-L COMPUTERS)
*    SOURCE: 91750-18231
*    RELOC:  91750-16231  (RTE-IV/M VERSION)
*            91750-162??  (RTE-L VERSION) 
*    PGMR:   LYLE WEIMAN  [ 03/30/79 ]
*  ***************************************************************
*  * (C) COPYRIGHT HEWLETT-PACKARD COMPANY 1980.  ALL RIGHTS     *
*  * RESERVED.  NO PART OF THIS PROGRAM MAY BE PHOTOCOPIED,      *
*  * REPRODUCED OR TRANSLATED TO ANOTHER PROGRAM LANGUAGE WITHOUT*
*  * THE PRIOR WRITTEN CONSENT OF HEWLETT-PACKARD COMPANY.       *
*  ***************************************************************
      SPC 2 
*  RES IS A MEMORY-RESIDENT SYSTEM LIBRARY MODULE USED BY THE 
*   DS/1000 (DISTRIBUTED SYSTEMS) SOFTWARE PACKAGE TO PROVIDE 
*   CONTROLLED-ACCESS COMMON STORAGE. ITEMS STORED IN <RES> ARE NETWORK 
*   GLOBAL CONSTANTS & VARIOUS LISTS WHICH CONTAIN THE TRANSACTION-BLOCK
*   RECORDS OF CURRENT TRANSACTIONS-IN-PROCESS ON THE NETWORK.
* 
      SPC 5 
*  #RSAX IS A PRIVILEGED LIBRARY ROUTINE EMBEDDED IN RES
*   WHICH CONTROLS ACCESS TO, AND ALLOWS MAINTENANCE OF, THE
*   NETWORK'S TRANSACTION-CONTROL-BLOCKS (TCB'S) FOR CURRENT REQUESTS.
* 
      SKP 
*  #RSAX OPERATION: 
      SPC 1 
*   1. SAVE PARAMETERS IN PREPARATION FOR MAP-SWITCH. 
      SPC 1 
*   2.   SAVE MAP STATUS AND SWITCH TO SYSTEM MAP.
      SPC 1 
*   3. CHECK MODE OF OPERATION: 
*     A. IF =0, GO TO 7. TO ALLOCATE SYSTEM MEMORY. 
*     B. IF =1, GO TO 7. TO DE-ALLOCATE SYSTEM MEMORY.
*     C. IF =2, GO TO 4. TO ADD NEW ENTRY TO MASTER-REQUEST LIST. 
*     D. IF =3, GO TO 5. TO ADD NEW ENTRY TO A SLAVE-STREAM LIST. 
*     E. IF =4, GO TO 6. TO SEARCH FOR A MASTER TCB ENTRY.
*     F. IF =5, GO TO 6. TO SEARCH FOR A SLAVE TCB ENTRY. 
*     G. IF =6, GO TO 6. TO REMOVE A MASTER ENTRY & RETURN IT TO THE POOL.
*     H. IF =7, GO TO 6. TO REMOVE A SLAVE ENTRY & RETURN IT TO THE POOL. 
*     I. IF =8, GO TO 4. TO ADD AN HP3000 PROCESS.
*     J. IF=10, GO TO 6. TO REMOVE AN HP3000 PROCESS. 
*     K. IF=11, SET SEARCH KEY OFFSET TO 5 (6TH TCB WORD IS SEARCH KEY) AND 
*        GOTO 6.
*     L. IF=12, GO TO 6. TO SET THE M.A. REQUEST ACKNOWLEDGEMENT FLAG 
*     M. IF=13, GO TO 6. TO TEST "   "      "          "           "
* 
*     NOTE:  THE M.A. ACKNOWLEDGEMENT FLAG IS DOCUMENTED IN THE MESSAGE 
*     ACCOUNTING SOFTWARE.
* 
*     N. IF=14, THEN SAME AS 2, BUT SKIP SEARCH FOR "OBSOLETE" ENTRIES. 
*     M. IF NONE OF THE ABOVE - ERROR #2 --- REJECT!
      SPC 1 
*   4. CHECK FOR AVAILABLE ENTRY, BEFORE ADDING TO THE MASTER LIST. 
*     A. IF NONE AVAILABLE, CALLER HAS NOT CHECKED AVAILABILITY OF
*        TABLE-ACCESS RN (#TBRN) BEFORE ENTRY - ERROR #3 --- REJECT!
*     B. IF ENTRY AVAILABLE, SEARCH BY ID SEG. ADDR. FOR OBSOLETE 
*        ENTRIES IN THE MASTER REQUEST LIST (EXCEPT IF MODE =12). 
*     C. FLAG ALL OBSOLETE MASTER-REQUEST ENTRIES AS BAD, IF THEY 
*        ORIGINATED WITH SAME REQUESTOR (BIT#15 =1 OF WORD#5).
*     D. LINK THE NEW ENTRY INTO THE MASTER REQUEST LIST. 
*     E. USE TIMEOUT SPECIFIED IN CALL, OR USE #MSTO IF VALUE IS ZERO.
*     F. TRANSFER THE CALLER'S DATA INTO THE NEW ENTRY. 
*     G. IF ENTRY POOL NOT DEPLETED, CLEAR TABLE-ACCESS RN & RETURN.
      SPC 1 
*   5. CHECK FOR AVAILABLE ENTRY, BEFORE ADDING TO THE SLAVE-STREAM LIST. 
*     A. IF NONE, #TBRN NOT CHECKED BEFORE ENTRY - ERROR #3 --- REJECT! 
*     B. CHECK STREAM PARAMETER FOR ACCEPTABLE TYPE--ERROR #1, IF INVALID.
*     C. LINK THE NEW ENTRY INTO THE SPECIFIED SLAVE-STREAM LIST. 
*     D. TRANSFER CALLER'S DATA INTO THE NEW ENTRY. 
*     E. RETURN VIA 4.G.(ABOVE), TO UPDATE STATUS OF TABLE-ACCESS RN. 
      SPC 1 
*   6. INITIALIZE LIST POINTERS, BEFORE SEARCHING FOR/CLEARING AN ENTRY.
*     A. IF IMPROPER LIST SPECIFIED - ERROR #1 --- REJECT!
*     B. SEARCH FOR ENTRY. IF ENTRY NOT LOCATED, REJECT---ERROR #4! 
*     C. IF MODE=4/5, GET CONTENTS OF ENTRY WORD#4 & RETURN TO CALLER.
*     D. IF MODE=6/7, GET CONTENTS OF WD#4 & RE-LINK ENTRY IN NULL LIST.
*     E. CHECK MODE AGAIN:  IF 12, THEN SET M.A. REQUEST ACKNOWLEDGEMENT
*                                  FLAG & RETURN CLASS # # TCB ADDR.
*                           IF 13, THEN RETURN WITH ONLY M.A. R.A. FLAG 
*                                  IN (A): IF 0 THEN FLAG CLEAR,
*                                        ELSE #0 IF FLAG SET.  DON'T DEPEND 
*                                        ON A PARTICULAR VALUE, IN CASE 
*                                        THIS CHANGES.
*     F. RETURN VIA 4.G.(ABOVE), TO UPDATE STATUS OF TABLE-ACCESS RN. 
      SPC 1 
*   7. VERIFY CALLER KNOWS CORRECT SECURITY CODE BEFORE ALLOCATING OR 
*      DE-ALLOCATING SAM. 
*     A. IF MODE & #FWAM =0, GO TO ALLOCATE SYSTEM AVAILABLE MEMORY.
*     B. IF REQUEST GRANTED, STORE BLOCK ADDRESS IN #FWAM, SIZE IN #SAVM. 
*     D. IF REQUEST DENIED, RETURN REASON IN <A&B>, FOR FURTHER ANALYSIS. 
*     E. IF MODE=1 & PRAM1=#FWAM, RETURN MEMORY TO THE SYSTEM.
*     F. CLEAR #FWAM & #SAVM, BEFORE RETURNING TO <DINIT>.
      SKP 
*  #RSAX CALLING SEQUENCE:
* 
*   JSB #RSAX 
*   DEF RTN 
*   DEF MODE      MODE OF OPERATION (0 THRU 7)
*   DEF PRAM1     REQUIRED PARAMETER (SEE TABLE, BELOW) 
*   DEF PRAM2     REQUIRED FOR MODES: 2,3,5,7 [OPTIONAL MODES: 0,1,4,6] 
*   DEF PRAM3     REQUIRED FOR MODES 2 & 3 ONLY (NODAL ADDRESS) 
*   DEF PRAM4     OPTIONAL FOR MODES 2,8 & 12 ONLY (MASTER TIME-OUT)
*RTN<RETURN>      <A&B>: NORMAL-(SEE TABLE); ERROR-(SEE LATER DESCRIPTION)
* 
* +----+------------+--------------+------------+---------+-------+-------+ 
* !MODE!   ACTION   !    PRAM1     !    PRAM2   !  PRAM3  !<A> RTN!<B> RTN! 
* !====+============+==============+============+=========+=======+=======+ 
* !  0 ! GET MEMORY !#WORDS TO GET ! SECURITY   ! NOT USED!FWA SAM! #WORDS! 
* !    !            !              !  CODE      !         !       !       ! 
* +----+------------+--------------+------------+---------+-------+-------+ 
* !  1 ! RTN MEMORY !FWA SAM BLOCK ! SECURITY   ! NOT USED!   0   !   0   ! 
* !    !            !              !   CODE     !         !       !       ! 
* +----+------------+--------------+------------+---------+-------+-------+ 
* !  2 ! ADD MASTER !MASTER CLASS# !MA 'SEND'CNT! NOT USED!LOC SEQ!TCB ADR! 
* !    !            ! NOTE: PRAM4 = MASTER TIME-OUT VALUE                 ! 
* +----+------------+--------------+------------+---------+-------+-------+ 
* !  3 ! ADD SLAVE  !ORIG. SEQ. NO.!SLAVE STREAM!ORIG.NODE!LOC SEQ!TCB ADR! 
* +----+------------+--------------+------------+---------+-------+-------+ 
* !  4 ! FIND MASTER!LOCAL SEQ. NO.! NOT USED   ! NOT USED!CLASS# !TCB ADR! 
* +----+------------+--------------+------------+---------+-------+-------+ 
* !  5 ! FIND SLAVE !LOCAL SEQ. NO.!SLAVE STREAM! NOT USED!ORG SEQ!TCB ADR! 
* +----+------------+--------------+------------+---------+-------+-------+ 
* !  6 !CLEAR MASTER!LOCAL SEQ. NO.! NOT USED   ! NOT USED!CLASS# !   0   ! 
* +----+------------+--------------+------------+---------+-------+-------+ 
* !  7 !CLEAR SLAVE !LOCAL SEQ. NO.!SLAVE STREAM! NOT USED!ORG SEQ!   0   ! 
* +----+------------+--------------+------------+---------+-------+-------+ 
* !  8 ! ADD PNL    ! LOGGING LU # !REMOTE SES  !  REMOTE !LOC.SEQ!TCB ADR! 
* !    !            !              ! ID/SMP #   !  NOTE # !       !       ! 
* !    !            ! NOTE: PRAM4 = MPE/RTE FLAG WORD     !       !       ! 
* +----+------------+--------------+------------+---------+-------+-------+ 
* ! 10 ! CLEAR PNL  !REMOTE SESSION! REMOTE NODE! NOT USED! LOG LU!   0   ! 
* !    !            ! ID/SMP #     !   NUMBER   !         !       !       ! 
* +----+------------+--------------+------------+---------+-------+-------+ 
* ! 11 ! FIND MA SEQ! M.A. SEQ. #  ! NOT USED   ! NOT USED! CLASS#!  TCB  ! 
* !    !   NUMBER   !              !            !         !       !  ADDR ! 
* +----+------------+--------------+------------+---------+-------+-------+ 
* ! 12 !SET REQUEST ! M.A. SEQ. #  ! NOT USED   ! NOT USED! CLASS#!  TCB  ! 
* !    !ACKNOWLEDGED!              !            !         !       !  ADDR ! 
* !    !FLAG, SEE 16!              !            !         !       !       ! 
* +----+------------+--------------+------------+---------+-------+-------+ 
* ! 14 ! ADD MASTER ! SAME AS # 2, BUT NO SEARCH FOR OBSOLETE ENTRIES     ! 
* +----+------------------------------------------------------------------+ 
* ! 16 !TEST REQUEST!LOCAL SEQ. NO.! NOT USED   ! NOT USED!0 IF   !  TCB  ! 
* !    !ACKNOWLEDGED!              !            !         !FLAG 0 ! ADDR  ! 
* !    !FLAG, SEE 12!              !            !         !ELSE<>0!       ! 
* +----+------------+--------------+------------+---------+-------+-------+ 
* 
*     IN PNL ENTRIES, <REMOTE NOTE NUMBER> CONTAINS -1 FOR MPE SESSIONS.
* 
*  #RSAX ERROR INDICATIONS: 
* 
*     ERROR DETECTION WILL RESULT IN A RETURN TO THE CALLER WITH THE
*     REQUESTED ACTION NOT PERFORMED. 
* 
*      <A&B> = -1: AN INVALID LIST HAS BEEN SPECIFIED; FIRST CALLER 
*                  IS NOT <DINIT>; MEMORY ALLOCATION/DE-ALLOCATION IMPROPER.
* 
*      <A&B> = -2: THE SPECIFIED MODE OF OPERATION IS UN-DEFINED. 
* 
*      <A&B> = -3: NO SPACE FOR A NEW ENTRY. THE CALLER DID NOT WAIT FOR
*                  THE TABLE-ACCESS RESOURCE NUMBER (#TBRN) TO BE CLEARED,
*                  PRIOR TO CALLING #RSAX. (THIS SHOULD NOT OCCUR IF ALL
*                  CALLERS ADHERE TO THE RN CONVENTION, PRIOR TO CALLING.)
* 
*      <A&B> = -4: ENTRY CANNOT BE LOCATED; ACCESSING AN EMPTY LIST.
* 
*      MODE 0 (  ALLOCATION ): <A>=<B>=-1 IF BAD SECURITY CODE SPECIFIED. 
*                                   ELSE: 
*                              <A>=-1,<B>=MAXIMUM POSSIBLE NO. OF WORDS.
*                              <A>= 0,<B>=MAXIMUM WORDS AVAILABLE NOW.
*           1 (DE-ALLOCATION): <A> = <B> = -1 IF ADDRESS OF BLOCK BEING 
*                              RETURNED IS NOT EQUAL TO #FWAM, OR IF
*                              SECURITY CODE IS INCORRECT.
      SKP 
*  LIST FORMATS:
* 
*                          'RES'                 SYSTEM AVAILABLE MEMORY
*             -------------------------------   ------------------------- 
* 
*       #PNLH < ADDR 1ST PROCESS# LIST ENTRY>...<ADDR.=NEXT PRCS # ENTRY >
*                                               <0!D!         0          >
*                                               < REMOTE NODE NUMBER     >
*                                               <    0    ! LOCAL TERM-  >
*                                                           INAL LU 
*                                               <B* I.D. SEGMENT ADDRESS >
*                                               <REMOTE SESSION ID/SMP # >
* 
*                   BIT 14 OF WORD 3 (D) IS SET FOR MPE SESSIONS, 
*                   CLEAR FOR RTE SESSIONS. 
* 
*       #MRTH < ADDR.=1RST MASTER-LIST ENTRY>...<ADDR.=NEXT MASTER ENTRY >
*                                               < UDF-----*TIMEOUT CNTR. >
*                                               < LOCAL SEQUENCE NUMBER  >
*                                               <C* MASTER CLASS NUMBER  >
*                                               <B* I.D. SEGMENT ADDRESS >
*                                               <M.A. SEQUENCE NUMBER    >
* 
*       #ST00 <ADDR.=1RST STRM. 0 LIST-ENTRY>...<ADDR.=NEXT STRM. 0 ENTRY>
*         .   <- *  MONITOR'S CLASS NUMBER  >   < UD------*TIMEOUT CNTR. >
*         .   <A*MONITOR NAME (CHARS 1 & 2  >   < LOCAL SEQUENCE NUMBER  >
*         .   < MONITOR NAME (CHARS 3 & 4   >   < ORIGIN SEQUENCE NUMBER >
*         .   < MONITOR NAME (CHAR 5)       >   <  ORIGIN NODAL ADDRESS  >
*         .                                     < *** RESERVED ********  >
*         . 
*         . 
*       #STXX < ******* FORMAT SAME ******* >...< **** FORMAT SAME ***** >
*             < ********* FOR ALL ********* >   < ******** FOR ********* >
*             < ****** SLAVE STREAMS ****** >   < ******** ALL ********* >
*             < *************************** >   < ******* SLAVE ******** >
*             < *************************** >   < ****** STREAMS ******* >
*                                               < ********************** >
* 
*       WHERE: - = RESERVED FOR FUTURE USE.  A(#15) = ABORT OK. 
*              B(#15) = DUPLICATE ENTRY, OR ONE WHICH MAY BE DELETED. 
*                       SET TO "FLAG" 'UPLIN' THAT THIS TCB MAY BE RELEASED.
*              C(#15)  = LONG MASTER TIMEOUT (APPROXIMATELY 20 MIN.)
*              U(#15)  = UPLIN TEMPORARY BIT. D(#14) = HP3000 REQUEST.
*              F(#13)  = M.A. "REQUEST ACKNOWLEDGED" FLAG. 1 = SET, 0=CLEAR 
* 
*       *NOTE: 0 IN LIST HEAD OR FIRST WORD OF ENTRY SIGNALS END OF LIST. 
*       *NOTE: 0 IN LIST HEAD OR FIRST WORD OF ENTRY SIGNALS END OF LIST. 
* 
* 
*  NETWORK ROUTE VECTOR TABLE:
* 
*       #NCNT < NEGATIVE NUMBER OF NRV PAIRS> 
*     NRV TABLE FORMAT: 
* 
*               +--------------------------+
*     #NRV----> !  CPU  NUMBER  (16-BITS)  !
*               +--------------------------+
*               ! TIME-OUT ! FORMAT #      !
*               ! (8 BITS) ! (8 BITS)      !
*               +----------+---------------+
*               !RESERVED!N! COMM-LINK LU  !
*               !(7 BITS)! ! (8 BITS)      !
*               +----------+---------------+
* 
*     N = 1 IF CPU IS NEIGHBOR TO LOCAL NODE, ELSE 0
*       #NRV  <    ADDRESS OF NRV TABLE     >...< SEE FORMAT IN "NRVSC"  >
*                                                           . 
*                                                           : 
* 
      SKP 
MODE  NOP           MODE OF OPERATION.
PRAM1 NOP           USER
PRAM2 NOP            SPECIFIED
PRAM3 NOP             PARAMETERS. 
PRAM4 NOP 
      SUP           [SUPPRESS EXTENDED LISTING] 
#RSAX NOP           ENTRY/EXIT: TCB MANAGEMENT. 
      JSB $LIBR     DECLARE THIS TO BE
      NOP             A PRIVILEGED ROUTINE. 
      JSB .ENTP     OBTAIN DIRECT ADDRESSES 
      DEF MODE        FOR PARAMETERS & RETURN POINT.
* 
* 
      CLA           [PROTECT AGAINST MISSING PARAMETER] 
      STA GOOD      CLEAR SEARCH FLAG 
      LDA PRAM1,I   OBTAIN
      STA PRAM1      PARAMETERS 
      STA KEYWD       (ASSUME THIS WILL BE OUR SEARCH KEY)
      CLA             FOR 
      LDA PRAM2,I      LOCAL USE, 
      STA PRAM2         IN PREPARATION
      CLA                FOR A
      LDA PRAM3,I         POSSIBLE
      STA PRAM3            DMS MAP-SWITCH.
      CLA 
      LDA PRAM4,I 
      STA PRAM4 
      CLA 
      LDB MODE,I    GET THE MODE OF OPERATION,
      SSB           NEGATIVE MODE?
      JMP ERR02     YES, ILLEGAL MODE!
      STB MODE        AND SAVE IT LOCALLY, ALSO.
* 
      LDA B         PICK UP MODE
      ADA NMODX     SUBTRACT MAX. ALLOWABLE 'MODE' CODE 
      SSA,RSS          TOO BIG? 
      JMP ERR02         YES, ERROR! 
      LDA B         RECOVER MODE AGAIN
      ADA @JTBL     ADD JUMP TABLE ADDRESS
      JMP A,I          & BRANCH TO PROPER PROCESSOR 
      SPC 2 
*     'JUMP' TABLE.  DO NOT DISTURB ORDER!
* 
@JTBL DEF *+1,I    MODE   ACTION
      DEF SAM        0    ALLOCATE MEMORY.
      DEF SAM        1    RETURN MEMORY TO RTE
      DEF ADENT      2    CREATE A MASTER TCB ENTRY 
      DEF ADENT      3    CREATE A SLAVE TCB ENTRY
      DEF FIND       4    SEARCH FOR A MASTER TCB ENTRY 
      DEF FIND       5    SEARCH FOR A SLAVE TCB ENTRY
      DEF FIND       6    SEARCH FOR/CLEAR A MASTER TCB ENTRY 
      DEF FIND       7    SEARCH FOR/CLEAR A SLAVE TCB ENTRY
      DEF ADENT      8    CREATE A PROCESS # ENTRY
      DEF ERR02      9       *** ERROR, ILLEGAL MODE ***
      DEF FNPNL      10   SEARCH FOR/CLEAR A PROCESS # ENTRY
      DEF FNDMA      11   FIND MASTER TCB GIVEN M.A. SEQ. NUMBER
      DEF FNDMA      12   SET M.A. REQUEST ACKNOWLEDGEMENT FLAG 
      DEF ERR02      13      *** ERROR, ILLEGAL MODE ***
      DEF ADENT      14   CREATE A MASTER ENTRY (W/O DUPL. ENTRY SEARCH)
      DEF ERR02      15      *** ERROR, ILLEGAL MODE ***
      DEF FIND       16   TEST REQUEST ACKNOWLEDGEMENT FLAG 
* 
NMODX ABS @JTBL-*   NEG. SIZE OF TABLE
      SPC 10
*  ADD A NEW ENTRY TO THE MASTER OR SLAVE-STREAM LIST.
      SPC 1 
ADENT LDA #NULL     GET THE NULL LIST LINK-WORD.
      SZA,RSS       IS AN ENTRY AVAILABLE FROM THE POOL?
      JMP ERR03     * NO. ERROR #3: NO ENTRY AVAILABLE! 
      STA ENTAD       YES. SAVE ADDRESS OF NEW ENTRY. 
* 
      INA           POINT TO THE SECOND WORD OF THE ENTRY.
      STA ENPNT     SAVE THE POINTER FOR ENTRY BUILDING.
      CPB P14       BUILT NEW MASTER W/O "OBS.ENTRY" SEARCH?
      JMP MST0      YES 
      CPB P8        IS THIS A PNL ENTRY?
      JMP MSTAD     . YES, SKP "OBS ENTRY" SEARCH 
      CLE,SLB       IF THIS IS TO BE A SLAVE ENTRY, 
      JMP SLVAD      THEN SKIP THE SEARCH FOR MASTER ENTRIES. 
* 
      LDA MDEF      INITIALIZE THE LIST PTR TO REF THE
      STA LSTAD        MASTER LIST. 
* 
      LDA XEQT      SEARCH KEY IS: ID SEGMENT ADDRESS 
      STA KEYWD 
      LDA P4        EXAMINE FIFTH WORD OF EACH MASTER TCB.
MLOOK JSB SERCH     FIND ENTRIES WITH SAME CLASS OR PROCESS #.
      JMP MSTAD     END-OF-LIST: GO TO ADD NEW ENTRY. 
      ADB P4        GET THE 5TH WORD (ID SEGMENT ADDRESS) 
      LDA B,I         FROM ENTRY WITH SAME NUMBER.
      IOR SIGN         ADD BAD-ENTRY FLAG (BIT#15). 
      STA B,I       RETURN MODIFIED WORD.(UPLIN CLEARS TCB).
      JMP MLOOK     SEARCH FOR MORE OBSOLETE ENTRIES.[E=1]. 
* 
MSTAD CCB           CHECK FOR 
      LDA MODE       NEW PROCESS
      CPA P8          NUMBER MODE.
      RSS           YES, STAY IN-LINE 
      JMP MST0
      LDA PRAM4     PICK UP TIME-OUT WORD 
      JMP SETIM      GO SET TIMEOUT 
* 
MST0  EQU * 
      CLB,INB       SET MASTER TCB LIST CODE
      LDA PRAM4     LOAD MASTER TIME-OUT
      JMP SETIM 
* 
SLVAD JSB LSTCK     PREPARE REFERENCES FOR THE SLAVE LIST.
      ADA P2        POINT TO WORD #3 OF SLAVE-STREAM HEAD.
      LDA A,I       GET THE MONITOR I.D. SEGMENT ADDRESS. 
      SZA,RSS       IF THE MONITOR HAS NOT BEEN INITIALIZED,
      JMP ERR01      THEN NOTHING MAY BE ADDED TO THIS LIST!
      LDA #SVTO     VALID LIST: GET SLAVE TIMEOUT VALUE.
* 
SETIM STA ENPNT,I   SET TIMEOUT INTO ENTRY WORD #2
      ISZ ENPNT     POINT TO NEXT WORD OF ENTRY 
      CLA           OBTAIN AN ENTRY FROM THE NULL LIST. 
      JSB LNK       GO PROCESS LIST CHANGES.[B=LIST CODE] 
      SZA           LIST-PROCESSING ERROR?
      JMP ERR04       YES--INFORM THE CALLER! 
* 
      LDA PRAM3     USE THIRD PARAMETER 
      LDB MODE       INSTEAD OF SEQUENCE
      CPB P8          NUMBER FOR MODE 8.
      JMP STOR3     STORE IN THIRD TCB WORD.
* 
      SKP 
      SPC 3 
      LDA SEQN      GET THE LAST SEQUENCE NUMBER. 
      INA,SZA,RSS   ADVANCE THE COUNT & TEST FOR ZERO.
      CLE,INA        ROLL-OVER: RESET TO ONE. 
      STA SEQN      SAVE THE CURRENT SEQUENCE NUMBER. 
STOR3 STA ENPNT,I   INSERT IT INTO THE THIRD ENTRY WORD.
      ISZ ENPNT     ADVANCE THE ENTRY POINTER.
      LDA MODE      IF A SLAVE-ENTRY IS TO BE 
      CLE,ERA        ADDED, SET <E> =1. 
      LDA PRAM1     GET THE CALLER'S PARAMETERS 
      LDB XEQT        GET CALLER'S ID SEGMENT ADDRESS 
      SEZ           SLAVE-LIST ADDITION?
      LDB PRAM3      YES, GET THE ORIGIN NODAL ADDRESS. 
      DST ENPNT,I   ADD PARAMETERS TO ENTRY WORDS #4,#5.
      ISZ ENPNT     BUMP POINTER TO 
      ISZ ENPNT       WORD 6
      LDA PRAM2     LOAD 'M.A.' SEQUENCE NUMBER 
      STA ENPNT,I   STORE IN 6TH T.C.B. WORD
* 
      LDA SEQN      RETURN WITH: <A>=CURRENT SEQUENCE NO. 
      LDB ENTAD                  <B>=ENTRY ADDRESS. 
      JMP EXIT      GO TO PREPARE FOR RETURN TO CALLER. 
* 
SEQN  NOP           TRANSACTION SEQUENCE NUMBER.
* 
      SPC 3 
*  ERROR PROCESSING AND EXIT SECTION. 
      SPC 1 
ERR04 LDA P4        <A> =4: ENTRY CANNOT BE LOCATED.
      JMP ERR00 
ERR03 LDA P3        <A> =3: NEW ENTRY NOT AVAILABLE.
      JMP ERR00 
ERR02 LDA P2        <A> =2: INVALID MODE PARAMETER. 
      RSS 
ERR01 CLA,INA       <A> =1: INVALID LIST PARAMETER. 
* 
ERR00 CMA,INA       NEGATE THE ERROR CODE.
      STA B         <A&B> ARE THE SAME FOR ERROR RETURN.
* 
EXIT  DST TEMP      SAVE <A&B> TEMPORARILY. 
      CLA           CLEAR PARAMETER ADDRESSES 
      STA MODE       TO FACILITATE CHECKING 
      STA PRAM1       FOR MISSING PARAMETERS
      STA PRAM2        UPON NEXT ENTRY OF <#RSAX>.
      STA PRAM3 
      STA PRAM4 
      LDA #NULL     IF NO TCB ENTRIES REMAIN AVAILABLE
      SZA,RSS         IN THE ENTRY POOL, THEN DO NOT
      JMP RETRN         CLEAR THE TABLE-ACCESS RN; ELSE,
      LDA #TBRN     GET THE TABLE-ACCESS RN AND GO TO RTE 
      JSB $CGRN       TO MAKE IT AVAILABLE FOR NEXT ACCESS. 
RETRN DLD TEMP      RESTORE THE RETURN-DATA TO <A> & <B>. 
* 
* 
LBEX  JSB $LIBX     RETURN TO THE CALLER, VIA THE RTE 
      DEF #RSAX       PRIVILEGED ROUTINE PROCESSOR. 
* 
      SKP 
*     SEARCH FOR & CLEAR PROCESS NUMBER LIST ENTRY
* 
FNPNL EQU * 
      LDA PDEF      INITIALIZE SEARCH LIST HEAD TO
      STA LSTAD        PROCESS NUMBER LIST
      CCA,CLE       INITIALIZE LIST CODE FOR PNL
      STA LSTCD 
      LDA P5        SET OFFSET TO SESSION ID WORD 
      STA OFSET 
      JMP FINDX       AND SEARCH FOR ENTRY
      SPC 2 
*  SEARCH FOR MASTER & SLAVE TCB ENTRIES. CLEAR AND RETURN TO POOL, 
*    IF REQUESTED.
      SPC 1 
FIND  EQU * 
      LDA P2        SEARCH KEY WILL BE THIRD WORD IN TCB
* 
FIND. EQU *         HERE WITH OFFSET IN (A) 
      STA OFSET     IN TCB
      LDA MDEF      INITIALIZE POINTERS 
      STA LSTAD        TO THE 
      CLA,INA           MASTER
      STA LSTCD            LIST.
* 
      CLE,SLB       IF THIS IS A SLAVE REQUEST, THEN
      JSB LSTCK      ESTABLISH REFERENCES TO THE SLAVE LIST.
* 
FINDX EQU *         HERE TO START/RESUME SEARCH 
      LDA OFSET      LOAD OFFSET IN TCB TO SEARCH KEY.
      JSB SERCH      GO TO LOCATE THE TCB ENTRY [E=0].
      JMP ERR04      * ERROR #4: ENTRY CANNOT BE LOCATED! * 
* 
      STB ENTAD     SAVE THE ENTRY ADDRESS FOR LATER USE. 
      LDA MODE      GET THE MODE OF OPERATION 
      CPA P10       CLEAR PNL?
      JSB FPNLX     YES, CHECK FURTHER, RETURN IF TRUE MATCH
      ADB P3        POINT TO THIRD WORD, FOR LATER USE, 
      STB ENPNT      IN RETURNING THE CONTENTS TO CALLER. 
* 
      CPA P6        ARE WE
      JMP RELS        SUPPOSED TO 
      CPA P7            RELEASE 
      JMP RELS                THIS TCB? 
      CPA P10 
      JMP RELS
* 
      JMP FOUND           NONE OF THE ABOVE, DON'T RELEASE THE TCB
* 
RELS  LDA LSTCD     REMOVE ENTRY FROM THE SPECIFIED LIST. 
      CLB,CLE       RETURN IT TO THE NULL LIST. 
      JSB LNK       GO TO PROCESS THE LIST CHANGES. 
      CCE,SZA       LIST PROCESSING ERROR?
      JMP ERR04      YES! GO TO INFORM THE CALLER.
      STA ENTAD      ASSURE <B> RETURNS TO CALLER W/ ZERO 
* 
FOUND EQU * 
      LDA MODE      IS THIS REQUEST TO: 
      CPA P12       SET REQUEST ACKNOWLEDGEMENT FLAG? 
      JMP SETRA       .. YES, GO SET IT 
      CPA P16       TEST R.A. FLAG? 
      JMP TSTRA       ..  YES, GO TEST IT 
* 
FOND1 EQU *         RETURN POINT FOR ALL "FIND TCB" PROCESSORS
      LDA ENPNT,I   GET WORD #4 FOR RETURN TO CALLER. 
FOND2 LDB ENTAD      GET THE TCB ADDRESS; 
      JMP EXIT        ELSE, RETURN WITH <B> =0. 
      SPC 2 
*     HERE WHEN A PNL ENTRY HAS BEEN FOUND WHICH MATCHES
*     THE REMOTE SESSION ID NUMBER.  IF REMOTE NODE NUMBER ALSO MATCHES,
*     THEN A GOOD MATCH HAS BEEN FOUND.  OTHERWISE, CONTINUE SEARCH.
* 
FPNLX NOP 
      ADB P2        POINT TO REMOTE NODE NUMBER 
      LDB B,I       LOAD REMOTE NODE NUMBER 
      CPB PRAM2     MATCH?
      RSS           YES 
      JMP FINDX     NO MATCH, RESUME SEARCH AT NEXT ENTRY.
      LDB ENTAD     RECOVER <B> REGISTER & RETURN 
      JMP FPNLX,I 
* 
*     HERE TO FIND MASTER TCB, GIVEN M.A. SEQUENCE NUMBER 
*     OPERATION IS THE SAME AS "FIND MASTER TCB" (MODE 4), EXCEPT 
*     THAT THE SEARCH KEY IS THE 6TH WORD IN THE TCB, INSTEAD 
*     OF THE THIRD. 
FNDMA EQU * 
      LDA P5        6TH WORD IS SEARCH KEY
      LDB P4          (ESTABLISH MASTER LIST PNTRS) 
      STA GOOD      SET SEARCH FLAG TO ONLY GOOD TCBS 
      JMP FIND. 
* 
SETRA EQU *         HERE TO SET REQUEST ACKNOWLEDGEMENT FLAG
      LDB ENTAD     GET ADDRESS 
      INB             OF THE FLAG 
      LDA B,I       GET THE FLAG, 
      IOR RAFLG         SET IT, 
      STA B,I              AND PUT IT BACK. 
      ADB P4        <B> --> TCB+5 
      CLA           CLEAR THE MA IDENTIFIER 
      STA B,I 
      JMP FOND1              AND RETURN TO CALLER 
* 
RAFLG OCT 20000     BIT # 13
* 
TSTRA LDB ENTAD     GET THE ADDRESS 
      INB              OF THE FLAG
      LDA B,I       GET THE FLAG ITSELF 
      AND RAFLG         AND RETURN TO CALLER WITH ONLY THAT BIT SET 
      JMP FOND2 
* 
ENPNT NOP           POINTER INTO TCB ENTRY. 
ENTAD NOP           TCB ADDRESS STORAGE.
* 
      SKP 
*  SYSTEM AVAILABLE MEMORY ALLOCATION/DE-ALLOCATION PROCESSOR.
      SPC 1 
SAM   EQU * 
      LDA PRAM2     GET CALLER'S SECURITY CODE
      UNL 
      CPA SECOD     CODES MATCH?
      LST 
      RSS             CODES MATCH:  ALLOW ACCESS, ELSE
      JMP ERR01        REPORT IMPROPER ACCESS!
* 
      LDA PRAM1     GET THE CALLER'S PARAMETER. 
      SLB           IF THE REQUEST IS FOR DE-ALLOCATION,
      JMP RTSAM      GO TO RETURN THE MEMORY TO THE SYSTEM. 
* 
      STA SZMEM     ALLOCATE: SAVE NO. OF WORDS REQUESTED.
      LDA #FWAM     IF SYSTEM-AVAILABLE-MEMORY
      SZA            HAS ALREADY BEEN ALLOCATED,
      JMP ERR01       THEN REJECT THE REQUEST!
* 
      JSB $ALC      REQUEST SYSTEM AVAILABLE MEMORY (S.A.M.)
SZMEM DEC 128        IN THE AMOUNT SPECIFIED BY THE CALLER. 
      JMP LBEX      * NEVER AVAILABLE: <A>=-1,<B>=MAX EVER
      JMP LBEX      * NOT AVAILABLE NOW: <A>=0,<B>=MAX NOW
      STA #FWAM     O.K. SAVE THE ADDRESS OF MEMORY BLOCK.
      STB #SAVM          SAVE THE SIZE OF THE MEMORY BLOCK. 
      JMP LBEX      RETURN WITH S.A.M. SPECIFICATIONS.
* 
RTSAM CPA #FWAM     IS CALLER SPECIFYING CORRECT BLOCK? 
      RSS            YES. PROCESS THE DE-ALLOCATION.
      JMP ERR01      NO. ** IGNORE THE REQUEST! **
* 
      LDB #SAVM     GET THE BLOCK-SIZE SPECIFICATION. 
      DST RTN       CONFIGURE THE DE-ALLOCATION REQUEST.
* 
      JSB $RTN      RETURN A SYSTEM-AVAILABLE-MEMORY BLOCK; 
RTN   NOP             BEGINNING AT SPECIFIED ADDRESS, AND 
      NOP               CONTAINING SPECIFIED NO. OF WORDS.
      CLA           CLEAR THE STORAGE LOCATIONS FOR:
      STA #FWAM       MEMORY BLOCK ADDRESS. 
      STA #SAVM       MEMORY BLOCK SIZE.
      JMP LBEX      RETURN TO THE CALLER. 
      UNL 
SECOD DEC 3360
      LST 
      SKP 
*  SUBROUTINE TO CHECK LIST PARAMETER & SET LIST CODE & LIST ADDRESS. 
      SPC 1 
*  ENTER:  <A&B> = DON'T CARE.
*  RETURN: <A> =LIST ADDRESS; <B> =LIST CODE. 
*          ERROR - RETURN VIA ERROR EXIT WITH ERROR #1. 
* 
LSTCK NOP           ENTRY/EXIT: LIST ID ROUTINE.
      LDA PRAM2     GET THE STREAM PARAMETER. 
      AND B77      ISOLATE THE STREAM NUMBER. 
      ADA P2        ADD OFFSET FOR NULL & MASTER LISTS. 
      STA LSTCD     SAVE FOR USE ELSEWHERE. 
      STA B         SAVE FOR RETURN TO CALLER.
      ADA NMAX      CHECK FOR SPECIFICATION 
      CLE,SSA,RSS     OF AN UN-DEFINED LIST.
      JMP ERR01     * ERROR #1: INVALID LIST! 
      LDA #LDEF     GET THE LIST-TABLE ADDRESS. 
      ADA B         INDEX TO THE PROPER ENTRY.
      LDA A,I       GET THE LIST ADDRESS. 
      STA LSTAD     SAVE THE ADDRESS FOR LATER USE. 
      JMP LSTCK,I   RETURN TO THE CALLER. 
* 
B77   OCT 77
LSTAD NOP           ADDRESS OF LIST HEADER. 
LSTCD NOP           LIST IDENTIFICATION CODE. 
* 
      SKP 
*  SUBROUTINE TO SEARCH FOR A SPECIFIC LIST ENTRY.
      SPC 1 
*  ENTER:  <A> = OFFSET INTO TCB ENTRY; <B> = DON'T CARE. 
*          <E> =0: SEARCH FROM TOP; <E> =1: CONTINUE SEARCH.
*          'LSTAD' SET TO ADDRESS OF LIST TO BE SEARCHED. 
*          'KEYWD' CONTAINS SEARCH KEY
* 
*  RETURN: P+1 -- ENTRY NOT LOCATED; <A> MEANINGLESS, <B> =0. 
*          P+2 -- ENTRY WAS LOCATED; <A> MEANINGLESS, <B> = ENTRY ADDRESS.
* 
SERCH NOP           ENTRY/EXIT:LIST SEARCH ROUTINE. 
      LDB TEMP+1    GET NEXT-ENTRY ADDRESS TO CONTINUE. 
      SEZ           IS THIS A REQUEST TO CONTINUE?
      JMP SLOOP       YES. GO TO CONTINUE THE SEARCH. 
      STA OFSET     SAVE OFFSET INTO TCB ENTRY. 
      LDB LSTAD     GET TOP-OF-LIST ADDRESS.
* 
SLOOP LDB B,I       GET THE LINK TO THE NEXT ENTRY. 
      SZB,RSS       IS THIS THE END OF THE LIST?
      JMP SERCH,I     YES. TAKE "NOT FOUND" EXIT (P+1). 
* 
      STB TEMP+1    SAVE POINTER TO NEXT ENTRY. 
      LDA GOOD      ONLY "GOOD" TCBS WANTED?
      SZA,RSS 
      JMP SER1      . NO BAD ONES OK
      LDA P4
      ADA B         <A> --> ID SEGMENT ADDRESS TCB+4
      LDA A,I       CHECK FOR BAD BIT SET 
      CCE,SSA       BAD BIT SET?
      JMP SLOOP     . YES IGNORE THIS TCB 
SER1  ADB OFSET     POINT TO KEYWORD LOCATION.
      LDA B,I       GET THE KEYWORD.
      LDB TEMP+1    PREPARE TO RETURN WITH ENTRY ADDRESS. 
      CPA KEYWD     DOES IT MATCH THE CALLER'S KEYWORD? 
      CCE,RSS        YES. SET <E> FOR CONTINUATION--SKIP. 
      JMP SLOOP      NO. CONTINUE SEARCHING.
* 
      ISZ SERCH     ENTRY FOUND: SET RETURN TO P+2. 
      JMP SERCH,I   RETURN TO THE CALLER. 
* 
OFSET NOP           KEYWORD OFFSET INTO TCB ENTRY.
KEYWD NOP           SEARCH KEY
GOOD  NOP           IF SET, ONLY "GOOD" TCBS WANTED 
* 
      SKP 
*  SUBROUTINE TO PROCESS LIST LINKAGE.
      SPC 1 
*  ENTER:  <A> = CODE OF REMOVAL LIST; <B> = CODE OF ADDITION LIST. 
*          'ENTAD' SET TO ADDRESS OF ENTRY TO BE REMOVED. 
* 
*  RETURN: <A>&<B> =0: NORMAL; <A> =-1, <B> =UNCHANGED: ERROR.
* 
LNK   NOP           ENTRY/EXIT: LIST LINK ROUTINE.
      STA TEMP      SAVE REMOVAL-LIST CODE, TEMPORARILY.
      ADA #LDEF     FIND THE TABLE ADDRESS. 
      LDA A,I       GET ADDRESS: TOP-OF-REMOVAL-LIST. 
LNK1  STA PNTR      SAVE LIST POINTER.
      LDA A,I       GET THE LINK TO THE NEXT ENTRY. 
      SZA,RSS       IF THIS IS THE END OF THE LIST, 
      JMP LNKER       THEN INFORM THE CALLER OF THE ERROR.
      CPA ENTAD     IS THIS THE ENTRY TO BE REMOVED?
      RSS             YES. SKIP TO REMOVE IT. 
      JMP LNK1        NO. TRY THE NEXT ONE. 
      LDA ENTAD,I   GET THE LINK TO THE FOLLOWING ENTRY,
      STA PNTR,I      AND MOVE IT TO THE PREVIOUS ENTRY.
* 
      ADB #LDEF     FIND THE TABLE ADDRESS. 
      LDB B,I       GET ADDRESS: TOP-OF-ADDITION-LIST.
LNK2  STB PNTR      SAVE LIST POINTER.
      LDB B,I       GET THE LINK TO THE NEXT ENTRY. 
      SZB           IS THIS THE END OF THE LIST?
      JMP LNK2        NO. CONTINUE SEARCHING FOR THE END. 
      STB ENTAD,I     YES. MAKE NEW ENTRY = END-OF-LIST.
      LDA ENTAD     GET THE ADDRESS OF THE NEW ENTRY. 
      STA PNTR,I    SAVE IN LINK-WORD OF PREVIOUS ENTRY.
* 
      LDA MODE      IF MODE IS
      CPA P14        NOT = 14 
      CLA             AND 
      ADA M8           >= 8 THEN
      SSA,RSS           PROCESSING
      JMP LNKER-1        IS ALL DONE. 
* 
      CPB TEMP      REMOVING ENTRY FROM NULL LIST? [<B>=0]
      CLA,INA,RSS     YES. PREPARE TO ADD TO ACTIVE COUNT.
      CCA             NO. PREPARE TO DECREMENT ACTIVE COUNT.
      ADA #BUSY     COMPUTE THE NEW 'ACTIVE-ENTRY' COUNT, 
      STA #BUSY       AND UPDATE THE INDICATOR. 
      CLA,RSS       INDICATE NORMAL RETURN, AND SKIP. 
LNKER CCA           <A> =-1: NO ENTRIES IN REMOVAL LIST.
      JMP LNK,I       RETURN IS MADE TO THE CALLER. 
* 
PNTR  NOP           LIST POINTER STORAGE. 
* 
      SKP 
*  TABLE OF LIST-HEADER ADDRESSES.                         LIST CODES:
      SPC 1 
* 
#LDEF DEF SOT       START-OF-TABLE DEFINITION.
PDEF  DEF #PNLH     HP3000 PROCESS NUMBER HEADER -01
SOT   DEF #NULL     ENTRY-POOL HEADER             00
MDEF  DEF #MRTH     MASTER-REQUEST HEADER         01
SDEF  DEF #ST00     SLAVE-STREAM 00 HEADER        02
      DEF #ST01     SLAVE-STREAM 01 HEADER        03
      DEF #ST02     SLAVE-STREAM 02 HEADER        04
      DEF #ST03     SLAVE-STREAM 03 HEADER        05
      DEF #ST04     SLAVE-STREAM 04 HEADER        06
      DEF #ST05     SLAVE-STREAM 05 HEADER        07
      DEF #ST06     SLAVE-STREAM 06 HEADER        10
      DEF #ST07     SLAVE-STREAM 07 HEADER        11
      DEF #ST08     SLAVE-STREAM 08 HEADER        12
      DEF #ST09     SLAVE-STREAM 09 HEADER        13
      DEF #ST10     SLAVE-STREAM 10 HEADER        14
      DEF #ST11     SLAVE-STREAM 11 HEADER        15
* NEW ENTRY: .........DEF #STXX.....SLAVE-STREAM XX HEADER........15
* 
NMAX  ABS SDEF-*-2  LIST CODE VALIDITY-CHECKING CONSTANT. 
* 
#MNUM ABS NMAX-SDEF NUMBER OF SLAVE-STREAM TYPES. 
      SPC 1 
*  CONSTANTS AND STORAGE. 
      SPC 1 
M8    DEC -8
P2    DEC 2 
P3    DEC 3 
P4    DEC 4 
P5    DEC 5 
P6    DEC 6 
P7    DEC 7 
P8    DEC 8 
P10   DEC 10
P12   DEC 12
P16   DEC 16
P14   DEC 14
SIGN  OCT 100000
TEMP  OCT 0,0       TEMPORARY STORAGE LOCATIONS.
      SPC 1 
*  HP3000 ID SEQUENCE SPECIFICATIONS
* 
D$LID DEF LOC       LOCAL ID SEQUENCE ADDRESS 
D$RID DEF REM       REMOTE ID SEQUENCE ADDRESS
      SPC 1 
#RDLY DEC -200      MAXIMUM RTRY DELAY: 200 CENTOSECONDS (2 SEC.) 
#PRLU DEF #PRGL     DEFAULT LU FOP PROGL MESSAGES: NO MESSAGES
*                   (NOTE: #PRGL IS IN #REQU.  IT MUST BE SEPARATED 
*                   IN ORDER TO ALLOW 'ABS' AT GEN-TIME TO WORK, AS WELL
*                   AS ON-LINE PATCHES TO #PRLU)
* 
*  GENERAL SYSTEM DATA [ INITIALIZED BY 'DINIT' ].
* 
*     NOTE: ANY CHANGE IN THE ORDERING OF THIS AREA MUST BE ACCOMPANIED 
*     BY A CHANGE TO THE CORRESPONDING AREA OF 'DINIT'
* 
      SPC 1 
#SCLR DEF #TBRN     START OF AREA CLEARED BY 'DINIT'. 
#FWAM NOP           ADDRESS OF SYSTEM AVAIL. MEMORY BLOCK.
#SAVM NOP           SIZE OF SYSTEM AVAIL. MEMORY BLOCK. 
#TBRN NOP           TABLE-ACCESS RESOURCE NUMBER. 
#QRN  NOP           QUIESCENT(RN) OR SHUT-DOWN(0).
#GRPM NOP           GENERAL PRE-PROCESS MODULE CLASS NO.
#QCLM NOP           QUEUE CLEAN-UP MONITOR CLASS NUMBER.
#BUSY NOP           NUMBER OF ACTIVE TCB ENTRIES. 
#MSTO NOP           MASTER REQUEST TIMEOUT VALUE. 
#SVTO NOP           SLAVE REQUEST TIMEOUT VALUE.
#RTRY NOP           RETRY-PROCESSOR'S CLASS NUMBER. 
#WAIT NOP           D65MS QUIESCENT WAIT INTERVAL.
#SWRD NOP           NETWORK-NODE SECURITY CODE. 
#BREJ NOP           D65MS RETRY COUNT FOR BUSY REJECT.
#INCV NOP           INCOMING MSG CNVTR CLASS NUMBER 
#OTCV NOP           OUTGOING MSG CNVTR CLASS NUMBER 
#MHCT NOP           MAXIMUM HOP COUNT 
#MDCT NOP           MAX.# TIMES A LINK CAN GO DOWN IN 5 MIN 
#RPCV NOP           HP3000 REPLY CONVERTER CLASS NO.
#RQCV NOP           HP3000 REQUEST CONVERTER CLASS NO.
#LU3K NOP           LU NUMBER OF HP3000 
#QZRN NOP           QUEZ RN FOR "LISTEN MODE" 
#CLRN NOP           QUEX RESOURCE NUMBER FOR CLEANUP
#QXCL NOP           QUEX CLASS NO.
#TST  NOP           HP3000 TRANS. STATUS TABLE ADDRESS
      NOP           HP3000 TRANS. STATUS TABLE SIZE,IN ENTRIES
* 
      SKP 
*  LIST HEADERS (REMAINDER OF LISTS LOCATED IN SYSTEM AVAILABLE MEMORY).
      SPC 3 
#PNLH NOP                        HP3000 PROCESS # LIST
      SPC 1 
#NULL NOP           LIST HEADER: ENTRY POOL.
      SPC 1 
#MRTH NOP                        MASTER REQUEST  LIST.
      SPC 1 
#ST00 OCT 0,0,0,0,0              SLAVE-STREAM 00 LIST.
      SPC 1 
#ST01 OCT 0,0,0,0,0              SLAVE-STREAM 01 LIST.
      SPC 1 
#ST02 OCT 0,0,0,0,0              SLAVE-STREAM 02 LIST.
      SPC 1 
#ST03 OCT 0,0,0,0,0              SLAVE-STREAM 03 LIST.
      SPC 1 
#ST04 OCT 0,0,0,0,0              SLAVE-STREAM 04 LIST.
      SPC 1 
#ST05 OCT 0,0,0,0,0              SLAVE-STREAM 05 LIST.
      SPC 1 
#ST06 OCT 0,0,0,0,0              SLAVE-STREAM 06 LIST.
      SPC 1 
#ST07 OCT 0,0,0,0,0              SLAVE-STREAM 07 LIST.
      SPC 1 
#ST08 OCT 0,0,0,0,0              SLAVE-STREAM 08 LIST.
      SPC 1 
#ST09 OCT 0,0,0,0,0              SLAVE-STREAM 09 LIST.
      SPC 1 
#ST10 OCT 0,0,0,0,0              SLAVE-STREAM 10 LIST.
      SPC 1 
#ST11 OCT 0,0,0,0,0 SLAVE-STREAM 11 LIST
      SPC 1 
* NEW ENTRY: ...#STXX OCT 0,0,0,0,0 .............SLAVE-STREAM XX LIST.
      SKP 
#RFSZ NOP           MAXIMUM NUMBER OF 'OPEN' RFA FILES. 
* 
*     REMOTE SESSION MONITOR ITEMS
* 
#RSM  NOP           REMOTE SESSION MONITOR CLASS NUMBER 
#POOL NOP           POINTER TO REMOTE SESSION ID POOL 
#DFUN BSS 11        DEFAULT ACCOUNT FOR REMOTE SESSION
#PASS BSS 5         PASSWOD FOR NON-SESSION ACCESS
* 
*     PLOG/TLOG ITEMS 
* 
#PLOG BSS 7         1000 LOGGING PROGRAM'S CLASS NO.
#CL3K BSS 7         3000 LOGGING PROGRAM'S CLASS NO.
* 
*     RE-ROUTING ITEMS
* 
#LV   NOP            LINK VECTOR PNTR (OR 0 IF NO RE-ROUTING) 
#LCNT NOP           NUMBER OF "LINK VECTOR" ENTRIES 
#CM   NOP           "COST MATRIX" PNTR, OR 0 IF NO RE-ROUTING 
#CMCT NOP           NUMBER OF "COST MATRIX" ENTRIES 
* 
*     "MESSAGE ACCOUNTING" STORAGE AREA 
* 
#MCTR NOP           NEGATIVE # OF M.A. TABLE ENTRIES
#MTBL NOP           PNTR TO M.A. TABLE (IN SAM) 
#MARN NOP           M.A. TABLE ACCESS RESOURCE NUMBER 
#MAHC NOP           M.A. 'HOLDING' CLASS (SLAVE REPLY QUEUE FOR RE-XMISN) 
#MARL NOP           MAX. MSG RETRY LIMIT
#MAZE NOP 
*--   MAX NUMBER OF TCBS IN THE SYSTEM (INCLUDING PNL)
#TCB  NOP 
#EXHC NOP           EXECM HOLDING CLASS 
#EXTC NOP           EXECM TEMP. HOLDING CLASS 
* 
*     END OF AREA CLEARED BY "DINIT"
* 
#NCLR ABS #TBRN-*   NEGATIVE # LOCNS 'DINIT' CLEARS 
      SPC 2 
*  NODAL ADDRESSING SPECIFICATIONS. 
* 
#CNOD NOP           <EXECW> CURRENT-USER-NODE; -1: INACTIVE.
#LNOD NOP           <APLDR> DOWN-LOAD NODE
* 
* 
* 
* 
#NODE NOP           LOCAL NODE NUMBER.
#ACRN NOP           <APLDR> DOWN-LOAD FILE CRN
* 
* 
*     NOTE: #NCNT & #NRV MUST BE CONSECUTIVE! 
* 
#NCNT NOP           NEG. NUMBER OF NRV TABLE ENTRIES (PAIRS)
#NRV  NOP           S.A.M. ADDRESS OF NRV TABLE.
#TRCL NOP           'TRACE' CLASS NUMBER
#TRCN NOP           'TRACE' RESOURCE NUMBER 
      SPC 2 
#LEVL DEC 1         LOCAL NODE UPGRADE LEVEL
#NMSC NOP           NETWORK MANAGEMENT SECURITY CODE
#LUMP NOP           STORAGE FOR 'LUMAP' CLASS NUMBER
#LMPE NOP           STORAGE FOR ERRORS
      NOP             (DOUBLE-WORD) 
      NOP           REPORTING NODE NUMBER 
      SPC 2 
* HP3000 ID SEQUENCE SPECIFICATIONS 
* 
LOC   NOP           LOCAL ID SEQUENCE: BYTE COUNT 
     BSS 8                            CHARACTERS
* 
REM   NOP           REMOTE ID SEQUENCE: RESERVED WORD 
     NOP                               BYTE COUNT 
     BSS 8                             CHARACTERS 
A     EQU 0 
B     EQU 1 
* 
XEQT  EQU $XQT
      SPC 1 
      ORR           [ INDICATES SIZE OF <RES> ] 
      SPC 1 
      END 
                                                                        