PC-8001を懐かしむページさんにDumpListEditorというプログラムがありました。エミュレータ用に作られたツールのようなのですが、実機で試してみました。
PC-8001には外付けフロッピードライブもありましたが、本体の倍くらいの値段で、高嶺の花でした。当時ホビーユーザーはカセットテープにプログラムなどを録音して保存していました。DumpListEditorにはカセットテープに録音していた音声(FSK)の解析や合成機能があります。
DumpListEditorのアプリケーションを起動して、「BASIC入力」のタブを選択してBASICを入力します。
入力が終わったら「cmt書出し」ボタンを押します。
ファイルの種類を「wavファイル」にして名前を付けて保存します。
PC-8001のカセットケーブルの白いプラグをWindowsのオーディオアウトに接続します。直接でもいけましたしたが、白いプラグはモノで、ほとんどのWindowsパソコンはステレオプラグと思われるので、変換を作ったほうが良いのかもしれません。
変換ケーブル作ってみました。
PC-8001でCLOADを実行します。
Windows Media Playerなどで保存したファイルを再生します。
正常に読み込まれ実行できました。
PC-8001のカセットインターフェースは600ボーで1バイト11ビットなので一秒間に54バイト送信できます。1Kバイトの送信は18秒くらいです。
アセンブラ入力も試してみました。
ORG 09000H
LD HL,MSG
CALL 052EDH
JP 05C66H
MSG:
db "HELLO", 0
wavファイルに書き出し、mon Lで読み込みました。
mon
*L
*G9000
HELLO
*
Z80マイコンプログラミングテクニックのテストプログラムも動かしてみました。
;
; FLOATE PACKAGE TEST PROGRAM
;
EXTERN JTOD
EXTERN DTOJ
; ORG 100H
LD HL,JVAL
LD DE,VAL
CALL JTOD
LD HL,VAL
LD DE,RES
CALL DTOJ
; DISPLAY RESULT
LD HL,RES
CALL 052EDH
JP 05C66H
JVAL: DEFB '1.2345678D+2 '
VAL: DEFS 8
RES: DEFS 32
DEFB 0
ld80 -P 9000でintel hexを作りDumpListEditorでマシン語入力タブを選択して、インテルHEXにしてデータを読み込み、cmt書き出しでwavにして読み込ませて実行できました。
これを試して気がついたのですがld80のhexファイルは行端がCR,CR,LFと変な形式になっています。コードを見たところ、do_out.cのihex_write_recode()でfwriteしているのですが、Windowsだと'\n'がCR,LFになり、結果CRが重なってしますようです。オリジナルの作者のハンガリーのGaborさんにメールで連絡したらもう20年前くらいのコードでlinuxでしか試していないといっていたので、Windowsのポートは誰か別の人がやったようです。
取り込みは結構はまりました。
まずWindows 7のサウンドレコーダーはwmaしか保存できないため、wavに保存できるフリーな録音アプリを探しました。ぽけっとれこーだーというアプリが簡単でよさそうです。
録音してみたのですが、音が途切れます。これはREALTEKのドライバのマイクのノイズ制御が有効になっていたためでした。
ぽけっとれこーだーの形式の選択は8Bit 11025Khzモノで大丈夫です。
これでやっと録音したwavファイルがDumpListEditorで認識できました。
「選択ファイルを再解析」して「BASIC入力に送る」をすると読み出せます。
PC-8001に付属のDEMONSTRATION PROGRAMカセットの一番最初に入っているCLOCKを読み取ってみました。
実家を片付けていたら、長らく見つからなかった昔録音したカセットが30本くらいでてきました。カセットプレーヤーもあるのでWindowsで録音してみます。
カセットのMONITOR端子からPCのマイク端子に接続するのですが、そうしてしまうとカセットの音声が聞こえなくて終わりを確認すべがなくなります。
いろいろ探したところコントロールパネルのハードウエアとサウンドのサウンドの録音のマイクで聴くのタブに「このデバイスを聴く」をチェックすると録音時にモニターできました。
これでぽけっとれこーだーで録音します。
録音が終わったらチェックを外します。
PC-8001を入手する前に、EX-80を持っていて、この2台をつないで、なにかできないかなと思ったのがはじまりで、コンピュータとコンピュータをつなぐ事が自分のライフワークです。
DumpListEditorの作者のbugfire2009さんに感謝します。