DumpListEditorを使ってみた

[PC-8001を懐かしむページ](http://bugfire2009.ojaru.jp/index.html)さんにDumpListEditorというプログラムがありました。エミュレータ用に作られたツールのようなのですが、実機で試してみました。

PC-8001には外付けフロッピードライブもありましたが、本体の倍くらいの値段で、高嶺の花でした。当時ホビーユーザーはカセットテープにプログラムなどを録音して保存していました。DumpListEditorにはカセットテープに録音していた音声(FSK)の解析や合成機能があります。

DumpListEditorのアプリケーションを起動して、「BASIC入力」のタブを選択してBASICを入力します。

![MORI.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/104066/b3ad7ed4-3a17-37c0-6225-c0ded3013897.png)

入力が終わったら「cmt書出し」ボタンを押します。

ファイルの種類を「wavファイル」にして名前を付けて保存します。

PC-8001のカセットケーブルの白いプラグをWindowsのオーディオアウトに接続します。直接でもいけましたしたが、白いプラグはモノで、ほとんどのWindowsパソコンはステレオプラグと思われるので、変換を作ったほうが良いのかもしれません。

変換ケーブル作ってみました。

![IMG_20201209_121622.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/104066/5c86e762-de03-03a2-3703-da4c2a0543d9.jpeg)


PC-8001でCLOADを実行します。

Windows Media Playerなどで保存したファイルを再生します。

正常に読み込まれ実行できました。

![IMG_20201104_151706.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/104066/69e24ce2-8e2f-7013-99fb-27ee9b681399.jpeg)

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マイコンプログラミングテクニック](https://qiita.com/yamori813/items/0cc176cc40bbb52b09c1)のテストプログラムも動かしてみました。

```
;
; 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に保存できるフリーな録音アプリを探しました。ぽけっとれこーだーというアプリが簡単でよさそうです。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/104066/e5019bc1-bfd4-a0b1-fbc0-f7b78ec02578.png)

録音してみたのですが、音が途切れます。これはREALTEKのドライバのマイクのノイズ制御が有効になっていたためでした。

![realtek_driver.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/104066/235d04b3-abc5-b37f-cc02-e20c4fe5c696.png)

ぽけっとれこーだーの形式の選択は8Bit 11025Khzモノで大丈夫です。

これでやっと録音したwavファイルがDumpListEditorで認識できました。

![CASETT.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/104066/4ff12110-6b1b-09fa-5193-9038abc12aa2.png)

「選択ファイルを再解析」して「BASIC入力に送る」をすると読み出せます。

![CLOCK.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/104066/3117f14f-effe-21ae-6e11-b5b966ba47ef.png)

PC-8001に付属のDEMONSTRATION PROGRAMカセットの一番最初に入っているCLOCKを読み取ってみました。

実家を片付けていたら、長らく見つからなかった昔録音したカセットが30本くらいでてきました。カセットプレーヤーもあるのでWindowsで録音してみます。

カセットのMONITOR端子からPCのマイク端子に接続するのですが、そうしてしまうとカセットの音声が聞こえなくて終わりを確認すべがなくなります。

いろいろ探したところコントロールパネルのハードウエアとサウンドのサウンドの録音のマイクで聴くのタブに「このデバイスを聴く」をチェックすると録音時にモニターできました。

![mic.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/104066/16565250-858f-905d-5f69-aef217c9383d.png)

これでぽけっとれこーだーで録音します。

録音が終わったらチェックを外します。

PC-8001を入手する前に、EX-80を持っていて、この2台をつないで、なにかできないかなと思ったのがはじまりで、コンピュータとコンピュータをつなぐ事が自分のライフワークです。

DumpListEditorの作者のbugfire2009さんに感謝します。