緊急特集その2:FM-8ブートROMの秘密

今解き明かされる30年前の謎

FM-8のブートROMにはいくつか種類がありますが、そのうち一番多く出回っている と思われる5"サポート版について調べてみましたので簡単に報告します。

工学社発行I/O別冊「FM-8活用研究」230ページに、FM-8のブートROMについての簡単な
解説が掲載されています。以下はその抜粋です。

                         SM11-14              SM11-15
--------ココから--------
                       5"サポート版        8"サポート版
    $000+---------+
        |  BANK0  |  BASICモード(ROM)     BASICモード(ROM)
    $200+---------+
        |  BANK1  |  バブルモード(RAM)    バブルモード(RAM)
    $400+---------+
        |  BANK2  |  5" DOSモード(RAM)    5" DOSモード(RAM)
    $600+---------+
        |  BANK3  |  ROM BASICデバッグ用  8" DOSモード(RAM)
    $7FF+---------+
--------ココまで--------

そこにさりげなく、ひっそりと書かれていた「ROM BASICデバッグ用」って何だろう?
というのが今回の調査のきっかけです。

# SM11-14とか、SM11-15はブートROMに貼ってあるシールに記載されている識別IDです。
# 詳細はこちらのページを参照ください。
# 8"サポート版(SM11-15)は、標準フロッピーアダプタあるいはシステム拡張ユニットに
# 添付され、標準実装のブートROMと差し替えるケースがほとんどだと思います。
# (実は上記2種類の他にもう1種類存在しますし、5"サポート版と8"サポート版でBANK0
# 〜2についても差異があるのですが、それらについては別項で紹介予定です。)

ちなみに BANK 切り替えのための DIP SW の設定は次の通りです。(備忘録)
FM-7 とは位置が異なっていますので要注意です。

       12345678910
    ON ********□□  BANK 0   BASICモード(ROM)
    OFF********■■

       12345678910
    ON ********□■  BANK 1   バブルモード(RAM)
    OFF********■□

       12345678910
    ON ********■□  BANK 2   5" DOSモード(RAM)
    OFF********□■

       12345678910
    ON ********■■  BANK 3   ROM BASICデバッグ用 or  8" DOSモード(RAM)
    OFF********□□

では、この5"サポート版ROM(SM11-14)について見ていきましょう。

SM11-14 仕様

結果だけ書いておきます。
BANK0-2に関しては既知の情報です。
BANK3に関しては今回解析した結果になります。

                     $8000〜$FBFF  IPL対象                      ロード位置  ホットスタート
    $000+---------+
        |  BANK0  |  BASIC ROM     5" FDD DRV=0 TRK=0 SCT=1     $0100       可
    $200+---------+
        |  BANK1  |  RAM           32K BUBBLE UNIT=0 PAGE=0-15  $0300       不可
    $400+---------+
        |  BANK2  |  RAM           5" FDD DRV=0 TRK=0 SCT=1,2   $0300       不可
    $600+---------+
        |  BANK3  |  RAM           32K BUBBLE UNIT=0 PAGE=0-991 $8000       可
    $7FF+---------+                5" FDD DRV=0 TRK=0 SCT=1     $0100

全てのBANKに、5" FDD のアクセスルーチンが格納されており、エントリアドレスは次の通りです。

  $FE00 START
  $FE02 RESTORE
  $FE05 DWRITE
  $FE08 DREAD

BANK3の仕様を文章で書くとこんな感じです。

  バブルカセット#0の0〜$3DFページを
  $8000〜$FBFFのRAMにロードする。
  BREAKキーをチェックし、ホットスタートまたは
  コールドスタートする。コールドスタートの場合は
  5”ディスクをチェックしレディであれば$100にIPL
  を読み込んでジャンプ、なければRAM上のF−BASICにジャンプ

     0 -+-------------------+
        |                   |
   100 -+-------------------+
        |  IPL              | ← 5" FDDより読み込む(DISK-BASIC時)
       -+-------------------+
        |                   |
  7000 -+-------------------+
        |  DISK-BASIC       | ← 5" FDDより読み込む(DISK-BASIC時)
  8000 -+-------------------+
        |                   |
        |  F-BASIC          | ← バブルカセットより読み込む
        |                   |
  FC00 -+-------------------+
        |  RAM/共有RAM/IO   |
  FE00 -+-------------------+
        |  BOOT ROM         |
  FFFF -+-------------------+

BANK0 と BANK1 を足して2で割ったような仕様と言えます。
ホットスタート可能になっているところが、BANK2(5" DOSモード)でF-BASIC V2.0を起動した時
と異なるところです。
実行例
sm1114b3-2


F-BASIC詳細編を覗いてみる F-BASIC詳細編(その2:デモ画面集)を覗いてみる
FM77AVシリーズ システムディスク編を覗いてみる
FM77AVシリーズ デモ・入門ディスク編を覗いてみる
CP/M-80編を覗いてみる
OS-9編を覗いてみる
Flex編を覗いてみる
F-BASIC ファイルシステム(およびその上位互換)上に構築されたOS、開発システム
番外編(その1:ナウシカベンチマークの謎)を覗いてみる
番外編(その2:勝手に誤記修正編)を覗いてみる
番外編(その3:6809用MMU考察)を覗いてみる
番外編(その4:FM-77 謎のS1スイッチ)を覗いてみる
番外編(その5:FM-7,8シリーズのROM一覧)を覗いてみる
番外編(その6:FM-77用拡張メモリ他について)を覗いてみる
緊急特集:MB22603の秘密 を覗いてみる
緊急特集2:FM-8ブートROMの秘密 を覗いてみる
超番外編:レベル3BASICとF-BASIC を覗いてみる
入り口ページに戻る


ご意見、ご要望はこちらまで(笑)
thasegaw@hotmail.com