I-O DATA PC34シリーズEMSボードをROMエミュレータにする

PC34D0 1.28 使用説明書 Copyright(C) 2021,2025 まりも

■ このプログラムの意義

  I-O DATA PC34シリーズEMSボードは、ハードウェアリセットではメモリ内容が初期化されないという設計になっています(電源を落とすと初期化されます)。 これを利用して、通常はハードウェアEMSあるいはUMBエリアとして使う所を拡張ROM域に出現させて、ROMのように使うことができます。そのためのプログラムを作成しました。 拙作のROMアプリケーションがEXIDE**などいくつかありますが、このEMSボードの拡張ROM域にロードして実行できます。わざわざROMボードを用意する必要がなくなり、ジャンク市場に豊富に出回っているPC34シリーズ EMSボードが活用できます。すなわち本プログラムはPC34 EMSボードをROMエミュレータとして活用するツールです。

■ 対象ハードウェア

PC34E/F/H/X 電源を落とすと内容が消え、次回起動時に初期化されます。
PC34R このボードは外部5V DC電源により内容は保持できます。

上記以外のボード(バッファロー製等)は対象外です。98本体は、後述の通りあまり古い機種は避けて下さい。なお メルコ製EMJボードで同様のことができるツールはこちらにあります(ただし通常はリセットでメモリを保持できません)。

■ 使用法

 いずれもピュアな(仮想86でない)DOSコマンドプロンプトで実行します。
PC34D0.EXE  
PC34D4.EXE  
LOADD0.COM  
LOADXROM.EXE 

  PC34D0 は、最初に実行しておくもので、これにより 拡張ROM域のD000:0からの16KBに EMSボードがマッピングされ、以降普通にメモリとして使えるようになります。ハイレゾモードの場合はEC00:0です。

 そのほかA500:000〜A700:FFFの通常使いようのないところにもメモリがマッピングされます。こちらのエリアは然るべきUMBツールにてUMBとして使うことができます。ハイレゾモードの場合はE500:0の4KBです。

 PC34D4 は D400:0からを使用します。ハイレゾモードではE800:0を使用します。 。

 LOADD0.COM はコマンド引数としてファイル名が必要です。指定するファイルは何でも構いませんが、拡張ROMプログラムとして実用性のあるものを通常置いて下さい。これによりD000:0にデータがロードされます。ハイレゾモードではEC00:0にデータがロードされます。扱える最大ファイルサイズは12KBです。

 LOADXROM.EXE も同様ですが、4KB単位で任意の位置にロードできます。実行後、ロードするセグメントアドレスを途中で尋ねてきますので、解像度ノーマルモードでは D0からDFの値を、ハイレゾモードでは E5からEFまでの範囲でRAMのある場所を指定してください。読み込むことができる最大ファイルサイズは16384バイトまでですが、16KB境界を超えるファイルサイズではいけません。このチェックは行いませんので、各自で把握しておいてください。たとえばD200:0にロードする場合、最大ファイルサイズは8192バイトです。

 LOADD0を実行した場合、拡張ROM域のD000:0に置かれたROMコードがリセット再起動後に実行されます。ハイレゾモードの場合はEC00:0です。LOADXROMの場合も指定したセグメントアドレスに置かれ、実行されます。

 いっぽうLOADD0をコマンド引数なしで実行すると、4KBをゼロクリアします。起動時ROMコードを実行したくなくなった場合にはクリアできます。もちろんわざわざクリアしなくても、ボードの通電が途絶えれば消去されますが、DC電源でバックアップしているときにそれでは不便なので、消去モードが用意されています。

■ さらなる使い方(オプションや改造)

 A5-A7エリアをUMBとして使う場合は、コマンドライン引数に A5 (ハイレゾモードではE5)を指定してください。C0-CFエリアをUMBとして使う場合は、コマンドライン引数に C0 を指定してください(こちらはハイレゾモードでは無効)。これらのオプションは一度にどちらか一方のみ指定可能です。どちらも使いたい場合オプションを変えては二度実行してください。出現の取り消しオプションは無いので、どうしてもその必要があれば、通電をやめるか後述のINITスイッチで初期化してください。

 このUMBエリアはEMUMBなどアドレスを指定できるものであれば利用できます。EMSメモリ付属のドライバ(EMM4Jなど)は使用できません。また仮想86によるUMBではこのエリアの物理メモリが使用されません。なおA5-A7エリアにROMイメージを置いてもスキャンされませんので、起動時の実行はできません。

■ ROMイメージを組み込むときの手順

 以上をお読みになってもわからない方がいらっしゃると思いますので、EXIDE**のROMイメージを組み込むことを想定した手順を書いておきます。
(1)PC34Rボードを装着し、外部DC電源を供給しておく
(2)容量過大のHDDは接続しないでDOSを起動し、PC34D0を実行
(3)LOADD0 EXIDE**.ROM を実行 **の部分はモノに合わせてください
(4)電源を切り、容量過大のHDDを接続
(5)電源投入後にはROMアプリケーションが実行され、容量過大HDDも認識

■ ハードウェア的諸注意

・PC34Rの設定

 本来はハードウェア設定ディスクが付属しており、そのプログラムで全てを EMSで使う設定にします。そうしないと本プログラムは機能しません。一部でも プロテクトモードメモリの設定があるとリセット後に初期化されてしまいます。 ハードウェア設定ディスクがない場合は、おふがお氏が作成した 「PC34メモ鯖ボウズ」 というものがあり、使用できます。これを使って全てをハードウェアEMSとして使う設定にしてください。ジャンクをゴミにしないで有効活用できる点で、大変有り難いソフトです。作者様ありがとうございます。

・PC34RのDC電源

 わたしが入手したものは、このDCジャックは統一規格に反する逆極性でした。 センターマイナスです。アイオーの別売ACアダプタ側もそうなっています。 かまわずACアダプタ電源のプラグを差し込まないようにしてください。 あなたが持っているボードでは極性がこの通りか分かりませんので、通電する 前に必ず実物でチェックして下さい。

 アイオーの別売ACアダプタの出力電圧は5.25Vあり、やや高めです。これは ボード上の逆流防止ダイオードを経てから電源供給されるため、そのドロップ 電圧を見越したものである可能性があります。ダイオードを通った電圧はほぼ 5.0Vでした。したがってもし選べる、あるいは調整できる電源が用意できるので あれば、電圧が高めのもの(5.25V程度)のがよいでしょう。

・PC34Rの背面SW(INITスイッチ)

 2個並んだスイッチがありますが、これは上側にします。RAMマッピングを解除してデータを初期化したいときはこのスイッチを一度下側にしてから上側に戻します。

・Rシリーズ以外のPC34

 本体の電源を落とすと内容が消えますが、背面にDCジャックがある製品であれば、 PC34Rと同様にデータを保持できるかもしれません。DCジャックの極性にはとくに 注意してください。

・PCI-Cバスブリッジのある(潜在的にPCIバスのある)機種

 Cバスメモリを使うのにはあまり適しませんが一応使えます。必ず[ESC][HELP][5]のキーを同時に押しながらの起動を1回は行ってください。もしなにかの拍子に"SET SOFTWARE DIP SWITCH" のメッセージが起動時に出た場合は、再度[ESC][HELP][5]押し起動が必要となります。なお Mate-R では全く動作しません(D0000hのMTRRを適切に設定すれば動作可能ですが)。

・A5-A7エリアに関して

 ここをメモリマッピングする際には、ノーマルモードの場合、A400:0からの16KB連続で割付られます。これはEMSボードの仕様です。しかしA400:0にはCGウィンドウや不揮発メモリなどの重要な本体ハードウェアがあり、それと重複となります。したがって、80286機くらいの古い機種では本体の動作に支障を来したり、最悪の場合どこかを破壊する可能性があります。

 しかし80386機くらいからは、このアドレス範囲はCバスに接続されることなく本体側へのアクセスとなるようです。いまのとこ動作がおかしくなったことはありません。ということで80286機くらいの古い機種ではこのオプションを使用しないで下さい。それはCPUを載せ変えてあっても同じです。

・ほかの拡張ROMボードとの競合

 D000:0をほかのボードのROMが使用していることもあるかもしれません。そのときはPC34D0を実行しても機能しないか、競合により予期せぬことが起こるかもしれません。PC34D0には既にD000:0に別のものが存在するかどうかを確認するルーチンは組み込んでありません(*)ので、ご自身でアドレス管理してください。PnP機でPnPのボードを使うと予期しないのにD000:0が使われることがあります。
* それをやるとPARITY ERROR発生の原因となることがあるため

・ハイレゾモード時の制約

 ハイレゾモードでは実質的にEC00セグメントにしかメモリウィンドウを配置できません。しかもここはSCSIボードのBIOSが通常EE00セグメントに存在することから、SCSIを使わない環境でなければなりません。なおPC34D4.EXEをハイレゾモードで実行するとE800に配置できますが、その場合はIDE BIOSが無い機種である必要があります。

 したがって、SCSIとIDEを両方存在させたうえでPC34D0を使いたいときは、SCSIのBIOSをEA00セグメントに設定してください。なおこのアドレスに移動すると、SCSI_RAMなどによるRAM化はできなくなります。

・ノーマル/ハイレゾモードを切り替えるときの注意

 PC34シリーズはリセット時にメモリの内容が保持されるだけでなく、メモリマッピングも保持されます。このため、ノーマルモード←→ハイレゾモード の切り替えを行っても、メモリマッピングは以前の状態のままとなってしまい、次回起動のときに不都合を来す恐れがあります。解像度動作モードを切り替えるときは、そのままリセットするのではなく、電源も一度切って再投入してください。

・ソースファイルはPC34EMJS.LZHにアーカイブされています。

■ お約束

 このソフトウェアはフリーソフトウェアです。自由に使っていただいて構いませんが、作者は、このプログラムの動作結果や影響に対して、一切責任は負いません。著作権は作者である「まりも」(DOSsoft)が保有するものとします。不特定多数がダウンロードできる場所への転載はお断りします。

 プログラムは、ある程度のテストを経て公開していますが、動作が完璧に行なわれるということを、作者は保証するものではありません。ユーザがプログラムを組み込んだことによる起動不能などのトラブルの補償には一切応じません。

 なお、EXIDE**などのROMアプリケーションは、このソフトウェアとEMSボードで使用することは認めます。とくに許可は要りません。

まりも (連絡先メールアドレスはホームページ上で)

■改版履歴

年月日   版  内容
2021. 8.24 1.00 新規
2021. 8.25 1.10 A5,C0オプション指定時のみに当該UMB領域のマッピングをするよう変更
2025. 6.15 1.10 LOADXROMを追加、LOADD0の仕様を変更、説明文書の改訂(ESC,HELP,5押し起動)【このバージョンをダウンロードする】
2025.10. 3 1.20 ハイレゾリューションモード(EC00セグメント)に対応
2025.10. 4 1.25 マッピング解除の /r オプションを追加した
2025.10. 5 1.28 ハイレゾでPC34D4実行時、IDE BIOSがあってもEA,EB の8KBにメモリが出現できるようにした。

[戻る]