cdc:nos2.source:nam5871:csesll
Table of Contents
CSESLL
Table Of Contents
- [00007] PROC CSESLL
- [00008] SEND LOGICAL LINK STATUS.
- [00011] SEND LOGICAL LINK STATUS.
- [00031] PROC CSESLE
- [00032] PROC SSBSBF
- [00033] PROC SSTAQE
- [00034] FUNC XCDD C(10)
Source Code
- CSESLL.txt
- *DECK CSESLL
- USETEXT TEXTOV
- USETEXT TEXTCS
- USETEXT TEXTSS
- USETEXT TXTAPSS
- USETEXT TXTSMCS
- PROC CSESLL;
- # TITLE - SEND LOGICAL LINK STATUS. #
- BEGIN
- #
- ** CSESLL - SEND LOGICAL LINK STATUS.
- *
- * D.K. ENDO 82/03/19
- *
- * THIS PROCEDURE FORMATS THE LOGICAL LINK MESSAGE AND SENDS IT OUT
- * TO THE OPERATORS.
- *
- * PROC CSESLL
- *
- * ENTRY 1. STU/LL/U, STU/LL/N, OR MSG/LL/A SM.
- *
- * EXIT 1. ENTRY IN THE OPERATOR RESPONSE QUEUE WITH THE TEXT
- * 2. MESSAGE TO THE C-LAYER VIA THE CONNECTION QUEUE.
- *
- #
- #
- **** PROC CSESLL - XREF LIST BEGINS.
- #
- XREF
- BEGIN
- PROC CSESLE; # SEND LOG (FILE) ENTRY #
- PROC SSBSBF; # STORE BIT FIELD #
- PROC SSTAQE; # ADD QUEUE ENTRY #
- FUNC XCDD C(10); # CONVERT DECIMAL INTEGER TO DISPLAY CODE #
- END
- #
- ****
- #
- DEF LLS$TXTL # 70 #; # CHAR COUNT OF LOGLINK STATUS TEXT #
- DEF LT$HN # 1 #; # LINK TYPE -- HOST-NPU #
- DEF MNS$TXTL # 40 #; # CHAR COUNT OF -MESSAGE NOT SENT- TEXT #
- DEF UNC$TXTL # 40 #; # CHAR COUNT OF -UNACTIONED COMMAND- TEXT #
- ITEM CNST ; # CONSTANT ---> 1 #
- ITEM CNST2; # CONSTANT ---> 2 #
- ITEM CNST3; # CONSTANT ---> 3 #
- ITEM HID1; # NODE I.D. OF LLINK SUPPORTED BY NPU1 #
- ITEM HID2; # NODE I.D. OF LLINK SUPPORTED BY NPU2 #
- ITEM I; # LOOP INDUCTION VARIABLE #
- ITEM J; # LOOP INDUCTION VARIABLE #
- ITEM NID1; # NODE I.D. ONE #
- ITEM NID2; # NODE I.D. TWO #
- #
- THIS ARRAY IS USED AS A TEMPORARY TO STORE CHARACTER STRINGS THAT
- WILL LATER BE PUT INTO A TEXT.
- #
- ARRAY CTEMP$WORD [00:00] S(1);
- BEGIN
- ITEM CTEMP C(00,00,10);
- ITEM CTEMP1 C(00,54,01);
- ITEM CTEMP3 C(00,42,03);
- END
- #
- THIS ARRAY DEFINES THE LOGICAL LINK STATUS MESSAGE TEXT TO BE SENT
- WHEN THIS PROC IS INVOKED.
- #
- ARRAY LLS$TXT [00:06] S(1);
- BEGIN
- ITEM LLS$TIM C(00,00,10);
- ITEM LLS$LLK C(01,00,07) = ["LLINK: "];
- ITEM LLS$LLN C(01,42,07);
- ITEM LLS$C1 C(02,24,01) = [","];
- ITEM LLS$ST C(02,30,02);
- ITEM LLS$REG C(02,42,04) = [",RL="];
- ITEM LLS$RL C(03,06,01);
- ITEM LLS$C2 C(03,12,01) = [","];
- ITEM LLS$LT C(03,18,03);
- ITEM LLS$C3 C(03,36,01) = [","];
- ITEM LLS$NN1 C(03,42,07);
- ITEM LLS$SL1 C(04,24,01) = ["/"];
- ITEM LLS$NID1 C(04,30,03);
- ITEM LLS$C4 C(04,48,01) = [","];
- ITEM LLS$NN2 C(04,54,07);
- ITEM LLS$SL2 C(05,36,01) = ["/"];
- ITEM LLS$NID2 C(05,42,03);
- ITEM LLS$ZBYT U(06,00,60) = [ 0 ];
- END
- #
- THIS ARRAY DEFINES THE -MESSAGE NOT SENT- TEXT SENT WHEN A
- MSG/LL/A IS RECEIVED.
- #
- ARRAY MNS$TXT [00:00] S(4);
- BEGIN
- ITEM MNS$LLK C(00,00,07) = ["LLINK: "];
- ITEM MNS$LNM C(00,42,07);
- ITEM MNS$MSG C(01,24,18) = [", MESSAGE NOT SENT"];
- ITEM MNS$ZBYT U(04,12,48) = [ 0 ];
- END
- #
- THIS TABLE CONTAINS ALL THE POSSIBLE STATUS THAT A LOGICAL LINK
- CAN HAVE. THE STATUS VALUE CAN BE USED TO INDEX INTO THIS TABLE.
- #
- DEF MX$ST # 5 #;
- ARRAY ST$TABLE [01:MX$ST] S(1);
- BEGIN
- ITEM ST$VAL C(00,00,02) = [,
- "DI",
- "DN",
- "EN",
- "AC"
- ];
- END
- #
- THIS ARRAY DEFINES THE -UNACTIONED COMMAND- MESSAGE TEXT THAT IS
- SENT WHEN A STU/LL/U HAS A REASON CODE OF EIGHT.
- #
- ARRAY UNC$TXT [00:00] S(4);
- BEGIN
- ITEM UNC$TIM C(00,00,10) = [" "];
- ITEM UNC$MSG C(01,00,19) = [" UNACTIONED COMMAND"];
- ITEM UNC$ZBYT1 U(02,54,06) = [ 0 ];
- ITEM UNC$ZBYT2 U(03,00,60) = [ 0 ];
- END
- #
- THIS ARRAY DEFINES THE NAME USED WHEN A NAME CAN NOT BE FOUND
- #
- ARRAY UNK$TXT [00:00] S(1);
- BEGIN
- ITEM UNK$UNK C(00,18,07) = ["UNKNOWN"];
- END
- CONTROL EJECT;
- # #
- # CSESLL CODE BEGINS HERE #
- # #
- #
- * FORMAT THE LOGICAL LINK STATUS MESSAGE TEXT. SEARCH THE LOGICAL
- * LINK XREF TABLE FOR THIS LOGICAL LINK. IF FOUND THEN INSERT THE
- * LOGLINK NAME, SEARCH THE NPUCB-S FOR THE NAMES OF THE NPU-S
- * SUPPORTING THE LINK. INSERT THEM INTO THE TEXT. CONVERT THE NODE
- * I.D.-S OF THE NPU-S AND INSERT THEM INTO THE TEXT. IF AN ENTRY WAS
- * NOT FOUND, THEN INSERT -UNKNOWN- FOR THE LOGLINK AND NPU NAMES.
- * CONVERT THE STATUS, REGULATION LEVEL, AND LINK TYPE AND APPEND
- * THEM TO THE TEXT.
- #
- FOR I=0 STEP 1 WHILE NOT((STUN1[0] EQ LLX$HID1[I] AND
- STUN2[0] EQ LLX$HID2[I]) OR
- (STUN1[0] EQ LLX$HID2[I] AND
- STUN2[0] EQ LLX$HID1[I])) AND
- I LS LLXREFL/2
- DO
- BEGIN
- END
- IF I LS LLXREFL/2
- THEN
- BEGIN
- CNST = 1;
- CNST2 = 42;
- SSBSBF(LLS$TXT,CNST,CNST2,CNST2,B<0,42>LLX$WORD[I]);
- IF LLX$HID1[I] EQ STUN1[0]
- THEN
- BEGIN
- NID1 = LLX$NID1[I];
- NID2 = LLX$NID2[I];
- HID1 = LLX$HID1[I];
- HID2 = LLX$HID2[I];
- END
- ELSE
- BEGIN
- NID1 = LLX$NID2[I];
- NID2 = LLX$NID1[I];
- HID1 = LLX$HID2[I];
- HID2 = LLX$HID1[I];
- END
- FOR J=0 STEP 1 WHILE NID1 NQ NPU$NID[J] AND
- J LS CSNPCNT
- DO
- BEGIN
- END
- IF J LS CSNPCNT
- THEN
- BEGIN
- CNST = 3;
- CNST2 = 42;
- SSBSBF(LLS$TXT,CNST,CNST2,CNST2,B<0,42>NPU$WORD[J]);
- END
- ELSE
- BEGIN
- CNST = 3;
- CNST2 = 42;
- SSBSBF(LLS$TXT,CNST,CNST2,CNST2,UNK$TXT);
- END
- CTEMP[0] = XCDD(1000 + HID1);
- LLS$NID1[0] = CTEMP3[0];
- FOR J=0 STEP 1 WHILE NID2 NQ NPU$NID[J] AND
- J LS CSNPCNT
- DO
- BEGIN
- END
- IF J LS CSNPCNT
- THEN
- BEGIN
- CNST = 4;
- CNST2 = 54;
- CNST3 = 42;
- SSBSBF(LLS$TXT,CNST,CNST2,CNST3,B<0,42>NPU$WORD[J]);
- END
- ELSE
- BEGIN
- CNST = 4;
- CNST2 = 54;
- CNST3 = 42;
- SSBSBF(LLS$TXT,CNST,CNST2,CNST3,UNK$TXT);
- END
- CTEMP[0] = XCDD(1000 + HID2);
- LLS$NID2[0] = CTEMP3[0];
- END
- ELSE
- BEGIN
- CNST = 1;
- CNST2 = 42;
- SSBSBF(LLS$TXT,CNST,CNST2,CNST2,UNK$TXT);
- CNST = 3;
- CNST2 = 42;
- SSBSBF(LLS$TXT,CNST,CNST2,CNST2,UNK$TXT);
- CTEMP[0] = XCDD(1000 + STUN1[0]);
- LLS$NID1[0] = CTEMP3[0];
- CNST = 4;
- CNST2 = 42;
- CNST3 = 54;
- SSBSBF(LLS$TXT,CNST,CNST3,CNST2,UNK$TXT);
- CTEMP[0] = XCDD(1000 + STUN2[0]);
- LLS$NID2[0] = CTEMP3[0];
- END
- LLS$ST[0] = ST$VAL[STUSTL[0]];
- CTEMP[0] = XCDD(STURL[0]);
- LLS$RL[0] = CTEMP1[0];
- IF STULT[0] EQ LT$HN
- THEN
- BEGIN
- LLS$LT[0] = "H-N";
- END
- ELSE
- BEGIN
- LLS$LT[0] = "H-H";
- END
- #
- * IF THIS SM IS STU/LL/U, THEN APPEND THE TIME TO THE MESSAGE, SEND
- * THE TEXT OFF TO THE OPERATOR RESPONSE QUEUE WITH AN AUDIENCE GROUP
- * OF ONE (HOP AND ALL NOP-S). IF THE REASON CODE IS NON-ZERO THEN
- * APPEND THE TIME TO THE -UNACTIONED COMMAND- TEXT AND SEND IT OFF
- * TO THE OPERATOR RESPONSE QUEUE WITH AN AUDIENCE GROUP OF ONE.
- #
- IF WCB$SMID[0] EQ SMID"STULL"
- THEN
- BEGIN
- LLS$TIM[0] = CTM$CLOCK;
- WCB$WORD[1] = 0;
- WCB$WC[1] = 2 + (LLS$TXTL / 10);
- ABHWORD[1] = LLS$TXTL;
- ABHADR[1] = AUDGR3$;
- FOR J=0 STEP 1 WHILE NPU$NID[J] NQ ABHSN[0] AND
- J LS CSNPCNT
- DO
- BEGIN
- END
- ABHABN[1] = J;
- SSTAQE(P<ORQ>,WCBUF[1],ABH[1],LLS$TXT[0]);
- CSESLE(ABHSN[0],WCBUF[1],LLS$TXT);
- IF STURCL[0] NQ 0
- THEN
- BEGIN
- WCB$WC[1] = 2 + (UNC$TXTL / 10);
- ABHTLC[1] = UNC$TXTL;
- SSTAQE(P<ORQ>,WCBUF[1],ABH[1],UNC$TXT);
- CSESLE(ABHSN[0],WCBUF[1],UNC$TXT);
- END
- END
- #
- * IF THIS SM IS STU/LL/N OR MSG/LL/A, THEN SEND THE TEXT TO THE
- * OPERATOR IDENTIFIED BY THE ACN VIA THE C-LAYER, WITH THE INPUT
- * ALLOWED FLAG CLEARED.
- #
- ELSE # THIS SM IS NOT STU/LL/U, ASSUME IT TO BE#
- BEGIN # STU/LL/N OR MSG/LL/A. #
- WCB$WORD[1] = 0;
- WCB$SMID[1] = SMID"TTEXT";
- WCB$WC[1] = 2 + (LLS$TXTL / 10) - 1;
- ABHWORD[1] = 0;
- ABHADR[1] = ABHCN[0];
- ABHTLC[1] = LLS$TXTL - 10;
- SSTAQE(P<CNQ>,WCBUF[1],ABH[1],LLS$TXT[1]);
- #
- * IF THIS SM IS MSG/LL/A, SEND A -MESSAGE NOT SENT- TEXT TO THE
- * OPERATOR VIA THE C-LAYER.
- #
- IF WCB$SMID[0] EQ SMID"MSGLLA"
- THEN
- BEGIN
- WCB$WC[1] = 2 + (MNS$TXTL / 10);
- ABHTLC[1] = MNS$TXTL;
- WCB$IAF[1] = TRUE; # SET INPUT ALLOWED #
- CNST = 0;
- CNST2 = 42;
- SSBSBF(MNS$TXT,CNST,CNST2,CNST2,B<0,42>LLX$WORD[I]);
- SSTAQE(P<CNQ>,WCBUF[1],ABH[1],MNS$TXT);
- END
- END
- RETURN; # **** RETURN **** #
- END # CSESLL #
- TERM
cdc/nos2.source/nam5871/csesll.txt ยท Last modified: 2023/08/05 17:21 by Site Administrator