ソフト詳細説明
EMS を C の標準関数である malloc() のように簡単に使えたら...と思って作っ
たのが emalloc です。
emalloc は emalloc(), emfree(), emmap(), emdealloc() の四つの関数で
EMS メモリにアクセスする事ができます。
malloc() に対応して、emalloc()、free() に対応して emfree() があります。
これらの関数は emalloc の内部でメモリを管理しています。新たに emalloc()
が実行された時にはシステムから EMS メモリを確保しますが、emfree() が実行
されても EMS メモリはシステムには返されず、次に emalloc() が実行された時
に再利用します。
EMS メモリは確保しただけではアプリケーションプログラムから使用する事は
できません。確保したメモリをあるアドレスに割付ける(マッピングする)こと
によってはじめてそのメモリにデータを書いたり読んだりすることができるよう
になります。このための関数が emmap() です。確保したメモリのハンドルを
emmap() に渡すことによってそのメモリを使用するためのアドレスが返されます。
最後の関数 emdealloc() は EMS メモリをシステムに返す関数です。前述した
ように emfree() では EMS メモリをシステムに返さないため、EMS メモリを必要
としなくなったとき、アプリケーションを終了するときにはこの関数で EMS メモ
リをシステムに返す必要があります。
emalloc のくわしい内容は emalloc.c の始めの部分に記述してありますので、
そちらを参照してください。
なお、emalloc は LIM EMS 4.0 の環境で動作します。