MFT - Multiple File Transfer Utility - User's Guide for version 4.8 MFT is a transient program which runs under the Digital Research CP/M operating system. It is used for transferring one or more arbitrarily large files from one diskette to another on a single drive, not necessarily drive A. It is run by typing its name followed by a file specification. That specification can be a list of unambiguous file names separated by spaces or an ambiguous file name. No drive id is allowed in the file specification since the files are read from and written to the logged drive. Any valid drive may be used. It will attempt to read all specified files into memory, up to the start of the BDOS. If any file extends past the available memory area, any files and/or part thereof which were read will be written to the output disk, and a further pass will be requested. MFT will continue read/write passes until all files have been transferred. The general syntax for MFT is as follows: d>MFT where: d is the logged drive (any legal drive) can be an ambiguous file name or a list of one or more unambiguous file names or ambiguous file names separated by spaces. Examples: To copy just ASM, PIP, and DDT from drive A to drive A: A>MFT ASM.COM PIP.COM DDT.COM To copy MFT itself from drive B to drive B: A>B: B>MFT MFT.COM The following example shows MFT copying an entire disk from drive B to drive B. Note that MFT.COM resides on drive A in this case. B>A:MFT *.* MFT V4.8 for CP/M Plus, V3.1 Multi-File-Transfer for single disk drive, with multiple copy option. Buffer size = 331 sectors Mount SOURCE disk, type RETURN (or ^C to reboot) MFTX48 .ASM - 163 sectors read MFTX48 .SAV - 161 sectors read MFTX48A .BAK - 7 sectors read ++ Memory buffer exceeded, cannot make duplicate copies this time...last output file is incomplete ++ Mount DESTINATION disk, type RETURN (or ^C to reboot) MFTX48 .ASM - 163 sectors written MFTX48 .SAV - 161 sectors written MFTX48A .BAK - 7 sectors written Mount SOURCE disk, type RETURN (or ^C to reboot) MFTX48A .BAK - 151 sectors read MFTX48 .COM - 16 sectors read MFTX48A .ASM - 159 sectors read RSXDEMO .AQM - 5 sectors read Mount DESTINATION disk, type RETURN (or ^C to reboot) MFTX48A .BAK - 151 sectors written MFTX48 .COM - 16 sectors written MFTX48A .ASM - 159 sectors written RSXDEMO .AQM - 5 sectors written Mount SOURCE disk, type RETURN (or ^C to reboot) RSXDEMO .AQM - 34 sectors read RSXDEMO .DQC - 52 sectors read MFTX48 .AQM - 111 sectors read RSXDEMO .ASM - 57 sectors read MFTX48A .HEX - 44 sectors read MFTX48A .COM - 16 sectors read MFTX48A .PRN - 17 sectors read Mount DESTINATION disk, type RETURN (or ^C to reboot) RSXDEMO .AQM - 34 sectors written RSXDEMO .DQC - 52 sectors written MFTX48 .AQM - 111 sectors written RSXDEMO .ASM - 57 sectors written MFTX48A .HEX - 44 sectors written MFTX48A .COM - 16 sectors written MFTX48A .PRN - 17 sectors written Mount SOURCE disk, type RETURN (or ^C to reboot) MFTX48A .PRN - 269 sectors read RSXDEMO .RSX - 6 sectors read RSXINIT .ASM - 8 sectors read MFTX48A .AQM - 48 sectors read Mount DESTINATION disk, type RETURN (or ^C to reboot) MFTX48A .PRN - 269 sectors written RSXDEMO .RSX - 6 sectors written RSXINIT .ASM - 8 sectors written MFTX48A .AQM - 48 sectors written Mount SOURCE disk, type RETURN (or ^C to reboot) MFTX48A .AQM - 65 sectors read MFT .DQC - 18 sectors read MFT .DOC - 25 sectors read RSXINIT .COM - 7 sectors read 950FUNC .AQM - 17 sectors read Mount DESTINATION disk, type RETURN (or ^C to reboot) MFTX48A .AQM - 65 sectors written MFT .DQC - 18 sectors written MFT .DOC - 25 sectors written RSXINIT .COM - 7 sectors written 950FUNC .AQM - 17 sectors written type ^C to reboot. ^C B> Note that five passes were required to transfer all files. Also note that MFTX48A.BAK was partially transferred in pass one (7 of its 158 sectors) with the remainder (151 sectors) being transferred in pass two. Note that the name MFTX48A.BAK occurs both as the last file of pass one and as the first file of pass two. The file RSXDEMO.AQM was split in a similar manner between passes two and three. A number of self-explanatory error messages may print out during normal use, if read or write errors occur at any point, for example if the disk fills up during a write. No checks are made to prevent overwiting an existing file on the output disk. As MFT creates its filename table, it may issue diagnostics which indicate that a particular filename was not found, or a syntax error was detected. MFT will struggle bravely on and ignore any such attempts at levity. Just those files which are legal names and present on the disk will be listed as it reads them into memory. As distributed, MFT.OBJ will run on most systems without changes. The only user configurable options are whether or not MFT will copy "system" files (files with $SYS attribute set) and the maximum number of files your disk can have. To allow MFT to copy "system" files as well as "non-system" files, reset the least significant bit of the byte at 103H. The released version of the object code has this bit set. The maximum number of files it will copy is 128, so if a disk on your system is capable of containing more than 128 files, you must obtain the source code (MFT48.AQM), "unsqueeze" it and modify the symbol NUM$FLS. You should "EQU" it to be the maximum number of files your system is capable of having on one disk. Then MFT48.ASM must be reassembled by ASM (or equivalent) and "LOAD"ed. The following commands will set MFT.COM to copy "system" files along with "non-system" files: A>DDT MFT.COM DDT VERS 2.2 NEXT PC 0980 0100 -S103 0103 FF 00 0104 00 . -G0 A>SAVE 9 MFT.COM LEH - 79/09/23. DM - 19 August 1983.