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
-------