Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Path: utzoo!mnetor!uunet!husc6!bloom-beacon!oberon!cit-vax!ucla-cs!zen!ucbvax!NMFECC.ARPA!Mail_System%UCE.MFENET From: Mail_System%UCE.MFENET@NMFECC.ARPA Newsgroups: comp.os.vms Subject: Returned/Rejected MFENET mail Message-ID: <8711152028.AA00156@ucbvax.Berkeley.EDU> Date: Sun, 15-Nov-87 15:28:38 EST Article-I.D.: ucbvax.8711152028.AA00156 Posted: Sun Nov 15 15:28:38 1987 Date-Received: Mon, 16-Nov-87 06:34:31 EST Sender: daemon@ucbvax.BERKELEY.EDU Organization: The ARPA Internet Lines: 240 Start of returned message From: Postmaster%VAX1.ACS.WASHINGTON.EDU@ccc.mfenet Subject: Undeliverable mail Date: Tue, 10 Nov 87 03:42-0800 Received: from KL.SRI.COM by NMFECC.ARPA with INTERNET ; Sat, 14 Nov 87 21:26:42 PST 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 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 To: Message-Id: 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 Subject: SYMBOL - Part 2 of 2 Sender: INFO-VAX Discussion To: Pete Pulliam Reply-to: INFO-VAX@KL.SRI.COM Comments: E: Mail origin cannot be determined. Comments: E: Original tag was FROM: Bill Costa, University Computing 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 /FAO_COUNT=3 X`009`009GlobVal`009/FAO_COUNT=3 X X.SEVERITY ERROR X`009 `009ErrSym`009/FAO_COUNT=1 X X.SEVERITY`009FATAL X`009`009Abort`009 X.END $ GoSub Convert_File $ Exit