テクハンwiki

Appendix A.4 ワークエリア一覧

 MSX2のワーク・エリアの概略を図A.5に示します。以下の説明では、この図のF380H〜FFCAHのシステム・ワーク・エリアとフックについて解説します。表記は以下のとおりです。ただし、長さはバイト数です。

ラベル名(アドレス, 長さ)
初期値, 内容, 使用目的


図A.5 ワークエリア

●インタースロットのリード、ライトコール用サブルーチン

RDPRIM(F380H, 5)
内容基本スロットからの読み込み
WRPRIM(F385H, 7)
内容基本スロットへ書き込み
CLPRIM(F38CH, 14)
内容基本スロットコール

●USR関数のマシン語プログラムの開始アドレス、テキスト画面

USRTAB(F39AH, 20)
初期値FCERR
内容USR関数のマシン語プログラム(0〜9)の開始番地、機械語プログラム定義前の値はすべてエラールーチンFCERR(475AH)を指す
LINL40(F3AEH, 1)
初期値39
内容SCREEN0のときの1行の幅(SCREEN0のときのWIDTH文により設定される)
LINL32(F3AFH, 1)
初期値29
内容SCREEN1のときの1行の幅(SCREEN1のときのWIDTH文により設定される)
LINLEN(F3B0H, 1)
初期値29
内容現在の画面の1行の幅
CRTCNT(F3B1H, 1)
初期値24
内容現在の画面の行数
CLMLST(F3B2H, 1)
初期値14
内容PRINT命令において各項目がカンマで区切られている場合の横位置

●初期化用ワーク

・SCREEN 0

TXTNAM(F3B3H, 2)
初期値0000H
内容パターンネーム・テーブル
TXTCOL(F3B5H, 2)
内容使用せず
TXTCGP(F3B7H, 2)
初期値0800H
内容パターンジェネレータ・テーブル
TXTATR(F3B9H, 2)
内容使用せず
TXTPAT(F3BBH, 2)
内容使用せず

・SCREEN 1

T32NAM(F3BDH, 2)
初期値1800H
内容パターンネーム・テーブル
T32COL(F3BFH, 2)
初期値2000H
内容カラーテーブル
T32CGP(F3C1H, 2)
初期値0000H
内容パターンジェネレータ・テーブル
T32ATR(F3C3H, 2)
初期値1B00H
内容スプライトアトリビュート・テーブル
T32PAT(F3C5H, 2)
初期値3800H
内容スプライト・ジェネレータ・テーブル

・SCREEN 2

GRPNAM(F3C7H, 2)
初期値1800H
内容パターンネーム・テーブル
GRPCOL(F3C9H, 2)
初期値2000H
内容カラーテーブル
GRPCGP(F3CBH, 2)
初期値0000H
内容パターンジェネレータ・テーブル
GRPATR(F3CDH, 2)
初期値1B00H
内容スプライトアトリビュート・テーブル
GRPPAT(F3CFH, 2)
初期値3800H
内容スプライト・ジェネレータ・テーブル

・SCREEN 3

MLTNAM(F3D1H, 2)
初期値0800H
内容パターンネーム・テーブル
MLTCOL(F3D3H, 2)
内容使用せず
MLTCGP(F3D5H, 2)
初期値0000H
内容パターンジェネレータ・テーブル
MLTATR(F3D7H, 2)
初期値1B00H
内容スプライトアトリビュート・テーブル
MLTPAT(F3D9H, 2)
初期値3800H
内容スプライト・ジェネレータ・テーブル

●その他のスクリーン設定

CLIKSW(F3DBH, 1)
初期値1
内容キークリックスイッチ(0=OFF、0以外=ON)。SCREEN文の<キークリックスイッチ>により設定される
CSRY(F3DCH, 1)
初期値1
内容カーソルのY座標
CSRX(F3DDH, 1)
初期値1
内容カーソルのX座標
CNSDFG(F3DEH, 1)
初期値0
内容ファンクションキー表示スイッチ(0=表示あり、0以外=表示なし)。KEY ON/OFF文によって設定される

●VDPレジスタのセーブエリアなど

RG0SAV(F3DFH, 1)
初期値0
RG1SAV(F3E0H, 1)
初期値0
RG2SAV(F3E1H, 1)
初期値0
RG3SAV(F3E2H, 1)
初期値0
RG4SAV(F3E3H, 1)
初期値0
RG5SAV(F3E4H, 1)
初期値0
RG6SAV(F3E5H, 1)
初期値0
RG7SAV(F3E6H, 1)
初期値0
STATFL(F3E7H, 1)
初期値0
内容VDPのステータスを保存(MSX2ではステータスレジスタ0の内容)
TRGFLG(F3E8H, 1)
初期値FFH
内容ジョイスティックのトリガボタンの状態を保存する
FORCLR(F3E9H, 1)
初期値15
内容前景色。COLOR文で設定される
BAKCLR(F3EAH, 1)
初期値4
内容背景色。COLOR文で設定される
BDRCLR(F3EBH, 1)
初期値7
内容周辺色。COLOR文で設定される
MAXUPD(F3ECH, 3)
初期値 JP 0000H (C3H, 00H, 00H)
内容CIRCLE文が内部で使用
MINUPD(F3EFH, 3)
初期値 JP 0000H (C3H, 00H, 00H)
内容CIRCLE文が内部で使用
ATRBYT(F3F2H, 1)
初期値15
内容グラフィック使用時のカラーコード

●PLAY文用ワークエリア

QUEUES(F3F3H, 2)
初期値QUETAB(F959H)
内容PLAY文実行時のキューテーブルを指す
FRCNEW(F3F5H, 1)
初期値255
内容BASICインタープリタが内部で使用する

●キー入力用ワークエリア

SCNCNT(F3F6H, 1)
初期値1
内容キースキャンの時間間隔
REPCNT(F3F7H, 1)
初期値50
内容キーのオートリピートが開始するまでの時間
PUTPNT(F3F8H, 2)
初期値KEYBUF(FBF0H)
内容キーバッファへの書き込みを行う番地を指す
GETPNT(F3FAH, 2)
初期値KEYBUF(FBF0H)
内容キーバッファからの読み込みを行う番地を指す

●カセット用パラメータ

CS120(F3FCH, 5*2)
・1200ボー
内容(値)83(LOW01) ……………ビット0を表すLOWの幅
92(HIGH01) ……………ビット0を表すHIGHの幅
38(LOW11) ……………ビット1を表すLOWの幅
45(HIGH11) ……………ビット1を表すHIGHの幅
HEADLEN*2/256 …ショートヘッダ用のヘッダビットのHIGHバイト(HEDLEN=2000)
・2400ボー
内容(値)37(LOW02) ……………ビット0を表すLOWの幅
45(HIGH02) ……………ビット0を表すHIGHの幅
14(LOW12) ……………ビット1を表すLOWの幅
22(HIGH12) ……………ビット1を表すHIGHの幅
HEADLEN*4/256 …ショートヘッダ用のヘッダビットのHighバイト(HEDLEN=2000)
LOW(F406H, 2)
初期値 LOW01, HIGH01(デフォルト1200ボー)
内容現在のボーレートのビット0を表すLOWとHIGHの幅。SCREEN文の<カセットボーレート>により設定される
HIGH(F408H, 2)
初期値 LOW11, HIGH11(デフォルト1200ボー)
内容現在のボーレートのビット1を表すLOWとHIGHの幅。SCREEN文の<カセットボーレート>により設定される
HEADER(F40AH, 1)
初期値HEADLEN*2/256(デフォルト1200ボー)
内容現在のボーレートのショートヘッダ用のヘッダビット(HEDLEN=2000)。SCREEN文の<カセットボーレート>により設定される
ASPCT1(F40BH, 2)
内容256/アスペクト比。CIRCLE文で使用するためにSCREEN文で設定される
ASPCT2(F40DH, 2)
内容256*アスペクト比。CIRCLE文で使用するためにSCREEN文で設定される
ENDPRG(F40FH, 5)
初期値“:”
内容RESUME NEXT文のための仮のプログラムの終わり

●BASICが内部で使うワーク

ERRFLG(F414H, 1)
内容エラー番号を保存するためのエリア
LPTPOS(F415H, 1)
初期値0
内容プリンタのヘッド位置
PRTFLG(F416H, 1)
内容プリンタへ出力するかどうかのフラグ
NTMSXP(F417H, 1)
内容プリンタ種別(0=MSX用プリンタ、0以外=MSX用プリンタでない)
RAWPRT(F418H, 1)
内容raw-modeでプリント中なら0以外
VLZADR(F419H, 2)
内容VAL関数で置き換えられる文字のアドレス
VLZDAT(F41BH, 1)
内容VAL関数で0に置き換わる文字
CURLIN(F41CH, 2)
内容BASICが現在実行中の行番号
KBUF(F41FH, 318)
内容クランチバッファ。BUF(F55EH)から中間言語に直されて入る
BUFMIN(F55DH, 1)
初期値 “,”
内容INPUT文で使われる
BUF(F55EH, 258)
内容タイプした文字が入るバッファ。ダイレクトステートメントがアスキーコードで入る
ENDBUF(F660H, 1)
内容BUF(F55EH)がオーバーフローするのを防ぐ
TTYPOS(F661H, 1)
内容BASICが内部で持つ仮想的なカーソル位置
DIMFLG(F662H, 1)
内容BASICが内部で使用する
VALTYP(F663H, 1)
内容変数の型の識別に使用する
DORES(F664H, 1)
内容保存されている語がクランチできるかどうかを示す
DONUM(F665H, 1)
内容クランチ用のフラグ
CONTXT(F666H, 2)
内容CHRGETで使うテキストアドレスの保存
CONSAV(F668H, 1)
内容CHRGETが呼ばれた後の定数のトークンを保存
CONTYP(F669H, 1)
内容保存した定数のタイプ
CONLO(F66AH, 8)
内容保存した定数の値
MEMSIZ(F672H, 2)
内容BASICが使用するメモリの最上位番地
STKTOP(F674H, 2)
内容BASICがスタックとして使用する番地。CLEAR文により変化する
TXTTAB(F676H, 2)
内容BASICテキストエリアの先頭番地
TEMPPT(F678H, 2)
初期値TEMPST(F67AH)
内容テンポラリディスクリプタの空きエリアの先頭番地
TEMPST(F67AH, 3 * NUMTMP)
内容NUMTEMP用の領域
DSCTMP(F698H, 3)
内容ストリング関数の答えのストリングディスクリプタが入る
FRETOP(F69BH, 2)
内容文字列領域の空きエリアの先頭番地
TEMP3(F69DH, 2)
内容ガベージコレクションやUSR関数などに使われる
TEMP8(F69FH, 2)
内容ガベージコレクション用
ENDFOR(F6A1H, 2)
内容FOR文の次の番地を保存する(ループ時にFOR文の次から実行するため)
DATLIN(F6A3H, 2)
内容READ文の実行により読まれたDATA文の行番号
SUBFLG(F6A5H, 1)
内容USR関数などで配列を使うときのフラグ
FLGINP(F6A6H, 1)
内容INPUTやREADで使われるフラグ
TEMP(F6A7H, 2)
内容ステートメントコードのための一時保存場所。変数ポインタ、テキストアドレスなどに使用する
PTRFLG(F6A9H, 1)
内容変換する行番号がなければ0、あれば0以外
AUTFLG(F6AAH, 1)
内容AUTOコマンド有効、無効フラグ(0以外=有効中、0=無効中)
AUTLIN(F6ABH, 2)
内容一番新しく入力された行番号
AUTINC(F6ADH, 2)
初期値10
内容AUTOコマンドの行番号の増分値
SAVTXT(F6AFH, 2)
内容実行中のテキストのアドレスを保存する領域。主にRESUME文によりエラー回復で使用される
SAVSTK(F6B1H, 2)
内容スタックを保存する領域。主にエラーが起きたとき、エラー回復ルーチンがスタックをリストアするために使用される
ERRLIN(F6B3H, 2)
内容エラーが起きたときの行番号
DOT(F6B5H, 2)
内容何らかの形で画面に表示された、あるいは入力された最新の行番号
ERRTXT(F6B7H, 2)
内容エラーが起きたテキストのアドレス。主にRESUME文によるエラー回復で使用される
ONELIN(F6B9H, 2)
内容エラーが起きたときの飛び先行のテキストアドレス。ON ERROR GOTO文により設定される
ONEFLG(F6BBH, 1)
内容エラールーチンの実行中を示すフラグ。(0以外=実行中、0=実行中でない)
TEMP2(F6BCH, 2)
内容一時保存用
OLDLIN(F6BEH, 2)
内容Ctrl+STOP、STOP命令、END命令で中断されたか、あるいは最後に実行された行番号
OLDTXT(F6C0H, 2)
内容次に実行する文のテキストアドレス
VARTAB(F6C2H, 2)
内容単純変数の開始番地。NEW文を実行すると〔TXTTAB(F676H)の内容+2〕が設定される
ARYTAB(F6C4H, 2)
内容配列テーブルの開始番地
STREND(F6C6H, 2)
内容テキストエリアや変数エリアとして使用中であるメモリの最後の番地
DATPTR(F6C8H, 2)
内容READ文の実行により読まれたデータのテキストアドレス
DEFTBL(F6CAH, 26)
内容英文字1字に対し変数の型を保持するエリア。CLEAR、DEFSTR、!、#などの型宣言で変化する

●ユーザー関数のパラメータに関するワーク

PRMSTK(F6E4H, 2)
内容スタック上の以前の定義ブロック(ガベージコレクション用)
PRMLEN(F6E6H, 2)
内容処理対象のテーブルのバイト数
PARM1(F6E8H, PRMSIZ)
内容処理対象のパラメータ定義テーブル。PRMSIZは定義ブロックのバイト数で初期値は100
PRMPRV(F74CH, 2)
初期値PRMSTK
内容以前のパラメータブロックのポインタ(ガベージコレクション用)
PRMLN2(F74EH, 2)
内容パラメータブロックの大きさ
PARM2(F750H, 100)
内容パラメータの保存用
PRMFLG(F7B4H, 1)
内容PARM1がサーチ済みかどうかを示すフラグ
ARYTA2(F7B5H, 2)
内容サーチの終点
NOFUNS(F7B7H, 1)
内容処理対象関数がない場合は0
TEMP9(F7B8H, 2)
内容ガベージコレクション用の一時保存場所
FUNACT(F7BAH, 2)
内容処理対象関数の数
SWPTMP(F7BCH, 8)
内容SWAP文の最初の変数の値の一時保存場所
TRCFLG(F7C4H, 1)
内容トレースフラグ。(0以外=TRACE ON、0=TRACE OFF)

●Math-Pack用ワーク

FBUFFR(F7C5H, 43)
内容マスパックが内部で使用する
DECTMP(F7F0H, 2)
内容10進整数を不動小数点数にするときに使用する
DECTM2(F7F2H, 2)
内容除算ルーチンの実行時に使用する
DECCNT(F7F4H, 1)
内容除算ルーチンの実行時に使用する
DAC(F7F6H, 16)
内容演算の対象となる値を設定するエリア
HOLD8(F806H, 48)
内容10進数の乗算のためのレジスタ保存エリア
HOLD2(F836H, 8)
内容マスパックが内部で使用する
HOLD(F83EH, 8)
内容マスパックが内部で使用する
ARG(F847H, 16)
内容DAC(F7F6H)との演算対象となる値を設定するエリア
RNDX(F857H, 8)
内容最新の乱数を倍精度実数で保存する。RND関数で設定される

●BASICインタープリタが使うデータエリア

MAXFIL(F85FH, 1)
内容ファイル番号の最大値。MAXFILES文により設定される
FILTAB(F860H, 2)
内容ファイルデータエリアの先頭番地
NULBUF(F862H, 2)
内容SAVE、LOADでBASICインタープリタが使用するバッファ
PTRFIL(F864H, 2)
内容アクセス中のファイルのファイルデータがある番地
RUNFLG(F866H, 0)
内容プログラムをロード後実行するなら0でない値。LOAD文のRオプションなどで使用する
FILNAM(F866H, 11)
内容ファイル名の保存エリア
FILNM2(F871H, 11)
内容ファイル名の保存エリア
NLONLY(F87CH, 1)
内容プログラムロード中は0でない値となる
SAVEND(F87DH, 2)
内容セーブするマシン語プログラムの最終番地
FNKSTR(F87FH, 160)
内容ファンクションキーの文字列保存エリア(16文字×10)
CGPNT(F91FH, 3)
内容ROM上の文字フォント格納アドレス
NAMBAS(F922H, 2)
内容現在のパターンネーム・テーブルのベース番地
CGPBAS(F924H, 2)
内容現在のパターン・ジェネレーター・テーブルのベース番地
PATBAS(F926H, 2)
内容現在のスプライト・ジェネレーター・テーブルのベース番地
ATRBAS(F928H, 2)
内容現在のスプライトアトリビュート・テーブルのベース番地
CLOC(F92AH, 2)
内容グラフィックルーチンが内部で使用する
CMASK(F92CH, 1)
内容グラフィックルーチンが内部で使用する
MINDEL(F92DH, 2)
内容グラフィックルーチンが内部で使用する
MAXDEL(F92FH, 2)
内容グラフィックルーチンが内部で使用する

●CIRCLE文で使うデータエリア

ASPECT(F931H, 2)
内容円の縦横の比率。CLRCLE文の<比率>により設定される
CENCNT(F933H, 2)
内容CIRCLE文が内部で使用する
CLINEF(F935H, 1)
内容円の中心へ線を引くかどうかのフラグ。CIRCLE文の<角度>で指定
CNPNTS(F936H, 2)
内容プロットする点
CPLOTF(F938H, 1)
内容CIRCLE文が内部で使用する
CPCNT(F939H, 2)
内容円の1/8分割の数
CPCNT8(F93BH, 2)
内容CIRCLE文が内部で使用する
CRCSUM(F93DH, 2)
内容CIRCLE文が内部で使用する
CSTCNT(F93FH, 2)
内容CIRCLE文が内部で使用する
CSCLXY(F941H, 1)
内容xとyのスケール
CSAVEA(F942H, 2)
内容ADVGRPの保存エリア
CASVEM(F944H, 1)
内容ADVGRPの保存エリア
CXOFF(F945H, 2)
内容中心からのxのオフセット
CYOFF(F947H, 2)
内容中心からのyのオフセット

●PAINT文で使用するデータエリア

LOHMSK(F949H, 1)
内容PAINT文が内部で使用する
LOHDIR(F94AH, 1)
内容PAINT文が内部で使用する
LOHADR(F94BH, 2)
内容PAINT文が内部で使用する
LOHCNT(F94DH, 2)
内容PAINT文が内部で使用する
SKPCNT(F94FH, 2)
内容スキップカウント
MIVCNT(F951H, 2)
内容移動カウント
PDIREC(F953H, 1)
内容ペイントの方向
LFPROG(F954H, 1)
内容PAINT文が内部で使用する
RTPROG(F955H, 1)
内容PAINT文が内部で使用する

●PLAYで使うデータエリア

MCLTAB(F956H, 2)
内容PLAYマクロ、あるいはDROWマクロのテーブルの先頭を指す
MCLFLG(F958H, 1)
内容PLAY/DRAWの指示
QUETAB(F959H, 24)
内容キューテーブル
+0 : PUT オフセット
+1 : GET オフセット
+2 : バックアップ・キャラクタ
+3 : キューの長さ
+4+5 : キューのアドレス
QUEBAK(F971H, 4)
内容BCKQで使用する
VOICAQ(F975H, 128)
内容音声1のキュー(1=a)
VOICBQ(F9F5H, 128)
内容音声2のキュー(2=b)
VOICCQ(FA75H, 128)
内容音声3のキュー(3=c)

●MSX2で追加されたワークエリア

DFPAGE(FAF5H, 1)
内容ディスプレイページ番号
ACPAGE(FAF6H, 1)
内容アクティブページ番号
AVCSAV(FAF7H, 1)
内容AVコントロールポートの保存
EXBRSA(FAF8H, 1)
内容SUM-ROMのスロットアドレス
CHRCNT(FAF9H, 1)
内容バッファ中のキャラクタのカウンタ。ローマ字カナ変換で使用(値は0<=n<=2)
ROMA(FAFAH, 2)
内容バッファ中のキャラクタを入れておくエリア。ローマ字カナ変換で使用
MODE(FAFCH, 1)
内容ローマ字カナ変換のモードスイッチとVRAMサイズ
〔K000WVVC〕
│ ││││
│ │││└ 1=変換する、0=変換しない
│ │││
│ │└┴─ 00=16KVRAM
│ │ 01=64KVRAM
│ │ 10=128KVRAM
│ │
│ └─── 0=マスクする、1=マスクしない
│ スクリーン0〜3においてVRAMアドレスを指定するときに3FFFHとANDを
│ とって設定するかどうかのフラグ、SCREEN4〜8ではつねにマスクしない
└──────1=カタカナ、0=ひらがな
NORUSE(FAFDH, 1)
内容未使用
XSAVE(FAFEH, 2)
内容〔IOOOOOOO XXXXXXXX〕
YSAVE(FB00H, 2)
内容〔×OOOOOOO YYYYYYYY〕
I=1 ライトペンのインターラプト要求あり
OOOOOOO  =符号なしオフセット
XXXXXXXX   = X座標
YYYYYYYY   = Y座標
LOGOPR(FB02H, 1)
内容ロジカル・オペレーション・コード

●RS-232Cで使うデータエリア

RSTMP(FB03H, 50)
内容RS-232Cまたはディスクのワークエリア
TOCNT(FB03H, 1)
内容RS-2332Cルーチンが内部で使用する
RSFCB(FB04H, 2)
内容FB04H+0 : RS-232CのLOWアドレス
FB04H+1 : RS-232CのHIGHアドレス
RSIQLN(FB06H, 1)
内容RS-232Cルーチンが内部で使用する
MEXBIH(FB07H, 5)
内容FB07H+0 : RST 30H(0F7H)
FB07H+1 : バイトデータ
FB07H+2 : (Low)
FB07H+3 : (Hogh)
FB07H+4 : RET (0C9H)
OLDSTT(FB0CH, 5)
内容FB0CH+0 : RST 30H(0F7H)
FB0CH+1 : バイトデータ
FB0CH+2 : (Low)
FB0CH+3 : (Hogh)
FB0CH+4 : RET (0C9H)
OLDINT(FB12H, 5)
内容FB12H+0 : RST 30H(0F7H)
FB12H+1 : バイトデータ
FB12H+2 : (Low)
FB12H+3 : (Hogh)
FB12H+4 : RET (0C9H)
DEVNUM(FB17H, 1)
内容RS-232Cルーチンが内部で使用する
DATCNT(FB18H, 3)
内容FB18H+0 : バイトデータ
FB18H+1 : バイトポインタ
FB18H+2 : バイトポインタ
ERRORS(FB1BH, 1)
内容RS-232Cルーチンが内部で使用する
FLAGS(FB1BH, 1)
内容RS-232Cルーチンが内部で使用する
ESTBLS(FB1DH, 1)
内容RS-232Cルーチンが内部で使用する
COMMSK(FB1EH, 1)
内容RS-232Cルーチンが内部で使用する
LSTCOM(FB1FH, 1)
内容RS-232Cルーチンが内部で使用する
LSTMOD(FB20H, 1)
内容RS-232Cルーチンが内部で使用する

●DOSが使用するデータエリア

リザーブ(FB21H〜FB34H)

内容DOSが使用する

●PLAY文が使用するデータエリア
 (以下はMSX1と共通)

PRSCNT(FB35H, 1)
内容D1〜D0 文字列パース
D7=0 1パス
SAVSP(FB36H, 2)
内容プレー中のスタックポインタを保存
VOICEN(FB38H, 1)
内容解釈中の現在の音声
SAVVOL(FB39H, 2)
内容休止のために音量を保存する
MCLLEN(FB39H, 1)
内容PLAY文が内部で使用する
MCLPTR(FB3CH, 2)
内容PLAY文が内部で使用する
QUEUEN(FB3EH, 1)
内容PLAY文が内部で使用する
MUSICF(FB3FH, 1)
内容音楽演奏用の割り込みフラグ
PLYCNT(FB40H, 1)
内容キューに格納されているPLAY文の数

●音声スタティックデータエリアからの変位
 (変位は10進数)

METREX(+0, 2)
内容タイマカウントダウン
VCXLEN(+2, 1)
内容この音声のためのMCLLEN
VCXPTR(+3, 2)
内容この音声のためのMCLPTR
VCXSTP(+5, 2)
内容スタックポインタの先頭を保存
QLENGX(+7, 1)
内容キューに格納されるバイト数
NTICSX(+8, 2)
内容新しいカウントダウン
TONPRX(+10, 2)
内容トーンの周期を設定するエリア
AMPPRX(+12, 1)
内容音量、エンベロープの区別
ENVPRX(+13, 2)
内容エンベロープの周期を設定するエリア
OCTAVX(+15, 1)
内容オクターブを設定するエリア
NOTELX(+16, 1)
内容音の長さを設定するエリア
TEMPOX(+17, 1)
内容テンポを設定するエリア
VOLUMX(+18, 1)
内容音量を設定するエリア
ENVLPX(+19, 14)
内容エンベロープの波形を設定するエリア
MCLSTX(+33, 3)
内容スタックの保存場所
MCLSEX(+36, 1)
内容初期化スタック
VCBSIZ(+37, 1)
内容スタティックバッファの大きさ

●音声スタティック・データエリア

VCBA(FB41H, 37)
内容音声0のスタティックデータ
VCBB(FB66H, 37)
内容音声1のスタティックデータ
VCBC(FB8BH, 37)
内容音声2のスタティックデータ

●データエリア

ENSTOP(FBB0H, 1)
内容[SHIFT+Ctrl+GRAPH+かなキー]によるウォームスタートを可能にするフラグ(0=不可能、0以外=可能)
BASROM(FBB1H, 1)
内容BASICテキストの存在場所を示す(0=RAM上、0以外=ROM上)
LINTTB(FBB2H, 24)
内容ラインターミナルテーブル。テキスト画面の各行の情報を保持するエリア
FSTPOS(FBCAH, 2)
内容BIOSのINLIN(00B1H)で入力した行の最初の文字の位置
CODSAV(FBCCH, 1)
内容カーソルが重なった部分のキャラクタを保存するエリア
FNKSWI(FBCDH, 1)
内容KEY ON時にどのファンクションキーが表示されているか表す(1=F1〜F5が表示、0=F6〜F10が表示)
FNKFLG(FBCEH, 10)
内容ON KEY GOSUB文により定義された行の実行を許可、禁止、停止するかファンクションキーごとに保存するためのエリア。KEY(n)ON/OFF/STOP文により設定される(0=KEY(n)OFF/STOP、1=KEY(n)ON)
ONGSBF(FBD8H, 1)
内容TRPTBL(FC4CH)で待機中のイベントが発生したかどうかのフラグ
CLIKFL(FBD9H, 1)
内容キークリック・フラグ
OLDKEY(FBDAH, 11)
内容キーマトリクスの状態(旧)
NEWKEY(FBE5H, 11)
内容キーマトリクスの状態(新)
KEYBUF(FBF0H, 40)
内容キーコードバッファ
LINWRK(FC18H, 40)
内容スクリーンハンドラが使う一時保存場所
PATWRK(FC40H, 8)
内容パターンコンバータが使う一時保存場所
BOTTOM(FC48H, 2)
内容実装したRAMの先頭(低位)番地。MSX2では通常8000H
HIMEM(FC4AH, 2)
内容利用可能なメモリーの上位番地。CLEAR文の<メモリ上限>により設定される
TRPTBL(FC4CH, 78)
内容割り込み処理で使うトラップテーブル。ひとつのテーブルは3バイトで構成される1バイト目がON/OFF/STOP状態を表し、残りが分岐先のテキストアドレスを表す
FC4CH〜FC69H(3*10バイト) ← ON KEY GOSUBで使用
FC6AH〜FC6CH(3*1バイト) ← ON STOP GOSUBで使用
FC6DH〜FC6FH(3*1バイト) ← ON SPRITE GOSUBで使用
FC70H〜FC7EH(3*5バイト) ← ON STRIG GOSUBで使用
FC7FH〜FC81H(3*1バイト) ← ON INTERVAL GOSUBで使用
FC82H〜FC99H ← 拡張用
RTYCNT(FC9AH, 1)
内容BASICが内部で使用する
INTFLG(FC9BH, 1)
内容Ctrl+STOPが押された場合など、ここに03Hを入れることによりストップする
PADY(FC9CH, 1)
内容パドルのY座標
PADX(FC9DH, 1)
内容パドルのX座標
JIFFY(FC9EH, 2)
内容PLAY文が内部で使用する
INTVAL(FCA0H, 2)
内容インターバルの間隔。ON INTERVAL GOSUB文により設定される
INTCNT(FCA2H, 2)
内容インターバルのためのカウンタ
LOWLIM(FCA4H, 1)
内容カセットテープからの読み込み中に使う
WINWID(FCA5H, 1)
内容カセットテープからの読み込み中に使う
GRPHED(FCA6H, 1)
内容グラフィックキャラクタを出す時のフラグ(1=グラフィックキャラクタ、0=通常の文字)
ESCCNT(FCA7H, 1)
内容エスケープコードがきてから何文字目かをカウントするエリア
INSFLG(FCA8H, 1)
内容挿入モードのフラグ(0=通常モード、0以外=挿入モード)
CSRSW(FCA9H, 1)
内容カーソル表示の有無(0=表示なし、0以外=表示あり)
LOCATE文の<カーソルスイッチ>により設定される
CSTYLE(FCAAH, 1)
内容カーソルの形(0=■、0以外=_)
CAPST(FCABH, 1)
内容CAPSキーの状態(0=CAP OFF、0以外=CAP ON)
KANAST(FCACH, 1)
内容かなキーの状態(0=かなOFF、0以外=かなON)
KANAMD(FCADH, 1)
内容かなキー配列の状態(0=50音配列、0以外=JIS配列)
FLBMEM(FCAEH, 1)
内容BASICプログラムをロード中は0
SCRMOD(FCAFH, 1)
内容現在のスクリーンモードの番号
OLDSCR(FCB0H, 1)
内容スクリーンモード保存エリア
CASPRV(FCB1H, 1)
内容CAS:が使う文字保存場所
BRDATR(FCB2H, 1)
内容PAINTで使用する境界色のカラーコード。PAINT文の<境界色>で指定される
GXPOS(FCB3H, 2)
内容X座標
GYPOS(FCB5H, 2)
内容Y座標
GRPACX(FCB7H, 2)
内容グラフィックアキュムレータ(X座標)
GRPACY(FCB9H, 2)
内容グラフィックアキュムレータ(Y座標)
DRWFLG(FCBBH, 1)
内容DRAW文で使用するフラグ
DRWSCL(FCBCH, 1)
内容DRAWスケーリングファクタ(0=スケーリングしない、0以外=する)
DRWANG(FCBDH, 1)
内容DRAWするときの角度
RUNBNF(FCBEH, 1)
内容BLOAD中、BSAVE中、どちらでもない、のいずれかを表すフラグ
SAVENT(FCBFH, 2)
内容BSAVEの開始番地
EXPTBL(FCC1H, 4)
内容拡張スロット用のフラグテーブル。各スロットの拡張の有無
SLTTBL(FCC5H, 4)
内容各拡張スロットレジスタ用の、現在のスロット選択状況
SLTATR(FCC9H, 64)
内容各スロット用に属性を保存する
SLTWRK(FD09H, 128)
内容各スロット用に特定のワークエリアを確保する
PROCNM(FD89H, 16)
内容拡張ステートメント(CALL文の後)、拡張デバイス(OPENの後)の名前が入る。0は終わり
DEVICE(FD99H, 1)
内容カートリッジ用の装置識別に使用する

●フック

H.KEYI(FD9AH)
意味MSXIO割り込み処理の始め
使用目的RS-232Cなどの割り込み処理を追加する
H.TIMI(FD9FH)
意味MSXIOタイマ割り込み処理
使用目的タイマー割り込み処理を追加するため
H.CHPH(FDA4H)
意味MSXIO CHPUT(1文字出力)の始め
使用目的他のコンソール出力装置をつなぐため
H.DSPC(FDA9H)
意味MSXIO DSPCSR(カーソル表示)の始め
使用目的他のコンソール装置をつなぐため
H.ERAC(FDAEH)
意味MSXIO ERACSR(カーソル消去)の始め
使用目的他のコンソール装置をつなぐため
H.DSPF(FDB3H)
意味MSXIO DSPFNK(ファンクションキー表示)の始め
使用目的他のコンソール装置をつなぐため
H.ERAF(FDB8H)
意味MSXIO ERAFNK(ファンクションキー消去)の始め
使用目的他のコンソール装置をつなぐため
H.TOTE(FDBDH)
意味MSXIO TOTEXT(画面をテキストモードにする)の始め
使用目的他のコンソール装置をつなぐため
H.CHGE(FDC2H)
意味MSXIO CHGET(1文字取り出し)の始め
使用目的他のコンソール装置をつなぐため
H.INIP(FDC7H)
意味MSXIO INIPAT(文字パターンの初期化)の始め
使用目的他の文字セットを使うため
H.KEYC(FDCCH)
意味MSXIO KEYCOD(キーコード変換)の始め
使用目的他のキー配置を使うため
H.KYEA(FDD1H)
意味MSXIO NMIルーチン(Key Easy)の始め
使用目的他のキー配置を使うため
H.NMI(FDD6H)
意味MSXIO NMI(ノンマスカブルインタラプト)の始め
使用目的NMI処理をするため
H.PINL(FDDBH)
意味MSXINL PINLIN(1行入力)の始め
使用目的他のコンソール入力装置や他の入力方式を使うため
H.QINL(FDEOH)
意味MSXINL QINLIN(”?”を表示して1行入力)の始め
使用目的他のコンソール入力装置や他の入力方式を使うため
H.INLI(FDE5H)
意味MSXINL INLIN(1行入力)の始め
使用目的他のコンソール入力装置や他の入力方式を使うため
H.ONGO(FDEAH)
意味MSXSTS INGOTP(ON GOTO)の始め
使用目的他の割り込み処理装置を使うため
H.DSKO(FDEFH)
意味MSXSTS DSKO$(ディスク出力)の始め
使用目的ディスク装置を接続するため
H.SETS(FDF4H)
意味MSXSTS SETS(セット アトリビュート)の始め
使用目的ディスク装置を接続するため
H.NAME(FDF9H)
意味MSXSTS NAME(リネーム)の始め
使用目的ディスク装置を接続するため
H.KILL(FDFEH)
意味MSXSTS KILL(ファイルの削除)の始め
使用目的ディスク装置を接続するため
H.IPL(FE03H)
意味MSXSTS IPL(初期プログラムのロード)の始め
使用目的ディスク装置を接続するため
H.COPY(FE08H)
意味MSXSTS COPY(ファイルのコピー)の始め
使用目的ディスク装置を接続するため
H.CMD(FE0DH)
意味MSXSTS CMD(拡張コマンド)の始め
使用目的ディスク装置を接続するため
H.DSKF(FE12H)
意味MSXSTS DSKF(ディスクの空き)の始め
使用目的ディスク装置を接続するため
H.DSKI(FE17H)
意味MSXSTS DSKI(ディスク入力)の始め
使用目的ディスク装置を接続するため
H.ATTR(FE1CH)
意味MSXSTS ATTR$(アトリビュート)の始め
使用目的ディスク装置を接続するため
H.LSET(FE21H)
意味MSXSTS LSET(左詰め代入)の始め
使用目的ディスク装置を接続するため
H.RSET(FE26H)
意味MSXSTS RSET(左詰め代入)の始め
使用目的ディスク装置を接続するため
H.FIEL(DE2BH)
意味MSXSTS FIELD(フィールド)の始め
使用目的ディスク装置を接続するため
H.MKI$(FE30H)
意味MSXSTS MKI$(整数作成)の始め
使用目的ディスク装置を接続するため
H.MKS$(FE35H)
意味MSXSTS MKS$(単精度実数作成)の始め
使用目的ディスク装置を接続するため
H.MKD$(FE3AH)
意味MSXSTS MKD$(倍精度実数作成)の始め
使用目的ディスク装置を接続するため
H.CVI(FE3FH)
意味MSXSTS CVI(整数変換)の始め
使用目的ディスク装置を接続するため
H.CVS(FE44H)
意味MSXSTS CVS(単精度実数変換)の始め
使用目的ディスク装置を接続するため
H.CVD(FE49H)
意味MSXSTS CVD(倍精度実数変換)の始め
使用目的ディスク装置を接続するため
H.GETP(FE4EH)
意味SPDSK GETPTR(ファイルポインタ取り出し)
使用目的ディスク装置を接続するため
H.SETF(FE53H)
意味SPCDSK SETFIL(ファイルポインタ設定)
使用目的ディスク装置を接続するため
H.NOFO(FE58H)
意味SPDSK NOFOR(OPEN文にFORがない)
使用目的ディスク装置を接続するため
H.NULO(FE5DH)
意味SPCDSK NULOPN(空きファイルをオープン)
使用目的ディスク装置を接続するため
H.NTFL(FE62H)
意味SPCDSK NTFLO(ファイル番号が0でない)
使用目的ディスク装置を接続するため
H.MERG(FE67H)
意味SPCDSK MERGE(プログラムファイルのマージ)
使用目的ディスク装置を接続するため
H.SAVE(FE6CH)
意味SPCDSK SAVE(セーブ)
使用目的ディスク装置を接続するため
H.BINS(FE71H)
意味SPCDSK BINSAV(機械語セーブ)
使用目的ディスク装置を接続するため
H.BINL(FE76H)
意味SPCDSK BINLOD(機械語ロード)
使用目的ディスク装置を接続するため
H.FILE(FD7BH)
意味SPCDSK FILES(ファイル名の表示)
使用目的ディスク装置を接続するため
H.DGET(FE80H)
意味SPCDSK DGET(ディスクGET)
使用目的ディスク装置を接続するため
H.FILO(FE85H)
意味SPCDSK FILOU1(ファイル出力)
使用目的ディスク装置を接続するため
H.INDS(FE8AH)
意味SPCDSK INDSKC(ディスクの属性を入力)
使用目的ディスク装置を接続するため
H.RSLF(FE8FH)
意味SPCDSK 前のドライブを再び選択する
使用目的ディスク装置を接続するため
H.SAVD(FE94H)
意味SPCDSK 現在選択しているドライブを保存する
使用目的ディスク装置を接続するため
H.LOC(FE99H)
意味SPCDSK LOC関数(場所を示す)
使用目的ディスク装置を接続するため
H.LOF(FE9EH)
意味SPCDSK LOF関数(ファイルの長さ)
使用目的ディスク装置を接続するため
H.EOF(FEA3H)
意味SPCDSK EOF関数(ファイルの終わり)
使用目的ディスク装置を接続するため
H.FPOS(FEA8H)
意味SPCDSK FPOS関数(ファイルの場所)
使用目的ディスク装置を接続するため
H.BAKU(FEADH)
意味SPCDSK BAKUPT(バックアップ)
使用目的ディスク装置を接続するため
H.PARD(FEB2H)
意味SPCDEV PARDEV(装置名の取り出し)
使用目的論理装置名を拡張するため
H.NODE(FEB7H)
意味SPCDEV NODEVN(装置名なし)
使用目的省略装置名を他の装置に設定する
H.POSD(FEBCH)
意味SPCDEV POSDSK
使用目的ディスク装置を接続するため
H.DEVN(FEC1H)
意味SPCDEV DEVNAM(装置名の処理)
使用目的論理装置名を拡張するため
H.GEND(FEC6H)
意味SPCDEV GENDSP(装置割り当て)
使用目的論理装置名を拡張するため
H.RUNC(FECBH)
意味BIMISC RUNC(RUNのためのクリア)
H.CLEA(FED0H)
意味BIMISC CLEARC(CLEAR文のためのクリア)
H.LOPD(FED5H)
意味BIMISC LOPDFT(繰り返しと省略値の設定)
使用目的変数に他の省略値を使うため
H.STKE(FEDAH)
意味BIMISC STKERR(スタックエラー)
H.ISFL(FEDFH)
意味BIMISC ISFLIO(ファイルの入出力かどうか)
H.OUTD(FEE4H)
意味BIO OUTDO(OUTを実行)
H.CRDO(FEE9H)
意味BIO CRDO(CRLFを実行)
H.DSKC(FEEEH)
意味BIO DSKCHI(ディスクの属性を入力)
H.DOGR(FEF3H)
意味GENGRP DOGRPH(グラフィック処理を実行)
H.PRGE(FEF8H)
意味BINTRP PRGEND(プログラム終了)
H.ERRP(FEFDH)
意味BINTRP ERRPRT(エラー表示)
H.ERRF(FF02H)
意味BINTRP
H.READ(FF07H)
意味BINTRP READY
H.MAIN(FF0CH)
意味BINTRP MAIN
H.DIRD(FF11H)
意味BINTRP DIRDO(ダイレクトステートメント実行)
H.FINI(FF16H)
意味BINTRP
H.FINE(FF1BH)
意味BINTRP
H.CRUN(FF20H)
意味BINTRP
H.CRUS(FF25H)
意味BINTRP
H.ISRE(FF2AH)
意味BINTRP
H.NTFN(FF2FH)
意味BINTRP
H.NOTR(FF34H)
意味BINTRP
H.SNGF(FF39H)
意味BINTRP
H.NEWS(FF3EH)
意味BINTRP
H.GONE(FF43H)
意味BINTRP
H.CHRG(FF48H)
意味BINTRP
H.RETU(FF4DH)
意味BINTRP
H.PRTF(FF52H)
意味BINTRP
H.COMP(FF57H)
意味BINTRP
H.FINP(FF5CH)
意味BINTRP
H.TRMN(FF61H)
意味BINTRP
H.FRME(FF66H)
意味BINTRP
H.NTPL(FF6BH)
意味BINTRP
H.EVAL(FF70H)
意味BINTRP
H.OKNO(FF75H)
意味BINTRP
H.FING(FF7AH)
意味BINTRP
H.ISMI(FF7FH)
意味BINTRP ISMID$(MID$かどうか)
H.WIDT(FF84H)
意味BINTRP WIDTHS(WIDTH)
H.LIST(FF89H)
意味BINTRP LIST
H.BUFL(FF8EH)
意味BINTRP BUFLIN(バッファライン)
H.FRQI(FF93H)
意味BINTRP FRQINT
H.SCNE(FF98H)
意味BINTRP
H.FRET(FF9DH)
意味BISTRS FRETMP
H.PTRG(FFA2H)
意味BIPTRG PTRGET(ポインタ取り出し)
使用目的省略値以外の変数を使用するため
H.PHYD(FFA7H)
意味MSXIO PHYDIO(物理ディスク入出力)
使用目的ディスク装置を接続するため
H.FORM(FFACH)
意味MSXIO FORMAT(ディスクをフォーマットする)
使用目的ディスク装置を接続するため
H.ERRO(FFB1H)
意味BINTRP ERROR
使用目的アプリケーション・プログラムのエラー処理
H.LPTO(FFB6H)
意味MSXIO LPTOUT(プリンタ出力)
使用目的省略値以外のプリンタを使うため
H.LPTS(FFBBH)
意味MSXIO LPTSTT(プリンタの状態)
使用目的省略値以外のプリンタを使うため
H.SCRE(FFC0H)
意味MSXSTS SCREEN文の入口
使用目的SCREEN文を拡張するため
H.PLAY(FFC5H)
意味MSXSTS PLAY文の入口
使用目的PLAY文を拡張するため

●拡張BIOS用

FCALL(FFCAH)
内容拡張BIOSが使用するフック
DISINT(FFCFH)
内容DOSが使用する
ENAINT(FFD4H)
内容DOSが使用する