Z80-MBC2のCP/Mにはxmodem.comが同梱されており、xmodemを使ってホストとファイル交換が可能になっている。
となれば、ホスト側で動かす端末アプリがxmodemをサポートしていなければならない。
当初用いていたPuTTYは、サポートしていないため、TeraTermを今更導入しようかと思ったのですが、WSLがシリアル通信可能というのを見かけて、WSL+screen+sx/rxで環境を構築することに。
screenはほっといても入ってるはずなので、sx/rxを導入すれば準備OK。
$ sudo apt install lrsz
で、導入完了。あとは screen で、Z80-MBC2 に接続。
$ sudo screen /dev/ttyS4 115200
ttySxにはrootでのアクセスが必要な様子。screenにSビット立てることも考えたけれど安易にやると穴になるので、あとで考える。
CP/M側からファイルを転送するには、CP/M側で
A> xmodem autoexec.txt /s
のように、/sを付けて起動。しかる後に、screenに対して、Ctrl+A : を入力し
:exec !! rx -b autoexec.txt
の様にrxを起動すればいい。逆ならsxを起動する。xmodemはzmodemと異なりファイル名は送信されないため、受信側でもファイル名の指定が必須。
とりあえず、これで、簡単なファイル交換が可能になった。なお、CP/M側から受信したファイルはsudoでscreenを実行している関係で、rootの所有になり、しかも 0600のパーミッションなので、所有者なり権限なりを変えないとアクセスできない。また、128byte/blockで管理するCP/Mの関係で、末尾にnullがごそっとついている場合がある。これはそういうものなので、適宜削除するなりすればいい。
コメント