|  | 		The following is a copy of information I have given to
	'code-bashers'. It contains updated information on Standards for
	Tools, as well as the code to accomplish this, and accounting
	details.
	Alan.
	*******************************************************************
           		 BAS_TOOLS.HLP		              17-AUG-89
	          	 -------------
		I have mentioned to several 'code_bashers' a  desire to
	have our local diagnosis tools located in specific sub-directories
	and invoked using a standard method, as well as ensuring these tools
	are transportable.
	Alan.
 
		Some of the issues that have arisen are :-
			Speed of access
			Transportability of files
			Security
			Location of files
			Accounting
			Support of code
			TIMA
			Ownership of Programs
			
	    	 
 
		         ********* SOME THOUGHTS ***********
	Transportability
	----------------
		Files for one diagnostic should be held in a sub-directory.
	Access to any of these files should be made through a full file
	specification. The file spec should be set up prior to the diagnostic
	being executed.
	Security
	--------
		All files should have the Digital Banner as a header.
		Programs should always be given maximum security using
	ACL's / VMS protection as required.
        Location of files
	------------------
	
		Sub-directories of TOOLS$DIR is where all tools should
	reside.
	Accounting
	----------
		An accounting package should be available for each program.
	This will be useful for calculating system resources, identifying
	which tools are being used, and giving other offices a method of
 	quickly ascertaining what programs are likely to be most use to them.
	Support of Code
	---------------
		The work we are doing is  best efforts. There is no
	obligation for anyone to support their code. (It would be much
	appreciated though if code was supported!)
	Standardisation of Programs
	---------------------------
		The method of storage, invoking, and accounting should be
	the same for all tools.
	Ownership
	---------
		Code written by ourselves should be seen as belonging to
	Digital. We should all be prepared to have our programs shipped to
	other Digital Support Centres or submitted to TIMA. Hopefully we
	will be rewarded for our good work by obtaining access to programs
	from other sources.
			    ******** CONCEPT ********
		The following pages show a concept we could adopt to achieve
	standardisation.
	Advantages of this concept are :-
	  1. The process is simple and transportable.
	  2. Code is already written.
	  3. To use this process requires little or no work to be done
	     to existing tools.
	  4. Tools from other support centres can be accomodated.
	  5. Basingstoke can easily "dump" it's tools from the standard
	     sub-directories onto another Digital Centre.
	  6. By keeping tools from different Centres in the same structure,
	     but in different sub-directories, the developers of these tools
	     retain the incentive to maintain their products.
	  7. Conforming to a standard and making our tools transportable
	     will make them more suitable for TIMA. 
	  8. Tools run using this method will go via an accounting package.
	     This is helpful to other centres in ascertaining how useful a
	     tool might be, and for calculating system resources. 
	  9. Flags assigned to a tool will be seen in the accounting package.
	     The present flags show whether a tool is in TIMA or whether it
	     is currently supported.
	 10. Existing Menu systems can be made to access tools using this
	     same method.
	Disadvantages :-
	   1. Greater system overhead
	   2. Manually accessing Files not so easy.
			    **** TOOLS LAYOUT ****
				    TOOLS$DIR
				        |
				        |
				   (login.com)
				   (login.bas)
				 (bas_tools.hlp)
				        |
                                        |
	 <--------------------------------------------------------------//
                |                       |                      |
           [.bas_admin]            [.bas_tools]           [.bas_misc]
                |                       |                      |
                |                       |                      |
	   (Basingstoke            (Basingstoke            (Basingstoke
            admin tools)            diagnostic               Other
	                              tools)               Tools/Files)
  				        |
                                        |
                            ------------------------
                            |           |          |
                        [.mc_chk]    [.rpo6]    [.fubar]
	 //--------------------------------------------------------------//
                           |				  |         
                      [.VLB_TOOLS]                   [.xxx_TOOLS]
                           |                              |
                           |                              |
		       (Valbonne                        (xxx 
                       diagnostic                      diagnostic
	                 tools)                          tools)
                           |           			  |
			   |                              |
                -----------------------         ----------------------
                |          |          |         |         |          |
	 //------------------------------------------------------------>
                                    |                         |
                             [.world_tools]               [.account]
                                    |                         |
                                    |                         |
                               (diagnostic               (Accounting
	                          tools)                    Files)
                                    |
                                    |
                          ------------------------
                          |           |          |
                     [.dsaerr]    [.block]    [.fsterr]
	Tools_login.com
	---------------
$ !		      **** TOOLS_LOGIN.COM ****
$ !
$ ! *********************************************************************
$ !                        SET UP TOOLS$DIR
$ !
$ !           ***** TOOLS$DIR MUST BE SET UP FOR EACH SITE. *****
$ !
$ !           ***** This will be the only logical that has  *****
$ !           ***** to be set up. All other logicals are    *****
$ !           *****      set up from this logical.          *****      
$ !
$ define/nolog tools$dir rsws$disk:[basingstoke.tools]      ! Basingstoke
$ !
$ ! *********************************************************************
$ !
$ @ TOOLS$DIR:LOGIN.BAS     ! SET UP BASINGSTOKE TOOLS
$ !
$ ! *********************************************************************
$ !                   *** SET UP WORLD TOOLS ***
$ !
$ !             P1 = name of tool
$ !		p2 = flags  (T = Tool submitted to TIMA)
$ !                         (FLAGS = no flags)
$ !		P3 = name of sub directory off of tools$dir
$ !
$ block		:== @tools$acnt:tools_init.com BLOCK    FLAGS  WORLD_TOOLS
$ dsaerr	:== @tools$acnt:tools_init.com DSAERR   FLAGS  WORLD_TOOLS 
$ fsterr	:== @tools$acnt:tools_init.com FSTERR   FLAGS  WORLD_TOOLS 
$ !
$ !
$ ! *********************************************************************
$ !          *** SET UP ACCOUNTING AS SUB-DIRECTORY OF TOOLS$DIR ***
$ !
$ tools$acnt = f$trnlnm("tools$dir") - "]"
$ define/nolog tools$acnt "''tools$acnt'.account]"
$ !
$ ! *********************************************************************
$ !
$ exit
	Basingstoke_login.com
	---------------------
$ !                         LOGIN.BAS
$ !                         *********
$ !
$ !             P1 = name of tool
$ !		p2 = flags  (T = Tool submitted to TIMA)
$ !		P3 = name of sub directory off of tools$dir
$ !
$ !
$ !                         *** DIAGNOSIS TOOLS ***
$ !
$ dsa_ra81	:== @tools$acnt:tools_init.com DSA_RA81 T      BAS_TOOLS 
$ ndt		:== @tools$acnt:tools_init.com NDT      FLAGS  BAS_TOOLS 
$ !
$ !
$ !                           *** ADMIN TOOLS ***
$ !
$ weekplan	:== @tools$acnt:tools_init.com WEEKPLAN FLAGS BAS_ADMIN 
$ !
$ !
$ !			      *** TEST TOOLS ***
$ ! 
$ dectree       :== @tools$acnt:tools_init.com DECTREE FLAGS BAS_TEST
$ !
$ ! *********************************************************************
$ !
$ exit
	Tools_Init.Com
	--------------
$ !                      TOOLS_INIT.COM
$ !                      **************
$ !
$ !      THIS FILE WILL BE INVOKED EVERY TIME A TOOL IS RUN
$ !
$ !            P1 = name of tool
$ !            P2 = flags    (T = TIMA)
$ !            P3 = name of sub-directory off of tools$dir
$ !
$ ! *********************************************************
$ !                CALCULATE FILE SPEC FOR TOOL
$ !
$ file = f$trnlnm("tools$dir") - "]"
$ !
$ def/nolog tool$file_spec "''file'.''P3'.''P1']"
$ !
$ !    ( tool$file_spec = ['tools$dir' + sub-directory name] . toolname )
$ !
$ ! ********************************************************************
$ !                         INVOKE ACCOUNTING
$ !
$ !      Calculate time
$ !
$ time = f$time()
$ mon = f$extract (3,3,time)
$ year = f$extract (9,2,time)
$ date = f$extract (0,12,time)
$ !
$ !      Calculate process name
$ !
$ prcnam = f$getjpi("","prcnam")
$ prcnam = f$edit(prcnam,"upcase")+"            "
$ prcnam = f$extract (0,12,prcnam)
$ !
$ !      Calculate name of tool
$ !
$ tool = f$edit(P1,"upcase")+"              "
$ tool = f$extract (0,14,tool)
$ !
$ !      Calculate sub-directory holding tool
$ !
$ sub_dir = f$edit(P3,"upcase")+"                  "
$ sub_dir = f$extract (0,18,sub_dir)
$ !
$ !	Add "TIMA" to FLGS if "T" found.
$ !
$ flgs := ""
$ if "''p2'" .eqs. "FLAGS" then $goto flgs_end
$ if f$locate("T",p2) .eqs. f$length(p2) then $goto unsupp
$ flgs = "''flgs'" + "T "
$ !
$ !	Add "UNSUPP" to FLGS if "U" found.
$ !
$ unsupp:
$ if f$locate("U",p2) .eqs. f$length(p2) then $goto flgs_end
$ flgs = "''flgs'" + "U "
$ !
$ flgs_end:
$ flgs = f$edit(flgs,"upcase")+"            "
$ flgs = f$extract (0,12,flgs)
$ !
$ !         *** Write data to Current Accounting File ***
$ !
$ open/append/share/err=app_err acnt tools$acnt:acnt_'mon''year'.dat
$ goto acnt_wr
$ app_err:
$ open/write/share acnt tools$acnt:acnt_'mon''year'.dat
$ acnt_wr:
$ write acnt "''date'   ''tool' ''sub_dir' ''flgs' ''prcnam'  "
$ close acnt
$ !
$ ! *********************************************************
$ !                   RUN THE TOOL
$ !
$ tool_file_spec = "''file'.''P3'.''P1']"
$ !
$ @'tool_file_spec''P1'.com
$ !
$ exit
	Usage Summary
	-------------
$ !                       ***** TOTALS.COM ****
$ !
$ !          Produce tool usage summaries from monthly files created by
$ !                            TOOLS_INIT.COM
$ !
$ ws := write sys$output
$ !
$ time = f$time()
$ mon = f$extract (3,3,time)
$ year = f$extract (9,2,time)
$ !
$ on control_c then goto exit
$ ws ""
$ ws "                        TOOL USAGE CALCULATOR"
$ ws "                        ---------------------"              
$ ws ""
$ ws ""
$ ws ""
$ read/prompt="    Type name of Data File (e.g tools$acnt:acnt_jan89.dat) > " sys$command data_file 
$ data_file = f$edit(data_file,"upcase")
$ ws ""
$ ws ""
$ ws ""
$ ws "                            ......creating TOTAL_''mon'''year'.DAT"
$ ws ""
$ ws ""
$ !
$ sort/key=(pos:15,size:47) 'data_file' sort.tmp
$ !
$ open/write  totals total_'mon''year'.dat
$ open/read  sort sort.tmp
$ !
$ write totals ""
$ write totals "                              DIAGNOSIS TOOL USAGE"
$ write totals "                              --------------------"
$ write totals ""
$ write totals "          Totals from ''data_file'"
$ write totals ""
$ write totals "					    T = Tools in TIMA"
$ write totals "					    U = Tool Unsupported"
$ write totals ""
$ write totals ""
$ write totals "           COUNT      TOOL           DIRECTORY       FLAGS"
$ write totals ""
$ !
$ eof = 0
$ entry = "dummy"
$ total = 0
$ count = 0
$ !
$ rd_entries:
$ read /end_of_file=rd_eof sort line
$ goto extract
$ rd_eof:
$ eof = 1
$ goto bad_match
$ extract:
$ line_entry = f$extract (15,47,line)
$ if entry .nes. line_entry then goto bad_match
$ total = total+1
$ count = count+1
$ if eof .eq. 1 then goto bad_match
$ goto rd_entries
$ !
$ bad_match:
$ if entry .eqs. "dummy" then goto dum
$ if entry .eqs. "" then goto dum
$ total = total+1
$ count=count+1
$ write totals "             ''count'       ''entry'"
$ entry = line_entry
$ if eof .eq. 1 then goto finish
$ count=0
$ goto rd_entries
$ dum:
$ entry = line_entry
$ count = 0
$ total = 0
$ goto rd_entries
$ !
$ !
$ finish:
$ write totals " "
$ write totals " "
$ write totals "                           Total entries = ''total'"
$ write totals " "
$ write totals " "
$ ws "    Totals are in TOTAL_''mon'''year'.DAT"
$ !
$ exit:
$ delete sort.tmp;*
$ close sort
$ close totals
$ ws ""
$ ws ""
$ exit
	Accounting
	----------
		The following data is created monthly by TOOLS_INIT.COM
17-AUG-1989    NDT            BAS_TOOLS                       JAMES         
17-AUG-1989    DSAERR         WORLD_TOOLS                     JAMES         
17-AUG-1989    NDT            BAS_TOOLS                       JAMES         
17-AUG-1989    FSTERR         WORLD_TOOLS                     JAMES         
17-AUG-1989    WEEKPLAN       BAS_ADMIN                       JAMES         
17-AUG-1989    WEEKPLAN       BAS_ADMIN                       JAMES         
17-AUG-1989    DSA_RA81       BAS_TOOLS          T U          JAMES         
17-AUG-1989    DSA_RA81       BAS_TOOLS          T U          JAMES         
17-AUG-1989    DSA_RA81       BAS_TOOLS          T U          JAMES         
17-AUG-1989    FSTERR         WORLD_TOOLS                     JAMES         
17-AUG-1989    BLOCK          WORLD_TOOLS        T            JAMES         
17-AUG-1989    FSTERR         WORLD_TOOLS                     JAMES         
17-AUG-1989    NDT            BAS_TOOLS                       JAMES         
17-AUG-1989    NDT            BAS_TOOLS                       JAMES         
	The following is created by TOTALS.COM :-
                              DIAGNOSIS TOOL USAGE
                              --------------------
          Totals from ACNT_AUG89.DAT
					    T = Tools in TIMA
					    U = Tool Unsupported
           COUNT      TOOL           DIRECTORY       FLAGS
             1       BLOCK          WORLD_TOOLS        T            
             1       DSAERR         WORLD_TOOLS                     
             3       DSA_RA81       BAS_TOOLS          T U          
             3       FSTERR         WORLD_TOOLS                     
             4       NDT            BAS_TOOLS                       
             2       WEEKPLAN       BAS_ADMIN                       
 
 
                           Total entries = 14
 
	File Layout
	-----------
		Directory of "tools$dir"[...]
		
Directory $44$DUS102:[BASINGSTOKE.TOOLS]
ACCOUNT.DIR;1             2  11-AUG-1989 12:40:10.10
BAS_ADMIN.DIR;1           1  19-JUL-1989 13:52:46.64
BAS_MAINT.COM;3           3  14-AUG-1989 16:36:55.45
BAS_MISC.DIR;1            1  10-AUG-1989 17:37:49.36
BAS_TOOLS.DIR;1           1  19-JUL-1989 13:53:09.84
BAS_TOOLS.HLP;17         39  17-AUG-1989 14:14:03.58
BAS_TOOLS.TJL;1          10  17-AUG-1989 14:36:17.10
LOGIN.BAS;15              2  17-AUG-1989 11:10:39.54
LOGIN.COM;10              4  16-AUG-1989 15:16:19.30
WORLD_TOOLS.DIR;1         1  11-AUG-1989 17:18:12.37
Total of 10 files, 64 blocks.
Directory $44$DUS102:[BASINGSTOKE.TOOLS.ACCOUNT]
ACNT_AUG89.DAT;2          3  17-AUG-1989 13:53:38.24
ACNT_JUL89.DAT;1          2  20-JUL-1989 15:26:14.43
TOOLS_INIT.COM;42         5  17-AUG-1989 11:49:27.94
TOTALS.COM;24             5  17-AUG-1989 14:35:20.44
TOTAL_AUG89.DAT;10        2  17-AUG-1989 14:03:33.99
Total of 5 files, 17 blocks.
Directory $44$DUS102:[BASINGSTOKE.TOOLS.BAS_ADMIN]
WEEKPLAN.DIR;1            1  11-AUG-1989 12:28:06.32
Total of 1 file, 1 block.
Directory $44$DUS102:[BASINGSTOKE.TOOLS.BAS_ADMIN.WEEKPLAN]
FRONT.BAS;106            32  11-AUG-1989 12:32:54.13
FRONT.EXE;46             18  11-AUG-1989 12:33:07.77
NEWAVA.DAT;2            273  25-JUL-1989 14:50:34.57
STAFF.DAT;2               1  25-JUL-1989 12:28:00.91
WEEKPLAN.BAS;41          50  11-AUG-1989 12:34:09.26
WEEKPLAN.COM;17           1  11-AUG-1989 12:34:51.68
WEEKPLAN.EXE;29          29  11-AUG-1989 12:34:21.54
Total of 7 files, 404 blocks.
Directory $44$DUS102:[BASINGSTOKE.TOOLS.BAS_MISC]
DECTREE.DIR;1             1  14-AUG-1989 09:09:24.98
Total of 1 file, 1 block.
Directory $44$DUS102:[BASINGSTOKE.TOOLS.BAS_MISC.DECTREE]
DECTREE010.A;10        1512   2-AUG-1989 10:44:33.00
FOXGLOVE040.A;1       24930  20-JUL-1989 15:57:49.00
Total of 2 files, 26442 blocks.
Directory $44$DUS102:[BASINGSTOKE.TOOLS.BAS_TOOLS]
DSAERR.DIR;1              1  19-JUL-1989 13:57:29.97
DSA_RA81.DIR;1            1   8-AUG-1989 18:05:40.83
NDT.DIR;1                 1  11-AUG-1989 17:10:07.10
Total of 3 files, 3 blocks.
Directory $44$DUS102:[BASINGSTOKE.TOOLS.BAS_TOOLS.DSA_RA81]
DSA_RA81.COM;2            2   8-AUG-1989 18:09:22.85
Total of 1 file, 2 blocks.
Directory $44$DUS102:[BASINGSTOKE.TOOLS.BAS_TOOLS.NDT]
DT.EXE;1                 50   5-JUN-1989 09:35:25.80
NDT.COM;3                 3  11-AUG-1989 19:01:20.30
Total of 2 files, 53 blocks.
Directory $44$DUS102:[BASINGSTOKE.TOOLS.WORLD_TOOLS]
BLOCK.DIR;1               1  11-AUG-1989 17:19:46.75
DSAERR.DIR;1              1  11-AUG-1989 17:19:00.94
FSTERR.DIR;1              1  11-AUG-1989 17:19:35.85
Total of 3 files, 3 blocks.
Directory $44$DUS102:[BASINGSTOKE.TOOLS.WORLD_TOOLS.BLOCK]
BLOCK.COM;4              67   8-JUN-1989 16:45:59.34
Total of 1 file, 67 blocks.
Directory $44$DUS102:[BASINGSTOKE.TOOLS.WORLD_TOOLS.DSAERR]
DSA304A.EXE;1            99  30-MAY-1989 13:38:38.87
DSA304A.OBJ;1           139  16-MAY-1989 11:44:43.00
DSAERR.COM;3              2   9-MAR-1989 15:16:50.41
DSAERR.DIR;1              1  11-AUG-1989 17:34:08.11
DSAERR.DOC;1            112  21-MAY-1988 21:57:44.00
DSAERR.EXE;36           160  12-JUN-1989 11:13:08.48
DSAERR.HLB;2             22   2-JUL-1987 23:20:26.00
DSAERR.OBJ;35           230   9-JUN-1989 19:46:14.00
Total of 8 files, 765 blocks.
Directory $44$DUS102:[BASINGSTOKE.TOOLS.WORLD_TOOLS.FSTERR]
FSTERR034.A;3           864  30-JUL-1989 12:08:10.00
Total of 1 file, 864 blocks.
Grand total of 13 directories, 45 files, 28686 blocks.
    
 | 
|  |                   I N T E R O F F I C E   M E M O R A N D U M
                                        From:     JOERG
                                                  JOERG@JOERG@MRGATE@VALMTS@VBO
                                        Dept:      
                                        Tel No:    
TO:  Roberto Gregianin@MRA
TO:  Peter Picthall@GMO
TO:  Jean-Louis Franceschini@EVT
TO:  Edwin Richter@MUH
TO:  Mike Duffy@UCG
Subject: CS Assets
			CS - INHOUSE ASSETS
        		===================
I am pleased to announce the birth of the CS - Inhouse Assets Program. 
Purpose
-------
The purpose of this effort is to create a source code library, where tools
developed locally in the field will be stored and made available when
requested. 
With this program, we want to encourage people who have developed tools for
their own use in the field to make them available to other users in other 
coutries and geographies. This will allow us to resolve business problems 
more quickly and take advantage of new opportunities faster.
Process
-------
One of the goals was to keep the associated process as simple as possible.
This can differ slightly from tool to tool. In general, the process 
is divided into four steps:
Step 1)
If you have a tool available, send a mail with a one page description of the
tool to the Assets project manager (CLARID::KOCHAN). He will then try to 
find a sponsor to pay for the effort needed to distribute, maintain and
archive the products.
Please note that, in general, neither re-development nor support work is 
planned; the tool should follow the minimum EIC acceptance criteria to ensure 
usability in the field. (see attachment).
Step 2)
If a sponsor has been found, the tool will be checked by EIC against the EIC
acceptance criteria. If EIC and the sponsor agree that the tool meets 
quality standards, then the project manager sends a tool announcement
mail to the country service delivery managers, who should distribute this
announcement to potential users in their country.
At the same time, a Notes conference will be created for this tool to 
allow users to exchange information.
Step 3)
The tool is now 'on the shelf' in EIC, ready for distribution. Any interested
party can now send mail to the project manager with the following information:
- Name
- Badge number
- Function
- Anticipated use of the product
After distribution agreement by the sponsor, the user will be informed from
where he can copy the kit.
Step 4)
If the tool is no longer needed , the country service delivery managers will
be informed about its retirement and it will then be properly archived 
by EIC.
Best regards,
J�rg Kochan
Attachement:
	EIC guidelines for Mini-Assets products
	---------------------------------------
Documentation needed:
	- installation documentation.
	- user documentation.
	- support documentation, including a short description of
          all programs, data files and logicals.
Code rules :
	- Only well-known languages (Pascal, C, Cobol, Basic, Fortran)
	  can be used as well as standard layered products (such as
	  RMS, RDB, TDMS, FMS, DBMS, SMG)
	- Comments are required to describe each module, procedure and
          function in the form of a header functional description.
	- each module should not exceed 1000 instructions of code.
	- procedures and functions should not exceed 100 instructions.
	- only one instruction per line, commented as thoroughly as possible.
	- the calls to procedures, functions or subroutines should
          be commented with an indication of what the function, procedure
	  or subroutine does.
	- return status should be tested after calls to external routines.
	- variable names should describe the usage of the variable.
	- labels should be meaningful.
	- all files must be accessed through logicals, or logical directories.
	- Common sense and reasonable rules for indentation and block
	  separation should be used (see Engineering coding guidelines in the
	  Sofware Engineering Manual).
Command procedures :
	- MMS description file is strongly suggested. If not, a
	  compile and link procedure is required.
Miscellaneous : 
	- CDD record definitions must be provided for all files.
	- DCL tables and DCL help should not be modified.
	- RMS files should not be created by the programs.
	- FDL files should be available for every RMS file to be created.
    
 |