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.