ヤマハFMサウンドシンセサイザーユニット
SFG-01/05の解析
2023/08/18
当時からやってた身ですが、いいかげん時効でしょうし置いておきます。
個人的にはMIDI受信でPSG鳴らそうとしてます。
MIDI以外の割り込み(VDP)の時もベクタを発生できる優れものです。
Z80ではVDPの割り込みを受けてると受信がオーバーランするので、すっ飛ばしてます。
R800は間に合いますが、なぜかモード2ベクタがすべてFFHになるため、ベクタ255と256を参照してしまいます。1バイト大目に必要。
ページ0のスロットを切り替える必要があるため、8000H~BFFFHの間に切り替えを置かないと拡張スロット面で面倒くせぇ~ことになります。
実際にプログラム組んで実験中ですので、下記の情報はある程度合ってると思います。
SFG-01/05のROM以外での違いは良く解ってません。。。01に05のROMを載せても05として動く。
※SFGのスロット確認
0080HからMCHFM0の文字列が置いてある。専用スロットが拡張スロット上にある機種もあるので注意(YIS-805など)。
SFG-01/05ポート
---------------
3FF0 OPM 詳しくはX68Kあたりの資料で
3FF1 OPM
3FF2 Write YK-01 専用キーボード マトリクス選択(1ビットだけオンにすること)
3FF2 Read YK-01 専用キーボード 状態 1xxx1xxxのビットで6鍵づつ、ゼロが押されてる部分
3FF3 Write MIDIからのIRQベクタ モード2用※
3FF4 Write MIDI以外からのIRQベクタ モード2用※
3FF5 Read MIDI受信
3FF5 Write MIDI送信
3FF6 Read ステータス
bit 0 1:TxRedy 送信可能
bit 1 1:RxRedy 受信があった
bit 2 1:TxEnd 送信データがない
bit 3
bit 4 1:OE オーバーエラー(RxRedy中に新たなデータが来た)
bit 5 1:FE フレーミングエラー
bit 6
bit 7
3FF6 Write コマンド
bit 0 1:送信Enable
bit 1 1:TxRedyからの割り込みEnable※
bit 2 1:受信Enable
bit 3 1:RxRedyからの割り込みEnable※
bit 4 1:エラーフラグReset
bit 5 1:MIDI以外から割り込みが発生したときベクタを乗せる3FF4※
bit 6 1:MIDIから割り込みが発生したときベクタを乗せる3FF3※
bit 7 1:リセット
※HX-34みたいにモード2対応できてない機種もあるので考え物である
ほかに参考になるところ→http://mzisland.com/club/sfg/index.html
戻る