IDENT LIDOU,FWA,LIDOU TITLE LIDOU - LOGICAL IDENTIFIER OPERATOR UTILITY. ABS SST ENTRY LIDOU ENTRY RFL= ENTRY SSJ= SYSCOM B1 *COMMENT LIDOU - LOGICAL ID OPERATOR UTILITY. COMMENT COPYRIGHT CONTROL DATA SYSTEMS INC. 1992. SPACE 4,10 ***** LIDOU - LOGICAL IDENTIFIER OPERATOR UTILITY. * * S. D. PAINTER 83/11/01. SPACE 4,15 * *LIDOU* IS AN *L* DISPLAY OPERATOR UTILITY THAT DISPLAYS THE * *LID* TABLE AND ALLOWS ADDITION, DELETION, OR ALTERATION OF * ATTRIBUTES FOR SPECIFIED LIDS AND THE CAPABILITY TO ENABLE * OR DISABLE PIDS IN RELATION TO *NAM*, *RHF*, OR *SSF*. THE * CAPABILITY ALSO EXISTS TO FORMAT A LISTING TO THE PRINTER. * IF LIDOU IS EXECUTED FROM *DSD* ALL INPUT AND OUTPUT WILL * BE PROCESSED VIA THE CONSOLE *L* DISPLAY. IF LIDOU IS IN- * ITIATED FROM *DIS* OR A BATCH JOB BOTH AN INPUT AND AN OUT- * PUT FILE MUST BE SPECIFIED ON THE CONTROL STATEMENT. SPACE 4,10 *** CONTROL STATEMENT CALL. * * LIDOU. (FROM CONSOLE ONLY) * LIDOU(I=LFN1,L=LFN2). (FROM *DIS* OR A BATCH JOB) SPACE 4,10 *** DAYFILE MESSAGES. * * THESE MESSAGES ARE ISSUED TO THE JOB AND SYSTEM DAYFILE. * * * LIDOU UTILITY COMPLETE.* * INDICATES NORMAL TERMINATION. * * * INCORRECT USER ACCESS.* * CALLING JOB WAS NOT SYSTEM ORIGIN (FATAL ERROR). * * * NO INPUT/OUTPUT FILE SPECIFIED.* * THE CALLING JOB CANNOT ACCESS THE *L* DISPLAY * AND MUST THEREFORE SPECIFY BOTH AN INPUT AND * AN OUTPUT FILE (FATAL ERROR). * * * FILE NAME CONFLICT.* * THE INPUT FILE AND OUTPUT FILE SPECIFIED WERE * THE SAME (FATAL ERROR). * * * INPUT FILE NOT FOUND.* * THE INPUT FILE SPECIFIED DOES NOT EXIST (FATAL * ERROR). SPACE 4,10 *** *L* DISPLAY MESSAGES. * * NOTE THE FOLLOWING MESSAGES ARE DISPLAYED ON THE SECOND * TO LAST LINE ON THE *L* DISPLAY WITH THE ECHOED * COMMAND ON THE LAST LINE. * * * COMMAND PROCESSED.* * THE COMMAND ENTERED WAS PROCESSED SUCCESSFULLY. * * * ERROR IN ATTRIBUTE.* * AN ATTRIBUTE WAS SPECIFIED TWICE OR *S* AND *B* OR * *E* AND *D* WERE SPECIFIED TOGETHER OR *V* WAS NOT * SPECIFIED FOR A HOST PID. * * * LID TABLE EMPTY.* * THE LID TABLE READ FROM CENTRAL MEMORY WAS EMPTY * (PROGRAM TERMINATED). * * * INCORRECT ATTRIBUTE.* * THE ATTRIBUTE SPECIFIED WAS NOT ONE OF THE * ALLOWABLE ATTRIBUTES FOR THE COMMAND SPECIFIED. * * * INCORRECT COMMAND.* * THE COMMAND SPECIFIED WAS NOT RECOGNIZED AS ONE OF * THE ALLOWABLE COMMANDS. SEE AVAILABLE COMMANDS. * * * INCORRECT LID.* * THE LID SPECIFIED WAS NOT A CORRECT THREE CHARACTER * (ALPHANUMERIC) LID. * * * INCORRECT MAINFRAME.* * A MAINFRAME DESCRIPTOR OF LENGTH ZERO OR GREATER * THAN SEVEN CHARACTERS WAS SPECIFIED. * * * INCORRECT NETWORK.* * THE NETWORK SPECIFIED WAS NOT *RHF*, *NAM*, *SSF*, * OR *ALL*. * * * INCORRECT SEPARATOR.* * THE SEPARATOR USED WAS NOT A COMMA OR AN EQUAL SIGN * AS REQUIRED BY THE COMMAND SYNTAX. * * * INCORRECT STATUS.* * THE STATUS SPECIFIED WAS NOT *E*, (ENABLE), OR *D* * (DISABLE). * * * UTILITY COMPLETE.* * INDICATES NORMAL TERMINATION. * * * LID NOT ALTERED.* * AN ATTEMPT TO ALTER A LID WAS REJECTED BY *SFM*. * * * PID NOT ALTERED.* * AN ATTEMPT TO ALTER A PID WAS REJECTED BY *SFM*. * * * MAINFRAME NOT SET.* * AN ATTEMPT TO ALTER A MAINFRAME DESCRIPTOR WAS * REJECTED BY *SFM*. * * * LID NOT DELETED.* * AN ATTEMPT TO DELETE A LID WAS REJECTED BY *SFM*. * * * LID NOT FOUND.* * THE LID SPECIFIED COULD NOT BE FOUND IN THE LID * TABLE FOR THE SPECIFIED PID. * * * NO SPACE AVAILABLE.* * NO ROOM EXISTS IN THE LID TABLE TO ADD A LID FOR * THE SPECIFIED PID. * * * PID NOT FOUND.* * THE PID SPECIFIED COULD NOT BE FOUND IN THE LID * TABLE. * * * EXCESS PARAMETERS.* * TOO MANY PARAMETERS WERE SPECIFIED ON THE COMMAND. * SEE LIST OF AVAILABLE COMMANDS. SPACE 4,10 *** AVAILABLE *L* DISPLAY COMMANDS. * * L.END TERMINATE LIDOU * L.BACK FORMAT LID DISPLAY * L.HELP FORMAT HELP DISPLAY * L.+ PAGES THE L DISPLAY FORWARD * L.- PAGES THE L DISPLAY BACKWARD * L.OUT ROUTES A LISTING OF THE LID TABLE * L.PID,PA=XXZ SET ALL APPLICABLE PID ATTRIBUTES * L.PID,NT=NNN,NA=Z ENABLE/DISABLE NETWORK STATUS * L.PID,LD=LID, ADD OR SET ATTRIBUTES FOR LID * LA=YYYZ * L.PID,LD=LID, DELETE LID FROM LID TABLE * DELETE * L.PID,MF=MAINFRM SET MAINFRAME DESCRIPTION * * PARAMETER DESCRIPTIONS * * PID IS THE THREE CHARACTER PHYSICAL IDENTIFIER * LID IS AN ASSOCIATED THREE CHARACTER LOGICAL * IDENTIFIER * MAINFRM IS A (ONE TO SEVEN CHARACTER) MAINFRAME * DESCRIPTOR * NNN IS THE NETWORK (*RHF*, *SSF*, *NAM*, OR *ALL*) * X CAN BE V OR N. Y CAN BE S, B, V OR N. * Z CAN BE E OR D. * * ATTRIBUTE DESCRIPTIONS * * S - STORE AND LIDS FOR LINKED PIDS ONLY * FORWARD * B - LOOPBACK LIDS FOR HOST PIDS ONLY * V - VALIDATE NOTE THAT S AND B CAN NOT * D - DISABLE BE SPECIFIED TOGETHER AND * E - ENABLE ALSO THAT E AND D CAN NOT * N - NOLIST BE SPECIFIED TOGETHER * * THE LIST OF LEGAL ATTRIBUTE COMBINATIONS FOR * LOGICAL IDENTIFIERS (LIDS) IS IN TABLE *TLAT*. * THE LIST OF LEGAL ATTRIBUTE COMBINATIONS FOR * PHYSICAL IDENTIFIERS (PIDS) IS IN TABLE *TPAT*. SPACE 4,10 ** COMMON DECKS. * *CALL COMCMAC *CALL COMCCMD *CALL COMCDCM *CALL COMSEVT *CALL COMSSFM *CALL COMSSSJ TITLE DEFINITIONS. SPACE 4,10 **** ASSEMBLY CONSTANTS. INPC EQU 4 *L* DISPLAY INPUT COMPLETE STATUS LBOL EQU LDSY *L* DISPLAY OUTPUT BUFFER LENGTH LBIL EQU LCOM *L* DISPLAY INPUT BUFFER LENGTH LIIL EQU MXLDT+1 LID TABLE BUFFER LENGTH INPL EQU 101B LENGTH OF INPUT BUFFER MFTL EQU MXPID+1 LENGTH OF MAINFRAME DESCRIPTOR BUFFER NMLL EQU 20B NUMBER OF LINES TO FORMAT OUTL EQU 101B LENGTH OF OUTPUT BUFFER OUTL EQU 101B LENGTH OF OUTPUT BUFFER XCDT EQU 1 *L* DISPLAY FIRST CHARACTER POSITION YCDT EQU 2 *L* DISPLAY FIRST LINE NUMBER **** SPACE 4,10 ORG 120B FWA BSS 0 SPACE 4,10 ** DAYFILE MESSAGES. DAFC DATA C* LIDOU UTILITY COMPLETE.* SPACE 4,10 ** *L* DISPLAY MESSAGES. MSCP DATA 20HCOMMAND PROCESSED. MSEA DATA 20HERROR IN ATTRIBUTE. MSET DATA 20HLID TABLE EMPTY. MSIA DATA 20HINCORRECT ATTRIBUTE. MSIC DATA 20HINCORRECT COMMAND. MSIL DATA 20HINCORRECT LID. MSIM DATA 20HINCORRECT MAINFRAME. MSIN DATA 20HINCORRECT NETWORK. MSIP DATA 20HINCORRECT SEPARATOR. MSIS DATA 20HINCORRECT STATUS. MSLC DATA 20HUTILITY COMPLETE. MSNA DATA 20HLID NOT ALTERED. MSNC DATA 20HPID NOT ALTERED. MSMF DATA 20HMAINFRAME NOT SET. MSND DATA 20HLID NOT DELETED. MSNF DATA 20HLID NOT FOUND. MSNS DATA 20HNO SPACE AVAILABLE. MSPN DATA 20HPID NOT FOUND. MSTP DATA 20HEXCESS PARAMETERS. SPACE 4,10 ** ROLLOUT PARAMETER BLOCK. ROLL VFD 30/0,18/LINE,12/10 SPACE 4,10 ** ROUTE PARAMETER BLOCK. ROTB DATA 6LOUTPUT BSSZ 6 SPACE 4,10 ** SSJ= PARAMETER BLOCK. SSJ= BSS 0 SSJ= ENTRY POINT BSSZ SSJL SSJ= PARAMETER BLOCK SPACE 4,10 ** FET DEFINITIONS. LIDF FILEB LIDI,LIIL,FET=5 LID TABLE FET IF BSS 0 INPUT FILEB INPU,INPL,FET=5 INPUT FET LF BSS 0 OUTPUT FILEB OUTP,OUTL,FET=5 OUTPUT FET SPACE 4,10 ** TLAT - TABLE OF LOGICAL IDENTIFIER ATTRIBUTES. * *T 42/ LA, 14/ 0, 4/ AM. * * LA - LID ATTRIBUTES (ALPHABETIC REPRESENTATION). * AM - ATTRIBUTE MASK (OCTAL REPRESENTATION). * * NOTES THE FORMAT OF THE ATTRIBUTE MASK IS - * * 1/ S 1 = STORE AND FORWARD * 1/ B 1 = LOOPBACK * 1/ V 1 = VALIDATE * 1/ N 1 = NOLIST * * THE ALPHABETIC REPRESENTATION EXCLUDES THE *E* * BIT SINCE THE LID DISPLAY HAS A SEPARATE WORD * TO SHOW THE ENABLED/DISABLED STATUS. TLAT VFD 42/7L ---- ,14/0,4/00B VFD 42/7L ---N ,14/0,4/01B VFD 42/7L -B-- ,14/0,4/02B VFD 42/7L -B-N ,14/0,4/03B VFD 42/7L --V- ,14/0,4/04B VFD 42/7L --VN ,14/0,4/05B VFD 42/7L -BV- ,14/0,4/06B VFD 42/7L -BVN ,14/0,4/07B VFD 42/7L S--- ,14/0,4/10B VFD 42/7L S--N ,14/0,4/11B VFD 42/7L S-V- ,14/0,4/14B VFD 42/7L S-VN ,14/0,4/15B VFD 60/0 END OF TABLE SPACE 4 ** TPAT - TABLE OF PHYSICAL IDENTIFIER ATTRIBUTES. * *T 42/ PA, 14/ 0, 4/ AM. * * PA - PID ATTRIBUTES (ALPHABETIC REPRESENTATION). * AM - ATTRIBUTE MASK (OCTAL REPRESENTATION). * * NOTES THE FORMAT OF THE ATTRIBUTE MASK IS - * * 1/ H/L 1 = HOST, 0 = LINK * 1/ E 1 = ENABLE, 0 =DISABLED * 1/ V 1 = VALIDATE * 1/ N 1 = NOLIST * * THE ALPHABETIC REPRESENTATION EXPANDS THE *H* * BIT TO *H* AND *L* AND EXCLUDES THE *E* BIT * SINCE THE LID DISPLAY HAS A SEPARATE WORD TO * SHOW THE ENABLED/DISABLED STATUS. TPAT VFD 42/7L -L-- ,14/0,4/00B VFD 42/7L -L-N ,14/0,4/01B VFD 42/7L -LV- ,14/0,4/02B VFD 42/7L -LVN ,14/0,4/03B VFD 42/7L -L-- ,14/0,4/04B VFD 42/7L -L-N ,14/0,4/05B VFD 42/7L -LV- ,14/0,4/06B VFD 42/7L -LVN ,14/0,4/07B VFD 42/7L H--- ,14/0,4/10B VFD 42/7L H--N ,14/0,4/11B VFD 42/7L H-V- ,14/0,4/12B VFD 42/7L H-VN ,14/0,4/13B VFD 42/7L H--- ,14/0,4/14B VFD 42/7L H--N ,14/0,4/15B VFD 42/7L H-V- ,14/0,4/16B VFD 42/7L H-VN ,14/0,4/17B VFD 60/0 END OF TABLE TITLE WORKING STORAGE. SPACE 4 ** *L* DISPLAY BUFFER FOR LID TABLE DISPLAY. LIDA DATA 8L1 HEADER FOR LISTINGS DATA 8L DATA 10H LIDB DATA 50HPID LID ENABLED ATTR MFTYPE NETWORK ST DATA 8LATUS DATA 50H DATA 8L LIDD DATA 50H DATA 8L DATA 50H DATA 8L DATA 50H DATA 8L DATA 50H DATA 8L DATA 50H DATA 8L DATA 50H DATA 8L DATA 50H DATA 8L DATA 50H DATA 8L DATA 50H DATA 8L DATA 50H DATA 8L DATA 50H DATA 8L DATA 50H DATA 8L DATA 50H DATA 8L DATA 50H DATA 8L DATA 50H DATA 8L DATA 50H DATA 8L DATA 50H DATA 8L DATA 10H LIDE DATA 40H DATA 8L LIDO EQU *-LIDB COMMAND RESPONSE OFFSET DATA 50H DATA 8L DATA 50H DATA 8L CON 0 END OF BUFFER CON 0 SPACE 4 HLPA DATA 8L1 HEADER FOR LISTINGS DATA 8L DATA 10H DATA 50H LID OPERATOR UTILITY OUTPUT LISTING DATA 8L DATA 50H DATA 8L ** *L* DISPLAY BUFFER FOR PAGE ONE OF HELP DISPLAY. HLPB DATA 50HLID OPERATOR UTILITY HELP DISPLAY PAG DATA 8LE 1 OF 2 DATA 50H DATA 8L DATA 50HCOMMAND DESCRIPTION DATA 8L DATA 50H DATA 8L DATA 50HL.END TERMINATE LIDOU DATA 8L DATA 50HL.BACK FORMAT LID DISPLAY DATA 8L DATA 50HL.HELP FORMAT HELP DISPLAY DATA 8L DATA 50HL.+ PAGES THE L DISPLAY FORWA DATA 8LRD DATA 50HL.- PAGES THE L DISPLAY BACKW DATA 8LARD DATA 50HL.OUT ROUTES A LISTING OF THE L DATA 8LID TABLE DATA 50HL.PID,PA=XXZ SET ALL APPLICABLE PID AT DATA 8LTIBUTES DATA 50HL.PID,NT=NNN,NA=Z ENABLE/DISABLE NETWORK ST DATA 8LATUS DATA 50HL.PID,LD=LID,LA=YYYZ ADD OR SET ATTRIBUTES FOR DATA 8L LID DATA 50HL.PID,LD=LID,DELETE DELETE LID FROM LID TABLE DATA 8L DATA 50HL.PID,MF=MAINFRM SET MAINFRAME DESCRIPTION DATA 8L DATA 50H DATA 8L DATA 50HX CAN BE V OR N. Y CAN BE S, B, V OR N. Z CAN BE DATA 8L E OR D. DATA 50HALL COMMANDS CAN BE ENTERED FROM THE HELP OR LID D DATA 8LISPLAY DATA 50HENTER L.+ FOR MORE HELP (COMPLETE ATTRIBUTE DESCRI DATA 8LPTIONS) DATA 50H DATA 8L HLAO EQU *-HLPB COMMAND RESPONSE OFFSET DATA 50H DATA 8L DATA 50H DATA 8L CON 0 END OF BUFFER CON 0 SPACE 4 ** *L* DISPLAY BUFFER FOR PAGE TWO OF HELP DISPLAY. HLPC DATA 50HLID OPERATOR UTILITY HELP DISPLAY PAG DATA 8LE 2 OF 2 DATA 50H DATA 8L DATA 50HATTRIBUTE DESCRIPTIONS DATA 8L DATA 50H DATA 8L DATA 50HS - STORE AND FORWARD LIDS FOR LINKED P DATA 8LIDS ONLY DATA 50HB - LOOPBACK LIDS FOR HOST PID DATA 8LS ONLY DATA 50HV - VALIDATE NOTE THAT S AND B DATA 8L CAN NOT DATA 50HD - DISABLE BE SPECIFIED TOGE DATA 8LTHER AND DATA 50HE - ENABLE ALSO THAT E AND D DATA 8L CAN NOT DATA 50HN - NOLIST BE SPECIFIED TOGE DATA 8LTHER DATA 50H DATA 8L DATA 50HPARAMETER DESCRIPTIONS DATA 8L DATA 50H DATA 8L DATA 50HPID IS THE THREE CHARACTER PHYSICAL IDENTIFIER DATA 8L DATA 50HLID IS AN ASSOCIATED THREE CHARACTER LOGICAL IDENT DATA 8LIFIER DATA 50HX CAN BE V OR N. Y CAN BE S, B, V OR N. Z CAN BE DATA 8L E OR D. DATA 50HMAINFRM IS A (ONE TO SEVEN CHARACTER) MAINFRAME DE DATA 8LSCRIPTOR DATA 50HNNN IS THE NETWORK (*RHF*, *SSF*, *NAM*, OR *ALL*) DATA 8L DATA 50HENTER L.- TO SEE THE AVAILABLE COMMANDS DATA 8L DATA 50H DATA 8L HLBO EQU *-HLPC COMMAND RESPONSE OFFSET DATA 50H DATA 8L DATA 50H DATA 8L CON 0 END OF BUFFER CON 0 ERRNZ HLAO-LIDO COMMAND RESPONSE OFFSET NOT CONSISTENT ERRNZ HLBO-LIDO COMMAND RESPONSE OFFSET NOT CONSISTENT SPACE 4 ** CONSTANT DATA. BLKS DATA 10H BLANK MESSAGE DATA 10H DATA 8L WORD OF BLANKS WITH ZERO BYTE MORE DATA 10HMORE LID DISPLAY WORD FOR MORE DATA SPACE 4 ** STORAGE LOCATIONS. BUFF BSSZ 2 *GETPP* REPLY BUFFER CHDF CON 0 CHANGE IN LID DISPLAY FLAG CMLN CON 0 COMMAND LENGTH FOR OUTPUT FILE EMAD CON 0 ERROR MESSAGE ADDRESS HLPF CON 0 HELP DISPLAY FLAG LCNT CON 0 LINE COUNT FOR LISTINGS LDSF CON 0 *L* DISPLAY INPUT FLAG IND1 CON 0 FIRST DISPLAYED INDEX IN LID BUFFER IND2 CON 0 NEXT INDEX IN LID BUFFER TO BE DISPLAYED PAGC CON 0 PAGE LINE LIMIT PDFC CON 0 PRINT DENSITY FORMAT CONTROL CHARACTER PDFE CON 0 PRINT DENSITY FORMAT EFFECTOR FLAG PONE VFD 42/0,18/HLPB ADDRESS OF START OF CURRENT HELP PAGE PTWO VFD 42/0,18/HLPC ADDRESS OF START OF OTHER HELP PAGE WBUF BSSZ 20 WORKING BUFFER TITLE MAIN PROGRAM. LIDOU SPACE 4,10 ** LIDOU - MAIN PROGRAM. * * CALLS PCM, PRS. * * NOTE CONTROL IS NOT RETURNED FROM ROUTINE *PCM* BUT * RATHER WHEN AN *L.END* COMMAND (OR AN *EOF* IN * THE CASE OF AN INPUT FILE) IS ENCOUNTERD ROU- * TINE *LED* IS CALLED WHICH TERMINATES LIDOU. * LIDOU BSS 0 ENTRY RJ PRS PRESET SB7 B0+ CLEAR ERROR MESSAGE ADDRESS RJ PCM PROCESS COMMANDS TITLE SUBROUTINES. ERR SPACE 4,15 ** ERR - ERROR ROUTINE. * * ENTRY THE LID TABLE READ FROM CENTRAL MEMORY IS EMPTY. * * EXIT TO *LED* AFTER INITIAL OUTPUT MESSAGE. * (CHDF) = 0. * * USES X - 1, 6. * A - 1, 6. * B - 7. * * CALLS FRS, LED, POF. ERR SA1 MSET * LID TABLE EMPTY.* BX6 X1 SA1 A1+B1 SA6 LBFI+1 MOVE MESSAGE TO COMMAND BUFFER BX6 X1 SA6 A6+B1 SX6 B0+ CLEAR CHANGED FLAG SA6 CHDF SA1 LDSF CHECK *L* DISPLAY FLAG ZR X1,ERR1 IF *L* DISPLAY NOT ACTIVE SB7 MSLC * UTILITY COMPLETE* RJ FRS FORMAT REQUESTED SCREEN JP LED END UTILITY ERR1 SB7 MSET * LID TABLE EMPTY.* RJ POF PROCESS OUTPUT FILE JP LED END UTILITY FBL SPACE 4,20 ** FBL - FORMAT BUFFER FOR LID TABLE. * * ENTRY *LIDI* CONTAINS THE REFORMATTED LID TABLE. * *MFTB* CONTAINS THE MAINFRAME AND NETWORK DATA. * (NMLL) = THE NUMBER OF USABLE LINES PER SCREEN. * (IND1) = INDEX INTO *LIDI* OF FIRST ENTRY * TO BE DISPLAYED. * * EXIT *LIDB* CONTAINS THE INFORMATION TO BE DISPLAYED. * (X7) = *MORE DATA* WORD FOR LID DISPLAY. * (X6) = INDEX INTO *LIDI* OF NEXT ENTRY, * (NOT YET DISPLAYED). * * USES X - 1, 2, 3, 6, 7. * A - 1, 2, 6. * B - 2, 3. * * CALLS FLL, FPL. FBL3 SA1 BLKS FORMAT BLANK LINE(S) SA2 BLKS+2 FBL4 BX6 X1 SA6 A6+B1 SA6 A6+B1 SA6 A6+B1 SA6 A6+B1 SA6 A6+B1 BX6 X2 STORE END OF LINE SA6 A6+B1 SB3 B3-1 CHECK IF STILL LINES TO FORMAT NZ B3,FBL4 IF NOT DONE FBL5 SA1 LIDI CHECK IF LAST SCREEN SX6 B2 IX3 X6-X1 SA1 BLKS SA2 MORE BX7 X1 PL X3,FBLX IF LAST SCREEN BX7 X2 FBL SUBR ENTRY/EXIT SA1 LIDD-1 PRESET ADDRESSES BX6 X1 SA6 A1 SA2 IND1 GET INDEX INTO *LIDI* SB2 X2+ SB3 NMLL SET NUMBER OF LINES TO FORMAT SA1 LIDI+B2 GET WORD FROM TABLE SX2 X1+ CHECK FOR LID OR PID ZR X2,FBL2 IF LID FBL1 SA2 X2 GET MAINFRAME AND SUBSYSTEM INFORMATION LX1 18 RIGHT JUSTIFY PID RJ FPL FORMAT PID LINE(S) ZR B3,FBL5 IF NO MORE LINES TO FORMAT SA1 LIDI+B2 GET NEXT WORD FROM TABLE FBL2 SB2 B2+1 RJ FLL FORMAT LID LINE SB3 B3-B1 SA1 LIDI+B2 GET NEXT WORD FROM TABLE SX2 X1 ZR B3,FBL5 IF NO MORE LINES TO FORMAT ZR X1,FBL3 IF END OF TABLE ZR X2,FBL2 IF ANOTHER LID EQ FBL1 FORMAT NEXT PID FLL SPACE 4,15 ** FLL - FORMAT LID LINE. * * ENTRY (X1) = THE WORD (FROM *LIDI*) CONTAINING THE LID. * (A6) = ADDRESS (MINUS ONE) TO STORE THE LINE. * * EXIT (A6) = ADDRESS (MINUS ONE) TO STORE THE NEXT LINE. * * USES X - 1, 2, 3, 4, 6. * A - 2, 3, 4 ,6. * * CALLS GLA. FLL2 SA2 FLLA+1 SAVE BLANK LID WORD BX6 X2 SA6 A6+B1 BX6 X3 ZERO WORDS TWO AND THREE SA6 A6+B1 SA6 A6+1 FLL3 SA6 A6+B1 ZERO WORDS FOUR AND FIVE SA6 A6+B1 BX6 X4 END OF LINE SA6 A6+B1 FLL SUBR ENTRY/EXIT SA3 BLKS+1 GET BLANK WORD SA4 A3+B1 MX6 -18 MASK OFF LID LX1 18 BX6 -X6*X1 ZR X6,FLL2 IF ZERO LID SA2 FLLA STORE LID WORD BX6 X6+X2 SA6 A6+B1 LX1 6 CHECK FOR ENABLED STATUS SA2 FPLA GET ENABLED STATUS WORD BX6 X2 NG X1,FLL1 IF ENABLED SA2 A2+B1 GET DISABLED STATUS WORD BX6 X2 FLL1 SA6 A6+B1 SAVE STATUS WORD LX1 5 RIGHT JUSTIFY ATTRIBUTES RJ GLA GET LID ATTRIBUTES SA6 A6+B1 SAVE ATTRIBUTE WORD BX6 X3 EQ FLL3 FINISH LINE FLLA VFD 42/7L ,18/0 LID WORD VFD 60/10L --- BLANK LID WORD FLT SPACE 4,20 ** FLT - FORMAT LISTING OF LID TABLE. * * ENTRY *LIDI* CONTAINS THE REFORMATTED LID TABLE. * *MFTB* CONTAINS THE MAINFRAME AND NETWORK DATA. * (LCNT) = NUMBER OF LINES TO FORMAT PER PAGE. * (A0) = 1. * * EXIT LISTING OF THE LID TABLE WRITTEN TO OUTPUT FILE. * * USES X - 0, 1, 2, 4, 5, 6. * A - 0, 1, 4, 5, 6. * B - 2, 3, 4. * * CALLS FLL, FPL, GPL. * * MACROS WRITEC, WRITEH, WRITEW. FLT SUBR ENTRY/EXIT SA1 PDFE NZ X1,FLT1 IF FORMAT EFFECTOR WRITTEN WRITEC OUTPUT,PDFC WRITE PRINT DENSITY FORMAT EFFECTOR FLT1 WRITEW OUTPUT,LIDA,15 WRITE PAGE HEADER SA1 LCNT GET LINE COUNT SX6 X1+ FLT2 SA6 FLTA SAVE LINE COUNT SA1 LIDI+A0 GET WORD FORM TABLE SB2 A0 SX2 X1 CHECK POINTER TO *MFTB* ZR X1,FLTX IF END OF TABLE ZR X2,FLT4 IF LID LX1 18 RIGHT JUSTIFY PID SA4 X2 GET MAINFRAME AND NETWORK DATA MX0 -12 BX2 -X0*X4 RJ GPL GET PID LINE COUNT BX2 X4 SA5 BLKS GET BLANK WORD BX6 X5 STORE BLANK WORD SA6 WBUF SB3 3 SET NUMBER OF LINES RJ FPL FORMAT PID LINE(S) SA0 B2 SAVE INDEX SX0 B4 SAVE LINE COUNT SA1 FLTA DECREMENT LINE COUNT SB3 X1 SB4 B3-B4 SX6 B4 SA6 A1 SA5 BLKS GET BLANK WORD WRITEH OUTPUT,WBUF,7 SX0 X0-1 ZR X0,FLT3 IF DONE WITH PID LINES BX6 X5 STORE BLANK WORD SA6 WBUF+6 WRITEH OUTPUT,WBUF+6,7 SX0 X0-1 ZR X0,FLT3 IF DONE WITH PID LINES BX6 X5 STORE BLANK WORD SA6 WBUF+12 WRITEH OUTPUT,WBUF+12,7 FLT3 SA1 LIDI+A0 GET NEXT WORD FROM TABLE FLT4 BX6 X5 STORE BLANK WORD SA6 WBUF SA0 A0+B1 RJ FLL FORMAT LINE LINE WRITEH OUTPUT,WBUF,7 WRITE LID LINE SA1 FLTA CHECK LINE COUNT SX6 X1-1 PL X6,FLT2 IF MORE ROOM ON PAGE EQ FLT1 FORMAT PAGE HEADER FLTA BSS 1 HOLDS LINE COUNT FPL SPACE 4,20 ** FPL - FORMAT PID LINE(S). * * ENTRY (X1) = THE PID ENTRY, WITH THE PID RIGHT JUSTIFIED. * (X2) = THE MAINFRAME/NETWORK WORD FROM *MFTB*. * (A6) = ADDRESS (MINUS ONE) TO STORE THE LINE(S). * (B2) = THE INDEX INTO *LIDI* FOR THE PID ENTRY. * (B3) = THE NUMBER OF LINES LEFT ON THE SCREEN. * * EXIT (A6) = ADDRESS (MINUS ONE) TO STORE NEXT LINE. * (B2) = THE INDEX INTO *LIDI* FOR THE NEXT ENTRY. * (B3) = THE NUMBER OF LINES LEFT ON THE SCREEN. * * USES X - ALL. * A - 3, 4, 6. * B - 2, 3, 5, 6 * * CALLS GPA. FPL6 NZ X5,FPLX IF ANY NETWORK INFORMATION WRITTEN SA3 BLKS BLANK FILL INITIAL LINE BX6 X3 SA6 A6+B1 BX6 X0*X6 END OF LINE SA6 A6+B1 FPL SUBR ENTRY/EXIT SX6 X1 STORE PID WORD SA3 FPLB LX6 -18 BX6 X6+X3 SA6 A6+B1 STORE PID WORD SA3 FPLA GET ENABLED STATUS WORD BX6 X3 LX1 1 CHECK ENABLED/DISABLED STATUS MX0 42 SX5 B0 SET INITIAL LINE BEING PROCESSED NG X1,FPL1 IF ENABLED SA3 A3+B1 GET DISABLED STATUS BX6 X3 FPL1 SA6 A6+B1 STORE STATUS WORD LX1 3 RIGHT JUSTIFY ATTRIBUTES RJ GPA GET PID ATTRIBUTES SA6 A6+B1 STORE ATTRIBUTE WORD SX3 3R BX6 X0*X2 STORE MAINFRAME WORD BX3 -X0*X3 MASK OFF SIGN EXTENSION BX1 -X0*X2 MASK OFF NETWORK INFORMATION BX6 X6+X3 SA6 A6+B1 SA3 FPLD GET NETWORK WORD SB5 3 NUMBER OF NETWORKS MX2 -4 SB2 B2+B1 SB3 B3-1 FPL2 SX7 X3 GET NETWORK IDENTIFIER BX4 -X2*X1 SB6 B0 LX7 -18 LEFT JUSTIFY NETWORK IDENTIFIER SX6 X4-/NTS/ISV ZR X6,FPL4 IF IN SERVICE SB6 B6+2 SX6 X4-/NTS/OSV ZR X6,FPL4 IF OUT OF SERVICE SB6 B6+2 SX6 X4-/NTS/DAB PL X6,FPL4 IF DISABLED FPL3 SB5 B5-B1 MX0 48 ZR B5,FPL6 IF ALL NETWORKS CHECKED LX1 -4 LX3 -18 EQ FPL2 CHECK NEXT NETWORK FPL4 ZR X5,FPL5 IF INITIAL LINE SB3 B3-B1 DECREMENT LINE COUNT SB2 B2+B1 INCREMENT INDEX INTO *LIDI* SA4 BLKS BLANK FILL START OF LINE BX6 X4 SA6 A6+B1 SA6 A6+B1 SA6 A6+B1 SA6 A6+1 FPL5 SX5 B1 CLEAR INITIAL LINE SA4 FPLC+B6 STORE FIRST WORD OF NETWORK STATUS BX6 X4+X7 ADD IN NETWORK IDENTIFIER SA6 A6+B1 SA4 A4+B1 STORE SECOND WORD BX6 X4 SA6 A6+B1 ZR B3,FPLX IF NO MORE LINES ON SCREEN EQ FPL3 CHECK IF ALL NETWORKS PROCESSED FPLA VFD 60/10L YES ENABLED VFD 60/10L NO NOT ENABLED FPLB VFD 18/0,42/7L --- PID WORD FPLC VFD 18/0,42/7L IN SER NETWORK STATUSES VFD 60/8LVICE VFD 18/0,42/7L OUT OF VFD 60/8L SERVICE VFD 18/0,42/7L DISABL VFD 60/8LED FPLD VFD 6/0 NETWORKS VFD 18/3LSSF VFD 18/3LRHF VFD 18/3LNAM FRL SPACE 4,15 ** FRL - FORMAT RESPONSE LINES. * * ENTRY (X1) = START OF BUFFER BEING USED. * (X2) = COMMAND RESPONSE OFFSET INTO BUFFER. * (B7) = ADDRESS OF ERROR RESPONSE. * = 0, IF NO ERROR MESSAGE. * * EXIT RESPONSE LINES FORMATTED. * (X6) = LWA OF BUFFER (FOR *COMCFLD*). * * USES X - 2, 3, 6. * A - 2, 3, 6. * B - 3, 4, 7. FRL1 SA3 B7 FORMAT MESSAGE LINE BX6 X3 SA6 B4 SA3 A3+B1 BX6 X3 SA6 A6+B1 SB4 A6+5 FRL2 BX6 X2 FORMAT COMMAND LINE SA6 B4 SA2 A2+1 SB4 B4+1 SB3 B3-1 ZR X2,FRL3 IF END OF INPUT NZ B3,FRL2 IF NOT DONE FRL3 SX6 A6+ SAVE END OF BUFFER ADDRESS FRL SUBR ENTRY/EXIT SB4 X1 CALCULATE MESSAGE ADDRESS SB4 X2+B4 SB3 6 SET COUNTER SA2 LBFI+1 NZ B7,FRL1 IF ERROR MESSAGE REQUESTED SB7 BLKS SET BLANK ERROR MESSAGE EQ FRL1 FORMAT LINES FRS SPACE 4,30 ** FRS - FORMAT REQUESTED SCREEN. * * ENTRY *LIDI* CONTAINS THE REFORMATTED LID TABLE. * *MFTB* CONTAINS THE MAINFRAME AND NETWORK DATA. * (CMRO) = COMMAND RESPONSE OFFSET INTO BUFFER. * (B7) = ADDRESS OF ERROR RESPONSE. * = 0, IF NO ERROR MESSAGE. * (IND1) = INDEX INTO *LIDI* OF FIRST ENTRY * TO BE DISPLAYED ON SCREEN * (HLPF) = 1, IF HELP DISPLAY REQUESTED. * = 0, IF LID TABLE DISPLAY REQUESTED. * (PONE) = ADDRESS OF CURRENT HELP PAGE. * (CHDF) = 1, IF LID DISPLAY NEEDS TO BE RE- * FORMATTED. * = 0, OTHERWISE. * * EXIT *L* DISPLAY INFORMATION FORMATTED, IF NECESSARY, * AND DISPLAYED. * (IND2) = INDEX INTO *LIDI* OF NEXT ENTRY, * NOT YET DISPLAYED ON SCREEN. * * USES X - 1, 2, 3, 6, 7. * A - 1, 2, 6, 7. * B - 2, 3, 4, 6. * * CALLS FBL, FLB, FRL. * * MACROS DSDOUT. FRS2 SX2 LIDO SET COMMAND RESPONSE OFFSET RJ FRL FORMAT RESPONSE LINE SB2 LBFO+1 SET DESTINATION BUFFER ADDRESSES SB6 LBFOE-1 SB3 XCDT SET X AND Y STARTING COORDINATES SB4 YCDT SX2 B0 SET DISPLAY CODE FOR *L* DISPLAY SX3 B1 RJ FLB FORMAT BUFFER FOR *L* DISPLAY DSDOUT LBFO DISPLAY *L* DISPLAY FRS SUBR ENTRY/EXIT SA2 HLPF CHECK FOR HELP DISPLAY REQUESTED SA1 PONE SET START OF HELP BUFFER NZ X2,FRS2 IF HELP DISPLAY REQUESTED SA2 CHDF CHECK FOR LID DISPLAY CHANGE ZR X2,FRS1 IF NO CHANGE SX6 B0+ CLEAR LID TABLE CHANGED FLAG SA6 CHDF RJ FBL FORMAT BUFFER FOR LID TABLE SA6 IND2 SAVE NEXT ENTRY INDEX SA7 LIDE STORE *MORE DATA* WORD FRS1 SX1 LIDB SET START OF LID BUFFER EQ FRS2 FORMAT RESPONSE LINE GLA SPACE 4,10 ** GLA - GET LID ATTRIBUTES. * * ENTRY (X1) = LID WORD WITH ATTRIBUTES RIGHT JUSTIFIED. * * EXIT (X6) = ATTRIBUTE WORD (DISPLAY CODE EQUIVALENT). * (X1) = 0, IF NO ERROR. * NONZERO IF NO MATCH. * * USES X - 1, 2, 6. * A - 2. GLA2 MX1 42 SX6 3R BX6 -X1*X6 MASK OFF SIGN EXTENSION BX2 X1*X2 MASK OFF ATTRIBUTES BX6 X2+X6 ADD IN BLANKS SX1 B0+ CLEAR ERROR GLA SUBR ENTRY/EXIT MX2 -4 IGNORE ENABLED BIT BX1 -X2*X1 SA2 TLAT GET TABLE ENTRY GLA1 ZR X2,GLAX IF END OF TABLE SX6 X2 BX6 X6-X1 CHECK FOR MATCH ZR X6,GLA2 IF ATTRIBUTES MATCH SA2 A2+1 EQ GLA1 CHECK FOR END OF TABLE GLT SPACE 4,15 ** GLT - GET LID TABLE. * * ENTRY (A1) = ADDRESS OF LID TABLE FET (*LIDF*). * * EXIT LID TABLE READ FROM CORE AND, IF NOT EMPTY, * *LIDI* CONTAINS THE REFORMATTED LID TABLE AND * *MFTB* CONTAINS THE MAINFRAME AND NETWORK DATA. * TO *ERR* IF EMPTY LID TABLE. * * USES X - 1, 6, 7. * A - 1, 6. * * CALLS RLD. * * MACROS GETLIDT. GLT SUBR ENTRY/EXIT SA1 A1+B1 REWIND FET SX6 X1 SA6 A1+B1 SA6 A6+B1 GETLIDT LIDF GET LID TABLE SA1 LIDI GET NUMBER OF PIDS IN TABLE MX6 -12 BX7 -X6*X1 ZR X7,ERR IF EMPTY TABLE RJ RLD REFORMAT LID TABLE EQ GLTX RETURN GPA SPACE 4,10 ** GPA - GET PID ATTRIBUTES. * * ENTRY (X1) = PID ATTRIBUTES, RIGHT JUSTIFIED. * * EXIT (X6) = ATTRIBUTE WORD (DISPLAY CODE EQUIVALENT). * (X1) = 0, IF NO ERROR. * NONZERO IF NO MATCH. * * USES X - 1, 3, 6. * A - 3. GPA2 MX1 42 SX6 3R BX6 -X1*X6 MASK OFF SIGN EXTENSION BX3 X1*X3 MASK OFF ATTRIBUTES BX6 X3+X6 ADD IN BLANKS SX1 B0+ CLEAR ERROR GPA SUBR ENTRY/EXIT MX3 -4 BX1 -X3*X1 SA3 TPAT GET TABLE ENTRY GPA1 ZR X3,GPAX IF END OF TABLE SX6 X3 BX6 X6-X1 CHECK FOR MATCH ZR X6,GPA2 IF ATTRIBUTES MATCH SA3 A3+1 EQ GPA1 CHECK FOR END OF TABLE GPL SPACE 4,10 ** GPL - GET PID LINE COUNT. * * ENTRY (X2) = NETWORK INFORMATION FOR PID, RIGHT * JUSTIFIED. * * EXIT (B4) = PID LINE COUNT, 1, 2, OR 3. * * USES X - 2, 3, 6, 7. * B - 4, 5. GPL4 NZ B4,GPLX IF AT LEAST ONE LINE SB4 B1+ SET ONE LINE GPL SUBR ENTRY/EXIT MX3 -4 BX6 -X3*X2 SB4 B0 INITIALIZE PID LINE COUNT SB5 B1+B1 GPL1 SX7 X6-/NTS/ISV ZR X7,GPL2 IF *IN SERVICE* SX7 X6-/NTS/OSV ZR X7,GPL2 IF *OUT OF SERVICE* SX7 X6-/NTS/DAB NG X7,GPL3 IF NOT *DISABLED* GPL2 SB4 B4+1 INCREMENT PID LINE COUNT GPL3 SB5 B5-1 NG B5,GPL4 IF DONE WITH ALL THREE NETWORKS LX2 -4 BX6 -X3*X2 EQ GPL1 PROCESS NEXT NETWORK LED SPACE 4,15 ** LED - LIDOU END. * * EXIT *L* DISPLAY DROPPED, PROGRAM TERMINATED. * * USES X - 1. * A - 1. * B - 7. * * CALLS FRS, POF. * * MACROS DSDINP, ENDRUN, MESSAGE, WRITER. LED SA1 LDSF CHECK *L* DISPLAY FLAG SB7 MSLC * UTILITY COMPLETE.* NZ X1,LED1 IF *L* DISPLAY ACTIVE RJ POF PROCESS OUTPUT FILE WRITER OUTPUT,R FLUSH OUTPUT BUFFER EQ LED2 ISSUE DAYFILE MESSAGE AND END LED1 RJ FRS FORMAT REQUESTED SCREEN DSDINP LBFI,C DROP *L* DISPLAY LED2 MESSAGE DAFC,O,R * LIDOU UTILITY COMPLETE.* ENDRUN PCM SPACE 4,15 ** PCM - PROCESS COMMANDS. * * ENTRY (B7) = 0. * * EXIT TO *LED* WHEN THE COMMAND *L.END* IS ENCOUNTERED. * * USES X - 0, 1, 2, 4, 5, 6, 7. * A - 1, 5, 6. * B - 3, 7. * * CALLS FRS, GLT, LED, PIF, PKB, POF, POP, STP. PCM SUBR ENTRY/EXIT PCM1 SA1 CHDF CHECK FOR CHANGE TO LID DISPLAY ZR X1,PCM2 IF NO CHANGE SA1 LIDF SET FET ADDRESS RJ GLT GET LID TABLE PCM2 SA1 LDSF CHECK *L* DISPLAY FLAG ZR X1,PCM9 IF *L* DISPLAY NOT ACTIVE PCM3 SX6 B7+ SAVE MESSAGE ADDRESS SA6 EMAD RJ FRS FORMAT REQUESTED SCREEN MX0 -12 SET MASK RJ PKB GET KEYBOARD INPUT PCM4 RJ POP PICK OUT FIRST PARAMETER ZR X6,PCM7 IF NO PARAMETERS SX4 X1-1R. SA5 TLC1 CHECK FOR PRIMARY COMMAND MATCH ZR X1,PCM6 IF ONLY ONE PARAMETER ZR X4,PCM6 IF ONLY ONE PARAMETER MX0 -42 CHECK FOR MORE THAN 3 CHARACTERS BX4 -X0*X6 NZ X4,PCM8 IF MORE THAN THREE CHARACTERS RJ STP SEARCH TABLE FOR PID SB7 MSPN * PID NOT FOUND.* NZ X2,PCM1 IF PID NOT FOUND SA6 PARB+1 SAVE PID SX6 A5 SAVE PID ADDRESS SA6 A6+B1 PCM5 SX4 X1-1R, NZ X4,PCM8 IF INITIAL SEPARATOR NOT *,* SA5 TLC2 CHECK FOR SECONDARY COMMAND MATCH RJ POP GET NEXT PARAMETER SX4 X1-1R= NZ X4,PCM8 IF SECONDARY SEPARATOR NOT *=* PCM6 MX0 42 ZR X5,PCM8 IF END OF TABLE BX2 X5-X6 BX2 X0*X2 SB3 X5 SA5 A5+1 NZ X2,PCM6 IF NO MATCH JP B3 PROCESS COMMAND PCM7 SX4 X1-1R+ CHECK FOR PAGE FORWARD COMMAND SX7 X1-1R- CHECK FOR PAGE BACKWARD COMMAND ZR X4,PSF IF PAGE FORWARD COMMAND ZR X7,PSB IF PAGE BACKWARD COMMAND PCM8 SB7 MSIC * INCORRECT COMMAND.* EQ PCM1 PROCESS NEXT COMMAND PCM9 RJ POF PROCESS OUTPUT FILE RJ PIF PROCESS INPUT FILE EQ PCM4 PROCESS COMMAND TLC1 VFD 42/3LEND,18/LED VFD 42/3LOUT,18/POC VFD 42/4LHELP,18/THD VFD 42/4LBACK,18/TLD VFD 60/0 END OF PRIMARY COMMANDS TLC2 VFD 42/2LLD,18/SLA VFD 42/2LMF,18/SMF VFD 42/2LNT,18/SNS VFD 42/2LPA,18/SPA VFD 60/0 END OF SECONDARY COMMANDS PARB VFD 12/0,12/1,36/0 FUNCTION CODE, PID COUNT VFD 18/0,42/0 PID, FUNCTION DEPENDENT DATA VFD 42/0,18/0 HOLDS PID ADDRESS FOR LID CHECKING PIF SPACE 4,20 ** PIF - PROCESS INPUT FILE. * * EXIT COMMAND UNPACKED TO *USBB* IN *COMCUSB*. * (USBC) = LAST WORD ADDRESS OF BUFFER. * (CMLN) = CHARACTER COUNT OF COMMAND. * (B6) = FIRST WORD ADDRESS OF BUFFER. * * USES X - 1, 6, 7. * A - 1, 6, 7. * B - 2, 6. * * MACROS READS. * * NOTE IF NO COMMAND IS PRESENT AN *END* COMMAND * WILL BE MOVED INTO THE BUFFER TO TERMINATE * THE PROGRAM. ALSO, IF THE COMMAND DOES * NOT TERMINATE IN A PERIOD THE NEXT WORD * IN THE BUFFER IS ZEROED TO SIGNIFY THE * END OF THE COMMAND TO *COMCPOP*. PIF2 SX7 B6-B1 SA1 B6-B1 CHECK FOR TERMINATOR SX1 X1-1R. SX6 B0 ZR X1,PIF3 IF *.* TERMINATOR SA6 B6 SIGNIFY END OF COMMAND PIF3 SX6 B6-USBB SAVE COMMAND LENGTH SA6 CMLN SB6 USBB RESET TO START OF BUFFER SA7 USBC PIF SUBR ENTRY/EXIT SX6 B0+ CLEAR BUFFER SB2 80 PIF1 SA6 USBB+B2 SB2 B2-1 PL B2,PIF1 IF NOT DONE READS INPUT,USBB,80 READ COMMAND ZR X1,PIF2 IF COMMAND PRESENT SX6 1RE SET *END* COMMAND SA6 USBB SX6 1RN SA6 A6+B1 SX6 1RD SA6 A6+B1 SX6 1R. SB6 USBB+4 SET COMMAND LENGTH SA6 A6+B1 SX7 B6 EQ PIF3 SAVE COMMAND LENGTH PKB SPACE 4,15 ** PKB - PROCESS KEYBOARD. * * ENTRY (X0) = 42 BIT MASK, LEFT JUSTIFIED. * * EXIT *L* DISPLAY INPUT IN *LBFI*, AND * UNPACKED TO *USBB* IN *COMCUSB*. * * USES X - 0, 1, 6. * A - 1, 6. * B - 2, 7. * * CALLS FRS, GLT, USB. * * MACROS DSDINP, ROLLOUT. PKB2 SX6 B0+ CLEAR BUFFER SB2 80 PKB3 SA6 USBB+B2 SB2 B2-1 PL B2,PKB3 IF NOT DONE SB2 LBFI+1 UNPACK COMMAND RJ USB PKB SUBR ENTRY/EXIT PKB1 DSDINP LBFI CHECK FOR *L* DISPLAY INPUT SA1 LBFI BX1 -X0*X1 AX1 1 IGNORE COMPLETION BIT SX1 X1-INPC NZ X1,PKB2 IF INPUT ROLLOUT ROLL ROLLOUT UNTIL *L* DISPLAY INPUT * REFRESH THE SCREEN. SA1 LIDF SET FET ADDRESS RJ GLT GET LID TABLE SA1 EMAD GET ERROR MESSAGE ADDRESS SB7 X1 SX6 B1 SET LID DISPLAY CHANGE FLAG SA6 CHDF RJ FRS FORMAT REQUESTED SCREEN MX0 -12 EQ PKB1 CHECK FOR INPUT POC SPACE 4,15 ** POC - PROCESS OUT COMMAND. * * EXIT TO *PCM3* (IF *L* DISPLAY IS ACTIVE). * TO *PCM9* (IF *L* DISPLAY INACTIVE). * (POFA) = -1, IF *L* DISPLAY INACTIVE. * * USES X - 1, 2, 6. * A - 0, 1, 6. * B - 7. * * CALLS FLT. * * MACROS ROUTE, WRITER. POC SA1 LDSF CHECK *L* DISPLAY FLAG ZR X1,POC1 IF *L* DISPLAY NOT ACTIVE SA1 OUTPUT+1 REWIND FET SX6 X1 SA6 A1+B1 SA6 A1+B1 SA0 B1 RJ FLT FORMAT LISTING OF LID TABLE WRITER OUTPUT,R FLUSH OUTPUT BUFFER SA1 ROTB CLEAR COMPLETE BIT IN ROUTE BLOCK MX2 59 BX6 X2*X1 SA6 A1 ROUTE ROTB,R ROUTE FILE SB7 MSCP * COMMAND PROCESSED.* EQ PCM3 CONTINUE PROCESSING COMMAND POC1 SX6 -B1 CLEAR OUTPUT FILE LINE COUNT SA6 POFA SA0 B1 RJ FLT FORMAT LISTING OF LID TABLE SB7 MSCP * COMMAND PROCESSED.* EQ PCM9 CONTINUE PROCESSING COMMAND POF SPACE 4,15 ** POF - PROCESS OUTPUT FILE. * * ENTRY (CMLN) = CHARACTER COUNT OF COMMAND. * (B7) = 0, IF INITIAL CALL. * = ADDRESS OF COMMAND RESPONSE, * IF NOT INITIAL CALL. * * EXIT OUTPUT LINE WRITTEN TO OUTPUT FET. * * USES X - 1, 2, 6, 7. * A - 0, 1, 2, 6, 7. * B - 7. * * MACROS WRITEC, WRITEH, WRITEO, WRITES, WRITEW. POF2 SX6 X1-2 DECREMENT LINE COUNT SA6 POFA SA1 BLKS WRITE BLANK WORD BX6 X1 WRITEO OUTPUT SA1 CMLN GET COMMAND LENGTH SB7 X1+ WRITES OUTPUT,USBB,B7 ECHO COMMAND SA1 BLKS+1 WRITE RESPONSE SA2 A0 BX6 X1 BX7 X2 SA6 WBUF SA7 A6+B1 SA1 A1+B1 SA2 A2+B1 BX6 X1 BX7 X2 SA7 A7+B1 SA6 A7+B1 WRITEH OUTPUT,WBUF,4 POF SUBR ENTRY/EXIT NZ B7,POF1 IF NOT INITIAL CALL WRITEC OUTPUT,PDFC WRITE PRINT DENSITY FORMAT EFFECTOR SX6 B1+ SET PRINT DENSITY FORMAT EFFECTOR FLAG SA6 PDFE WRITEW OUTPUT,HLPA,15 WRITE PAGE HEADER SA1 LCNT SET LINE COUNT SX6 X1+ SA6 POFA EQ POFX RETURN POF1 SA0 B7+ SAVE COMMAND RESPONSE ADDRESS SA1 POFA CHECK LINE COUNT PL X1,POF2 IF STILL MORE LINES ON PAGE WRITEW OUTPUT,HLPA,15 WRITE PAGE HEADER SA1 LCNT SET LINE COUNT EQ POF2 DECREMENT LINE COUNT POFA CON -1 HOLDS LINE COUNT PSB SPACE 4,20 ** PSB - PAGE SCREEN BACKWARD. * * ENTRY (IND1) = INDEX INTO *LIDI* OF FIRST ENTRY * DISPLAYED ON SCREEN. * (HLPF) = 1, IF HELP DISPLAY IS ACTIVE. * * EXIT TO *PCM3* IF NO ERRORS WERE ENCOUNTERED. * TO *PCM1* IF *L* DISPLAY NOT ACTIVE. * TO *PCM1* IF TOO MANY PARAMETERS. * (IND1) UPDATED IF LID DISPLAY CHANGED. * (PONE) = ADDRESS OF CURRENT HELP PAGE. * (CHDF) = 1, IF LID DISPLAY CHANGED. * (B7) = ADDRESS OF RESPONSE. * * USES X - 1, 2, 6, 7. * A - 1, 2, 6, 7. * B - 7. * * CALLS POP. PSB SA1 LDSF CHECK IF *L* DISPLAY ACTIVE SB7 MSIC * INCORRECT COMMAND.* ZR X1,PCM1 IF INCORRECT COMMAND FOR INPUT FILE RJ POP CHECK FOR MORE COMMAND SB7 MSTP * EXCESS PARAMETERS.* NZ X6,PCM1 IF TOO MANY PARAMETERS SB7 B0+ CLEAR ERROR MESSAGE SA1 HLPF CHECK IF HELP DISPLAY IS ACTIVE NZ X1,PSB3 IF HELP DISPLAY IS ACTIVE SA1 IND1 CHECK IF FIRST SCREEN SX2 X1-1 ZR X2,PCM3 IF FIRST SCREEN SX2 NMLL PAGE BACKWARDS IX6 X1-X2 SX6 X6-1 PL X6,PSB1 IF WITHIN BOUNDS SX6 B1+ RESET TO START OF BUFFER EQ PSB2 SAVE INDEX AND SET CHANGED FLAG PSB1 SA1 LIDI+X6 CHECK FOR SPACER WORD LX1 18 SX1 X1 NZ X1,PSB2 IF LID OR PID WORD SX6 X6+1 EQ PSB1 CHECK FOR SECOND SPACER WORD PSB2 SA6 IND1 SAVE INDEX SX6 B1+ SET LID DISPLAY CHANGED FLAG SA6 CHDF EQ PCM3 PROCESS NEXT COMMAND PSB3 SA1 PONE CHECK IF ALREADY PAGE ONE OF HELP DISPLAY SX2 HLPB PAGE ONE OF HELP DISPLAY SB7 B0 CLEAR ERROR MESSAGE BX2 X2-X1 ZR X2,PCM3 IF ALREADY ON FIRST PAGE OF HELP DISPLAY SA2 PTWO BX6 X1 BX7 X2 SA6 A2 SA7 A1 EQ PCM3 PROCESS NEXT COMMAND PSF SPACE 4,20 ** PSF - PAGE SCREEN FORWARD. * * ENTRY (IND1) = INDEX INTO *LIDI* OF FIRST ENTRY * DISPLAYED ON SCREEN. * (IND2) = INDEX INTO *LIDI* OF NEXT ENTRY, * NOT YET DISPLAYED ON SCREEN. * (HLPF) = 1, IF HELP DISPLAY IS ACTIVE. * * EXIT TO *PCM3* IF NO ERRORS WERE ENCOUNTERED. * TO *PCM1* IF *L* DISPLAY NOT ACTIVE. * TO *PCM1* IF TOO MANY PARAMETERS. * (IND1) UPDATED IF LID DISPLAY CHANGED. * (PONE) = ADDRESS OF CURRENT HELP PAGE. * (CHDF) = 1, IF LID DISPLAY CHANGED. * (B7) = ADDRESS OF RESPONSE. * * USES X - 1, 2, 3, 6, 7. * A - 1, 2, 6, 7. * B - 7. * * CALLS POP. PSF SA1 LDSF CHECK IF *L* DISPLAY ACTIVE SB7 MSIC * INCORRECT COMMAND.* ZR X1,PCM1 IF INCORRECT COMMAND FOR INPUT FILE RJ POP CHECK FOR MORE COMMAND SB7 MSTP * EXCESS PARAMETERS.* NZ X6,PCM1 IF TOO MANY PARAMETERS SB7 B0+ CLEAR ERROR MESSAGE SA1 HLPF CHECK IF HELP DISPLAY IS ACTIVE NZ X1,PSF3 IF HELP DISPLAY IS ACTIVE SA1 LIDI CHECK IF LAST SCREEN SX7 B1 SET LID TABLE CHANGED FLAG SX6 B1 SET LOOP TO FIRST SCREEN SA2 IND2 IX3 X2-X1 PL X3,PSF2 IF LAST SCREEN BX6 X2 PAGE FORWARD PSF1 SA1 LIDI+X6 CHECK FOR SPACER WORD LX1 18 SX1 X1 NZ X1,PSF2 IF LID OR PID WORD SX6 X6-1 EQ PSF1 CHECK FOR SECOND SPACER WORD PSF2 SA6 IND1 SAVE INDEX SA7 CHDF SAVE LID TABLE CHANGED FLAG EQ PCM3 CONTINUE PROCESSING COMMAND PSF3 SA1 PONE SWAP PAGE HELP PAGE ADDRESSES SA2 PTWO BX6 X1 BX7 X2 SA6 A2 SA7 A1 SB7 B0+ CLEAR ERROR MESSAGE EQ PCM3 PROCESS NEXT COMMAND RLD SPACE 4,15 ** RLD - REFORMAT LID TABLE. * * ENTRY *LIDI* CONTAINS THE LID TABLE FROM CORE. * (A1) = FIRST WORD ADDRESS OF *LIDI*. * (X7) = NUMBER OF PIDS IN TABLE. * * EXIT *LIDI* CONTAINS THE REFORMATTED LID TABLE. * *MFTB* CONTAINS THE MAINFRAME AND NETWORK DATA. * * USES X - ALL. * A - 1, 6, 7. * B - 2, 3, 4. * * CALLS GPL. RLD SUBR ENTRY/EXIT SA6 LIDI PRESET ADDRESS IN *LIDI* SA7 MFTB SAVE NUMBER OF PIDS RLD1 MX0 42 SET MASKS MX5 -12 SA1 A1+B1 GET PID WORD BX2 -X5*X1 MASK OFF NETWORK INFORMATION BX3 X0*X1 SA1 A1+B1 GET MAINFRAME DESCRIPTOR BX7 X0*X1 BX4 -X5*X1 MASK OFF NEXT PID OFFSET SA1 A1+B1 GET NUMBER OF LID SLOTS SX6 A7+B1 BX7 X7+X2 BX6 X3+X6 SA7 A7+B1 SAVE MAINFRAME AND NETWORK INFORMATION SA6 A6+B1 SAVE PID, ATTRIBUTES AND *MFTB* ADDRESS RJ GPL GET PID LINES BX3 -X5*X1 SB2 X3 SET SLOT COUNT SB3 X3 SET NON EMPTY SLOT COUNT MX6 24 EQ B4,B1,RLD2 IF NO EXTRA LINES LX6 -18 SA6 A6+B1 STORE DUMMY PID ENTRY SB4 B4-B1 EQ B4,B1,RLD2 IF ONE EXTRA LINE SA6 A6+B1 STORE DUMMY PID ENTRY RLD2 SA1 A1+B1 GET LID BX6 X0*X1 ZR X6,RLD3 IF EMPTY SLOT SA6 A6+1 SAVE LID SB3 B3-1 DECREMENT NON EMPTY SLOT COUNT RLD3 SB2 B2-B1 DECREMENT SLOT COUNT NZ B2,RLD2 IF MORE SLOTS TO CHECK MX6 24 ZR B3,RLD4 IF NO EMPTY SLOTS LX6 -18 SA6 A6+B1 SIGNIFY EMPTY LID RLD4 NZ X4,RLD1 IF NOT END OF TABLE SA1 LIDI SAVE LARGEST TABLE INDEX SB2 A1 SX7 A6-B2 SA7 A1 BX6 X6-X6 ZERO WORD FOR END OF REFORMATTED TABLE SA6 A6+1 EQ RLDX RETURN SET SPACE 4,15 ** SET - SET ATTRIBUTE(S). * * ENTRY (X7) = FUNCTION CODE AND PID COUNT FOR * FIRST WORD OF PARAMETER BLOCK. * (X6) = BOTTOM 42 BITS FOR SECOND WORD. * * EXIT (X4) = RETURN CODE FROM *SETPIDA*. * * USES X - 0, 4, 6, 7. * A - 4, 6, 7. * * MACROS SETPIDA. SET SUBR ENTRY/EXIT LX7 36 POSITION FUNCTION CODE AND PID COUNT SX4 B1+ SET FET NOT BUSY BX7 X7+X4 SA7 PARB SET FIRST WORD INTO PARAMETER BLOCK SA4 A7+B1 SET BOTTOM 42 BITS INTO SECOND WORD MX0 18 BX4 X0*X4 BX6 X4+X6 SA6 A4 MX0 -8 SETPIDA PARB MAKE *SFM* CALL SA4 PARB MASK OFF RETURN CODE LX4 -10 BX4 -X0*X4 EQ SETX RETURN SLA SPACE 4,25 ** SLA - SET LID ATTRIBUTE(S). * * EXIT TO *PCM1* IF NO MORE COMMAND TO PROCESS OR ERROR. * TO *PCM5* IF NO ERROR AND MORE COMMAND TO PROCESS. * (X1) = SEPARATOR, IF MORE COMMAND TO PROCESS. * (CHDF) = 1, IF THE LID TABLE CHANGED. * (B7) = ADDRESS OF RESPONSE. * * USES X - 0, 1, 2, 4, 5, 6, 7. * A - 4. * B - 7. * * CALLS POP, SET, SLF, STL. * * NOTE ATTRIBUTES *D* AND *E* CANNOT BE SPECIFIED TOGETHER * AND IF NEITHER IS SPECIFIED THE PRESENT STATUS WILL * BE USED WHEN ALTERING ATTRIBUTES AND THE DEFAULT * STATUS OF ENABLE WILL BE USED WHEN ADDING A LID. * ATTRIBUTES *S* AND *B* CANNOT BE SPECIFIED TOGETHER * AND *B* IS NOT ALLOWED ON A LINKED PID. THE *V* * ATTRIBUTE CAN ONLY BE SET IF THE *S* ATTRIBUTE IS SET. SLA MX4 6 SET MASKS MX0 -42 RJ POP GET NEXT PARAMETER SB7 MSIP * INCORRECT SEPARATOR.* SX7 X1-1R, NZ X7,PCM1 IF SEPARATOR NOT *,* SB7 MSIL * INCORRECT LID.* BX0 -X0*X6 CHECK FOR CORRECT LID BX7 X4*X6 NZ X0,PCM1 IF MORE THAN THREE CHARACTERS LX4 -6 BX5 X4*X6 LX4 -6 BX4 X4*X6 LX7 6 POSITION CHARACTERS LX5 12 LX4 18 MX2 42 SET MASK ZR X7,PCM1 IF NO FIRST CHARACTER ZR X5,PCM1 IF NO SECOND CHARACTER ZR X4,PCM1 IF NO THIRD CHARACTER SX7 X7-1R9-1 CHECK FOR ALPHANUMERIC CHARACTERS SX5 X5-1R9-1 SX4 X4-1R9-1 PL X7,PCM1 IF INCORRECT FIRST CHARACTER PL X5,PCM1 IF INCORRECT SECOND CHARACTER PL X4,PCM1 IF INCORRECT THIRD CHARACTER RJ STL SEARCH TABLE FOR LID SA4 SLAA CHECK FOR DELETE RJ POP GET NEXT PARAMETER SX2 X1-1R= SB7 MSIC * INCORRECT COMMAND.* ZR X2,SLA1 IF *=* SEPARATOR BX2 X6-X4 SX6 A0 NZ X2,PCM1 IF NOT *=* AND NOT *DELETE* SB7 MSNF * LID NOT FOUND.* NZ X0,PCM1 IF DELETE AND LID NOT FOUND SX7 40001B SET FUNCTION CODE AND PID COUNT ERRNZ DLDF-4 ADJUST VALUE IF CHANGED LX6 24 POSITION LID SX5 X1 SAVE SEPARATOR RJ SET DELETE LID SX1 X5 RESTORE SEPARATOR SB7 MSND * LID NOT DELETED.* SX7 B1 NZ X4,PCM1 IF ERROR EQ SLA9 SET CHANGED FLAG SLA1 SX2 2RLA CHECK FOR *LA* LX6 12 BX2 X6-X2 NZ X2,PCM1 IF NOT *LA* RJ SLF SET LID FLAGS NZ B7,PCM1 IF ERROR ZR B3,SLA4 IF NO *S* OR *B* SPECIFIED SA4 PARB+2 PID ENTRY SA4 X4 LX4 18 CHECK HOST/LINKED STATUS GT B3,B1,SLA4 IF *S* NG X4,SLA4 IF HOST PID SLA2 SB7 MSEA * ERROR IN ATTRIBUTE.* EQ PCM1 PROCESS ERROR SLA4 ZR B4,SLA5 IF *V* NOT SPECIFIED LE B3,B1,SLA2 IF *S* NOT SPECIFIED SLA5 SX7 B1+ ZR X0,SLA7 IF ALTERING LID NZ B2,SLA6 IF *D* OR *E* SPECIFIED LX7 23 BX6 X6+X7 DEFAULT FOR ADDING LID IS ENABLE SLA6 SX7 30001B ADD LID ERRNZ ALDF-3 ADJUST VALUE IF CHANGED SX5 A0 COMBINE LID AND ATTRIBUTES LX5 24 BX6 X5+X6 SX5 X1 SAVE SEPARATOR RJ SET SX1 X5 RESTORE SEPARATOR SB7 MSNS * NO SPACE AVAILABLE.* SX7 B1 NZ X4,PCM1 IF ERROR EQ SLA9 SET CHANGED FLAG SLA7 NZ B2,SLA8 IF *D* OR *E* SPECIFIED SA4 A5 GET LID WORD LX4 24 CHECK PRESENT STATUS PL X4,SLA8 IF DISABLED LX7 23 BX6 X6+X7 SLA8 SX7 50001B ALTER LID ERRNZ SLTF-5 ADJUST VALUE IF CHANGED SX5 A0 COMBINE LID AND ATTRIBUTES LX5 24 BX6 X5+X6 SX5 X1 SAVE SEPARATOR RJ SET SX1 X5+ RESTORE SEPARATOR SB7 MSNA * LID NOT ALTERED.* SX7 B1+ NZ X4,PCM1 IF ERROR SLA9 SA7 CHDF SET LID TABLE CHANGED FLAG SX4 X1-1R. CHECK FOR MORE COMMAND SB7 MSCP * COMMAND PROCESSED.* ZR X1,PCM1 IF NO MORE COMMAND ZR X4,PCM1 IF NO MORE COMMAND EQ PCM5 CONTINUE PROCESSING COMMAND SLAA VFD 60/6LDELETE SLF SPACE 4,20 ** SLF - SET LID FLAGS. * * EXIT (B2) = 1, IF *D* SPECIFIED. * = 2, IF *E* SPECIFIED. * (B3) = 1, IF *B* SPECIFIED. * = 2, IF *S* SPECIFIED. * (B4) = 1, IF *V* SPECIFIED. * (B5) = 1, IF *N* SPECIFIED. * (B7) = ADDRESS OF RESPONSE. * = 0, IF NO ERROR. * (X6) = ATTRIBUTE MASK. * (X1) = SEPARATOR. * * USES X - 2, 3, 4, 5, 6, 7. * B - 2, 3, 4, 5, 7. * * CALLS POP. * * NOTE ATTRIBUTES *D* AND *E* CANNOT BE SPECIFIED TOGETHER. * ATTRIBUTES *S* AND *B* CANNOT BE SPECIFIED TOGETHER. SLF SUBR ENTRY/EXIT MX4 -6 RJ POP GET NEXT PARAMETER SB2 B0 CLEAR FLAGS SB3 B0 SB4 B0 SB5 B0 SB7 B0 CLEAR ERROR RESPONSE SX5 B0 CLEAR ATTRIBUTE MASK ZR X6,SLF8 IF NO CHARACTERS SLF1 LX6 6 SHIFT CHARACTER BX3 -X4*X6 ZR X3,SLF8 IF NO MORE CHARACTERS SX2 X3-1RE ZR X2,SLF3 IF *E* SX7 X3-1RD ZR X7,SLF3 IF *D* SX2 X3-1RS ZR X2,SLF4 IF *S* SX7 X3-1RB ZR X7,SLF4 IF *B* SX2 X3-1RV ZR X2,SLF6 IF *V* SX2 X3-1RN ZR X2,SLF7 IF *N* SB7 MSIA * INCORRECT ATTTRIBUTE.* EQ PCM1 PROCESS ERROR SLF2 SB7 MSEA * ERROR IN ATTRIBUTE.* EQ PCM1 PROCESS ERROR SLF3 NZ B2,SLF2 IF SPECIFIED TWICE OR *E* AND *D* SB2 1 NZ X2,SLF1 IF NOT *E* SB2 2 SX5 X5+20B EQ SLF1 PROCESS NEXT CHARACTER SLF4 NZ B3,SLF2 IF SPECIFIED TWICE OR *S* AND *B* SB3 1 NZ X2,SLF5 IF NOT *S* SB3 2 SX5 X5+10B EQ SLF1 PROCESS NEXT CHARACTER SLF5 SX5 X5+2 EQ SLF1 PROCESS NEXT CHARACTER SLF6 NZ B4,SLF2 IF SPECIFIED TWICE SX5 X5+4 SB4 B1+ EQ SLF1 PROCESS NEXT CHARACTER SLF7 NZ B5,SLF2 IF SPECIFIED TWICE SX5 X5+1 SB5 B1+ EQ SLF1 PROCESS NEXT CHARACTER SLF8 SX6 X5 SET ATTRIBUTE MASK LX6 19 POSITION ATTRIBUTE MASK EQ SLFX RETURN SMF SPACE 4,15 ** SMF - SET MAINFRAME TYPE. * * EXIT TO *PCM1* IF NO MORE COMMAND TO PROCESS OR ERROR. * TO *PCM5* IF NO ERROR AND MORE COMMAND TO PROCESS. * (X1) = SEPARATOR, IF MORE COMMAND TO PROCESS. * (CHDF) = 1, IF THE LID TABLE CHANGED. * (B7) = ADDRESS OF RESPONSE. * * USES X - 1, 4, 5, 6, 7. * A - 7. * B - 7. * * CALLS POP, SET, SFN. SMF RJ POP GET NEXT PARAMETER SX5 X1 SAVE SEPARATOR SB7 MSIM * INCORRECT MAINFRAME.* SX7 X6 ZR X6,PCM1 IF NO MAINFRAME NZ X7,PCM1 IF MORE THAN SEVEN CHARACTERS MX4 42 SPACE FILL MAINFRAME DESCRIPTOR BX1 X6 RJ SFN BX6 X4*X6 SX7 20001B SET FUNCTION CODE AND PID COUNT ERRNZ SMFF-2 ADJUST VALUE IF CHANGED LX6 -18 POSITION MAINFRAME DESCRIPTOR RJ SET SET MAINFRAME SB7 MSMF * MAINFRAME NOT SET.* NZ X4,PCM1 IF ERROR SB7 MSCP * COMMAND PROCESSED.* SX7 B1 SET LID TABLE CHANGED FLAG SX1 X5 RESTORE SEPARATOR SA7 CHDF SX4 X1-1R. CHECK FOR MORE COMMAND ZR X1,PCM1 IF NO MORE COMMAND ZR X4,PCM1 IF NO MORE COMMAND EQ PCM5 CONTINUE PROCESSING COMMAND SNS SPACE 4,15 ** SNS - SET NETWORK STATUS. * * EXIT TO *PCM1* IF NO MORE COMMAND TO PROCESS OR ERROR. * TO *PCM5* IF NO ERROR AND MORE COMMAND TO PROCESS. * (X1) = SEPARATOR, IF MORE COMMAND TO PROCESS. * (CHDF) = 1, IF THE LID TABLE CHANGED. * (B7) = ADDRESS OF RESPONSE. * * USES X - 0, 1, 4, 5, 6, 7. * A - 7. * B - 7. * * CALLS POP, SET. SNS MX0 -42 RJ POP GET NEXT PARAMETER SB7 MSIP * INCORRECT SEPARATOR.* SX4 X1-1R, NZ X4,PCM1 IF SEPARATOR NOT *,* SB7 MSIN * INCORRECT NETWORK.* ZR X6,PCM1 IF NO NETWORK BX7 -X0*X6 NZ X7,PCM1 IF MORE THAN THREE CHARACTERS LX6 18 POSITION NETWORK SX4 X6-3RNAM SX0 NANS ZR X4,SNS1 IF *NAM* SX4 X6-3RRHF SX0 RHNS ZR X4,SNS1 IF *RHF* SX4 X6-3RSSF SX0 SSNS ZR X4,SNS1 IF *SSF* SX4 X6-3RALL SX0 NANS+RHNS+SSNS ZR X4,SNS1 IF *ALL* EQ PCM1 PROCESS ERROR SNS1 SX4 2RNA CHECK FOR REST OF COMMAND RJ POP GET NEXT PARAMETER SB7 MSIP * INCORRECT SEPARATOR.* SX7 X1-1R= NZ X7,PCM1 IF SEPARATOR NOT *=* LX6 12 SB7 MSIC * INCORRECT COMMAND.* BX4 X6-X4 NZ X4,PCM1 IF PARAMETER NOT *NA* RJ POP GET NEXT PARAMETER MX4 -54 CHECK FOR ONLY ONE CHARACTER BX5 -X4*X6 SB7 MSIS * INCORRECT STATUS.* NZ X5,PCM1 IF MORE THAN ONE CHARACTER BX4 X4*X6 SX5 X1 SAVE SEPARATOR SX7 10001B SET FUNCTION CODE AND PID COUNT ERRNZ SNSF-1 ADJUST VALUE IF CHANGED SX6 B1+ SET ENABLE NETWORK STATUS LX4 6 RIGHT JUSTIFY CHARACTER LX6 12 SX1 X4-1RE ZR X1,SNS2 IF ENABLED SX6 X6+10B SET DISABLE NETWORK STATUS SX1 X4-1RD NZ X1,PCM1 IF NOT DISABLED SNS2 LX0 -12 POSITION NETWORK IDENTIFIER BX7 X7+X0 ADD IN NETWORK IDENTIFIER RJ SET SET NETWORK NZ X4,PCM1 IF ERROR SB7 MSCP * COMMAND PROCESSED.* SX7 B1 LID TABLE CHANGED SX1 X5 RESTORE SEPARATOR SA7 CHDF SX4 X1-1R. CHECK FOR MORE COMMAND ZR X1,PCM1 IF NO MORE COMMAND ZR X4,PCM1 IF NO MORE COMMAND EQ PCM5 CONTINUE PROCESSING COMMAND SPA SPACE 4,20 ** SPA - SET PID ATTRIBUTE(S). * * EXIT TO *PCM1* IF NO MORE COMMAND TO PROCESS OR ERROR. * TO *PCM5* IF NO ERROR AND MORE COMMAND TO PROCESS. * (X1) = SEPARATOR, IF MORE COMMAND TO PROCESS. * (CHDF) = 1, IF THE LID TABLE CHANGED. * (B7) = ADDRESS OF RESPONSE. * * USES X - ALL. * A - 1, 7. * B - 2, 3, 4, 5, 7. * * CALLS POP, SET. * * NOTE ATTRIBUTES *D* AND *E* CANNOT BE SPECIFIED TOGETHER * AND IF NEITHER IS SPECIFIED THE PRESENT STATUS WILL * BE USED. *V* MUST BE SPECIFIED ON THE HOST PID. SPA RJ POP GET NEXT PARAMETER SX5 X1 SAVE SEPARATOR BX3 X6 SAVE CHARACTERS SB2 B0+ CLEAR FLAGS SB3 B0+ SB4 B0 SB5 B0 SX6 B0 CLEAR ATTRIBUTE MASK ZR X3,SPA7 IF NO CHARACTERS MX0 -6 SET CHARACTER MASK SPA1 LX3 6 SHIFT CHARACTER BX1 -X0*X3 ZR X1,SPA7 IF NO MORE CHARACTERS SX2 X1-1RE ZR X2,SPA3 IF *E* SX2 X1-1RD ZR X2,SPA4 IF *D* SX2 X1-1RV ZR X2,SPA5 IF *V* SX2 X1-1RN ZR X2,SPA6 IF *N* SB7 MSIA * INCORRECT ATTTRIBUTE.* EQ PCM1 PROCESS ERROR SPA2 SB7 MSEA * ERROR IN ATTRIBUTE.* EQ PCM1 PROCESS ERROR SPA3 NZ B2,SPA2 IF SPECIFIED TWICE SX6 X6+4 SB2 B1+ EQ SPA1 PROCESS NEXT CHARACTER SPA4 NZ B3,SPA2 IF SPECIFIED TWICE SB3 B1+ EQ SPA1 PROCESS NEXT CHARACTER SPA5 NZ B4,SPA2 IF SPECIFIED TWICE SX6 X6+2 SB4 B1+ EQ SPA1 PROCESS NEXT CHARACTER SPA6 NZ B5,SPA2 IF SPECIFIED TWICE SX6 X6+1 SB5 B1+ EQ SPA1 PROCESS NEXT CHARACTER SPA7 SA1 PARB+2 GET PID ATTRIBUTES SA1 X1 LX1 59-41 NZ B4,SPA8 IF *V* SPECIFIED NG X1,SPA2 IF *V* NOT SPECIFIED ON HOST SPA8 SX7 B1 SET FUNCTION CODE AND PID COUNT ERRNZ SPAF-0 ADJUST VALUE IF CHANGED SB4 B2+B3 CHECK FOR *D* OR *E* GT B4,B1,SPA2 IF BOTH SPECIFIED NZ B4,SPA9 IF EITHER SPECIFIED LX1 59-40-59+41 SB7 MSNC * PID NOT ALTERED.* PL X1,SPA9 IF DISABLED SX6 X6+4 SET ENABLED BIT SPA9 LX6 9 POSITION ATTRIBUTES RJ SET NZ X4,PCM1 IF ERROR SB7 MSCP * COMMAND PROCESSED.* SX7 B1 SET LID TABLE CHANGED FLAG SX1 X5 RESTORE SEPARATOR SA7 CHDF SX4 X1-1R. CHECK FOR MORE COMMAND ZR X1,PCM1 IF NO MORE COMMAND ZR X4,PCM1 IF NO MORE COMMAND EQ PCM5 CONTINUE PROCESSING COMMAND STL SPACE 4,15 ** STL - SEARCH TABLE FOR LID. * * ENTRY (X6) = LID, LEFT JUSTIFIED. * (X2) = 42 BIT MASK, LEFT JUSTIFIED. * (PARB+2) = PID ADDRESS (IN *LIDI*) * * * EXIT (X0) = ZERO, IF LID FOUND IN TABLE. * = NONZERO, IF LID NOT FOUND. * (A5) = ADDRESS OF LID ENTRY, IF FOUND. * (A0) = LID. * * USES X - 0, 3, 4, 5, 6. * A - 0, 5. STL SUBR ENTRY/EXIT SA5 PARB+2 GET PID ADDRESS SA5 X5+B1 MX3 18 LX6 18 SAVE LID SA0 X6+ LX6 -18 STL1 BX5 X3*X5 CHECK FOR MATCH BX0 X6-X5 ZR X0,STLX IF MATCH STL2 SA5 A5+B1 GET NEXT ENTRY ZR X5,STLX IF END OF TABLE BX4 -X2*X5 CHECK FOR PID NZ X4,STLX IF PID EQ STL1 CHECK NEXT LID STP SPACE 4,10 ** STP - SEARCH TABLE FOR PID. * * ENTRY (X6) = PID, LEFT JUSTIFIED. * * EXIT (X2) = ZERO, IF PID FOUND IN TABLE. * = NONZERO, IF PID NOT FOUND. * (A5) = ADDRESS OF PID ENTRY, IF FOUND. * * USES X - 0, 2, 3, 4, 5. * A - 5. STP SUBR ENTRY/EXIT SA5 LIDI+1 MX0 -18 MX3 18 STP1 BX5 X3*X5 CHECK FOR MATCH BX2 X6-X5 ZR X2,STPX IF MATCH STP2 SA5 A5+B1 GET NEXT ENTRY ZR X5,STPX IF END OF TABLE BX4 -X0*X5 CHECK FOR PID NZ X4,STP1 IF PID EQ STP2 CHECK NEXT ENTRY THD SPACE 4,15 ** THD - TOGGLE TO HELP DISPLAY. * * EXIT TO *PCM1* IF *L* DISPLAY NOT ACTIVE. * TO *PCM3* WITH HELP FLAG SET. * (B7) = 0, IF DISPLAY ACTIVE. * * USES X - 5, 6. * A - 5, 6. * B - 7. THD SA5 LDSF CHECK IF *L* DISPLAY ACTIVE SB7 MSIC * INCORRECT COMMAND.* ZR X5,PCM1 IF INCORRECT COMMAND FOR INPUT FILE SX6 B1 SET HELP DISPLAY REQUESTED SB7 B0 CLEAR ERROR MESSAGE SA6 HLPF EQ PCM3 PROCESS NEXT COMMAND TLD SPACE 4,15 ** TLD - TOGGLE TO LID DISPLAY. * * EXIT TO *PCM1* IF *L* DISPLAY NOT ACTIVE. * TO *PCM3* WITH HELP FLAG CLEARED. * (B7) = 0, IF DISPLAY ACTIVE. * * USES X - 5, 6. * A - 5, 6. * B - 7. TLD SA5 LDSF CHECK IF *L* DISPLAY ACTIVE SB7 MSIC * INCORRECT COMMAND.* ZR X5,PCM1 IF INCORRECT COMMAND FOR INPUT FILE SX6 B0 CLEAR HELP DISPLAY REQUESTED SB7 B0 CLEAR ERROR MESSAGE SA6 HLPF EQ PCM3 PROCESS NEXT COMMAND SPACE 4,10 * COMMON DECKS. *CALL COMCCIO *CALL COMCCOD *CALL COMCCPM *CALL COMCFLD *CALL COMCLFM *CALL COMCPOP *CALL COMCRDS *CALL COMCRDW *CALL COMCSFM *CALL COMCSFN *CALL COMCSYS *CALL COMCUSB *CALL COMCWOD *CALL COMCWTC *CALL COMCWTS *CALL COMCWTH *CALL COMCWTO *CALL COMCWTW *CALL COMCZTB TITLE BUFFERS. SPACE 4,10 ** BUFFERS. USE BUFFERS LIDI EQU * LID TABLE BUFFER LIDIE EQU LIDI+LIIL LBFO EQU LIDIE OUTPUT *L* DISPLAY BUFFER LBFOE EQU LBFO+LBOL LBFI EQU LBFOE INPUT *L* DISPLAY BUFFER LBFIE EQU LBFI+LBIL INPU EQU LBFIE INPUT BUFFER INPUE EQU INPU+INPL MFTB EQU INPUE MAINFRAME DESCRIPTOR BUFFER MFTBE EQU MFTB+MFTL OUTP EQU MFTBE OUTPUT BUFFER OUTPE EQU OUTP+OUTL TITLE PRESET. PRS SPACE 4,25 ** PRS - PRESET. * * EXIT SYSTEM ORIGIN CHECKED FOR, ABORT IF JOB IS NOT * SYSTEM ORIGIN. * INPUT AND OUTPUT FILES CHECKED IF *L* DISPLAY * NOT ACTIVE, ABORT IF NOT SPECIFED. * FILE NAME CONFLICT AND INPUT FILE EXISTENCE * CHECKED IF *L* DISPLAY NOT ACTIVE, ABORT IF ERROR. * *L* DISPLAY INPUT/OUTPUT BUFFER FIRST WORDS SET, * IF *L* DISPLAY IS ACTIVE. * (LDSF) = 1 IF *L* DISPLAY IS ACTIVE. * = 0 IF SPECIFIED FILES ARE ACTIVE. * (LCNT) = LINE COUNT FOR LISTINGS. * (NMLL) = SET FOR CONSOLE IN USE. * (CMRO) = SET FOR CONSOLE IN USE. * (CHDF) = 1. * (IND1) = 1. * (HLPF) = 0. * * CALLS ARG. * * MACROS ABORT, FILINFO, GETJN, GETPP, MESSAGE, SETFS, * SYSTEM, WRITE. PRS SUBR ENTRY/EXIT SB1 1 SA1 JOPR CHECK FOR SYSTEM ORIGIN MX0 -12 LX1 36 BX1 -X0*X1 MX5 42 SX1 X1-SYOT ZR X1,PRS1 IF SYSTEM ORIGIN MESSAGE ERIU * INCORRECT USER ACCESS.* ABORT ABORT NON SYSTEM ORIGIN JOB PRS1 GETPP BUFF,PAGC,PDFC GET LINES PER PAGE AND PRINT DENSITY SA1 PAGC SX6 X1-6 ENSURE SPACE FOR HEADERS SX7 B1+ SA6 LCNT SA7 CHDF SET LID TABLE CHANGED FLAG SYSTEM RSB,R,JSNA GET POINTER TO *L* DISPLAY WORD SA1 JSNB LX1 6 MX0 -18 LX0 18 BX1 -X0*X1 SA2 A1+B1 BX2 X0*X2 BX6 X2+X1 SA6 A2 SYSTEM RSB,R,JSNC GET JSN OF JOB USING *L* DISPLAY GETJN JSNB COMPARE TO JSN OF RUNNING JOB SA1 JSNB SA2 JSND BX1 X1-X2 MX0 24 BX1 X0*X1 SX6 B0 ZR X1,PRS6 IF *L* DISPLAY ACTIVE SA6 LDSP CLEAR *L* DISPLAY ACTIVE FLAG SA1 ACTR CHECK ARGUMENT COUNT SB4 X1 R= A4,ARGR PROCESS ARGUMENTS GT B4,B1,PRS3 IF AT LEAST TWO ARGUMENTS PRS2 MESSAGE ERFS * NO INPUT/OUTPUT FILE SPECIFIED.* ABORT FATAL ERROR PRS3 SB5 TARG RJ ARG NZ X1,PRS2 IF ARGUMENT ERRORS SA1 TARG SA2 TARG+1 PL X1,PRS2 IF NO INPUT FILE EQUIVALENCED PL X2,PRS2 IF NO OUTPUT FILE EQUIVALENCED SA1 IF SA2 LF MX0 42 CHECK FOR FILE CONFLICT BX6 X0*X2 BX7 X0*X1 BX1 X6-X7 NZ X1,PRS4 IF NO CONFLICT MESSAGE ERFL * FILE NAME CONFLICT.* ABORT FATAL ERROR PRS4 SA1 FIBK CHECK FOR INPUT FILE EXISTENCE BX1 -X0*X1 BX7 X7+X1 SA7 FIBK FILINFO FIBK SA1 FIBK+1 AX1 48 NZ X1,PRS5 IF INPUT FILE DOES EXIST MESSAGE ERNF * INPUT FILE NOT FOUND.* ABORT FATAL ERROR PRS5 SETFS OUTPUT,0 PRESERVE OUTPUT FILE WRITE OUTPUT,* PRESET WRITE FUNCTION EQ PRSX RETURN PRS6 SA1 LDIW STORE *L* DISPLAY BUFFER FIRST WORDS SA2 LDOW BX6 X1 BX7 X2 SA6 LBFI SA7 LBFO SX6 B1 SX7 B0 SA6 LDSF SET *L* DISPLAY ACTIVE FLAG SA6 IND1 SET INDEX INTO *LIDI* SA7 HLPF CLEAR HELP DISPLAY REQUESTED EQ PRSX RETURN ERFL DATA C* FILE NAME CONFLICT.* ERFS DATA C* NO INPUT/OUTPUT FILE SPECIFIED.* ERIU DATA C* INCORRECT USER ACCESS.* ERNF DATA C* INPUT FILE NOT FOUND.* FIBK VFD 42/0,6/FIBKL,12/1 *FILINFO* PARAMETER BLOCK BSS 4 FIBKL EQU *-FIBK JSNA VFD 12/0,12/1,18/LDSP,18/JSNB JSNB CON -1 JSNC VFD 12/0,12/1,18/0,18/JSND JSND CON -1 LDIW VFD 12/LBIL,48/0 *L*DISPLAY INPUT BUFFER FIRST WORD LDOW VFD 12/LBOL,48/0 *L*DISPLAY OUTPUT BUFFER FIRST WORD TARG BSS 0 ARGUMENT LIST FOR *COMCARG* I ARG IF,IF,400B INPUT FILE NAME L ARG LF,LF,400B OUTPUT FILE NAME ARG SPACE 4 * PRESET COMMON DECKS. *CALL COMCARG SPACE 4,10 LIDOUE EQU * END OF PROGRAM .RFL= MAX LIDOUE,OUTPE RFL= EQU .RFL= SPACE 4,10 END