cdc:nos2.source:nam5871:csesam
Table of Contents
CSESAM
Table Of Contents
- [00007] PROC CSESAM
- [00008] SEND ALARM(AND ERROR LOG) MESSAGE.
- [00011] SEND ALARM MESSAGE.
- [00032] PROC CSESLE
- [00033] PROC MESSAGE
- [00034] PROC SSBSBF
- [00035] FUNC SSDCAD U
- [00036] PROC SSTAQE
- [00037] FUNC XCDD U
- [00038] FUNC XCHD U
Source Code
- CSESAM.txt
- *DECK CSESAM
- USETEXT TEXTOV
- USETEXT TEXTCS
- USETEXT TEXTSS
- USETEXT TXTAPSS
- USETEXT TXTSMCS
- PROC CSESAM;
- # TITLE - SEND ALARM(AND ERROR LOG) MESSAGE. #
- BEGIN
- #
- ** CSESAM - SEND ALARM MESSAGE.
- *
- * D.K. ENDO 82/03/31
- *
- * THIS PROCEDURE FORMATS THE ALARMS TO THE OPERATOR FROM THE IN-
- * COMING ALM/OP/U SM, AND THE ENTRIES TO THE ERROR LOG FILE FROM THE
- * INCOMING LOG/ER/U SM.
- *
- * PROC CSESAM
- *
- * ENTRY 1. ALM/OP/U OR LOG/ER/U SM FROM THE EVENT QUEUE.
- *
- * EXIT 1. FORMATTED ALARM TO THE OPERATOR RESPONSE QUEUE.
- * 2. FORMATTED ENTRY TO THE ERROR LOG FILE.
- *
- #
- #
- **** PROC CSESAM - XREF LIST BEGINS.
- #
- XREF
- BEGIN
- PROC CSESLE; # SEND LOG (FILE) ENTRY #
- PROC MESSAGE; # PUTS MESSAGES IN SYSTEMS FILES #
- PROC SSBSBF; # STORE BIT FIELD #
- FUNC SSDCAD U; # CONVERT ASCII TO DISPLAY CODE #
- PROC SSTAQE; # ADD QUEUE ENTRY #
- FUNC XCDD U; # CONVERT DECIMAL INTEGER TO DISPLAY CODE #
- FUNC XCHD U; # CONVERT HEX INTEGER TO DISPLAY CODE #
- END
- #
- ****
- #
- DEF ERRLG # 4 #; # MESSAGE IDENTIFIER FOR THE ERROR LOG #
- DEF LNM$TXTL # 30 #; # CHAR COUNT FOR LINE NAME TEXT #
- DEF NNM$TXTL # 40 #; # CHAR COUNT FOR NPU NAME TEXT #
- DEF NONTXT$ # 4 #; # NUMBER OF CHARS THAT ARE NOT TEXT #
- ITEM A$CHAR U = 0; # ONE ASCII CHARACTER #
- ITEM BPOS; # BIT POSITION OF SM TEXT POINTER #
- ITEM CHARCNT; # MESSAGE CHARACTER COUNT #
- ITEM CHARPOS; # BIT POSITION OF MESSAGE TEXT POINTER #
- ITEM CNST1; # CONSTANT ---> 1 #
- ITEM CNST2; # CONSTANT ---> 2 #
- ITEM CNST3; # CONSTANT ---> 3 #
- ITEM I; # LOOP INDUCTION VARIABLE #
- ITEM ITEMP U = 0; # UNSIGNED INTEGER TEMPORARY #
- ITEM MCC; # MESSAGE CHARACTER COUNT #
- ITEM MWC; # WORD COUNT OF SM TEXT POINTER #
- ITEM WC; # WORD COUNT OF MESSAGE TEXT POINTER #
- #
- THIS ARRAY DEFINES THE ALARM TO OPERATOR TEXT SENT WHEN A ALM/OP/U
- SM IS RECEIVED.
- #
- DEF MX$ALM # 7 #;
- ARRAY ALM$TXT [01:MX$ALM] S(1);
- BEGIN
- ITEM ALM$TIM C(00,00,10) = [" "];
- ITEM ALM$WORD U(00,00,60);
- END
- #
- THIS ARRAY DEFINES THE FORMAT OF THE ERROR LOG ENTRY SENT WHEN A
- LOG/ER/U SM IS RECEIVED.
- #
- ARRAY ELT$TXT [00:00] S(4);
- BEGIN
- ITEM ELT$NW01 C(00,00,06) = ["NW01, "];
- ITEM ELT$NID U(00,36,18);
- ITEM ELT$C1 C(00,54,01) = [","];
- ITEM ELT$EC U(01,00,12);
- ITEM ELT$BYT1 U(01,12,12);
- ITEM ELT$BYT2 U(01,24,12);
- ITEM ELT$BYT3 U(01,36,12);
- ITEM ELT$P1 C(01,48,01);
- ITEM ELT$ZBYT1A U(01,54,06);
- ITEM ELT$ZBYT1B I(02,00,60);
- ITEM ELT$BYT4 U(01,48,12);
- ITEM ELT$BYT5 U(02,00,12);
- ITEM ELT$BYT6 U(02,12,12);
- ITEM ELT$P2 C(02,24,01) = ["."];
- ITEM ELT$ZBYT2 U(02,30,30) = [ 0 ];
- END
- #
- * THIS ARRAY DEFINES THE LINE NAME TEXT SENT WITH THE OPERATOR
- * MESSAGE WHEN THE PORT IS SPECIFIED AND A NAME IS FOUND.
- *
- #
- ARRAY LNM$TXT [00:00] S(3);
- BEGIN
- ITEM LNM$TIM C(00,00,10) = [" "];
- ITEM LNM$LINE C(01,00,06) = ["LINE--"];
- ITEM LNM$LNM C(01,36,07);
- ITEM LNM$ZBYT U(02,18,42) = [0];
- END
- #
- * THIS ARRAY DEFINES THE NPU NAME MESSAGE SENT WITH THE ALARM
- * MESSAGE.
- #
- ARRAY NNM$TXT [00:00] S(4);
- BEGIN
- ITEM NNM$TIM C(00,00,10);
- ITEM NNM$NPU C(01,00,10) = ["FROM NPU--"];
- ITEM NNM$NNM C(02,00,07);
- ITEM NNM$C1 C(02,42,03) = [": "];
- ITEM NNM$ZBYT U(03,00,60) = [0];
- END
- #
- THIS ARRAY DEFINES THE NAME USED WHEN AN NPU NAME CAN NOT BE
- FOUND.
- #
- ARRAY UNK$TXT [00:00] S(1);
- BEGIN
- ITEM UNK$NAME C(00,18,17) = ["UNKNOWN"];
- END
- CONTROL EJECT;
- # #
- # CSESAM CODE BEGINS HERE #
- # #
- #
- * IF THIS SM IS ALM/OP/U, THEN APPEND THE CURRENT TIME TO THE TEXT,
- * SEARCH THE NPUCB-S FOR THIS NPU, IF FOUND APPEND THE NAME TO THE
- * TEXT, ELSE APPEND -UNKNOWN- FOR THE NAME, CONVERT THE PORT TO
- * DISPLAY CODE AND APPEND IT TO THE TEXT, CONVERT THE ALARM TEXT TO
- * DISPLAY CODE AND APPEND IT TO THE TEXT. SEND THE TEXT TO THE
- * OPERATOR RESPONSE QUEUE WITH AN AUDIENCE GROUP OF TWO.
- #
- IF WCB$SMID[0] EQ SMID"ALMOP"
- THEN
- BEGIN
- NNM$TIM[0] = CTM$CLOCK[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
- NNM$NNM[0] = NPU$NAME[I];
- END
- ELSE
- BEGIN
- NNM$NNM[0] = UNK$NAME[0];
- END
- WCB$WORD[1] = 0;
- WCB$WC[1] = 2 + (NNM$TXTL / 10);
- ABHWORD[1] = NNM$TXTL;
- ABHADR[1] = AUDGR4$;
- ABHABN[1] = I;
- SSTAQE(P<ORQ>,WCBUF[1],ABH[1],NNM$TXT);
- CSESLE(ABHSN[0],WCBUF[1],NNM$TXT);
- FOR I=2 STEP 1 UNTIL MX$ALM
- DO
- BEGIN
- ALM$WORD[I] = 0;
- END
- A$CHAR = 0;
- BPOS = 32;
- CHARCNT = 1;
- MWC = 0;
- MCC = ABHTLC[0] - NONTXT$;
- FOR WC=2 STEP 1 WHILE CHARCNT LQ MCC AND
- WC LS MX$ALM
- DO
- BEGIN
- FOR CHARPOS=0 STEP 6 WHILE CHARCNT LQ MCC AND
- CHARPOS LS 60
- DO
- BEGIN
- IF BPOS LQ 52
- THEN
- BEGIN
- A$CHAR = B<BPOS,8>MSG$WORD[MWC];
- B<CHARPOS,6>ALM$WORD[WC] = SSDCAD(A$CHAR);
- BPOS = BPOS + 8;
- END
- ELSE IF BPOS EQ 56
- THEN
- BEGIN
- B<52,4>A$CHAR = B<BPOS,4>MSG$WORD[MWC];
- MWC = MWC + 1;
- B<56,4>A$CHAR = B<0,4>MSG$WORD[MWC];
- B<CHARPOS,6>ALM$WORD[WC] = SSDCAD(A$CHAR);
- BPOS = 4;
- END
- ELSE
- BEGIN
- MWC = MWC + 1;
- A$CHAR = B<0,8>MSG$WORD[MWC];
- B<CHARPOS,6>ALM$WORD[WC] = SSDCAD(A$CHAR);
- BPOS = 8;
- END
- CHARCNT = CHARCNT + 1;
- END
- END
- IF CHARPOS LQ 48
- THEN
- BEGIN
- WC = WC - 1;
- END
- WCB$WC[1] = 2 + WC;
- ABHTLC[1] = WC * 10;
- SSTAQE(P<ORQ>,WCBUF[1],ABH[1],ALM$TXT);
- CSESLE(ABHSN[0],WCBUF[1],ALM$TXT);
- IF ALMP[0] NQ 0
- THEN
- BEGIN
- FOR I=0 STEP 1 WHILE NOT (ALMP[0] EQ LIX$PORT[I] AND
- ABHSN[0] EQ LIX$NID[I]) AND
- I LQ LIXL
- DO
- BEGIN
- END
- IF I LQ LIXL
- THEN
- BEGIN
- WCB$WC[1] = 2 + (LNM$TXTL / 10);
- ABHTLC[1] = LNM$TXTL;
- CNST1 = 1;
- CNST2 = 36;
- CNST3 = 42;
- SSBSBF(LNM$TXT,CNST1,CNST2,CNST3,B<0,42>LIX$NAME[I]);
- SSTAQE(P<ORQ>,WCBUF[1],ABH[1],LNM$TXT);
- CSESLE(ABHSN[0],WCBUF[1],LNM$TXT);
- END
- END
- END
- #
- * IF THIS SM IS LOG/ER/U, THEN CONVERT SOURCE NODE I.D. AND APPEND
- * IT TO THE TEXT. CONVERT THE ERROR CODE AND APPEND IT TO THE TEXT.
- * IF THE ERROR CODE -FF- HEX THEN CONVERT THE FIRST THREE BYTES OF
- * DATA AND APPEND THEM TO THE TEXT, ELSE CONVERT THE FIRST SIX BYTES
- * OF INFORMATION AND APPEND THEM TO THE TEXT. SEND THE TEXT OFF TO
- * THE ERROR LOG FILE.
- #
- ELSE
- BEGIN
- ELT$NID[0] = XCDD(ABHSN[0]);
- ELT$EC[0] = XCHD(LOGEC[0]);
- ELT$BYT1[0] = XCHD(LOGB1[0]);
- ELT$BYT2[0] = XCHD(LOGB2[0]);
- ELT$BYT3[0] = XCHD(LOGB3[0]);
- IF LOGEC[0] EQ X"FF"
- THEN
- BEGIN
- ELT$P1[0] = ".";
- ELT$ZBYT1A[0] = 0;
- ELT$ZBYT1B[0] = 0;
- END
- ELSE
- BEGIN
- ELT$BYT4[0] = XCHD(LOGB4[0]);
- ITEMP = 0;
- B<52,4>ITEMP = LOGB51[0];
- B<56,4>ITEMP = LOGB52[0];
- ELT$BYT5[0] = XCHD(ITEMP);
- ELT$BYT6[0] = XCHD(LOGB6[0]);
- ELT$P2[0] = ".";
- ELT$ZBYT2[0] = 0;
- END
- MESSAGE(ELT$TXT,ERRLG);
- END
- RETURN; # **** RETURN **** #
- END # CSESAM #
- TERM
cdc/nos2.source/nam5871/csesam.txt ยท Last modified: 2023/08/05 17:21 by Site Administrator