2018年4月16日月曜日

6809シングルボードコンピュータでFLEXを走らせる


ブログ始めました。
未だに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
6809SBDV11(128KBのRAM使用)
6809SBD_V22
6809SBD_V22

6809SBD-W
6809SBD(32KBのRAMを2個使用)
6809SBD_V2
6809SBD_V2(修正済みのものです。以下同様)
EP_adapter
6309EPで動作させるためのアダプター

手持ちに、以前63C09 のつもりで購入した63C09RP(全てEP相当でした...)や63C09EPがありますので、EP用のアダプターも作ってみました。「6809ハンドブック」(加瀬清著)中のFF2個でE,Q信号を作成する回路をそのまま使っています。画像中にはクリスタルとICが見えますが、クロックを2倍にしてみるための実験回路で、アダプターとしては不要です。




全体構成

全体構成図
全体構成図

FLEXの起動

2個のACIAの先にUSB変換ケーブルを接続してWindowsパソコンとつなぎ、ConsoleとしてのTeraTermと、仮想ドライブ用の自作プログラムFlexDrvWinを起動します。

ASSIST9
ASSIST9が動作

リセットすると6809用のモニタプログラムASSIST9が起動します。













仮想ドライブプログラムのドライブ0には起動するシステムディスクをDrag&Dropで設定します。いくつでも設定でき、切り替えてアクティブにできます。
また、システムディスクとしては標準のDSKファイルの他にD77ファイルも使えます。
ドライブ1~3には適当なワークディスクを入れておきます。

FLEXを起動
FLEXを起動

そして、ASSIST9の拡張コマンドとして設定してあるFLEX起動コマンドでFLEXを起動します。

画像は、起動後にCATコマンドを実行してドライブ1のファイルを表示しています。









FlexDrvWin
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で遊ぶには向いていると思います。

4 件のコメント:

  1. 頂いたプリント基板で6809版のSBCを組み立ててみました(^^)
    プリント基板なので2時間程度で完成し、ASSIST9や6809 MONITOR 5.1が動作しています(^^)

    手元にシリアル-USB変換器が1個しかないので、現在はコンソール側のみの接続ですがもう一つシリアル変換器を入手するかMAX232等で普通にポートを増やして仮想ドライブも試してみたいと思います^^

    返信削除
    返信
    1. コメントありがとうございます。ブログを開設して初めていただいたコメントです。
      無事に動作したとのこと、安心しました。ぜひポート2も接続して仮想ドライブ上のFLEXを楽しんでください。結構使い勝手が良いと思いますよ。
      私の方は、ASSIST09の拡張LOAD,SAVEコマンドのWindows側のソフトslwin.exeの改良版を6809,6800用共にようやく仕上げたところです。
      しばらく使用してみて不具合が無いようでしたら、6809版をアップする予定です。

      削除
  2. ぜひOS-9も!

    http://www.cr.ie.u-ryukyu.ac.jp/hg/Members/kono/os9/sbc09

    返信削除
    返信
    1. コメントありがとうございます。6800/6809FLEXについては一段落つきそうですので、今年はOS-9を走らせることを目標にしようと思っています。

      削除