MSX Datapack wiki化計画

4章 ハンドルの概念

※
※ このページは書きかけです。以下の可能性があります。
※ ・誤字、脱字等のチェックをおこなっていません。
※ ・テキスト、表などフォーマットがされていない。
※ ・画像が抜けている。
※

 MSXViewでは、さまざまなマネージャでのデータブロックの指定に、ハンドルと呼ばれるデータ構造を使用しています。ハンドルは1バイトの整数で表現され、その番号により、以下の意味があります。

表3.1 ハンドルの意味

ハンドル番号意味
0ハンドルの番号としては使用しません。システムに対して、新しいハンドルを割り付けを要求するときなどに使用します。
1〜127指定した番号を割り当てて、固定的に使用します。システムがアプリケーション用に固定的に提供しているものや、アプリケーションのメインモジュールとオーバーレイモジュールとのリンクに使用します。ただし、汎用のモジュールではハンドルの割り当てが重なる恐れがあるため、この固定ハンドルを用いることはできません。
128〜254他のハンドルと重ならないように、動的に割り当てられる番号です。オーバーレイモジュール、デスクアクセサリ、汎用モジュール内などで一時的に使われたり、アプリケーションが通常使用するハンドルです。
255ハンドルの割り当てに失敗した場合のエラーとして返す番号です。ハンドルとしては使用しません。

 MSXViewでは、次のようなものがハンドルで管理されています。

  • ウィンドウ
  • ビットブロック
  • ペン(グラフパックの描画環境)
  • フォントテンプレート(フォントパックの描画環境)
  • テキストテンプレート(文字列編集の環境)
  • ファイル
  • メニュー
  • コントロール
  • ウィンカ

 MSXViewでは、ハンドル管理されているデータブロックは、すべてシステムエリアに規定個数のデータエリアが用意されています。したがって、アプリケーションが各種のテンプレートとして、大きなデータブロックをいくつも準備する必要はありません。
 ハンドル管理を行うことにより、大量のデータを1バイトで指定できるので、貴重なアプリケーションプログラム領域を無駄使いすることなく、プログラムのオーバーレイなどを行っても、データの位置を気にすることなく開発することができます。