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