IDENT VALNET,FET,VALNET ABS SYSCOM B1 SST *COMMENT VALNET - VALIDATE TERMINAL DESCRIPTION FILE. COMMENT COPYRIGHT CONTROL DATA SYSTEMS INC. 1992. TITLE VALNET - VALIDATE TERMINAL NETWORK DESCRIPTION FILE. VALNET SPACE 4 *** VALNET - VALIDATE TERMINAL NETWORK DESCRIPTION FILE. * J.C. BOHNHOFF. 72/09/09. VALNET SPACE 4 *** VALNET READS A TERMINAL NETWORK DESCRIPTION WRITTEN * AS A SERIES OF DIRECTIVES DEFINED BY THE COMMON DECK * *COMCRTN*. ERRORS IN NETWORK DESCRIPTION ARE DIAGNOSED AND * ERROR MESSAGES ARE PLACED ON A LIST FILE. IF NO ERRORS ARE * ENCOUNTERED, NO LISTING IS PRODUCED. SPACE 4 *** CONTROL CARD CALL. * * VALNET(P1,P2,P3) * * WHERE PI MAY BE - * * P TERMINAL NETWORK DESCRIPTION FILE NAME. * P FILE *COMPILE*. * P=FN FILE *FN*. * ABSENT FILE *NETWXX*. * XX = MACHINE ID. * * L FILE TO RECEIVE LIST OF ERRORS. * L FILE *LIST* * L=FN FILE *FN*. * L=0 NO LIST. * ABSENT FILE *OUTPUT*. * * NR DO NOT REWIND DESCRIPTION FILE BEFORE READING. * NR DO NOT REWIND. * ABSENT REWIND FIRST. SPACE 4 *** LISTABLE OUTPUT. * EACH ERROR ENCOUNTERED PRODUCES 2 LINES OF LISTING. THE * LINES CONSIST OF - * 1) THE INPUT LINE CONTAINING THE ERROR. * SYNTACTICAL ERRORS CAUSE THE LINE CONTAINING THE * ERROR TO BE LISTED. HOWEVER, FOR LOGICAL ERRORS * (E.G. NOT DEFINING MULTIPLEXOR CHANNEL OR DEFINING * DUPLICATE POLLING CODES) THE CARD CURRENTLY IN THE * BUFFER IS LISTED SINCE THIS TYPE OF ERROR IS NOT * DETECTED UNTIL IT IS CERTAIN THAT THE LAST STATEMENT * IS COMPLETE. THE CARD LISTED IN THIS CASE IS THE * CARD AFTER THE BAD CARD IF THERE IS ONLY ONE * DESCRIPTION PER CARD. ERRORS THAT PERTAIN TO * DUPLICATE POLLING CODES, POLLED/NON-POLLED TERMINALS * ON THE SAME LINE, AND MORE THAN ONE NON-POLLED * TERMINAL ON A LINE CONTAIN A CARD NUMBER OF A * PREVIOUSLY DEFINED TERMINAL THAT CAUSED THE ERROR * TO BE DETECTED. IF ONLY ONE DESCRIPTION IS GIVEN ON * EACH CARD, THIS CARD NUMBER WILL BE CORRECT, * OTHERWISE IT WILL BE ONE LESS THAN THE CORRECT * NUMBER. * 2) CARD NUMBER OF OFFENDING CARD. * THIS IS SUBJECT TO THE SAME EXCEPTIONS AS NOTED * ABOVE IN ITEM 1. * 3) A DIAGNOSTIC MESSAGE EXPLAINING THE ERROR. * * LIST LINES ARE FORMATTED FOR PRINTING ON A 72 COLUMN DEVICE * EXCEPT FOR THOSE INPUT LINES THAT EXCEED THIS LENGTH. SPACE 4 *** DAYFILE MESSAGES ISSUED. * * * NO DESCRIPTIONS FOUND.* * NO MUX/TERMINAL DESCRIPTIONS WERE FOUND ON THE * DESCRIPTION RECORD. * * FILE NAME CONFLICT.* * THE *P* FILE NAME IS THE SAME AS THE *L* FILE NAME. * * TERMINAL DESCRIPTION ERRORS.* * ERRORS WERE FOUND IN THE TERMINAL DESCRIPTIONS. * CONSULT LISTING FOR DIAGNOSTIC MESSAGES. * * VALNET ARGUMENT ERROR.* * THE VALNET CONTROL CARD CONTAINS UNKNOWN OR * INCORRECTLY USED ARGUMENTS. * * VALNET COMPLETE.* * ALL DESCRIPTIONS HAVE BEEN VALIDATED AS CORRECT. * * TABLE OVERFLOW.* * NOT ENOUGH STORAGE WAS AVAILABLE TO HOLD ALL TERMINAL * DESCRIPTION TABLE ENTRIES. RERUN WITH GREATER FIELD * LENGTH. TITLE SYMBOL DEFINITIONS. BUFFERS SPACE 4,10 * BUFFER SIZES. PBUFL EQU 1001B DESCRIPTION FILE OBUFL EQU 401B LIST FILE LIST X *CALL,COMSNET LIST -X TITLE MACRO DEFINITIONS. * SYSTEM MACRO DEFINITIONS. *CALL COMCMAC *CALL COMCCMD *CALL,COMCMTM TITLE FET AND TABLE DEFINITIONS. * FET DEFINITIONS. ORG 101B FET BSS 0 P BSS 0 DESCRIPTION FILE NETWXX FILEC PBUF,PBUFL,(FET=8) O BSS 0 LIST FILE OUTPUT FILEC OBUF,OBUFL,(FET=8) SPACE 4 ** MANAGED TABLE DEFINITION. ** TTED - TABLE OF TERMINAL DESCRIPTIONS. * TWO WORDS PER ENTRY IN FORMAT - * *T TTED 6/ CH,3/EQ,12/ PN,12/ ,24/ PC,3/IS *T 60/ CARD * * WHERE - * CH= MUX CHANNEL. * EQ= MUX EQUIPMENT. * PN= PORT NUMBER. * PC= POLLING CODE. * IS= INITIAL ON/OFF STATUS. * CARD= CARD NUMBER. TTED TABLE 2 TITLE MAIN PROGRAM. * MAIN PROGRAM. VALNET RJ PRS PRESET PROGRAM RJ RTN READ TERMINAL DESCRIPTIONS SX2 =C* NO DESCRIPTIONS FOUND.* ZR X4,VAL1 IF NO DESCRIPTIONS PROCESSED SX2 =C* VALNET COMPLETE.* ZR X1,VAL2 IF NO ERRORS RJ CDD CONVERT ERROR COUNT SA6 VALC STORE ERROR COUNT RJ CEP CHECK END OF PAGE WRITEW O,VALA,B1 DOUBLE SPACE WRITEW O,VALB,VALBL WRITE ERROR COUNT WRITER O END OUTPUT RECORD SX2 =C* TERMINAL DESCRIPTION ERRORS.* VAL1 MESSAGE X2 ABORT VAL2 MESSAGE X2 ISSUE COMPLETION MESSAGE ENDRUN LN CON LINP CURRENT LINE NUMBER ON LIST PAGE PG CON 1 CURRENT LIST PAGE VALA DIS ,*0 * VALB DATA 10H // VALC CON 0 ERROR COUNT DATA 20H ERRORS ENCOUNTERED. CON 0 VALBL EQU *-VALB CEP TITLE SUBROUTINES. ** CEP - CHECK END OF LISTING PAGE. * * ENTRY NONE. * * EXIT NONE. * * USES B - 7. * A - 1,6. * X - 1,6,7. * * CALLS CDD,SYS=,WTW. CEP1 SA7 LN STORE UPDATED LINE COUNT CEP SUBR ENTRY/EXIT SA1 LN ADVANCE LINE COUNT SB7 X1-LINP CHECK END OF PAGE SX7 X1+3 NG B7,CEP1 IF NOT END OF PAGE SA1 PG CONVERT PAGE NUMBER RJ CDD SA1 CEPE MERGE *PAGE* BX6 X1-X6 SA6 CEPD CLOCK CEPC SET TIME WRITEW O,CEPA,CEPAL WRITE PAGE HEADER SA1 PG ADVANCE PAGE NUMBER SX7 4 RESET LINE COUNT SX6 X1+B1 SA6 A1 JP CEP1 CEPA DATA 10H1 DATA 30HTERMINAL DESCRIPTION ERRORS. CEPB CON 0 DATE CEPC CON 0 TIME CEPD CON 0 PAGE CON 0 DIS ,*0 * CEPAL EQU *-CEPA CEPE CON 5LPAGE &5L MEP SPACE 4 ** MEP - PARTIAL SEARCH OF MANAGED TABLE. * * ENTRY (X6)= ENTRY FOR SEARCH. * (X0)= MASK. * (X2)= SEARCH LIMIT. * (X7)= STARTING ENTRY ORDINAL FOR SEARCH. * (B7)= WORDS PER ENTRY. * (A0)= TABLE NUMBER. * * EXIT (X2)= ENTRY IF FOUND, ELSE ZERO. * (A2)= ADDRESS OF ENTRY. * * USES B - NONE. * A - 1,2,6. * X - 1,2,3,4,7. * * CALLS NONE. MEP1 BX4 X0*X2 SA1 A1+B7 READ NEXT ENTRY NO BX2 X6-X1 NZ X4,MEP1 LOOP TO MATCH SX4 A1-B7 CHECK ENTRY FOUND BX2 X4-X3 ZR X2,MEP2 IF NOT FOUND SA2 X4+ RETURN ENTRY MEP2 SA7 A6+ RESTORE (LWA+1) MEP PS ENTRY/EXIT SA1 FTAB+A0 SET SEARCH PARAMETERS IX7 X1+X7 IX3 X1+X2 SET SEARCH KEY IN LWA+1 SA2 X3 SAVE (LWA+1) SA6 X3 SA1 X7 READ FIRST ENTRY LX7 X2 BX2 X6-X1 EQ MEP1 RTN SPACE 4 ** RTN - READ TERMINAL DESCRIPTIONS. * * ENTRY NONE. * * EXIT (X1)= ERROR COUNT. * (X4)= 0 IF NO CARDS PROCESSED. * * USES B - 7. * A - 0,1,2,3,6,7. * X - 0,1,2,3,4,5,6,7. * * CALLS ATD,CEP,WTW,WTS,CDD,WTC,ADW,MEP. RTN12 SA1 RTNF RETURN ERROR COUNT RTN SUBR ENTRY/EXIT RTN1 SX5 P SET FET ADDRESS SA0 PTRN SET TABLE POINTER ADDRESS RJ ATD ASSEMBLE DESCRIPTION NZ X1,RTN10 IF ERROR * ENTER DESCRIPTION INTO TABLE. SA1 /COMCRTN/PN. PN,PL SA2 /COMCRTN/CH. CH SA3 /COMCRTN/EQ. EQ UX1,B7 X1 X1=PN,B7=PL UX2 X2 CH LX1 39-0 PN UX3 X3 EQ LX2 54-0 CH LX3 51-0 EQ BX6 X1+X2 PN+CH SA1 /COMCRTN/PC. PC BX7 X6+X3 (PN+CH)+EQ LX1 3-0 PC SA3 /COMCRTN/IS. IS BX6 X1+X3 PC+IS ADDWRD TTED,X6+X7 ENTER WORD 0 SA5 /COMCRTN/CC ENTER WORD 1 SB6 X3 SAVE POSITION OF FIRST PORT ENTRY BX0 X1 SAVE WORD 0 SX5 X5-1 SB5 X3 INITIALIZE LAST PORT POSITION ADDWRD TTED,X5 RTN2 ZR B7,RTN3 IF NO (MORE) PORTS SX1 B1 ADVANCE PORT NUMBER SB7 B7-B1 DECREMENT PORT COUNT LX1 39-0 IX0 X0+X1 ADDWRD TTED,X0 ENTER WORD 0 SB5 X3 UPDATE LAST PORT POSITION ADDWRD TTED,X5 ENTER WORD 1 JP RTN2 LOOP FOR ALL PORTS * CHECK DESCRIPTION. RTN3 SA0 TTED SET TABLE NUMBER SB7 C.TTED SET ENTRY SIZE BX7 X7-X7 SET SEARCH START SX5 B6-B1 SET SEARCH LIMIT AT FIRST PORT BX6 X0 MX0 -39 SET SEARCH MASK FOR CH,EQ,PN RTN4 SX2 X5 SET SEARCH LIMIT RJ MEP SEARCH TABLE NZ X2,RTN5 IF MATCH EQ B5,B6,RTN1 IF FIRST PORT CHECKED SA1 F.TTED CHECK NEXT PORT SX1 X1-1 SB5 B5-B7 DECREMENT PORT POSITION SA1 X1+B5 BX6 X1 JP RTN4 * CHECK DUPLICATE POLLING CODE. RTN5 SA4 /COMCRTN/PC. CHECK THIS TERMINAL POLLED ZR X4,RTN6 IF NOT POLLED SA1 RTNG BX7 X2-X6 BX7 X1*X7 NZ X7,RTN6 IF DIFFERENT POLLING CODE LX2 59-0 NG X2,RTN6 IF BOTH TERMINALS ARE OFF SA1 A2+B1 READ CARD NUMBER OF FIRST TERMINAL RJ CDD CONVERT SX6 1R &1R. INSERT PERIOD LX6 54-0 AX6 X6,B2 BX7 X4-X6 SA7 RTNI SX2 RTNH LIST ERROR JP RTN11 * CHECK POLLED AND NON-POLLED ON SAME LINE. RTN6 MX7 -24 AX2 3 BX7 -X7*X2 BX2 X4+X7 ZR X2,RTN8 IF BOTH TERMINALS ARE NON-POLLED ZR X7,RTN7 IF FIRST TERMINAL NON-POLLED NZ X4,RTN9 IF BOTH TERMINALS ARE POLLED RTN7 SA1 A2+1 READ CARD NUMBER OF FIRST TERMINAL RJ CDD CONVERT SX6 1R &1R. INSERT PERIOD LX6 54-0 AX6 X6,B2 BX7 X4-X6 LX7 -6 SA7 RTNK SX2 RTNJ LIST ERROR JP RTN11 * PROCESS MULTIPLE NON-POLLED TERMINALS ON SAME LINE. RTN8 SA3 /COMCRTN/TT. SA2 A2+B1 READ CARD NUMBER OF FIRST TERMINAL LX3 59-11 NG X3,RTN9 IF TRANSACTION TERMINAL RJ CDD CONVERT SX6 1R &1R. INSERT PERIOD LX6 54-0 AX6 X6,B2 BX7 X4-X6 SA7 RTNM SX2 RTNL LIST ERROR JP RTN11 * ADVANCE SEARCH. RTN9 SA1 F.TTED SET SEARCH START AFTER CURRENT ENTRY SX7 A2+B7 IX7 X7-X1 JP RTN4 * LIST ERROR. RTN10 ZR X4,RTNX IF NO CARDS PROCESSED - RETURN NG X4,RTN12 IF EOR/EOF RTN11 SX5 X2 SAVE ERROR MESSAGE ADDRESS RJ CEP CHECK END OF PAGE WRITEW O,RTNA,B1 WRITE LINE PREFIX WRITES O,/COMCRTN/CD,90 WRITE INPUT CARD SA1 /COMCRTN/CC CONVERT CARD NUMBER RJ CDD SA1 RTNB INSERT *CARD* BX6 X1-X6 SA6 RTND WRITEW O,RTNC,B1+B1 WRITE ERROR PREFIX WRITEC O,X5 WRITE ERROR MESSAGE WRITEW O,RTNE,B1 SPACE ONE LINE SA1 RTNF ADVANCE ERROR COUNT SX6 X1+B1 SA6 A1 JP RTN1 CONTINUE RTNA DATA 10H RTNB CON 5LCARD &5L RTNC DATA 10H RTND CON 0 RTNE DIS ,* * RTNF CON 0 RTNG VFD 6/0,3/0,12/0,12/0,24/-0,3/-0 RTNH DATA 40H POLLING CODE DUPLICATES THAT OF CARD RTNI CON 0,0 RTNJ DATA 40H POLLED TERMINAL ON SAME LINE AS NON-POL DATA 20HLED TERMINAL ON CARD RTNK CON 0,0 RTNL DATA 50H NON-POLLED TERMINAL ON SAME LINE AS THAT OF CARD RTNM CON 0,0 TOV SPACE 4 ** TOV - PROCESS TABLE OVERFLOW. * * ENTRY NONE. * * EXIT NONE. * * USES NONE. * * CALLS SYS=. TOV BSS 0 ENTRY MESSAGE (=C* TABLE OVERFLOW.*) ABORT SYS SPACE 4 * SYSTEM COMMON DECKS. LIST X *CALL COMCRTN LIST -X *CALL COMCSYS *CALL COMCCIO *CALL COMCRDW *CALL COMCRDS *CALL COMCWTS *CALL COMCWTW *CALL COMCWTC *CALL COMCDXB *CALL COMCCDD *CALL,COMCMTP *CALL,COMCMVE TITLE BUFFERS * BUFFERS. USE BUFFERS PTRN VFD 30/1200,30/TTRN TERMINAL NAME TABLE POINTER BUFFERS BSS 0 PBUF BSS PBUFL DESCRIPTION FILE OBUF BSS OBUFL LIST FILE TTRN BSS 1200 KTS TERMINAL NAME TABLE MEML BSS 5 LOW TABLE LIMIT USE * PRS TITLE PRESET. ** PRS - PRESET VALNET. * * ENTRY NONE. * * EXIT NONE. * * USES B - 4,5. * A - 1,2,4,7. * X - 1,2,4,6,7. * * CALLS ARG,SYS=. ORG BUFFERS PRS SUBR ENTRY/EXIT SB1 1 SET CONSTANT 1 MACHID PRSB GENERATE DEFAULT NETWORK FILE NAME SA1 PRSB SA2 P MX0 12 LX1 24 LX0 -24 BX6 -X0*X2 BX6 X6+X1 SA6 A2 SA1 ACTR PROCESS CONTROL CARD ARGUMENTS SB4 X1+ SA4 ARGR SB5 TARG RJ ARG SX2 =C* VALNET ARGUMENT ERROR.* ZR X1,PRS2 IF NO ERROR PRS1 MESSAGE X2 ISSUE DAYFILE MESSAGE ABORT PRS2 SA1 P CHECK FILE NAME CONFLICT SA2 O MX0 42 BX6 X1-X2 SX2 =C* FILE NAME CONFLICT.* BX7 X0*X6 ZR X7,PRS1 IF P=L SX6 A0 SET HIGH TABLE LIMIT SA6 F.TEND DATE CEPB GET DATE SA1 PRSA SET FET POINTER BX6 X1 SA6 B1+B1 SA1 NR CHECK REWIND NEEDED NZ X1,PRSX RETURN - IF NO REWIND REWIND P,R REWIND DESCRIPTION FILE JP PRSX RETURN PRSA CON 0LOUTPUT+O PRSB BSSZ 1 MACHINE ID RECEIVING AREA TARG SPACE 4 * TARG - CONTROL CARD ARGUMENT TABLE. TARG BSS 0 P ARG PAS,P L ARG LAS,O,400B NR ARG -NAS,NR CON 0 PAS CON 0LCOMPILE+3 LAS CON 0LLIST+3 NAS CON 1 NR CON 0 *NO REWIND* FLAG (=0 IF REWIND) SPACE 4 * PRESET COMMON DECKS. *CALL COMCARG *CALL COMCCPM END