Launch Menu詳細説明

Launch Menu


- 機能概要 -
バッチコマンドを登録してそれを実行するMS-DOS用のメニュープログラムです。
登録できるバッチコマンドは、各ページに26件でそれが10ページ分で260件、
更に10個のファンクションキーにシフトキーとコントロールキーとの組み合わせで
40件の、計300件分となります。
操作は基本的にはマウスで行ないますが、キーボードのみでも操作可能です。
PC-98版とDOS/V版とがあり、DOS/V版は別途マウスドライバが必要となります。
DOSプログラムですがWindows上でもフルスクリーンなら(たぶん)動作します。


- 解説 -
これを作る前にメニュープログラムは作っていたんですが、グラフィックの描画に関して不満があり どうやってプログラミングしたらいいのか色々試行錯誤していた時に「master.lib」の存在を 知り、改めて作成し直したものです。「master.lib」は元々はゲーム作成用のライブラリなので、 当然GUIの作成に関して色々と役立つ関数が揃っていて、プログラミングの手間の軽減に役立ちました。

メニュープログラムなので当然 子プロセスを起動する訳ですが、自分自身のメモリへの常駐量を減らす為に ローダを使用しています(DOSのプログラムで子プロセスを実行する場合にはよく利用する方法ですが)。 "LM.COM"がそれに当たります。そして"LM.EXE"の方がプログラム本体になります。
実行は"COM"から"EXE"を子プロセスとして起動し、メニューのバッチコマンドを実行する時は"EXE"を終了して "COM"に戻り、バッチファイルを子プロセスとして起動し、それが終了後また"EXE"を起動するというやり方です。 これによりメニュー実行時の常駐量は実質2K位で済むようになりました。

ローダも最初はCで作るつもりだったのですが、「Cマガジン」の記事などを参考にしたところ、 どうもアセンブラじゃないとできないのではと判断して(本当はできるのかもしれないが)、結局MASMを 買って来てアセンブラで作ることにしました。
アセンブラなんて情報処理試験のCAP-X(古い!)かCASL位しか知らないので最初は戸惑いましたが、 MASMの参考書やネット上で見つけた「汎用ローダ」のソースを参考にしながら何とか完成しました。 (この時におまけで作ったのが「てんぷら」で、しかも公開はそっちの方が先になってしまった)
ちなみにMASMはその後は全く使ってません。(^^;

プログラム本体の方の作成は、元々作成していたソースの内グラフィックやキーボード・マウス入力に関する部分を 「master.lib」の関数に変更していくのが主な作業でしたが、「master.lib」を使うのも 初めてだったので関数の使い方を調べるのに結構時間がかかり、その結果としてマニュアルをヘルプファイル に変換するツールなども作ってしまいました。(これは結構便利だった)
「master.lib」にはフォントを作るツール(本当はゲームのキャラクタなどを作成する為のものらしいが) が添付されていたので、画面上で使うフォントも作成しました。作成したフォントファイルはWindows プログラムのリソースのように"EXE"に合体することができるので、画面のデザインに凝ることもできました。

このライブラリのおかげでプログラミング上の問題はほとんどなくなったのですが、MS−Cのデバッグ機能に 段々と不満が溜まって来ました。DPMIで動いているらしい「CodeView」というデバッガが不安定で、 とにかくよく死ぬ!。これじゃプログラムのテストにならん、ということで使いやすいデバッガとCマガで 紹介されていた「TurboDebugger」が欲しくなり「TurboC++ 4.0J (for DOS)」を購入しました。 それに合わせてコンパイラもTurbo Cに変更しました。(これ以降ボーランド派に)
こっちは評判どおり使いやすく、何よりも死なないことがありがたい。以降はトレースなどもやりやすくなり ました。

Turbo Cにコンパイラを変更した理由として他に、PC−98とDOS/Vの両方をサポートしている事でした。 「master.lib」もコンパイルオプションにより両方をサポートしているので、リコンパイルによって どちらも作成できるように両用ソースを作るようにして徐々に完成させていきました。
初公開は96年でその後バージョンアップを2回程繰り返して、現在バージョン0.90で止まっていますが、 今のところバージョンアップの予定はありません。やっぱりDOSでGUIのプログラムを作ると大変だし・・・。 自分でもDOSを使うことはほとんどなくなってしまいましたし、使うとしてもメガデモを見る時くらいしかないので 機能的には今のままで十分だと。(本当は作るのが面倒なだけ)

感想としては、グラフィックに関しては結構きれいにできたかなと自己満足してます。使える色数が16色までなので パレットをやりくりして使い回しをしながら、仕様を決めるのに結構大変だった覚えがあります。 自分で特に気に入っているのは「マウスカーソルエディタ」の画面です。今でもたまに見ると「良くできているなあ」 と自分で感心しています。(<バカだ)
機能に関しては正直言って中くらいかと。実際もっと便利なメニュープログラムも色々あるし・・・。

余談ですが、「Launch Menu」という名前はランチャーのメニューという意味が本来なのですが、 聞いた感じが何となく日替わり定食みたいでいいかなと・・・、この手のネーミングが結構好きなので。(^^;


- 使用方法 -
テキスト版・・・ 配布ファイルに添付したドキュメントを転載しただけのものですので、表示は早いのですが、ちょっと見づらい
グラフィック版・・・ 上記ドキュメント内の画面説明の部分に画像を貼り付けたものですので、実際の画面の感じはわかりやすいと思いますが、表示が重い

※PC/AT版のマニュアルを元に作成しましたのでPC−98版の説明とは多少異なります