2026/06/21

最強のOS-9マシン復活プロジェクト ~バスブリッジ回路の検討~

 FM-11のシステムバスとFM16βのシステムバスの呼称

FM-11のシステムバスは、仕様書において「メインバス」や「本体拡張バス」などと表記されており、正式名称は不明です。 ここでは簡単のためとFM16βのバスと区別しやすいように「FM-100バス」と呼ぶことにします。

FM16βのバスは「FM130バス」もしくは「FM-130バス」と呼ばれています。ここではFM-11のバスの呼称に合わせて「FM-130バス」と呼ぶことにします。 

 二つのバスの比較

FM-100バスとFM-130バスを比較すると一目瞭然ですが、FM-130バスはFM-100バスを拡張したものです。主な変更点(拡張点)は以下の通りです。

  1. アドレスバスを20bitから24bitに拡張して最大メモリ容量を16MBとした
  2. データバスを16bitに拡張して16bit CPUに対応した 
  3. バイト単位でアドレスが連続して割り当てられている8ビットのI/Oデバイスが16bit CPUでも動作できるように、データバスのバイトスワップ機能を追加した(I/OはFM-11の上位互換)
  4. CPU切り替え関係の信号の変更 

上記3.の「バイトスワップ機能」ですが、「スワップ機能」というよりは「ステアリング機能」と呼ぶのがふさわしいかもしれません。

FM-100バスの信号は、CPU切り替えに関するものを除くとほとんどそのままFM-130バスで使用されています。バスのタイミングを制御する信号も*EBやRWBです。

バスブリッジ回路の検討

 以上より、バスブリッジ回路(CPU切り替え機能を除く)に必要なのはFM-100バスから追加された必須の信号の生成です。以下の三種類があります。

  1. アドレスバスの上位4bit
  2. バイトスワップ機能を制御する信号*UBSと*LBS
  3. メモリアクセスの信号*MEMRと*MEMW 

アドレスバスの上位ビットは値を0に固定すればよいでしょう。

バイトスワップ回路の制御は、AB0とNOT AB0をそれぞれ*UBSと*LBSに接続すれば良さそうです。

メモリアクセス信号は*EとRWBから生成します。 

不足しているI/Oポートの追加

FM16βのI/OポートはほぼFM-11の上位互換です。また、ディスプレイサブシステムについても同様です。 

不足するI/Oポートですが、FM16βのブートデバイスはFM-11と異なり、DIPスイッチで設定されるわけではありません。よって、FM-11のIPL ROMが正常に動作するためにはDIPスイッチの値を読み出すポートと等価なI/Oを追加する必要があります。

追加するI/Oポートですが、DIPスイッチを実装せずに固定値を返すことにします。FM-11 AD2+のIPL ROMを使う前提ですが、接続されているブートデバイスを全部"1"に、ドライブ番号を"0"にします。こうすることでブートデバイスを大容量のものから順番にサーチしてくれます。(実際の信号は負論理です。)

なお、ドライブ0以外からブートする需要はないと判断しました。 

0 件のコメント:

コメントを投稿

最強のOS-9マシン復活プロジェクト ~原理試作~

 プロジェクトのフェーズ0として、原理試作を行いました。  FM-130バスの仕様書は書庫からは見つかりませんでした。8bitパソコンの時代のマシンやマニュアル類、雑誌などもすべて姿を消していたので、処分したのだと思います(忘却の彼方)。  遭遇した不具合(1) 導通の不安定 原...