*DECK CSESDE
USETEXT TEXTCS
USETEXT TEXTSS
USETEXT TXCMDCS
USETEXT TXTAPSS
USETEXT TXTSMCS
PROC CSESDE;
# TITLE - SEND DIAGNOSTICS END MESSAGE. #
BEGIN
#
** CSESDE - SEND DIAGNOSTICS END MESSAGE.
*
* D.K. ENDO 82/06/07
*
* THIS PROCEDURE SENDS THE FINAL MESSAGE WHEN NPU DIAGNOSTICS ARE
* REQUESTED.
*
* PROC CSESDE
*
* ENTRY 1. OLD/IN/N OR OLD/IN/A SM.
*
* EXIT 1. NULL TEXT TO CNQ (OLD/IN/N)
* 2. NO DIAGNOSTICS MESSAGE TO CNQ (OLD/IN/A)
*
#
#
**** PROC CSESDE - XREF LIST BEGINS.
#
XREF
BEGIN
PROC CSESLE; # SEND LOG FILE ENTRY #
PROC SSBSBF; # STORE BIT FIELD #
PROC SSTAQE; # ACCEPT QUEUE ENTRY #
END
#
****
#
DEF NOD$TXTL # 50 #; # NO DIAGNOSTICS MESSAGE TEXT LENGTH #
DEF SNM$TXTL # 30 #; # SOURCE NPU-NAME MESSAGE TEXT LENGTH #
ITEM CNST1; # INTEGER CONSTANT ---> 1 #
ITEM CNST2; # INTEGER CONSTANT ---> 2 #
ITEM CNST3; # INTEGER CONSTANT ---> 3 #
ITEM I; # LOOP INDUCTION VARIABLE #
#
THIS ARRAY DEFINES THE -NO ONLINE DIAGNOSTICS- MESSAGE TEXT SENT
WHEN AN OLD/IN/A SM IS RECEIVED.
#
ARRAY NOD$TXT [00:04] S(1);
BEGIN
ITEM NOD$TIM C(00,00,10);
ITEM NOD$MSG1 C(01,00,20) = [" NO ONLINE DIAGNOSTI"];
ITEM NOD$MSG2 C(03,00,11) = ["CS PRESENT."];
ITEM NOD$ZBYT U(04,06,54) = [0];
END
#
THIS ARRAY DEFINES THE SOURCE NPU$NAME MESSAGE TEXT.
#
ARRAY SNM$TXT [00:02] S(1);
BEGIN
ITEM SNM$TIM C(00,00,10);
ITEM SNM$MSG C(01,00,14) = ["FROM UNKNOWN: "];
ITEM SNM$ZBYT U(02,24,36) = [0];
END
CONTROL EJECT;
# #
# CSESDE CODE BEGINS HERE #
# #
#
* IF THIS SM IS OLD/IN/N, THEN SEND A NULL TEXT WITH THE INPUT
* ALLOWED FLAG SET.
#
IF WCB$SMID[0] EQ SMID"OLDINN"
THEN
BEGIN
WCB$WORD[1] = 2;
WCB$SMID[1] = SMID"TTEXT";
WCB$IAF[1] = TRUE;
ABHWORD[1] = 0;
ABHADR[1] = OLDDO[0];
SSTAQE(P<CNQ>,WCBUF[1],ABH[1],CSSM[1]);
END
#
* IF THIS SM IS OLD/IN/A, THEN SEND A -NO ONLINE DIAGNOSTICS-
* MESSAGE TEXT WITH THE INPUT ALLOWED FLAG SET. (*** NOTE - THE
* SOURCE NODE IS IN THE DN FIELD AND THE OCB ORDINAL IS IN THE
* ABN FIELD. ***)
#
ELSE
BEGIN
SNM$TIM[0] = CTM$CLOCK[0];
FOR I=0 STEP 1 WHILE ABHDN[0] NQ NPU$NID[I] AND
I LS CSNPCNT
DO
BEGIN
END
CNST1 = 1;
CNST2 = 30;
CNST3 = 42;
IF I LS CSNPCNT
THEN
BEGIN
SSBSBF(SNM$TXT,CNST1,CNST2,CNST3,B<0,42>NPU$NAME[I]);
END
ELSE
BEGIN
SSBSBF(SNM$TXT,CNST1,CNST2,CNST3," UNKNOWN");
END
WCB$WORD[1] = 2 + SNM$TXTL/10;
WCB$SMID[1] = SMID"TTEXT";
ABHWORD[1] = SNM$TXTL;
ABHADR[1] = OLDDO[0];
SSTAQE(P<CNQ>,WCBUF[1],ABH[1],SNM$TXT);
CSESLE(ABHDN[0],WCBUF[1],SNM$TXT);
NOD$TIM[0] = CTM$CLOCK[0];
WCB$WC[1] = 2 + NOD$TXTL/10;
WCB$IAF[1] = TRUE;
ABHWORD[1] = NOD$TXTL;
ABHADR[1] = OLDDO[0];
SSTAQE(P<CNQ>,WCBUF[1],ABH[1],NOD$TXT);
WCB$IAF[1] = FALSE;
CSESLE(ABHDN[0],WCBUF[1],NOD$TXT);
END
RETURN; # **** RETURN **** #
END
TERM