*DECK CSESDS
USETEXT TEXTCS
USETEXT TEXTSS
USETEXT TXCMDCS
USETEXT TXTAPSS
PROC CSESDS;
# TITLE - SEND DEBUG SIGNAL. #
BEGIN
#
** CSESDS - SEND DEBUG SIGNAL.
*
* D.G. DEPEW. 82/10/01.
*
* THIS PROCEDURE RECEIVES ERR/LGL AND UNRECOGNIZED SMS IN NON-DEBUG
* MODE ONLY (IN DEBUG MODE *CSDDNT* WILL ABORT), AND GENERATES
* CORRESPONDING UNSOLICITED REPORTS AND NETWORK LOG FILE ENTRIES TO
* SIGNAL THE OCCURANCE OF THESE ANAMOLIES.
*
* PROC CSESDS
*
* ENTRY WCBUF[0] = WORD COUNT WORD FROM ORIGINAL EVENT QUEUE
* (*EVQ*) ENTRY.
* ABHBUF[0] = APPLICATION BLOCK (EVENT) HEADER FOR THE SM
* (BASED ARRAY *ABH* IN *TXTAPSS* POINTS HERE).
* MSGBUF[0] = BODY OF THE SM (BASED ARRAYS *CSSM* IN
* *TXTSMCS* AND *APSM* IN *TXTAPSS* POINT HERE).
*
* EXIT 1. AN ENTRY HAS BEEN PLACED IN THE OPERATOR RESPONSE
* QUEUE (*ORQ*).
* 2. A HOP/LG SM ENTRY HAS BEEN PLACED THE OUTGOING
* TRAFFIC QUEUE (*OTQ*).
#
#
**** PROC CSESDS - XREF LIST.
#
XREF
BEGIN
PROC CSESLE; # SEND NETWORK LOG ENTRY #
PROC MOVEI; # MOVE STORAGE INDIRECT ADDRESS (MACREL) #
PROC SSBSBF; # STORE BITFIELD #
PROC SSTAQE; # ADD QUEUE ENTRY #
FUNC XCHD; # CONVERT INTEGER TO HEXIDECIMAL DISPLAY #
END
#
****
#
DEF LEVTMSG$ #4#; # LENGTH OF EVENT MESSAGE TEXT IN WORDS #
ITEM WP; # WORD POS FOR DISP CODE PFC/SFC IN EVENT #
ITEM BP; # BIT POS FOR DISP CODE PFC/SFC IN EVENT #
#
* THE FOLLOWING ARRAYS ARE EVENT MESSAGES FOR UNRECOGNIZED AND
* ERR/LGL SUPERVISORY MESSAGES.
#
ARRAY BADSM [00:00] S(LEVTMSG$);
BEGIN
ITEM BS$TEXT C(00,00,30) = ["UNRECOGNIZED SM, PFC/SFC = "];
ITEM BS$ZERO U(03,00,60) = [0];
END
ARRAY LOGERR [00:00] S(LEVTMSG$);
BEGIN
ITEM LE$TEXT C(00,00,30) = ["LOGICAL ERROR, PFC/SFC = "];
ITEM LE$ZERO U(03,00,60) = [0];
END
#
* CHECK WHETHER THIS IS AN ERR/LGL SM AND USE THE APPROPRIATE ERROR
* MESSAGE. STORE THE DISPLAY CODED PFC/SFC IN THE MESSAGE TEXT.
* TIME STAMP THE MESSAGE.
#
IF PFCSFC[0] EQ ERRLGL
THEN # ERR/LGL/U SM #
BEGIN
WP = 2; # SET POS OF DISP CODED PFC/SFC #
BP = 30;
SSBSBF (LOGERR, WP, BP, 24, XCHD(X"10000" + ERPSFC[0]));
MOVEI (LEVTMSG$, LOC(LOGERR), LOC(CMD$TEXT[0]));
END
ELSE # UNRECOGNIZED SM #
BEGIN
WP = 2; # SET POS OF DISP CODED PFC/SFC #
BP = 42;
SSBSBF (BADSM, WP, BP, 24, XCHD(X"10000" + PFCSFC[0]));
MOVEI (LEVTMSG$, LOC(BADSM), LOC(CMD$TEXT[0]));
END
CMD$TXT1[0] = CTM$CLOCK[0];
#
* NOW BUILD AND ISSUE THE *ORQ* AND THE HOP/LG *OTQ* ENTRIES.
#
WCB$WORD[1] = LEVTMSG$ + 3;
ABHWORD[1] = 0;
ABHADR[1] = AUDGR2$; # HOP AND CONTROL NOP #
P<MSCMD> = LOC (CMD$TXT1[0]);
SSTAQE (P<ORQ>, WCBUF[1], ABHBUF[1], MSCMD[0]);
CSESLE (0, WCBUF[1], MSCMD[0]); # ISSUE HOP/LG #
END # CSESDS #
TERM