ブログ始めました。
未だに6809をいじり続けているOld68funです。
6809シングルボード
最近ネットで6809と検索するとシングルボードコンピュータがヒットし、結構盛り上がっているようです。
それに刺激されて、私もシングルボードマイコンを製作してみました。
私の場合はFLEXが動くことが必須条件であり、Windows上に仮想ドライブを構築して、
ディスクレスのFLEXシステムとすることにしました。
ちょうどFusionPCBで10cmx10cmのプリント基板5枚で送料込みで7.9ドルというキャンペーンをやっていましたので、それに合わせて、初めて使うKiCadでこのサイズ中にCPU,ACIAを2個,ROM,RAMを1又は2個とTTLを10個も押し込んで作ってみました。
KiCadの初心者で使いこなせておらず、回路の間違いもありましたが、何ヶ所かの修正で無事に動きました。
CPUは6809と6802の2種、ROMは4KB、RAMは64KB、ACIA(6850)がコンソール用と仮想ドライブ用の2個で、クロックはACIAのボーレート用と兼用するためゲートICで発振させてCPUに供給しています。ですので、8MHzの時のシステムクロックは2MHzで通信のボーレートは38400baudで4MHzの時はその半分になります。アドレスバスもデータバスもバッファリングしているので、IC数が多くなりました。
|
6809SBDV11(128KBのRAM使用) |
|
6809SBD_V22 |
|
6809SBD(32KBのRAMを2個使用)
|
6809SBD_V2(修正済みのものです。以下同様) |
|
|
6309EPで動作させるためのアダプター |
手持ちに、以前63C09 のつもりで購入した63C09RP(全てEP相当でした...)や63C09EPがありますので、EP用のアダプターも作ってみました。「6809ハンドブック」(加瀬清著)中のFF2個でE,Q信号を作成する回路をそのまま使っています。画像中にはクリスタルとICが見えますが、クロックを2倍にしてみるための実験回路で、アダプターとしては不要です。
全体構成
|
全体構成図 |
FLEXの起動
2個のACIAの先にUSB変換ケーブルを接続してWindowsパソコンとつなぎ、ConsoleとしてのTeraTermと、仮想ドライブ用の自作プログラムFlexDrvWinを起動します。
|
ASSIST9が動作 |
リセットすると6809用のモニタプログラムASSIST9が起動します。
仮想ドライブプログラムのドライブ0には起動するシステムディスクをDrag&Dropで設定します。いくつでも設定でき、切り替えてアクティブにできます。
また、システムディスクとしては標準のDSKファイルの他にD77ファイルも使えます。
ドライブ1~3には適当なワークディスクを入れておきます。
|
FLEXを起動 |
そして、ASSIST9の拡張コマンドとして設定してあるFLEX起動コマンドでFLEXを起動します。
画像は、起動後にCATコマンドを実行してドライブ1のファイルを表示しています。
|
FlexDrvWin |
FlexDrvWin中右のListはFLEXがRead/Writeしているセクターを表示しています。
左のListはアクティブなディスク中のファイルを一覧表示しています。
ここでDrag&Dropによるファイルの追加や削除、名称変更ができます。
('18.5.4追記:
FlexDrvWinのダウンロード先をリンクしました)
FLEXについて
私の使い方としては、Windows上の使い慣れたエディタでプログラムを作り、自作の6809用クロスアセンブラでアセンブルしてエラーが無くなったら、FlexDrvWinに放り込み、FLEX上のASMBでアセンブルして保存というスタイルです。
今まではFM77AV40SXに4MbitのROMとRAMを載せた拡張回路を接続してROM,RAMディスクとして使用しており、さらにドライブ3としてWindows上の仮想ディスクも使用していましたが、フロッピーで起動しなければならないことやWindowsとのファイル交換が不便だったりして、何とかしたいと思っていました。
このボードを作成したことで、ようやくフロッピィ―ディスクと縁が切れ、Windowsとの連携もし易くなり、とても使い勝手が良くなりました。
私のFLEXは大昔、TSC社から直接購入したもので8インチのGENERAL版でVer3.01ですが、今はネットから入手できます。また、ドキュメント、言語やユーティリティなども入手できますので、6809で遊ぶには向いていると思います。