Gigamix DM-SYSTEM2

インフォメーションエリア

updated:

第1章 概要

1.1 インフォメーションエリアとは

 DMシステム2が持つ各機能の設定を保存しておくためのメモリ領域です。BASICまたはマシン語から各機能を呼び出す毎に参照します。

 インフォメーションエリアはRAMの4300hから43FFhまでの256バイトで、ここを直接書き換えることにより、DM拡張BASICからは使用できない一部の機能が有効になる場合があります。

1.2 インフォメーションエリアの初期値

 DMシステム2の初期化を行うために、インフォメーションエリアの初期値の内容がRAMの0300hから03FFhまでにインフォメーションエリアと同じ形式で保存しています。インフォメーションエリアを書き換えた内容が初期化されると都合が悪い場合には、同時にこちらも書き換えてください。

第2章 インフォメーションエリア 一覧表

システム

オフセット ラベル名 初期値 意味 詳細
+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音源(MSX-MUSIC)のあるスロット システムのインストール時にセットされる (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・SE

オフセット ラベル名 初期値 意味 詳細
+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のクリック

VDPマクロ

オフセット ラベル名 初期値 意味 詳細
+91 VMVAR0 0 VDPマクロ変数(スレッド0) バックグラウンド処理がリアルタイムに書き換える
+92 VMVAR1 0 VDPマクロ変数(スレッド1) バックグラウンド処理がリアルタイムに書き換える

マッパーRAM

オフセット ラベル名 初期値 意味 詳細
+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     予約  
[Back]トップページへ