Additional MDPP Resources


The File Name Preprocessor

The filename preprocessor processes file names from `RD', `SV', `AT' `RH', `DT' etc. which are entered on the same line as the command. It provides a mechanism to manage sub-typing of files used by MDPP through the use of the special characters `_' (underscore), `~' (tilde) and `-' (minus).

Purpose: These facilities allow the user to create a tree strucure in the naming of files, and to get about in the tree without having to continually refer to the root name. In particular it is possible to use this convention in the design of background jobs where the only name which needs to be entered is the root name and the job will create the tree.

The Special Characters

Underscore: The workings of the preprocessor can best be illustrated through examples. Assume the user enters a file read/write request of the form "XX BEGIN", where `XX' is `RD', `SV' etc.. By doing so he will perform a file operation on "BEGIN.xxx" and will place the name `BEGIN' in the default file name buffer. Assume he then enters a second request "XX _FRED". This will have the effect of performing a file operation on the file "BEGIN_FRED": in other words, the preprocessor concatenates the new string onto the old default file name to generate a new file name with the string "_FRED" as an extension. A third operation "XX _JONES" will cause an operation on the file "BEGIN_FRED_JONES", and so on.

Minus: If the name "BEGIN_FRED_JONES" is in the default file name buffer and the user enters the command "XX -", then an opreration will be performed on the file "BEGIN_FRED": the minus causes the extension "_JONES" to be discarded by the preprocessor. As a final touch, assume "BEGIN_ FRED_JONES" is in the default file name buffer and the user enters "XX -_ ANNE", then the file operation will be performed on the file "BEGIN_FRED_ ANNE". Similarly if "XX --_BULL" was entered, then the file would be "BEGIN_BULL"

Tilde: Tilde controls access to the filename buffers obtained when `VF' is used. The facilities outlined above, act in conjunction with the contents of the current file name buffer, buffer 1. These functions can be made to act on the other buffers by adding `~'s in front of the command: each `~' added steps back one buffer. In practice this is very useful in constructing command files for automatic processing, but can be clumsy to use interactively. The exception is the use of a single tilde, as in `RD ~', after saving a temporary file (e.g. /RD BLOGS/<some commands>/SV TEMP/RD ~/ the last RD reads the original file BLOGS).

Hat: Hat controls the copy of the `fixed' default. Entering a hat causes a copy of the current file name to be placed in buffer #6, where it renmains until it is overwritten by another ^ line.

Other Facilities: Finally, if the user has the name "JONES" in the default file name buffer and he enters "XX [xxx]", then the operation will be performed on the file "[xxx]JONES"; if "XX MSA:" is entered then the operation will be performed on "MSA:JONES". If the default buffer contains "FGA0:[xxx]JONES" then the volume and directory information will be stripped and input of "XX GG:[yyy]" will cause the operation to be performed on "GG:[yyy]JONES". For example the string /RD [.RAW]FRED/<some_commands>/SV []/ causes the file FRED to be saved in the current directory. Additionally, entering a filename DISK:[AAA]fred sets the default directory to DISK:[AAA]. All subsequent files will prepend this directory specification to the name. A name preceded by `-' removes the default.

Free-Form and Register Input

From versions (V81.230, IBM and V83.196, PDP/VMS) onward there will be increasing numbers of routines which will accept free format input or input from the internal registers in MDPP. Lines which may use free format or register input are indicated by an `*' in front of the format indicators for that line of input: eg. *4I5,G12.5. If you see this indicator, you may use register input or the free format option. It works as follows:

Formatted Input On the IBM, enter the numbers according to the input format specification at the begining of the line. On the VAX you may use free format insofar as you may separate numbers with commas, but you must respect the general limitations of the format statement as to variable type.

Free Format Number may be entered separated by commas and need not be left or right justified. Extraneous characters are ignored and do not cause an error. However, the number of characters in the field, including the delimiting comma, must be less than or equal to the field length specified in the format statement. A number to be entered which contains the number of characters specified in the format statement, including blanks, does not need a delimiting comma, and an error may be generated if one is included since this comma will be interpreted as being inside the next input field on the line. There is one exception to the `extraneous character' remark: `I' or `i' at the begining of a field is not extraneous; it means `invert', the following number. For example, entering "I0.5" will cause 2.0 to be used; entering "I64" means"(1./64.)", and so on. This is useful if you are computing scaling factors for altered sampling, for example.

Register Input If you wish to input the contents of an internal register as an argument in a subroutine you simply enter the register name in the form `*nn' in the appropriate field (ie. an asterisk followed by the register number). The contents of the register is loaded into the input variable directly. The register names `*01', `*1' and `*' all indicate register one's contents: `*04', `*4' means the contents of register 4. For more information, be sure that you have checked the HELP files for REGISTERS. Also, fool arround a little with MDPP in interactive mode and get a feel of how it all works.

The MDPP Default Initialization File

The MDPP default initialization file is used to set the basic defaults for the MDPP session. The defaults are used by creating logicals (or environmentals) to point to the files as described elsewhere. A sample of the file is set out below the line.


** This is the MDPP default definition file.

Default MDPP mode = 0
Array Processor = 0 ! Array processors NOT supported
Dflt Display_type = 0 ! No display=0, Display=1x
Auto-zoom option = 0
Digitizer type = 0

Default Mode: The default mode is the mode that MDPP opens with. The options are: Keyboard mode (usual default)=0, Display oriented (not supported on most drivers)=1, Menu driven (Required for activating the Menu-driver)=2, Comput-server mode=3 (YOU never set this!)

Array Processor: No array processors are configured with MDPP at present: do not use this option.

Dftl Display_type: Note that the file indicates the status of the display system, it does not reset it. If you are using a display then the `x' indicates the presence of a locator device as follows:-

x = 0 or missing (i.e. disp_typ=1): no locator device. Use arrow keys.

x = 1 device on port 0: significant for the LEXidata.

x = 2 device on port 1

x = 3 device on port 2 x = 4 device on port 3

x > 4 other devices (to be configured, call me with suggestions).

e.g. disp_typ = 12 indicates a display with a locator device on to port 1.

Auto-Zoom: Zoom and pan are options written into the driver (e.g. Gould, Lexidata). If your driver does not support zoom and pan then you need not set this option, but the line must be present.

Digitizer type: An Eikonix digital camera can be interfaced with MDPP. Several standard camera types are recognized: 1 - 78/99 camera (12bits,2048) 2 - Model-850 (8bit,4096) and 3 - 1412 camera (12bits,4096).

The type is entered in one of three forms.

  1. Single number (1,2,3). Identifies the scanner with the defaults: 1-78/99 with color wheel, 2-Model-850 no wheel, 3-1412 with wheel.

  2. Two numbers: (mn): m-camera type, n-0 no wheel, n-1 color wheel.

  3. Camera definition string: (mkln) (provides more flexibility) n - 0-no color wheel, 1-color wheel
    l - 0-eight bit scan, 1-twelve bit scan
    k - 0-4096x4096, 1-2048x2048, 2-1024x1024
    m - 1-78/99, 2-Model-850, 3-EC1000 series camera

    To use the camera defintion string you MUST code all 4 fields.
    (e.g. 3101 is an EC1000 camera, 2048x2048, 8-bit scan data,
    with color wheel)