さて先日作ったPSGボードだが、Z80-MBC(改)で動くのではないかと思い早速試してみることにする。
Z80-MBCに82C55ボードつないだ時に作ったI/F基板なのだが、これはサンハヤトのポケコン基板に合わせたピンアサインになっている。
どういうことかというと奇数番号と偶数番号のピンが通常とは逆になっている。
一方PSGボードは通常のピンアサインにしている。
よって普通のフラットケーブルのコネクタは使えないため、奇数と偶数で逆転したケーブルをこさえた。
ケーブル作るのに2回ぐらい失敗して3回目で何とかできた。

写真ではケーブルが斜めってるように見えるが、ケーブルが曲がっている関係でそう見えるだけで、実際はそこまで斜めってはいない。
さてつないで実際鳴らすためには、プログラムの準備が必要。
BASICでのテストプログラムが動くことを確認。
実際に曲も鳴らしてみる。
PC-E200/PC-G8xxシリーズでは、マシン語は0x0100から利用できることになっている。
CP/MやMSX-DOSのCOMファイルは0x0100にロードされこの番地から実行されることになっている。
すなわち0x0100から始まっているものなら何ら手を加えることなく実行できる。
あとはどうやってプログラムを転送するかである。
CP/MのEDコマンドでテキストエディタを起動。
TeraTermでHEXファイルを転送してHEXファイルを作る。
次にLOADコマンドでHEXファイルからCOMファイルに変換。
最後に生成したCOMファイルを実行。
2 | A: ASM COM : D COM : DDT COM : DUMP COM |
3 | A: ED COM : HELLO COM : LOAD COM : MAC COM |
4 | A: MBASIC COM : PEG COM : PIP COM : STAT COM |
5 | A: SUBMIT COM : XSUB COM : HELLO ASM : GPIO BAS |
6 | A: AUTOEXEC SUB : IOTEST BAS |
12 | 1: :10010000CD1501CD8801C9F5D5ED5B01781B7BB21A |
13 | 2: :1001100020FBD1F1C921350106100E0079D3247ED0 |
14 | 3: :10012000D325230C10F63E603204783E0332067865 |
15 | 4: :10013000AF320A78C900010001000200F810101067 |
16 | 5: :100140000800600100D5F57AD3247BD325F1D1C90D |
22 | 61: :1004C0001B323B128F313A0622323B128F313A06F1 |
23 | 62: :1004D00027323B18258F8F1824344012892B380679 |
24 | 63: :1004E0002430391821218F1822323B128F293606E9 |
25 | 64: :0B04F000172B371827278F1A8C02FFEC |
32 | CP/M 2.2 Copyright 1979 (c) by Digital Research |
35 | A: ASM COM : D COM : DDT COM : DUMP COM |
36 | A: ED COM : HELLO COM : LOAD COM : MAC COM |
37 | A: MBASIC COM : PEG COM : PIP COM : STAT COM |
38 | A: SUBMIT COM : XSUB COM : HELLO ASM : GPIO BAS |
39 | A: AUTOEXEC SUB : IOTEST BAS : PSGTEST BAK : PSGTEST HEX |
49 | A: ASM COM : D COM : DDT COM : DUMP COM |
50 | A: ED COM : HELLO COM : LOAD COM : MAC COM |
51 | A: MBASIC COM : PEG COM : PIP COM : STAT COM |
52 | A: SUBMIT COM : XSUB COM : HELLO ASM : GPIO BAS |
53 | A: AUTOEXEC SUB : IOTEST BAS : PSGTEST BAK : PSGTEST HEX |
さて実際に試したらすんなり音楽が鳴ってくれた。
さてとこの後どうするかな。
あと、COMファイルをHEXファイルに変換するプログラムはないものか。
FabGLのCP/MエミュレータのファイルをZ80-MBCで実行してみたい。
BASICで簡単に作れそうだけど面倒だ。