MSX Datapack wiki化計画

Appendix A.2 ワークエリアの変更点

  • 追加された行はこのように表示されます。
  • 削除された行はこのように表示されます。
{{include unfinished_page}}

,{t},{BSIZE:1 0|SIZE:100%}
,{BSIZE:0}←[[A.1 BIOS一覧|Appendix A.1 BIOS 一覧]]                                            ,{BSIZE:0|RIGHT}[[A.3 VRAMマップ|Appendix A.3 VRAM マップ]]                                       →

■ディスクドライブ用(ディスクがあるときのみ有効)
,{t},{BSIZE:2 0}
,{c},{BSIZE:1 0|SIZE:80},{BSIZE:1 0|SIZE:80},{BSIZE:1 0|SIZE:60},{BSIZE:1 0|SIZE:60},{BSIZE:1 0|SIZE:700}
,アドレス,ラベル,長さ,初期値,内容
,{c},{BSIZE:0},{BSIZE:0},{BSIZE:0},{BSIZE:0},{BSIZE:0}
,F323,DISKVE,2,,ディスクエラー処理ルーチンへのポインタへのポインタ
,F325,BREAKV,2,,[CTRL]+[C] 処理ルーチンへのポインタへのポインタ
,F341,RAMAD0,1,,ページ0のRAMのスロットアドレス
,F342,RAMAD1,1,,ページ1のRAMのスロットアドレス
,F343,RAMAD2,1,,ページ2のRAMのスロットアドレス
,F344,RAMAD3,1,,ページ3のRAMのスロットアドレス
,F348,MASTERS,1,,マスターカートリッジのスロットアドレス

■インタースロットコール用サブルーチン
,{t},{BSIZE:2 0}
,{c},{BSIZE:1 0|SIZE:80},{BSIZE:1 0|SIZE:80},{BSIZE:1 0|SIZE:60},{BSIZE:1 0|SIZE:60},{BSIZE:1 0|SIZE:700}
,アドレス,ラベル,長さ,初期値,内容
,{c},{BSIZE:0},{BSIZE:0},{BSIZE:0},{BSIZE:0},{BSIZE:0}
,F380,RDPRIM,5,,基本スロットから読み込み
,F385,WRPRIM,7,,基本スロットへ書き込み
,F38C,CLPRIM,14,,基本スロットコール

■USR関数のマシン語プログラムの開始番地、テキスト画面
 (MSX2、MSX2+の場合、テキスト画面用のワークエリアの初期値は変化する)
,{t},{BSIZE:2 0}
,{c},{BSIZE:1 0|SIZE:80},{BSIZE:1 0|SIZE:80},{BSIZE:1 0|SIZE:60},{BSIZE:1 0|SIZE:60},{BSIZE:1 0|SIZE:700}
,アドレス,ラベル,長さ,初期値,内容
,{c},{BSIZE:0},{BSIZE:0},{BSIZE:0},{BSIZE:0},{BSIZE:0}
,F39A,USRTAB,20,475AH,USR関数(0〜9)のマシン語プログラムの開始番地。定義前はエラールーチン(FCERR)を指す
,F3AE,LINL40,1,39,SCREEN0のときの1行の幅、WIDTH文で設定
,F3AF,LINL32,1,29,SCREEN1のときの1行の幅、WIDTH文で設定
,F3B0,LINLEN,1,29,現在の画面の1行の幅
,F3B1,CRTCNT,1,24,現在の画面の行数
,F3B2,CLMLST,1,14,PRINT文の制御に使用、LINLEN-(LINLEN MOD 14)-14

■VRAMの各テーブルの番地、その他の画面設定
,{t},{BSIZE:2 0}
,{c},{BSIZE:1 0|SIZE:80},{BSIZE:1 0|SIZE:80},{BSIZE:1 0|SIZE:60},{BSIZE:1 0|SIZE:60},{BSIZE:1 0|SIZE:700}
,アドレス,ラベル,長さ,初期値,内容
,{c},{BSIZE:0},{BSIZE:0},{BSIZE:0},{BSIZE:0},{BSIZE:0}
,F3B3,TXTNAM,2,0000H,SCREEN 0のパターンネームテーブル
,F3B5,TXTCOL,2,0800H,SCREEN 0のカラーテーブル(MSX2、MSX2+のみ)
,F3B7,TXTCGP,2,0800H,SCREEN 0のパターンジェネレータテーブル
,F3B9,TXTATR,2,,未使用
,F3BB,TXTPAT,2,,未使用
,F3BD,T32NAM,2,1800H,SCREEN 1のパターンネームテーブル
,F3BF,T32COL,2,2000H,SCREEN 1のカラーテーブル
,F3C1,T32CGP,2,0000H,SCREEN 1のパターンジェネレータテーブル
,F3C3,T32ATR,2,1B00H,SCREEN 1のスプライトアトリビュートテーブル
,F3C5,T32PAT,2,3800H,SCREEN 1のスプライトジェネレータテーブル
,F3C7,GRPNAM,2,1800H,SCREEN 2のパターンネームテーブル
,F3C9,GRPCOL,2,2000H,SCREEN 2のカラーテーブル
,F3CB,GRPCGP,2,0000H,SCREEN 2のパターンジェネレータテーブル
,F3CD,GRPATR,2,1B00H,SCREEN 2のスプライトアトリビュートテーブル
,F3CF,GRPPAT,2,3800H,SCREEN 2のスプライトジェネレータテーブル
,F3D1,MLTNAM,2,0800H,SCREEN 3のパターンネームテーブル
,F3D3,MLTCOL,2,,未使用
,F3D5,MLTCGP,2,0000H,SCREEN 3のパターンジェネレータテーブル
,F3D7,MLTATR,2,1B00H,SCREEN 3のスプライトアトリビュートテーブル
,F3D9,MLTPAT,2,3800H,SCREEN 3のスプライトジェネレータテーブル
,F3DB,CLIKSW,1,FFH,キークリックスイッチ(0 = OFF、NZ = ON)
,F3DC,CSRY,1,,カーソルのY座標
,F3DD,CSRX,1,,カーソルのX座標
,F3DE,CNSDFG,1,FFH,ファンクションキー表示スイッチ(0 = 非表示、NZ = 表示)

■VDPレジスタのセーブエリアなど
,{t},{BSIZE:2 0}
,{c},{BSIZE:1 0|SIZE:80},{BSIZE:1 0|SIZE:80},{BSIZE:1 0|SIZE:60},{BSIZE:1 0|SIZE:60},{BSIZE:1 0|SIZE:700}
,アドレス,ラベル,長さ,初期値,内容
,{c},{BSIZE:0},{BSIZE:0},{BSIZE:0},{BSIZE:0},{BSIZE:0}
,F3DF,RG0SAV,1,,VDPレジスタ0の値
,F3E0,RG1SAV,1,,VDPレジスタ1の値
,F3E1,RG2SAV,1,,VDPレジスタ2の値
,F3E2,RG3SAV,1,,VDPレジスタ3の値
,F3E3,RG4SAV,1,,VDPレジスタ4の値
,F3E4,RG5SAV,1,,VDPレジスタ5の値
,F3E5,RG6SAV,1,,VDPレジスタ6の値
,F3E6,RG7SAV,1,,VDPレジスタ7の値
,F3E7,STATFL,1,,VDPのSTATUS(MSX2、MSX2+ではSTATUSレジスタ0の値)
,F3E8,TRGFLG,1,FFH,ジョイスティックのトリガボタンの状態
,F3E9,FORCLR,1,15,前景色(フォアグラウンドカラー)省略値
,F3EA,BAKCLR,1,4,背景色(バックグラウンドカラー)省略値
,F3EB,BDRCLR,1,7,周辺色(ボーダーカラー)省略値
,F3EC,MAXUPD,3,JMP 0,LINE文が内部で使用(C3H、00H、00H)
,F3EF,MINUPD,3,JMP 0,LINE文が内部で使用(C3H、00H、00H)
,F3F2,ATRBYT,1,15,グラフィック使用時の色、アトリビュートバイト
,F3F3,QUEUES,2,F959H,PLAY文実行時のキューテーブルを指す
,F3F5,FRCNEW,1,FFH,インタープリタが内部で使用
,F3F6,SCNCNT,1,1,キースキャンの時間間隔
,F3F7,REPCNT,1,50,キーのオートリピート開始までの時間間隔
,F3F8,PUTPNT,2,FBF0H,キーバッファへの書き込みを行う番地を指す
,F3FA,GETPNT,2,FBF0H,キーバッファからの読み込みを行う番地を指す

■カセット用パラメータなど
,{t},{BSIZE:2 0}
,{c},{BSIZE:1 0|SIZE:80},{BSIZE:1 0|SIZE:80},{BSIZE:1 0|SIZE:60},{BSIZE:1 0|SIZE:60},{BSIZE:1 0|SIZE:700}
,アドレス,ラベル,長さ,初期値,内容
,{c},{BSIZE:0},{BSIZE:0},{BSIZE:0},{BSIZE:0},{BSIZE:0}
,F3FC,CS120,10,83,1200ボーのビット0を表すLOWの幅
,,,,92,1200ボーのビット0を表すHIGHの幅
,,,,38,1200ボーのビット1を表すLOWの幅
,,,,45,1200ボーのビット1を表すHIGHの幅
,,,,15,ショートヘッダビットの長さ、HEADLEN(=2000)*2/256
,,,,37,2400ボーのビット0を表すLOWの幅
,,,,45,2400ボーのビット0を表すHIGHの幅
,,,,14,2400ボーのビット1を表すLOWの幅
,,,,22,2400ボーのビット1を表すHIGHの幅
,,,,31,ショートヘッダビットの長さ、HEADLEN(=2000)*4/256
,F406,LOW,2,83,LOW01、HIGH01、デフォルト1200ボー、現在のボーレートのbit0を表すLOW、HIGHの幅。SCREEN文で設定
,F408,HIGH,2,33,LOW11、HIGH11、デフォルト1200ボー、現在のボーレートのbit1を表すLOW、HIGHの幅。SCREEN文で設定
,F40A,HEADER,1,15,HEADLEN*2/256、現在のボーレートのショートヘッダ用のヘッダビットHEADLEN(=2000)。SCREEN文で設定
,F40B,ASPCT1,2,1,256/アスペクト比、SCREEN文で設定しCIRCLE文で使用
,F40D,ASPCT2,2,1,256*アスペクト比、SCREEN文で設定しCIRCLE文で使用
,F40F,ENDPRG,5,":",RESUME NEXT文のための仮のプログラムの終り

■BASICが内部で使うワーク
,{t},{BSIZE:2 0}
,{c},{BSIZE:1 0|SIZE:80},{BSIZE:1 0|SIZE:80},{BSIZE:1 0|SIZE:60},{BSIZE:1 0|SIZE:60},{BSIZE:1 0|SIZE:700}
,アドレス,ラベル,長さ,初期値,内容
,{c},{BSIZE:0},{BSIZE:0},{BSIZE:0},{BSIZE:0},{BSIZE:0}
,F414,ERRFLG,1,0,エラーコードの保存
,F415,LPTPOS,1,0,プリンタのヘッド位置
,F416,PRTFLG,1,0,プリンタへ出力するかどうか
,F417,NTMSXP,1,0,MSX用プリンタなら0
,F418,RAWPRT,1,0,NZならRAW MODE(文字コード変換なし)でプリンタ出力
,F419,VLZADR,2,0,VAL関数で置き換えられる文字のアドレス
,F41B,VLZDAT,1,0,VAL関数で0に置き換わる文字
,F41C,CURLIN,2,FFFFH,BASICが現在実行中の行番号
,F41F,KBUF,318,,クランチバッファ、BUFから中間言語に変換されて入る
,F55D,BUFMIN,1,""",""",INPUT文用のコンマ
,F55E,BUF,258,,タイプした文字がアスキーコードで入るバッファ
,F660,ENDBUF,1,0,BUFの内容がオーバーフローするのを防ぐ
,F661,TTYPOS,1,0,BASICが内部で持つ仮想的なカーソル位置
,F662,DIMFLG,1,0,BASICが配列変数を単純変数と区別するためのフラグ
,F663,VALTYP,1,0,変数の型の識別に使用
,F664,OPRTYP,1,0,演算子保存、またはクランチできる語かどうかのフラグ
,F665,DONUM,1,0,クランチ用のフラグ
,F666,CONTXT,2,0,CHGETで使うテキストポインタの保存
,F668,CONSAV,1,0,CHGETが呼ばれた後で定数の内部形(トークン)を保存
,F669,CONTYP,1,0,保存した定数のタイプ
,F66A,CONLO,8,0,保存した定数の値
,F672,MEMSIZ,2,,BASICが使用するメモリの最上位番地
,F674,STKTOP,2,,スタックとしてつかえる最上位番地、CLEAR文で変更される
,F676,TXTTAB,2,,BASICのテキストエリアの先頭番地
,F678,TEMPPT,2,F67AH,テンポラリディスクリプタの空きエリアの先頭番地
,F67A,TEMPST,30,,3*NUMTMP分使用される
,F698,DSCTMP,3,,文字列関数の答えへのストリングディスクリプタ
,F69B,FRETOP,2,,文字列領域の空きエリアの先頭番地
,F69D,TEMP3,2,0,ガベージコレクション用
,F69F,TEMP8,2,0,ガベージコレクション用
,F6A1,ENDFOR,2,0,FOR文の次の番地
,F6A3,DATLIN,2,0,READ文で読まれたDATA文の行番号
,F6A5,SUBFLG,1,0,USR関数などで配列を使うときのフラグ
,F6A6,FLGINP,1,0,INPUT文やREAD文で使われるフラグ
,F6A7,TEMP,2,,ステートメントコード用の一時保存場所
,F6A9,PTRFLG,1,0,変換する行番号がなければ0、あれば0以外
,F6AA,AUTFLG,1,0,AUTOコマンドが無効なら0、有効なら0以外
,F6AB,AUTLIN,2,0,AUTOで入力された最新の行番号
,F6AD,AUTINC,2,0,AUTOコマンドの行番号の増分
,F6AF,SAVTXT,2,,RESUME文で復帰するためのテキストのアドレス
,F6B1,SAVSTK,2,,エラーが起きたときの回復ルーチン用スタックの保存
,F6B3,ERRLIN,2,0,エラーが起きたときの行番号
,F6B5,DOT,2,0,現在行、LIST.などで使う
,F6B7,ERRTXT,2,0,エラーが起きた行番号、RESUME文用
,F6B9,ONELIN,2,0,エラーが起きたときの飛び先の行
,F6BB,ONEFLG,1,0,エラーによる割り込みルーチン実行中は1、他の場合は0
,F6BC,TEMP2,2,0,一時保存用
,F6BE,OLDLIN,2,0,[CTRL]+[STOP]、END、STOPで設定される旧行番号
,F6C0,OLDTXT,2,0,次に実行する文のテキストアドレス
,F6C2,VARTAB,2,,単純変数の開始番地、NEW文で(TXTTAB)+2に設定される
,F6C4,ARYTAB,2,,配列テーブルの開始番地
,F6C6,STREND,2,,BASICがテキストや変数に使用中のメモリの最後の番地
,F6C8,DATPTR,2,0,READ文実行で読まれたデータのテキストアドレス
,F6CA,DEFTBL,26,8,各英文字で始まる変数のデフォルトの型を保持する

■ユーザー関数のパラメータ用ワーク
,{t},{BSIZE:2 0}
,{c},{BSIZE:1 0|SIZE:80},{BSIZE:1 0|SIZE:80},{BSIZE:1 0|SIZE:60},{BSIZE:1 0|SIZE:60},{BSIZE:1 0|SIZE:700}
,アドレス,ラベル,長さ,初期値,内容
,{c},{BSIZE:0},{BSIZE:0},{BSIZE:0},{BSIZE:0},{BSIZE:0}
,F6E4,PRMSTK,2,0,ガベージコレクション用スタック上の以前の定義ブロック
,F6E6,PRMLEN,2,0,処理対象のテーブルのバイト数
,F6E8,PARM1,100,0,PRMSIZで設定される処理パラメータ定義テーブル
,F74C,PRMPRV,2,PRMSTK,以前のパラメータブロックのポインタ、ガベージコレクション用
,F74E,PRMLN2,2,0,パラメータブロックの大きさ
,F750,PARM2,100,0,PRMSIZで設定されるパラメータの保存場所
,F7B4,PRMFLG,1,0,PARM1がサーチ済みかどうかのフラグ
,F7B5,ARYTA2,2,0,サーチの終点
,F7B7,NOFUNS,1,0,処理対象関数がない場合は0
,F7B8,TEMP9,2,0,ガベージコレクション用
,F7BA,FUNACT,2,0,処理対象関数の数
,F7BC,SWPTMP,8,0,SWAP文の最初の変数の値の一時保存場所
,F7C4,TRCFLG,1,0,トレースフラグ、0 = TRACE OFF、NZ = TRACE ON

■Math-pack用ワークエリア
,{t},{BSIZE:2 0}
,{c},{BSIZE:1 0|SIZE:80},{BSIZE:1 0|SIZE:80},{BSIZE:1 0|SIZE:60},{BSIZE:1 0|SIZE:60},{BSIZE:1 0|SIZE:700}
,アドレス,ラベル,長さ,初期値,内容
,{c},{BSIZE:0},{BSIZE:0},{BSIZE:0},{BSIZE:0},{BSIZE:0}
,F7C5,FBUFFR,43,,Math-packルーチンが一時保存場所として使用する
,F7F0,DECTMP,2,,10進数を浮動小数点数にするときに使用する
,F7F2,DECTM2,2,,除算ルーチンで使用する
,F7F4,DECCNT,1,,除算ルーチンで使用する
,F7F6,DAC,16,,演算の対象となる値を設定するエリア
,F806,HOLD8,48,,10進数の乗算のためのレジスタ保存エリア
,F836,HOLD2,8,,Math-Packルーチンが内部で使用する
,F83E,HOLD,8,,Math-Packルーチンが内部で使用する
,F847,ARG,16,,DACとの演算対象となる値を設定するエリア
,F857,RNDX,8,,最初の乱数を倍精度実数で設定するエリア

■BASICインタープリタが使うデータエリア
,{t},{BSIZE:2 0}
,{c},{BSIZE:1 0|SIZE:80},{BSIZE:1 0|SIZE:80},{BSIZE:1 0|SIZE:60},{BSIZE:1 0|SIZE:60},{BSIZE:1 0|SIZE:700}
,アドレス,ラベル,長さ,初期値,内容
,{c},{BSIZE:0},{BSIZE:0},{BSIZE:0},{BSIZE:0},{BSIZE:0}
,F85F,MAXFIL,1,1,MAXFILES文で設定されるファイル番号の最大値
,F860,FILTAB,2,,ファイルデータの先頭番地
,F862,NULBUF,2,,SAVE、LOADでBASICインタープリタが使うバッファ
,F864,PTRFIL,2,0,指定ファイルのファイルデータのある位置
,F866,RUNFLG,0,0,ロード後実行ならNZ
,F866,FILNAM,11,"""""",ファイル名の保存エリア
,F871,FILNM2,11,"""""",ファイル名の保存エリア
,F87C,NLONLY,1,0,プログラムロード中はNZ
,F87D,SAVEND,2,0,セーブするマシン語プログラムの最終番地
,F87F,FNKSTR,160,,ファンクションキーの文字列保存エリア、16×10
,F91F,CGPNT,3,,ROM上の文字フォント格納スロットアドレスとアドレス
,F922,NAMBAS,2,,現在のパターンネームテーブルのベース番地
,F924,CGPBAS,2,,現在のパターンジェネレータテーブルのベース番地
,F926,PATBAS,2,,現在のスプライトジェネレータテーブルのベース番地
,F928,ATRBAS,2,,現在のスプライトアトリビュートテーブルのベース番地
,F92A,CLOC,2,,グラフィックルーチンが内部で使用する
,F92C,CMASK,1,,グラフィックルーチンが内部で使用する
,F92D,MINDEL,2,,グラフィックルーチンが内部で使用する
,F92F,MAXDEL,2,,グラフィックルーチンが内部で使用する

■CIRCLE、PAINT文で使うデータエリア
,{t},{BSIZE:2 0}
,{c},{BSIZE:1 0|SIZE:80},{BSIZE:1 0|SIZE:80},{BSIZE:1 0|SIZE:60},{BSIZE:1 0|SIZE:60},{BSIZE:1 0|SIZE:700}
,アドレス,ラベル,長さ,初期値,内容
,{c},{BSIZE:0},{BSIZE:0},{BSIZE:0},{BSIZE:0},{BSIZE:0}
,F931,ASPECT,2,,円の縦横比率。CIRCLE文の<比率>により設定される
,F933,CENCNT,2,,CIRCLE文が内部で使用する
,F935,CLINEF,1,,中心へ線を引くかどうかのフラグ
,F936,CNPNTS,2,,プロットする点
,F938,CPLOTF,1,,CIRCLE文が内部で使用する
,F939,CPCNT ,2,,円の1/8分割の数
,F93B,CPCNT8,2,,CIRCLE文が内部で使用する
,F93D,CRCSUM,2,,CIRCLE文が内部で使用する
,F93F,CSTCNT,2,,CIRCLE文が内部で使用する
,F941,CSCLXY,1,,XとYのスケール
,F942,CSAVEA,2,,ADVGRPの保存エリア
,F944,CSAVEM,1,,ADVGRPの保存エリア
,F945,CXOFF ,2,,中心からのXのオフセット
,F947,CYOFF ,2,,中心からのYのオフセット
,F949,LOHMSK,1,,PAINT文が内部で使用する
,F94A,LOHDIR,1,,PAINT文が内部で使用する
,F94B,LOHADR,2,,PAINT文が内部で使用する
,F94D,LOHCNT,2,,PAINT文が内部で使用する
,F94F,SKPCNT,2,,スキップカウント
,F951,MOVCNT,2,,移動カウント
,F953,PDIREC,1,,ペイント方向
,F954,LFPROG,1,,PAINT文が内部で使用する
,F955,RTPROG,1,,PAINT文が内部で使用する

■PLAY文で使用するデータエリア
,{t},{BSIZE:2 0}
,{c},{BSIZE:1 0|SIZE:80},{BSIZE:1 0|SIZE:80},{BSIZE:1 0|SIZE:60},{BSIZE:1 0|SIZE:60},{BSIZE:1 0|SIZE:700}
,アドレス,ラベル,長さ,初期値,内容
,{c},{BSIZE:0},{BSIZE:0},{BSIZE:0},{BSIZE:0},{BSIZE:0}
,F956,MCLTAB,2,,PLAY文マクロ、DRAW文マクロのテーブルの先頭を指す
,F958,MCLFLG,1,,PLAY・DRAWの指示
,F959,QUETAB,24,,キューテーブル、4キュー×6バイト
,F971,QUEBAK,4,,BCKQで使用
,{COLS:5}(内部定義MUSQLN、RSIQLN)
,F975,VOICAQ,n,,nはMUSQLN、音声1のキュー
,F9F5,VOICBQ,n,,nはMUSQLN、音声2のキュー
,FA75,VOICCQ,n,,nはMUSQLN、音声3のキュー

■MSX2で追加されたデータエリア
,{t},{BSIZE:2 0 0 0}
,{c},{BSIZE:1 0|SIZE:80},{BSIZE:1 0|SIZE:80},{BSIZE:1 0|SIZE:60},{BSIZE:1 0|SIZE:60},{BSIZE:1 0|SIZE:700}
,アドレス,ラベル,長さ,初期値,内容
,{c},{BSIZE:0},{BSIZE:0},{BSIZE:0},{BSIZE:0},{BSIZE:0}
,FAF5,DPPAGE,1,,ディスプレイページ番号
,FAF6,ACPAGE,1,,アクティブページ番号
,FAF7,AVCSAV,1,,AVコントロールポートの保存
,FAF8,EXBRSA,1,,SUB ROMのスロットアドレス
,FAF9,CHRCNT,1,,ローマ字カナ変換で使用、キャラクタカウンタで0〜2
,FAFA,ROMA,2,,ローマ字カナ変換で使用、バッファ中のキャラクタ
,FAFC,MODE,1,,ローマ字カナ変換のモード、VRAMサイズなど
,{RIGHT}┌,MSB,7,,0=ひらがな(ローマ字変換)、1=カタカナ
,{RIGHT}各,   ,6,,0=第2水準漢字ROMなし、1=第2水準漢字ROMあり
,{RIGHT}ビ,   ,5,,0=SCREEN 10、1=SCREEN 11(MSX2+で、RGB処理のフラグ)
,{RIGHT}ッ,   ,4,,0=クリッピングする、1=クリッピングしない
,{RIGHT}ト,   ,3,,0=マスクしない、マスクする(SCREEN 0〜3のVRAMアドレス)
,{RIGHT}の,   ,2,,0┐16K   0┐64K   0┐128K
,{RIGHT}意,   ,1,,0┘VRAM  1┘VRAM  1┘VRAM
,{RIGHT}味,   , ,,(bit2とbit1のセットでVRAMサイズがわかる)
,{RIGHT}└,   ,0,,0=変換しない(ローマ字変換)、1=変換する

,{t},{BSIZE:0}
,{c},{BSIZE:0|SIZE:60},{BSIZE:1|SIZE:80},{BSIZE:0},{BSIZE:0}
, ,注 意{CENTER},,{ROWS:2|BSIZE:0}bit3は、MSX2以降でSCREEN 0〜3のVRAMアドレスを指定する際に、3FFFHとANDを取って設定するかどうかのフラグ。SCREEN 4以降では常にマスクしない。
, ,{BSIZE:0} ,,

,{t},{BSIZE:0 0 2 0}
,{c},{BSIZE:0|SIZE:80},{BSIZE:0|SIZE:80},{BSIZE:0|SIZE:60},{BSIZE:0|SIZE:60},{BSIZE:0|SIZE:700}
,FAFD,NORUSE,1,,漢字ドライバが使用
,FAFE,XSAVE ,2,,IOOOOOOO XXXXXXXX
,FB00,YSAVE ,2,,XOOOOOOO YYYYYYYY
,    ,      , ,, I       =1 ライトペンのインタラプト要求あり
,    ,      , ,,OOOOOOO =符号なしオフセット
,    ,      , ,,XXXXXXXX=X座標
,    ,      , ,,YYYYYYYY=Y座標
,FB02,LOGOPR,1,,V9938以降のロジカルオペレーションコード

■RS-232Cで使うデータエリア
,{t},{BSIZE:2 0}
,{c},{BSIZE:1 0|SIZE:80},{BSIZE:1 0|SIZE:80},{BSIZE:1 0|SIZE:60},{BSIZE:1 0|SIZE:60},{BSIZE:1 0|SIZE:700}
,アドレス,ラベル,長さ,初期値,内容
,{c},{BSIZE:0},{BSIZE:0},{BSIZE:0},{BSIZE:0},{BSIZE:0}
,FB03,RSTMP ,50,,RS-232Cまたはディスクが使用する
,FB03,TOCNT ,1 ,,RS-232Cが内部で使用する
,FB04,RSFBC ,1 ,,RS-232CのLOWアドレス
,    ,      ,1 ,,RS-232CのHIGHアドレス
,FB06,RSIQLN,1 ,,RS-232Cが内部で使用する
,FB07,MEXBIH,5 ,,FB07H+0  RST 30H(0F7H)
,    ,      ,  ,,FB07H+1  バイトデータ
,    ,      ,  ,,FB07H+2       (LOW)
,    ,      ,  ,,FB07H+3       (HIGH)
,    ,      ,  ,,FB07H+4  RET(0C9H)
,FB0C,OLDSTT,5 ,,FB0CH+0  RST 30H(0F7H)
,    ,      ,  ,,FB0CH+1  バイトデータ
,    ,      ,  ,,FB0CH+2       (LOW)
,    ,      ,  ,,FB0CH+3       (HIGH)
,    ,      ,  ,,FB0CH+4  RET(0C9H)
,FB11,OLDINT,5 ,,FB11H+0  RST 30H(0F7H)
,    ,      ,  ,,FB11H+1  バイトデータ
,    ,      ,  ,,FB11H+2       (LOW)
,    ,      ,  ,,FB11H+3       (HIGH)
,    ,      ,  ,,FB11H+4  RET(0C9H)
,FB16,DEVNUM,1 ,,RS-232Cが内部で使用する
,FB17,DATCNT,3 ,,FB17H+0  バイトデータ
,    ,      ,  ,,FB17H+1  バイトポインタ
,    ,      ,  ,,FB17H+2  バイトポインタ
,FB1A,ERRORS,1 ,,RS-232Cが内部で使用する
,FB1B,FLAGS ,1 ,,RS-232Cが内部で使用する
,FB1C,ESTBLS,1 ,,RS-232Cが内部で使用する
,FB1D,COMMSK,1 ,,RS-232Cが内部で使用する
,FB1E,LSTCOM,1 ,,RS-232Cが内部で使用する
,FB1F,LSTMOD,1 ,,RS-232Cが内部で使用する
,FB20,HOKVLD,1 ,,拡張BIOSの有無
,FB21,DRVTBL,8 ,,DISK ROMのスロットアドレスなど

■PLAY文で使用するデータエリア(以下はMSX1と共通)
,{t},{BSIZE:2 0}
,{c},{BSIZE:1 0|SIZE:80},{BSIZE:1 0|SIZE:80},{BSIZE:1 0|SIZE:60},{BSIZE:1 0|SIZE:60},{BSIZE:1 0|SIZE:700}
,アドレス,ラベル,長さ,初期値,内容
,{c},{BSIZE:0},{BSIZE:0},{BSIZE:0},{BSIZE:0},{BSIZE:0}
,FB35,PRSCNT,1 ,,
,FB36,SAVSP ,2 ,,PLAY文実行中にスタックポインタを保存
,FB38,VIOCEN,1 ,,解釈中の現在の音声
,FB39,SAVVOL,2 ,,休止のための音量保存
,FB3B,MCLLEN,1 ,,PLAY文が内部で使用する
,FB3C,MCLPTR,2 ,,PLAY文が内部で使用する
,FB3E,QUEUEN,1 ,,PLAY文が内部で使用する
,FB3F,MUSICF,1 ,,音楽演奏用の割り込みフラグ
,FB40,PLYCNT,1 ,,キューされているPLAY文の数
,{COLS:5}(音声スタティックデータエリアから+0〜+32?)
,FB41,VCBA  ,n ,,nはVCBSIZ、音声1のスタティックデータ
,FB66,VCBB  ,n ,,nはVCBSIZ、音声2のスタティックデータ
,FB8B,VCBC  ,n ,,nはVCBSIZ、音声3のスタティックデータ

■データエリア
,{t},{BSIZE:2 0}
,{c},{BSIZE:1 0|SIZE:80},{BSIZE:1 0|SIZE:80},{BSIZE:1 0|SIZE:60},{BSIZE:1 0|SIZE:60},{BSIZE:1 0|SIZE:700}
,アドレス,ラベル,長さ,初期値,内容
,{c},{BSIZE:0},{BSIZE:0},{BSIZE:0},{BSIZE:0},{BSIZE:0}
,FBB0,ENSTOP,1 ,,0以外は「[CTRL]+[SHIFT]+[GRAPH]+[カナ]」でウォームスタート可能
,FBB1,BASROM,1 ,,0以外はBASICのテキストがROMにある
,FBB2,LINTTB,24,,ラインターミネーターテーブル
,FBCA,FSTPOS,2 ,,INLINで入力した行の最初の文字の位置
,FBCC,CODSAV,1 ,,カーソルのためのコード保存場所
,FBCD,FNKSWI,1 ,,どのファンクションキーが表示されているか
,FBCE,FNKFLG,10,,割り込み処理対象デバイスになっているFキーを示す
,FBD8,ONGSBF,1 ,,広域イベントフラグ
,FBD9,CLIKFL,1 ,,キークリックフラグ
,FBDA,OLDKEY,11,,旧キーの状態
,FBE5,NEWKEY,11,,新キーの状態
,{COLS:5}(内部定義SFTKEY、NEWKEY+6、[RETURN]、[CTRL]、[SHIFT]キーの状態)
,FBF0,KEYBUF,40,,キーコードバッファ
,FC18,BUFEND,0 ,,KEYBUFの終り
,FC18,LINWRK,40,,スクリーンハンドラ用一時保存場所
,FC40,PATWRK,8 ,,パターンコンバータ用一時保存場所
,FC48,BOTTOM,2 ,,実装RAMの先頭(低位)番地
,FC4A,HIMEM ,2 ,,利用可能なメモリーの最上位番地
,FC4C,TRPTBL,n ,,nは3*NUMTPR。割り込み処理で使うトラップテーブル
,FC9A,RTYCNT,1 ,,BASICが内部で使用する
,FC9B,INTFLG,1 ,,[CTRL]+[STOP]が押された時など、ここに03Hを入れることによりストップする
,FC9C,PADY  ,1 ,,パドルのY座標
,FC9D,PADX  ,1 ,,パドルのX座標
,FC9E,JIFFY ,2 ,,PLAY文が内部で使用する
,FCA0,INTBAL,2 ,,インターバルの間隔。ON INTERVAL GOSUB文により設定される
,FCA0,INTVAL,2 ,,インターバルの間隔。ON INTERVAL GOSUB文により設定される
,FCA2,INTCNT,2 ,,インターバルのためのカウンタ
,FCA4,LOWLIM,1 ,,カセットテープから読み込み中に使う
,FCA5,WINWID,1 ,,カセットテープから読み込み中に使う
,FCA6,GRPHED,1 ,,倉フィック文字を出すときのフラグ
,FCA6,GRPHED,1 ,,グラフィック文字を出すときのフラグ
,FCA7,ESCCNT,1 ,,エスケープシーケンスのカウンタ
,FCA8,INSFLG,1 ,,挿入モードのフラグ
,FCA9,CSRSW ,1 ,,カーソル表示の有無
,FCAA,CSTYLE,1 ,,カーソルの形
,FCAB,CAPST ,1 ,,[CAPS]キーの状態
,FCAC,KANAST,1 ,,[かな]キーの状態
,FCAD,KANAMD,1 ,,カナ文字がJIS配列なら0でない値
,FCAD,KANAMD,1 ,,かな文字がJIS配列なら0でない値
,FCAE,FLBMEM,1 ,,BASICプログラムをロード中は0
,FCAF,SCRMOD,1 ,,スクリーンモードの番号
,FCB0,OLDSCR,1 ,,スクリーンモード保存場所
,FCB1,CASPRV,1 ,,CAS:が使う文字保存場所
,FCB2,BRDATR,1 ,,PAINTのボーダーカラー
,FCB3,GXPOS ,2 ,,X座標
,FCB5,GYPOS ,2 ,,Y座標
,FCB7,GRPACX,2 ,,グラフィックアキュムレータ(X座標)
,FCB9,GRPACY,2 ,,グラフィックアキュムレータ(Y座標)
,FCBB,DRWFLG,1 ,,DRAW文で使用するフラグ
,FCBC,DRWSCL,1 ,,DRAWのスケーリングファクタ。0ならスケーリングなし
,FCBD,DRWANG,1 ,,DRAWの角度。0〜3
,FCBE,RUNBNF,1 ,,BLOADかBSAVEかどちらでもないか
,FCBF,SAVENT,2 ,,BSAVEの開始番地
,FCC1,EXPTBL,4 ,,各スロットの拡張の有無を示すフラグテーブル
,FCC5,SLTTBL,4 ,,各拡張スロットレジスタ用の現在のスロット選択状況
,FCC9,SLTATR,64,,各スロット用に属性を保存
,FD09,SLTWRK,128,,各スロット用に特定のワークエリアを確保
,FD89,PROCNM,16,,CALL文による拡張文の名前。0は終り
,FD99,DEVICE,1 ,,カートリッジ用の装置識別に使う

■割り込み処理、他のコンソール入出力装置使用、文字セットやキー配列の変更
,{t},{BSIZE:2 0}
,{c},{BSIZE:1 0|SIZE:80},{BSIZE:1 0|SIZE:80},{BSIZE:1 0|SIZE:60},{BSIZE:1 0|SIZE:60},{BSIZE:1 0|SIZE:700}
,アドレス,ラベル,長さ,初期値,内容
,{c},{BSIZE:0},{BSIZE:0},{BSIZE:0},{BSIZE:0},{BSIZE:0}
,FD9A,H.KEYI,5,,割り込み処理の始め、RS-232Cなど
,FD9F,H.TIMI,5,,タイマー割り込み処理の追加
,FDA4,H.CHPU,5,,(1文字出力)の始め
,FDA4,H.CHPU,5,,CHPUT(1文字出力)の始め
,FDA9,H.DSPC,5,,DSPCRS(カーソル表示)の始め
,FDAE,H.ERAC,5,,ERACSR(カーソル消去)の始め
,FDB3,H.DSPF,5,,DSPFNK(ファンクションキー表示)の始め
,FDB8,H.ERAF,5,,ERAFNK(ファンクションキー消去)の始め
,FDBD,H.TOTE,5,,TOTEXT(画面をテキストモードにする)の始め
,FDC2,H.CHGE,5,,CHGET (1文字取り出し)の始め
,FDC7,H.INIP,5,,INIPAT(文字パターンの初期化)の始め
,FDCC,H.KEYC,5,,KEYCOD(キーコード変換)の始め
,FDD1,H.KEYA,5,,KYEASY(KeY EASY)の始め
,FDD6,H.NMI ,5,,NMI(ノンマスカブルインタラプト)の始め
,FDDB,H.PINL,5,,PINLIN(プログラムの行入力)の始め
,FDE0,H.QINL,5,,QINLIN(「?」を表示して行入力)の始め
,FDE5,H.INLI,5,,INLIN(行入力)の始め
,FDEA,H.ONGO,5,,ONGOP(ON )の始め
,FDEA,H.ONGO,5,,ONGOTP(ON GOTO)の始め


■ディスク装置接続
,{t},{BSIZE:2 0}
,{c},{BSIZE:1 0|SIZE:80},{BSIZE:1 0|SIZE:80},{BSIZE:1 0|SIZE:60},{BSIZE:1 0|SIZE:60},{BSIZE:1 0|SIZE:700}
,アドレス,ラベル,長さ,初期値,内容
,{c},{BSIZE:0},{BSIZE:0},{BSIZE:0},{BSIZE:0},{BSIZE:0}
,FDEF,H.DSKO,5,,DSKO$(ディスク出力)の始め
,FDF4,H.SETS,5,,SETS$(セットアトリビュート)の始め
,FDF9,H.NAME,5,,NAME (リネーム)の始め
,FDFE,H.KILL,5,,KILL (ファイル削除)の始め
,FE03,H.IPL ,5,,IPL  (初期プログラムロード)の始め
,FE08,H.COPY,5,,COPY (ファイルのコピー)の始め
,FE0D,H.CMD ,5,,CMD  (コマンド)の始め
,FE12,H.DSKF,5,,DSKF (ディスクの空き)の始め
,FE17,H.DSKI,5,,DSKI (ディスク入力)の始め
,FE1C,H.ATTR,5,,ATTR$(アトリビュート)の始め
,FE21,H.LSET,5,,LSET (左詰め代入)の始め
,FE26,H.RSET,5,,RSET (右詰め代入)の始め
,FE2B,H.FIEL,5,,FIELD(フィールド)の始め
,FE30,H.MKI$,5,,MKI$ (整数作成)の始め
,FE35,H.MKS$,5,,MKS$ (単精度作成)の始め
,FE3A,H.MKD$,5,,MKD$ (倍精度作成)の始め
,FE3F,H.CVI ,5,,CVI  (整数変換)の始め
,FE44,H.CVS ,5,,CVS  (単精度変換)の始め
,FE49,H.CVD ,5,,CVD  (倍精度変換)の始め
,FE9E,H.GETP,5,,GETPTR(ファイルポインター取り出し)
,FE53,H.SETF,5,,SETFIL(ファイルポインター設定)
,FE58,H.NOFO,5,,NOFOR (OPEN文にFORがない)
,FE5D,H.NULO,5,,NULOPN(空ファイルオープン)
,FE62,H.NTFL,5,,NTFL0 (ファイル番号が0でない)
,FE67,H.MERG,5,,MERGE (プログラムファイルのマージ)
,FE6C,H.SAVE,5,,SAVE  (セーブ)
,FE71,H.BINS,5,,BINSAV(機械語セーブ)
,FE76,H.BINL,5,,BINLOD(機械語ロード)
,FE7B,H.FILE,5,,FILES (ファイル一覧表示)
,FE80,H.DGET,5,,DGET  (ディスクGET)
,FE85,H.FILO,5,,FILOUT(ファイル出力)
,FE8A,H.INDS,5,,INDSKC(ディスクの属性を入力)
,FE8F,H.RSLF,5,,(前のドライブを再び選択する)
,FE94,H.SAVD,5,,(現在選択しているドライブを保存する)
,FE99,H.LOC ,5,,(LOC関数、場所を示す)
,FE9E,H.LOF ,5,,(LOF関数、ファイルの長さ)
,FEA3,H.EOF ,5,,(EOF関数、ファイルの終り)
,FEA8,H.FPOS,5,,(FPOS関数、ファイルの場所)
,FEAD,H.BAKU,5,,BAKUPT(バックアップ)

■論理装置名の拡張
,{t},{BSIZE:2 0}
,{c},{BSIZE:1 0|SIZE:80},{BSIZE:1 0|SIZE:80},{BSIZE:1 0|SIZE:60},{BSIZE:1 0|SIZE:60},{BSIZE:1 0|SIZE:700}
,アドレス,ラベル,長さ,初期値,内容
,{c},{BSIZE:0},{BSIZE:0},{BSIZE:0},{BSIZE:0},{BSIZE:0}
,FEB2,H.PARD,5,,PARDEV(装置名の取り出し)
,FEB7,H.NODE,5,,NODEVN(装置名なし)
,FEBC,H.POSD,5,,POSDSK(ディスク装置)
,FEC1,H.DEVN,5,,DEVNAM(装置名の処理)
,FEC6,H.GEND,5,,GENDSP(装置割り当て)

■BASIC内部で使用
,{t},{BSIZE:2 0}
,{c},{BSIZE:1 0|SIZE:80},{BSIZE:1 0|SIZE:80},{BSIZE:1 0|SIZE:60},{BSIZE:1 0|SIZE:60},{BSIZE:1 0|SIZE:700}
,アドレス,ラベル,長さ,初期値,内容
,{c},{BSIZE:0},{BSIZE:0},{BSIZE:0},{BSIZE:0},{BSIZE:0}
,FECB,H.RUNC,5,,RUNC(RUNのためのクリア)
,FED0,H.CLEA,5,,CLEARC(CLEARのためのクリア)
,FED5,H.LOPD,5,,LOPDFT(繰り返しと省略値設定)
,FEDA,H.STKE,5,,STKERR(スタックエラー)
,FEDF,H.ISFL,5,,ISFLIO(ファイルの入出力かどうか)
,FEE4,H.OUTD,5,,OUTDO(OUTを実行)
,FEE9,H.CRDO,5,,CRDO(CRLFを実行)
,FEEE,H.DSKC,5,,DSKCHI(ディスクの属性を入力)
,FEF3,H.DOGR,5,,DOGRPH(グラフィックを実行)
,FEF3,H.PRGE,5,,PRGEND(プログラム終了)
,FEF8,H.PRGE,5,,PRGEND(プログラム終了)
,FEFD,H.ERRP,5,,ERRPRT(エラー表示)
,FF02,H.ERRF,5,,
,FF07,H.READ,5,,READY
,FF0C,H.MAIN,5,,MAIN
,FF11,H.DIRD,5,,DIRDO(ダイレクトステートメント実行)
,FF16,H.FINI,5,,
,FF1B,H.FINE,5,,
,FF20,H.CRUN,5,,
,FF25,H.CRUS,5,,
,FF2A,H.ISRE,5,,
,FF2F,H.NTFN,5,,
,FF34,H.NOTR,5,,
,FF39,H.SNGF,5,,
,FF3E,H.NEWS,5,,
,FF43,H.GONE,5,,
,FF48,H.CHRG,5,,
,FF4D,H.RETU,5,,
,FF52,H.PRTF,5,,
,FF57,H.COMP,5,,
,FF5C,H.FINP,5,,
,FF61,H.TRNM,5,,
,FF66,H.FRME,5,,
,FF6B,H.NTPL,5,,
,FF70,H.EVAL,5,,
,FF75,H.ONKO,5,,
,FF7A,H.FING,5,,
,FF7F,H.ISMI,5,,ISMID$(MID$かどうか)
,FF84,H.WIDT,5,,WIDTHS(WIDTH)
,FF89,H.LIST,5,,LIST
,FF8E,H.BUFL,5,,BUFLIN(バッファーライン)
,FF93,H.FRQI,5,,FRQINT
,FF98,H.SCNE,5,,
,FF9D,H.FRQT,5,,FRQTMP
,FF9D,H.FRET,5,,FRETMP
,FFA2,H.PTRG,5,,PTRGET(省略値以外の変数使用のポインタ)
,FFA7,H.PHYD,5,,PHYDIO(物理ディスク入出力)
,FFAC,H.FORM,5,,FORMAT(ディスクのフォーマット)
,FFB1,H.ERRO,5,,ERROR(アプリケーションのエラーを処理)
,FFB6,H.LPTO,5,,LPTOUT(省略値以外のプリンタで出力)
,FFBB,H.LPTS,5,,LPTSTT(省略値以外のプリンタで状態を知る)
,FFC0,H.SCRE,5,,SCREEN
,FFC5,H.PLAY,5,,PLAY

拡張BIOSが使用
,{t},{BSIZE:2 0}
,{c},{BSIZE:1 0|SIZE:80},{BSIZE:1 0|SIZE:80},{BSIZE:1 0|SIZE:60},{BSIZE:1 0|SIZE:60},{BSIZE:1 0|SIZE:700}
,アドレス,ラベル,長さ,初期値,内容
,{c},{BSIZE:0},{BSIZE:0},{BSIZE:0},{BSIZE:0},{BSIZE:0}
,FFCA,FCALL,5,,拡張BIOSが使用
,FFCF,DISINT,5,,DOSが使用
,FFD4,ENAINT,5,,DOSが使用

■データエリア
,{t},{BSIZE:2 0}
,{c},{BSIZE:1 0|SIZE:80},{BSIZE:1 0|SIZE:80},{BSIZE:1 0|SIZE:60},{BSIZE:1 0|SIZE:60},{BSIZE:1 0|SIZE:700}
,アドレス,ラベル,長さ,初期値,内容
,{c},{BSIZE:0},{BSIZE:0},{BSIZE:0},{BSIZE:0},{BSIZE:0}
,FFE7,RG8SAV ,1,,VDPレジスタ#8のセーブエリア
,FFE8,RG9SAV ,1,,VDPレジスタ#9のセーブエリア
,FFE9,RG10SAV,1,,VDPレジスタ#10のセーブエリア
,FFEA,RG11SAV,1,,VDPレジスタ#11のセーブエリア
,FFEB,RG12SAV,1,,VDPレジスタ#12のセーブエリア
,FFEC,RG13SAV,1,,VDPレジスタ#13のセーブエリア
,FFED,RG14SAV,1,,VDPレジスタ#14のセーブエリア
,FFEE,RG15SAV,1,,VDPレジスタ#15のセーブエリア
,FFEF,RG16SAV,1,,VDPレジスタ#16のセーブエリア
,FFF0,RG17SAV,1,,VDPレジスタ#17のセーブエリア
,FFF1,RG18SAV,1,,VDPレジスタ#18のセーブエリア
,FFF2,RG19SAV,1,,VDPレジスタ#19のセーブエリア
,FFF3,RG20SAV,1,,VDPレジスタ#20のセーブエリア
,FFF4,RG21SAV,1,,VDPレジスタ#21のセーブエリア
,FFF5,RG22SAV,1,,VDPレジスタ#22のセーブエリア
,FFF6,RG23SAV,1,,VDPレジスタ#23のセーブエリア
,FFF7,       ,3,,システム予約
,FFFA,RG25SAV,1,,VDPレジスタ#25のセーブエリア
,FFFB,RG26SAV,1,,VDPレジスタ#26のセーブエリア
,FFFC,RG27SAV,1,,VDPレジスタ#27のセーブエリア
,FFFD,       ,2,,システム予約
,FFFF,       ,1,,拡張スロット選択レジスタ


,{t},{BSIZE:1 0|SIZE:100%}
,{BSIZE:0}←[[A.1 BIOS一覧|Appendix A.1 BIOS 一覧]]                                            ,{BSIZE:0|RIGHT}[[A.3 VRAMマップ|Appendix A.3 VRAM マップ]]                                       →