cdc:nos2.source:nam5871:csessm
Table of Contents
CSESSM
Table Of Contents
- [00007] PROC CSESSM
- [00008] SEND SUPERVISION MESSAGE.
- [00011] SEND SUPERVISION MESSAGE.
- [00030] PROC CSESLE
- [00031] PROC SSCATR
- [00032] PROC SSBSBF
- [00033] PROC SSTAQE
- [00034] FUNC XCDD C(10)
- [00035] FUNC XCHD U
- [00131] PROC GETS INVOKED. IT IS THE FIRST TEXT SENT.
Source Code
- CSESSM.txt
- *DECK CSESSM
- USETEXT TEXTCS
- USETEXT TEXTSS
- USETEXT TXTAPSS
- USETEXT TXTSMCS
- USETEXT TXTSUSS
- PROC CSESSM;
- # TITLE - SEND SUPERVISION MESSAGE. #
- BEGIN
- #
- ** CSESSM - SEND SUPERVISION MESSAGE.
- *
- * D.K. ENDO 82/03/18
- *
- * THIS PROCEDURE SEND MESSAGES TO OPERATORS INDICATING THE SUPERVI-
- * SION OF AN NPU BY CS.
- *
- * PROC CSESSM
- *
- * ENTRY 1. SUP/IN/R, SUP/CB/R, OR SUP/IN/A SM.
- *
- * EXIT 2. ENTRIES IN THE OPERATOR RESPONSE QUEUE WITH THE
- * MESSAGES INFORMING SUPERVISION STATUS.
- #
- #
- **** PROC CSESSM - XREF LIST BEGINS.
- #
- XREF
- BEGIN
- PROC CSESLE; # SEND LOG (FILE) ENTRY #
- PROC SSCATR; # ACCEPT TIMER REQUEST #
- PROC SSBSBF; # STORE BIT FIELD #
- PROC SSTAQE; # ADD QUEUE ENTRY #
- FUNC XCDD C(10); # CONVERT DECIMAL INTEGER TO DISPLAY CODE #
- FUNC XCHD U; # CONVERT HEX INTEGER TO DISPLAY CODE #
- END
- #
- ****
- #
- DEF GOR$TXTL # 30 #; # CHAR COUNT OF -GO REQUIRED- TEXT #
- DEF LEM$TXTL # 70 #; # CHAR COUNT OF -LEVEL MISMATCH- TEXT #
- DEF LSP$TXTL # 50 #; # CHAR COUNT OF -LOST SUPERVISION- TEXT #
- DEF NCM$TXTL # 80 #; # CHAR COUNT OF -NCF MISMATCH- TEXT #
- DEF NPS$TXTL # 40 #; # CHAR COUNT OF NPU STATUS TEXT #
- DEF PCN$TXTL # 60 #; # CHAR COUNT OF -PREVIOUS NS/CS- TEXT #
- DEF SPG$TXTL # 40 #; # CHAR COUNT OF -SUPERVISION GAIN- TEXT #
- DEF UNS$TXTL # 50 #; # CHAR COUNT OF -UNKNOWN NPU- TEXT #
- DEF VLV$TXTL # 60 #; # CHAR COUNT OF -VERSION/LEVEL/VARIENT- TX#
- ITEM CNST1; # CONSTANT ---> 1 #
- ITEM CNST2; # CONSTANT ---> 2 #
- ITEM CNST3; # CONSTANT ---> 3 #
- ITEM NODE$ID; # NPU NODE I.D. #
- ITEM I; # LOOP INDUCTION VARIABLE #
- #
- THIS ARRAY DEFINES A TEMPORARY FOR STORING A CHARACTER STRING TO
- BE LATER PLACED IN A TEXT
- #
- ARRAY CTEMP$WORD [00:00] S(1);
- BEGIN
- ITEM CTEMP C(00,00,10);
- ITEM CTEMP3 C(00,42,03);
- END
- #
- THIS ARRAY DEFINES THE -GO REQUIRED- MESSAGE TEXT THAT IS SENT
- OUT WHEN A SUP/GO/R IS RECEIVED.
- #
- ARRAY GOR$TXT [00:00] S(3);
- BEGIN
- ITEM GOR$TIM C(00,00,10) = [" "];
- ITEM GOR$MSG C(01,00,15) = [" GO IS REQUIRED"];
- ITEM GOR$ZBYT U(02,30,30) = [0];
- END
- #
- THIS ARRAY DEFINES THE -LEVEL MISMATCH- MESSAGE TEXT SENT WHEN A
- SUP/IN/A SM IS SENT WITH NPU$STAT OF LEVMIS.
- #
- ARRAY LEM$TXT [00:00] S(7);
- BEGIN
- ITEM LEM$TIM C(00,00,10) =[" "];
- ITEM LEM$MSG C(01,00,41) =
- [" NCF / CCP VERSION MISMATCH, RELOAD WITH "];
- ITEM LEM$VE1 U(05,06,12) ;
- ITEM LEM$DOT C(05,18,1) = ["."];
- ITEM LEM$VE2 U(05,24,6);
- ITEM LEM$LEV C(05,30,09) = [" CCP VERSION"];
- ITEM LEM$ZBYT U(06,36,24) = [ 0 ];
- END
- #
- THIS ARRAY DEFINES THE -LOST SUPERVISION- MESSAGE TEXT THAT IS
- SENT OUT WHEN A SUP/CB/R IS RECEIVED.
- #
- ARRAY LSP$TXT [00:00] S(5);
- BEGIN
- ITEM LSP$TIM C(00,00,10) = [" "];
- ITEM LSP$MSG C(01,00,36) =
- [" CONNECTION BROKEN, SUPERVISION LOST"];
- ITEM LSP$ZBYT U(04,36,24) = [ 0 ];
- END
- #
- THIS ARRAY DEFINES THE -NCF MISMATCH- MESSAGE TEXT SENT WHEN A
- SUP/IN/A SM IS SENT AND NPU$STAT IS NCFMIS.
- #
- ARRAY NCM$TXT [00:00] S(8);
- BEGIN
- ITEM NCM$TIM C(00,00,10) =[" "];
- ITEM NCM$MSG C(01,00,31) =
- [" NCF MISMATCH/CCP NCF VERSION: "];
- ITEM NCM$VE1 U(04,06,18);
- ITEM NCM$LEV C(04,24,09) = [", LEVEL: "];
- ITEM NCM$LE1 U(05,18,18);
- ITEM NCM$VAR C(05,36,11) = [", VARIANT: "];
- ITEM NCM$VA1 U(06,42,18);
- ITEM NCM$ZBYT U(07,00,60) = [ 0 ];
- END
- #
- THIS ARRAY DEFINES THE NPU STATUS MESSAGE THAT IS SENT WHEN THIS
- PROC GETS INVOKED. IT IS THE FIRST TEXT SENT.
- #
- ARRAY NPS$TXT [00:00] S(4);
- BEGIN
- ITEM NPS$TIM C(00,00,10);
- ITEM NPS$NPU C(01,00,05) = ["NPU: "];
- ITEM NPS$NNM C(01,30,07);
- ITEM NPS$ST C(02,12,04) = [",AC,"];
- ITEM NPS$NID C(02,36,03);
- ITEM NPS$ZBYT1 U(02,54,06) = [ 0 ];
- ITEM NPS$ZBYT2 U(03,00,60) = [ 0 ];
- END
- #
- THIS ARRAY DEFINES THE -PREVIOUS CS/NS- MESSAGE TEXT SENT WENT A
- SUP/IN/R SM IS RECEIVED.
- #
- ARRAY PCN$TXT [00:00] S(6);
- BEGIN
- ITEM PCN$TIM C(00,00,10) =[" "];
- ITEM PCN$PCS C(01,00,19) = [" PREVIOUS CS NODE: "];
- ITEM PCN$PS C(02,54,03);
- ITEM PCN$PNC C(03,12,20) = [", PREVIOUS NS NODE: "];
- ITEM PCN$PL C(05,12,03);
- ITEM PCN$ZBYT U(05,30,30) = [ 0 ];
- END
- #
- THIS ARRAY DEFINES THE -SUPERVISION GAINED- MESSAGE TEXT SENT WHEN
- A SUP/IN/R SM IS RECEIVED.
- #
- ARRAY SPG$TXT [00:00] S(4);
- BEGIN
- ITEM SPG$TIM C(00,00,10) = [" "];
- ITEM SPG$MSG C(01,00,19) = [" SUPERVISION GAINED"];
- ITEM SPG$ZBYT1 U(02,54,06) = [ 0 ];
- ITEM SPG$ZBYT2 U(03,00,60) = [ 0 ];
- END
- #
- THIS ARRAY DEFINES THE TIMER REQUEST BLOCK USED TO REPEAT THE
- *NEED GO* MESSAGE IF A *GO* HAS NOT BEEN GIVEN BY AN NPU.
- #
- ARRAY TRB [00:00] S(4);
- BEGIN
- ITEM TRB$SMID U(00,00,12) = [SMID"SUPGOI"];
- ITEM TRB$WC U(00,48,12) = [4];
- ITEM TRB$DN U(01,06,08); # DESINTATION NODE #
- ITEM TRB$CNUM U(01,18,18); # CANCEL NUMBER #
- ITEM TRB$PFCSFC U(03,00,08) = [SUPGO]; # PFC SFC FOR SUP/GO #
- ITEM TRB$DELAY U(03,24,18) = [DTIME$]; # SEND EVERY MINUTE #
- ITEM TRB$QNUM U(03,42,18); # QUEUE NUMBER #
- END
- #
- THIS ARRAY DEFINES THE -UNKNOWN NPU SUPERVISION- MESSAGE, SENT
- WHEN A SUP/IN/UN SM IS RECEIVED.
- #
- ARRAY UNS$TXT [00:00] S(5);
- BEGIN
- ITEM UNS$TIM C(00,00,10) = [" "];
- ITEM UNS$MSG1 C(01,00,20) = [" SUPERVISION REQUEST"];
- ITEM UNS$MSG2 C(03,00,17) = [" FROM UNKNOWN NPU"];
- ITEM UNS$ZBYT U(04,42,18) = [ 0 ];
- END
- #
- THIS ARRAY DEFINES THE -VERSION/LEVEL/VARIANT- MESSAGE TEXT SENT
- WHEN A SUP/IN/R SM IS RECEIVED.
- #
- ARRAY VLV$TXT [00:00] P(7) ;
- BEGIN
- ITEM VLV$TIM C(00,00,10) = [" "];
- ITEM VLV$VER C(01,00,14) = [" CCP VERSION: "];
- ITEM VLV$VE1 U(02,24,24);
- ITEM VLV$LEV C(03,00,10) = [", LEVEL: "];
- ITEM VLV$LE1 U(04,00,24);
- ITEM VLV$VAR C(04,24,11) = [", VARIANT: "];
- ITEM VLV$VA1 U(05,30,24);
- ITEM VLV$ZBYT U(05,54,06) = [0];
- ITEM VLV$ZWRD U(06,00,60) = [0] ;
- END
- CONTROL EJECT;
- # #
- # CSESSM CODE BEGINS HERE #
- # #
- #
- * IF THIS SM IS SUP/IN/A THEN SET THE AUDIENCE GROUP TO TWO (HOP AND
- * CONTROLLING NOP) AND SET THE NODE I.D. TO THE DESTINATION NODE
- * VALUE, ELSE SET THE AUDIENCE GROUP TO ONE (HOP AND ALL NOP-S) AND
- * SET THE NODE I.D. TO THE SOURCE NODE I.D. VALUE. APPEND THE
- * CURRENT TIME, THE NPU NAME, AND THE NODE I.D. TO THE MESSAGE.
- * SEND THE MESSAGE OFF TO THE OPERATOR RESPONSE QUEUE,
- #
- WCB$WORD[1] = 0;
- WCB$WC[1] = 2 + (NPS$TXTL / 10);
- ABHWORD[1] = 0;
- ABHTLC[1] = NPS$TXTL;
- IF WCB$SMID[0] EQ SMID"SUPINA" OR
- WCB$SMID[0] EQ SMID"SUPGO" OR
- WCB$SMID[0] EQ SMID"SUPGOI" OR
- WCB$SMID[0] EQ SMID"SUPINUN"
- THEN
- BEGIN
- ABHADR[1] = AUDGR4$;
- END
- ELSE
- BEGIN
- ABHADR[1] = AUDGR1$;
- END
- IF WCB$SMID[0] EQ SMID"SUPCB" OR
- WCB$SMID[0] EQ SMID"SUPGO" OR
- WCB$SMID[0] EQ SMID"SUPINUN"
- THEN
- BEGIN
- NODE$ID = ABHSN[0];
- END
- ELSE
- BEGIN
- NODE$ID = ABHDN[0];
- END
- NPS$TIM[0] = CTM$CLOCK;
- FOR I=0 STEP 1 WHILE NODE$ID NQ NPU$NID[I] AND
- I LS CSNPCNT
- DO
- BEGIN
- END
- CNST1 = 1;
- CNST2 = 30;
- CNST3 = 42;
- IF I LS CSNPCNT
- THEN
- BEGIN
- IF (WCB$SMID[0] EQ SMID"SUPGO" OR WCB$SMID[0] EQ SMID"SUPGOI")
- AND NPU$CNOP[I] EQ 0
- THEN
- BEGIN
- ABHADR[1] = AUDGR2$;
- END
- SSBSBF(NPS$TXT,CNST1,CNST2,CNST3,B<0,42>NPU$WORD[I]);
- END
- ELSE
- BEGIN
- SSBSBF(NPS$TXT,CNST1,CNST2,CNST3," UNKNOWN");
- END
- #
- * IF THIS SM IS AN INTERNAL SUP/GO REQUEST AND A GO WAS ALREADY
- * RECEIVED(GO FLAG IS NOT SET), THEN EXIT.
- #
- IF WCB$SMID[0] EQ SMID"SUPGOI" AND
- NOT NPU$GFLAG[I]
- THEN
- BEGIN
- RETURN; # **** RETURN **** #
- END
- ABHABN[1] = I;
- CTEMP[0] = XCDD(1000 + NODE$ID);
- NPS$NID[0] = CTEMP3[0];
- SSTAQE(P<ORQ>,WCBUF[1],ABH[1],NPS$TXT[0]);
- CSESLE(NODE$ID,WCBUF[1],NPS$TXT);
- #
- * IF THIS SM IS SUP/IN/R, THEN SEND THE -SUPERVISION GAINED- MSG
- * OFF TO THE OPERATOR RESPONSE QUEUE.
- #
- IF WCB$SMID[0] EQ SMID"SUPINN"
- THEN
- BEGIN
- WCB$WC[1] = 2 + (SPG$TXTL / 10);
- ABHTLC[1] = SPG$TXTL;
- ABHADR[1] = AUDGR3$ ;
- SSTAQE(P<ORQ>,WCBUF[1],ABH[1],SPG$TXT[0]);
- CSESLE(NODE$ID,WCBUF[1],SPG$TXT);
- #
- * CONVERT THE CCP VERSION, LEVEL, AND VARIANT VALUES AND APPEND THEM
- * TO THE MESSAGE TEXT AND SEND IT OFF TO THE OPERATOR RESPONSE Q.
- #
- VLV$VE1[0] = XCHD(SUPVCVE[0]);
- IF SUPVCVE[0] GQ X"0037"
- THEN
- BEGIN # CCP VERSION IS 2.4.X #
- V24FLAG = TRUE ;
- CCPVERS = XCHD(SUPVCVE[0]) ; # ACTUAL VERSION OF CCP #
- END
- VLV$LE1[0] = XCHD(SUPVCLE[0]);
- VLV$VA1[0] = XCHD(SUPVCVA[0]);
- WCB$WC[1] = 2 + (VLV$TXTL / 10);
- ABHTLC[1] = VLV$TXTL;
- SSTAQE(P<ORQ>,WCBUF[1],ABH[1],VLV$TXT[0]);
- CSESLE(NODE$ID,WCBUF[1],VLV$TXT);
- #
- * AND CONVERT THE PREVIOUS CS AND NS NODE I.D.-S AND APPEND THEM TO
- * THE TEXT AND SEND THE TEXT OFF TO THE OPERATOR RESPONSE QUEUE.
- #
- CTEMP[0] = XCDD(1000 + SUPPS[0]);
- CNST1 = 2;
- CNST2 = 54;
- CNST3 = 18;
- SSBSBF(PCN$TXT,CNST1,CNST2,CNST3,CTEMP$WORD);
- CTEMP[0] = XCDD(1000 + SUPPL[0]);
- PCN$PL[0] = CTEMP3[0];
- WCB$WC[1] = 2 + (PCN$TXTL / 10);
- ABHTLC[1] = PCN$TXTL;
- SSTAQE(P<ORQ>,WCBUF[1],ABH[1],PCN$TXT[0]);
- CSESLE(NODE$ID,WCBUF[1],PCN$TXT);
- END
- #
- * IF THIS SM IS SUP/CB/R, THEN SEND THE -LOST SUPERVISION-MESSAGE
- * TEXT OFF TO THE OPERATOR RESPONSE QUEUE.
- #
- ELSE IF WCB$SMID[0] EQ SMID"SUPCB"
- THEN
- BEGIN
- WCB$WC[1] = 2 + (LSP$TXTL / 10);
- ABHTLC[1] = LSP$TXTL;
- ABHADR[1] = AUDGR3$ ;
- SSTAQE(P<ORQ>,WCBUF[1],ABH[1],LSP$TXT);
- CSESLE(NODE$ID,WCBUF[1],LSP$TXT);
- END
- #
- * IF THIS SM IS SUP/IN/A, THEN SEND THE -NCF/CCP MISMATC TEXT TO
- * THE OPERATOR RESPONSE QUEUE.
- #
- ELSE IF WCB$SMID[0] EQ SMID"SUPINA"
- THEN
- IF NPU$STAT[I] EQ SUPSTAT"NCFMIS" THEN
- BEGIN
- NCM$VE1[0] = XCHD(SUPVCVE[0]);
- NCM$LE1[0] = XCHD(SUPVCLE[0]);
- NCM$VA1[0] = XCHD(SUPVCVA[0]);
- WCB$WC[1] = 2 + (NCM$TXTL / 10);
- ABHTLC[1] = NCM$TXTL;
- SSTAQE(P<ORQ>,WCBUF[1],ABH[1],NCM$TXT);
- CSESLE(NODE$ID,WCBUF[1],NCM$TXT);
- END
- ELSE # NPU$STAT EQ SUPSTAT"LEVMIS" #
- BEGIN
- LEM$VE1[0] = XCHD(B<4,8>SUPVCVE[0]); # SET HIGH LEVEL NUM #
- LEM$VE2[0] = B<12,6>CSNCFLEV; # LST DIGIT OF NCF LVL TO MSG #
- WCB$WC[1] = 2 + (LEM$TXTL / 10);
- ABHTLC[1] = LEM$TXTL;
- SSTAQE(P<ORQ>,WCBUF[1],ABH[1],LEM$TXT);
- CSESLE(NODE$ID,WCBUF[1],LEM$TXT);
- END
- #
- * IF THIS SM IS SUP/GO/R, THEN CHECK IF A -GO- HAS BEEN RECEIVED
- * YET. IF NOT, THEN SEND THE -GO REQUIRE- MESSAGE TEXT OF TO THE
- * OPERATOR RESPONSE QUEUE AND MAKE A TIMER REQUEST FOR ANOTHER -GO-
- * MESSAGE TO BE SENT.
- #
- ELSE IF WCB$SMID[0] EQ SMID"SUPGO" OR
- WCB$SMID[0] EQ SMID"SUPGOI"
- THEN
- BEGIN
- IF WCB$SMID[0] EQ SMID"SUPGO"
- THEN
- BEGIN
- NPU$GFLAG[I] = TRUE;
- END
- IF NPU$GFLAG[I]
- THEN
- BEGIN
- WCB$WC[1] = 2 +(GOR$TXTL / 10);
- ABHTLC[1] = GOR$TXTL;
- SSTAQE(P<ORQ>,WCBUF[1],ABH[1],GOR$TXT[0]);
- CSESLE(NODE$ID,WCBUF[1],GOR$TXT);
- TRB$DN[0] = NODE$ID;
- TRB$QNUM[0] = LOC(P<EVQ>);
- SSCATR(TRB);
- NPU$CNUM[I] = TRB$CNUM[0];
- END
- END
- #
- IF THIS SM IS SUP/IN/UN, THEN SEND THE -UNKNOWN NPU- MESSAGE OFF
- TO THE OPERATOR RESPONSE QUEUE.
- #
- ELSE IF WCB$SMID[0] EQ SMID"SUPINUN"
- THEN
- BEGIN
- WCB$WC[1] = 2 + (UNS$TXTL / 10);
- SSTAQE(P<ORQ>,WCBUF[1],ABH[1],UNS$TXT);
- CSESLE(NODE$ID,WCBUF[1],UNS$TXT);
- END
- RETURN; # **** RETURN **** #
- END # CSESSM #
- TERM
cdc/nos2.source/nam5871/csessm.txt ยท Last modified: 2023/08/05 17:21 by Site Administrator