3Dダンジョンロールプレイングゲーム第43回目です。
メモリマップ改訂したので掲載しておきます。
(赤字が前回からの変更箇所)
各種データエリアを&HE800→&H9B00へ。
マシン語エリアを少し縮小し&HC000~&HDFFF→&HD9FFに。
メッセージエリアを&HE100→&HDA00へ。
今のところ、変数エリア(&HE000~&HE100)は壊れないようです。
アドレス | データ名 | 備考 |
9B00〜9CB4 | アイテムデータエリア | 23種類×19バイト=437バイト |
9D00〜9D4D | 魔法データエリア | 6種類×13バイト=78バイト |
9E00〜9EAF | 敵データエリア | 8種類×22バイト=176バイト |
9F00〜9FE7 | レベルアップデータエリア | 29レベル×8バイト=232バイト |
A000〜A1B8 | 2Dマップデータ | 21マス×21マス=441バイト |
A200〜A7FF | 壁キャラクタデータ | 15パターン、1,536バイト |
A800〜ABFF | BGMデータ | 3曲?(ダンジョン、店屋、戦闘)1,024バイト |
AC00〜AFFF | システムメッセージデータエリア | 1,024バイト |
B000〜B7FF | フォントキャラクタデータ | 256キャラ×縦8バイト=2,048バイト |
B800〜BFFF | フォントカラーデータ | 256キャラ×縦8バイト=2,048バイト |
C000〜D9FF | マシン語エリア | 6,655バイト |
DA00〜DFFF | メッセージデータエリア | 1,536バイト |
E000〜E0FF | 変数エリア | 256バイト |
EF00〜EFFF | メニュー表示用ワークエリア | 256バイト |
本気でカツカツですね!
折角広げたマシン語エリアが、また狭くなったのが痛いですね…。
メッセージエリアも文字列はちゃんと保存されるのに、制御bフ「0」、「1」、「2」が壊れてしまい、発生して欲しいイベントと、全く異なるイベントが発生してしまったり、同じ接触イベントなのに1回目と2回目で違うイベントが発生したりする。
壊れる領域と壊れない領域の差って何なんだろう…?
因みにこれも&HE100→&HDA00へ移動したら直りました…。
また、&HE500付近を書き換えるとフロッピーディスクが壊れるようです。
DISK-BASICの詳細記事何処かにないかなぁ…。
バカなのでテクハンだけじゃ解らないです…。