10 ! ----- SYSTEM_MESSAGE.FUN ----- ! ! ----- FUNCTION TO RETURN THE ENGLISH ERROR MESSAGE FROM A VMS ----- ! ----- LONGWORD STATUS, IF POSSIBLE ----- ! ! ----- Last Change 05/01/89 by Brian Lomasky ----- ! ! ----- Teradyne, Inc., 179 Lincoln Street, Boston, MA 02111 ----- ! ----- (617) 482-2706, x3259 ----- ! ! ----- Neither Brian Lomasky nor Teradyne, Inc. implicitly or ----- ! ----- explicitly implies this program is usable in any way. ----- ! ----- This program is released to the public domain in an ----- ! ----- "AS-IS" condition. ----- ! ! ----- Restrictions: ----- ! ----- 1) Requires VAX BASIC V2.4 or later. ----- ! FUNCTION STRING SYSTEM_MESSAGE(LONG SYS_STATUS) OPTION TYPE = EXPLICIT ! ENSURE EVERYTHING IS DECLARED EXTERNAL LONG CONSTANT SS$_NORMAL EXTERNAL LONG CONSTANT SS$_MSGNOTFND EXTERNAL LONG CONSTANT SS$_BUFFEROVF DECLARE STRING SYSTEM_OUTPUT ! OUTPUT STRING FOR $GETMSG ! ----- RETRIEVE SYSTEM MESSAGE ----- EXTERNAL LONG FUNCTION LIB$SYS_GETMSG ! ----- RETURN SYSTEM ERROR MESSAGE ----- SELECT LIB$SYS_GETMSG(SYS_STATUS, ! MESSAGE IDENT & , ! MESSAGE LENGTH & SYSTEM_OUTPUT, ! DESTINATION STRING & 1%) ! MESSAGE CONTENT FLAG CASE SS$_NORMAL, SS$_MSGNOTFND ! SUCCESS OR MESSAGE-NOT-FOUND? SYSTEM_MESSAGE = SYSTEM_OUTPUT CASE SS$_BUFFEROVF ! BUFFER OVERFLOW? SYSTEM_MESSAGE = LEFT(SYSTEM_OUTPUT, 80%) CASE ELSE ! UNEXPECTED SYSTEM ERROR? SYSTEM_MESSAGE = "VMS Error " + NUM1$(SYS_STATUS) END SELECT END FUNCTION