外付け2モード切り替えの5インチFDDから2DDのフロッピーを起動できるようにする
EXT2DDBT (IPLware) Version 1.00
Copyright(C) 2018 まりも
【1.このプログラムの目的】
NEC PC-9800シリーズの外付け50pin接続で2モード切替のFDDを増設している場合、2DD/2HDの手動切り替えや自動切り替えができるものがありますが、「のっぺらボード」と俗称されるボードも併用しないと、「2DDメディアからの起動」は通常できません。しかも「のっぺらボード」は非常にイレギュラーなハードウェア動作のため、まともに動作しない98がほとんどで、9801V,R,Dの頃から初期のFELLOWが対応できる程度のようです。しかもこのボードは、98内部のI/O READの結果をねじ曲げるようなバス動作をすると考えられ、98本体を壊す可能性 もあります。
そうしたことから、こんなボードを使わなくても、あるいはボード上のI/O READ用コネクタを切断した安全な状態で使っても、2DDからブートできるソフト/方法を開発しました。
【2.使い方】
ハードウェア構成の必要要件
50pinの外付けFDDユニットのうち、スイッチなどで2DD/2HD切り替え可能なものをI/Fで接続している必要があります。中にはオプションケーブルで自動切り替えに対応しているものもあるでしょう。完全な外付けでなくても、PC-9821-K08ケーブルやPC-9801-B3-K01ケーブルなどを応用してFD1158Dなどの5インチFDDやFD1137などの3.5インチFDDを内蔵で(みなし外付けで)接続している場合に限ります。システム的にはこれも外付け接続とみなされますが、内蔵ケーブルの機能により2DD/2HDの切り替えは完全に自動で行われます。
ソフトウェアDIPスイッチ3-1,3-2において内蔵FDDは「1MB」固定のモードに設定してください。少なくとも、640KB固定だと外付けドライブそのものが認識されません。なお、この設定がない機種では1MB固定になっています。
ソフトウェアDIPスイッチ1-4の外付け優先/内蔵優先の設定はどちらでも構いません。
外付けドライブが2台ある場合、起動させたい2DDメディアはドライブ番号の若い方に入れてください(通常そうすると思いますが)。
EXT2DDBT.BINの使い方
まずLHAにより展開します。
EXT2DDBT.BIN はHDDのIPLに入れる IPLwareアプリケーションです。ハードディスクのIPLに組み込んで、OSに無関係に動作させるものです。「固定ディスク起動メニュー 2.70」が現れる状態にしておいてください。またメモリスイッチにおける「ブート装置」は標準としてください。詳しくは別のソフトウェアである「IPLware」をダウンロードし、その説明書を読んで下さい。組み込みを解除したい場合もIPLware.exeを使用します。
- EXT2DDBT.BIN ハードディスクに入れるIPLwareアプリケーション
- EXT2DDBT.TXT 本説明書
- sorce.lzh ソースファイルのアーカイブ(.sという拡張子のものはソースファイル)
組み込み後は、まずフロッピーにはメディアを入れず、ハードディスクのIPLを起動させます。IPLware実行中に[F]のキーを押し続けておくと、beepが鳴り続け、フロッピーを挿入して起動するようにメッセージが出ます。これが出てから起動可能なシステムの入っている2DDフロッピーを外付けドライブに挿入すると、起動するようになります。
もし[F]キーを押すタイミングが遅くなり固定ディスク起動メニューが現れてしまった場合でも、N88BASIC廃止機種であれば、「メニュー終了」を押すと、この時点で挿入された2DDのフロッピーからブートできます(N88BASICのある機種だとそれが起動してしまいます)。
それすらもタイミングを逃しMS-DOSをハードディスクから起動してしまったときでも、リブートツール、例えばHSBがインストールされていて、HSB F などのように強制的にフロッピー起動を実行すれば、2DDメディアでも起動できます。
【3.対応機種】
対応98本体は限られています。
PCIバス搭載のintel chipset機種(ただし初代Xa,Xt,Xf,St15,St20除く)
PCIバス搭載のRCC/Server Works chipset機種(すなわちRvII26, RsII26)
PCIバス搭載のWaildCat(VLSI) chipset機種(Xa7/C〜Xa16/K,Xt13〜Xt16,一部のXa7e)
PCIバスなし機種では初代〜A3-mate,9801BX3,BA3やこれらに相当するアーキテクチャの機種です。
というようにあまりに古い9801には対応しませんが、そのくらいの機種では「のっぺらボード」は動作できるので、それをお使いになるとよいでしょう。
なお実機テストを行ったのは、 PC-9801BX3、PC-9821Ap3、Ae、V20/M7、Xa13/W、Xa200/D、RaII23、Ra40、RvII26 のみです。
【4.注意事項】
対応するハードウェアは、PC-98本体側から2モード切替の線がFDD側に接続されているものに限ります。例として、A-mate/FellowのファイルスロットFDD、FDDボードにあるイヤホンジャックのようなプラグで線で繋ぐもの、などです。FDD側で2DD検出穴を用いて自動切り替えするタイプには対応していません(fslot2ddも対応しません)。
HSBなどでリブートしても二重組み込みとなることがないようにチェックされています。組み込む先のBIOS領域が空いていない場合は何もせず終了します。これらの場合、内蔵スピーカから高いbeep音が出ます。
フロッピードライブの構成はいろいろなパターンがありうるかと思いますが、本プログラムでは基本的にFDユニット番号が内蔵0、外付け2であることを想定した設計になっています。合計3台といったパターンにも対応しているはずですが、FDDのDX(DS)ジャンパを0でなく1のみ使うというようなことはあまり想定していないので対応しない場合があります。FDドライブ構成の問題で本プログラムが機能しない/必要がない場合、「ピブ」というようなbeep音が出ます。
対応でないチップセット搭載機の場合、単純なbeep音が鳴ります。
本プログラムでは、成功の場合もエラーの場合も、画面にメッセージが出ることはありません。正常に機能しているかの判断は、DOS5,6を起動して外付けドライブで2DDのメディアを640KBまたは720KBでフォーマットできるようになったかどうかでできます。
もし組み込み時にハングアップしてしまうようであれば、IPLware開始時にHELPを押して、IPLwareの逐次実行モードにして、実行するかどうかの問いにNで応答してください。これにより実行回避されますので、DOSが起動したらIPLware -r EXT2DDBT で本プログラムの組み込みを解除してください(これはIPLware共通の事項)。
【5.技術的事項】
本プログラムは、「DOS 5,6のFORMAT.EXEで2DDのフォーマットが通る状態であれば 2DDブートはできるであろう」という仮説のもとに、外付けFDDで2DDフォーマットできるための既存ツール「FSLOT2DD」(小高輝真氏 製作)をIPLwareとして移植したものです。FSLOT2DDがソースコード添付であったことから原作者の意向にしたがい、移植版のソースコードも添付します。といってもかなり改変は加わっております。
FSLOT2DDのようなDOS常駐プログラムは、DOSメモリ空間にコードを置ける確実な場所を確保する手段が使えましたが、IPLwareでそれはできませんので、SYSTEM BIOSの「空いていそうな場所に埋め込む」という方法を本プログラムではとっています。それは絶対番地でFECE:0番地からの64バイトです。ここに常駐部相当の コードを置き、DISK BIOS割り込みのInt1Bhをフックしています。常駐部相当部分はオリジナルのFSLOT2DDのとおりです。両用ドライブでない外付けドライブも両用であるかのような値を返します。フックする必要のないファンクションは全て本来のINT 1Bに返すようになっています。
PC-9821Ap2/As2およびそれ以前の機種では、パリティエラーで停止したり、リブートのしかたによって再起動時に赤い文字でROM SUM ERROR と表示され停止するかもしれませんが、確認していません。
Windows 2000では、本プログラムが組み込んであっても外付けFDDで2DDメディアがフォーマットできるようにはならないようです。頑として1MB 2HD専用ドライブであるとして扱われます。これは、Windows2000のデバイスドライバはBIOSを実行したり実行結果を参照することがないためと考えられます。
A-mateのハイレゾモードにも対応し(バージョン0.30から)、DOS起動後に外付け2HD FDDに対して2DDが両用モード同等に動作します。
【6.お約束】
このプログラムはフリーソフトウェアです。著作権は 「まりも」が保有します。自由に使用して構いませんが、不特定多数がダウンロードできる場所への転載・販売は禁止とします。このプログラムのソースを流用/改良して別のソフトウェアを作ることは妨げませんが、必ずソースを公開としたフリーソフトとしてください。
このプログラムを使用した結果について、作者は一切責任は負いません。
2018- 6- 7 0.10 初版(WildCatなど未対応)
2018- 6-10 0.20 FDドライブ構成が複雑な場合に対応
2018- 8- 4 0.30 As3,Ap3対応、ハイレゾモードに対応
2018- 8-18 0.40 WildCat機対応
2018- 9-15 0.50 おそらくほとんどの機種に対応(SV-98,H98,St20,St15,Xf除く)
2018-10- 1 0.60 St20に対応(ソースプログラムは0.50のままです)
2018-11-10 1.00 初代A-mateでSOUND BIOS不使用設定時にも出現してしまう問題に対応