MC6802マイコンとMIKBUG2.0でカセットインターフェース

SBC6800

だいぶ前にMC6802下駄を作ってSBC6800で動かしたことがありました。その時の下駄とPICを残してあったので、SBC-IOと組み合わせて稼働させて、MIKBUG2.0のエクサテープコマンドでカセットテープインターフェースを動かしてみました。

MC6802下駄をSBC6800で動かす

以前書いた記事に詳しく出てますが、Tomi9さんのBLOG記事を参考にMC6802 CPUをSBC6800で動かしてみたことがありました。下駄とそのとき書き直したクロックジェネレータとして使うPICが残っていたので、先日スイッチサイエンスさんから買っておいたSBC6800ルーズキットにふたたび乗せてみました。

SBC6800アダプターでSBC68系バスにもつながるようにしまして、SBC-IOともつながるかたちにできましたので、MIKBUG2.0を動かしてみたいと思いました。

SBC-IOと組み合わせてMIKBUG2.0

メモリーマップとしては、以下のようにSBC-IOを改造できるとMIKBUG2.0が動きそうです。もともとのSBC6800だと$A000からのメモリー(いにしえのMC6810 128バイトRAM)が無いので困っちゃいますが、SBC-IOには128kB SRAM搭載でありまして、ちゃんとそこのメモリーが存在します。

MC6850 シリアルLSI(ACIA)や、MC6821 パラレルLSI(PIA)のアドレスマッピングを変更する必要があります。MIKBUG2.0では $8008とか$8004番地を期待しています。
SBC-IOのアドレスマッピングから変更する場合は、以下のように結線します。

SBC-IOのパターンカットはしたくなかったので、ICソケット2段積み作戦で今回も切り抜けました。

MIKBUG2.0でサポートするテープインターフェース

MIKBUG2.0ではMC6820(6821)パラレルI/F LSI PIAの2ポートを使って、カセットテープの入出力をするインターフェースとなっています。MSXがPSG音源ICのGPIOとか、8255パラレルLSI経由でカセットテープI/Fを構成していたのと同じ感じです。MIKBUG2.0のマニュアルとか、書籍「マイコンの作り方・使い方」で紹介されているカセットテープインターフェースの回路図は以下のような感じで、MSXの回路と似てます。(ちなみに、この回路図は一部間違ってます…^^)> )

カセットテープ装置への出力は抵抗器とかを組み合わせただけ。カセットテープからのロードにはMC14583というシュミットトリガーICを使っています。
ちなみに、MSXのカセットI/Fのロード部分はこんな感じ。LM311というコンパレーターICを使ってます。PC-8801とかも同じICを使ってます。

使ってるICは違いますが、カセットテープに録音した「音」を1/0のデジタル信号に変えるというところは一緒だろうと思い、SBC-IOのMC6821 パラレルIC(PIA)の端子が出ている26ピン端子から上記回路を接続してみました。ちなみに、私がつくったKZ80マイコンの偽MSX1で稼働実績がある回路です。

こちらは無事稼働しました! 上記のターミナル画面が1200bpsで$0100番地から2ブロック分テープにみたてたMacに音声データとしてメモリー内容をセーブして、またロードしてみてメモリーにロードされたか確認しているところです。1200bpsなのでPC-8801なみに速いですね!!すげー。

MIKBUG2.0推奨回路で苦労…

MSX1に搭載されているカセットインターフェースが動いたので、せっかくなのでMIKBUG2.0の説明書とか書籍「マイコンの作り方・使い方」で紹介されている上記のカセットテープインターフェースの回路を組んでみました。
シンプルな回路なので楽勝と思ってたのですが、セーブはできたもののロードがうんともすんとも言ってくれなくて….結局 、以下の部分が間違っていることが判明! 結線を直したら動きました。

書籍「マイコンの作り方・使い方」では特に処置していなかったPOS_B(ポジティブ-B)、NEG_B(ネガティブ-B)、COM_B(共通-B)端子ですが、CMOS-ICだったら使ってない入力端子はGNDだよね!と単純にGNDに落としていたのですが、それがアダとなり正しく動かなかったようなのです。いつもやってる思い込みでハマったというわけであります。

回路変更点は、見ずらいですが上記写真に手書きで書き加えています。POS_B(ポジティブ-B)、NEG_B(ネガティブ-B)、COM_B(共通-B)端子は短絡するだけです。MIKBUG2.0のマニュアルに上記の回路図が出てましたが、たしかに短絡していただけでした。orz

無事MIKBUG2.0推奨回路で稼働!

結線を若干変更して、無事MIKBUG2.0推奨の回路でカセットテープの入力/出力ができるようになりました。

この21世紀にマイコンのプログラムをカセットテープにSAVEできるようになってなにか嬉しいかという点ですが、ちょっとした野望がありまして….

上記のように、以前作成したMC6847ビデオボードのVRAMアドレスを変更してやって、スタンドアロンマイコンとできないか?という野望であります。キーボードはMac/Windowsのターミナルソフトではなくてオレンジピコさんところで出しているORENGE consoleをつなげばUSBキーボードがつながって9600bpsでシリアル入力できるようになりますし….

なんてことを夢想しつつ。まだ実現できてないのですが、そのうち動かしてみたいものであります。

コメント