cdc:nos2.source:nam5871:csescs
Table of Contents
CSESCS
Table Of Contents
- [00007] PROC CSESCS
- [00008] SEND COUPLER STATUS.
- [00011] SEND COUPLER STATUS.
- [00032] PROC CSESLE
- [00033] PROC SSBSBF
- [00034] PROC SSTAQE
- [00035] FUNC XCDD U
Source Code
- CSESCS.txt
- *DECK CSESCS
- USETEXT TEXTOV
- USETEXT TEXTCS
- USETEXT TEXTSS
- USETEXT TXTAPSS
- USETEXT TXTSMCS
- PROC CSESCS;
- # TITLE - SEND COUPLER STATUS. #
- BEGIN
- #
- ** CSESCS - SEND COUPLER STATUS.
- *
- * D.K. ENDO 82/03/29
- *
- * THE PROCEDURE FORMATS THE COUPLER STATUS MESSAGE TEXT SENT WHEN A
- * STU/CP/U OR STU/CP/N IS RECEIVED.
- *
- * PROC CSESCS
- *
- * ENTRY 1. STU/CP/U OR STU/CP/N SM FROM THE EVENT QUEUE.
- *
- * EXIT 1. ENTRY IN OPERATOR RESPONSE QUEUE WITH THE STATUS
- * TEXT AND THE AUDIENCE GROUP SET TO ONE.
- * 2. ENTRY IN C-LAYER QUEUE WITH THE STATUS TEXT.
- *
- #
- #
- **** PROC CSESCS - XREF LIST BEGINS.
- #
- XREF
- BEGIN
- PROC CSESLE; # SEND LOG (FILE) ENTRY #
- PROC SSBSBF; # STORE BIT FIELD #
- PROC SSTAQE; # ADD QUEUE ENTRY #
- FUNC XCDD U; # CONVERT DECIMAL INTEGER TO DISPLAY CODE #
- END
- #
- ****
- #
- DEF CPS$TXTL # 50 #; # CHAR COUNT OF COUPLER STATUS TEXT #
- DEF HNP$TXTL # 30 #; # CHAR COUNT OF -HIP NOT PRESENT- TEXT #
- ITEM CNST1; # CONSTANT ---> 1 #
- ITEM CNST2; # CONSTANT ---> 2 #
- ITEM CNST3; # CONSTANT ---> 3 #
- ITEM I; # LOOP INDUCTION VARIABLE #
- ITEM ITEMP U; # UNSIGNED INTEGER TEMPORARY #
- ITEM J; # LOOP INDUCTION VARIABLE #
- #
- THIS ARRAY DEFINES THE COUPLER STATUS TEXT THAT IS SENT WHEN A
- STU/CP/U OR STU/CP/N IS RECEIVED.
- #
- ARRAY CPS$TXT [00:04] S(1);
- BEGIN
- ITEM CPS$TIM C(00,00,10);
- ITEM CPS$COUP C(01,00,08) = ["CPLER: "];
- ITEM CPS$CNM C(01,42,07);
- ITEM CPS$C1 C(02,24,01) = [","];
- ITEM CPS$ST C(02,30,02);
- ITEM CPS$C2 C(02,42,01) = [","];
- ITEM CPS$CNID C(02,48,03);
- ITEM CPS$C3 C(03,06,01) = [","];
- ITEM CPS$NNM C(03,12,07);
- ITEM CPS$C4 C(03,54,01) = ["/"];
- ITEM CPS$CNUM C(04,00,03);
- ITEM CPS$ZBYT U(04,18,42) = [ 0 ];
- END
- #
- THIS ARRAY DEFINES NOT -HIP NOT PRESENT- TEXT AND IS SENT WHEN A
- STU/CP/U IS RECEIVED WITH THE REASON CODE FIELD SET TO EIGHT.
- #
- ARRAY HNP$TXT [00:00] S(3);
- BEGIN
- ITEM HNP$TIM C(00,00,10) = [" "];
- ITEM HNP$MSG C(01,00,16) = [" HIP NOT PRESENT"];
- ITEM HNP$ZBYT U(02,36,24) = [ 0 ];
- END
- #
- THIS ARRAY DEFINES ALL THE POSSIBLE STATUS A COUPLER CAN HAVE
- #
- 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 NAME USED WHEN THE NAME OF THE COUPLER OR
- SUPPORTING NPU IS NOT FOUND.
- #
- ARRAY UNK$TXT [00:00] S(1);
- BEGIN
- ITEM UNK$NAME C(00,18,07) = ["UNKNOWN"];
- END
- CONTROL EJECT;
- # #
- # CSESCS CODE BEGINS HERE #
- # #
- #
- * SEARCH THE PHYSICAL LINK XREF TABLE FOR THIS COUPLER. IF IT IS
- * FOUND, THEN INSERT THE COUPLER NUMBER AND NAME INTO THE STATUS
- * TEXT, FIND THE NPUCB OF THE NPU THAT SUPPORTS THIS COUPLER AND
- * IF FOUND THEN INSERT THE NPU NAME INTO THE TEXT, OTHERWISE INSERT
- * -UNKNOWN- FOR THE NPU NAME. IF THE COUPLER IS NOT FOUND IN THE
- * PHYSICAL LINK XREF TABLE, THEN INSERT -UNKNOWN- FOR THE NAMES AND
- * CLEAR THE COUPLER NUMBER VALUE. INSERT THE COUPLER NODE I.D. AND
- * STATUS FOR THE COUPLER.
- #
- FOR I=0 STEP 1 WHILE STUN1[0] NQ PLX$HNID[I] AND
- I LS PLXREFL/2 AND
- NOT PLX$TYPE[I]
- DO
- BEGIN
- END
- IF I LS PLXREFL/2
- THEN
- BEGIN
- CNST1 = 1;
- CNST2 = 42;
- SSBSBF(CPS$TXT,CNST1,CNST2,CNST2,B<0,42>PLX$WORD[I]);
- IF PLX$CPRI[I]
- THEN
- BEGIN
- CPS$CNUM[0] = "SEC";
- END
- ELSE
- BEGIN
- CPS$CNUM[0] = "PRI";
- END
- FOR J=0 STEP 1 WHILE PLX$CNPU[I] NQ NPU$NID[J] AND
- J LS CSNPCNT
- DO
- BEGIN
- END
- IF J LS CSNPCNT
- THEN
- BEGIN
- CPS$NNM[0] = NPU$NAME[J];
- END
- ELSE
- BEGIN
- CPS$NNM[0] = UNK$NAME[0];
- END
- END
- ELSE
- BEGIN
- CNST1 = 1;
- CNST2 = 42;
- SSBSBF(CPS$TXT,CNST1,CNST2,CNST2,UNK$TXT);
- CPS$NNM[0] = UNK$NAME[0];
- CPS$CNUM[0] = " ";
- END
- CPS$ST[0] = ST$VAL[STUST[0]];
- ITEMP = XCDD(1000 + STUN1[0]);
- CNST1 = 2;
- CNST2 = 48;
- CNST3 = 18;
- SSBSBF(CPS$TXT,CNST1,CNST2,CNST3,ITEMP);
- #
- * IF THIS SM IS STU/CP/U, THEN INSERT CURRENT TIME IN STATUS TEXT.
- * SEND THE TEXT OFF TO THE OPERATOR RESPONSE QUEUE WITH THE AUDIENCE
- * GROUP SET TO ONE, IF THE REASON CODE FIELD IS NON-ZERO THEN APPEND
- * THE CURRENT TIME TO THE -HIP NOT PRESENT- MESSAGE TEXT AND SEND IT
- * TO THE OPERATOR RESPONSE RESPONSE QUEUE WITH AN AUDIENCE GROUP OF
- * ONE.
- #
- IF WCB$SMID[0] EQ SMID"STUCP"
- THEN
- BEGIN
- CPS$TIM[0] = CTM$CLOCK[0];
- WCB$WORD[1] = 0;
- WCB$WC[1] = 2 + (CPS$TXTL / 10);
- ABHWORD[1] = CPS$TXTL;
- ABHADR[1] = AUDGR3$;
- ABHABN[1] = J;
- SSTAQE(P<ORQ>,WCBUF[1],ABH[1],CPS$TXT[0]);
- CSESLE(ABHSN[0],WCBUF[1],CPS$TXT);
- IF STURC[0] NQ 0
- THEN
- BEGIN
- WCB$WC[1] = 2 + (HNP$TXTL / 10);
- ABHTLC[1] = HNP$TXTL;
- SSTAQE(P<ORQ>,WCBUF[1],ABH[1],HNP$TXT[0]);
- CSESLE(ABHSN[0],WCBUF[1],HNP$TXT);
- END
- END
- #
- * IF THIS SM IS STU/CP/N, THEN SEND THE STATUS TEXT TO THE OPERATOR
- * VIA THE C-LAYER WITH THE INPUT ALLOWED FLAG CLEARED.
- #
- ELSE # IF NOT STU/CP/U, THEN ASSUME STU/CP/N. #
- BEGIN
- WCB$WORD[1] = 0;
- WCB$SMID[1] = SMID"TTEXT";
- WCB$WC[1] = 2 + (CPS$TXTL / 10) - 1;
- ABHWORD[1] = 0;
- ABHADR[1] = ABHCN[0];
- ABHTLC[1] = CPS$TXTL - 10;
- SSTAQE(P<CNQ>,WCBUF[1],ABH[1],CPS$TXT[1]);
- END
- RETURN; # **** RETURN **** #
- END # CSESCS #
- TERM
cdc/nos2.source/nam5871/csescs.txt ยท Last modified: 2023/08/05 17:21 by Site Administrator