MEMMAX.DLL Version 1.90 Copyright K.Ando 1996-01-23 【MEMMAX.DLL の目的】 Windows 3.1 を使用していてプログラムを起動しようとすると「メモリ不足」 で起動できなかったりタスクマネージャに切り替える事ができなかったり する場合があります。また MSアンチウイルスが「コンベンショナルメモリ 不足」をレポートする場合があります。メモリを十分増設しているにもかかわ らずこの問題は発生する可能性があります。おおくの場合、原因は、1MB より 下の空間の DOS コンベンショナルメモリに空きがなくなった事が原因です。 MEMMAX.DLL はこの問題が起こらないように Windows のメモリアロケーション の動作をコントロールします。system.drv= に登録する方法を使用すればおよそ +200KB 以上「コンベンショナルメモリ」に空きが増加します。 【変更履歴】 ファイルサイズ: MEMMAX DLL 2,464 96-01-23 20:08 HOWMUCH EXE 8,704 95-10-04 12:12 1996-01-23:Ver 1.90 MS Golf で一般保護エラーが発生するバグを修正 (MS Golf のようなロード直後に他のモジュールを ロードするようなプログラムで発生していました.) 【動作環境】 DOS/V Microsoft Windows 3.1J (実験はしていませんが、NEC等の Windows 3.1 や US版 Windows 3.1 上でも動作するはずです。) 386 Enhanced Mode と スタンダードモードで動作可能です。 【MEMMAX.DLL の使用方法】 MEMMAX.DLL を WINDOWS\SYSTEM のディレクトリへコピーします。次に EDIT 等を 使用して。WINDOWS ディレクトリにある SYSTEM.INI ファイルを編集します。 MEMMAX.DLL を SYSTEM.INI に登録する場合以下の(1)(2) のどちらかの方法 で登録してください。(1) の方がおすすめです。 (1) [boot] セクションの system.drv= に登録する場合: ディフォルトでは、system.drv=system.drv になっているはずです。 この行を system.drv=memmax.dll に変更します。 (元々登録されていた system.drv は、memmax.dll がロードされた 時に自動的にロードするようになっています。もし system.drv=xxx.drv のように system.drv のファイル以外が指定されていた場合には [boot] セクションに org.system.drv=xxx.drv の行を追加してください org.system.drv= の指定がある場合は、memmax.dll は、system.drv では なく org.system.drv= に指定されたファイルをロードします) (2) [boot] セクションの drivers=mmsystem.dll に登録(追加)する場合: ディフォルトでは、drivers=mmsystem.dll になっているはずですが この行にmemmax.dllを登録する場合は、memmax.dll を追加として 登録します。drivers=memmax.dll mmsystem.dll のように変更します。 ユーザによっては、mmsystem.dll 以外のドライバがたくさん登録され ている場合もあります。このような場合も memmax.dll をdrivers=の 先頭に挿入してください。(ドライバ間の区切りは、1個スペースを 空けてください) (1)(2) どちらか方法を使った場合でも変更したら、SYSTEM.INI ファイルをセーブ しWindows を再起動してください。次回 Windows 起動時から MEMMAX.DLL の機能が 有効になります。Windows システムの動作が異常な場合は、(1) でインストールして いるなら (2) の方法を、(2) でインストールしているなら (1) の方法を試してみて ください。 (1) と (2) の方法を使用した場合の 1MB 以下のメモリの空きぐあいの例: (処理ロジックの変更に伴い Ver 1.70 の時とは異なった結果になります) +-------------------------------------+---------------------+ | 条件 | メモリの空き容量 | |-------------------------------------+---------------------| | MEMMAX.DLL を使用しない場合 | 9K | | (1) の方法でインストールした場合 | 323K | | (2) の方法でインストールした場合 | 95K | | DOS MEM コマンドでの空き容量 | 408K | +-------------------------------------+---------------------+ 実際にどのくらい1MB以下のメモリが空くかはWindowsが使用している ドライバやWindows自体の設定等により変化します。通常のプログラムでは、 50K バイト以上空きがあれば起動には支障は発生しないはずです。 【空きメモリ量の確認】 HOWMUCH.EXE を使用すると現在の 1MB 以下の空きメモリ量をKB 単位で 表示します。(使用する場合は、Windowsに HOWMUCH.EXE をアイコン登録 して起動するか直接起動してください。コンベンショナルメモリの残量を 正確に計算しているわけではありません、目安と考えてください) Ver 1.80 からは、常時画面トップで残量をモニターできます。 【memmax.blocks=の指定】 (1),(2) どちらの方法で MEMMAX.DLL を使用する場合でも system.ini の [boot] セクションに memmax.blocks= の指定があると memmax.dll のメモリアロケートの処理を一部変更する事ができます。 [boot] セクションに memmax.blocks=に 値を指定する。この指定は memmmax.dll が内部的に使用する free ブロック数の値です。ディフォルト では、10 になっています。この値を増減させてみてください。 有効な範囲は、1...256 までです。数値が小さいほど 1MB 以下のメモリ が空きますが、1MB 以上の領域が分断化されやすくなります。あまり 大きくすると起動時間が低速になります。 指定例: memmax.blocks=40 【制限事項】 他のコンンベンショナルメモリ増加用のツールやデバッガなど Windows のカーネル をフックするようなプログラムと MEMMAX を同時に使用した場合、互いに矛盾が生 じてエラーが発生する可能性があります。 【参考文献】 Microsoft Jounal (US版) Vol 8 NO 10,Page 69 Fix1MB 【その他、使用・再配布について】 このプログラムは、フリーウエアです。以下の使用条件をまもる事を前提に だれでも自由に使用する事を許可します。 (1) このプログラムおよびドキュメントファイル MEMMAX.DLL,MEMMAX.TXT MEMMAX.TXT,HOWMUCH.EXE を一切変更してはなりません。 (2) このプログラムを第三者へ提供する場合、(1) の条件をまもれば 再配布を許可します。 (3) このプログラムを使用した事により発生した損害等に関して作成者は 一切の責任を持ちません。 (4) 製品、雑誌等へ添付する場合は、作者へ確認のメールを送り確認を してから添付してください。 (5) 基本的に作者は、このソフトウエアをアップデードする義務を負い ませんが、何か問題があればメールをください。アップデートする かもしれません。 【連絡先】 PSE-NET kando@pse.co.jp 安藤健四郎 NIFTY-Serve QFG02543@niftyserve.or.jp 安藤健四郎