xmodem

  • 投稿日:
  • by
  • カテゴリ:

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がごそっとついている場合がある。これはそういうものなので、適宜削除するなりすればいい。