I had kermit beat by a year. From 1979-1980 I was a consultant and worked on several CP/M and MP/M systems. Standalone CP/M such as Vector Graphic (S-100 system) and a sweet MP/M system with Televideo terminals. In those days everyone's diskette formats were proprietary even though the CP/M base and 8080 assembler was standard. WordStar would run once you patched its terminal codes and told it the UART base port for serial printer port. But how to get it there, and the growing list of diagnostic utilities I was collecting?
In late 1979 I wrote a simple file transfer utility called MFT (multi file transfer) in 8080 assembler. It was meant to transfer over a 9600,N,8,1 or 19200,N,8,1 serial line between two computers. It sent file names over the link with the files and did full handshake 256 byte packets with checksum to do it slowly but reliably. When you wrote to diskette in those days you'd better not have any I/O happening. It supported wildcards (no directories in CP/M days)and would copy everything to the new system.
It would work but only if MFT.COM was already on the new machine. To bootstrap it I built an ASCII file consisting of CP/M debugger commands that assembled MFT.COM into memory an instruction at a time, told the debugger it was named MFT.COM, and wrote its span of memory onto the new machine's disk and exited the debugger. All I had to do was set the COM ports to something slow that both machines could handle reliably like 1200,N,8,1 and run debug on the new machine piped from COM1, and send the ASCII file with the debug sequence.
Then fire up MFT.COM and transfer everything else at 'high' speed. I ported WordStar and CP/M accounting systems and data to new machines, and handled every new Kaypro or Osborne etc. that came along. None of my customers ever had to 'repurchase' a master diskette in some proprietary CP/M diskette format.
In late 1979 I wrote a simple file transfer utility called MFT (multi file transfer) in 8080 assembler. It was meant to transfer over a 9600,N,8,1 or 19200,N,8,1 serial line between two computers. It sent file names over the link with the files and did full handshake 256 byte packets with checksum to do it slowly but reliably. When you wrote to diskette in those days you'd better not have any I/O happening. It supported wildcards (no directories in CP/M days)and would copy everything to the new system.
It would work but only if MFT.COM was already on the new machine. To bootstrap it I built an ASCII file consisting of CP/M debugger commands that assembled MFT.COM into memory an instruction at a time, told the debugger it was named MFT.COM, and wrote its span of memory onto the new machine's disk and exited the debugger. All I had to do was set the COM ports to something slow that both machines could handle reliably like 1200,N,8,1 and run debug on the new machine piped from COM1, and send the ASCII file with the debug sequence.
Then fire up MFT.COM and transfer everything else at 'high' speed. I ported WordStar and CP/M accounting systems and data to new machines, and handled every new Kaypro or Osborne etc. that came along. None of my customers ever had to 'repurchase' a master diskette in some proprietary CP/M diskette format.