MSX BASIC メモリマップ

MSX BASIC動作時のメモリマップは下記のようになっています。

0000


BIOS ROM
8000


未使用RAM32KB以上の場合はこの領域は存在しない。(TXTTAB)が8001を示す。
32KB未満の場合は、ここはRAM未アサインになる。
(BOTTOM)
(TXTTAB)


プログラム格納領域(TXTTAB)=(BOTTOM)+1
この領域の先頭byteは常に00が格納される。
(VARTAB)


単純変数格納領域単純変数を代入したときに確保される。
(ARYTAB)


配列変数格納領域単純変数を確保すると移動する。
つまり配列変数を確保したあとに単純変数を確保すると配列変数領域の全ムーブが発生する。
配列変数は参照しただけでも確保される。
(STREND)


未使用変数が確保されるたびに移動する。
BLOAD,Sでバッファとして使われる。
SP

(STKTOP)
スタック

(FRETOP)
未使用文字列変数内容格納領域この領域はCLEAR命令の第一パラメータで指定した大きさになる。

(MEMSIZ)
使用済


不明(常に1byte)
(FILTAB)


ファイルバッファこの領域の大きさは(MAXFILES+1)*267
(HIMEM)


ユーザーエリア(HIMEM)はCLEAR命令の第二パラメータと同じ値になる。
BASIC起動直後はこの領域は存在しない。



Disk BASIC ワークエリアこの領域の先頭アドレスは、DiskBASIC起動直後は(HIMEM)と等しい。DiskBASICがない場合、この領域は存在しないため起動直後は(HIMEM)=F380となる。
この領域の先頭アドレスを明示的に保存してるワークエリアは存在しないが、DOS1Kernelの場合は(F378)と同じ値になる。
これは正しくはBLOAD/BSAVEハンドラの先頭アドレスなので意味合いは異なる。
(HIMSAV)


Disk KERNEL ワークエリアここはMSX-DOS(1/2)環境でもそのまま残る。
DiskBASICがない場合、この領域は存在しない。
F380

FFFF
MSX BASIC ワークエリア


感想、要望、バグ報告、その他何かありましたら、メールもしくは掲示板にてご連絡ください。
裕之  
ホームに戻る