復活!CP/M ワンボードマイコンでCP/Mを!
CP/MがTK−80互換のワンボードマイコンの上で復活します
ND80ZVとMYCPU80の上でCP/Mが走ります!
[第336回]
●MIDIキーボードをSC−88につなぐ
インターネットからダウンロードいたしましたバッハのピアノ曲のMIDIファイル([第333回]参照)をE−80(仮称)ミニコンにロードしまして、それを1バイトずつ、間にFOR NEXT文をはさみながらゆっくりと、ヤフオクで落札しましたSC−88に送りましたところ、乱暴な方法ではありましたが、それなりになんとか、らしい演奏をしてくれました。
そこでY様にそのことをご報告いたしましたところ、Y様からMIDIキーボードが送られてきました([第332回])。
まずはこのMIDIキーボードをSC−88に接続して、キーボードを押したときにそれに対応した音階の音が出ることを確認いたしました。
次に、これはY様からのメールに書いてありましたテスト方法なのですが、このMIDIキーボードをE−80(仮称)ミニコンのMIDI−INに接続して、MIDI−OUTをSC−88に接続します。
そしてE−80(仮称)ミニコンで、MIDI−INから入力されたデータをそのままMIDI−OUTから出力するようなプログラムを実行して、そのときMIDIキーボードをSC−88に直接接続したときと同じ音が出ることが確認できましたら、E−80(仮称)ミニコンのMIDI回路が正しく機能していると判断できます。
なるほど。
さっそくテストプログラムを作成いたしました。
が。
その前にひとつ準備するものがありました。
Y様からMIDIキーボードを送っていただいたときに一緒に5pinDINケーブルも送っていただきました。
このケーブルはMIDIキーボードとSC−88とを直接接続するときにはそのまま利用できました。
しかし、E−80(仮称)ミニコンのMIDIコネクタは、通常のものよりも小さい5pinミニDINコネクタです。
先にE−80(仮称)ミニコンのMIDI−OUTとMIDI−INを接続して、ループバックテストを行ないましたときには、両端が5pinミニDINコネクタのケーブルを作成して、それを利用しました([第331回])。
今回は通常サイズの5pinDINコネクタも入手しまして、一方の側が通常サイズの5pinDINコネクタでもう一方の側がミニ5pinDINコネクタというケーブルを2本作りました。
一本はMIDIキーボード(5pinDINコネクタ)とE−80(仮称)ミニコンのMIDI−IN(5pinミニDINコネクタ)を接続するケーブルで、もう一本はE−80(仮称)ミニコンのMIDI−OUT(5pinミニDINコネクタ)とSC−88(5pinDINコネクタ)を接続するケーブルです。
●テストプログラム
E−80(仮称)ミニコンのMIDI−INから入力された信号をシリアル受信して、それをそのままMIDI−OUTからシリアル送信するだけのプログラムです。
2013/1/28 17:11 miditst4.txt END=805A ;;; E-80 232C(MIDI) TEST4(jusin to sousin) ; 13/1/19 1/20 1/28 ; ORG $8000 ; 8000 3E88 LD A,88 8002 D3FB OUT (FB),A 8004 3EFF LD A,FF;16F88out disenable 8006 D3FA OUT (FA),A ; ;jusin 8008 3EFF LP0:LD A,FF 800A D3FA OUT (FA),A 800C DBFE LP01:IN A,(FE) 800E E610 AND 10 8010 CA0C80 JP Z,LP01 8013 3E01 LD A,01;bit1=L,bit0=H data request on 8015 D3FE OUT (FE),A 8017 DBFE LP1:IN A,(FE) 8019 E630 AND 30 801B 2813 JR Z,LP12;no data or err 801D FE20 CP 20;strobe on? 801F 20F6 JR NZ,LP1;no 8021 DBFD IN A,(FD) 8023 08 EX AF,AF' 8024 AF XOR A;data request off 8025 D3FE OUT (FE),A 8027 DBFE LP11:IN A,(FE) 8029 E610 AND 10;strobe off? 802B 28FA JR Z,LP11;no 802D C33C80 JP DATAOUT 8030 AF LP12:XOR A;data request off 8031 D3FE OUT (FE),A 8033 DBFE LP2:IN A,(FE) 8035 E610 AND 10;strobe off? 8037 28FA JR Z,LP2;no 8039 C30C80 JP LP01 ; 803C 3EFB DATAOUT:LD A,FB 803E D3FA OUT (FA),A ;sousin 8040 DBFE LP3:IN A,(FE) 8042 E620 AND 20 8044 CA4080 JP Z,LP3 8047 08 EX AF,AF' 8048 D3FD OUT (FD),A 804A 3E02 LD A,02;bit1=L,bit0=H;bit0-4 are INVERT 804C D3FE OUT (FE),A 804E DBFE LP4:IN A,(FE) 8050 E620 AND 20 8052 C24E80 JP NZ,LP4 8055 AF XOR A 8056 D3FE OUT (FE),A 8058 C30880 JP LP0 ; DATAOUT =803C LP0 =8008 LP01 =800C LP1 =8017 LP11 =8027 LP12 =8030 LP2 =8033 LP3 =8040 LP4 =804E |