*DECK XCTLW
USETEXT NIPDEF
USETEXT NP$NWNC
PROC XCTLW(WORD,TLW); #COMPUTE TEXT LENGTH IN WORDS #
STARTIMS;
#
*1DC XCTLW
*
* 1. PROC NAME AUTHOR DATE
* XCTLW P.C.TAM 80/02/12
*
* 2. FUNCTIONAL DESCRIPTION.
* THIS ROUTINE COMPUTES THE TEXT LENGTH IN WORDS.
*
* 3. METHOD USED.
* THE TEXT LENGTH IN WORDS IS COMPUTED FROM THE APPLICATION
* CHARACTER TYPE AND THE TEXT LENGTH IN CHARACTERS.
*
* 4. ENTRY CONDITIONS.
* ABHACT APPLICATION CHARACTER TYPE
* ABHTLC APPLICATION TEXT LENGTH IN CHARACTERS
* WORD APPLICATION BLOCK HEADER
*
* 5. EXIT CONDITIONS.
* TLW TEXT LENGTH IN WORDS
*
* 6. COMDECKS CALLED AND SYMPL TEXTS USED.
* HEADER NIPDEF NP$NWNC
*
* 7. ROUTINES CALLED.
* XTRACE RECORD CALL
*
* 8. DAYFILE MESSAGES AND OTHER IMPORTANT INFORMATION
* THIS PROCEDURE IS CALLED BY BDELINK, HPGET, HPPUT,
* AND HPUTF.
*
#
STOPIMS;
ARRAY WORD [0:0] S(1);
BEGIN
*CALL HEADER
END
ITEM TLW, TMP;
XREF
BEGIN
PROC XTRACE;
END
#**********************************************************************#
BEGIN
CONTROL IFEQ DEBUG,1;
XTRACE("XCTLW") ;
CONTROL FI;
IF ABHABT[0] EQ APPNULL
THEN # A NULL BLOCK TO BE DELIVERED TO THE APPLICATION #
TLW = 0;
ELSE # COMPUTE TLW FOR NON-NULL BLOCK #
BEGIN
TMP = ABHACT[0]; # CHARACTER TPYE OF BLOCK #
TLW = (2*ABHTLC[0] + NW$ROUND[TMP])/NW$FACT[TMP];
END
RETURN;
END
TERM