cdc:nos2.source:nam5871:csests
Table of Contents
CSESTS
Table Of Contents
- [00007] PROC CSESTS
- [00008] SEND TERMINAL STATUS
- [00011] SEND TERMINAL STATUS.
- [00031] PROC CSESLE
- [00032] PROC SSBSBF
- [00033] FUNC SSDCAD U
- [00034] PROC SSTAQE
- [00035] FUNC XCDD C(10)
- [00036] FUNC XCHD C(10)
Source Code
- CSESTS.txt
- *DECK CSESTS
- USETEXT TEXTOV
- USETEXT TEXTCS
- USETEXT TEXTSS
- USETEXT TXTAPSS
- USETEXT TXTSMCS
- PROC CSESTS;
- # TITLE - SEND TERMINAL STATUS #
- BEGIN
- #
- ** CSESTS - SEND TERMINAL STATUS.
- *
- * D.K. ENDO 82/03/16
- *
- * THIS PROCEDURE FORMATS THE TEXT REPORTING TERMINAL STATUS FROM THE
- * INCOMING SM, AND SEND IT OUT.
- *
- * PROC CSESTS
- *
- * ENTRY 1. STU/TE/U, STU/TE/N, OR MSG/TE/A SM.
- *
- * EXIT 1. ENTRY IN CONNECTION QUEUE WITH STATUS TEXT.
- * 2. ENTRY IN OPERATOR RESPONSE QUEUE W/STATUS TEXT.
- *
- #
- #
- **** PROC CSESTS - XREF LIST BEGINS.
- #
- XREF
- BEGIN
- PROC CSESLE; # SEND LOG (FILE) ENTRY #
- PROC SSBSBF; # STORE BIT FIELD #
- FUNC SSDCAD U; # CONVERT ASCII TO DISPLAY CODE CHARACTER #
- PROC SSTAQE; # ADD QUEUE ENTRY #
- FUNC XCDD C(10); # CONVERT DECIMAL INTEGER TO DISPLAY CODE #
- FUNC XCHD C(10); # CONVERT HEX INTEGER TO DISPLAY CODE #
- END
- #
- ****
- #
- DEF TC$3270 # 18 #; # NUMERICAL VALUE FOR TC OF 3270. THIS #
- # IDENTIFIES THE LAST TC BEFORE THE USER#
- # TYPE TC-S. #
- DEF TC28$DIS # 9 #; # USER TC28 DISPLACEMENT IN TC TABLE #
- DEF TMS$TXTL # 60 #; # CHARACTER COUNT OF STATUS MESSAGE TEXT #
- DEF UNA$CMDL # 50 #; # CHARACTER COUNT OF UNACTIONED CMD TEXT #
- DEF MNS$TXTL # 40 #; # CHARACTER COUNT FOR MSG NOT SENT TEXT #
- ITEM CNST1; # CONSTANT ---> 1 #
- ITEM CNST2; # CONSTANT ---> 2 #
- ITEM CNST3; # CONSTANT ---> 3 #
- ITEM I; # LOOP INDUCTION VARIABLE #
- #
- THIS ARRAY DEFINES THE BUFFER WHERE THE NAME OF THE CURRENT
- DEVICE IS SAVED.
- #
- ARRAY CRNT$TNM [00:00] S(1);
- BEGIN
- ITEM CRNT$TRM C(00,18,07);
- END
- #
- THIS ARRAY IS USED AS A TEMPORARY FOR CHARACTER STRINGS TO BE
- PLACE IN THE TEXT CURRENTLY BEING BUILT.
- #
- ARRAY CTEMP$WORD [00:00] S(1);
- BEGIN
- ITEM CTEMP C(00,00,10);
- ITEM UTEMP U(00,18,42);
- ITEM CTEMP1 C(00,54,01);
- ITEM CTEMP2 C(00,48,02);
- ITEM CTEMP3 C(00,42,03);
- ITEM CTEMP7 C(00,18,07);
- END
- #
- THIS TABLE CONTAINS THE POSSIBLE DT VALUES THAT THE NUMERIC VALUE
- WILL MAP INTO.
- #
- DEF MX$DT # 07 #;
- ARRAY DT$TABLE [00:MX$DT] S(1);
- BEGIN
- ITEM DT$VAL C(00,00,03) = ["CON",
- "CR ",
- "LP ",
- "CP ",
- "PL ",
- "A-A",
- "A-A",
- "DT7"
- ];
- END
- #
- THIS ARRAY DEFINE THE -MESSAGE NOT SENT- TEXT.
- #
- 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$MNS C(01,12,18) = [", MESSAGE NOT SENT"];
- ITEM MNS$ZBYT I(03,00,60) = [0];
- END
- #
- THIS TABLE CONTAINS ALL THE POSSIBLE STATUS THAT A DEVICE 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 TABLE CONTAINS ALL THE POSSIBLE TERMINAL CLASSES A DEVICE CAN
- BE.
- #
- DEF MX$TC # 22 #;
- ARRAY TC$TABLE [00:MX$TC] (1);
- BEGIN
- ITEM TC$VAL C(00,00,05) = ["UNK ",
- "M33 ",
- "713 ",
- "721 ",
- "2741 ",
- "M40 ",
- "H2000",
- "X364 ",
- "T4014",
- "HASP ",
- "200UT",
- "714X ",
- "711 ",
- "714 ",
- "HPRE ",
- "734 ",
- "2780 ",
- "3780 ",
- "3270",
- "TC28 ",
- "TC29 ",
- "TC30 ",
- "TC31 "
- ];
- END
- #
- THIS ARRAY DEFINES THE TEXT OF THE TERMINAL STATUS MESSAGE
- FORMATTED BY THIS PROC.
- #
- ARRAY TMS$TXT [00:05] S(1);
- BEGIN
- ITEM TMS$TIM C(00,00,10);
- ITEM TMS$TRM C(01,00,06) = ["TERM: "];
- ITEM TMS$TNM C(01,36,07);
- ITEM TMS$C1 C(02,18,01) = [","];
- ITEM TMS$ST C(02,24,02);
- ITEM TMS$C2 C(02,36,01) = [","];
- ITEM TMS$DT C(02,42,03);
- ITEM TMS$S1 C(03,00,01) = ["/"];
- ITEM TMS$TC C(03,06,05);
- ITEM TMS$C3 C(03,36,01) = [","];
- ITEM TMS$HN C(03,42,03);
- ITEM TMS$C4 C(04,00,01) = [","];
- ITEM TMS$LNM C(04,06,07);
- ITEM TMS$S2 C(04,48,01) = ["/"];
- ITEM TMS$A1 C(04,54,02);
- ITEM TMS$S3 C(05,06,01) = ["/"];
- ITEM TMS$A2 C(05,12,02);
- ITEM TMS$ZBYT U(05,24,36) = [ 0 ];
- END
- #
- THIS ARRAY DEFINES THE TEXT FOR -UNACTIONED COMMAND-.
- #
- ARRAY UNA$CMD [00:00] S(5);
- BEGIN
- ITEM UNA$TIM C(00,00,10) = [" "];
- ITEM UNA$TRM C(01,00,06) = ["TERM: "];
- ITEM UNA$TNM C(01,36,07);
- ITEM UNA$TXT C(02,18,20) = [", UNACTIONED COMMAND"];
- ITEM UNA$ZBYT2 U(04,18,42) = [ 0 ];
- END
- CONTROL EJECT;
- # #
- # CSESTS CODE BEGINS HERE #
- # #
- #
- * BEGIN CONSTRUCTING THE LINE IMAGE FOR THE TERMINAL STATUS. CON-
- * VERT THE ASCII TERMINAL NAME TO DISPLAY CODE AND PLACE IT IN THE
- * TEXT. CONVERT THE STATUS, DEVICE TYPE, TERMINAL CLASS AND HOST
- * I.D. FIELDS AND INSERT THEM INTO THE TEXT. USING THE PORT NUMBER
- * AND SOURCE NODE FIELDS, SEARCH FOR THE NAME OF THE LINE SUPPORTING
- * THE DEVICE. IF FOUND, INSERT THE NAME INTO THE TEXT, ELSE USE
- * -UNKNOWN- AS NAME AND INSERT INTO TEXT. CONVERT THE A1 AND A2
- * FIELDS AND INSERT THEM INTO THE TEXT.
- #
- FOR I=0 STEP 1 UNTIL 6
- DO
- BEGIN
- B<(I*6),6>UTEMP[0] = SSDCAD(B<I*8,8>STUTN[0]);
- END
- CNST1 = 1;
- CNST2 = 36;
- CNST3 = 42;
- SSBSBF(TMS$TXT,CNST1,CNST2,CNST3,CTEMP$WORD);
- CRNT$TRM[0] = CTEMP7[0];
- TMS$ST[0] = ST$VAL[STUSTT[0]];
- TMS$DT[0] = DT$VAL[STUDT[0]];
- IF STUTC[0] LQ TC$3270
- THEN
- BEGIN
- TMS$TC[0] = TC$VAL[STUTC[0]];
- END
- ELSE
- BEGIN
- TMS$TC[0] = TC$VAL[STUTC[0] - TC28$DIS];
- END
- CTEMP[0] = XCDD(1000 + STUHN[0]);# CAUSES LEADING ZEROES #
- TMS$HN[0] = CTEMP3[0];
- FOR I=0 STEP 1 WHILE NOT(ABHSN[0] EQ LIX$NID[I] AND
- STUP[0] EQ LIX$PORT[I]) AND
- I LS LIXL
- DO
- BEGIN
- END
- IF I LS LIXL
- THEN
- BEGIN
- TMS$LNM[0] = LIX$NAME[I];
- END
- ELSE
- BEGIN
- TMS$LNM[0] = "UNKNOWN";
- END
- CTEMP[0] = XCHD(X"100" + STUA1[0]);
- CNST1 = 4;
- CNST2 = 54;
- CNST3 = 12;
- SSBSBF(TMS$TXT[0],CNST1,CNST2,CNST3,CTEMP$WORD);
- CTEMP[0] = XCHD(X"100" + STUA2[0]);
- TMS$A2[0] = CTEMP2[0];
- #
- * IF THIS SM IS STU/TE/U, GET THE CURRENT TIME AND APPEND IT TO THE
- * BEGINNING OF THE STATUS TEXT. SEND THE TEXT OFF TO THE OPERATOR
- * GROUP RESPONSE QUEUE WITH A GROUP AUDIENCE OF ONE. IF THE REASON
- * CODE INDICATES NOT CONFIGURED OR ALREADY IN DESIRED STATE, THEN
- * SEND THE -UNACTIONED COMMAND- TEXT TO THE OPERATOR GROUP RESPONSE
- * QUEUE WITH A GROUP AUDIENCE OF ONE.
- #
- IF WCB$SMID[0] EQ SMID"STUTE"
- THEN
- BEGIN
- TMS$TIM[0] = CTM$CLOCK[0];
- WCB$WORD[1] = 0;
- WCB$WC[1] = 2 + (TMS$TXTL / 10);
- ABHWORD[1] = TMS$TXTL;
- ABHADR[1] = AUDGR3$;
- FOR I=0 STEP 1 WHILE NPU$NID[I] NQ ABHSN[0] AND
- I LS CSNPCNT
- DO
- BEGIN
- END
- ABHABN[1] = I;
- SSTAQE(P<ORQ>,WCBUF[1],ABH[1],TMS$TXT[0]);
- CSESLE(ABHSN[0],WCBUF[1],TMS$TXT);
- IF STURCT[0] EQ RRCT"UC"
- THEN
- BEGIN
- WCB$WC[1] = 2 + (UNA$CMDL / 10);
- ABHTLC[1] = UNA$CMDL;
- CNST1 = 1;
- CNST2 = 36;
- CNST3 = 42;
- SSBSBF(UNA$CMD,CNST1,CNST2,CNST3,CRNT$TNM);
- SSTAQE(P<ORQ>,WCBUF[1],ABH[1],UNA$CMD[0]);
- CSESLE(ABHSN[0],WCBUF[1],UNA$CMD);
- END
- END
- #
- * IF THIS SM IS STU/TE/N OR MSG/TE/A, THEN SEND THE STATUS TEXT TO
- * THE OPERATOR IDENTIFIED BY THE ACN OF IN INCOMING SM.
- #
- ELSE # ASSUMED TO BE STU/TE/N OR MSG/TE/A #
- BEGIN
- WCB$WORD[1] = 0;
- WCB$WC[1] = 2 + (TMS$TXTL / 10) - 1; # SUBTRACT TIME WORD #
- WCB$SMID[1] = SMID"TTEXT";
- ABHWORD[1] = 0;
- ABHADR[1] = ABHCN[0];
- ABHTLC[1] = TMS$TXTL - 10; # SUBTRACT WORD CONTAINING TIME #
- SSTAQE(P<CNQ>,WCBUF[1],ABH[1],TMS$TXT[1]);
- #
- * IF THIS SM IS MSG/TE/A, THEN LOCATED THE SUPPORTING NPU NAME IN
- * NPUCB TABLE AND INSERT IN -MESSAGE NOT SENT- TEXT. SEND THE TEXT
- * TO THE OPERATOR IDENTIFIED BY THE ACN IN THE INCOMING SM WITH THE
- * INPUT ALLOW FLAG SET.
- #
- IF WCB$SMID[0] EQ SMID"MSGTEA"
- 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$WC[1] = 2 + (MNS$TXTL / 10);
- WCB$IAF[1] = TRUE;
- ABHTLC[1] = MNS$TXTL;
- SSTAQE(P<CNQ>,WCBUF[1],ABH[1],MNS$TXT);
- END
- END
- RETURN; # **** RETURN **** #
- END # CSESTS #
- TERM
cdc/nos2.source/nam5871/csests.txt ยท Last modified: 2023/08/05 17:21 by Site Administrator