}NZCNFG CFGM%pZMAC CFGrz`T`TZML16 CFGKMMNEWCFG FOR5  j 0f &S 1 &C2 &3 &4  &5@ &B#6)f7/8,92AM9>&RF8B&HJA?L5d ZML LINKER INSTALLATION MENU 1 of 2 I/O CONTROL OPTIONS DEFAULT OUTPUT FILE TYPES 0) Sym Tbl list/Console xxx | S) Symbol Table file .SYM 1) Page Console display xxx | C) Executable A:0100 .COM 2) Sym Tbl list to File xxx | B) Executable A:other .BIN | 6) /P option, A:0100 .PRL 3) Supress Propeller xxx | 7) /P option, A:0000 .SPR 4) Supress Status Rpt. xxx | 8) /P option, A:other .BPR 5) Z3 Quiet flag for both xxx | 9) FS/I option .RSX SYSTEM INTERFACE OPTIONS | DEFAULT INPUT FILE TYPES M) Z3 Msg Buffer Offset 42H | R) mREL Source file .xxx F) ZCPR3 System File # xx4 | H) PRL hdr file xxxxxxxx.xxx A) Alternate DU: ?8x | L) mREL Library file .xxx I/O CONTROL OPTIONS Options 0 through 5 toggle (YES/NO) each time they are selected. 0) and 2) control automatic output of the global symbol table. Setting either or both to YES causes the symbol table to be generated and sent to the selected device(s). If 1) is set to yes, then console output will be paged. 3) Display of the activity indicator and linker pass number is inhibited when this item is answered YES, superseding the state of the Z3 QUIET flag. 4) Display of the status report at the end of link is inhibited if YES. Like 3), the YES supersedes the state of the Z3 Quiet Flag. 5) When YES, the Z3 Quiet Flag will inhibit BOTH the activity indicator and the status report. For non Z-systems, this item has no effect. Options 3-5 give you the choice between more information and reduction of console screen clutter. The activity indicator simulates a rotating propeller which is very hard on printers and braille terminals. DEFAULT FILETYPES File type extensions on the command line supersede the defaults shown here. The file type for output files containing code depends on the load address at which the program is linked. The default load address (normally 100H) is set by the A option in MENU 2, and may be assigned by the /A option on the command line. The default output filetype is selected according to the indicated combination of command option (/P, /K, /I, or none) and the default or assigned load address (/A or /A:). Note that the default FN and FT for the /P options only provides defaults for missing parts of a FS/P command line option. If FS is missing entirely, then ZML generates a null-filled PRL header. The PRL header file (FS) may contain executable code. Locations 01 and 02 will be filled with the length of the following program after the file is prepended to the output file and its bitmap. ZML makes the bitmap automatically. SYSTEM INTERFACE OPTIONS A) ALTERNATE DU If ZML can't find a file in the default or named directory, the search will continue in the Alternate you have selected. The "?" entry for either drive or user means to search the default D or U which is current when ZML is invoked. F) ZCPR3 System File number When ZCPR3/33/34 is available, the name of the first input file that caused an error will be stored at this system file number. Note that 'undefined symbol' errors are not assigned to a particular file! M) Z3 Msg Buffer Offset This value defines the destination of potential error or link data that ZML could leave for reference by subsequent programs. It is not currently used, and changing it will have no effect.   P &R &M&&S=F&NUUA6AH0&1@[&I T&2y&3& ZML LINKER INSTALLATION MENU 2 of 2 A) Main Load Address 0100H | 0) Append .REQUEST files U) Uninitialized data is: 00H | 1) Initialized ASEG only? YES P) Make PRL/xPR file xxx | S) PRL header size = xxx rcrds R) Make RSX type file xxx | N) RSX HDR name = xxxxxxxx.xxx M) Mark Free Memory address RELOCATABLE in the bitmap I) Include empty externals?YES | 2) Truncate DS (non PRL)? YES | 3) Truncate DS (for PRL)? YES U) UNINITIALIZED DATA ZML uses the byte displayed here to fill areas skipped over by ORG and DS statements, and as a fill byte in the last sector of the binary output file. You can set this to any value you wish. A) MAIN LOAD ADDRESS The Main Load Address is that memory location at which the first byte of the linked code will be loaded for execution or other memory location-dependent access. For programs operating under CP/M or Z-Systems, that address is the familiar 100H. This menu item allows you to set the default load address to some other value for special applications. The /A command line option achieves the same objective, over-riding the default set here. : 0) xxxxxx .REQUEST FILES "xxxxxx" toggles between "Append" and "Insert" when this menu item is selected. The names of REL Files included in the current link are either appended to the list of files from the command line or are Inserted immediately after the file in which the .request item was found. This affects the ORDER in which libraries are searched to resolve symbols which have been previously declared External. Append is the preferred selection when the .request'd files do not in turn contain the .request item. When .request items are NESTED by being called out in files that are themselves the object of a .request, then the INSERT selection may avoid 'unresolved symbols'. Consider the link command: ZML MYFILE,SYSLIB/ If MYFILE contains a .request MYLIB item, then the linker will (append) process the files in the following order: MYFILE.REL, SYSLIB.REL, MYLIB.REL If the INSERT selection is active, then the processing order will be: MYFILE.REL, MYLIB.REL, SYSLIB.REL If MYLIB.REL contains externals expected to be resolved in SYSLIB, then only the second strategy will be successful! : 1) Initialized ASEG only? A 'YES' here means that ASEG will only contribute code to the output file if it is initialized data generated by instructions or DB or DW statements in ASEG. When toggled to 'NO', this option causes ALL ASEG memory references to be allocated, initialized, and included in the output file. ASEG areas defined with DS or skipped via ORG statements will be included in the output file and initialized to the value you have selected in item U above. Labels defined in ASEG by statements like 'LABEL EQU $' are treated the same as ORG statements by initializing any undefined space preceding the Program Counter ($). Leave this option 'YES' unless you require these unusual effects. P) Make PRL/xPR file (xPR = SPR or BPR file types) A 'yes' here will cause such files to be generated without being named on the command line. The PRL type header will be filled with nulls except, of course, for the obligatory length word at addr 1. : S) Size of PRL type header The length of the null-filled block is 2 records (=1 page=256 bytes) for a standard PRL or SPR file. The S selection allows you to change this length for special applications. R) Make RSX file A 'yes' here causes the linker to always include the file named in the N selection as the first in the output file. The output file type will be set to that selected in MENU 1. N) Name of the RSX input file The name selected here provides default FN and FT for the FS/I command line option. If FS is not specified, then the input file is expected to be as shown here. : M) Mark free memory address ... This selection toggles between RELOCATABLE and ABSOLUTE, and controls treatment of the VALUE word at location $MEMRY (if present) when the bitmap is being constructed for PRL-type files. Leave this selection at RELOCATABLE unless you are **VERY SURE** that your code requires the un-relocated value at $MEMRY. I) Include empty externals? YES means that code for unreferenced external names will be included in the linked file even thought it is not used. NO means that such empty external references will be ignored, resulting in a shorter code image. Some compilers use such externals to force inclusion of library code. : 2) Truncate terminal uninitialized data (not PRL)? When YES, the object file will not include uninitialized (like DS) data areas at the end of the file. Such files may save disk storage space and may load faster if the uninitialized data area is large. If NO, then the uninitialized data is included and is actually initialized to the value specified in the 'U' option. This option applies to all output files except those that contain a PRL or SPR header. 3) Truncate terminal uninitialized Data (for PRL)? When YES, the object PRL/SPR file will not include uninitialized data, as above for non-PRL files. If NO, then the uninitialized data is included. This option applies to PRL/SPR files only, allowing you to treat them differently than 'normal' files. YES NOYESINSERTAPPENDABSOLUTE RELOCATABLE@OU  TOZ"VpAL!C#D.?x ZCNFG CONFIGURATION T) Target Program Default Filetype COM O) Overlay file Default Filetype CFG Z) Z3ENV auto-install for ZCPR3 NO A) Alternate D/U for Overlay files B8 L) console Lines per Screen 24 C) Configuration LBR name CONFIG .LBR D) Use default DU as the default for the CFG filespec YES NODEFAULT TARGET P T) and O) - DEFAULT FILE TYPES The default file type extensions used by ZCNFG are shown. You may wish to choose another default filetype extension for configuration overlays (.CFG files) because of conflict with your system standards. Otherwise, leave these as is. An explicit filetype on the command line supercedes the default, allowing you to configure files whose filetype has been changed from .COM to something else. Z) Z3ENV AUTO-INSTALL When set to YES, your current Z3ENV address will be installed in the target program, just as if you had invoked Z3INST.COM. Nothing is done if the current system is not ZCPR3x. Set this to NO if the target program is intended to operate in a CP/M system. It is not needed for target execution under ZCPR33/4. Set it to YES if target programs are likely to be executed by a debugger like DSD or DDT which do not auto-install. : A) ALTERNATE DU (DRIVE/USER) Use this item to select an Alternate Directory. The Alternate Directory is the place ZCNFG expects to find CONFIG.LBR if it exists. This is also the directory which will be searched for a CFG file whose directory has not been specified explicitly on the command line. CONFIG.LBR and ALT: are two of the elements in ZCNFG's search path. The third element of the search path is selected by menu item D. You may assign an explicit DU, or use wildcard notation for an ambiguous directory spec that will be resolved when ZCNFG is invoked. An explicit DU (like B31 or D15) is usually most convenient, especially with a hard disk. Ambiguous specifications are difficult to remember but may be useful for Floppy Disk systems. Examples: ALT assignment ALT: when ZCNFG is invoked -------------- -------------------------- ?? or ??? current Drive and User A? or A?? Drive A, current User ?14 Current Drive, User 14 ?8 Current Drive, User 8 : L) CONSOLE LINES PER SCREEN Set this to the total number of lines your terminal displays. This is a default value which is replaced at execution time by that from the Z3 Environment. ZCNFG uses this number to manage menus and help screens properly. For demonstration purposes, values are limited to a minimum of 12 and maximum of 80. C) CONFIGURATION LIBRARY You may change the NAME of the library, but not the extension, which is always taken to be .LBR. This library is made with NULU, VLU, LPUT, or equivalent. If you put all your CFG files in this library, you will conserve directory entries on your disk. The library must be located in the directory you have assigned in menu item A. When ZCNFG is invoked like: ZCNFG [DIR:]FN[.FT] [CFGFN][.FT] (note no DIR: in the 2nd argument) then the LBR will be searched first for the CFG file. This method is faster than searching several directories for CFG files. : D) DEFAULT DU FOR THE .CFG OVERLAY FILE This item toggles between DEFAULT and TARGET directories. If you choose DEFAULT, then missing parts of the DU portion of the filespec for configuration overlay file are provided from those for the logged directory. This is exactly the way ZCPR3x parses, and is an appropriate choice if you normally invoke ZCNFG with the CFG file present in either the current directory or ALTernate directory. If you choose TARGET, then ZCNFG virtually logs into the TARGET file directory after it has been parsed from the command line. This choice is appropriate if you normally invoke ZCNFG with the CFG file present in the same directory as the target file to be configured or the ALTernate directory. Note that if both the target and CFG files are in the current directory, these choices become equivalent. Also, if your CFG files are normally in ALT:CONFIG.LBR or in the ALT: directory itself, this choice is irrelevant.  !K| P&%( 0<@1<@20<@3y<@4<@5 D@6@T<@7AZM PUS R#H&0E)yAB6k@F5Ao@ ZMAC ASSEMBLER INSTALLATION MENU 1 of 3 I/O CONTROL OPTIONS DEFAULT FILE TYPES 0) Listing to Terminal NO | Z) Z80 Source Z80 1) Listing to Disk File NO | M) MACLIB/Incl LIB 2) Listing to Printer NO | P) List File PRN 3) Generate Object File YES | S) Symbol Tbl SYM 4) Generate Symbol File NO | R) REL Object REL 5) Object Type (HEX/REL) REL | H) HEX Object HEX 6) Make Error Log file YES | E) Error log file ERR 7) STOP if errors exceed 50 | SYSTEM INTERFACE OPTIONS B) Z3 Msg Buffer Offset 42h | A) Alternate DU: B8 F) ZCPR3 System File # 4 | I/O CONTROL OPTIONS (0..6) Default values for missing command line options. When a command line option is used, it toggles the associated option value. 0) Listing to Console? 'C' option 1) Listing to Disk File? 'P' option 2) Listing to Printer? 'L' option 3) Generate OBJect File? 'O' option 4) Generate Symbol File? 'S' option 5) OBJect type (HEX/REL) 'H' option 6) Make Error Log File? 'E' option 7) STOP if errors exceed xxx (not a command line option) xxx defines the number of non-fatal errors that will cause an abort of the current assembly. If xxx is 0, such errors will never cause an abort. xxx is a decimal number from 0 to 65535. DEFAULT FILETYPE OPTIONS Default filetypes exist for all files and are as shown on the screen. A filetype in an explicit filespec takes precedence over the default. Z) Source File type is the default filetype for the Source file to be assembled. Change it if you normally use some other extension (like .ASM or .MAC) for source files. M) MACLIB/INCLUDE file type is the default extension for names given in INCLUDE, .IN or MACLIB statements. L) Listing File type is the default filetype for the listing file. An explicit filetype in the command line P option takes precedence. MORE DEFAULT FILETYPE OPTIONS S) Symbol table File type is the default filetype for the Symbol Table file. An explicit filetype in the command line S option takes precedence. R) REL OBJect File type is the default filetype for the mREL format object file. An explicit filetype in the command line O option takes precedence. H) HEX OBJect File type is the default filetype for the Intel HEX format object file. An explicit filetype in the command line O option takes precedence. E) Error Log File type is the default extension for the Error Log File. An explicit filetype in the command line E option takes precedence. SYSTEM INTERFACE OPTIONS F) Z3 System File number (1 to 4) On the first assembly error, the name of the current input file is written into the system file buffer number specified. B) Z3 Msg Buffer Offset (40H to 4FH) The error type, DU spec for the file, and file line number are entered in the Z3 message buffer at the offset named above. A) Alternate DU This option supplies the DU to search for an input file after an unsuccessful search of the current directory. A ? in the DU is a form of wildcard. It refers to the currently logged Drive or User determined when ZMAC is invoked.  0`<@1<@2<@3;<@4?w@5C{@6@{@7_<@8 <@9@8@AO<@Wv<@S8s@O9s@P:s@E<bs@F=<@T 8@M\@ ZMAC ASSEMBLER INSTALLATION MENU 2 of 3 LISTING FORMAT BUFFER SIZES, 128 Byte Records 0) Form Feed at Start NO | S) Source Files 16 1) Form Feed at End YES | O) Object File 8 2) Keep Page Parity YES | P) PRN List File 16 3) Page Size from Z3 ENV NO | E) Error Log File 4 4) Default Page Length 66 | 5) Dflt. LST line length 128 | LINES TO LIST IN PRN 6) Dflt. PRN line length 128 | F) False Conditionals NO 7) Include Line Numbers YES | T) .TITLE, PAGE, etc. NO 8) Statement Sequence NO | M) Macro Expansions LALL 9) Line Number first YES | List High Byte first in: A) Addresses in Operand YES | W) Words in DW stmnts YES DEFAULT BUFFER SIZES ZMAC employs user configurable file i/o buffers which are allocated at run-time. Allocation is automatic; buffers not required by default settings or command tail argument options are not allocated. The space is instead allocated for use by the memory-resident symbol and Macro tables. When file i/o buffers ARE allocated, their size is that assigned during configuration. Buffer sizes are stated in terms of 128-byte records. Thus, the default size of the Source file buffer is 16*128=2K. You may change these to a number between 1 and 32. (zero length is not allowed). Smaller buffers make room for assembly of larger and more complex source files; larger buffers increase the speed of an assembly through reduced disk I/O. LISTING FORMAT CONTROLS 0) Form Feed at Start of listing? YES causes a form feed before the listing starts. NO assumes that the printer is at top-of-page when the assembly listing starts. 1) Form Feed at End of listing? YES causes a form feed after the last line is printed and avoids leaving the printer in the middle of a page. NO to eliminate this formfeed. 2) Keep Page Parity in Listing? After printing is complete, ZMAC notes whether an odd or even number of pages has been printed. If the number is odd, then an extra formfeed is issued. With fan-fold paper, all listings will then have the same orientation with respect to the fold. NO to disable this feature. LISTING FORMAT CONTROLS - II 3) Get Page size from Z3 Environment? YES will cause ZMAC to retrieve the page length and width for both the console and the printer from the currently selected ones in the ZCPR3 environment. NO causes the values in 4), 5), and 6) to be used. 4) Default Page Length The total length of the page in lines. ZMAC allows for top and bottom margins. This page length is used for both the Printer and the PRN file. 5) Default Page width for List Device The total width in terms of print characters. ZMAC allows for margins. LISTING FORMAT CONTROLS - III 6) Default Page width for PRN file Listing This number specifies the line length for lines sent to the PRN file. Lines longer than this will be truncated on the right. This line length and the one for the list device (printer) work independantly. 7) Include Line Numbers in Listing? NO to remove line numbers from the listing. 8) Statement Sequence for line numbering? NO to number lines in the PRN listing in accord with their position in the source file. A separate line number sequence is maintained for each source file. This makes it easy to locate lines in the source which may need changing. YES will cause line numbers to be assigned sequentially, in the order in which source statements appear in the PRN listing. LISTING FORMAT CONTROLS - IV 9) Line Number First? YES causes line numbers to appear at the far left of the listing. NO will cause the line numbers to be printed between the CODE field and the source line field. F) List False Conditionals? NO means source lines within a false conditional block will not be included in the listing. YES means you want those lines listed. T) List .TITLE, PAGE, etc. statements? NO means lines containing Listing Control pseudo-ops will not be listed. This is the same as if the .XCTL pseudo-op had been invoked. The EFFECT of the hidden pseudo-ops is still present. YES causes lines containing those pseudo-ops to be included, and is equivalent to the action of the .LCTL instruction. LISTING FORMAT CONTROLS - V HIGH BYTE FIRST in: A) Addresses in Operand W) Words in DW stmnts These two selections control the order in which the high and low bytes of 16 bit quantities (words) are displayed in the assembly listing. Humans generally like to see the high byte first; the actual order of storage (ie as shown in a memory dump) is low byte first. Toggle these as your needs dictate. M) Macro Expansions: XALL, SALL, LALL This is a three way toggle that selects which of the macro listing options will be used as default. Refer to the descriptions of .XALL, .SALL, and .LALL in the ZMAC Manual.  A2&<@B2'<@C3>'6&EGh'F2@':&G'L@H2'<@J2(8@MJ:(D&DK=(H&YI@(L&K2 l(<@14(<@24(<@34(<@ASEGCSEG1 ZMAC ASSEMBLER INSTALLATION MENU 3 of 3 -- ASSEMBLY DEFAULTS A) Suppress Assy Statistics NO B) Suppress Propeller? xxx C) M-REL Max Symbol length 6 E) ASEG default start address 0100H F) Default initial segment CSEG G) Use 16 BITS to test Trueness H) Allow LABEL redefinition ? NO J) Pass ALL externals to REL ? YES M,D,Y) Default Date: 05/23/89 K) Put Date/Time in Rel file? NO 1) .PRINTX output on Pass 1 ? YES 2) .PRINTX output on Pass 2 ? YES 3) SAK after error msgs only ? YES ASSEMBLY DEFAULT OPTIONS A) Assembly Statistics are sent to the screen at the end of each assembly. You may wish to suppress these when assembling many sources with an alias. B) The 'busy' indicator is a simulated rotating propeller displayed on your screen. You can toggle this off to please your taste or preserve the sanity of a hard copy output device. C) Standard M-Rel files only transmit up to 6 characters of symbols and names. Depending on the capabilities of programs that use the REL files, this can be increased to 7. ZMLIB and ZML permit 8. 8 significant characters are very useful with the .REQUEST statement because it allows arbitrary library file names. E) ASEG starts by default at this address. If it's the address you want, no ORG statement is necessary. The standard addresses are 100H and 0. Some linkers may be confused by rel files that start with ASEG assumed to start at 0. (ZML works with both.) ASSEMBLY DEFAULT OPTIONS - II F) Some assemblers start with an implied ASEG, others with an implied CSEG statement. You may choose the default relocation base either way with ZMAC. This option toggles between the two. DEFINE THE MEANING OF "TRUE" G) Use 16 BITS to test Trueness Use LOW BIT to test Trueness An expression used in an IF (conditional assembly) clause is reduced at assembly time to a 16 bit number which is tested by one of two methods: 1) is it zero or non-zero, and 2) is it odd or even? Z/NZ is a 16 BIT test; odd/even is equivalent to a test of the least significant (LOW) bit. TRUE is defined as NZ when 16 BIT testing is being used, and as ODD (lsb = 1) when LOW BIT is the test chosen. It is important to know which convention is being used in order for your IF clauses to have predictable behavior. Digital Research assemblers use the LOW BIT method for testing values. The Microsoft (continued on next screen) ASSEMBLY DEFAULT OPTIONS - III M80 assembler uses the 16 BITS method (Z/NZ) for testing. This option determines which method ZMAC uses by default. The two pseudo-ops .IF1 and .IF16 permit control of the method used from within the assembly source. H) Allow LABEL Redefinition - The SET and ACCEPT pseudo-ops will permit redefinition of symbols which were first encountered as a statement label if you select a YES answer to this item. ACCEPT makes such assignments during pass 1 only, leaving the assigned value intact during pass 2. Make sure you fully understand the assembly process if you turn this option on! Phase errors can result. J) Include ALL Externals in REL file - If YES, then externals declared but never referenced in source code are included in the REL file and the code in which the symbols occur will be included at link time. NO means that such symbols will be ignored, permitting the use of standard EXT lists whose references are only used as required by the following code. ASSEMBLY DEFAULT OPTIONS - IV M,D,Y) DEFAULT DATE (Month/Day/Year) This is the date used by ZMAC when no system clock is present. It is overwritten by the system date/time functions at each invocation. The .SETDAT and .SETTIM assembler instructions in turn supersede both defaults. The date and time is included in assembly listing headers and is passed to the mrel object file for use by the linker, library manager, or other programs that use the rel file. K) Put Date/Time in the REL file Toggles the function on/off. Linkers which do not recognize the embedded date/time data will sometimes issue a 'duplicate symbol' error message. This does not interfere with successful linking and can be ignored or toggled off with this option. ASSEMBLY DEFAULT OPTIONS - V 1) .PRINTX output on pass 1 ? 2) .PRINTX output on pass 2 ? These two options are toggles. When 'YES', the .PRINT and .PRINTX pseudo-ops produce output by default on that pass. You may thus select pass 1, pass 2, or both passes for .PRINT to be active. Note that logic in ZMAC interprets a NO for both passes as a request to print on BOTH passes; the response is the same as if you had said YES to both options. This is done because the purpose of the .PRINT statement is to produce console output. The selection provided by these options makes ZMAC behave as intended when assembling source written for other assemblers, each of which uses slightly different conventions. The as-distributed configuration, output on pass1 only, is probably the most generally useful. ZMAC automatically over rides these defaults in IF1 conditinal assembly blocks or if the ZAS style pass number argument is present in the .PRINTX statement. ASSEMBLY DEFAULT OPTIONS - VI 3) SAK (Strike Any Key) after error msgs only ? Before sending the assembly statistics report to the screen, ZMAC checks to see if any text has been sent to the screen by .PRINTX, by .ACCEPT, or by the error handling function. If error messages are present, ZMAC will always pause with the "Strike any key to continue" message giving you the opportunity to read the messages before they are scrolled off the screen. Option 3 allows you to select or inhibit the same screen pause for non-error messages generated by the .PRINT and .ACCEPT pseudo-ops. This option is a toggle. When the YES response is selected, the screen pause caused by .PRINT, .PRINTX, or .ACCEPT will be ignored. When the NO is chosen, then output from these pseudo-ops is not ignored, and the SAK message will be active. You might wish to use the YES option during assemblies controlled by a script so that you do not have to 'stand by' to press a key for each module assembled. NOYES NOHEXRELLOW BIT16 BITSLALLSALLXALL@O NEWCFG.LBR Contains new CFG files for ZCNFG20, ZMAC, and ZML16. Previous versions contained a benign error that is now detected by ZCNFG20. Earlier versions should be discarded and replaced by these downward compatible files. AL Hawley 09/20/91