ワークエリア


BIOS コールBDOS コール (MSX-DOS ファンクションコール) と共に
使用する事が多いです。
あえて 1 ページに短くまとめて、
ページ検索で目的のルーチンを見つけられるようにしています。


MAIN-ROM システム変数

ワークエリア外ですが、このページに含めました。

  • 0004,2 CGTABL ROM にある MSX キャラクターセットの基本番地 
  • 0006,1 VDP.DR VDP 読み込み時 ポート 0 のアドレス
  • 0007,1 VDP.DW VDP 書き込み時 ポート 0 のアドレス
  • 002B,1 キャラクターセット・日時フォーマット・ビデオ信号の種別
    bit 0~3 キャラクターセット 0000=日本 0001=世界 010=韓国
    bit 4~6 日時フォーマット 000=Y-M-D 001=M-D-Y 010=D-M-Y
    bit 7 ビデオ信号 0=60MHz 1=50MHz
  • 002C,1 キーボード・ BASIC の種別
    bit 0~3 キーボードの種類
     0000=日本 0001=世界 0010=フランス AZERTY
     0011=イギリス 0100=ドイツ DIN
    bit 4~6 BASIC の種別 0000=日本語 0001=世界
  • 002D,1 MSX のバージョン 0=MSX1 1=MSX2 2=MSX2+ 3=MSX turbo R
  • 002E,1 MSX-MIDI
    bit 0 MSX-MIDI 0=存在しない 1=存在する (MSX turbo R のみ有効)
  • 002F,1 予備
  • 0034,4 漢字 BASIC 関連
    漢字 BASIC が含まれている場合、
    BASIC の起動時に (F30FH,4) へコピーされます。

002B~002C の値は必ずしも一致しているわけではない事が分かっています。
例えばキャラクターセットが 0001=世界 の場合でも
いくつかのキャラクターが存在し、
一部日本・日本語の値を出力する海外の MSX も存在します。

 

漢字 BASIC 関連

漢字 BASIC がある場合に有効です。

  • F30F,4 BASIC 起動時に (0034,4) からコピーされます。

Disk BASIC 関連

ディスクがある場合に有効です。

  • F323,2 DISKVE ディスクエラー処理ルーチンの番地
  • F325,2 BREAKV CTRL+C 処置ルーチンの番地
  • F341,1 RAMAD0 ページ 0 RAM スロットアドレス
  • F342,1 RAMAD1 ページ 1 RAM スロットアドレス
  • F343,1 RAMAD2 ページ 2 RAM スロットアドレス
  • F344,1 RAMAD3 ページ 3 RAM スロットアドレス
  • F348,1 MASTERS マスターカートリッジ スロットアドレス

スロット間読み・書き・呼び出しサブルーチン

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

USR マシン語プログラム開始アドレス

  • F39AH,20 USRTAB DEF USR による開始番地
     F39A,2 DEF USR0 F3FC,2 DEF USR1 F3FE,2 DEF USR2
     F3A0,2 DEF USR3 F3A2,2 DEF USR4 F3A4,2 DEF USR5
     F3A6,2 DEF USR6 F3F8,2 DEF USR7 F3FA,2 DEF USR8
     F3Fc,2 DEF USR9
    初期値は FCERR(475AH) になっていて、
    エラールーチンへ飛ぶようになっています。

テキスト画面

  • F3AEH,1 LINL40 SCREEN 0 の WIDTH
  • F3AFH,1 LINL32 SCREEN 1 の WIDTH
  • F3B0H,1 LINLEN 現在画面の横幅(WIDTH で設定)
  • F3B1H,1 CRTCNT 現在画面の縦幅
  • F3B2H,1 CLMLST PRINT で , があった時の横座標

SCREEN 0 の初期化

  • F3B3H,2 TXTNAM SCREEN 0 パターンネームテーブル(BASE(0))
    初期値 0000H
  • F3B5H,2 TXTCOL 未使用(BASE(1))
  • F3B7H,2 TXTCGP SCREEN 0 パターンジェネレータテーブル(BASE(2))
    初期値 0800H
  • F3B9H,2 TXTATR 未使用(BASE(3))
  • F3BBH,2 TXTPAT 未使用(BASE(4))

SCREEN 1 の初期化

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

SCREEN 2 の初期化

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

SCREEN 3 の初期化

  • F3D1H,2 MLTNAM SCREEN 3 パターンネームテーブル(BASE(15))
    初期値 0800H
  • F3D3H,2 MLTCOL 未使用(BASE(16))
  • F3D5H,2 MLTCGP SCREEN 3パターンジェネレータテーブル(BASE(17))
    初期値 0000H
  • F3D7H,2 MLTATR SCREEN 3 スプライトアトリビュートテーブル(BASE(18))
    初期値 1B00H
  • F3D9H,2 MLTPAT SCREEN 3 スプライト・ジェネレータ・テーブル
    (BASE(19))初期値 3800H

その他画面設定

  • F3DBH,1 CLIKSW キークリック 0=OFF 0≠ON 初期値 1(SCREEN で設定)
  • F3DCH,1 CSRY カーソル Y 座標 一番上は 1
  • F3DDH,1 CSRX カーソル X 座標 一番左は 1
  • F3DEH,1 CNSDFG ファンクション表示 0=ON 0≠OFF

VDP レジスタ

  • F3DFH,1 RG0SAV VDP レジスタ #0 の値(VDP(0))
  • F3E0H,1 RG1SAV VDP レジスタ #1 の値(VDP(1))
  • F3E1H,1 RG2SAV VDP レジスタ #2 の値(VDP(2))
  • F3E2H,1 RG3SAV VDP レジスタ #3 の値(VDP(3))
  • F3E3H,1 RG4SAV VDP レジスタ #4 の値(VDP(4))
  • F3E4H,1 RG5SAV VDP レジスタ #5 の値(VDP(5))
  • F3E5H,1 RG6SAV VDP レジスタ #6 の値(VDP(6))
  • F3E6H,1 RG7SAV VDP レジスタ #7 の値(VDP(7))
  • F3E7H,1 STATFL VDP ステータスの値(VDP(8))
    MSX 2 以降は VDP ステータスレジスタ 0 の値
  • F3E8H,1 TRGFLG ジョイスティックトリガーの状態 
    0=押されている 1=押されていない bit 0=SPACE キー
    bit 4=ポート 1・A ボタン bit 5=ポート 1・B ボタン
    bit 6=ポート 2・A ボタン bit 7=ポート 2・B ボタン
  • F3E9H,1 FORCLR 前景色(COLOR で設定)
  • F3EAH,1 BAKCLR 背景色(COLOR で設定)
  • F3EBH,1 BDRCLR 周辺色(COLOR で設定)
  • F3ECH,3 MAXUPD CIRCLE が使用
  • F3EFH,3 MINUPD CIRCLE が使用
  • F3F2H,1 ATRBYT グラフィックの COLOR コード

PLAY の作業領域

  • F3F3H,2 QUEUES キューテーブル(PLAY が使用)
  • F3F5H,1 FRCNEW CLOAD のフラグ 0=CLOAD FFH=CLOAD?

キー入力の作業領域

  • F3F6H,1 SCNCNT キースキャン時間間隔
  • F3F7H,1 REPCNT オートリピート開始時間
  • F3F8H,2 PUTPNT キーバッファ書き込み番地
  • F3FAH,2 GETPNT キーバッファ読み込み番地

カセットのパラメータ

  • F3FCH,10 CS120 1200・2400 ボーの値
  • F406H,2 LOW 現在のボーレート bit 0(SCREEN で設定)
  • F408H,2 HIGH 現在のボーレート bit 1(SCREEN で設定)
  • F40AH,1 HEADER 現在のボーレ0ートヘッダセット(SCREEN で設定)
  • F40BH,2 ASPCT1 256/アスペクト比(SCREEN で設定、CIRCLE が使用)
  • F40DH,2 ASPCT2 256*アスペクト比(SCREEN で設定、CIRCLE が使用)
  • F40FH,5 ENDPRG プログラムの終わり(RESUME NEXT が使用)

BASIC 内部で使用

  • F414H,1 ERRFLG エラーコード
  • F415H,1 LPTPOS プリンタのヘッド位置
  • F416H,1 PRTFLG プリンタへの出力
  • F417H,1 NTMSXP プリンタの種別 0=MSX 用 0≠MSX 用ではない汎用
  • F418H,1 RAWPRT 0 ならコード変換してプリンタへ出力
  • F419H,2 VLZADR VAL で置き換えられる文字のアドレス
  • F41BH,1 VLZDAT VAL で 0 に置き換える文字
  • F41CH,2 CURLIN BASIC で実行中の行番号
  • F41FH,318 KBUF クランチバッファ
    BUF (F55EH) から中間言語に変換されて入る
  • F55DH,1 BUFMIN "," (INPUT が使用)
  • F55EH,256 BUF 入力文字をコードで入れるバッファ
  • F562H,15 ビットブロック転送の領域として使用
  • F660H,1 ENDBUF バッファの終了コード
  • F661H,1 TTYPOS 仮想カーソル位置
  • F662H,1 DIMFLG 配列変数と単純変数との区別フラグ
  • F663H,1 VALTYP 変数の型
  • F664H,1 OPRTYP 演算子を保存 または クランチ用フラグ
  • F665H,1 DONUM クランチ用フラグ
  • F666H,2 CONTXT テキストポインタの保存(CHRGET が使用)
  • F668H,1 CONSAV 定数トークンの保存(CHRGET が使用)
  • F669H,1 CONTYP 保存定数の種類
  • F66AH,8 CONLO 保存定数の値
  • F672H,2 MEMSIZ BASIC 使用メモリ最上位番地
  • F674H,2 STKTOP スタックが使用可能な最上位番地(CLEAR で設定)
  • F676H,2 TXTTAB BASIC テキストエリア先頭番地
  • F678H,2 TEMPPT テンポラリディスクリプタ 空きエリアの先頭番地
  • F67AH,30 TEMPST NUMTEMP の領域
  • F698H,3 DSCTMP 文字列関数
  • F69BH,2 FRETOP 文字列領域空きエリア先頭番地
  • F69DH,2 TEMP3 ガベージコレクション用 または USR が使用
  • F69FH,2 TEMP8 ガベージコレクション用
  • F6A1H,2 ENDFOR FOR の次番地
  • F6A3H,2 DATLIN DATA の行番号
  • F6A5H,1 SUBFLG 配列使用時のフラグ
  • F6A6H,1 FLGINP フラグ(INPUT・READ が使用)
  • F6A7H,2 TEMP ステートメントコード用一時保存
  • F6A9H,1 PTRFLG 変換する行番号
  • F6AAH,1 AUTFLG AUTO が有効の時は 0 以外
  • F6ABH,2 AUTLIN AUTO で入力した最新行番号
  • F6ADH,2 AUTINC AUTO 行番号の増分
  • F6AFH,2 SAVTXT RESUME 復帰のテキスト番地
  • F6B1H,2 SAVSTK エラー回復ルーチン保存
  • F6B3H,2 ERRLIN エラー行番号
  • F6B5H,2 DOT 現在行
  • F6B7H,2 ERRTXT エラー行番号
  • F6B9H,2 ONELIN エラー発生時の飛び先行番号
  • F6BBH,1 ONEFLG エラー割り込みルーチン実行中は 1
  • F6BCH,2 TEMP2 一時保存用
  • F6BEH,2 OLDLIN CTRL+STOP・END・STOP の旧行番号
  • F6C0H,2 OLDTXT 次に実行するテキストの番地
  • F6C2H,2 VARTAB 単純変数の開始番地
  • F6C4H,2 ARYTAB 配列テーブルの開始番地
  • F6C6H,2 STREND BASIC がテキスト等で使用しているメモリ最後番地
  • F6C8H,2 DATPTR READ で読まれたデータのテキスト番地
  • F6CAH,26 DEFTBL 変数デフォルトの型

DEF FN で使用

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

Math-Pack で使用

  • F7C5H,43 FBUFFR Math-pack 一時保存場所
  • F7F0H,2 DECTMP 10 進数→浮動小数点数変換で使用
  • F7F2H,2 DECTM2 除算で使用
  • F7F4H,1 DECCNT 除算で使用
  • F7F6H,16 DAC 演算対象の値
  • F806H,48 HOLD8 10 進数乗算のレジスタ保存
  • F836H,8 HOLD2 Math-Pack が内部で使用
  • F83EH,8 HOLD Math-Pack が内部で使用
  • F847H,16 ARG DAC との演算対象となる値を設定
  • F857H,8 RNDX 最後に使用した乱数(RND が設定)

BASIC インタプリタのデータ領域

  • F85FH,1 MAXFIL ファイル番号の最大値(MAXFILES が設定)
  • F860H,2 FILTAB ファイルデータの先頭番地
  • F862H,2 NULBUF バッファのポインタ(SAVE・LOAD が使用)
  • F864H,2 PTRFIL 指定ファイルのファイルデータのある位置
  • F866H,0 RUNFLG 0≠読み込んだ後に実行(LOAD,R で使用)
  • F866H,11 FILNAM ファイル名の保存
  • F871H,11 FILNM2 ファイル名の保存
  • F87CH,1 NLONLY 0≠プログラムが読み込まれている
  • F87DH,2 SAVEND マシン語プログラム最終番地(BSAVE が使用)
  • F87FH,160 FNKSTR ファンクションキー設定文字列(KEY などで設定)
  • F91FH,3 CGPNT ROM 上のフォント格納先スロット・番地
  • F922H,2 NAMBAS 現在のパターンネームテーブルのベース番地
  • F924H,2 CGPBAS 現在のパターンジェネレータテーブルのベース番地
  • F926H,2 PATBAS 現在のスプライトジェネレータテーブルのベース番地
  • F928H,2 ATRBAS 現在のスプライトアトリビュートテーブルのベース番地
  • F92AH,2 CLOC グラフィックルーチンが内部で使用
  • F92CH,1 CMASK グラフィックルーチンが内部で使用
  • F92DH,2 MINDEL グラフィックルーチンが内部で使用
  • F92FH,2 MAXDELグラフィックルーチンが内部で使用

CIRCLE のデータ領域

  • F931H,2 ASPECT 円の縦横比
  • F933H,2 CENCNT CIRCLE が使用
  • F935H,1 CLINEF 線が中心に向かって引かれているか
  • F936H,2 CNPNTS 線画する場所
  • F938H,1 CPLOTF CIRCLE が使用
  • F939H,2 CPCNT 円÷8 の数
  • F93BH,2 CPNCNT8 CIRCLE が使用
  • F93DH,2 CPCSUM CIRCLE が使用
  • F93FH,2 CSTCNT CIRCLE が使用
  • F941H,1 CSCLXY x・y のスケール
  • F942H,2 CSAVEA ADVGRP の予約領域
  • F944H,1 CSAVEM ADVGRP の予約領域
  • F945H,2 CXOFF 中心からの x オフセット値
  • F947H, 2 CYOFF 中心からの y オフセット値

PAINT のデータ領域

  • F949H,1 LOHMSK PAINT が使用
  • F94AH,1 LOHDIR PAINT が使用
  • F94BH,2 LOHADR PAINT が使用
  • F94DH,2 LOHCNT PAINT が使用
  • F94FH,2 SKPCNT スキップカウント
  • F951H,2 MIVCNT 動作カウント
  • F953H,1 PDIREC 線画の方向
  • F954H,1 LFPROG PAINT が使用
  • F955H,1 RTPROG PAINT が使用

PLAY のデータ領域

  • F956H,2 MCLTAB マクロテーブルの先頭(PLAY・DRAW が使用) 
  • F958H,1 MCLFLG PLAY・DRAW が使用
  • F959H,24 QUETAB キューテーブル、4キュー×6バイト
  • F971H,4 QUEBAK BCKQ で使用
  • F975H,128 VOICAQ 音声 1 のキュー
  • F9F5H,128 VOICBQ 音声 2 のキュー
  • FA75H,128 VOICCQ 音声 3 のキュー

MSX2 で追加された領域

  • FAF5H,1 DPPAGE ディスプレイページ番号
  • FAF6H,1 ACPAGE アクティブページ番号
  • FAF7H,1 AVCSAV AV コントロールポートの保存
  • FAF8H,1 EXBRSA SUB-ROM スロットアドレス
  • FAF9H,1 CHRCNT ローマ字カナ変換の文字数カウント
  • FAFAH,2 ROMA ローマ字カナ変換の入力文字バッファ
  • FAFCH,1 MODE ローマ字カナ変換モード、VRAM サイズ
    bit1~2 VRAM サイズ 00=16k 01=64k 10=128k
    bit3 VRAM 4000H 毎のマスク 1=有効 0=無効 
  • FAFDH,1 NORUSE 漢字ドライバが使用
  • FAFEH,2 XSAVE ライトペン bit0~7 X 座標 bit15=割り込み時に 1
  • FB00H,2 YSAVE ライトペン bit0~7 Y 座標
  • FB02H,1 LOGOPR ロジカルオペレーションコード

RS-232C のデータ領域

  • FB03H,50 RSTMP RS-232C・ディスクのワークエリア
  • FB03H,1 TOCNT RS-232C が使用
  • FB04H,2 RSFCB RS-232C のアドレス
  • FB06H,5 RSIQLN RS-232C が使用
  • FB07H,5 MEXBIH スロット呼び出し
  • FB0CH,5 OLDSTT スロット呼び出し
  • FB12H,5 OLDINT スロット呼び出し
  • FB17H,1 DEVNUM RS-232C が使用
  • FB18H,3 DATCNT RS-232C が使用
  • FB18H,1 ERRORS RS-232C が使用
  • FB1CH,1 FLAGS RS-232C が使用
  • FB1DH,1 ESTBLS RS-232C が使用
  • FB1EH,1 COMMSK RS-232C が使用
  • FB1FH,1 LSTCOM RS-232C が使用
  • FB20H,1 LSTMOD RS-232C が使用

MSX-DOS のデータ領域

  • FB21H,8 DRVTBL ディスク ROM スロットに接続されたドライブの数
  • FB29H,11 MSX-DOS が使用

PLAY のデータ領域

  • FB35H,1 PRSCNT bit0~1 ストリングパルス bit7=0 1 パス
  • FB36H,2 SAVSP ポインターの保存(PLAY が使用)
  • FB38H,1 VOICEN 現在の音声
  • FB39H,2 SAVVOL 一時停止時の音量を保存
  • FB3BH,1 MCLLEN PLAY が使用
  • FB3CH,1 MCLPTR PLAY が使用
  • FB3EH,1 QUEUEN PLAY が使用
  • FC3FH,1 MUSICF 音楽再生時のフラグ
  • FB40H,1 PLYCNT キューに入っている数

音声データ

  • FB41H,37 VCBA 音声 0 データ
  • FB66H,37 VCBB 音声 1 データ
  • FB8BH,37 VCBC 音声 2 データ

データ領域

  • FBB0H,1 ENSTOP [SHIFT]+CTRL]+[かな] のウォームスタート 0=無効 0≠有効
  • FBB1H,1 BASROM BASIC テキストの場所 0=RAM または ROM 内
  • FBB2H,24 LINTTB ラインターミナルテーブル 画面各行の情報を保存
  • FBCAH,2 FSTPOS 行最初の文字位置(INLIN (00B1H) が使用)
  • FBCCH,1 CODSAV カーソルに重なっている文字を保存
  • FBCDH,1 FNKSWI KEY ON で表示されているキー 1=F1~F5 0=F6~F10
  • FBCEH,10 FNKFLG ON KEY GOSUB の状態
  • FBD8H,1 ONGSBF TRPTBL (FC4CH) の待機イベント発生確認フラグ
  • FBD9H,1 CLIKFL キークリッククラグ
  • FBDAH,11 OLDKEY キーマトリクスの状態 (旧)
  • FBE5H,11 NEWKEY キーマトリクスの状態 (新)
  • FBF0H,40 KEYBUF キーコードバッファ
  • FC18H,40 LINWRK スクリーンハンドラが使用
  • FC40H,8 PATWRK パターンコンバータが使用
  • FC48H,2 BOTTOM 搭載 RAM の先頭アドレス
  • FC4AH,2 HIMEM 使用可能なメモリの最大アドレス(CLEAR で設定)
  • FC4CH,78 TRPTBL ON ~ GOSUB の状態
  • FC9AH,1 RTYCNT BASIC が使用
  • FC9BH,1 INTFLG [CTRL]+[STOP] が押された場合の停止動作 03H=停止
  • FC9CH,1 PADY パドルの Y 座標
  • FC9DH,1 PADX パドルの X 座標
  • FC9EH,2 JIFFY TIME の値(PLAY が使用)
  • FCA0H,2 INTVAL ON INTERVAL GOSUB の間隔
  • FCA2H,2 INTCNT ON INTERVAL GOSUB のカウント
  • FCA4H,1 LOWLIM カセットテープの読み込みで使用
  • FCA5H,1 WINWID カセットテープの読み込みで使用
  • FCA6H,1 GRPHED グラフィック文字の送出 1=グラフィック文字 0=通常文字
  • FCA7H,1 ESCCNT エスケープシーケンス (ESC) コードのカウント
  • FCA8H,1 INSFLG 挿入モード 0=上書き 1=挿入
  • FCA9H,1 CSRSW カーソルスイッチ 0=非表示 0≠表示(LOCATE で設定)
  • FCAAH,1 CSTYLE カーソル形状 0=█ 0≠▄
  • FCABH,1 cAPST CAPS キーの状態 0=OFF 1=ON
  • FCACH,1 KANAST かなキーの状態 0=OFF 1=ON
  • FCADH,1 KANAMD かな配列 0=50 音配列 0以外=JIS 配列
  • FCAEH,1 FLBMEM 0=BASIC プログラムが読まれている
  • FCAFH,1 SCRMOD スクリーンモード番号(SCREEN で設定)
  • FCB0H,1 OLDSCR スクリーンモード予約領域
  • FCB1H,1 CASPRV 文字予約領域(CAS: が使用)
  • FCB2H,1 BRDATR 境界色 (PAINT で設定)
  • FCB3H,2 GXPOS X 座標
  • FCB5H,2 GYPOS Y 座標
  • FCB7H,2 GRPACX グラフィックアキュムレータ X 座標
  • FCB9H,2 GRPACY グラフィックアキュムレータ Y 座標
  • FCBBH,1:DRWFLG フラグ(DRAW が使用)
  • FCBCH,1 DRWSCL 倍率 0=線画していない 0≠線画中 (DRAW が使用)
  • FCBDH,1 DRWANG 角度 (DRAW が使用)
  • FCBEH,1 RUNBNF BLOAD・BSAVE の進行中かを表すフラグ
  • FCBFH,2 SAVENT 開始番地(BSAVE が使用)
  • FCC1H,4 EXPTBL 拡張スロットのフラグテーブル
  • FCC5H,4 SLTTBL 各拡張スロットレジスタでの現在のスロット選択状態
  • FCC9H.64 SLTATR 各スロット用の予約属性
  • FD09H,128 SLTWRK 各スロットに割り当てる特定の作業領域
  • FD89H,16 PROCNM 展開された名前(CALL の後)・拡張装置(OPEN の後)
  • FD99H,1 DEVICE カートリッジデバイスが使用

フック

特定処理で CALL されています。
ここにサブルーチンを挟んで特定の処理を追加・割り込みさせる事ができます。
複数のサブルーチンが使用している可能性があるため、
本来フックにあった処理をサブルーチン内で CALL する必要があります。

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

拡張 BIOS 呼び出しプログラム

  • FFCAH,5 FCALL 拡張 BIOS がフックに使用
  • FFCFH,5 DISINT MSX-DOS が使用
  • FFD4H,5 ENAINT MSX-DOS が使用

VDP レジスタ(V9938・V9958)

VDP(8) は VDP ステータスレジスタ 0 の値として使われているため、
VDP(9) 以降は VDP(9)=VDP レジスタ #8 …… VDP(28)=VDP レジスタ #27 と
一つずつずれている事にご注意下さい。

  • FFE7H,1 RG8SAV VDP レジスタ #8 の値(VDP(9))
  • FFE8H,1 RG9SAV VDP レジスタ #9 の値(VDP(10))
  • FFE9H,1 RG10SAV VDP レジスタ #10 の値(VDP(11))
  • FFEAH,1 RG11SAV VDP レジスタ #11 の値(VDP(12))
  • FFEBH,1 RG12SAV VDP レジスタ #12 の値(VDP(13))
  • FFECH,1 RG13SAV VDP レジスタ #13 の値(VDP(14))
  • FFEDH,1 RG14SAV VDPレジスタ #14 の値(VDP(15))
  • FFEEH,1 RG15SAV VDPレジスタ #15 の値(VDP(16))
  • FFEFH,1 RG16SAV VDPレジスタ #16 の値(VDP(17))
  • FFF0H,1 RG17SAV VDPレジスタ #17 の値(VDP(18))
  • FFF1H,1 RG18SAV VDPレジスタ #18 の値(VDP(19))
  • FFF2H,1 RG19SAV VDPレジスタ #19 の値(VDP(20))
  • FFF3H,1 RG20SAV VDPレジスタ #20 の値(VDP(21))
  • FFF4H,1 RG21SAV VDPレジスタ #21 の値(VDP(22))
  • FFF5H,1 RG22SAV VDPレジスタ #22 の値(VDP(23))
  • FFF6H,1 RG23SAV VDPレジスタ #23 の値(VDP(24))
  • FFF7H,2 メイン RAM スロット番地
  • FFF8H,1 RG25SAV VDPレジスタ #25 の値 (VDP(26))
  • FFF9H,1 RG26SAV VDPレジスタ #26 の値 (VDP(27))
  • FFFAH,1 RG27SAV VDPレジスタ #27 の値 (VDP(28))
  • FFFBH,2 システム予約

拡張スロット選択レジスタ

  • FFFCH,1 拡張スロット選択レジスタ