Pathway/iTS SCREEN COBOL Reference Manual (G06.24+, H06.03+, Pathway/iTS 1.0+)

Diagnostic Screens
Compaq NonStop™ Pathway/iTS SCREEN COBOL Reference Manual426750-001
B-4
Example B-2. DIAGNOSTIC^MESSAGE Source Listing (page 1 of 3)
PROC DIAGNOSTIC^MESSAGE( DIAG^FORMAT, MESSAGE, MSGLEN, CONTEXT );
INT .EXT DIAG^FORMAT ( DIAG^FORMAT^DEF ); ! DIAGNOSTIC !
STRING .MESSAGE; ! RETURNED - MESSAGE TO BE DISPLAYED (IN LOWER 32K).
INT .MSGLEN; ! RETURNED - LENGTH IN BYTES OF MESSAGE.
INT .EXT CONTEXT; ! ONE WORD OF "OWN" STORAGE. SET TO ZERO ON FIRST
! CALL OF DIAGNOSTIC DISPLAY SEQUENCE. !
BEGIN
!----------------------------------------------------------------------------
!
! This procedure is used to format a row of diagnostic display text.
! It is called once for each row of the display.
!
!----------------------------------------------------------------------------
STRING .S;
INT(32) S32; ! receives MOVE address !
INT TS[0:2];
INT SUBPROC ASCII^TIMESTAMP ( TS , ARRAY ) ;
INT .TS; ! TIMESTAMP TO BE CONVERTED.
STRING .ARRAY; ! TARGET OF CONVERSION.
BEGIN
!----------------------------------------------------------------------------
!
! THIS PROCEDURE CONVERTS THE TIMESTAMP FROM INTERNAL TO THE FOLLOWING
! EXTERNAL FORM: "ddMMMyy,hh:mm:ss"
!
! RETURNS - LENGTH OF TIMESTAMP STRING.
!
!----------------------------------------------------------------------------
INT T[0:6]; ! RETURN ARRAY FOR INTERNAL TIME.
STRING MONTH[3:38] = 'P' := "JANFEBMARAPRMAYJUNJULAUGSEPOCTNOVDEC";
ARRAY := " ";
ARRAY[1] ':=' ARRAY FOR 15;
CALL CONTIME( T , TS[0] , TS[1] , TS[2] );
CALL NUMOUT(ARRAY,T[2],10,2); ! DAY.
ARRAY[2] ':=' MONTH[T[1]*3] FOR 3; ! MONTH.
CALL NUMOUT(ARRAY[5],T,10,4); ! YEAR.
ARRAY[5] ':=' ARRAY[7] FOR 2;
ARRAY[7] := ","; ! ,
CALL NUMOUT(ARRAY[8],T[3],10,2); ! HOUR.
ARRAY[10] := ":"; ! :
CALL NUMOUT(ARRAY[11],T[4],10,2); ! MIN.
ARRAY[13] := ":"; ! :
CALL NUMOUT(ARRAY[14],T[5],10,2); ! SEC.
RETURN 16;
END;! ASCII^TIMESTAMP!