The EDA Toolbox

Introduction

Various tasks need to be performed around EDA, which do not fit exactly within the program framework. Therefore one more module has been added. The TOOLBOX is a collection of utilities, some of them are linked directly to task needed for EDA others are more general in use.

Tools are selfcontained and documentation is on-line. Some of the tools are marked as being experimental.

The Toolbox contains general file utilities, general and special EDA utilities, tools helping you against operating system idiosyncrasies....

The utility is called by typing TOOL, unless tool is called in immediate mode (see below).

This toolbox may be used in different ways depending upon the type of problem you have.

One possibility is to use the tools separately by simply specifying the tool, then you are taken by the hand and guided through the task in a dialogue. For these reasons this chapter will usually only explain the purpose of the tool, but will not insist on syntactical details.

You may also use another possibility and specify a complete or part of a command line, using the syntax outlined below. Any item not supplied will be queried from the user.

Finally there is a third way to use the toolbox; you may do a sequence of operations (several tools) on the same file; this sequence is done via a mechanism called pipeline, through which you send your file.

This will be explained in detail below. As the various tools are either obvious in purpose and/or extensively documented on-line, the description of individual commands will be rather short here.

Let us show the list of the available tools and then explain how the toolbox works and give some syntactical information.

Available tools

Currently the following tools are implemented. (Watch out for more to come):

     AE        archive editor
     CB        combine files
     CD        create documents from a script
     CF        create a file from a script
     CONCAT    catenate files
     CPY       copy a file
     DD        delete_duplicates
     MM        match merge
     MOD       file modification
     MU        matrix utility (computes MATRIX)
     PP        parallel display of two files
     PR        print a file
     RC        replace characters
     SF        split file into files
     SNIFF     file sniff
     SORT      file sort
     TYPE      display a file

PIPE create a pipe-line END terminate a pipeline

Quit return to EDA HELP on-line assistance

Invoking the TOOLBOX

There are basically two ways of using the TOOLBOX

(1) Enter the TOOLBOX with the TOOL (or UTILITIES, then specify the tool you need. If no other tool is needed return to EDA with Quit.

(2) call TOOL in immediate mode, i.e. specify the tool on a EDA command line; after termination you are again back in EDA normal mode; E.g. if you wish to use the matrix utility you might called it by TOOL MU in immediate mode. In fact immediate mode consists in passing the remainder of the TOOL command to the module, execute it and return to EDA. Immediate mode is also entered when a ) is found in column 1 of and EDA command line; the command

)SORT

will enter the toolbox, invokes the sort tool, asks the user for the necessary information to perform the sort and then returns to EDA mode.

EDA features: macros, variables etc.

Within the toolbox as in the TED and EDIT module you may use freely macros (single and multi-line), command files and define scalar (letter) variables using the restricted form (i.e. simple expressions: see EDIT for details) and you may also call the system interface, if it is implemented in your EDA version.

Prompts

The Toolbox prompts with a ) to tell the user that EDA obeys toolbox syntax (the prompt may locally be different).

On-line assistance

The various tools are documented extensively on line. HELP displays the tools available, HELP followed by a tool name, e.g. HELP SORT displays full information on the SORT tool.

Remember that TOOLBOX may be used either with commands and associated options or in full dialogue (these two modes may of course be freely mixed).

File allocation

As the Toolbox works on files, often a series of work files are needed. As EDA itself may use many files at the same time, the open file limit is reached and the toolbox informs you that a command cannot be done because there are no more file units available. This event is rather unlikely, because it means that you use all commands leaving file units connected at the same time. In case of such an event the only solution is to disconnect some files you can explicitly disconnect. (Currently the only tool needing many work files is the SORT tool.)

Command syntax and file names

The general command syntax is the following:
<tool> is the name of the tool (normally two characters are sufficient.
(The tool name may be of any length, a blank separates <tool> from
the next field.

<filenames> is a list of file specifications. The number of files varies with ng varies from tool to tools. A file specification (may also be used with file-name prompts) takes the following form:

[']<name>[(<specs>)][']

The quotes are only needed if a blank character is to be included some where in the file name and/or the specification part. If a command refers to a file called MYFILE, the specification MYFILE and 'MYFILE are strictly equivalent.

The optional <specs> field has the following syntax:

([c1],[c2],[r]],[r2]) or ([c1],[c2]:[r1],[r2])

each fields may be empty; separators are however needed to indicate position. c1,c2 are column limitations, i.e. only the columns c1 through c2 are read, written or otherwise processed. For instance

TYPE MYFILE(10,20)

displays the whole file MYFILE, but only columns 10-20.

The r1,r2 specify record limits, i.e. only records r1 through r2 are treated, therefore

TYPE MYFILE(10,20,100,120)

displays columns as above, but only records 100 through 120.

Note that this is the general syntax; not all tools let you use full column and record limits; check the syntax chart of each tool for information.

Important: The file limits are strictly applied to the very first input operation on the file and to the very last output operation (if limits are allowed). This means that whenever a tool add or deletes lines or columns the limits on input are applied before such an operation, therefore you must specify column or line operations for the transformed input lines. For instance when using the MOD tool, suppose that you specify MYFILE(10,20) on input, that means that the tool takes only columns 10 through 20 as input and a mod specification of "D3C$" means - with respect to the original file - that it should delete columns 10,11,12 and then copy through to column 20.

If the command syntax shows several files, the order is always the following:

in out alt1 alt2

Instead of a file name you may specify a *, meaning the input or output (depending on the file) is from the terminal (input stream) or to the terminal (output stream).

Instead of specifying an output file, you may use *R instead, indicating that the output should be directed to the RAWOUT file, used to write different information (e.g. data) for use with other programs. Note that the RAWOUT file must be connected previously (outside TOOL); this file is never created implicitly. Use the SET RAW command to do so. The RAWOUT file is not closed (disconnected) after the termination of the current tool or the toolbox. This is to let you combine a tool with EDA commands writing to that file in order to produce for instance a file suitable as input to some other piece of software.

The maximum length of a record in a file is limited to 132 characters; when reading from the keyboard (* instead of an input file name) the number of characters per line is limited to 80.

<options>
<options> are defined as follows:

\ <specs> <options>

The \ signals the presence of options; <specs> follow the same syntax as the file specs, i.e. (n1,n2,n3,n4), where the n's are some tool specific numbers.

<doptions> contains options, specified exactly as on normal EDA commands, i.e. a list of the three parameter types (keywords, named values and strings enclosed in "").

Pipeline

(Pipeline?? UNIX was here ..! ) In many cases it will be sufficient to use the tools as they are as stand alone tools, e.g. if you just wish to sort a file you call SORT, indicate the input file, the output file as well as the other informations (keys) the sort tool needs.

On the other hand there are instances where you wish to do a series of jobs on the same file, i.e. the input file is always the result of the preceding tool, and the output of the current tool is always the input to the next tool. In order to avoid an input and an output file (which in fact must always be different) you may use the pipeline feature; a pipeline does exactly this: the input for a tool is the output of the previous tool ....

How you do this? There are two commands dealing with the pipeline; PIPE initiates the pipe, END terminates it. These two commands are used to specify the input file and the output file respectively.

      Syntax:     PIPE in
      FSPEC:      in(c1,c2,r1,r2)
      Purpose:    creates a pipeline with file in.

Syntax: END out FSPEC: out(c1,c2,r1,r2) Purpose: terminates a pipeline, and puts the result into file out. Option ABORT terminate the pipe without writing the results to a file.

Restriction: as a pipeline may not be used in immediate mode, the PIPE and END command are not allowed in that mode.

Information on tools

The information on the various tools is usually limited to its synopsis, i.e. the same text displayed with the HELP command; only more complex commands are explained in more details.

To understand the various concepts you need to be familiar with the above information. The double syntax shown reminds you that there are basically two ways to use the toolbox as command language or as prompt command. But you may mix in fact both ways; required information is always prompted for.

File specifications (Fspecs) tell which type of line and/or record limits are admitted by a particular tool.