cdc:nos2.source:nam5871:csesls
Table of Contents
CSESLS
Table Of Contents
- [00007] PROC CSESLS
- [00008] SEND LINE STATUS.
- [00011] SEND LINE STATUS.
- [00031] PROC CSESLE
- [00032] PROC SSBSBF
- [00033] PROC SSTAQE
- [00034] FUNC XCHD C(10)
Source Code
- CSESLS.txt
- *DECK CSESLS
- USETEXT TEXTOV
- USETEXT TEXTCS
- USETEXT TEXTSS
- USETEXT TXTAPSS
- USETEXT TXTSMCS
- PROC CSESLS;
- # TITLE - SEND LINE STATUS. #
- BEGIN
- #
- ** CSESLS - SEND LINE STATUS.
- *
- * D.K. ENDO 82/03/17
- *
- * THIS PROCEDURE FORMATS A LINE STATUS TEXT AND SENDS IT OUT TO THE
- * OPERATORS.
- *
- * PROC CSESLS
- *
- * ENTRY 1. STU/LI/U, STU/LI/N, OR MSG/LI/A SM.
- *
- * EXIT 1. LINE STATUS TEXT IN THE OPERATOR RESPONSE QUEUE.
- * 2. TEXT SENT TO THE C-LAYER VIA THE CONNECTION QUEUE.
- *
- #
- #
- **** PROC CSESLS - XREF LIST BEGINS.
- #
- XREF
- BEGIN
- PROC CSESLE; # SEND LOG (FILE) ENTRY #
- PROC SSBSBF; # STORE BIT FIELD #
- PROC SSTAQE; # ADD QUEUE ENTRY #
- FUNC XCHD C(10); # CONVERT HEX INTEGER TO DISPLAY CODE #
- END
- #
- ****
- #
- DEF ADS$TXTL # 40 #; # CHAR COUNT OF ALREADY IN STATE TEXT #
- DEF CDP$TXTL # 40 #; # CHAR COUNT OF CE DIAG IN PROGRESS TEXT #
- DEF DCA$TXTL # 40 #; # CHAR COUNT OF DUP CLA ADDRESS TEXT #
- DEF LNS$TXTL # 50 #; # CHAR COUNT OF LINE STATUS TEXT #
- DEF MNS$TXTL # 40 #; # CHAR COUNT OF MSG NOT SENT TEXT #
- DEF NTC$TXTL # 40 #; # CHAR COUNT OF NO TERMS CONFIG TEXT #
- DEF NTE$TXTL # 40 #; # CHAR COUNT OF NO TERMS ENABLED TEXT #
- DEF TNC$TXTL # 40 #; # CHAR COUNT OF TIP NOT CONFIGURED TEXT #
- ITEM CNST1; # CONSTANT ---> 1 #
- ITEM CNST2; # CONSTANT ---> 2 #
- ITEM CNST3; # CONSTANT ---> 3 #
- ITEM I; # LOOP INDUCTION VARIABLE #
- ITEM GOODRC B; # FLAG INDICATING GOOD REASON CODE #
- #
- THIS ARRAY DEFINES THE -ALREADY IN DESIRED STATE- MESSAGE TEXT.
- IT IS SENT WHEN A STU/LI/U SM COMES IN AND THE REASON CODE FIELD
- IS EIGHT.
- #
- ARRAY ADS$TXT [00:00] S(4);
- BEGIN
- ITEM ADS$TIM C(00,00,10) = [" "];
- ITEM ADS$MSG C(01,00,25) = [" ALREADY IN DESIRED STATE"];
- ITEM ADS$ZBYT1 U(03,30,30) = [ 0 ];
- END
- #
- THIS ARRAY DEFINES THE -CE DIAGNOSTICS IN PROGRESS- MESSAGE TEXT.
- IT IS SENT WHEN A STU/LI/U SM COMES IN AND THE REASON CODE FIELD
- IS SET TO SEVEN.
- #
- ARRAY CDP$TXT [00:00] S(4);
- BEGIN
- ITEM CDP$TIM C(00,00,10) = [" "];
- ITEM CDP$MSG C(01,00,25) = [" CE DIAG TEST IN PROGRESS"];
- ITEM CDP$ZBYT1 U(03,30,30) = [ 0 ];
- END
- #
- THIS ARRAY IS USED AS A TEMPORY FOR STORING A CHARACTER STRING TO
- BE LATER PLACE IN THE TEXT.
- #
- ARRAY CTEMP$WORD [00:00] S(1);
- BEGIN
- ITEM CTEMP C(00,00,10);
- ITEM CTEMP2 C(00,48,02);
- END
- #
- THIS ARRAY DEFINES THE -DUPLICATE CLA ADDRESS- MESSAGE TEXT. IT
- IS SENT OUT WHEN AN INCOMING STU/LI/U HAS A REASON CODE SET TO SIX
- #
- ARRAY DCA$TXT [00:00] S(4);
- BEGIN
- ITEM DCA$TIM C(00,00,10) = [" "];
- ITEM DCA$MSG C(01,00,22) = [" DUPLICATE CLA ADDRESS"];
- ITEM DCA$ZBYT U(03,12,48) = [ 0 ];
- END
- #
- THIS BASED ARRAY IS USED AS A TEMPLATE TO GO OVER ONE OF THE
- MESSAGES SENT WHEN THE REASON CODE FIELD OF THE STU/LI/U SM IS
- NON ZERO.
- #
- BASED ARRAY ERR$MSG [00:00] S(6);
- BEGIN
- ITEM ERM$TIM C(00,00,10);
- ITEM ERM$LNM C(01,36,07);
- END
- #
- THIS ARRAY DEFINES THE LINE STATUS TEXT SENT TO THE OPERATORS.
- #
- ARRAY LNS$TXT [00:04] S(1);
- BEGIN
- ITEM LNS$TIM C(00,00,10);
- ITEM LNS$LIN C(01,00,06) = ["LINE: "];
- ITEM LNS$LNM C(01,36,07);
- ITEM LNS$C1 C(02,18,01) = [","];
- ITEM LNS$ST C(02,24,02);
- ITEM LNS$C2 C(02,36,01) = [","];
- ITEM LNS$LT C(02,42,02);
- ITEM LNS$C3 C(02,54,01) = [","];
- ITEM LNS$NNM C(03,00,07);
- ITEM LNS$S1 C(03,42,01) = ["/"];
- ITEM LNS$PRT C(03,48,02);
- ITEM LNS$ZBYT U(04,00,60) = [ 0 ];
- END
- #
- THIS TABLE CONTAINS ALL THE POSSIBLE LINE TYPES. THE NUMERIC
- VALUE MAPS DIRECTLY INTO THE TABLE.
- #
- DEF MX$LT # 12 #;
- ARRAY LT$TABLE [01:MX$LT] S(1);
- BEGIN
- ITEM LT$VAL C(00,00,02) = ["S1",
- "S2",
- "S3",
- ,,
- "A1",
- "A2",
- ,
- "A6",
- "H1",
- "S4",
- "H2"
- ];
- END
- #
- THIS ARRAY DEFINES THE -MESSAGE NOT SENT- MESSAGE TEXT. IT IS
- SENT WHEN THERE IS AN INCOMING MSG/LI/A SM.
- #
- ARRAY MNS$TXT [00:00] S(4);
- BEGIN
- ITEM MNS$NPU C(00,00,05) = ["NPU: "];
- ITEM MNS$NNM C(00,30,07);
- ITEM MNS$MSG C(01,12,18) = [", MESSAGE NOT SENT"];
- ITEM MNS$ZBYT U(03,00,60) = [ 0 ];
- END
- #
- THIS ARRAY DEFINES THE -NO TERMINALS CONFIGUED- MESSAGE TEXT.
- IT IS SENT OUT WHEN AN INCOMING STU/LI/U HAS A REASON CODE SET
- TO TWO.
- #
- ARRAY NTC$TXT [00:00] S(4);
- BEGIN
- ITEM NTC$TIM C(00,00,10) = [" "];
- ITEM NTC$MSG C(01,00,24) = [" NO TERMINALS CONFIGURED"];
- ITEM NTC$ZBYT U(03,24,36) = [ 0 ];
- END
- #
- THIS ARRAY DEFINES THE -NO TERMINALS ENABLED- MESSAGE TEXT. IT
- IS SENT OUT WHEN AN INCOMING STU/LI/U HAS A REASON CODE SET TO
- ONE.
- #
- ARRAY NTE$TXT [00:00] S(4);
- BEGIN
- ITEM NTE$TIM C(00,00,10) = [" "];
- ITEM NTE$MSG C(01,00,21) = [" NO TERMINALS ENABLED"];
- ITEM NTE$ZBYT U(03,06,54) = [ 0 ];
- END
- #
- THIS CONTAINS ALL THE POSSIBLE STATUS THAT THE LINE CAN HAVE. IT
- CAN BE MAPPED DIRECT TO THE NUMERIC STATUS VALUE IN THE INCOMING
- SM.
- #
- DEF MX$ST # 5 #;
- ARRAY ST$TABLE [01:MX$ST] S(1);
- BEGIN
- ITEM ST$VAL C(00,00,02) = ["NC",
- "DI",
- "DN",
- "EN",
- "AC",
- ];
- END
- #
- THIS ARRAY DEFINES THE -TIP NOT CONFIGURED- MESSAGE TEXT. IT IS
- SENT WHEN AN INCOMING STU/LI/U SM HAS A REASON CODE SET TO FIVE.
- #
- ARRAY TNC$TXT [00:00] S(4);
- BEGIN
- ITEM TNC$TIM C(00,00,10) = [" "];
- ITEM TNC$MSG C(01,00,20) = [" TIP NOT CONFIGURED"];
- ITEM TNC$ZBYT U(03,00,60) = [ 0 ];
- END
- #
- THIS ARRAY IS USED TO STORE THE LINE NAME TO BE INSERTED INTO THE
- TEXT WHEN ONE IS NOT FOUND.
- #
- ARRAY UNK$TXT [00:00] S(1);
- BEGIN
- ITEM UNK$NAM C(00,18,07) = ["UNKNOWN"];
- END
- CONTROL EJECT;
- # #
- # CSESLS CODE BEGINS HERE #
- # #
- #
- * FORMAT THE LINE STATUS TEXT. SEARCH THE LINE XREF TABLE, GIVEN
- * THE PORT AND NODE I.D. AND FIND THE NAME FOR THIS LINE. IF A NAME
- * IS FOUND INSERT NAME INTO TEXT, ELSE INSERT -UNKNOWN- INTO TEXT.
- * INSERT THE STATUS AND LTYPE INTO THE TEXT. SEARCH NPUCB-S FOR THE
- * NAME OF THE NPU SUPPORTING THE LINE. IF FOUND, INSERT NAME INTO
- * TEXT. CONVERT THE PORT NUMBER AND APPEND IT TO THE TEXT.
- #
- FOR I=0 STEP 1 WHILE NOT(STUP[0] EQ LIX$PORT[I] AND
- ABHSN[0] EQ LIX$NID[I]) AND
- I LS LIXL
- DO
- BEGIN
- END
- IF I LS LIXL
- THEN
- BEGIN
- CNST1 = 1;
- CNST2 = 36;
- CNST3 = 42;
- SSBSBF(LNS$TXT,CNST1,CNST2,CNST3,B<0,42>LIX$WORD[I]);
- END
- ELSE
- BEGIN
- CNST1 = 1;
- CNST2 = 36;
- CNST3 = 42;
- SSBSBF(LNS$TXT,CNST1,CNST2,CNST3,UNK$TXT);
- END
- LNS$ST[0] = ST$VAL[STUSTI[0]];
- LNS$LT[0] = LT$VAL[STULT[0]];
- FOR I=0 STEP 1 WHILE ABHSN[0] NQ NPU$NID[I] AND
- I LS CSNPCNT
- DO
- BEGIN
- END
- IF I LS CSNPCNT
- THEN
- BEGIN
- LNS$NNM[0] = NPU$NAME[I];
- END
- ELSE
- BEGIN
- LNS$NNM[0] = " ";
- END
- CTEMP[0] = XCHD(STUP[0] + X"100");
- LNS$PRT[0] = CTEMP2[0];
- #
- * IF THIS SM IS STU/LI/U, APPEND THE CURRENT TIME TO THE TEXT. SET
- * THE AUDIENCE GROUP TO ONE AND SEND IT OFF TO THE OPERATOR RESPONSE
- * QUEUE. IF THE REASON CODE IS NOT ZERO, THEN APPEND A MESSAGE,
- * BASED ON THE RC, TO THE TIME AND SEND THE MESSAGE OFF TO THE ORQ
- * WITH AN AUDIENCE GROUP OF ONE.
- #
- IF WCB$SMID[0] EQ SMID"STULI"
- THEN
- BEGIN
- LNS$TIM[0] = CTM$CLOCK[0];
- WCB$WORD[1] = 0;
- WCB$WC[1] = 2 + (LNS$TXTL / 10);
- ABHWORD[1] = LNS$TXTL;
- ABHADR[1] = AUDGR3$;
- ABHABN[1] = I;
- SSTAQE(P<ORQ>,WCBUF[1],ABH[1],LNS$TXT[0]);
- CSESLE(ABHSN[0],WCBUF[1],LNS$TXT);
- IF STURCL[0] NQ 0
- THEN
- BEGIN
- GOODRC = FALSE;
- IF STURCL[0] EQ RRCI"N1"
- THEN # NO TERMS ENABLED, RC=1 #
- BEGIN
- P<ERR$MSG> = LOC(NTE$TXT);
- ABHTLC[1] = NTE$TXTL;
- GOODRC = TRUE;
- END
- ELSE IF STURCL[0] EQ RRCI"N2"
- THEN # NO TERMS CONFIGURED, RC=2 #
- BEGIN
- P<ERR$MSG> = LOC(NTC$TXT);
- ABHTLC[1] = NTC$TXTL;
- GOODRC = TRUE;
- END
- ELSE IF STURCL[0] EQ RRCI"NT"
- THEN # TIP NOT CONFIGURED, RC=5 #
- BEGIN
- P<ERR$MSG> = LOC(TNC$TXT);
- ABHTLC[1] = TNC$TXTL;
- GOODRC = TRUE;
- END
- ELSE IF STURCL[0] EQ RRCI"DC"
- THEN # DUPLICATE CLA ADDRESS, RC=6 #
- BEGIN
- P<ERR$MSG> = LOC(DCA$TXT);
- ABHTLC[1] = DCA$TXTL;
- GOODRC = TRUE;
- END
- ELSE IF STURCL[0] EQ RRCI"CD"
- THEN # CE DIAGNOSTICS IN PROGESS,RC=7#
- BEGIN
- P<ERR$MSG> = LOC(CDP$TXT);
- ABHTLC[1] = CDP$TXTL;
- GOODRC = TRUE;
- END
- ELSE IF STURCL[0] EQ RRCI"UC"
- THEN # ALREADY IN DESIRED STATE, RC=8#
- BEGIN
- P<ERR$MSG> = LOC(ADS$TXT);
- ABHTLC[1] = ADS$TXTL;
- GOODRC = TRUE;
- END
- IF GOODRC
- THEN
- BEGIN
- WCB$WC[1] = 2 + (ABHTLC[1] / 10 );
- SSTAQE(P<ORQ>,WCBUF[1],ABH[1],ERR$MSG[0]);
- CSESLE(ABHSN[0],WCBUF[1],ERR$MSG);
- END
- END
- END
- #
- * IF THIS SM IS STU/LI/N OR MSG/LI/A, THEN SEND THE STATUS TEXT TO
- * THE OPERATOR IDENTIFIED BY THE ACN WITH THE INPUT ALLOW FLAG
- * CLEARED. IF THIS SM IS MSG/LI/A, APPEND THE NPU NAME TO THE -NOT
- * SENT- MESSAGE AND SEND IT TO THE OPERATOR WITH THE INPUT ALLOWED
- * FLAG SET.
- #
- ELSE # THE SM WAS NOT STU/LI/U, ASSUME IT IS #
- BEGIN # STU/LI/N OR MSG/LI/A #
- WCB$WORD[1] = 0;
- WCB$SMID[1] = SMID"TTEXT";
- WCB$WC[1] = 2 + (LNS$TXTL / 10) - 1;
- ABHWORD[1] = 0;
- ABHADR[1] = ABHCN[0];
- ABHTLC[1] = LNS$TXTL - 10;
- SSTAQE(P<CNQ>,WCBUF[1],ABH[1],LNS$TXT[1]);
- IF WCB$SMID[0] EQ SMID"MSGLIA"
- THEN
- BEGIN
- FOR I=0 STEP 1 WHILE ABHSN[0] NQ NPU$NID[I] AND
- I LS CSNPCNT
- DO
- BEGIN
- END
- IF I LS CSNPCNT
- THEN
- BEGIN
- CNST1 = 0;
- CNST2 = 30;
- CNST3 = 42;
- SSBSBF(MNS$TXT,CNST1,CNST2,CNST3,B<0,42>NPU$WORD[I]);
- END
- WCB$IAF[1] = TRUE;
- WCB$WC[1] = 2 + (MNS$TXTL / 10);
- ABHTLC[1] = MNS$TXTL;
- SSTAQE(P<CNQ>,WCBUF[1],ABH[1],MNS$TXT[0]);
- END
- END
- RETURN;
- END # CSESLS #
- TERM
cdc/nos2.source/nam5871/csesls.txt ยท Last modified: 2023/08/05 17:21 by Site Administrator