ERSATZ Table Format
                    With Supplemental Program Descriptions
                       by Tom Faust / Software Designs

The ERSATZ table, as defined by Alpha Micro, is a list of entries which define
anthing from a simple device/drive up to a complete file specification even
across a network, which can be referenced by up to six characters followed
by a colon.  A common example is SYS: which refers to DSK0:[1,4].  A more
complex example might be TEST: which could refer to DSK4:TEST.TXT[33,44], or
NETSYS: which could refer to DSK0:[1,4] on network 12345.

By using the ERSATZ name anywhere a file specification is expected you can
eliminate keystrokes or be able to locate an account or file by a common
name even if you don't know the exact device/drive/ppn location.

For instance you can say TYPE SYS:AMOSL.INI to display the system
initialization file to the screen.  Or you can say TYPE TEST: to see the file
DSK4:TEST.TXT[33,44].  Or you could say TYPE NETSYS:AMOSL.INI to see the
AMOSL.INI file on a remote system.

The ERSATZ table is set up in a vueable file, usually located in DSK0:[1,4]
and usually called ERSATZ.INI (the release sample ERSATZ file from Alpha
Micro is called ERSATZ.NEW).  The format of the vueable file is as follows:

        name:=device spec

The colon (:) must immediately follow the ersatz name, but spaces may be used
around the equal sign (=) for readability.  Here is our example above:

        SYS:    = DSK0:[1,4]
        TEST:   = DSK4:TEST.TXT[33,44]
        NETSYS: = 12345-DSK0:[1,4]

The file is loaded at boot time by specifying the ERSATZ command before the
first SYSTEM command, with a parameter of the file name containing the
desired list of ersatz devices.  As long as they are executed back to back,
multiple ERSATZ commands may be used to load multiple ersatz files.

        ...
        PARITY
        ERSATZ ERSATZ.NEW               ; Alpha Micro definitions
        ERSATZ ERSATZ.OWN               ; My own ersatz devices
        ERSATZ ERSATZ.ZZZ               ; ZZZZZZ: entries for adding later
        LOAD SYS:SYSTEM.LIT
        SYSTEM SYSMSG.USA
        SYSTEM DCACHE.SYS/N/M/U 500K
        ...


Four ERSATZ support program have been donated to the AMUS network by Software
Designs for manipulating the ersatz table.

        LSTERZ.LIT - Display the ersatz table with paging, home, end, etc.
        SRTERZ.LIT - Sort the ersatz table by ersatz name or device spec
        ADDERZ.LIT - Add a new ersatz name (in place of a ZZZZZZ: entry)
        DELERZ.LIT - Delete an ersatz name (replace with a ZZZZZZ: entry)


LISTING THE ERSATZ DEVICES

The listing program was created to allow greater display control of the
ersatz table in memory.  The ERSATZ command allows display, but you must
use ^S and ^Q to pause and restart the display (and you'd better be quick).
Also you can't back up once you have past the item you are looking for.

LSTERZ.LIT displays one full screen (assumes 24 line screen) at a time and
pauses for command control.  The following is a list of control functions:

        ^T    - jump forward one page
        ^R    - jump backward one page
        ^J/^M - scroll one line down
        HOME  - jump to the beginning
        ^E    - jump to the end
        A-Z   - jump to point starting with letter typed
                the above function works best of sorted by ersatz name
        ESC   - quit the program (also ^C)
        SPACE - scroll forward one page

All other keys are ignored.  If the screen is currently at the point of
display requested by any command, the keystroke is ignored.


ADDING AND DELETING

The add and delete programs were inspired by an idea that I got from Alpha
Base System, Inc. which was only partially implemented (to my knowlege).
They have an automated program that generates ersatz names for all of their
application's accounts.  It also adds about forty entries of ZZZZZZ: assigned
to account DSK0:[1,2] (a reasonable choice since it is easily and usually
protected).  The ERSATZ command doesn't mind duplicate entries so you can
have a file (such as my example of ERSATZ.ZZZ above) which contains a set
of ZZZZZZ: entries.  The idea is that these ZZZZZZ: entries allocate space
in the table (which cannot be expanded after initialization) which can later
be modified into usable entries for new accounts added to the system.

The add and delete programs give you access to this kind of usage.  ADDERZ.LIT
first checks to see that the name you want to add does not already exist.
Then it checks to see if there is a place to add into (ZZZZZZ:).  If both of
those test pass, it checks the integrity of the device/file specification
given, then loads it in place of the first ZZZZZZ: entry found.

    examples:

         ADDERZ TEST: DSK4:TEST.TXT[33,44]
         ADDERZ NETSYS: 12345-DSK0:[1,4]

The ADDERZ program also has one by-product of "incomplete" usage.  If you
specify only the ersatz name and not the device, then if the ersatz name
exists, the normal appropriate warning message appears, but if it does not
exist, a message stating that it is not yet defined appears.  This way you
can find out if an ersatz name is defined (and if so, as what).

    example:

        .ADDERZ TEST:
         Requested ERSATZ name already defined as DSK4:TEST.TXT[33,44]

The delete program, DELERZ.LIT, checks to see if the specified ersatz name
exists in the table, and if so, deletes it by replacing it with a ZZZZZZ:
entry assigned to DSK0:[1,2].  This makes it reusable by ADDERZ.

    example:

        .DELERZ TEST:
         ERSATZ device DSK4:TEST.TXT[33,44] deleted


SORTING THE ERSATZ TABLE

The sort program, SRTERZ.LIT, sorts the ersatz table in memory by either
the ersatz name or the device specification.  The default is to sort by
name with sub-sort by device, but if you specify /A then SRTERZ will sort
by device with sub-sort by name.

    examples:

        .SRTERZ
         Sorting 73 entries.......................
         ERSATZ table is now sorted by name

        .SRTERZ/A
         Sorting 23 entries.......................
         ERSATZ table is now sorted by account


USAGE NOTES

The latter three program, ADDERZ, DELERZ and SRTERZ also allow a usage
switch /? to display how to use the respective programs.  LSTERZ does
not support (or reject) the usage statement because it does not expect
any parameters.