PC-9821ハードディスクIPL組み込みプログラムローダソフト
IPLware 第3.33版 プログラム操作説明書 
                Copyright(C) 2001-2005 まりも

組み込み仕様説明書を読む

アーカイブをダウンロードする

【0】IPLwareとは---その目的---

 CPUや周辺回路などのハードウェアの中には、OSが起動するまえに適切に設定しておかないと、正常に動作しないものがあります。そのような設定は通常はBIOSが行なう仕事ですが、PC-9821シリーズの場合は1997年時点の設計で止まってしまっているため、BIOSは新しいハードウェアを知りません。ですから、自前でプログラムを作成して、ハードウェアの設定を行なう必要があります。そためのプログラムの実行環境を提供するのが、IPLwareです。

 マシンが起動する際に最初にハードディスクから読み込まれる領域をIPL(Inital Program Loader)と呼びますが、IPLwareではそこにプログラムを追加して、OS起動よりまえにいろいろな仕事をさせます。IPLは本来ユーザが自由いじってよい場所ではありませんから、いくつかのプログラムを組み込みたくても、そのためのインターフェイスが用意されているわけではありません。各人が作成したプログラム同士の競合が発生してしまいがちです。そこで独自に仕様を定めて、プログラムモジュールの組み込み・取り外しが容易にできるようにしました。IPLwareとは、IPLware.exeそのものというよりは、組み込み方式の名称と言えます。
 

【1】IPLwareプログラムの使い方

● 組み込み時に使用するDOS環境

 DOSコマンドの使い方が分からないということはないでしょうから、簡単に書いておきます。操作は全てDOSのコマンドラインから行ないます。Windows9xやNTのDOSプロンプト上(DOS窓)からは使用できませんので注意して下さい。必ずMS-DOSそのものまたはMS-DOSモードを使用してください。

● 組み込まれるのは、「ローダ」と「アプリケーションプログラムモジュール」

 IPLwareでは、「ローダ」部分と「アプリケーション(ユーザ)プログラムモジュール」部分とに分けてIPLに組み込まれます。「アプリケーションプログラムモジュール」は、後述のとおり、各自が用意しなくてはなりません。ローダ部分は、IPLware.exe内部に格納されていて、IPLに組み込み時に抽出されます。
 

●コマンドラインの意味

◎組み込み時

 IPLware  filename

 ここで、filenameは、使用者が作成したプログラムモジュールのファイル名です(プログラムの、IPLwareとして実行可能な要件は、後述します)。任意の 8文字.3文字 拡張子の名前を与えて下さい。Windows9xの長い名前は使えません。大文字小文字の区別は行ないません。日本語文字(シフトJISコード)のファイル名を使用することは一応できますが、コード5Chを含まないようにして下さい。含んでいるとパス区切りと解釈してしまいます。組み込んだときのファイル名の、拡張子を除いた 8文字(以内の部分)は、以降この組み込みプログラムモジュールの識別文字列(IDname)となります(下記)。

◎取り外し時

 IPLware  /r  IDname

 スイッチキャラクタ r が含まれると、取り外しと解釈します。IDnameをもつ組み込み済みのプログラムをIPLパッチから取り外します。/rと IDnameとの順序はどちらが先でも構いません。記号パラメータです。IDname は、組み込んだときのファイル名の、拡張子を除いた8文字(以内の部分)です。なおローダ部分は、一度組み込まれると、アプリケーションプログラムモジュールを全て取り外しても残ります。残っていてもとくに支障はないのですが、削除したいときは後述のオプション /x を使用してください。

◎どんなIPLwareが組み込み(登録)済みかを確認する時

 IPLware  /i

とします。IDnameの一覧が、登録テーブルに格納された順序に従って表示されます。あわせて、IPLwareアプリケーションプログラムモジュールの占有状況が表示されます。

◎IPLwareとして登録されたプログラムを全て削除するとき

 IPLware  /c

◎IPLwareプログラムローダも削除して、何も残さないようにするとき

 IPLware  /x

とします。
 
 

【2】 組み込み先ハードディスクと、手動操作

● 組み込み先と実行優先順序

 PC-98で複数のハードディスクが接続されている場合、IDE#1→IDE#2→SCSIの先頭ID の順に検索され、正しいIPLが存在しているところからIPLが起動します。これはメモリスイッチのブート装置が「標準」の場合です。特定の装置に固定にすると、それ以外は検索されません。

 IPLwareも、この検索順序規則に従っており、現環境で起動優先順位先頭にあるハードディスクに組み込まれます。取り外しの際や確認の際も、組み込んだ時と同じハードディスクが選択されます。したがって、優先順位先頭にあるハードディスクを取り外してしまうと、IPLwareプログラムも実行されないことになります。その場合は現在のハードディスク構成で再度組み込んで下さい。IPLwareを組み込んであるハードディスクを他のマシンに繋いだ場合、それが起動優先順位にあれば、IPLwareも実行されてしまう点に注意して下さい。

 よくわからない場合や、頻繁に接続環境が変わる場合は、接続されている全ての装置に組み込んでおけばよいでしょう。組込先確認のところで[Y]以外を押すと、組込先を選ぶことができます。特殊なフォーマット、または未フォーマットとなっている場合は、IPLwareも組み込みできませんが、どのみちIPLが存在せず実行もされません。接続リスト上で次に現れる装置に組み込んでください。

● キー操作
 IPLwareのプログラムは、組み込まれていれば、システム起動時に自動的に実行されます。何かの理由で実行させたくない場合、あるいはIPLwareの処理は行ないたいのだけれどもフロッピーから起動したい時(OS導入時など)には、次のように手動で実行を制御することができますいずれもIPLwareローダの実行直前からキーが押されている必要があります。IPLwareローダが起動すると、画面背景がに約1秒間で変化します。この間にキーを押すようにしていて下さい。

 
  • [F]キー    IPLwareが一通り実行された後、フロッピーからブートします。フロッピーディスクは、挿入メッセージとビープ音が出てから入れて下さい。最初から入れていると、IPLwareは全く実行されずに、いきなりフロッピーのIPLが起動してしまいます。IPLwareアプリケーションプログラムは、ハードディスクに組み込んであっても、起動時に実行されなければなんの効果もありません。なお、フロッピー起動機能はハイレゾモードでは使用できないため、リターンキーを押すと固定ディスク起動メニューに戻ります。

  •  
  • [DEL]キー IPLwareのプログラム実行をキャンセルします。
  • [HELP]キー IPLwareのアプリケーションプログラムの実行前に、Yes/Noを問い合わせてきます。
  •  DELやHELPの操作は、万一バグのあるアプリケーション作成プログラムを登録してしまって起動できなくなったような場合に、使用することになるでしょう。そのほか、当該機種では実行できないプログラムを回避したい場合などにも使えます。
     
     

    【3】諸注意

    ● 異常時の実行回避
     アプリケーションプログラムのバグにより、組み込んだ後にハードディスクから起動ができなくなる可能性があることに十分留意して下さい。従って、メモリスイッチの「ブート装置」設定を「標準」にしておくことをお勧めします。それと同時に、DOSが最低限起動できる起動フロッピーを予め作成し、その中に、IPLware.exeを入れて置いて下さい。ハードディスク起動が不能になったときには、このフロッピから起動して、問題のアプリケーションプログラムを組み込み解除して下さい。通常はそこまでしなくとも、手動コマンドで問題のあるプログラムモジュールの実行をキャンセルすれば大丈夫す。

    ● 複数プログラムの順序依存
     複数のプログラムを組み込む場合、その実行順序に依存関係をもたせないようにして下さい。アプリケーションプログラムモジュールの登録テーブルに書かれた順序どおりに実行をします。もし実行順序に意味を持たせる必要があるならば、実行順に組み込みを行なって下さい。しかし解除を行うと順序が変更になる場合があります。 /I オプションを使って登録内容を確認して下さい。

    ● 強制組み込み
     「IPLware以外のプログラムがあって組み込めない」というエラーが万一出た場合は、IPLware /F オプションを使うことで、強制的に組み込みはできます。しかし本当に他のソフトが入っていた場合も消去してしまいます。以前にそのようなソフトを入れていないか、確認して下さい。もし既存のソフトが本当にあった場合は、それを解除しない限り組み込めません。強制的に組み込むと、おそらく起動できなくなります。つまり、どうしてもIPLwareとは共存できない仕様の他のIPL組み込みソフトウェアは、存在するということです。

    ● 固定ディスク起動メニューの更新があった場合
     ハードディスクに対して、FDISKで最初の一個目の領域確保を行なうと、起動メニューが書き直しになる場合があります。その場合は、既に組み込んだIPLwareのローダとテーブルはすべて消去されますから、再度組み込みなおして下さい。DISKINITやMS-DOSの FORMAT /H の「装置初期化」を施した場合も同様です。Windows98 では、 FDISK /MBR あるいは /CMBR (番号)でも、IPLwareは消去されてしまいます。というように、何かの拍子に、IPLwareは他のソフトによって消去される可能性があることに留意しておいて下さい。

    ● 98フォーマットされていないHDDにIPLwareを入れることができない
     何もない状態のハードディスクが起動優先順位先頭にあり、そこにIPLwareを入れる場合には問題が発生します。IPLが未だ書かれていない未フォーマットのハードディスクにはIPLwareを組み込めません。一度本体内蔵インターフェイス(SCSIならSCSIアダプタ)につなぎDISKINITを施してあれば、組み込めるようになります。UIDE接続のためにそれができない場合は、UIDEに接続した状態でWin98をフロッピー起動して、FDISK /MBR として下さい(または FDISK /MBR 起動優先番号)。Win95しかないなどの理由でこの方法が使えない場合は、FDISKで仮に小さな領域を1つ作った状態にしてから組み込んでみてください。IPLwareを組み込んだらば当該ハードディスクの仮領域は削除しておきます。

    ● CHECKSUM不正の場合
     IPLwareを組み込んだマシンの起動時に、CHECKSUM不正 と表示されてビープ音が鳴りっぱなしになる場合は、なんらかの原因で、過去に組み込んだプログラムの本体が破壊されています。どれかのキーを押せば、とりあえず実行を回避して起動メニューに戻ります。そのプログラムを正常に動作させるには、再度組み込みなおしてください。あるいは削除して下さい。

    ● ハードディスク BIOS IPLwareアプリケーションにおける注意

     IPLwareアプリケーションのうち、ハードディスクの起動に直接関与するタイプ(DISK BIOSを操作するタイプ)のプログラムは、先にそれが組み込まれ実行されていないと、ハードディスクの領域認識や起動ができなくなる場合があります。現時点でそのようなアプリケーションとして、EXIDE32G, UIDESCSIがあります。 これらのプログラムの対象とするハードディスクが起動優先順位先頭である場合、組み込みを行なおうとしても、ハードディスク内の既存のDOS領域からの起動ができなくなっている場合があります。まさに箱を開ける鍵が箱の中にある状態です。このような場合はまずフロッピーからDOSを起動させてIPLwareアプリケーションプログラムを入れる必要があります。そして次回の起動のときには、フロッピーを抜いて、ハードディスクからまず起動させるようにします。【2】の組み込み先ハードディスクと、手動操作の項目を参照し、IPLware実行後のフロッピー起動を行ないます。あとはOSのインストール用フロッピーを入れることができますし、DOSを起動させてそこからFDISKやFORMATをすることもできます。

     ただしハードディスクIPLwareアプリケーションが作用させたいハードディスクとは別に、起動優先順位が高いハードディスクが存在していれば、そちらにIPLwareアプリケーションを入れることができるので、フロッピーから起動してIPLwareを組み込むという方法をとる必要はとくにありません。

     EXIDE32G(32GB超えのとき)およびUIDESCSI(SCSI互換にするとき)は、処理対象ハードディスクのパーティション位置を決定するDISK BIOSパラメータを変更してしまうプログラムです。そのためプログラム導入前に存在していた領域は、導入後には読めなくなります(そこからのOS起動もできなくなる)。確保容量値も不正なものになります。これらのアプリケーションでDISK BIOSパラメータが変更となる際は、処理対象ハードディスク内のすべての領域を事前に削除し、導入状態で再び領域確保を行なう必要があります。
     

    【4】お約束

    ●フリーソフト作者は転載自由

     このIPLware.exeと、IPLwareのためのローダ部分のコードの著作権は、「まりも」にあります。ただし、ローダ部分のコードは、組み込み仕様を変更しない限り、改良のために使用者がいかようにも改変して構いません。いっぽう、IPLwareとしてアプリケーションが作成し、組み込んだプログラムについては、もちろん作成した あなたに 著作権があります。

     このIPLware.exeおよび添付文書 IPLware.txtは、自由に配布してよいフリーソフトウェアとします。特に許可無く転載も自由とします。すなわち、使用者が組み込みたいプログラムを開発した際に、IPLwareを添付して配ってよいこととします。ただし、フリーソフトウェアとしてアプリケーションプログラムを公開する場合に限ります。商用ソフトに無断添付することは認めません。

     転載(添付)に当たっては、IPLware.exeのバイナリコードを絶対に改変しないで下さい。また、必ずこの文書 IPLware1.txtも一緒に配布して下さい。
     

    ●無保証・無責任

     IPLwareは、ある程度のテストを経て公開していますが、組み込みや取り外しが完璧に行なわれるということを、作者は保証するものではありません。IPLアプリケーションプログラムを組み込んだことによる、ハードディスク起動不能などのトラブル(質問)には一切応じません。アプリケーションプログラムの作者が対処するか、またはアプリケーションプログラムの作者も、同様に責任放棄してください。

     システムが起動しなくなったことに付随した、逸失利益や精神的損害について、IPLwareの作者である私は、一切責任は負わないものとします。これらの点を了承できない方には、IPLwareを使用/作成することを認めません。
     

    ●改版履歴  IPLware.exe
    2001/04/05 1.00  とりあえず初めの一歩(公開せず)
    2001/06/01 2.0β 組み込み仕様を変えた EXIDE32G,MEMSETUPに使用
    2001/09/17 2.00  仕様を公開
    2001/09/19 2.01  CHEKSUMが00のとき実行回避してしまう誤り修正(ローダ)
    2001/09/22 2.02  アプリケーションプログラム入り口でのSS:SPが正しくなかった(汗
    将来の拡張のためにモジュール最大登録数を8に変更した
    2001/12/ 8 3.00 ローダプログラムの最大サイズを640バイトに拡張
    ハイレゾモード時にもIPLware終了後のFDブートを可能にした
    RETFでなくRETで終了するプログラムも扱うようにした
    2002/02/03 3.02 64GBを超えるHDDへの組み込み時の、容量表示の誤りを修正
    2003/04/10 3.30 プログラム開始時点でのレジスタ値に意味を持たせるようにした
    これにより起動IPLwareアプリケーションプログラムの位置がわかる
    2003/07/12 3.31 ハイレゾリューションモードで実行できなかったのを修正
    2004/09/17 3.32 ハイレゾリューションモードでも表示時間待ちをするようにした
    ハイレゾリューションモードで[F]機能は使えないことを明記
    2005/09/20 3.33 アプリケーションプログラム開始時点のCXレジスタ値が正しくなかったバグを修正
    (公開アプリではこの機能を使用したものはありません)