CONCAT Version 1.0 New Features April 24, 1990 Gene Pizzetta DISK SPACE CHECKING: Before any files are opened, CONCAT checks the amount of free space on the target disk and then checks the sizes of the source files to determine if there is room to complete the concatenation or append. If there is not sufficient disk space, an error message is printed and the operation is cancelled. File sizes are measured in records, which are converted to kilobytes after all the input files' sizes are added together. Also, another record is added to the total file size calculation if the D option is chosen, even though that option could add only a maximum of 60 bytes to the resulting output file. In addition, disk space is determined in kilobytes, based on the disk's allocation block size. Because of these limitations, it is possible for CONCAT to be fooled into thinking that there is not enough disk space for the concatenation (or, especially, append) even though adequate free space exists. Moreover, space checking adds a second or more to CONCAT's running time, depending on the number of source files involved and on whether the various source drives are already logged in. For the above reasons, a new option allows bypassing disk space checking for those impatient souls with more guts than brains (-: S Toggle disk space checking. A configuration byte at 119h determines whether CONCAT will check disk space by default before doing anything. A non-zero value turns this feature off. The S option will then toggle space checking back on. ERRORS: In addition to setting the program error flag, an error also causes CONCAT to invoke the error handler, if one is running. The ZCPR3 error flag is set as follows: 8 ambiguous or missing output or source filename 10 source or target file not found or not given 11 disk or directory full (write error) 4 all other errors These same codes are passed to the error handler. ABORTING: Normally the console is checked for a character everytime a sector of an input file is read. If the character is a ^C, then CONCAT cancels the operation, just as if an error occurred, erasing the incomplete output file. If CONCAT is operating in Append mode, however, entering a ^C has no effect. A file that is being appended to is irrevocably changed as soon as a single byte is appended to it. Rather than leave such a file in an unknown condition, CONCAT ignores any ^C's and continues appending until the job is finished. HELP SCREEN: The actual name by which CONCAT was invoked is now displayed by the usage message. Also, the current state of the two toggle options (Q and S) is displayed.