Mailer@CU20B.COLUMBIA.EDU (The Mailer Daemon) (11/16/87)
Message failed for the following: Info-VAX@CU20B.COLUMBIA.EDU: Can't forward - unknown host "CUTCV1" ------------ Received: from KL.SRI.COM by CU20B.COLUMBIA.EDU with TCP; Sun 15 Nov 87 22:01:03-EST Received: from UWAVM.ACS.WASHINGTON.EDU by KL.SRI.COM with TCP; Thu 12 Nov 87 19:06:20-PST P1-Message-Id: US**EDU;UWAVM.ACS.WASHINGTON.EDU:LxLvArj2 Date: Tue, 10 Nov 87 03:42-0800 X400-Trace: US**EDU; arrival Tue, 10 Nov 87 03:42-0800 action Relayed X400-Trace: US**EDU; arrival Tue, 10 Nov 87 07:25-0800 action Relayed From: The Mail Server<Postmaster@VAX1.ACS.WASHINGTON.EDU> To: <INFO-VAX@KL.SRI.COM> Subject: Undeliverable mail Message-Id: <UWAVM.ACS.WASHINGTON.EDU:LxLvArj2*> Message had a bad or missing To address. The entire text of the message follows: Received: by OREGON1 (Mailer X1.25) id 4127; Tue, 10 Nov 87 03:42:12 PST Date: Fri, 6 Nov 87 20:11 EST From: Undetermined origin c/o Postmaster <POSTMASTER@MARIST> Subject: SYMBOL - Part 2 of 2 Sender: INFO-VAX Discussion <INFO-VAX@VTVM2> To: Pete Pulliam <PETE@UWAV1> Reply-to: INFO-VAX@KL.SRI.COM Comments: <Parser> E: Mail origin cannot be determined. Comments: <Parser> E: Original tag was FROM: Bill Costa, University Computing <W_COSTA@UNHH> Comments: Warning -- RSCS tag indicates an origin of W_COSTA@UNHH $Part2: $ File_is="SYMBOL.PAS" $ Check_Sum_is=772795442 $ Copy SYS$Input VMS_SHAR_DUMMY.DUMMY X{============================================================================= } X{ X File: SYMBOL.PAS X System: VAX/VMS version 4.5 X Language: Pascal V3.5 X Author: Bill Costa (with help from a few friends) X Created on: 6-NOV-1987 X Requires: SYMBOL_MESS.MSG - Condition Value Definitions X X Comments: Demonstrates use of.... X X - the Command Definition Utility X - the Message Facility X - use of VAX/VMS Runtime Library Functions X X from within a VAX Pascal program. X X X Given a symbol name as the first and only parameter, this program X returns the symbol's value if it is found in the local or global X symbol table. Remember, this program does not claim the show the X 'best' way to do this task, or how you would want such a program to X behave, but rather it attempts to illustrate several of the mechanisms X available to the VAX Pascal programmer for taking advantage of VMS's X rich set of system services. X X X To recompile this program: X X $ PASCAL SYMBOL X $ MESSAGE SYMBOL_MESS X $ LINK/NOTRACEBACK SYMBOL,SYMBOL_MESS X X To define this program as a command: X X $ DEFINE WORKAREA 'F$ENVIROMENT("DEFAULT")' ! Assumes current X $ SET COMMAND SYMBOL ! default is where X ! the EXE is. X Usage is: X X $ SYMBOL symbolname X X X Revisions: X ----------------------------------------------------------------- X 6-NOV-1987 WFC - None to date. X X} X{============================================================================= } X`012 X{============================================================================= } X XPROGRAM Symbol(INPUT,OUTPUT); X XCONST {----------------------------- } X Local = 1; { Indicates we got either the } X Global = 2; { local or global symbol table } X {----------------------------- } X XTYPE {----------------------------- } X UnSignedWord = [WORD] 0..65535; { A small positive number. } X {----------------------------- } X XVAR {----------------------------- } X SYM_LocVal, { Condition Values supplied } X SYM_GlobVal, { by our own MSG file. Values } X SYM_ErrSym, { are picked up at link time. } X SYM_Abort : [EXTERNAL,VALUE] INTEGER; {----------------------------- } X X {----------------------------- } X SymName : VARYING [255] OF CHAR; { User supplied symbol name. } X SVal : PACKED ARRAY [1..255] OF CHAR;{ Value of the symbol. } X InLen : UnSignedWord; { Length of value returned. } X Table, { Table symbol found in. } X Stat : INTEGER; { Returned stat from RTL rout. } X {----------------------------- } X`012 X{----------------------------------------------------------------------------- } X{ Declare External Routines ------------------------------------------------- } X{----------------------------------------------------------------------------- } X X[EXTERNAL,ASYNCHRONOUS]FUNCTION LIB$STOP( X X Cond_Value : [IMMEDIATE,READONLY] INTEGER := %IMMED 1; X FAO_Params : [IMMEDIATE,READONLY,LIST,UNSAFE] INTEGER := %IMMED 0 ) X {RETURNS} : INTEGER; X X X EXTERNAL; X X{----------------------------------------------------------------------------- } X X[EXTERNAL,ASYNCHRONOUS]FUNCTION LIB$SIGNAL( X X Cond_Value : [IMMEDIATE,READONLY] INTEGER := %IMMED 1; X FAO_Params : [IMMEDIATE,READONLY,LIST,UNSAFE] INTEGER := %IMMED 0 ) X {RETURNS} : INTEGER; X X X EXTERNAL; X X{----------------------------------------------------------------------------- } X X[EXTERNAL,ASYNCHRONOUS]FUNCTION LIB$GET_SYMBOL( X X Symbol : [READONLY,CLASS_S] PACKED ARRAY [SL..SH: INTEGER] OF CHAR; X VAR Ret_Val : [WRITEONLY,CLASS_S] PACKED ARRAY [RL..RH: INTEGER] OF CHAR; X VAR Ret_Len : [WRITEONLY] UnsignedWord := %IMMED 0; X VAR Table : [WRITEONLY] INTEGER := %IMMED 0 ) X {RETURNS} : INTEGER; X X X EXTERNAL; X X{----------------------------------------------------------------------------- } X X[EXTERNAL,ASYNCHRONOUS]FUNCTION CLI$GET_VALUE( X X Name : [READONLY,CLASS_S] PACKED ARRAY [L1..U1:INTEGER] OF CHAR; X VAR Value : [WRITEONLY] VARYING [ML2] OF CHAR) X {RETURNS} : INTEGER; X X X EXTERNAL; X X{----------------------------------------------------------------------------- } X`012 X{----------------------------------------------------------------------------- } X{ Main Line ----------------------------------------------------------------- } X{----------------------------------------------------------------------------- } X XBEGIN X Stat := CLI$Get_Value('P1', SymName); X IF (NOT ODD(Stat)) X THEN LIB$STOP(SYM_Abort,0,Stat); {...and don't come back. } X X Stat := LIB$GET_SYMBOL(%STDESCR(SymName),SVal,InLen,Table); X IF (NOT ODD(Stat)) X THEN LIB$STOP(SYM_Abort,0, { same here. } X SYM_ErrSym,1,%STDESCR(SymName), X Stat); X X IF (Table = Local) X THEN LIB$SIGNAL(SYM_LocVal,2,%STDESCR(SymName),InLen,IADDRESS(SVal)) V ELSE LIB$SIGNAL(SYM_GlobVal,2,%STDESCR(SymName),InLen,IADDRESS(SVal) ) X; X XEND. {SYMBOL} X X{============================================================================= } X $ GoSub Convert_File $ File_is="SYMBOL_MESS.MSG" $ Check_Sum_is=1532052332 $ Copy SYS$Input VMS_SHAR_DUMMY.DUMMY X.TITLE Condition Value Messages for "SYMBOL, the program". X.IDENT 'V 1.0' X.FACILITY SYM, 2001 /prefix=SYM_ X X.SEVERITY`009SUCCESS X LocVal <Value of local symbol: !AS is "!AD">/FAO_COUNT=3 X`009`009GlobVal`009<Value of global symbol: !AS is "!AD">/FAO_COUNT=3 X X.SEVERITY ERROR X`009 `009ErrSym`009<Error fetching symbol: !AS>/FAO_COUNT=1 X X.SEVERITY`009FATAL X`009`009Abort`009<SYMBOL execution aborted.> X.END $ GoSub Convert_File $ Exit -------