Last Updated on 2012年9月22日 by kabekin
先日入手したデータレコーダを来夢来人に取り付けたいところですが、
来夢来人のBIOSが対応していないことには接続が厳しいので、ちと下調べしてみました。
結果、来夢来人のBIOSでCMT部分は削除されていないような感じです。
これまでと同様、本体には手を加えない無改造で拡張のみでCMTを接続できないか下調べ開始。
来夢来人にデータレコーダを接続するためにはACIAが必要ですが標準では実装されていないので、
自作ACIA拡張カードを改造してRS-232C/CMT拡張ボードにしてみたいと思います。
アイオー誌85年6月号に掲載のS1全回路図を見てみると、ACIAの切替はRS/C信号のみのようです。
RS/C信号はYGP-002のカセット関係の処理はいろいろやっているようですが、
ACIA部は#CTSと#DCDの有効無効とTxDのオンオフのみを操作しているだけのようです。
ということは、このACIA拡張カードでDISKBASICからCMTに出力する場合、
ファイルディスクリプタをCAS0:にするだけでデータは出力されるはずです。
CMTセーブでRS232Cにデータが出力されることを確認してみます。
SAVE “CAS0:TEST”,A ← アスキーセーブで保存
ちょっと実験してみると、応答なし。
S1の取説によると、カセットボーレートの設定方法がMOTORコマンドらしい
ボーレートを設定してみても正常に電文が受け取れない。
MOTOR ,0 = 600ボー
MOTOR ,1 = 1200ボー
MOTOR ,2 = 2400ボー
(TRQ-1500を使用の場合 &HFFD7, &H4で倍速600ボー、&HFFD7&&H5で倍速1200ボーらしい)
但し、全くの無反応ではなく、何か反応している様子・・・・
これはACIAへの送受信クロックと分周比の関係だと思われるので、全ての組合せを試してみます。
RS232C時ビットジェネレータからACIAに供給される周波数は19.2KHz~153.6KHzだったので、それ以外の周波数も試すもNG
全ての周波数で正常に動作しない・・・・・・ ですが一定の法則を発見。
周波数が低い方が何か送信する率が高い。
もしかすると分周比が1/1なのかもしれないと設定してみると600Hz~1200HzでOK
それも、何だか良い感じで出力されています。
実験
例えばこんな感じのプログラムをCMTにセーブしてみると、ACIAから出てきたTxDの電文は
S1のCMTフォーマットはわかりませんが、なんとなくそれっぽい電文が出力されています。
FFのギャップに始まり、ファイル名やデータ本体など、それっぽく出力されています。
S1のファイルフォーマットをご存知の方、是非教えて下さい (*^_^*)
プログラムを実行しカセットにシーケンシャルで6バイトをアスキーデータを出力してみると
のようにACIAからは出力されます。
これを1200Hzと2400HzでFSK変調してあげればカセットに記録できそうです。
ロードは確認していませんがセーブができるということは、
来夢来人でのCMT関係BIOSは削除されていない可能性が高そうです。
受信した電文をそのままバイナリで送信し、ロード状態で来夢来人に送信しても何も応答しないのでロードは確認できず。
どうやら「カンサスシティスタンダード方式」のCMTはセーブした信号から
受信タイミングクロック(RxCLK)を生成するらしいのでこの辺が問題なのかもしれません。
次の課題としてはFSK変調と音声データのデジタル化を何とかすればよさそう。
FSK変調はXR2203とか言う最近のICで簡単にできるらしいという話を聞いたことがあります。
デジタル変換についてはS1の回路図にオペアンプ4558を使った回路図が載っているのでそのまま使えると思われます。
FSKのデコードとクロック抽出は何か参考文献を探さないと見当もつきません。
来夢来人にデータレコーダを取り付ける為の残件は、
本家S1でACIAはRS/Cという信号で切替えている。
レジスタはRS232C/CMT共に&HFFC4とFFC5
CMT関連のレジスタは&HFFD2(カセットリモート),&HFFD7(カセットボーレート),&HFFD9(TRQ-SEL)が関係しそう。
FSK変調とアナログ信号のデジタル化、及びデータ&クロック抽出の回路を何とかする。
ROMBASICからの起動できるようにする。
ロードが応答するようにする。
できるかどうかわかりませんが、これは楽しくなってきました (*^_^*)
CAI用コンピュータといえどもCMT I/Fくらいは付けて欲しかったよね。