A workaround for sending files to the Z80-MBC2
I'm still troubleshooting a file transfer issue between Crostini Linux and the Z80-MBC2. Sending files from Crostini to the Z80 computer via XMODEM times out, but I figured and tested an effective workaround.
The workaround, which works only for ASCII transfers, consists in pasting a text file from the Minicom terminal emulator into an ED session on CP/M, i.e. sending the contents of the file as if they were typed in. Saving ED's buffer makes the file available on CP/M.
More specifically, this sample Minicom session shows the steps I go through for sending the file
greet.hex from Crostini to the Z80-MBC2.
First off, it's essential to set at least a 5 ms character transmit delay in Minicom's terminal settings, otherwise the board can't keep up with the flow of data. I press the keystrokes
^A T F to execute the command
Terminal settings >
Character tx delay (ms). I actually changed the Minicom escape from
^Y, but in the following I'll continue with the default
Next, at the CP/M prompt I run the ED text editor for creating a new file
GREET.HEX to hold the text coming from Crostini:
After entering insert mode with the
i command, ED is ready to accept any characters typed in — or coming through the serial line connected to the terminal.
In Minicom, I proceed to invoke the
Paste file command with the keystrokes
^A Y and select
greet.hex on the Crostini file system. One by one, the characters of the file appear in ED's buffer. When Minicom completes pasting
greet.hex, in ED I execute the commands
#w to save the full text and
e to exit the editing session.
The file is now available on CP/M. For example, with the standard tool
LOAD I can convert
GREET.HEX in Intel HEX format to an executable
B>load greet.hex FIRST ADDRESS 0100 LAST ADDRESS 0121 BYTES READ 0022 RECORDS WRITTEN 01
greet.com hello world demo is ready for execution on CP/M:
B>greet Greetings from Suite8080
This workaround is slower than XMODEM transfers, but still acceptable and practical.
Pasting text files lets me indirectly send arbitrary binary files to CP/M. Executable programs can be converted to HEX format. Other binary, non-excutable files need uuencoding or processing with similar text-encodings.