revised - 13 December 1990 MYLOAD - Intel HEX file loader/overlayer. While trying to test some new system software consisting of oddball CCP and BDOSes, it rapidly became apparent that the family of MLOADs were not capable of proper operation under NZ-COM, nor with non-standard CCP/BDOS sizes. Also, the lack of built-in help and Z-System support is a continuing annoyance. Because of these factors, I decided to re-invent the proverbial wheel and write my own program. This is the result. MYLOAD is written as a Z-System Tool, and relys heavily on Version 4 of The Libraries for proper operation. As a Z-System tool, it accepts DU: or DIR: specifications for re-direction of file input. It also contains an extensive parser to alleviate excessive typing. File Types may be specified or default, but the file format is somewhat restricted by the basic function of overlaying/loading Intel-standard HEX files to produce a standard COM file. While this program is primarily intended to apply HEX overlays onto COM files, it was a trivial matter to make it function as the old CP/M LOAD.COM. The syntax for this form is: MYLOAD file Myload will load FILE.HEX from and write FILE.COM to the current Drive and User ares. If operating in the Verbose mode (See Configuration), a message will be displayed that FILE.COM cannot be located (assuming none exists), and that the program is switching to FILE.HEX. If FILE.COM already exists in the current user area, it will be loaded, then FILE.HEX loaded over it. Before writing the new file to disk, a check is made for the presence of the output file, and you have the option of replacing the existing file, or aborting the write. To load FILE.HEX to a COM file in another User area, or on another drive, use the syntax: MYLOAD DU:=file or MYLOAD DIR:=file (on a Z-System) Multiple HEX files may also be loaded and combined into a single COM file by simply listing their names separated by spaces, commas or other recognized delimiters as: MYLOAD file1,file2, file3,... As in the simple load case, this example will produce FILE1.COM from a successive load of FILE1.HEX (assuming FILE1.COM does not exist), FILE2.HEX, FILE3.HEX, etc. If FILE1.COM already exists, it will be overlayed by the following HEX files. Explicit DU: or DIR: specifications are accepted for all file entries. An example of nultiple file overlaying is: MYLOAD A15:newfile=b3:oldfile work:ovrlay1 newpatch.hx In this example, the file NEWFILE.COM would be written to Drive A, User 15. It would be comprised of OLDFILE.COM (or OLDFILE.HEX if no COM found) from User Area 3 on Drive B, overlayed with OVRLAY1.HEX in the WORK: Named Directory and NEWPATCH.HX in the current Drive and User area. Likewise, Named Directories will be printed in a Z-System where a Name has been defined for a Drive/User. If no Name is located, then status lines will use the DU: form. When operating in a "vanilla" CP/M system, the DU: form is always used for input and output. MYLOAD also senses specified File Types, and will not override any which are so entered with the default COM or HEX. It is therefore possible to make an OBJ or other user-specified type for output, or overlay an input file with types other than HEX. The contents of the overlay files will, however, have to follow the required Intel-standard Hex file formats. There are two constraints imposed by this. The first is that no writes are permitted to page 0, or any address less than 100H; and the second is that the first file in the argument string, if no assignment of an output name is made (no equal sign), or the first name after the equal sign MUST be EITHER .COM or .HEX. CONFIGURATION. Two options may be specified by configuration bytes in the header of MYLOAD. The first of these bytes, located at 115H, causes Verbose output with all status messages to be displayed. Setting this byte to a binary Zero will reduce output to the terminal to only essential messages, and errors. On a system operating under ZCPR 3.x, this local flag is combined with the Z- System Quiet flag, so a "Quiet" mode will only be selected when both the local and ZCPR flag bytes are Zero. The second byte controls whether a BELL character is sent to the terminal when errors are detected. If this beeping creates an annoyance, it may be disabled by setting the configuration byte at 116H to a binary Zero. Both configuration bytes may be changed by overlaying with a HEX file using MYLOAD, or with Al Hawley's excellent ZCNFG tool via the MYLOAD.CFG file contained in this release package. COMMENTS. This program was hastily thrown together to satisfy an immediate need, and there may be a few rough spots. As usual, comments and helpful suggestions are welcomed. To foster the release of more advanced tools to the Z-System community, and interest in programming for the newer operating environments such as ZSDOS and NZ-COM, I am releasing the source code for MYLOAD to the Public Domain as a sample of such programming for an adaptive environment. Harold F. Bower 7914 Redglobe Court Severn, MD 21144