*DECK HBSMABH
USETEXT NIPDEF
USETEXT ACB
USETEXT APPSTAT
USETEXT DUMPFLG
USETEXT MSGIDX
USETEXT NWLNTRY
USETEXT OVERLAY
USETEXT PARAMS
PROC HBSMABH(NEXTLEN); # BUILD NEW SUP MSG APPLICATION BLK HDR #
STARTIMS;
#
*1DC HBSMABH
*
* 1. PROC NAME AUTHOR DATE
* HBSMABH E. GEE 77/08/03
*
* 2. FUNCTIONAL DESCRIPTION.
* COMPUTE LENGTH IN WORDS OF SUP MSG
*
* 3. METHOD USED.
* COMPUTE LENGTH BASED ON CHAR TYPE OF MSG
*
* 4.ENTRY PARAMETERS.
* ACBADDR ADDR OF ACB CONTAINING SUP MSG IN DATA RING
*
* 5. EXIT PARAMETERS.
* NEXTLEN LENGTH OF SUP MSG
*
* 6. COMDECKS CALLED AND SYMPL TEXTS USED.
* APPSTAT DUMPFLG MSGIDX
* NIPDEF NWLNTRY OVERLAY PARAMS
* ACB
*
* 7. ROUTINES AND OVERLAYS CALLED.
* OVLCALL LOAD AND EXECUTE OVERLAY
* XERRMSG OVL ISSUE ERROR DAYFILE MESSAGE
* XTRACE RECORD PROCEDURE CALLS
*
* 8. DAYFILE MESSAGES AND OTHER IMPORTANT INFORMATION.
* NIP FATAL ERROR PROC=HBSM. THIS MESSAGE IS ISSUED IF THE
* CHARACTER TYPE IS NOT 8 BIT ASCII OR 60 BIT TRANSPARENT.
* THIS PROCEDURE IS CALLED BY HPGETSM.
*
#
STOPIMS;
#
EXTERNAL VARIABLES
#
XREF
BEGIN
PROC XTRACE;
PROC OVLCALL;
END
#
INTERNAL VARIABLES
#
ITEM TEMP;
# OUTPUT PARAMETERS #
ITEM NEXTLEN;
ITEM PNAME C(10) = "HBSM";
#**********************************************************************#
BEGIN
CONTROL IFEQ DEBUG,1;
XTRACE("HBSMA") ;
CONTROL FI;
P<ACB> = ACBADDR;
P<NWLENTRY> = ACBDRFP[0];
TEMP = NWLACT[0];
IF TEMP EQ CT8ASCII
THEN # 8 BIT ASCII - 7 1/2 CHARS PER WORD #
BEGIN
NEXTLEN = (2 * NWLTLC[0] + 14) / 15;
END
ELSE
BEGIN
IF TEMP EQ CT60TRANS
THEN # 60 BIT TRANSPARENT - 1 CHAR PER WORD #
NEXTLEN = NWLTLC[0];
ELSE
BEGIN
DMPFLG = DHBSMAB1; # STORE REASON CODE FOR DUMPING FL #
PARAMS1 = DFMSG01; # *NIP FATAL ERROR PROC=XXXX.* #
PARAMS6 = PNAME; # PROC NAME = HBSM #
OVLNAME = XERRMSGP;
OVLCALL;
END
END
NEXTLEN = NEXTLEN + ABHSIZE ;
RETURN;
END
TERM