PC-6001/6601のサブCPUを、ガチンコでエミュレーションしてみました。
土曜のP6オフのとき、一部筋の方にお話しした件のやつです。
キーボードは動いてますが、CMTは読み書きいずれもまだ機能していません。
別件で、PC-8801でCDOS-IIがブートしなくなっていたのを修正しました。
正式リリースは、また後日にでも。
>tanam様
PC-6001/6601の実装を、かなりもりっと書き換えてしまいました。
ソースが大幅に変わっている点は、
KEYBOARDクラスを、疑似サブCPUと、タイマ割り込み/割り込み管理に分離したのと、
SYSTEMクラスを、PC-66の内蔵フロッピーと、PC-6031に分離した辺りです。
また、サブCPUで、DATARECクラス由来の機能していないCMT関連コードを整理しています。
その他、CRTKILL信号をサポートしたり、表示期間中にCPUにBUSRQを投げるようにしたり、
PC-6601で、内蔵フロッピーと外部フロッピーを切り替えられるようにしたり、
タイマー割り込み関連を、VLINEイベント駆動から、CALLBACK駆動に書き換えたりしています。
(2014/5/27 1:20追記)
CMTの読み込みについては、ガチンコでサポートできました。
wavそのままでも読み込めますし、p6形式の場合は、内部的にwavの波形を合成して、
それをガチンコで読み込むようになっています。
CMTの書き込みは、まだまだです。
出力波形を見ると、1200Hz/2400Hzの個々のパルスはちゃんと生成できているのですが、
総体として、フォーマットに従った内容になってないみたいです。
仮に、従来の疑似サブCPUと同じレベルで、p6形式で保存できるようにしておきました。
拡張子にwavを指定すると、内部的にwavの波形を合成して、それを保存するようになっています。
仮バイナリのアップ先は、昨日と同じURLになります。