From: SMTP%"DSJ@WKUVX1.WKU.EDU" 18-JUL-1994 18:15:54.96 To: EVERHART CC: Subj: JUNE94.TABLES X-FileServer: Digital Systems Journal File Server Date: Mon, 18 Jul 1994 17:14:27 CDT Sender: DSJ-Mgr@WKUVX1.WKU.EDU Errors-To: DSJ-Mgr@WKUVX1.WKU.EDU Warnings-To: <> From: DSJ-Mgr@WKUVX1.WKU.EDU Reply-To: DSJ@WKUVX1.WKU.EDU Subject: JUNE94.TABLES To: EVERHART@arisia.gce.com $! ------------------ CUT HERE ----------------------- $ v='f$verify(f$trnlnm("SHARE_UNPACK_VERIFY"))' $! $! This archive created: $! Name : TABLES $! By : Hunter Goatley $! Date : 8-JUN-1994 14:44:37.16 $! Using: VMS_SHARE 8.4, (C) 1993 Andy Harper, Kings College London UK $! $! 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. TABLES.DSJ;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 = "!" $ if f$getsyi("CPU") .gt. 127 then $ goto start $ 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,P4=size $ 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: $ x=f$search(P1) $ if x .eqs. "" then $ goto file_absent $ e "-W-EXISTS, File ''P1' exists. Skipped" $ delete 'f'* $ exit $file_absent: $ w "-I-UNPACK, Unpacking ", P5, " of ", P6, " - ", P1, " - ", P4, " Blocks" $ 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/NOJOURNAL 'f'/OUT='n' PROCEDURE GetHex(s,p)LOCAL x1,x2;x1:=INDEX(t,SUBSTR(s,p,1))-1;x2:=INDEX(t, SUBSTR(s,p+1,1))-1;RETURN 16*x1+x2;ENDPROCEDURE;PROCEDURE SkipPartsep LOCAL m; LOOP m:=MARK(NONE);EXITIF m=END_OF(b);DELETE(m);EXITIF INDEX(ERASE_LINE, "-+-+-+-+-+-+-+-+")=1;ENDLOOP;ENDPROCEDURE;PROCEDURE ProcessLine LOCAL c,s,l,b, n,p;c := ERASE_CHARACTER(1);s := ERASE_LINE;IF c = "X" THEN SPLIT_LINE; ENDIF; MOVE_HORIZONTAL(-1);l := LENGTH(s);p := 1;LOOP EXITIF p > l;c := SUBSTR(s,p,1); p := p+1;CASE c FROM ' ' TO '`' ['`']: COPY_TEXT(ASCII(GetHex(s,p))); p:=p+2;[ ' ']: p:=p+1;[INRANGE,OUTRANGE]: COPY_TEXT(c);ENDCASE;ENDLOOP;ENDPROCEDURE; PROCEDURE Decode LOCAL m;POSITION(BEGINNING_OF(b));LOOP m:=MARK(NONE);EXITIF m= END_OF(b);DELETE(m);IF INDEX(CURRENT_LINE,"+-+-+-+-+-+-+-+-")= 1 THEN SkipPartSep;ELSE ProcessLine;MOVE_HORIZONTAL(1);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'* $ checksum 'P1' $ if checksum$checksum .nes. P2 then $ - e "-E-CHKSMFAIL, Checksum of ''P1' failed." $ exit $ endsubroutine $start: $! $ create 'f' X`5Binsert`201`5D X X$!+ X$!`20Create`20a`20dummy`20logical`20name`20table`20to`20be`20used`20as`20a`20r Vegular`20logical X$!`20name.`20`20We`20will`20later`20define`20Product_Select`20to`20point`20to V`20other`20real X$!`20logical`20name`20tables. X$!- X$`20Create/Name_Table`20Product_Select X$!+ X$!`20Include`20this`20dummy`20logical`20name`20table`20in`20the`20LNM$JOB`20se Varch`20list. X$!`20Note`20after`20invoking`20TABLES.COM`20that`20LNM$JOB_nnnnnnnn`20is`20sti Vll X$!`20included`20in`20the`20definition`20of`20LNM$JOB. X$!- X$`20Show`20Logical/Table=LNm$Process_Directory`20LNM$JOB X X`20`20`20"LNM$JOB"`20=`20"LNM$JOB_829DDD20"`20(LNM$PROCESS_DIRECTORY) X X$`20@Tables.Com`20Product_Select`20Job X$`20Show`20Logical/Table=LNm$Process_Directory`20LNM$JOB X X`20`20`20"LNM$JOB"`20=`20"LNM$JOB_829DDD20"`20(LNM$PROCESS_DIRECTORY) X`20`20`20`20`20`20`20`20=`20"PRODUCT_SELECT" X1`20`20"PRODUCT_SELECT"`20`5Btable`5D`20=`20""`20(LNM$PROCESS_DIRECTORY) X X$!+ X$!`20Create`20separate`20logical`20name`20tables`20for`20each`20product. X$!- X$`20Create/Name_Table`20Product_A X$`20Create/Name_Table`20Product_B X$!+ X$!`20Fill`20each`20products`20logical`20name`20table`20with`20the`20products V`20logical X$!`20name`20definitions. X$!- X$`20Define/Table=Product_A`20Logical_01`20String_A01 X$`20Define/Table=Product_A`20Logical_02`20String_A02 X$`20Define/Table=Product_A`20Logical_03`20String_A03 X$`20Define/Table=Product_B`20Logical_01`20String_B01 X$`20Define/Table=Product_B`20Logical_02`20String_B02 X$`20Define/Table=Product_B`20Logical_03`20String_B03 X$!+ X$!`20Define`20DCL`20symbols`20to`20cause`20TABLES.COM`20to`20define`20the`20du Vmmy`20logical X$!`20name`20table`20to`20point`20to`20the`20product`20table`20of`20your`20choi Vce.`20`20This X$!`20will`20include`20one`20and`20only`20one`20PRODUCT_x`20table`20in`20the`20 VLNM_$JOB X$!`20search`20list. X$!- X$`20PRODA`20:==`20@Tables.Com`20Product_A`20Product_Select`20User X$`20PRODB`20:==`20@Tables.Com`20Product_B`20Product_Select`20User X$!+ X$!`20Invoke`20the`20DCL`20symbol`20of`20your`20choice.`20`20Product`20switchin Vg`20is`20fast X$!`20and`20cheap.`20`20Note`20after`20invoking`20TABLES.COM`20to`20redefine X$!`20Product_Select`20that`20either`20Product_A`20or`20Product_B`20is`20automa Vtically X$!`20in`20the`20job`20list,`20but`20never`20both`20at`20the`20same`20time. X$!- X$`20PRODA X$`20Show`20Logical/Table=LNm$Process_Directory`20LNM$JOB X X`20`20`20"LNM$JOB"`20=`20"LNM$JOB_829DDD20"`20(LNM$PROCESS_DIRECTORY) X`20`20`20`20`20`20`20`20=`20"PRODUCT_SELECT" X1`20`20"PRODUCT_SELECT"`20=`20"PRODUCT_A"`20(LNM$PROCESS_DIRECTORY) X2`20`20"PRODUCT_A"`20`5Btable`5D`20=`20""`20(LNM$PROCESS_DIRECTORY) X X$`20Show`20Logical/Job`20Logical_* X X(LNM$JOB_829DDD20) X X(PRODUCT_A) X X`20`20"LOGICAL_01"`20=`20"STRING_A01" X`20`20"LOGICAL_02"`20=`20"STRING_A02" X`20`20"LOGICAL_03"`20=`20"STRING_A03" X X$`20PRODB X$`20Show`20Logical/Table=LNm$Process_Directory`20LNM$JOB X X`20`20`20"LNM$JOB"`20=`20"LNM$JOB_829DDD20"`20(LNM$PROCESS_DIRECTORY) X`20`20`20`20`20`20`20`20=`20"PRODUCT_SELECT" X1`20`20"PRODUCT_SELECT"`20=`20"PRODUCT_B"`20(LNM$PROCESS_DIRECTORY) X2`20`20"PRODUCT_B"`20`5Btable`5D`20=`20""`20(LNM$PROCESS_DIRECTORY) X X$`20Show`20Logical/Job`20Logical_* X X(LNM$JOB_829DDD20) X X(PRODUCT_B) X X`20`20"LOGICAL_01"`20=`20"STRING_B01" X`20`20"LOGICAL_02"`20=`20"STRING_B02" X`20`20"LOGICAL_03"`20=`20"STRING_B03" X X= X X`5Binsert`202`5D X X$`20CREATE/NAME_TABLE/PARENT_TABLE=LNM$PROCESS_DIRECTORY`20PRODUCT_SELECT`20 X$`20DEASSIGN/TABLE=LNM$PROCESS_DIRECTORY`20PRODUCT_SELECT X X= X X`5Binsert`203`5D X X$`20DEFINE/TABLE=LNM$PROCESS_DIRECTORY`20PRODUCT_SELECT`20PRODUCT_A X X= X X`5Binsert`204`5D X X$`20DEFINE/TABLE=LNM$PROCESS_DIRECTORY`20LNM$JOB`20- XLNM$JOB_xxxxxxxx,PRODUCT_SELECT X X= X X`5BFigure`201`5D X X X X$!+ X$!`20T`20A`20B`20L`20E`20S`20.`20C`20O`20M X$!`20Shelley`20McClanahan`20`26`20Bill`20Law,`20Cincom`20Systems`20Inc.`201993 V X$!`20See`20help`20text`20below`20for`20information`20regarding`20function`20an Vd`20use. X$!- X$`20GoSub`20Do_Initialization X$`20If`20P1.EqS.""`20.Or.`20P1.EqS."?" X$`20Then X$`20`20`20`20`20`20`20GoSub`20Output_Help X$`20`20`20`20`20`20`20Finished`20=`20True X$`20EndIf`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20 V`20`20`20`20`20`20`20`20`20`20!End`20of`20help X$`20If`20.Not.`20Finished`20Then`20GoSub`20Validate_Parameters X$`20If`20.Not.`20Finished`20Then`20GoSub`20Has_Logical_Been_Defined X$`20If`20.Not.`20Finished`20Then`20GoSub`20Set_Up_Logical_Value X$`20If`20.Not.`20Finished`20Then`20- X`20`20`20`20`20`20`20`20Define/NoLog/Table='Directory_Name'`20'Logical_Name_Ta Vble'`20'Value' X$`20Exit X$!**************************************************************************** V** X$!+ X$!`20Do_Initialization`20Subroutine X$!- X$`20Do_Initialization:`20 X$`20`20`20`20`20`20`20Set`20:=`20Set`20`20`20`20`20`20`20`20`20`20`20`20`20`20 V`20`20`20`20`20`20`20`20!Prevent`20external`20symbols`20from`20altering X$`20`20`20`20`20`20`20Set`20Symbol/Scope=NoGlobal`20`20`20`20`20`20`20!`20`20o Vur`20behaviour`20here X$`20`20`20`20`20`20`20Set`20NoOn X$`20`20`20`20`20`20`20P1`20=`20F$Edit(P1,"Upcase")`20`20`20`20`20`20`20`20!Let V's`20not`20be`20case`20sensitive X$`20`20`20`20`20`20`20P2`20=`20F$Edit(P2,"Upcase")`20`20`20`20`20`20`20`20!`20 V`20" X$`20`20`20`20`20`20`20P3`20=`20F$Edit(P3,"Upcase")`20`20`20`20`20`20`20`20!`20 V`20" X$`20`20`20`20`20`20`20Wso`20:=`20Write`20Sys$Output`20`20`20`20`20`20`20`20`20 V!Convenient`20shorthand X$`20`20`20`20`20`20`20True`20=`201.Eq.1`20`20`20`20`20`20`20`20`20`20`20`20`20 V`20`20`20`20`20`20!`20`20" X$`20`20`20`20`20`20`20False`20=`20.Not.True`20`20`20`20`20`20`20`20`20`20`20 V`20`20`20`20!`20`20" X$`20`20`20`20`20`20`20Finished`20=`20False`20`20`20`20`20`20`20`20`20`20`20`20 V`20`20`20`20!If`20true`20then`20exit X$`20Return`20!`20End`20of`20Do_Initialization X$!**************************************************************************** V** X$!+ X$!`20Subroutine`20to`20Validate_Parameters X$! X$!`20`20`20`20`20`20When`20P3`20is`20defined`20as`20shown`20in`20the`20below V`20table,`20Logical_Table_Name X$!`20`20`20`20`20`20will`20have`20the`20below`20value: X$! X$!`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20P3`20`7C`20`20`20 V`20`20`7C`20`20`20`20USER`20`20`20`20`7C`20`20`20`20LIST`20`20`20`20`7C X$!`20-------------------+------------+------------+------------+ X$!`20Logical_Table_Name`20`7C`20LNM$'P2'`20`20`20`7C`20'P2'`20`20`20`20`20`20 V`20`7C`20'P2'`20`20`20`20`20`20`20`7C X$! X$!`20`20`20`20`20`20In`20all`20cases`20the`20parent`20logical`20name`20table, V`20Directory_Name,`20will X$!`20`20`20`20`20`20be`20"LNM$PROCESS_DIRECTORY". X$!- X$`20Validate_Parameters:`20 X$`20`20`20`20`20`20`20If`20P3.NES.""`20.And.`20P3.NES."USER"`20.And.`20P3.NES. V"LIST" X$`20`20`20`20`20`20`20Then X$`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20Wso`20"P3`20=`20""''P3'""`20is V`20not`20a`20valid`20entry-" X X X X$`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20Wso`20"P3`20must`20be`20either V`20blank,`20USER,`20LIST" X$`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20Wso`20"Use`20""$`20@TABLES.COM V`20?""`20for`20help." X$`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20Finished`20=`20True X$`20`20`20`20`20`20`20Else X$`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20Directory_Name`20=`20"LNM$PROCES VS_DIRECTORY" X$`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20If`20P3.EqS."" X$`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20Then X$`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20Logical_ VName_Table`20=`20"LNM$"`20+`20(P2-"LNM$") X$`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20Else`20`20`20`20`20`20`20`20`20 V`20`20`20!`20P3`20is`20either`20USER`20or`20LIST X$`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20Logical_ VName_Table`20=`20P2 X$`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20EndIf X$`20`20`20`20`20`20`20EndIf X$`20Return`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20!`20End`20of`20Subro Vutine`20Validate_Parameters X$!**************************************************************************** V** X$!+ X$!`20Subroutine`20Has_Logical_Been_Defined X$! X$!`20`20`20`20`20`20Has`20this`20logical`20been`20defined`20as`20a`20non-searc Vh`20list`20logical? X$!- X$Has_Logical_Been_Defined:`20 X$!+ X$!`20`20`20`20`20`20Max_Index`20starts`20at`200,`20so`20the`20number`20of`20el Vements`20in`20the`20search`20list`20is X$!`20`20`20`20`20`20Max_Index`20+`201. X$!- X$`20`20`20`20`20`20`20Max_Index`20=`20F$TrnLNm(Logical_Name_Table,`20Directory V_Name,,,,`20"Max_Index") X$!+ X$!`20`20`20`20`20`20If`20Max_Index`20is`20a`20null`20string`20then`20the`20ent Vered`20logical`20name`20is X$!`20`20`20`20`20`20undefined. X$! X$!`20`20`20`20`20`20If`20the`20logical`20passed`20in`20was`20already`20defined V,`20and`20not`20part`20of`20a`20search X$!`20`20`20`20`20`20list,`20then`20set`20the`20flag`20to`20exit. X$!- X$`20`20`20`20`20`20`20If`20Max_Index.EqS."" X$`20`20`20`20`20`20`20Then`20 X$`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20Wso`20"''Logical_Name_Table'`20i Vs`20not`20defined" X$`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20Finished`20=`20True X$`20`20`20`20`20`20`20Else X$`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20If`20Max_Index.Eq.0`20.And.`20- V X`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20P1.EqS.F$TrnLNm(Logic Val_Name_Table,Directory_Name) X$`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20Then X$`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20Finished V`20=`20True X$`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20EndIf X$`20`20`20`20`20`20`20EndIf X$Return`20`20`20`20`20`20`20`20`20!`20End`20of`20Subroutine`20Has_Logical_Been V_Defined X$!**************************************************************************** V** X$!+ X$!`20Subroutine`20Set_Up_Logical_Value: X$! X$!`20`20`20`20`20`20Determine`20whether`20this`20is`20a`20search`20list`20logi Vcal,`20or`20a`20USER`20logical X$!`20`20`20`20`20`20name`20table,`20as`20opposed`20to`20a`20standard`20VMS`20l Vogical`20(LNM$??).`20`20If`20the X$!`20`20`20`20`20`20logical`20name`20exists,`20but`20does`20not`20have`20any V`20values,`20Max_Index`20will`20be`20-1. X X X X$! X$!`20`20`20`20`20`20Run`20through`20the`20existing`20search`20list`20and`20the Vn`20add`20the`20new`20one`20to X$!`20`20`20`20`20`20the`20end`20of`20the`20list.`20`20For`20example,`20if`20LN VM$JOB`20is`20defined`20as`20A,B,C X$!`20`20`20`20`20`20and`20we`20invoke`20this`20procedure`20as`20"$`20@TABLES.C VOM`20X`20JOB`20LIST"`20then X$!`20`20`20`20`20`20LNM$JOB`20will`20become`20A,B,C,X. X$!- X$`20Set_Up_Logical_Value: X$`20`20`20`20`20`20`20If`20Max_Index.Eq.-1`20.Or.`20P3.EqS."USER" X$`20`20`20`20`20`20`20Then X$`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20Value`20=`20P1 X$`20`20`20`20`20`20`20Else X$`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20Index`20=`200 X$`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20Value`20=`20"" X$`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20GoSub`20Find_Name_Loop X$`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20If`20.Not.`20Finished`20Then`20V Value`20=`20Value`20+`20P1 X$`20`20`20`20`20`20`20EndIf X$`20Return`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20!`20End`20of`20Subro Vutine`20Set_Up_Logical_Value X$!**************************************************************************** V** X$!+ X$!`20Subroutine`20Loop.`20`20Uses`20Recursion`20to`20control`20the`20loop. X$!- X$`20Find_Name_Loop:`20 X$`20`20`20`20`20`20`20If`20.Not.`20Finished X$`20`20`20`20`20`20`20Then X$`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20Next_Value`20=`20F$TrnLNm(Logica Vl_Name_Table,Directory_Name,Index) X$`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20If`20Next_Value.EqS.P1 X$`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20Then X$`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20Wso`20"' V'P1'`20is`20already`20in`20the`20list`20''Logical_Name_Table'" X$`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20Finished V`20=`20True X$`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20Else X$`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20Value`20 V=`20Value`20+`20Next_Value`20+`20"," X$`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20Index`20 V=`20Index`20+`201 X$`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20If`20Ind Vex.LE.Max_Index`20Then`20GoSub`20Find_Name_Loop X$`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20EndIf X$`20`20`20`20`20`20`20EndIf X$`20Return`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20!`20End`20of`20Subro Vutine`20Find_Name_Loop X$!**************************************************************************** V** X$!+ X$!`20Subroutine`20Output_Help X$!`20`20`20`20`20`20 X$!`20`20`20`20`20`20Displays`20the`20usage`20of`20Tables.Com`20including`20pas Vsing`20of`20parameters. X$!- X$`20Output_Help: X$`20`20`20`20`20`20`20Type/Page`20Sys$Input X XThis`20procedure`20will`20enter`20a`20specified`20logical`20name`20table`20as V`20either Xpart`20of`20a`20search`20string`20redefinition`20of`20a`20standard`20VMS`20Log Vical`20Name XTable,`20or`20as`20the`20definition`20of`20a`20user-defined`20Logical`20Name V`20Table. XThe`20definition`20of`20the`20user-defined`20Logical`20Name`20Table`20may`20be V`20a`20search Xlist. X X X X XP1`20-`20The`20name`20of`20the`20logical`20name`20table`20to`20be`20entered X XP2`20-`20This`20will`20either`20be`20a`20standard`20VMS`20logical`20name,`20or V`20a`20user X`20`20`20`20`20defined`20logical`20name`20table.`20`20The`20VMS`20logicals`20t Vhat`20may`20be X`20`20`20`20`20specified`20are: X X`20`20`20`20`20LNM$JOB`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20Passed`20in V`20as`20JOB X`20`20`20`20`20LNM$PROCESS`20`20`20`20`20`20`20`20`20`20`20Passed`20in`20as`20 VPROCESS X`20`20`20`20`20LNM$GROUP`20`20`20`20`20`20`20`20`20`20`20`20`20Passed`20in`20a Vs`20GROUP X XP3`20-`20Optional.`20`20This`20parameter`20may`20be`20used`20to`20give`20furth Ver X`20`20`20`20`20instructions`20regarding`20the`20logical`20entered`20as`20P1: X X`20`20`20`20`20USER`20`20`20-`20Just`20define`20the`20logical`20(P1)`20in`20th Ve`20table`20specified X`20`20`20`20`20`20`20`20`20`20`20`20`20`20(P2). X X`20`20`20`20`20LIST`20`20`20-`20This`20will`20also`20define`20the`20logical`20 V(P1)`20in`20the`20table X`20`20`20`20`20`20`20`20`20`20`20`20`20`20specified`20(P2).`20`20The`20only`20 Vdifference`20between`20this X`20`20`20`20`20`20`20`20`20`20`20`20`20`20and`20USER`20is`20that`20LIST`20logi Vcal`20may`20be`20a`20search`20list. X X$! X$`20Return`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20`20!`20End`20of`20Subro Vutine`20Output_Help X $ call unpack TABLES.DSJ;1 1797745246 "" 19 1 1 $ v=f$verify(v) $ exit