![]() |
第n章 Appendix |
インフォメーションエリア
| オフセット | ラベル名 | 初期値 | 意味 | 詳細 |
| システム | ||||
| +0 | VER | 2 | DMシステムのバージョン番号 | 常に2 |
| +1 | DMSLT0 | DMシステム本体のあるスロット (ページ0) | RAMAD0(0F341h)のコピー。一部のルーチンが参照 | |
| +2 | DMSLT1 | DMシステム本体のあるスロット (ページ1) | RAMAD1(0F342h)のコピー。一部のルーチンが参照 | |
| +3 | MSXVER | MSX本体のバージョン番号 | MSXVER(002Dh/MAIN-ROM)のコピー。CPU切り替え、自然画モード判定などで参照 | |
| +4 | VDPIN | VDPのI/Oポートアドレス (読み出し) | VDPIN(0006h/MAIN-ROM)のコピー。ページ0に置かれているルーチンが参照 | |
| +5 | VDPOUT | VDPのI/Oポートアドレス (書き込み) | VDPOUT(0007h/MAIN-ROM)のコピー。ページ0に置かれているルーチンが参照 | |
| +6 | NEWCPU | 現在のCPUモード | _CHGCPUでCPU切り替えを行った際に現在のCPUモードが保存。turbo R未満では常に0 | |
| +7 | NATION | 国別番号 | 国別番号 (割り付け未定) | |
| +8 | PHYDRV | 物理ドライブ数 | 1〜8 | |
| +9 | MEDIA | メディア環境 (FDD/HDD/RAMDISK等) | HDやRAMディスクなど、ユーザーの環境を示す (割り付け未定) | |
| +10 | INTERL | インターレース縦 | _KINITでノンインターレースに設定したときに参照 (0:Off/255:On) | |
| +11 | 予約 | |||
| +12 | MAXCPU | CPUモードの設定できる最大値 | 一回目の_SYSON時点でのCPUモードを保存 | |
| +13 | EXTSW0 | 0 | 拡張スイッチ | b0 _LOAD,_SAVE時にBGMを止める
b1 1の時にプライマリマッパ以外を優先して確保する |
| +14 | 予約 | |||
| +15 | BGFLAG | 0 | タイマー割り込み接続フラグ (内部処理用) | バックグラウンド処理をビットで設定(1のとき接続)。ユーザーが書き換えた場合の動作は保証されない
b0 BGMドライバ b1 SEドライバ b2 BGMフェードアウト b3 未使用 b4 DMM b5 VDPマクロ(スレッド0) b6 VDPマクロ(スレッド1) b7 未使用 |
| 周辺機器の接続状況 | ||||
| +16 | SLTOPL | FM音源(OPLL)のあるスロット | システムのインストール時にセットされる (255:なし) | |
| +17 | SLTSCC | SCC音源のあるスロット | システムのインストール時にセットされる (255:なし) | |
| +18 | SLTPAC | PACのあるスロット | システムのインストール時にセットされる (255:なし) | |
| +19 | 予約 | |||
| +20 | 予約 | |||
| +21 | 予約 | |||
| +22,2 | 予約 | |||
| ポインタ等 | ||||
| +24,2 | PLTADD | 0C000h | パレットテーブルのアドレス | _SETPLTでセットされる |
| +26,2 | SEADD | 0C000h | SEテーブルのアドレス | _SESETでセットされる |
| +28,2 | BINADD | 0000h | バイナリタンクのアドレス | _SETBINでセットされ、これの2倍した値がVRAMの実アドレス |
| +30,8 | BINDIR | バイナリシステムのディレクトリ保存場所 | _BINLOAD実行後にセットされる | |
| +38,2 | VMADD | 0000h | VDPマクロの先頭アドレス | _DMMONでセットされる |
| +40 | MCRTM | パレットマクロ実行用カウンタ | 内部で使用 | |
| +41,7 | 予約 | |||
| BGM | ||||
| +48 | VOLMAS | 15 | マスターボリウム | _BGMVOLでセットされるが、ユーザーが直接ここを書き換えても何も起こらない |
| +49 | VOLOPL | 0 | 音量バランス調整値 (FM) | _BGMVOLでセットされるが、ユーザーが直接ここを書き換えても何も起こらない |
| +50 | VOLPSG | 0 | 音量バランス調整値 (PSG) | _BGMVOLでセットされるが、ユーザーが直接ここを書き換えても何も起こらない |
| +51 | VOLSCC | 0 | 音量バランス調整値 (SCC) | _BGMVOLでセットされるが、ユーザーが直接ここを書き換えても何も起こらない |
| +52,2 | VOLTIM | フェードアウト用カウンタ | 内部で使用 | |
| +54,2 | BGMCOU | 演奏カウンタ | 使用されていない | |
| +56,2 | TMPTIM | テンポ調整用カウンタ | 内部で使用 | |
| +58 | FADVOL | フェードアウト中のマスターボリウム | 内部で使用 | |
| +59 | SEMSKA | SE処理用予約 | ||
| +60 | SEMSKB | SE処理用予約 | ||
| +61 | SEMSKC | SE処理用予約 | ||
| +62 | PAUFLG | BGMの一時停止状態 | 0:演奏中または停止中 255:一時停止中 | |
| +63 | ? | 予約 | ||
| DMM | ||||
| +64 | RETDMM | 戻り値保存場所 | _DMMの戻り値が保存される | |
| +65 | DMMDEV | 入力のあったポート番号 | _DMMで入力のあったポートの番号が保存される | |
| +66 | DMMX | スプライト座標X | バックグラウンド処理がリアルタイムに書き換える | |
| +67 | DMMY | スプライト座標Y | バックグラウンド処理がリアルタイムに書き換える | |
| +68 | DMMPO1 | 汎用ポート1に接続されている機器 | 0:パッドまたは非接続 1:マウス 2:忍者タップ | |
| +69 | DMMPO2 | 汎用ポート2に接続されている機器 | 0:パッドまたは非接続 1:マウス 2:忍者タップ | |
| +70,2 | DMMTIM | DMM命令のタイマー | 内部で使用 | |
| +72 | DMMMOD | モード保存場所 | _DMMONのパラメータの保存場所 | |
| +73 | DMMSPR | スプライト番号の保存場所 | _DMMの,Sオプションで表示されるスプライト | |
| +74,16 | DMMKEY | キーカスタマイズテーブル | _DMMの戻り値9〜15に対応するキー、倍速キーを設定
+ 0 9番キーのマトリクス行 (0〜10) + 1 9番キーのビット (0〜7) + 2 10番キーのマトリクス行 (0〜10) + 3 10番キーのビット (0〜7) + 4 11番キーのマトリクス行 (0〜10) + 5 11番キーのビット (0〜7) + 6 12番キーのマ |
|
| +90 | ACCEL | 5 | パッドでのマウスカーソル倍速方法 | 0:倍速しない
1〜127:ダブルクリック (数値は有効時間) 128〜254:押しっぱなし (-128した数値が有効時間) 255:トリガBのクリック |
| +91 | VMVAR0 | 0 | VDPマクロ変数(スレッド0) | バックグラウンド処理がリアルタイムに書き換える |
| +92 | VMVAR1 | 0 | VDPマクロ変数(スレッド1) | バックグラウンド処理がリアルタイムに書き換える |
| +93 | MAPHDL | 0 | マッパメモリのハンドル番号 | _MALLOCでセットされる |
| +94 | 予約 | |||
| +95 | 予約 | |||
| その他 | ||||
| +96,12 | RETAF | レジスタ保存場所 | _CALLで呼び出したマシン語ルーチンから復帰する際、2バイトづつに次の順で内容が保存される。また、_CALLでレジスタの内容が省略された場合にはこのアドレスの内容が各レジスタにロードされる
+ 0 AF + 2 HL + 4 DE + 6 BC + 8 IX +10 IY |
|
| +108 | DIRSW | ファイル/ディレクトリ切り替え | _FILESで獲得する対象を指定 b7 (0:ファイル名/1:ディレクトリ名) | |
| +109 | MAPSL0 | 16×16ドットフォントを常駐したマッパRAMのスロット | 内部で使用 | |
| +110 | MAPBK0 | 16×16ドットフォントを常駐したマッパRAMの先頭セグメント番号 (0〜255) | 内部で使用 | |
| +111 | MAPSZ0 | 16×16ドットフォントを常駐したマッパRAMの使用セグメント数 (1〜255) | 内部で使用 | |
| +112 | MAPSL1 | 12×12ドットフォントを常駐したマッパRAMのスロット | 内部で使用 | |
| +113 | MAPBK1 | 12×12ドットフォントを常駐したマッパRAMの先頭セグメント番号 (0〜255) | 内部で使用 | |
| +114 | MAPSZ1 | 12×12ドットフォントを常駐したマッパRAMの使用セグメント数 (1〜255) | 内部で使用 | |
| +115 | 予約 | |||
| +116 | 予約 | |||
| +117 | 予約 | |||
| +118 | 予約 | |||
| +119 | 予約 | |||
| +120 | 予約 | |||
| +121 | 予約 | |||
| +122 | 予約 | |||
| +123 | 予約 | |||
| +124 | 予約 | |||
| +125 | 予約 | |||
| +126 | 予約 | |||
| +127 | 予約 | |||
| 漢字 | ||||
| +128,2 | AKSIZE | 8,16 | ANKのサイズ (1〜64) | |
| +130,2 | KJSIZE | 16,16 | 漢字のサイズ (1〜64) | 異常な設定下で表示を試みた場合、暴走の可能性有 |
| +132,2 | AKPITC | 0,0 | ANKのピッチ | |
| +134,2 | KJPITC | 0,0 | 漢字のピッチ | 表示の間隔だけでなく、背景色を含む文字のサイズにも影響を与える |
| +136,2 | ITATBL | 斜体テーブルアドレス | 最大128バイトをテーブルとして参照 | |
| +138,2 | COLTBL | 0C000h | カラーテーブルアドレス | 最大128バイトをテーブルとして参照 |
| +140 | SWITCH | 漢字処理スイッチ | b0〜b2 未使用 b3 (0:等幅/1:文字詰め) b4 (0:横書き/1:縦書き) b5 (0:ANK/1:Shift-JIS) b6 (0:文字単位処理/1:行単位処理) b7 (0:装飾モード/1:高速モード) | |
| +141,8 | KPAT0 | レイヤー0用ワーク | ||
| +149,8 | KPAT1 | レイヤー1用ワーク | ||
| +157,8 | KPAT2 | レイヤー2用ワーク | ||
| +165,8 | KPAT3 | レイヤー3用ワーク | 漢字装飾に関する情報を格納 +0 フラグ b0 予約 b1 予約 b2 ラインカラー適用範囲(0:背景/1:文字) b3 ラインカラースイッチ b4 斜体スイッチ b5 YJKマスクフラグ b6 予約 b7 表示スイッチ +1,2 表示位置オフセット +3,2 太さx/y +5,2 文字色/背景色 +7 ロジカルオ | |
| +173 | KBACK | 0 | 背景色 | 高速表示モード時の背景色 |
| +174 | FNTSEL | 0 | フォントセレクタ | 0:オートセレクト 1:16×16フォントドライバ固定 2:12×12フォントドライバ固定 3:拡張フォントドライバ固定 |
| +175,6 | FNTSIZ | 第1フォントドライバ情報 | +0 ANKフォントサイズX (非対応:0) +1 ANKフォントサイズY (非対応:0) +2 第一水準フォントサイズX (非対応:0) +3 第一水準フォントサイズY (非対応:0) +4 第二水準フォントサイズX (非対応:0) +5 第二水準フォントサイズY (非対応:0) | |
| +181,6 | 第2フォントドライバ情報 | +0 ANKフォントサイズX (非対応:0) +1 ANKフォントサイズY (非対応:0) +2 第一水準フォントサイズX (非対応:0) +3 第一水準フォントサイズY (非対応:0) +4 第二水準フォントサイズX (非対応:0) +5 第二水準フォントサイズY (非対応:0) | ||
| +187,6 | 拡張フォントドライバ情報 | +0 ANKフォントサイズX (非対応:0) +1 ANKフォントサイズY (非対応:0) +2 第一水準フォントサイズX (非対応:0) +3 第一水準フォントサイズY (非対応:0) +4 第二水準フォントサイズX (非対応:0) +5 第二水準フォントサイズY (非対応:0) | ||
| +193,2 | EXTFNT | 拡張フォントドライバアドレス | ||
| +195 | KJWAIT | 0 | ウエイト | 1文字表示毎に1/60秒単位のウエイトをかける |
| +196,3 | HKKPUT | 1文字表示フック | 1文字表示毎にコールされる (主にSE用) | |
| +199 | KJSE | 0 | 効果音番号 | 1文字表示毎に鳴らすSE番号 |
| +200 | PUTCNT | 表示文字数(結果格納用) | _KPRINTおよび_KPUT実行後に実際に表示された文字数がセットされる | |
| +201 | RETCNT | 処理されたバイト数(結果格納用) | _KPRINTおよび_KPUT実行後に処理されたバイト数がセットされる | |
| +202 | TRPCHR | 0 | 漢字表示用文字列終端コード | |
| +203 | HCEIL | 255 | 最大表示可能領域X | 漢字表示中にX座標がこの値を越えると処理が中断される |
| +204,4 | 予約 | |||
| パレット | ||||
| +208,32 | NEWPLT | 現在のパレット | ||
| ステートメント解析 | ||||
| +240,5 | SVHOOK | タイマーフック保存場所 | ||
| +245,2 | SAVEAD | _SYSOFFで使う | 内部で使用 | |
| +247,2 | TXTPTR | テキストへのポインタ | 内部で使用 | |
| +249,3 | VAL | 変数へのポインタ | 内部で使用 | |
| +252 | 予約 | |||
| +253 | 予約 | |||
| +254 | 予約 | |||
| +255 | 予約 | |||