*DECK NVFOFAD
USETEXT TEXTNVF
USETEXT TEXTSS
USETEXT TXCMDNV
USETEXT TXSMNVF
USETEXT TXTAPSS
PROC NVFOFAD(AORD);
# TITLE - FORMAT APPLICATION DATA. #
BEGIN
#
** NVFOFAD - FORMAT APPLICATION DATA.
*
* D.K. ENDO 82/05/06
* C.J. BRION 82/06/18, 83/06/23.
*
* THIS PROCEDURE FORMATS THE APPLICATION STATUS MESSAGES.
*
* PROC NVFOFAD(AORD)
*
* ENTRY 1. ORDINAL OF AST ENTRY FOR THE APPLICATION.
*
* EXIT 1. ENTRY IN THE C-LAYER QUEUE WITH MESSAGE.
*
#
#
**** PROC NVFOFAD - XREF LIST BEGINS.
#
XREF
BEGIN
PROC SSBSBF; # STORE BIT FIELD #
PROC SSTAQE; # ACCEPT QUEUE ENTRY #
FUNC XCDD U; # CONVERT INTEGER TO DECIMAL DISPLAY CODE #
END
#
****
#
ITEM AORD; # ORDINAL OF AST ENTRY FOR APPLICATION #
DEF APSTXTL # 40 #; # CHAR COUNT OF APPL STATUS TEXT #
ITEM CNST1; # CONSTANT 1 #
ITEM CNST2; # CONSTANT 2 #
ITEM CNST3; # CONSTANT 3 #
ITEM ITEMP U; # UNSIGNED INTEGER TEMPORARY #
#
THIS ARRAY DEFINES THE FORMAT OF THE APPLICATION STATUS MESSAGE.
#
ARRAY APSTXT [00:00] S(4);
BEGIN
ITEM APS$APPL C(00,00,06) = ["APPL: "];
ITEM APS$ANAM C(00,36,07);
ITEM APS$C1 C(01,18,01) = [","];
ITEM APS$ST C(01,24,02);
ITEM APS$C2 C(01,36,01) = [","];
ITEM APS$CCNT C(01,42,04);
ITEM APS$C3 C(02,06,01) = [","];
ITEM APS$MXC C(02,12,02);
ITEM APS$C4 C(02,24,01) = [","];
ITEM APS$JSN C(02,30,04);
ITEM APS$RS C(03,00,03);
ITEM APS$ZBYT U(03,18,42) = [0];
END
CONTROL EJECT;
# #
# NVFOFAD CODE BEGINS HERE #
# #
#
* GENERATE STATUS LINE ONLY IF PRIMARY APPLICATION NAME IS
* NOT ZERO.
#
IF AST$UPANAM[AORD] NQ 0
THEN
BEGIN
#
* PUT THE APPLICATION NAME IN THE STATUS TEXT. ADD THE T-A, A-A,
* AND RESERVED CONNECTION COUNTS, CONVERT THE SUM TO DISPLAY CODE
* AND PUT IT IN THE TEXT. DETERMINE THE STATUS AND PUT IT IN THE
* TEXT. PUT THE MAXIMUMCOPIES, JSN AND RS INDICATOR IN THE TEXT,
* THEN SEND THE TEXT TO THE HOP.
#
CNST1 = 0;
CNST2 = 36;
CNST3 = 42;
SSBSBF(APSTXT,CNST1,CNST2,CNST3,B<0,42>AST$ANAM[AORD]);
ITEMP = XCDD(AST$TACN[AORD] + AST$AACN[AORD] + AST$RACN[AORD]);
CNST1 = 1;
CNST2 = 42;
CNST3 = 24;
SSBSBF(APSTXT,CNST1,CNST2,CNST3,ITEMP);
IF AST$DIF[AORD]
THEN
BEGIN
APS$ST[0] = "DI";
END
ELSE IF AST$DNF[AORD]
THEN
BEGIN
APS$ST[0] = "DN";
END
ELSE IF AST$JSN[AORD] EQ " " AND
AST$TACN[AORD] EQ 0 AND
AST$CUCOP[AORD] EQ 0 AND
AST$AACN[AORD] EQ 0 AND NOT
AST$SNPF[AORD]
THEN
BEGIN
APS$ST[0] = "EN";
END
ELSE
BEGIN
APS$ST[0] = "AC";
END
#
* CONVERT THE MAX COPIES VALUE AND ADD TO TEXT.
#
ITEMP = XCDD(AST$MXCOP[AORD]);
CNST1 = 2;
CNST2 = 12;
CNST3 = 12;
SSBSBF(APSTXT,CNST1,CNST2,CNST3,ITEMP);
#
* STORE THE JSN AND RS INDICATOR INTO THE TEXT.
#
APS$JSN[0] = AST$JSN[AORD];
IF AST$RS[AORD]
THEN
APS$RS[0] = ",RS";
ELSE
APS$RS[0] = " ";
WCB$WORD[1] = 0;
WCB$WC[1] = 2 + APSTXTL/10;
ABHWORD[1] = 0;
ABHABT[1] = HOPTX$;
SSTAQE(P<CTQ>,WCBUF[1],ABHBUF[1],APSTXT);
END # IF AST$UPANAM NQ 0 #
RETURN; # **** RETURN **** #
END # NVFOFAD #
TERM