PC-98 CバスSCSIアダプタのBIOS高速化プログラム
SCSI_RAM Version 2.27
Copyright(C)2004,2018-24 まりも(DOSsoft)
【ご注意】 本バージョンでは拡張子BIN とCOMのファイルがあります
Cバスボード上でのROMのアクセス速度は一般に非常に遅く設計されており、拡張ROMのBIOSコードの実行はそれにより遅くなっています。しかしPC-9801RA21以降の機種では、ROMの領域にシャドウRAMが存在しており、一部のSCSI専用スロットのアダプタ(PC-9821A-E10)ではシャドウRAMにROMがコピーされているため、動作が通常のものよりかなり速くなっていることが知られています。
本プログラムは、E10ボードと同様にCバスSCSIアダプタのBIOSをシャドウRAMに移すことで、どのSCSIアダプタでもBIOSの動作を高速化します。2020年9月現在、SCSIボードの上位バンクROMのRAM化の方法が判明したために、バージョン2.00からは完全なRAM化が行えるようになりました。これにより殆どのCバスSCSIボードのBIOSでRAM化が可能です。
さらには、NEC製PC-9821A-E10ボード、PC-9801-92ボードやいくつかのBIOSバージョンのSCSIアダプタ(*)については、容量が1GBに切られてしまう問題へのパッチも行い、8GBまで使用できるようにする機能も含んでいます。
バージョン2.20からはその修正プログラム E10PAT も統合されました。そのため H98 model(U)105に内蔵のSCSIボードでも高速化ならびに容量問題が修正されます。
効果についてはこちらの記事も参照してください。
* 2022年9月現在判明しているもの
バッファロー製 IFN-SC,IFN-92 BIOS バージョン2.13(バッファローサイトに存在)
SCSI_RAM.BIN は一般の486機用、SCSI_RAM.COM は 9801RA21からFA/FS/FX用です。いずれもIPLwareとして組み込むモジュールです。別途IPLware.exeを入手して、ハードディスクに組み込んで下さい。IPLwareアプリケーションの組み込み方などは、別途IPLwareのドキュメントを参照してください。ここではこれ以上説明しません。
SCSIアダプタのROMアドレスは、必ずノーマルモードでは DC000h〜、ハイレゾモードではEE000h〜に設定してください(これはデフォルトです)。これ以外のアドレスにすると、本プログラムは動作しません。ROMアドレス以外のリソースは、競合が無い限り任意に設定できます。
容量1GB超えの修正パッチを実施しないと、1GB以上のところにある領域にアクセスするとフリーズしますから、該当するSCSIアダプタを使う場合は、SCSI_RAMは必ず実行してください。ハードディスクのIPLwareに入れることができない場合でも、「FD-IPLware」というものがあります。SCSI_RAMはこれに対応しており、FD上で実行できます。その後通常のディスクブートに戻りますが、FD-IPLwareではその際にブートするデバイスを選択できます。
SCSI_RAM.BINは一部でi486命令を使っており、i486アーキテクチャ機専用です (An,Xn,Af,Bfはi486搭載ではないが含まれる)。H98はmodel(U)105およびmodel80 以上でH98-B12搭載の場合のみ使用できます。PCIバス搭載機では動作しません。
SCSI_RAM.COMは 80386機でも使用できますが、SCSI BIOSにパッチを当てた場合にはi486命令が使われているため、i486相当のCPUアクセラレータを使用していない限りハングアップします。PC-9801RA21からFAまでの機種で使う場合には、容量制限解除の必要のないSCSIボードを使用してください。なおPC-9801RA(無印)、PC-98RL、PC-9801RS,ESには機構的に対応しないとみられます。
対応しないSCSIアダプタのBIOSもあると見られます。既知のものとしては、ICM製IF-2769のいずれかのバージョンのBIOSでは動作しないという情報があります。
PC-9801-100(AHA-1030)については、BIOSのサイズは通常より大きい12KBくらいありますが、RAM化できるのは先頭の4KBだけとなるので、i486アーキテクチャ機ではあまり高速化は見込めません。
本プログラムは、MS-DOSでは動作確認していますが、Windows9xではまったく確認していません。なんらかの不具合が出ることも考えられます。
本プログラムは、BIOSの動作を高速化するものですから、効果があるのはMS-DOSやN88-DISK BASIC(86)の場合だけです。Windowsでは意味がありませんが、Windows9xの場合、起動の途中まではほんの少し効果があるかもしれません。
CバスSCSIボードやA-mate専用SCSIスロットにPC-9821A-E10がない状態で本プログラムをIPLwareとして組み込んであっても、とくに問題はありません。
お試し用としてSCSI_RAM.EXEというファイルもあります。これはMS-DOS実行プログラムですが、リアルモードでしか動作しません。EMM386が組み込まれている状態で実行するとハングアップします。このプログラムは9801RA21からFAまでの機種では完全には動作しません(ソフトウェアリブートができない)。
SCSI_RAM.COMのほうをPC-9801FAより新しい機種でIPLwareに組み込んでもさほど問題はありませんが、一部のソフトウェアが誤った機種判別を起こして動作しなくなるという可能性があります。
source.lzhというアーカイブにソースファイルがあります。もしレガシー98機のシャドウRAMを操作するプログラムを作ってみたいというかたは参考にしてみてください。
SCSI_RAM 2.20以降は 従来のE10PATとは併存できません。E10PATはIPLwareの登録から削除してください。
【2023年1月10日 追記】 PC34 EMSボードを使い「TXTCPY34」などのシステムで拡張ROM領域のD4000-D7FFFFを占有すると、SCSI_RAMは 「SASIのDISK BIOSがある」ものと見なして、それをRAM化しようとする問題が見つかっています。オンボードのRAMのほうが優先されるためEMS ボードのメモリのD7000が欠けた状態になります。この競合は希にしかおこらず、うまい回避手段も無いのでこのままとします。
このソフトウェアを、不特定多数のダウンロードできる場所へ「転載」することは、禁止とします。リンク先の紹介についてはなんら制限はありません。著作権は主張しておきますが、使用にあたっては基本的にフリーソフトウェアです。
ソースファイルを改良して同様の作品を作り公開する場合は、それを明記していただくことを希望します。ソースファイルを翻案して何かを創作すること自体はなんら妨げられることはありませんので自由にやっていただいて構いません。
プログラムは、ある程度のテストを経て公開していますが、動作が完璧に行なわれるということを、作者は保証するものではありません。ユーザがプログラムを組み込んだことによる起動不能などのトラブルの補償には一切応じられません。
動作不具合のご報告は歓迎いたします。
システムが起動しなくなったことや、それに付随した逸失利益、精神的損害について、作者は一切責任は負わないものとします。これらの点を了承できない方には、使用(ソースファイル含む)を認めません。
日付 版 内容 2004- 7-28 1.00 新規作成と関連文書公開 2004- 8- 8 1.01 ハイレゾモードにおけるHSBハングアップ問題解消 2018-11-10 1.02 初代A-mateで SOUND BIOS非使用時に出現してしまう問題に対応 2018-12-27 1.03 ハイレゾモードでIDE未接続時にパリティエラーが出る可能性がある点を修正 2019- 1-20 1.04 Xe,Xs,Xp,Xnに対応 2019- 7- 8 1.10 E10ボード、他のSCSIおよびIDE BIOS検出法の変更(対応機種拡大) 2020- 3-20 1.11 H98で不用意に動作しないようにした(1.10でも問題はないが) 2020- 9- 8 2.00 対応SCSIボード大幅増、PC-9801-92などの1GBの壁を解消する機能の追加 2021-12-30 2.01 システム共通域の利用でIDE_LBAと併用しやすくした 2022- 9-25 2.20 E10PATとの統合、一部 SCSIボードでハングアップする問題の修正、内蔵およびCバスのSOUND BIOSの出現可否判断をより正確にした 2022-10-14 2.22 A-mateハイレゾモード時の機種判定の誤り(E10ボードが検出されない)を修正 2022-10-17 2.23 A-mateハイレゾモード時にハングアップする場合があるのを修正 2022-11-22 2.24 9801RA21からFAまでの機種に対応版を.COM形式で追加、2.23で誤っていたCPU判定の修正 2022-11-23 2.25 E10ボード使用時にハングアップすることがある問題を修正 2023- 5-26 2.26 E10ボード使用時に二度実行することがある問題を修正 2024- 6- 1 2.27 拡張機器内蔵BIOSの存在判定の方法を改良←戻る