ソフトウェアDIPスイッチ、メモリスイッチの全表示
VSWITCH 1.00
Copyright(C) 2021 まりも (DOSsoft)
古いPC-9800シリーズには前面にDIPスイッチが存在していましたが、いつの頃からかソフトウェア的に設定するスイッチに変わっています。
そのほか一時的設定を行う目的で「メモリスイッチ」という機能もありました。区別が曖昧な方もいらしゃるかもしれませんが、これらは記憶箇所も記憶保持の仕組みもまったく別のものです。
DIPスイッチはあくまで機械的スイッチを基本としているので、アプリケーションソフトウェアが変更して運用するようなことは想定しておらず、そのような機能は割当られていません。電源ON時から固定的に設定したい機能が集約されています。これに対して、メモリスイッチはソフトウェア側から変更できる仕様なので、それに適する機能が割り当てられていました。具体的には1MB以下のメモリサイズ、ブート装置、ドライブ番号のHD/FD優先などです。
せっかくそのような違いがありながら、使われ方は98の進化の過程で場当たり的に機能が割り当てられてきた感があります。しかもメモリスイッチは9801VX以降の時代以降には新しく追加されることはありませんでした。互換性保持のため存在していただけで、本来ならソフトウェアDIPスイッチに移行するよう改めるべきものだったと思います。メモリスイッチの設定はシステムセットアップメニューのような起動時ファームウェアで設定できるようになっておらず、DOSのswitchコマンドやBASICのMONコマンドを実行しなければなりませんでした。この点でユーザは大きな不便を強いられてきた感があります。
IPLwareの段階でソフトウェアDIPスイッチとメモリスイッチのビット状態を全て表示できると、98を解析する上で便利だと考え、本ツールを作ることとしました。さらについででしたので、ディスクドライブのBIOSパラメータを表示したり、メモリ搭載量にかんするワークエリアの詳細を表示する機能も追加しました。
本ツールはIPLwareアプリケーション タイプ2となっています。IPlwareを別途用意してHDに組み込みます。DOSのCOM形式プログラムでもあるので、そのままDOS上で実行することもできます。メモリ搭載量など、IPLware実行時とDOSで実行時では異なるものがあります 。
「続行するにはどれかのキーを押して下さい」のメッセージが表示されたらキーを押して下さい。そうしないと次に進みません。その点でこのツールはIPLwareにいつも置いておくような性質のものではありません。あくまでも98を詳しく調べたいときのツールです。
ビット値が0か1かを表示します。物理的なDIPスイッチは1から3まで存在していましたが、ソフトウェアDIPスイッチには番号はとくに定義されているわけではありませんので、並び順に勝手に4以降を割り当てて表示しています。
ソフトウェアDIPスイッチの論理的な場所は、I/Oアドレスの871E,881E,,,8F1E番地の12個です。設定内容は Undocumented 9801/9821に詳しく記載されていますが、その他の文献ではまず見かけることがありません。いくつかは私が実験的に調べて追加しています。またソフトウェアDIPスイッチは機種毎に決まった使い分けがなされており、共通して全機種で同じ意味を持つbitというのは相当に限られているようです。とくにデスクトップ機とノート機では、同じスイッチに別々の機能が割り当てられていたり、ある機能が違うスイッチに置かれていたりと、いかにも場当たり的です。
右側の説明に書かれている内容は、ビット番号、そのビットが1のときの機能です。0のときの機能は書かれていませんが、それぞれ1のときの反対となる機能です。
二画面目のディスクパラメータ表示については、とくに説明を要するものでもないでしょう。利用価値としては、よくわからないSCSIアダプタを使用してディスク装置を繋いだときに、CHSパラメータがどうなっているのかを、DOSを起動することなく確認できるというメリットはあろうかと思います。CHSパラメータがディスク装置の実際と一致しないとDOSが起動できなくなることが多いですが、IPLwareの段階まではCHSパラメータの問題に関係なく起動できるからです。
メモリ搭載量に関しては、EPSON機やハイパーCPUメモリ搭載機、H98でどうなっているのかを知るために機能を載せました。1MB以上〜15-16MB空間の手前に分断があるかどうかを知ることができます。