ラッピングで作ったZ80ボード(SBC)とcpm8266で同じプログラムを実行してみました。
両方ともMac OS X(El Capitan)のcuコマンドでオペレーションしています。SBCの方はFT2232直結でcpm8266はBluetooth接続です。
動かすコードはこれです。
ファイルの拡張子がtxtなのはいつも使っているMacではなくてWin7の秀丸で打ち込んだためです。
SBCは0x8000からの後半32KがRAMで、0x8000のアドレスでリンクします。モニターにEfexMonを使っていて、これのLコマンドでIntel Hexを読み込ませます。
cuのコマンドモードに入るにはリターンキーを押したあとにチルダ(~)を入力します。ちょっとタイミングが難しいかもしれません。
EfexMon By M.PEKER v1.0b
Press H for help
Ready.
Hex Loading...~+ cat TEST1_SBC.hex
loaded adress:$8000
C:\>
C:\>G-$8000 1.2345678D 02
CP/Mではコマンドは0x100から始まるので、このアドレスでリンクします。
cpm8266ではMac側で下記のxmodemコマンド(xs)を使いファイル転送します。
xmodemのオープンソースはいくつかありますが、cpm8266のコマンドと相性が悪く使えなかったので、自分で作りました。今回色々整理していて、久しぶりに手を入れて標準入力での処理を追加してcuのコマンドモードから使える様にしました。
cpm8266 - Z80 Emulator and CP/M 2.2 system version 0.4
62K CP/M v2.2 [cpm8266 v0.4 - SmallRoomLabs]
a>f:
f>a:xr test1.hex
CP/M XR - Xmodem receive v0.1 / SmallRoomLabs 2017
~+ ./xs TEST1.hex
File TEST1.HEX received successfully
f>
f>a:load test1
FIRST ADDRESS 0100
LAST ADDRESS 11FE
BYTES READ 10FF
RECORDS WRITTEN 22
f>test1
1.2345678D 02
SBCは4MHzのZ80でcpm8266の方が早いような気がします。
マイコンは1980年くらいからやっていて、当時CP/Mは高嶺の花で、あったらすごいことができそうな気がしたのですが、できることは同じでした。
80年代前半にはワンボードコンピュータのEX-80とPC-8001を持っていて、これをつないでなんかできないかなと考えていました。コンピューターとコンピュータをつなぐ事がライフワークになってる気がします。
Z80はこのSBCやESP以外にもPC-8001やPLUS80があります。