LISTLID 
          IDENT  LISTLID,FWA
          TITLE  LISTLID - LIST LID TABLE.
          ABS 
          SST 
          ENTRY  LISTLID
          ENTRY  RFL= 
          ENTRY  SSJ= 
          SYSCOM B1 
*COMMENT  LISTLID - LIST LID TABLE. 
          COMMENT  COPYRIGHT CONTROL DATA SYSTEMS INC.  1992. 
          SPACE 4,10
***       LISTLID - LIST LID TABLE. 
* 
*         K. A. KRIEG        83/10/04.
          SPACE 4,10
***       *LISTLID* IS A UTILITY TO LIST THE CONFIGURATION OF 
*         THE LID TABLE (LDT).
          SPACE 4,10
***       COMMAND FORMAT. 
* 
*         LISTLID,P1,P2...PN. 
* 
*         PARAMETERS ARE ORDER-INDEPENDENT.  P1 THROUGH PN
*         ARE THE PARAMETERS AS FOLLOWS:  
* 
*         LID=XXX     PRINT OUT THE ATTRIBUTES OF PIDS IN 
*           OR        WHICH LID XXX EXISTS, IS ENABLED AND
*         ST=XXX      LISTABLE.  IF THE LID OR ST KEYWORD IS
*           OR        SPECIFIED, A LID VALUE XXX MUST ALSO BE 
*         OMITTED     SPECIFIED.  IF THE LID OR ST KEYWORD IS 
*                     OMITTED, THE DEFAULT IS TO PRINT OUT ALL
*                     LISTABLE LIDS.  EITHER LID OR ST MAY BE 
*                     SPECIFIED, BUT NOT BOTH.
* 
*         L=LFN       OUTPUT IS TO BE WRITTEN TO FILE LFN.
*           OR        IF OMITTED, THE DEFAULT IS *OUTPUT*.
*         OMITTED 
* 
*         PID=YYY     PRINT OUT THE ATTRIBUTES OF ALL LIDS
*           OR        UNDER THE SPECIFIED PID YYY.  IF LID=XXX
*         PID         IS ALSO SPECIFIED, ONLY LID XXX UNDER YYY 
*           OR        WILL BE PRINTED.  IF YYY IS OMITTED,
*         OMITTED     THE DEFAULT IS TO PRINT ALL PIDS.  IF 
*                     PID IS OMITTED, THE LID KEYWORD VALUE 
*                     DETERMINES WHAT IS PRINTED. 
          SPACE 4,10
***       DAYFILE MESSAGES. 
* 
* 
*         * LID TABLE EMPTY.* 
*                THE LID TABLE READ FROM CMR WAS EMPTY. 
* 
*         * LID - XXX DOES NOT EXIST IN THE LID TABLE.* 
*                THE LID SPECIFIED COULD NOT BE FOUND 
*                IN THE LID TABLE OR THE NLIST BIT
*                IS SET (LISTING OF THE SPECIFIED 
*                LID NOT ALLOWED) OR THE LID WAS A
*                STORE AND FORWARD HOST LID (LISTING
*                OF THIS TYPE OF LID NOT ALLOWED).
* 
*         * LID=XXX OR ST=XXX IS REQUIRED.* 
*                THE LID OR ST PARAMETER WAS SPECIFIED
*                WITH NO VALUE. 
* 
*         * LISTLID COMMAND ERROR.* 
*                AN INCORRECT ARGUMENT WAS DETECTED ON THE
*                COMMAND. 
* 
*         * NO LIDS FOUND.* 
*                EITHER THE LID SPECIFIED WAS NOT LISTABLE OR THERE 
*                WERE NO LISTABLE LIDS FOUND FOR A GIVEN PID. 
* 
*         * PID - YYY DOES NOT EXIST IN THE LID TABLE.* 
*                THE PID SPECIFIED COULD NOT BE FOUND IN
*                THE LID TABLE. 
* 
*         * SPECIFY EXACTLY 3 CHARACTERS ON PID KEYWORD.* 
*                EXACTLY THREE CHARACTERS ARE ALLOWED ON
*                THE PID KEYWORD. 
* 
*         * SPECIFY EXACTLY 3 CHARACTERS ON LID KEYWORD.* 
*                EXACTLY THREE CHARACTERS ARE ALLOWED ON
*                THE LID OR ST KEYWORD. 
          SPACE 4,10
*         COMMON DECKS. 
  
*CALL     COMCCMD 
*CALL     COMCMAC 
*CALL     COMSSFM 
*CALL     COMSSSJ 
          TITLE  DEFINITIONS. 
          SPACE  4,10 
****      ASSEMBLY CONSTANTS. 
  
 HDLN     EQU    2           NUMBER OF PRINTED LINES IN HEADER
 OBUFL    EQU    101B        LENGTH OF OUTPUT BUFFER
 WBUFL    EQU    5           LENGTH OF WORKING BUFFER 
 TRLN     EQU    6           NUMBER OF PRINTED LINES IN TRAILER 
  
****
          SPACE 4,10
          ORG    110B 
 FWA      BSS    0
          SPACE  4,10 
*         SSJ= PARAMETER BLOCK. 
  
 SSJ=     BSS    0
          BSSZ   SSJL 
  
          SPACE  4,10 
*         FET DEFINITIONS.
  
 LIDF     FILEB  LIDTAB,MXLDT,FET=5   LID TABLE 
  
 O        BSS    0
 OUTPUT   FILEB  OBUF,OBUFL,FET=10  OUTPUT FILE 
          SPACE  4,10 
*         HEADERS AND TRAILERS FOR OUTPUT LISTINGS.  IF EITHER THE
*         HEADER OR TRAILER INFORMATION IS CHANGED IN THE FUTURE SO 
*         MORE OR FEWER LINES ARE REQUIRED, ENSURE THAT *HDLN* AND/OR 
*         *TRLN* ARE UPDATED APPROPRIATELY SO THE CORRECT PAGE LENGTH 
*         CAN BE CALCULATED.
  
 HDR1     DATA   8L1
          DATA   8L 
 HDR1L    EQU    *-HDR1 
 HDR2     DATA   47L   LID    MAINFRAME  ATTRIBUTE          NETWORK 
          DATA   8L 
 HDR2L    EQU    *-HDR2 
 HDR3     DATA   50H       PID   LID    MAINFRAME   TYPE    ATTRIBUTE 
          DATA   25L  RHF       NAM       SSF 
          DATA   8L 
 HDR3L    EQU    *-HDR3 
 HDR4     DATA   8L 
          DATA   8L 
          DATA   50H   ATTRIBUTES:  H - HOST,  L - LINKED,  V - VALIDA
          DATA   14LTION REQUIRED,
          DATA   50H                S - STORE FORWARD,      B - LOOPBA
          DATA   8LCK.
          DATA   50H                IN - PATH IN SERVICE,   OUT - PATH
          DATA   16L OUT OF SERVICE,
          DATA   35L                NA - NOT AVAILABLE. 
 HDR4L    EQU    *-HDR4 
          SPACE 4,10
*         CONSTANT DATA.
  
 BLKS     DATA   10H            WORD OF BLANKS
          DATA   8L          WORD OF BLANKS WITH ZERO BYTE
          SPACE 4,10
*         STORAGE LOCATIONS.
  
 CLLC     CON    0           LINES AVAILABLE TO PRINT LIDS
 JPRD     CON    0           JOB PRINT DENSITY
 LFST     CON    0           LIST FILE STATUS OF OUTPUT 
 LIDV     CON    0           LID VALUE
 LLFD     CON    0           INDICATES IF LISTABLE LID FOUND
 NLIP     CON    0           NUMBER OF LID SLOTS IN PID 
 PAGL     CON    0           JOB PAGE LENGTH
 PDFD     CON    0           PID FOUND FLAG 
 PIDA     CON    0           FIRST WORD OF PID DATA 
 PIDB     CON    0           SECOND WORD OF PID DATA
 PIDV     CON    0           PID VALUE
 PDPF     CON    0           PID LINE PRINTED FLAG
 STVL     CON    0           ST VALUE 
 WBUF     BSSZ   8           WORKING BUFFER 
          SPACE 4,10
*         DAYFILE MESSAGES. 
  
 MSG2     DATA   C* LID TABLE EMPTY.* 
 MSG3     DATA   C* NO LIDS FOUND.* 
 MSG4     DATA   C* PID -     DOES NOT EXIST IN THE LID TABLE.* 
 MSG5     DATA   C* LID -     DOES NOT EXIST IN THE LID TABLE.* 
          TITLE  MAIN PROGRAM.
 LISTLID  SPACE  4,10 
**        LISTLID - LIST LID TABLE. 
* 
*         EXIT   LID TABLE LISTED IF SUCCESSFUL.
* 
*         USES   X - 0, 1, 7. 
*                A - 1. 
* 
*         CALLS  PLD, PPD, PRS. 
* 
*         MACROS ENDRUN, GETLIDT, MESSAGE, WRITEC, WRITEW.
  
  
 LISTLID  RJ     PRS         PRESET 
          GETLIDT  LIDF      GET LID TABLE INTO FWA OF PRESET 
          SA1    LIDTAB      GET NUMBER OF PIDS IN TABLE
          MX0    -12
          BX7    -X0*X1 
          NZ     X7,LST1     IF TABLE NOT EMPTY 
          MESSAGE  MSG2      * LID TABLE EMPTY.*
          EQ     LST4        EXIT 
  
 LST1     SA1    LFST 
          ZR     X1,LST2     IF TERMINAL FILE 
          WRITEC O,JPRD      WRITE PRINT DENSITY
          WRITEW O,HDR1,HDR1L  WRITE INITIAL PAGE EJECT 
 LST2     SA1    PIDV 
          ZR     X1,LST3     IF *PID* KEYWORD NOT SPECIFIED 
          RJ     PPD         PRINT LID TABLE (FORMAT 2) 
          EQ     LST4        EXIT 
  
 LST3     RJ     PLD         PRINT LID TABLE (FORMAT 1) 
 LST4     ENDRUN
          TITLE  SUBROUTINES. 
 FPL      SPACE  4,15 
**        FPL - FORMAT AND PRINT LID LINE (FORMAT 2). 
* 
*         ENTRY  (X5) = LID WORD LEFT JUSTIFIED TO NLIST BIT. 
*                (X1) = LID.
* 
*         EXIT   LID LINE WRITTEN TO OUTPUT FILE. 
* 
*         USES   X - 3, 6, 7. 
*                A - 3, 6, 7. 
*                B - 7. 
* 
*         CALLS  PLA, SFN.
* 
*         MACROS WRITEH, WRITEW.
  
  
 FPL      SUBR               ENTRY/EXIT 
          RJ     SFN         SPACE FILL LID 
          LX6    -18
          SA3    BLKS 
          LX5    59-34-59+31 POSITION LID ATTRIBUTES FOR *PLA*
          BX7    X3 
          SA7    WBUF        STORE BLANK WORD 
          SA6    A7+B1       STORE BLANK-FILLED LID 
          SA7    A6+B1       STORE BLANK WORD 
          SA7    A7+B1       STORE BLANK WORD 
          RJ     PLA         PROCESS LID ATTRIBUTES 
          SA3    LFST 
          ZR     X3,FPL1     IF TERMINAL FILE 
          SA3    CLLC 
          SX7    X3-1 
          SB7    X3 
          LE     B7,B0,FPL2  IF NO ROOM TO PRINT LID LINE 
          SA7    A3 
 FPL1     WRITEH O,WBUF,5 
          SX7    B1+         INDICATE AT LEAST ONE LID PROCESSED
          SA7    LLFD 
          EQ     FPLX        RETURN 
  
 FPL2     WRITEW O,HDR4,HDR4L  WRITE PID TRAILER
          WRITEW O,HDR1,HDR1L 
          WRITEW O,HDR3,HDR3L 
          SA3    PAGL        SAVE NUMBER OF LINES LEFT ON PAGE
          SX7    X3-1 
          SA7    CLLC 
          EQ     FPL1        PRINT LID LINE 
 LDP      SPACE  4,15 
**        LDP - PROCESS LID(S) FOR PIDS (FORMAT 2). 
* 
*         ENTRY  (A5) = ADDRESS OF PID CURRENTLY BEING PROCESSED. 
*                (WBUF) = PID LINE TO BE PRINTED WHEN THE FIRST 
*                         LISTABLE LID IS ENCOUNTERED.
* 
*         EXIT   ALL APPROPRIATE LIDS PROCESSED FOR GIVEN PID.
* 
*         USES   X - 0, 1, 2, 5, 6, 7.
*                A - 0, 1, 2, 5, 6, 7.
*                B - 7. 
* 
*         CALLS  FPL. 
* 
*         MACROS WRITEH, WRITEW.
  
  
 LDP      SUBR               ENTRY/EXIT 
          SA2    A5+2        OFFSET TO NUMBER OF LID SLOTS
          MX0    -12
          BX6    -X0*X2 
          SA6    NLIP 
          SA0    A5          SAVE ADDRESS OF CURRENT PID
          SA5    A2          FWA-1 OF LID ENTRIES 
          BX6    X6-X6       CLEAR PID LINE PRINTED FLAG
          SA6    PDPF 
  
*         PROCESS NEXT LID ENTRY. 
  
 LDP1     SA5    A5+B1       READ NEXT LID ENTRY
          MX0    18 
          BX7    X0*X5
          ZR     X7,LDP6     IF EMPTY LID SLOT
          SA2    LIDV 
          ZR     X2,LDP2     IF NO LID SPECIFIED
          BX7    X2-X7
          NZ     X7,LDP6     IF LID DOES NOT MATCH
 LDP2     LX5    59-31
          NG     X5,LDP6     IF LID NOT LISTABLE
  
*         PRINT THE PID LINE WHEN THE FIRST LISTABLE LID IS 
*         ENCOUNTERED.
  
          SA1    PDPF 
          NZ     X1,LDP5     IF PID LINE ALREADY PRINTED
          SX7    B1          INDICATE PID LINE PRINTED
          SA7    A1 
          SA1    LFST 
          ZR     X1,LDP4     IF TERMINAL FILE 
          SA1    CLLC 
          SX7    X1-2 
          NG     X7,LDP3     IF NO ROOM TO PRINT PID AND ONE LID
          SX7    X1-1        DECREMENT NUMBER OF PAGE LINES REMAINING 
          SA7    A1+
          EQ     LDP4        WRITE PID LINE 
  
 LDP3     WRITEW O,HDR4,HDR4L  WRITE ATTRIBUTE TRAILER
          WRITEW O,HDR1,HDR1L 
          WRITEW O,HDR3,HDR3L  WRITE HEADER 
          SA1    PAGL        SAVE LINES REMAINING ON PAGE 
          SX7    X1-1 
          SA7    CLLC 
 LDP4     WRITEH O,WBUF,8    WRITE PID LINE 
  
*         FORMAT AND PRINT THE LID. 
  
 LDP5     SA1    A5          GET LID
          MX0    18 
          BX1    X0*X1
          RJ     FPL         FORMAT AND PRINT LID LINE
          SA1    LIDV 
          NZ     X1,LDP7     IF LID SPECIFIED 
  
*         DECREMENT LID SLOT COUNT AND PROCESS NEXT LID.
  
 LDP6     SA1    NLIP        DECREMENT LID SLOT COUNT 
          SX7    X1-1 
          SB7    X7 
          LE     B7,B0,LDP7  IF ALL LID SLOTS PROCESSED 
          SA7    A1 
          EQ     LDP1        PROCESS NEXT LID ENTRY 
  
 LDP7     SA5    A0+         RESTORE ADDRESS OF PID 
          EQ     LDPX        RETURN 
 PLA      SPACE  4,10 
**        PLA - PROCESS LID ATTRIBUTES (FORMAT 2).
* 
*         ENTRY  (X5) = LID ATTRIBUTES (LEFT JUSTIFIED).
*                (A7) = WORKING BUFFER - 1 FOR LID ATTRIBUTES.
* 
*         EXIT   (A6) = LID ATTRIBUTES STORED IN WORKING BUFFER.
* 
*         USES   X - 0, 3, 6. 
*                A - 3, 6.
*                B - 2, 7.
  
  
 PLA      SUBR               ENTRY/EXIT 
          MX0    3
          BX3    X0*X5       GET LID ATTRIBUTES 
          LX3    3
          SB7    X3 
          SA3    BLKS+1 
          ZR     B7,PLA1     IF NO ATTRIBUTES 
          SA3    PLAA 
          EQ     B7,B1,PLA1  IF LOOPBACK BIT SET
          SB2    4
          SA3    PLAB 
          EQ     B7,B2,PLA1  IF ONLY STORE AND FORWARD BIT SET
          SA3    PLAC 
 PLA1     BX6    X3          STORE LID ATTRIBUTES 
          SA6    A7+B1
          EQ     PLAX        RETURN 
  
  
 PLAA     VFD    60/8L   B
 PLAB     VFD    60/8L   S
 PLAC     VFD    60/8L   SV 
 PLD      SPACE  4,15 
**        PLD - PRINT LID TABLE DESCRIPTION.
* 
*         ENTRY  (LIDTAB) = LID TABLE.
* 
*         EXIT   LID TABLE WRITTEN TO OUTPUT FILE.
* 
*         USES   X - ALL. 
*                A - 1, 2, 3, 5, 6, 7.
*                B - 6. 
* 
*         CALLS  PLL. 
* 
*         MACROS MESSAGE, WRITER, WRITEW. 
  
  
 PLD      SUBR               ENTRY/EXIT 
          WRITEW O,HDR2,HDR2L 
          SA1    LIDTAB+1    READ FIRST PID ENTRY 
  
*         PROCESS NEXT PID. 
  
 PLD1     SA2    LIDV        GET LID TO MATCH 
          BX7    X1          SAVE PID DATA
          SA7    PIDA 
          SA1    A1+B1
          BX7    X1 
          SA7    PIDB 
          SA5    A1+B1       GET NUMBER OF LID SLOTS
          MX4    -12
          BX7    -X4*X5 
          SB6    X7 
  
*         PROCESS NEXT LID. 
  
 PLD2     SA5    A5+B1       GET NEXT LID ENTRY 
          MX4    18 
          BX7    X4*X5
          ZR     X7,PLD5     IF HOLE IN LID TABLE 
          BX7    X7-X2
          ZR     X2,PLD3     IF LISTING ALL LIDS
          NZ     X7,PLD5     IF LID DOES NOT MATCH
  
*         EITHER ALL LIDS ARE TO BE PROCESSED BY DEFAULT OR THE 
*         SPECIFIED LID MATCHED AN LDT ENTRY. 
  
 PLD3     BX3    X5 
          LX3    59-31
          NG     X3,PLD4     IF LID NOT LISTABLE
          LX3    59-34-59+31
          PL     X3,PLD3.1   IF LID IS NOT STORE AND FORWARD
          SA3    PIDA 
          LX3    59-41
          NG     X3,PLD4     IF LID IS HOST AND STORE AND FORWARD 
 PLD3.1   SX7    B6 
          SA7    NLIP 
          RJ     PLL         LIST LID LINE
          SX7    B1+         INDICATE LID FOUND 
          SA7    LLFD 
          SA2    NLIP        RESTORE NUMBER OF LID SLOTS
          SB6    X2 
          SA2    LIDV 
 PLD4     NZ     X2,PLD6     IF NOT PROCESSING ALL LIDS 
 PLD5     SB6    B6-B1
          GT     B6,PLD2     IF MORE LIDS FOR PID 
          SB6    B1          SET INDEX FOR NEXT PID ENTRY 
 PLD6     SA3    PIDB 
          MX4    -12
          BX7    -X4*X3 
          ZR     X7,PLD7     IF LAST PID
          SA1    A5+B6
          EQ     PLD1        PROCESS NEXT PID ENTRY 
  
 PLD7     SA3    LLFD 
          ZR     X3,PLD8     IF NO LISTABLE LIDS FOUND
          WRITER O
          EQ     PLDX        RETURN 
  
 PLD8     ZR     X2,PLD9     IF PROCESSING ALL LIDS 
          SA3    MSG5        ADD NON-MATCHING LID TO MESSAGE
          LX2    18 
          MX0    42 
          BX3    X0*X3
          BX6    X3+X2
          SA6    A3+
          MESSAGE  MSG5      * LID - XXX DOES NOT EXIST IN LID TABLE.*
          EQ     PLDX        RETURN 
  
 PLD9     MESSAGE  MSG3      * NO LIDS FOUND.*
          EQ     PLDX        RETURN 
 PLL      SPACE  4,15 
**        PLL - PROCESS LID LINE (FORMAT 1).
* 
*         ENTRY  (X5) = LID WORD. 
*                (PIDA) = PID FIRST WORD (FROM LDT).
*                (PIDB) = PID SECOND WORD (FROM LDT). 
* 
*         EXIT   LID LINE WRITTEN TO OUTPUT FILE. 
* 
*         USES   X - 0, 1, 3, 4, 6, 7.
*                A - 1, 3, 4, 6, 7. 
* 
*         CALLS  PNS, SFN.
* 
*         MACROS WRITEH, WRITEW.
  
  
 PLL      SUBR               ENTRY/EXIT 
          MX0    18          STORE LID IN WORKING BUFFER
          BX1    X0*X5
          RJ     SFN
          LX6    -18
          SA6    WBUF 
          SA1    PIDB        STORE MAINFRAME DESCRIPTOR 
          MX0    42 
          BX1    X0*X1
          RJ     SFN         SPACE FILL NAME
          LX6    -6 
          SA6    A6+B1
          SA3    PLLB        PRESET DISABLED
          LX5    59-35
          PL     X5,PLL1     IF LID DISABLED
          SA4    PIDA 
          LX4    59-40
          PL     X4,PLL1     IF PID DISABLED
          SA3    PLLD        PRESET STORE AND FORWARD 
          LX5    59-34-59+35
          NG     X5,PLL1     IF STORE AND FORWARD BIT SET 
          SA3    PLLE        PRESET LOOPBACK
          LX5    59-32-59+34
          NG     X5,PLL1     IF LOOPBACK BIT SET
          SA3    PLLA        PRESET HOST
          SA1    PIDA 
          LX1    59-41
          NG     X1,PLL1     IF HOST PID
          SA3    PLLC        SET LINKED 
 PLL1     BX6    X3 
          SA6    A6+B1       STORE FIRST WORD 
          SA4    A3+B1
          BX6    X4 
          SA6    A6+B1       STORE SECOND WORD
          RJ     PNS         PROCESS NETWORK STATUS 
          SX7    WBUFL
          ZR     X4,PLL1.1   IF SECOND NETWORK STATUS WORD IS ZERO
          SX7    WBUFL+1
 PLL1.1   SA7    WBUF+7      SAVE BUFFER LENGTH 
          SA3    LFST 
          ZR     X3,PLL3     IF TERMINAL FILE 
          SA3    CLLC 
          SX7    X3-1 
          NZ     X7,PLL2     IF NO ROOM LEFT ON PAGE
          WRITEW O,HDR1,HDR1L   PRINT OUTPUT FILE HEADERS 
          WRITEW O,HDR2,HDR2L 
          SA3    PAGL        SAVE LINES REMAINING ON PAGE 
          SX7    X3-1 
 PLL2     SA7    CLLC 
 PLL3     SA1    WBUF+7      RESTORE BUFFER LENGTH
          WRITEH O,WBUF,X1   WRITE LID LINE 
          EQ     PLLX        RETURN 
  
  
 PLLA     DATA   20H HOST 
 PLLB     DATA   20H DISABLED 
 PLLC     DATA   20H LINKED 
 PLLD     DATA   20H STORE FORWARD
 PLLE     DATA   20H LOOPBACK 
 PNS      SPACE  4,10 
**        PNS - PROCESS NETWORK STATUS (FORMATS 1 AND 2). 
* 
*         ENTRY  (A6+1) = ADDRESS TO STORE NETWORK STATUS.
*                (PIDA) = PID WORD, IF FORMAT 1.
*                (X5) = PID WORD, IF FORMAT 2.
* 
*         EXIT   (X4) = SECOND NETWORK STATUS WORD, IF FORMAT 1.
* 
*         USES   X - 0, 1, 3, 4, 6, 7.
*                A - 1, 3, 4, 6.
*                B - 2, 3, 5, 6, 7. 
  
  
 PNS      SUBR               ENTRY/EXIT 
          SA1    PIDV 
          MX0    -4 
          NZ     X1,PNS4     IF PROCESSING FORMAT 2 
          SA3    PIDA        GET PID WORD 
  
*         PROCESS NETWORK STATUS FOR FORMAT 1.
  
          SB2    B0 
          BX7    -X0*X3 
          SB3    X7 
          NE     B3,B1,PNS1  IF NAM NOT IN SERVICE
          SB2    B2+1        SET NAM IN SERVICE 
 PNS1     LX3    -4 
          BX7    -X0*X3 
          SB3    X7 
          NE     B3,B1,PNS2  IF RHF NOT IN SERVICE
          SB2    B2+2        SET RHF IN SERVICE 
 PNS2     LX3    -4 
          BX7    -X0*X3 
          SB3    X7 
          NE     B3,B1,PNS3  IF SSF NOT IN SERVICE
          SB2    B2+4        SET SSF IN SERVICE 
 PNS3     SX3    B2 
          LX3    1
          SA3    PNSA+X3     STORE NETWORK STATUS 
          BX6    X3 
          SA6    A6+B1
          SA4    A3+B1
          BX6    X4 
          SA6    A6+B1
          EQ     PNSX        RETURN 
  
*         PROCESS NETWORK STATUS FOR FORMAT 2.
  
 PNS4     BX2    X5 
          LX2    59-40
          PL     X2,PNS8     IF PID DISABLED
  
*         PROCESS *NAM* STATUS. 
  
          BX2    -X0*X5      NAM STATUS 
          SB6    X2+
          LX2    59-3 
          LE     B6,B1,PNS5  IF NOT AVAILABLE OR IN SERVICE 
          ERRNZ  /NTS/NAV    ADJUST CODE IF VALUE CHANGES 
          ERRNZ  /NTS/ISV-1  ADJUST CODE IF VALUE CHANGES 
          SB6    3
          NG     X2,PNS5     IF DISABLED
          ERRNZ  /NTS/DAB-10B  ADJUST CODE IF VALUE CHANGES 
          SB6    2           SET OUT
  
*         PROCESS *RHF* STATUS. 
  
 PNS5     LX5    -4 
          BX2    -X0*X5      RHF STATUS 
          SB5    X2 
          LX2    59-3 
          LE     B5,B1,PNS6  IF NOT AVAILABLE OR IN SERVICE 
          SB5    3
          NG     X2,PNS6     IF DISABLED
          SB5    2           SET OUT
  
*         PROCESS *SSF* STATUS. 
  
 PNS6     LX5    -4 
          BX2    -X0*X5      SSF STATUS 
          SB7    X2 
          LX2    59-3 
          LE     B7,B1,PNS7  IF NOT AVAILABLE OR IN SERVICE 
          SB7    3
          NG     X2,PNS7     IF DISABLED
          SB7    2           SET OUT
  
*         WRITE STATUS OF NETWORKS TO WORKING BUFFER. 
  
 PNS7     SA1    PNSB+B5     SET RHF STATUS 
          BX6    X1 
          SA6    A6+B1
          SA1    PNSB+B6     SET NAM STATUS 
          BX6    X1 
          SA6    A6+B1
          SA1    PNSB+B7     SET SSF STATUS 
          BX6    X1 
          SA6    A6+B1
          EQ     PNS9        SET END OF LINE
  
 PNS8     SA1    PNSC        SET --- FOR NETWORK STATUS 
          BX6    X1 
          SA6    A6+B1
          SA6    A6+B1
          SA6    A6+B1
 PNS9     MX0    48 
          BX6    X0*X1
          SA6    A6          INSURE END OF LINE 
          EQ     PNSX        RETURN 
  
*         THIS TABLE MUST REMAIN IN THIS ORDER. 
*         NETWORK STATUS FOR FORMAT 1.
  
 PNSA     BSS    0
          DATA   14LNONE AVAILABLE
          DATA   3LNAM
          DATA   0
          DATA   3LRHF
          DATA   0
          DATA   8LNAM, RHF 
          DATA   0
          DATA   3LSSF
          DATA   0
          DATA   8LNAM, SSF 
          DATA   0
          DATA   8LRHF, SSF 
          DATA   0
          DATA   13LNAM, RHF, SSF 
  
*         NETWORK STATUS FOR FORMAT 2.
  
 PNSB     BSS    0
          DATA   10H  NA
          DATA   10H  IN
          DATA   10H  OUT 
          DATA   10HDISABLED
 PNSC     DATA   10H  --- 
 PPD      SPACE  4,15 
**        PPD - PRINT PID TABLE DESCRIPTION.
* 
*         ENTRY  (LIDTAB) = LID TABLE.
*                PID SPECIFIED ON COMMAND.
* 
*         EXIT   LID TABLE WRITTEN TO OUTPUT FILE.
* 
*         USES   X - 0, 1, 2, 3, 5, 6, 7. 
*                A - 1, 2, 3, 5, 6, 7.
*                B - 2. 
* 
*         CALLS  LDP, PPL.
* 
*         MACROS MESSAGE, WRITER, WRITEW. 
  
  
 PPD      SUBR               ENTRY/EXIT 
          WRITEW O,HDR3,HDR3L 
          SA5    LIDTAB+1 
  
*         PROCESS NEXT PID. 
  
 PPD1     SA2    PIDV        USER-SPECIFIED PID VALUE 
          MX0    18 
          BX2    X0*X2
          ZR     X2,PPD2     IF ALL PIDS TO BE PROCESSED
          BX1    X0*X5
          BX7    X1-X2
          SA7    PDFD        SAVE PID FOUND FLAG
          NZ     X7,PPD3     IF PID DOES NOT MATCH
  
*         EITHER ALL PIDS ARE TO BE PROCESSED BY DEFAULT OR 
*         THE SPECIFIED PID MATCHED AN LDT ENTRY. 
  
 PPD2     RJ     PPL         PROCESS PID LINE 
          RJ     LDP         PROCESS LID(S) FOR PID 
          SA1    PIDV 
          MX0    18 
          BX1    X0*X1
          NZ     X1,PPD5     IF PID WAS SPECIFIED 
  
*         DETERMINE IF THERE ARE MORE PIDS TO PROCESS.
  
 PPD3     SA2    A5+B1       GET OFFSET TO NEXT PID 
          MX0    -12
          BX2    -X0*X2 
          ZR     X2,PPD4     IF NO MORE PIDS
          SB2    X2 
          SA5    A5+B2       NEXT PID ADDRESS 
          EQ     PPD1        PROCESS NEXT PID ENTRY 
  
*         ALL APPROPRIATE PID PROCESSING COMPLETE.
  
 PPD4     SA1    PIDV 
          MX0    18 
          BX1    X0*X1
          ZR     X1,PPD5     IF PID WAS NOT SPECIFIED 
          SA2    PDFD 
          ZR     X2,PPD5     IF SPECIFIED PID FOUND IN LDT
          SA3    MSG4 
          LX1    18          POSITION PID 
          MX0    42 
          BX3    X0*X3
          BX6    X1+X3       MERGE PID IN MESSAGE 
          SA6    A3+
          MESSAGE  MSG4      * PID - XXX DOES NOT EXIST IN LDT.*
          EQ     PPDX        RETURN 
  
 PPD5     SA1    LLFD 
          NZ     X1,PPD6     IF LISTABLE LID WAS FOUND
          MESSAGE  MSG3      * NO LIDS FOUND.*
          EQ     PPDX        RETURN 
  
 PPD6     WRITEW O,HDR4,HDR4L  WRITE PID TRAILER INFORMATION
          WRITER O
          EQ     PPDX        RETURN 
 PPL      SPACE  4,15 
**        PPL - PROCESS PID LINE (FORMAT 2).
* 
*         ENTRY  (A5) = ADDRESS OF PID WORD.
*                (X5) = PID WORD. 
* 
*         EXIT   PID LINE WRITTEN TO *WBUF*.
* 
*         USES   X - 0, 1, 2, 3, 5, 6.
*                A - 1, 2, 3, 5, 6. 
* 
*         CALLS  PNS, SFN.
  
  
 PPL      SUBR               ENTRY/EXIT 
  
*         PROCESS PID NAME AND MAINFRAME DESCRIPTOR.
  
          MX0    18 
          BX1    X0*X5       PID NAME 
          RJ     SFN         SPACE FILL NAME
          LX6    18 
          LX5    59-38
          PL     X5,PPL1     IF LISTABLE
          SA1    PPLH 
          BX6    X1 
 PPL1     SA6    WBUF        STORE PID IN WORKING BUFFER
          SA3    BLKS        STORE BLANK WORD 
          BX6    X3 
          SA6    A6+B1
          SA2    A5+B1       GET MAINFRAME DESCRIPTOR 
          MX0    42 
          BX1    X0*X2
          RJ     SFN         SPACE FILL NAME
          LX6    -6 
          SA6    A6+B1       STORE MAINFRAME DESCRIPTOR 
  
*         PROCESS MAINFRAME TYPE AND PID ATTRIBUTES.
  
          LX5    59-41-59+38
          PL     X5,PPL2     IF LINKED PID
          SA3    PPLB 
          BX6    X3 
          SA6    A6+B1       STORE *HOST* MAINFRAME TYPE
          SA3    A3+B1
          ERRNZ  PPLC-PPLB-1 ADJUST IF WORDS NOT CONTIGUOUS 
          LX5    59-39-59+41
          NG     X5,PPL3     IF PRE-VALIDATION REQUIRED 
          SA3    PPLD        ATTRIBUTE IS *H* 
          EQ     PPL3        STORE PID ATTRIBUTES 
  
 PPL2     SA3    PPLE 
          BX6    X3 
          SA6    A6+B1       STORE *LINK* MAINFRAME TYPE
          SA3    PPLF 
          LX5    59-39-59+41
          NG     X5,PPL3     IF PRE-VALIDATION REQUIRED 
          SA3    PPLG        ATTRIBUTE IS *L* 
 PPL3     BX6    X3 
          SA6    A6+B1       STORE PID ATTRIBUTE
          SA5    A5+         RESTORE PID WORD 
          RJ     PNS         PROCESS NETWORK STATUS 
          EQ     PPLX        RETURN 
  
 PPLB     VFD    60/10L  HOST 
 PPLC     VFD    60/10L  HV 
 PPLD     VFD    60/10L  H
 PPLE     VFD    60/10L  LINKED 
 PPLF     VFD    60/10L  LV 
 PPLG     VFD    60/10L  L
 PPLH     VFD    60/10L       --- 
          SPACE  4,10 
*         COMMON DECKS. 
  
*CALL     COMCARG 
*CALL     COMCCIO 
*CALL     COMCCPM 
*CALL     COMCLFM 
*CALL     COMCSFM 
*CALL     COMCSFN 
*CALL     COMCSTF 
*CALL     COMCSYS 
*CALL     COMCWTC 
*CALL     COMCWTH 
*CALL     COMCWTW 
*CALL     COMCZTB 
          TITLE  BUFFERS. 
          SPACE  4,10 
*         BUFFERS.
  
 OBUF     BSS    OBUFL       OUTPUT BUFFER
 LIDTAB   EQU    *           LID TABLE
          TITLE  PRESET.
 PRS      SPACE  4,15 
**        PRS - PRESET. 
* 
*         EXIT   ABORT IF ERROR ON COMMAND. 
*                (LFST) = 0, IF OUTPUT BEING SENT TO TERMINAL.
*                       .NE. 0, OTHERWISE.
*                (PAGL) = (CLLC) = NUMBER OF LINES TO BE PRINTED
*                       ON EACH PAGE (EXCLUDING TRAILER FOR FORMAT 2).
* 
*         USES   X - 0, 1, 2, 4, 5, 6, 7. 
*                A - 1, 2, 4, 5, 6, 7.
*                B - 1, 4, 5. 
* 
*         CALLS  ARG, STF.
* 
*         MACROS ABORT, GETPP, MESSAGE, SETFS.
* 
*         NOTE   PRESET WILL BE OVERLAYED BY THE LID TABLE. 
  
  
 PRS      SUBR               ENTRY/EXIT 
          SB1    1
          SA1    ACTR        GET NUMBER OF ARGUMENTS IN COMMAND 
          MX0    -18
          BX1    -X0*X1 
          ZR     X1,PRS3     IF NO ARGUMENTS
          SB4    X1 
          SA4    ARGR        GET FIRST ARGUMENT 
          SB5    TARG        SET ARGUMENT TABLE ADDRESS 
          RJ     ARG         PROCESS ARGUMENTS
          NZ     X1,PRS5     IF ARGUMENT ERROR
          SA1    LIDV 
          SA2    STVL 
          NZ     X1,PRS1     IF LID SPECIFIED 
          ZR     X2,PRS2     IF NEITHER LID NOT ST SPECIFIED
          BX1    X2 
          BX2    X2-X2
 PRS1     NZ     X2,PRS5     IF BOTH LID AND ST SPECIFIED 
          MX0    42 
          BX6    X0*X1
          ZR     X6,PRS8     IF KEYWORD SPECIFIED BUT NOT EQUIVALENCED
          SA6    A1 
          LX6    18 
          BX7    X0*X6
          NZ     X7,PRS7     IF MORE THAN 3 CHARACTERS
          LX6    -6 
          BX7    X0*X6
          ZR     X7,PRS7     IF LESS THAN 3 CHARACTERS
 PRS2     SA1    PIDV 
          ZR     X1,PRS3     IF PID NOT SPECIFIED 
          BX6    X0*X1
          ZR     X6,PRS3     IF PID SPECIFIED, BUT NOT EQUIVALENCED 
          LX6    18 
          BX7    X0*X6
          NZ     X7,PRS6     IF MORE THAN 3 CHARACTERS
          LX6    -6 
          BX7    X0*X6
          ZR     X7,PRS6     IF LESS THAN 3 CHARACTERS
 PRS3     SX2    O           DETERMINE OUTPUT FILE STATUS 
          RJ     STF
          SA6    LFST 
          ZR     X6,PRSX     IF OUTPUT ASSIGNED TO TERMINAL 
          GETPP  PAGC,PAGL,JPRD  GET LINE COUNT 
          SA5    PAGL 
          SX7    X5-HDLN     ENSURE SPACE FOR HEADERS 
          SA1    PIDV 
          ZR     X1,PRS4     IF PID NOT SPECIFIED 
          SX7    X7-TRLN     ENSURE SPACE FOR TRAILERS
 PRS4     SA7    PAGL 
          SA7    CLLC 
          SETFS  O,0         PRESERVE OUTPUT FILE 
          EQ     PRSX        RETURN 
  
 PRS5     MESSAGE  PRSA      * LISTLID COMMAND ERROR.*
          ABORT 
  
 PRS6     MESSAGE  PRSD      * SPECIFY EXACTLY 3 CHARACTERS ON PID.*
          EQ     PRS9        ABORT
  
 PRS7     MESSAGE  PRSE      * SPECIFY EXACTLY 3 CHARACTERS ON LID.*
          EQ     PRS9        ABORT
  
 PRS8     MESSAGE  PRSF      * LID=XXX OR ST=XXX IS REQUIRED.*
 PRS9     ABORT 
  
*         PRESET ERROR MESSAGES.
  
 PRSA     DATA   C* LISTLID COMMAND ERROR.* 
 PRSD     DATA   C* SPECIFY EXACTLY 3 CHARACTERS ON PID KEYWORD.* 
 PRSE     DATA   C* SPECIFY EXACTLY 3 CHARACTERS ON LID KEYWORD.* 
 PRSF     DATA   C* LID=XXX OR ST=XXX IS REQUIRED.* 
          SPACE  4,10 
*         PRESET STORAGE LOCATIONS. 
  
 LID1     CON    1           ASSUMED LID, ST, OR PID VALUE
 PAGC     BSS    2           PARAMETER BLOCK FOR *GETPAGE*
          SPACE  4,10 
*         ARGUMENT TABLE. 
  
 TARG     BSS    0
 LID      ARG    LID1,LIDV,400B 
 ST       ARG    LID1,STVL,400B 
 L        ARG    O,O
 PID      ARG    LID1,PIDV,400B 
          ARG 
          SPACE  4,10 
*         RESERVE SUFFICIENT SPACE TO HOLD THE MAXIMUM SIZE OF THE LDT. 
  
 LENGTH   EQU    *-PRS       PRESET LENGTH
 MAXLTH   EQU    MXLDT-LENGTH  MAX LDT SIZE - PRESET LENGTH 
          BSSZ   MAXLTH      ADDITIONAL CM WORDS REQUIRED TO HOLD LDT 
 RFL=     EQU    *
          SPACE  4,10 
          END 
