Article View: vmsnet.sources
Article #144yet another correction to nodeinfo.com, part 01/01
From: mailrus!samsung!ulowell!aspen.ul...
Date: Mon, 04 Jan 1993 22:14
Date: Mon, 04 Jan 1993 22:14
324 lines
16826 bytes
16826 bytes
Submitted-by: mailrus!samsung!ulowell!aspen.ulowell.edu!welchb@uunet.UU.NET
Posting-number: Volume 4, Issue 34
Archive-name: nodeinfo/part01
Supersedes: nodeinfo: Volume 4, Issue 19
[ This is a DCL procedure that displays most of the
data returned by F$GETSYI for the node on which it
is executed. It will also attempt to do a $SHOW
CPU/FULL and to show your internet address via UCX. ]
--
Brendan Welch, UMass/Lowell, W1LPG, welchb@woods.ulowell.edu
$! ------------------ CUT HERE -----------------------
$ v='f$verify(f$trnlnm("SHARE_UNPACK_VERIFY"))'
$!
$! This archive created by VMS_SHARE Version 8.1
$! On 4-JAN-1993 13:47:43.59 By user BERRYMAN
$!
$! The VMS_SHARE software that created this archive
$! was written by Andy Harper, Kings College London UK
$! -- September 1992
$!
$! Credit is due to these people for their original ideas:
$! James Gray, Michael Bednarek
$!
$! TO UNPACK THIS SHARE FILE, CONCATENATE ALL PARTS IN ORDER
$! AND EXECUTE AS A COMMAND PROCEDURE ( @name )
$!
$! THE FOLLOWING FILE(S) WILL BE CREATED AFTER UNPACKING:
$! 1. NODEINFO.COM;1
$! 2. X.X;1
$!
$set="set"
$set symbol/scope=(nolocal,noglobal)
$f=f$parse("SHARE_UNPACK_TEMP","SYS$SCRATCH:."+f$getjpi("","PID"))
$e="write sys$error ""%UNPACK"", "
$w="write sys$output ""%UNPACK"", "
$ if .not. f$trnlnm("SHARE_UNPACK_LOG") then $ w = "!"
$ ve=f$getsyi("version")
$ if ve-f$extract(0,1,ve) .ges. "4.4" then $ goto start
$ e "-E-OLDVER, Must run at least VMS 4.4"
$ v=f$verify(v)
$ exit 44
$unpack: subroutine ! P1=filename, P2=checksum, P3=attributes
$ if f$search(P1) .eqs. "" then $ goto file_absent
$ e "-W-EXISTS, File ''P1' exists. Skipped."
$ delete 'f'*
$ exit
$file_absent:
$ if f$parse(P1) .nes. "" then $ goto dirok
$ dn=f$parse(P1,,,"DIRECTORY")
$ w "-I-CREDIR, Creating directory ''dn'"
$ create/dir 'dn'
$ if $status then $ goto dirok
$ e "-E-CREDIRFAIL, Unable to create ''dn' File skipped."
$ delete 'f'*
$ exit
$dirok:
$ w "-I-UNPACK, Unpacking file ''P1'"
$ n=P1
$ if P3 .nes. "" then $ n=f
$ if .not. f$verify() then $ define/user sys$output nl:
$ EDIT/TPU/NOSEC/NODIS/COM=SYS$INPUT 'f'/OUT='n'
PROCEDURE GetHex LOCAL x1,x2;x1:=INDEX(t,ERASE_CHARACTER(1))-1;x2:=INDEX(t,
ERASE_CHARACTER(1))-1;RETURN 16*x1+x2;ENDPROCEDURE;
PROCEDURE SkipPartsep LOOP EXITIF INDEX(ERASE_LINE,"-+-+-+-+-+-+-+-+")=1;
ENDLOOP;ENDPROCEDURE;
PROCEDURE ExpandChar CASE CURRENT_CHARACTER FROM ' ' TO 'z' ["`"]
:ERASE_CHARACTER(1);COPY_TEXT(ASCII(GetHex));[" "]:ERASE_CHARACTER(1);[
OUTRANGE,INRANGE]:MOVE_HORIZONTAL(1);ENDCASE;ENDPROCEDURE;
PROCEDURE ProcessLine s:=ERASE_CHARACTER(1);LOOP EXITIF CURRENT_OFFSET>=LENGTH(
CURRENT_LINE);ExpandChar;ENDLOOP;IF s="V" THEN APPEND_LINE;ENDIF;ENDPROCEDURE;
PROCEDURE AdvanceLine MOVE_HORIZONTAL(-CURRENT_OFFSET);MOVE_VERTICAL(1);
ENDPROCEDURE;PROCEDURE Decode POSITION(BEGINNING_OF(b));LOOP EXITIF MARK(NONE)=
END_OF(b);IF INDEX(CURRENT_LINE,"+-+-+-+-+-+-+-+-")=1 THEN SkipPartSep;
ELSE ProcessLine;AdvanceLine;ENDIF;ENDLOOP;ENDPROCEDURE;SET(FACILITY_NAME,
"UNPACK");SET(SUCCESS,OFF);SET(INFORMATIONAL,OFF);t:="0123456789ABCDEF";f:=
GET_INFO(COMMAND_LINE,"file_name");b:=CREATE_BUFFER(f,f);Decode;WRITE_FILE(b,
GET_INFO(COMMAND_LINE,"output_file"));QUIT;
$ if p3 .eqs. "" then $ goto dl
$ open/write fdl &f
$ write fdl "RECORD"
$ write fdl P3
$ close fdl
$ w "-I-CONVRFM, Converting record format to ", P3
$ convert/fdl=&f &f-1 &P1
$dl: delete 'f'*
$ if P2 .eqs. "" then $ goto ckskip
$ checksum 'P1'
$ if checksum$checksum .nes. P2 then $ -
e "-E-CHKSMFAIL, Checksum of ''P1' failed."
$ exit
$ckskip: e "-W-CHKSUMSKIP, checksum validation unavailable for ''P1'"
$ endsubroutine
$start:
$!
$ create 'f'
X$`20say`20:=`20write`20sys$output
X$`20say`20"You`20are`20on`20a`20",`20f$getsyi("HW_NAME"),`20"`20named`20",`20f
V$getsyi("NODENAME"),`20"."
X$`20say`20"It`20was`20last`20booted`20on`20",`20f$getsyi("boottime"),"."
X$`20say`20"This`20system`20has`20",`20f$getsyi("availcpu_cnt"),"`20cpu(s);"
V`20-
X`20,`20"`20",`20f$getsyi("activecpu_cnt"),"`20is/are`20active."
X$`20if`20.not`20f$getsyi("cluster_member")
X$`20then
X$`20`20say`20"It`20is`20not`20a`20member`20of`20a`20VAXCluster."
X$`20else
X$`20`20say`20"It`20is`20a`20member`20of`20a`20VAXcluster`20containing`20"-
X`20`20`20,`20f$getsyi("cluster_nodes"),"`20nodes."
X$`20`20say`20"This`20VAXcluster`20has`20a`20total`20cluster`20quorum`20of`20"-
V
X`20`20`20,`20f$getsyi("cluster_quorum"),"`20votes,`20and`20"
X$`20`20say`20"`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20",f$getsyi
V("cluster_votes"),`20"`20total`20cluster`20vote(s)."
X$`20`20say`20"This`20node's`20quorum`20value`20is`20",`20f$getsyi("node_quorum
V")-
X`20`20`20,"`20and`20it`20has`20",`20f$getsyi("node_votes"),"`20vote(s)."
X$`20endif
X$`20say`20"`20"
X$`20say`20"We`20will`20now`20execute`20the`20equivalent`20of`20showing`20F$GET
VSYI(*)"
X$`20say`20f$getsyi("activecpu_cnt"),`20`20"`09`20`09`09=activecpu_cnt"
X$`20say`20f$getsyi("availcpu_cnt"),`20`20"`09`20`09`09=availcpu_cnt"
X$`20say`20f$getsyi("archflag"),`20`20`09`20"`09`20`09`09=archflag"
X$`20say`20f$getsyi("boottime"),`20`20`09`20"`09=boottime"
X$`20say`20f$getsyi("character_emulated"),`20`09`20"`09`20`09`09=character_emul
Vated"
X$`20say`20f$getsyi("contig_gblpages"),`20`09`20"`20`09`09`09=contig_gblpages"
X$`20say`20f$getsyi("cpu"),`20`20`09`20"`09`20`09`09=cpu"
X$`20say`20f$getsyi("decimal_emulated"),`20`09`20"`09`20`09`09=decimal_emulated
V"
X$`20say`20f$getsyi("d_float_emulated"),`20`09`20"`09`20`09`09=d_float_emulated
V"
X$`20say`20f$getsyi("f_float_emulated"),`20`09`20"`09`20`09`09=f_float_emulated
V"
X$`20say`20f$getsyi("free_gblpages"),`20`09`20"`09`20`09`09=free_gbl_pages"
X$`20say`20f$getsyi("free_gblsects"),`20`09`20"`09`20`09`09=free_gbl_sects"
X$`20say`20f$getsyi("g_float_emulated"),`20`09`20"`09`20`09`09=g_float_emulated
V"
X$`20say`20f$getsyi("pagefile_free"),`20`09`20"`09`20`09`09=pagefile_free"
X$`20say`20f$getsyi("pagefile_page"),`20`09`20"`09`20`09`09=pagefile_page"
X$`20say`20f$getsyi("sid"),`20`20`09`20"`09`20`09=sid"
X$`20say`20f$getsyi("swapfile_free"),`20`09`20"`09`20`09`09=swapfile_free"
X$`20say`20f$getsyi("swapfile_page"),`20`09`20"`09`20`09`09=swapfile_page"
X$`20say`20f$getsyi("version"),`20`20`09`20"`09`20`09=version"
X$`20say`20"`20"
X$`20say`20f$getsyi("cluster_fsysid"),`20`20"`09`20`09=cluster_fsysid"
X$`20say`20f$getsyi("cluster_ftime"),`20`20`20"`09`20=cluster_ftime"
X$`20say`20f$getsyi("cluster_member"),`20`20"`09`09`09`20=cluster_member"
X$`20say`20f$getsyi("cluster_nodes"),`20`20`20"`09`09`09`20=cluster_nodes"
X$`20say`20f$getsyi("cluster_quorum"),`20`20"`09`09`09`20=cluster_quorum"
X$`20say`20f$getsyi("cluster_votes"),`20`20`20"`09`09`09`20=cluster_votes"
X$`20say`20f$getsyi("hw_model"),`20`20`20`20`20`20`20`20"`09`09`09`20=hw_model"
V
X$!`20hw_model`20>`201023`20is`20an`20ALPHA;`20otherwise`20VAX
X$`20say`20f$getsyi("hw_name"),`20`20`20`20`20`20`20`20`20"`09`09`20=hw_name"
X$`20say`20f$getsyi("nodename"),`20`20`20`20`20`20`20`20"`09`09`09`20=nodename"
V
X$`20nn`20=`20f$getsyi("nodename")`09!`20for`20use`20below
X$`20say`20f$getsyi("node_area"),`20`20`20`20`20`20`20"`09`09`09`20=node_area"
X$`20say`20f$getsyi("node_csid"),`20`20`20`20`20`20`20"`09`09`20=node_csid"
X$`20say`20f$getsyi("node_hwtype"),`20`20`20`20`20"`09`09`09`20=node_hwtype"
X$`20say`20f$getsyi("node_hwvers"),`20`20`20`20`20"`09=node_hwvers"
X$`20say`20f$getsyi("node_number"),`20`20`20`20`20"`09`09`09`20=node_number"
X$`20say`20f$getsyi("node_quorum"),`20`20`20`20`20"`09`09`09`20=node_quorum"
X$`20say`20f$getsyi("node_swincarn"),`20`20`20"`09`20=node_swincarn"
X$`20say`20f$getsyi("node_swtype"),`20`20`20`20`20"`09`09`09`20=node_swtype"
X$`20say`20f$getsyi("node_swvers"),`20`20`20`20`20"`09`09`09`20=node_swvers"
X$`20say`20f$getsyi("node_systemid"),`20`20`20"`09`20=node_systemid"
X$`20say`20f$getsyi("node_votes"),`20`20`20`20`20`20"`09`09`09`20=node_votes"
X$`20say`20f$getsyi("scs_exists"),`20`20`20`20`20`20"`09`09`09`20=scs_exists"
X$`20say`20f$getsyi("system_rights"),`20`20`20"`09`20=system_rights"
X$`20say`20f$getsyi("vector_emulator"),`20"`09`09`09`20=vector_emulator"
X$`20say`20f$getsyi("vp_mask"),`20`20`20`20`20`20`20`20`20"`09`09`09`20=vp_mask
V"
X$`20say`20f$getsyi("vp_number"),`20`20`20`20`20`20`20"`09`09`09`20=vp_number"
X$`20say`20"================================================================="
X$`20say`20"We`20will`20now`20execute`20`20$SHOW`20CPU/FULL"
X$`20on`20error`20then`20continue
X$`20show`20cpu/full
X$`20say`20"================================================================="
X$`20say`20"We`20will`20try`20to`20show`20Internet`20address."
X$!`20Another`20way`20would`20be`20to`20telnet`20to`20nn`20(which`20gives`20its
V`20address),`20then
X$!`20ctrl-`5D,`20then`20`20exit
X$!`20and`20another`20way`20would`20be`20$`20ucx`20show`20host`20'nn',`20where
V`20nn`20was`20saved`20above.
X$`20ucx`20show`20host`20'f$trnlnm("ucx$inet_host")
X$!Last`20line`20suggested`20by`20Shawn`20Clifford.
$ call unpack NODEINFO.COM;1 1065120042 ""
$!
$ create 'f'
XReceived:`20from`20rodan.UU.NET`20(`5B153.39.128.10`5D)`20by`20MVB.SAIC.COM
V`20(CHCS-MailMan`20V7.2)`20with`20SMTP
X`09id`209806918;`20Tue,`2022`20Dec`201992`2015:37:04`20PST
XReceived:`20from`20relay2.UU.NET`20by`20rodan.UU.NET`20with`20SMTP`20
X`09(5.61/UUNET-mail-drop)`20id`20AA29459;`20Tue,`2022`20Dec`2092`2018:24:12
V`20-0500
XReceived:`20from`20uunet.uu.net`20(via`20LOCALHOST.UU.NET)`20by`20relay2.UU.NE
VT`20with`20SMTP`20
X`09(5.61/UUNET-internet-primary)`20id`20AA16009;`20Tue,`2022`20Dec`2092`2018:2
V4:19`20-0500
XReceived:`20from`20mailrus.UUCP`20by`20uunet.uu.net`20with`20UUCP/RMAIL
X`09(queueing-rmail)`20id`20182352.1491;`20Tue,`2022`20Dec`201992`2018:23:52
V`20EST
XReceived:`20from`20mailrus.cc.umich.edu`20by`20destroyer.rs.itd.umich.edu`20(5
V.65/2.2)
X`09id`20AA22930;`20Tue,`2022`20Dec`2092`2016:36:55`20-0500
XReceived:`20by`20mailrus.cc.umich.edu`20(5.65/1123-1.0)
X`09id`20AA02933;`20Tue,`2022`20Dec`2092`2016:36:40`20-0500
XReceived:`20by`20ulowell.ulowell.edu`20id`20AA02639
X`20`20(5.65c+/IDA-1.4.4`20for`20uunet!vmsnet-sources);`20Tue,`2022`20Dec`20199
V2`2016:02:15`20-0500
XNewsgroups:`20vmsnet.sources
XPath:`20woods.ulowell.edu!welchb
XFrom:`20mailrus!samsung!ulowell!aspen.ulowell.edu!welchb@uunet.UU.NET
XSubject:`20yet`20another`20correction`20to`20nodeinfo.com
XMessage-Id:`20<1992Dec22.160148.1@woods.ulowell.edu>
XLines:`2079
XSender:`20mailrus!samsung!ulowell!usenet@uunet.UU.NET`20(News`20manager`20-
V`20ulowell)
XOrganization:`20University`20of`20Lowell
XDate:`20Tue,`2022`20Dec`201992`2021:01:48`20GMT
XApparently-To:`20ulowell!uunet!vmsnet-sources
X
X$`20say`20:=`20write`20sys$output
X$`20say`20"You`20are`20on`20a`20",`20f$getsyi("HW_NAME"),`20"`20named`20",`20f
V$getsyi("NODENAME"),`20"."
X$`20say`20"It`20was`20last`20booted`20on`20",`20f$getsyi("boottime"),"."
X$`20say`20"This`20system`20has`20",`20f$getsyi("availcpu_cnt"),"`20cpu(s);"
V`20-
X`20,`20"`20",`20f$getsyi("activecpu_cnt"),"`20is/are`20active."
X$`20if`20.not`20f$getsyi("cluster_member")
X$`20then
X$`20`20say`20"It`20is`20not`20a`20member`20of`20a`20VAXCluster."
X$`20else
X$`20`20say`20"It`20is`20a`20member`20of`20a`20VAXcluster`20containing`20"-
X`20`20`20,`20f$getsyi("cluster_nodes"),"`20nodes."
X$`20`20say`20"This`20VAXcluster`20has`20a`20total`20cluster`20quorum`20of`20"-
V
X`20`20`20,`20f$getsyi("cluster_quorum"),"`20votes,`20and`20"
X$`20`20say`20"`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20",f$getsyi
V("cluster_votes"),`20"`20total`20cluster`20vote(s)."
X$`20`20say`20"This`20node's`20quorum`20value`20is`20",`20f$getsyi("node_quorum
V")-
X`20`20`20,"`20and`20it`20has`20",`20f$getsyi("node_votes"),"`20vote(s)."
X$`20endif
X$`20say`20"`20"
X$`20say`20"We`20will`20now`20execute`20the`20equivalent`20of`20showing`20F$GET
VSYI(*)"
X$`20say`20f$getsyi("activecpu_cnt"),`20`20"`09`20`09`09=activecpu_cnt"
X$`20say`20f$getsyi("availcpu_cnt"),`20`20"`09`20`09`09=availcpu_cnt"
X$`20say`20f$getsyi("archflag"),`20`20`09`20"`09`20`09`09=archflag"
X$`20say`20f$getsyi("boottime"),`20`20`09`20"`09=boottime"
X$`20say`20f$getsyi("character_emulated"),`20`09`20"`09`20`09`09=character_emul
Vated"
X$`20say`20f$getsyi("contig_gblpages"),`20`09`20"`20`09`09`09=contig_gblpages"
X$`20say`20f$getsyi("cpu"),`20`20`09`20"`09`20`09`09=cpu"
X$`20say`20f$getsyi("decimal_emulated"),`20`09`20"`09`20`09`09=decimal_emulated
V"
X$`20say`20f$getsyi("d_float_emulated"),`20`09`20"`09`20`09`09=d_float_emulated
V"
X$`20say`20f$getsyi("f_float_emulated"),`20`09`20"`09`20`09`09=f_float_emulated
V"
X$`20say`20f$getsyi("free_gblpages"),`20`09`20"`09`20`09`09=free_gbl_pages"
X$`20say`20f$getsyi("free_gblsects"),`20`09`20"`09`20`09`09=free_gbl_sects"
X$`20say`20f$getsyi("g_float_emulated"),`20`09`20"`09`20`09`09=g_float_emulated
V"
X$`20say`20f$getsyi("pagefile_free"),`20`09`20"`09`20`09`09=pagefile_free"
X$`20say`20f$getsyi("pagefile_page"),`20`09`20"`09`20`09`09=pagefile_page"
X$`20say`20f$getsyi("sid"),`20`20`09`20"`09`20`09=sid"
X$`20say`20f$getsyi("swapfile_free"),`20`09`20"`09`20`09`09=swapfile_free"
X$`20say`20f$getsyi("swapfile_page"),`20`09`20"`09`20`09`09=swapfile_page"
X$`20say`20f$getsyi("version"),`20`20`09`20"`09`20`09=version"
X$`20say`20"`20"
X$`20say`20f$getsyi("cluster_fsysid"),`20`20"`09`20`09=cluster_fsysid"
X$`20say`20f$getsyi("cluster_ftime"),`20`20`20"`09`20=cluster_ftime"
X$`20say`20f$getsyi("cluster_member"),`20`20"`09`09`09`20=cluster_member"
X$`20say`20f$getsyi("cluster_nodes"),`20`20`20"`09`09`09`20=cluster_nodes"
X$`20say`20f$getsyi("cluster_quorum"),`20`20"`09`09`09`20=cluster_quorum"
X$`20say`20f$getsyi("cluster_votes"),`20`20`20"`09`09`09`20=cluster_votes"
X$`20say`20f$getsyi("hw_model"),`20`20`20`20`20`20`20`20"`09`09`09`20=hw_model"
V
X$!`20hw_model`20>`201023`20is`20an`20ALPHA;`20otherwise`20VAX
X$`20say`20f$getsyi("hw_name"),`20`20`20`20`20`20`20`20`20"`09`09`20=hw_name"
X$`20say`20f$getsyi("nodename"),`20`20`20`20`20`20`20`20"`09`09`09`20=nodename"
V
X$`20nn`20=`20f$getsyi("nodename")`09!`20for`20use`20below
X$`20say`20f$getsyi("node_area"),`20`20`20`20`20`20`20"`09`09`09`20=node_area"
X$`20say`20f$getsyi("node_csid"),`20`20`20`20`20`20`20"`09`09`20=node_csid"
X$`20say`20f$getsyi("node_hwtype"),`20`20`20`20`20"`09`09`09`20=node_hwtype"
X$`20say`20f$getsyi("node_hwvers"),`20`20`20`20`20"`09=node_hwvers"
X$`20say`20f$getsyi("node_number"),`20`20`20`20`20"`09`09`09`20=node_number"
X$`20say`20f$getsyi("node_quorum"),`20`20`20`20`20"`09`09`09`20=node_quorum"
X$`20say`20f$getsyi("node_swincarn"),`20`20`20"`09`20=node_swincarn"
X$`20say`20f$getsyi("node_swtype"),`20`20`20`20`20"`09`09`09`20=node_swtype"
X$`20say`20f$getsyi("node_swvers"),`20`20`20`20`20"`09`09`09`20=node_swvers"
X$`20say`20f$getsyi("node_systemid"),`20`20`20"`09`20=node_systemid"
X$`20say`20f$getsyi("node_votes"),`20`20`20`20`20`20"`09`09`09`20=node_votes"
X$`20say`20f$getsyi("scs_exists"),`20`20`20`20`20`20"`09`09`09`20=scs_exists"
X$`20say`20f$getsyi("system_rights"),`20`20`20"`09`20=system_rights"
X$`20say`20f$getsyi("vector_emulator"),`20"`09`09`09`20=vector_emulator"
X$`20say`20f$getsyi("vp_mask"),`20`20`20`20`20`20`20`20`20"`09`09`09`20=vp_mask
V"
X$`20say`20f$getsyi("vp_number"),`20`20`20`20`20`20`20"`09`09`09`20=vp_number"
X$`20say`20"================================================================="
X$`20say`20"We`20will`20now`20execute`20`20$SHOW`20CPU/FULL"
X$`20on`20error`20then`20continue
X$`20show`20cpu/full
X$`20say`20"================================================================="
X$`20say`20"We`20will`20try`20to`20show`20Internet`20address."
X$!`20Another`20way`20would`20be`20to`20telnet`20to`20nn`20(which`20gives`20its
V`20address),`20then
X$!`20ctrl-`5D,`20then`20`20exit
X$!`20and`20another`20way`20would`20be`20$`20ucx`20show`20host`20'nn',`20where
V`20nn`20was`20saved`20above.
X$`20ucx`20show`20host`20'f$trnlnm("ucx$inet_host")
X$!Last`20line`20suggested`20by`20Shawn`20Clifford.
X--`20
XBrendan`20Welch,`20UMass/Lowell,`20W1LPG,`20`20welchb@woods.ulowell.edu
$ call unpack X.X;1 1582657335 ""
$ v=f$verify(v)
$ exit
Technical Details
Message-ID:
<9910294@MVB.SAIC.COM>Path:
arc1-ca.pugleaf.net!sparky!uunet!paladin.american.edu!gatech!swrinde!network.ucsd.edu!mvb.saic.com!vmsnet-sourcesShow Full Headers
Complete Article Headers
Path: arc1-ca.pugleaf.net!sparky!uunet!paladin.american.edu!gatech!swrinde!network.ucsd.edu!mvb.saic.com!vmsnet-sources Newsgroups: vmsnet.sources From: mailrus!samsung!ulowell!aspen.ulowell.edu!welchb@uunet.UU.NET Subject: yet another correction to nodeinfo.com, part 01/01 Message-ID: <9910294@MVB.SAIC.COM> Lines: 324 Organization: University of Lowell Date: Mon, 04 Jan 1993 22:14:03 GMT Lines: 324 Approved: Mark.Berryman@Mvb.Saic.Com