第1版第10刷
APPENDIX.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)
●PLAY文が使用するデータエリア
- PRSCNT(FB35H, 1)
- 内容 DOSが使用する
(以下はMSX1と共通)
内容 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(FC3FH, 1)
- 内容 音楽演奏用の割り込みフラグ
- PLYCNT(FB40H, 1)
- 内容 キューに格納されているPLAY文の数
●音声スタティックデータエリアからの変位
- METREX(+0, 2)
- (変位は10進数)
内容 タイマカウントダウン
- 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が使用する