ASMB,R,L,C,N
      HED <LSTEN> DS/1000 INITIALIZATION * (C) HEWLETT-PACKARD CO. 1979 * 
      IFZ 
      NAM LSTEN,19,26 91740-16072 REV 1913 790126 
      XIF 
      IFN 
      NAM LSTEN,19,26 91740-16001 REV 1913 790126 
      XIF 
      SPC 1 
      ENT LSTEN 
      SPC 1 
      EXT READF,CLOSE,OPEN,RNRQ,PRTN,REIO,PGMAD,CNUMD 
      EXT EXEC,MESSS,$LIBR,$LIBX,$OPSY,RMPAR,PARSE,#RSAX
      EXT #ST04,#MRTH,$BMON,#ST10 
      EXT #FWAM,#TBRN,#MSTO,#NULL,#QRN,#LDEF
      EXT #BREJ,#SVTO,#WAIT,#SWRD,#NODE,#NRV,#NCNT
      EXT #GRPM,#QCLM,#NCLR,#SCLR,#RFSZ,#RTRY 
      EXT #CNOD,#LNOD 
      EXT #LU3K,#QZRN,#RQCV,#RPCV,#QXCL 
      EXT D$EQT,D$XS5,D$LID,D$RID,#SAVM 
      EXT DRTEQ 
      IFZ 
      EXT D65MS,#BUSY,#PNLH 
      XIF 
      SUP 
* 
*    NAME:   LSTEN
*    SOURCE: 91740-18001
*    RELOC.: 91740-16001
*    PGMR:   C. HAMILTON  [ 02/12/77 ]
*            D. TRIBBY    [ 03/17/77 ]  DS/3000 CHANGES 
* 
** MODIFIED TO HANDLE DVR07  [11/18/77]  DMT
** MODIFIED TO PROVIDE SHUTDOWN [6-15-78] LAW 
**
** MODIFIED TO PROVIDE COMMENTS [6-23-78] LAW 
**
** MODIFIED FOR REMOTE DATA BASE ACCESS [10-27-78] CEJ
* 
* 
*     USE "Z" OPTION TO INCLUDE SHUTDOWN CAPABILITY 
*     USE "N" OPTION TO EXCLUDE SHUTDOWN CAPABILITY 
* 
*  ***************************************************************
*  * (C) COPYRIGHT HEWLETT-PACKARD COMPANY 1979.  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 5 
*  LSTEN SERVES A DUAL PURPOSE. IT IS USED, PRIMARILY, TO INITIALIZE
*   THE DISTRIBUTED SYSTEMS NETWORK THROUGH ESTABLISHMENT OF THE
*   REQUIRED RESOURCES (CLASS NUMBERS, RESOURCE NUMBERS, TRANSACTION
*   LISTS, POINTERS, TIMERS, AND CONSTANTS), THROUGH THE ACTIVATION 
*   OF 'LISTEN' MODE FOR EACH SPECIFIED COMMUNICATION LINE INTERFACE, 
*   AND BY SCHEDULING THOSE MONITOR-PROGRAMS WHICH SERVICE INCOMING 
*   REQUESTS FROM REMOTE NETWORK NODES. 
      SPC 3 
*  LSTEN'S SECONDARY PURPOSE IS TO ALLOW THE USER TO RE-ENABLE A
*   COMMUNICATION LINE INTERFACE, WHICH HAS BEEN INACTIVATED BY 
*   UNFORESEEN MALFUNCTIONS. IT MAY ALSO BE USED TO BRING THE 
*   NETWORK TO A QUIESCENT STATE, IN ORDER TO ADJUST SYSTEM TIMING, 
*   OR FOR ANY OTHER PURPOSE WHICH REQUIRES SUSPENSION OF NETWORK 
*   OPERATIONS, AT THIS PARTICULAR NODE.
* 
      SKP 
* +----------------------------------------------------------------+
* !SCHEDULING FOR INITIALIZATION:                                  !
* +----------------------------------------------------------------+
* 
*   *ON,LSTEN,(INPUT LU),(ERROR LU) 
* 
*   SCHEDULE <LSTEN> TO ACCEPT RESPONSES FROM A PERIPHERAL DEVICE.
* 
*     NOTE: IF SCHEDULING PARAMETERS ARE NOT SUPPLIED, LU #1 IS THE DEFAULT.
*           IF THE (INPUT LU) IS LINKED TO AN INTERACTIVE DEVICE, 
*             INTERROGATORY REMARKS WILL BE DISPLAYED ON THE DEVICE.
*           THE (ERROR LU), IF SPECIFIED, MUST BE LINKED TO AN
*             INTERACTIVE DEVICE. 
* 
*   *ON,LSTEN,FI,LE,NM [,SECURITY CODE [,CARTRIDGE NUMBER] ]
* 
*   SCHEDULE <LSTEN> TO ACCEPT RESPONSES FROM A FILE <FILENM>.
* 
*     NOTE: ANY ERRORS WILL BE REPORTED ON LU #1; <LSTEN> WILL THEN ABORT.
* 
*   CALL EXEC(10,NAME,-1,ICLAS,IRELN) 
* 
*   USE A START-UP PROGRAM TO SCHEDULE <LSTEN> WITH RESPONSES PASSED
*   IN I/O CLASS <ICLAS> AND LENGTH <IRELN>. (THIS MODE IS INDICATED
*   BY A NEGATIVE FIRST PARAMETER.) 
* 
* +--------------------------------------------------------------+
* !INITIALIZATION QUERIES AND VALID RESPONSES (IN NORMAL ORDER): !
* +--------------------------------------------------------------+
* 
*     NOTE: CONTROL FILE RESPONSES CONSIST OF ONE RECORD PER RESPONSE.
*           /A : ABORT <LSTEN> IS A VALID RESPONSE TO ALL QUERIES.
* 
*   /LSTEN: SYSTEMS CONNECTED TO THIS NODE
*   /LSTEN: HP 1000? <YES OR NO>
*   /LSTEN: HP 3000? <YES OR NO>
* 
*   /LSTEN: NO OF ACTIVE TRANSACTIONS? <1-100 (/D =DEFAULT OF 20)>
*     NOTE: EACH TRANSACTION USES 5 WORDS OF SYSTEM-AVAILABLE-MEMORY. 
* 
* NOTE: FOLLOWING QUESTIONS ARE ASKED ONLY WHEN HP3000 IS CONNECTED 
*   /LSTEN: MAX NO. OF CONCURRENT HP3000 USERS? <1-10 (/D=DEFAULT OF 4)>
*     NOTE: EACH CONCURRENT USER REQUIRES 14 WORDS OF SAM 
* 
*   /LSTEN: LU OF HP3000?  <ENTER AN LU CONNECTED TO DVG 61, 66, OR 67> 
* 
*   /LSTEN: ENTER 0 FOR HALF, 1 FOR FULL DUPLEX:
*     NOTE: ASKED ONLY FOR MODEM LINK.
* 
*   /LSTEN: LOCAL ID SEQUENCE? <15 CHAR MAX: /E IF NONE>
*     NOTE: ASKED ONLY FOR MODEM LINK.
* 
*   /LSTEN: REMOTE ID SEQUENCE? <15 CHAR MAX: /E IF NONE> 
*     NOTE: ASKED ONLY FOR MODEM LINK.
* 
* END HP3000 OPTION.
* 
* NOTE: FOLLOWING QUESTIONS ASKED ONLY WHEN HP1000'S ARE CONNECTED: 
*   /LSTEN: ENABLE LU# ? <LOGICAL UNIT NO. (MUST BE LINKED TO DVA65)> 
*   /LSTEN: ENABLE LU# ? </E (TERMINATES INPUT AFTER ALL LU'S ENTERED)> 
* 
*   /LSTEN: NDT FILE NAME [,SC[,CR]]? AAAAAA,NN,NN (FILE NAME) THIS FILE
*     DEFINES THE NETWORK DESCRIPTION TABLE & IS CREATED BY PROGRAM "NDTGN" 
* 
*   /LSTEN: LOCAL CPU #? <1-32767  (DEFINES LOCAL NODE NUMBER) >
* 
*     NOTE: NDT TABLE MAY BE INTERACTIVELY CREATED, AS SHOWN BELOW: 
* 
* * /LSTEN: NDT FILE NAME [,SC[,CR]]? <0> (SPECIFY INTERACTIVE 'NDTGN') 
* * /LSTEN: LOCAL CPU #? <1-32767 (DEFINE LOCAL NODE NUMBER) >
* * /LSTEN: NUMBER OF NODES? <NN (NO. OF NODAL ADDRESS PAIRS) > 
* * /LSTEN: CPU#,LU,TIMEOUT? <NNNNN,-NN/0/+NN,NNN>
* *         (CPU# = 0 TO 32767 [NODAL ADDRESS]) 
* *         (LU [DV-65]: 0=LOCAL NODE, 0<LU<65=ANY NODE)
* *         (TIMEOUT: 0 TO 255 [MASTER T/O FOR LONG STORE & FWD. PATHS) 
* * 
* *  NOTE: THIS QUESTION ASKED FOR EACH NODE SPECIFIED IN "NUMBER OF NODES?"
* END OF HP1000 OPTION. 
* 
* 
*   /LSTEN: MONITOR NAME? <AAAAA (MONITOR NAME)  /D =SCHEDULE ALL)> 
*   /LSTEN: MONITOR NAME? </E (TERMINATES INPUT--NOT USED FOR /D MODE)> 
* 
*   /LSTEN: INPUT # OF FILES: <1 TO 255 (TOTAL FILES OPEN TO ALL NODES)>
*     NOTE: ASKED ONLY FOR /D OPTION, OR WHEN <RFAM> SPECIFIED. 
* 
*   /LSTEN: SECURITY CODE? <AA (ANY TWO ASCII CHARACTERS THAT 
*           DO NOT REPRESENT A NUMERIC VALUE)>
* 
*   /LSTEN: OPERATION? < (SEE SECONDARY MODE FOR VALID RESPONSES) > 
* 
*  ONCE THE SYSTEM HAS BEEEN INITIALIZED, SUBSEQUENT SCHEDULING OF
*    <LSTEN> WILL CAUSE ENTRY INTO THE SECONDARY MODE OF OPERATION. 
*  IN THIS MODE, THE USER MAY RE-ENABLE COMMUNICATION LINE INTERFACES,
*    SCHEDULE ADDITIONAL MONITORS, DISPLAY THE NODAL ROUTING VECTOR,
*    OR PLACE THE SYSTEM INTO QUIESCENT MODE. ONCE THE SYSTEM HAS BEEN
*    MADE QUIESCENT, THE USER MAY, ONLY, RESTART THE QUIESCENT SYSTEM.
      SKP 
* +--------------------------------------------------------------+
* !SCHEDULING FOR SECONDARY MODE OF OPERATION:                   !
* +--------------------------------------------------------------+
* 
*   *ON,LSTEN,(LINE LU#),(ERROR LU#)  <DEFAULT ERROR LU =1> 
* 
*    THIS PROCEDURE IS USED TO RE-ENABLE THE LINE INTERFACE FOR A 
*      SINGLE LOGICAL UNIT NUMBER. THERE IS NO INTERACTION WITH THE 
*      USER, UNLESS AN ERROR IS DETECTED. IN THE EVENT OF ERROR 
*      DETECTION, THE USER WILL BE QUERIED ON THE (ERROR LU#) DEVICE. 
* 
*               (INPUT LU#),(ERROR LU#)  < DEFAULT = LU#1 FOR BOTH >
*              /
*   *ON,LSTEN, : -1,CLASS #,RECORD LENGTH  <USUALLY PROGRAMATIC 
*              \                                 SCHEDULE VIA EXEC> 
*               FI,LE,NM [,SECURITY CODE [,CARTRIDGE NUMBER] ] <ERROR LU=1> 
* 
*    IN SECONDARY MODE, SCHEDULING <LSTEN> WITH AN INTERACTIVE TERMINAL 
*      AS THE (INPUT LU#) DEVICE, OR UNDER THE CONTROL OF A COMMAND FILE, 
*      WILL ALLOW THE USER TO SELECT SEVERAL POSSIBLE OPERATIONS. 
* 
* +-------------------------------------------------------------------+ 
* !SECONDARY MODE QUERIES AND VALID RESPONSES:                        ! 
* +-------------------------------------------------------------------+ 
* 
*      NOTE: /A (ABORT <LSTEN>) IS A VALID RESPONSE TO ALL QUERIES. 
* 
*      **** ACCEPTABLE RESPONSES--NON-QUIESCENT SYSTEM **** 
* 
*       --------------  TO RE-ENABLE A LINE   ----------------- 
* 
*   /LSTEN: OPERATION?  </L 
*   /LSTEN: ENABLE LU# ? < LU# (LINKED TO DVA65)> 
*        (REPEAT FOR AS MANY AS DESIRED)
*   /LSTEN: ENABLE LU# ? </E (TERMINATE RE-ENABLING PROCESS)> 
* 
*       ---------------- TO DISPLAY THE NODAL ROUTING VECTOR -------- 
* 
*   /LSTEN: OPERATION?  </N 
*   NRV SPECIFICATIONS: 
*   LOCAL NODE#:  NNNNN, NO. OF NODES=  NNNNN 
*    NNNNN: NODE= NNNNN, LU=    NN, TO=   NNN 
*   LAST <APLDR> LOAD-NODE= NNNNN (OR "NONE")  [DISPLAYED FOR RTE-M, ONLY]
* 
*        --------------- TO ADJUST SYSTEM TIMING  --------------------
*   /LSTEN: OPERATION?  </T 
*   TIMING MODIFICATION--CURRENT VALUES:
* 
*   MASTER T/O   = NNNNNN 
*   SLAVE  T/O   = NNNNNN 
*   REMOTE-BUSY  = NNNNNN 
*   REMOTE-QUIET = NNNNNN 
* 
* 
*   /LSTEN: MASTER T/O [5 TO 1275 SECONDS] ? <5 TO 1275 (NUMERIC RESPONSE)> 
*           [ RESOLUTION = 5 SECONDS ]       (DEFAULT VALUE = 45) 
* 
*   /LSTEN: SLAVE T/O  [5 TO 1275 SECONDS] ? <5 TO 1275 (NUMERIC RESPONSE)> 
*           [ RESOLUTION = 5 SECONDS ]       (DEFAULT VALUE = 30) 
* 
*   /LSTEN: REMOTE-BUSY RETRIES [1 TO 10]? <1 TO 10(NUMERIC)> 
*                                            (DEFAULT VALUE =3) 
* 
*   /LSTEN: REMOTE-QUIET WAIT [0 TO 7200 SEC.]? <0 TO 7200 (NUMERIC)> 
*                                             (DEFAULT VALUE =0)
* 
*          ---------------- TO TEMPORARILY SUSPEND NETWORK TRANSACTIONS ----- 
*                           (I.E., "QUIESCE" THE NODE)
* 
*   /LSTEN: OPERATION?  </Q 
*   /LSTEN: SYSTEM QUIESCENCE 
*   /LSTEN: SECURITY CODE? < AA (MUST MATCH ORIGINAL SECURITY CODE)>
*   END LSTEN  (TERMINATION MESSAGE)
* 
*     NOTE: WHEN QUIESCENT, <UPLIN> PRINTS "SYSTEM IS QUIESCENT" ON LU#1. 
* 
*             --------- TO SCHEDULE ADDITIONAL MONITORS ------- 
* 
*   /LSTEN: OPERATION?  </S 
*   /LSTEN: MONITOR NAME?  <AAAAA (MONITOR NAME)> 
*   /LSTEN: MONITOR NAME?  </E (TERMINATE INPUT)> 
*   /LSTEN: OPERATION?  </E (TERMINATE 'LSTEN')>
*   END LSTEN  (TERMINATION MESSAGE)
* 
*             ----------- TO SHUTDOWN DS ACTIVITY & RELEASE RESOURCES --- 
* 
*   /LSTEN: OPERATION? SD 
*   /LSTEN: SYSTEM SHUTDOWN 
*   /LSTEN: # ACTIVE TCBS: NNNNN
*   /LSTEN: # ACTIVE HP 3000 SESSIONS: NNNNN
*   /LSTEN: SECURITY CODE? <AA  (MUST MATCH ORIGINAL SECURITY CODE)>
*   END LSTEN   (TERMINATION MESSAGE) 
* 
*     "SHUTDOWN" MAY BE INVOKED WHENEVER LSTEN IS SCHEDULED IN THE
*     SECONDARY MODE.  WHEN SHUTDOWN IS COMPLETE, ALL RESOURCES OF
*     ANY KIND WHICH WERE ALLOCATED TO NETWORK-RELATED ACTIVITY 
*     DURING THE PREVIOUS INITIALIZATION ARE RETURNED TO RTE. 
*     THIS INCLUDES ALL CLASS NUMBERS, CLASS BUFFERS, RESOURCE NUMBERS, 
*     NETWORK-RELATED PROGRAMS (GRPM,RTRY,QCLM,UPLIN,QUEX,QUEZ, 
*     RPCNV,RQCNV,QUEUE,ETC.) AND ALL ALLOCATED SAM ARE RETURNED TO RTE.
*     THIS MEANS ALL SYSTEM RESOURCES.  ALL COMMUNICATION LOGICAL UNITS 
*     DEFINED IN THE NRV ARE CLEARED: THEY WILL NOT RESPOND TO INCOMING 
*     MESSAGES.  ALL SLAVE MONITORS ARE ABORTED AND THEIR CLASS NUMBERS 
*     AND ANY BUFFERS OUTSTANDING ARE CLEARED (NOTE: ALL FILES CURRENTLY
*     OPEN TO 'RFAM' WILL BE LOST.  FILES WHICH HAVE BEEN WRITTEN ON WILL 
*     BE CORRUPTED).   ALL MASTER PROGRAMS WAITING
*     FOR REPLIES ARE GIVEN A MASTER TIME-OUT ERROR.  IF THEY REPEAT THEIR
*     REQUEST, THEY WILL RECEIVE A DS00 ERROR.
* 
*     THEREFORE,  USE CARE IN DETERMINING WHEN TO RE-INITIALIZE.
* 
*     THE NEXT TIME LSTEN IS SCHEDULED, IT WILL REQUEST INITIALIZATION. 
* 
*     THE USER SHOULD ALSO BE AWARE THAT WHENEVER DS/1000 IS
*     INITIALIZED, A BLOCK OF SAM IS ALLOCATED SEMI-PERMANENTLY FOR THE 
*     DS-RELATED TABLE AREAS (TCBS, NRV, ETC.).  IT IS NOT RETURNED TO
*     RTE UNTIL DS IS SHUTDOWN OR THE SYSTEM IS RE-BOOTED.  INITIALIZING
*     DS WHILE OTHER PROGRAMS HAVE SAM: BLOCKS ALLOCATED WILL FRAGMENT SAM: 
*     THAT IS, IT MAY DIVIDE THE "LARGEST POSSIBLE SAM BLOCK" (THE
*     SIZE OF WHICH RTE DETERMINES AT BOOT-UP) INTO TWO PORTIONS.  IT WILL
*     THEN NOT BE POSSIBLE FOR A PROGRAM TO OBTAIN SUCH A LARGE BLOCK,
*     ALTHOUGH RTE WON'T KNOW THIS, WHICH MAY CAUSE A "DEADLOCK" CONDITION: 
*     THE PROGRAM WILL BE WAITING FOR A BLOCK WHICH CAN NEVER BE GRANTED. 
*     IT WILL BE PLACED INTO UNAVAILABLE MEMORY SUSPENSION DURING THIS
*     TIME, WHICH WILL HAVE THE SIDE EFFECT OF PREVENTING ANY 
*     OTHER PROGRAMS OF LOWER PRIORITY FROM GAINING ANY SAM AT ALL, 
*     EVEN SMALL BLOCKS WHICH COULD BE GRANTED (THIS IS A POLICY ENFORCED 
*     BY RTE WHOSE PURPOSE IS TO ASSURE THAT HIGH-PRIORITY PROGRAMS 
*     ARE NOT LOCKED OUT BECAUSE A SERIES OF SMALL-BLOCK SAM ALLOCATIONS
*     BY LOW-PRIORITY PROGRAMS PREVENTS A LARGE BLOCK FROM EVER BECOMING
*     FREE).  THIS IN TURN MAY FORCE MORE PROGRAMS INTO UNAVAILABLE 
*     MEMORY SUSPENSION THAN ACTUALLY BELONG THERE. 
* 
*     THIS LEADS TO THE CONCLUSION THAT IT MAY BE HAZARDOUS (IN TERMS 
*     OF AVOIDING DEADLOCKS AND MAXIMIZING OVERALL THRUPUT) TO
*     FREQUENTLY RE-INITIALIZE THE DS SYSTEM.  IT ALSO FOLLOWS THAT IT
*     SHOULD BE INITIALIZED ON BOOT-UP.  HOWEVER, THE USER WHO NEEDS TO 
*     SHUT THE SYSTEM DOWN OCCASIONALLY, AND THEN START IT UP AGAIN 
*     AND WHO CANNOT AFFORD TO SHUT THE SYSTEM DOWN TO RE-BOOT, SHOULD
*     TRY TO ARRANGE FOR INITIALIZATION TO OCCUR AT TIMES WHEN THE
*     OTHER DEMANDS UPON SAM ARE VERY SMALL OR NON-EXISTENT.
* 
* 
*     NOTE 1: THE NUMBER OF ACTIVE TCBS AND # OF ACTIVE HP 3000 SESSIONS
*     ARE PRINTED IN ORDER TO GIVE SOME INDICATION OF THE RELATIVE
*     DISTRIBUTED-SYSTEMS REMOTE ACTIVITY.  IF THERE EXIST EITHER ACTIVE
*     TCBS OR ACTIVE HP 3000 SESSIONS, THEN SHUTTING DOWN WILL PROBABLY 
*     INTERFERE WITH SOME USER OF THE SYSTEM (THAT IS, TERMINATE ALL
*     HIS PROCESSES ABNORMALLY, PERHAPS CAUSING OPEN FILES TO BE CORRUPTED
*     OR, IN EXTREME CASES, PERHAPS DESTROYING A REMOTE DATA BASE). 
*     IT IS STRONGLY RECOMMENDED THAT THE USER FIRST BROADCAST HIS
*     INTENTION TO SHUT THE SYSTEM DOWN TO ALL REMOTE USERS, GIVING 
*     THEM TIME TO CLOSE THEIR FILES AND LOG OFF BEFORE DOING SO. 
* 
*     IF THE SECURITY CODE ENTERED IS NON-NUMERIC, OR DOES NOT MATCH
*     THE ORIGINAL SET-UP SECURITY CODE, SHUTDOWN WILL NOT OCCUR. 
*     IF YOU HAVE ASKED FOR SHUTDOWN, BUT DECIDE YOU DON'T WANT TO AFTER
*     SEEING THAT THE SYSTEM IS BEING USED, ENTER A ZERO FOR THE SECURITY 
*     CODE (OR ANY NUMERIC, OR ANY INCORRECT SECURITY CODE).
* 
*     NOTE 2: ONCE SHUTDOWN HAS BEEN COMPLETED, THE NEXT TIME LSTEN 
*     IS SCHEDULED IT WILL ENTER THE INITIALIZATION MODE. 
      SKP 
*            --------------- TO LIST ALL COMMANDS ------------------------
* 
*   /LSTEN: OPERATION?  <?? 
* 
*   ??: LIST COMMANDS 
*   /A: ABORT!
*   /E: TERMINATE 
*   /L: RE-ENABLE LINE
*   /N: DISPLAY NRV 
*   /Q: QUIESCE NODE
*   /S: SCHEDULE MONITOR(S) 
*   /T: ADJUST TIMING 
*   SD: SHUTDOWN NETWORK & RELEASE RESOURCES
* 
*   QUIESCENT SYSTEM ONLY:
* 
*   /R: RE-START NODE 
* 
*      **** ACCEPTABLE RESPONSES--QUIESCENT SYSTEM, ONLY **** 
* 
* 
*   /LSTEN: OPERATION?  </R (RESTART FROM QUIESCENT MODE)>
*   /LSTEN: QUIESCENT RE-START
*   /LSTEN: SECURITY CODE? < AA (MUST MATCH ORIGINAL SECURITY CODE)>
      SKP 
* 
*  ERROR MESSAGES--INTERPRETATION AND APPROPRIATE ACTION: 
*  -----------------------------------------------------
* 
*      [ ALL MESSAGES ARE PRECEDED BY "/LSTEN:", OR, IN RTE-IVA/B 
*      NODES, THE ACTUAL NAME OF THE "CLONED" ID-SEGMENT BEING
*      USED, E.G., "/LST09:"] 
      SPC 1 
*   CLASS I/O ERROR - A REQUIRED CLASS NUMBER CANNOT BE ALLOCATED.
*                     <LSTEN> IS ABORTED. THIS ERROR MAY REQUIRE
*                     RE-GENERATION WITH A LARGER ALLOTMENT OF CLASS NO'S.
* 
*   PROG NAME MUST BE 'LSTEN' - INTERNAL SECURITY CHECKS REQUIRE THAT 
*   THE NAME OF THE PROGRAM BEING RUN TO INITIALIZE THE SYSTEM BE 
*   NAMED 'LSTEN'.  IN RTE-IVA & B SYSTEMS, THE USER'S COPY OF FMGR 
*   WILL GENERALLY "CLONE" AN ID SEGMENT FOR HIM/HER WHEN DIRECTED
*   TO RUN A PROGRAM.  TO AVOID THIS PROBLEM, RUN 'LSTEN' FROM THE
*   SYSTEM CONSOLE WHEN INITIALIZING OR SHUTTING DOWN THE SYSTEM. 
* 
*   END LSTEN - NORMAL COMPLETION MESSAGE. THE TEN CHARACTERS COMPRISING
*               THE MESSAGE ARE ALSO RETURNED IN THE 5-WORD TEMPORARY 
*               STORAGE AREA OF A SCHEDULER'S I.D. SEGMENT. THEY MAY BE 
*               RECOVERED THROUGH THE USE OF <RMPAR>. 
*               IF <LSTEN> HAS BEEN ABORTED, THE FIVE WORDS OF RETURNED-
*               DATA CONSIST OF: 100000B,ER, L,ST,EN
* 
*   ERROR: MON?: AAAAA - THE SPECIFIED MONITOR <AAAAA> IS NOT IN THE SYSTEM.
*                        ABORT <LSTEN>, USING /A COMMAND, AND THEN LOAD 
*                        THE MONITOR INTO THE SYSTEM. RE-START <LSTEN>. 
* 
*   ERROR: STAT: AAAAA - THE MONITOR'S STATUS IS NOT 'DORMANT', AND 
*                        THEREFORE IT CANNOT BE SCHEDULED.
*                        ABORT <LSTEN>, USING /A COMMAND, AND THEN USE
*                        RTE OPERATOR COMMANDS TO CHANGE THE STATUS.
* 
*   FILE ERROR - IMPROPER RESPONSE TO "INPUT # OF FILES". RETRY.
* 
*   INVALID NAME! - MONITOR NAME IS NOT RECOGNIZED BY <LSTEN>. RETRY. 
* 
*   INVALID RESPONSE! - OPERATOR ENTRY ERROR. RETRY.
*                       (NO RETRY ALLOWED FOR QUIESCENT OR RE-START MODE) 
* 
*   LSTEN ABORTED - IF INITIALIZATION WAS IN PROGRESS, THEN ALL ALLOCATED 
*                   RESOURCES HAVE BEEN RETURNED TO RTE.
* 
*   LU ERROR - IMPROPER LU# SPECIFIED, OR LU# NOT LINKED TO DVA65. RETRY. 
* 
*   NODE SPEC. ERROR - IMPROPER NODAL REFERENCE VALUE. <LSTEN> ABORTED! 
*                      CORRECT INITIALIZATION ANSWERS AND RESTART <LSTEN>.
* 
*   NO SYSTEM MEMORY! - INSUFFICIENT SYSTEM AVAILABLE MEMORY FOR USE BY 
*                       THE NETWORK. SYSTEM CANNOT BE INITIALIZED.
*                       <LSTEN> IS ABORTED. RE-GENERATION OF RTE MAY
*                       BE REQUIRED.
* 
*   READ ERROR - END-OF-FILE OR FMGR ERROR HAS BEEN DETECTED ON THE 
*                INPUT DEVICE/FILE. THE QUESTION IS REPEATED ON THE 
*                (ERROR LU) DEVICE. THE USER MAY SUPPLY THE REQUIRED
*                RESPONSE FROM THIS DEVICE. 
* 
*   RN ERROR - A REQUIRED RESOURCE NUMBER CANNOT BE ALLOCATED;
*              <LSTEN> IS ABORTED. RE-GENERATION, WITH A LARGER 
*              ALLOTMENT OF RESOURCE NUMBERS, MAY BE REQUIRED.
* 
*   ID SEGMENT NAME MUST BE 'LSTEN' -- INITIALIZATION AND SHUTDOWN FUNCTIONS
*               CANNOT BE PROCESSED UNLESS THE PROGRAM NAME IS 'LSTEN'. 
*               NOTE THAT SOME RTES WILL CREATE A COPY OF A PROGRAM WHEN
*               RUN FROM A NON-SYSTEM CONSOLE.  ACTION: RUN 'LSTEN' FROM
*               SYSTEM CONSOLE. 
* 
*   TR FILE ERROR - THE FILE MANAGER CANNOT PROCESS THE FILE
*                   WHICH WAS SPECIFIED IN THE SCHEDULING 
*                   PARAMETERS. CORRECT THE FILE PROBLEM, 
*                   AND RE-SCHEDULE <LSTEN>.
* 
*   ** UPLIN NOT SCHEDULED - THE SYSTEM TRANSACTION-MONITOR AND CLEANUP 
*                            PROGRAM <UPLIN> COULD NOT BE SCHEDULED.
*                            <LSTEN> IS ABORTED! DETERMINE NATURE OF
*                            PROBLEM AND CORRECT. RE-SCHEDULE <LSTEN>.
* 
*   ANSWER YES OR NO - THE QUESTION REQUIRES A "YES" OR "NO" ANSWER 
* 
      SKP 
PRAM  NOP           INPUT LU OR FIRST 2 CHARS. OF FILE NAME.
      NOP           ERROR LU OR SECOND 2 CHARS. OF FILE NAME. 
      NOP           THIRD TWO CHARS. OF FILE NAME.
      NOP           FILE SECURITY CODE--OPTIONAL. 
      NOP           FILE CARTRIDGE NUMBER--OPTIONAL.
* 
      SPC 2 
*     DEFINE MASTER TCB FORMAT
* 
NXSTC EQU 0         NEXT TCB ENTRY
TIMOT EQU 1         TIMEOUT COUNTER 
UD    EQU TIMOT     U & D FLAGS IN TIME-OUT WORD
LOCSQ EQU 2         LOCAL SEQUENCE NUMBER 
MSCLS EQU 3         MASTER CLASS NUMBER 
IDSG@ EQU 4         MASTER'S ID SEGMENT NUMBER
      SPC 2 
*     DEFINE NRV FORMAT 
* 
NRVZ@ EQU 2         NUMBER OF WORDS PER ENTRY 
XMTL@ EQU 1         OFFSET TO GET TO TRANSMISSION LU
      SPC 2 
LSTEN EQU * 
      JSB RMPAR     GET THE 
      DEF *+2         PARAMETERS
      DEF PRAM          FOR LOCAL USE.
* 
      LDA XEQT      SAVE MY ID
      STA IDADR        SEGMENT ADDRESS
      ADA D12       COPY ACTUAL NAME IN MY ID SEGMENT TO
      RAL            LOCAL STORAGE FOR ERROR & PROMPT MESSAGES. 
      LDB @MYNM 
      MBT B5
* 
      LDA @ENMG     INITIALIZE ADDRESS OF RETURN PARAMS TO 'FATHER' PRGM
      STA $RTRN 
      LDA $OPSY     GET THE SYSTEM SPECIFICATIONS.
      RAR,RAR       BIT#15: 1=DMS  BIT#0: 1=RTE, 0=RTE-M. 
      STA OPTYP     SAVE THE USEFUL SYSTEM SPECIFICATIONS.
      SSA,RSS 
      JMP NODMS     THIS IS A NON-DMS SYSTEM
* 
      DLD XSBAI     GET THE CROSS-STORE INSTRUCTION,
      DST STLNK      AND CONFIGURE THE TWO NULL-LINK
      DST STERM       INSTRUCTIONS FOR DMS OPERATION. 
      DST LOOP3 
      DLD XCBAI 
      DST NCHEK 
      DLD XSANP 
      DST STNOP 
      DLD XLANP 
      DST DSNR1 
      DST DSNR2 
      DST DSNR3 
      DLD XLABI     PICK UP XLA B,I 
      IFZ 
      DST DSNR4 
      DST DSNR5 
      DST DSNR7 
      DST DSNR8 
      XIF 
      DLD MWII
      DST NRMOV 
* 
*                   PICK UP READ LU 
NODMS LDA PRAM      GET THE INPUT LU--IF ANY. 
      UNL 
*     TO INVOKE DEBUG, ADD FOLLOWING CODE:
*     EXT DBUGR 
*     CPA M1
*     RSS           WE WANT DEBUG 
*     JMP LSTN1     NO DEBUG
*     JSB DBUGR 
*     DEF *+1 
*     CLB,INB       TERMINATE 
*     JMP TERM4      AND SAVE RESOURCES.
      LST 
      LDB #FWAM     GET "ALREADY-INITIALIZED" INDICATOR.
      STB ONTWO     SAVE IN OPTION 1/2 FLAG WORD
      CLB           INITIALIZE EQUIPMENT TYPE CODE
      STB TYPEQ      TO INDICATE AN INTERACTIVE DEVICE. 
      STB CLFLG     CLEAR CLASS I/O FLAG. 
* 
      LDB B1        IF LU NOT SUPPLIED, DEFAULT TO LU 1 
      SZA           SUPPLIED? 
      LDB A         YES 
      AND BT137     LU OR FILE? 
      SZA 
      CLB           FILE...CLEAR FILE FLAG
      STB RLU       SAVE READ LU OR 0 (FILE). 
      SZB,RSS       LU OR FILE? 
      JMP LSTN2     FILE
* 
      JSB TTY?      CHECK 
      DEF RLU        READ LU. 
      SZB,RSS       TTY?
      IOR B400      YES...SET IN ECHO BIT 
      STA RLU       SAVE AS INPUT LU
      STB TYPEQ     SAVE INPUT DEVICE EQUIPMENT CODE. 
* 
*  PICK UP ERROR LU 
      LDA PRAM+1
      SZA           IS ERROR LU SUPPLIED? 
      JMP LSTN2+1   YES...SAVE IT.
      LDA RLU             NO. GET THE INPUT LU. 
      SZB           IS INPUT LU INTERACTIVE?
LSTN2 LDA B1         NO...DEFAULT TO SYSTEM CONSOLE.
      STA ERLU      SAVE ERROR LU 
* 
      JSB TTY?      CHECK 
      DEF ERLU       ERROR LU.
      SZB           TTY?
      LDA B1        NO...SET TO SYSTEM TTY
      IOR B400
      STA ERLU
* 
      JSB CHCKN     SEE IF FILE 
      JMP LSTN3     NOT FILE
* 
      LDA PRAM      WAS 1ST PARAMETER 
      SSA            NEGATIVE?
      JMP CLASS        YES--DO CLASS READ.
* 
      JSB OPENX     OPEN THE FILE 
      JMP *+2       OPEN ERROR! 
      JMP LSTN3     OPEN WAS SUCCESSFUL.
* 
      JSB SYSER     SYSTEM ERROR
      DEF TRFM      "TR FILE ERROR" 
* 
LSTN3 LDB ONTWO     OPTION 1/2 FLAG 
      SZB           OPTION 1? 
      JMP OPTN2     NO...OPTION 2 
* 
      CPA B65       ATTEMPT TO INITIALIZE WITH SDI LU#? 
      JMP LUER1      YES. SKIP TO REPORT THE ERROR. 
      CPA B61       ALSO CHECK HP3000 DRIVERS 
      JMP LUER1 
      CPA B66 
      JMP LUER1 
      CPA B67 
      RSS 
      JMP INITL      NO. GO TO START THE INITIALIZATION.
* 
LUER1 JSB SYSER     INFORM THE USER OF THE
      DEF LUERM     " LU ERROR"--NO RETURN. 
* 
                                                                                                                                                                                                                              