メモリダンプを作ってみた!
なにはともあれメモリの中身を見てみたい!
…という事で、恒例?のメモリダンプを作ってみた。
このダンププログラムの特徴は、リアルタイムにメモリを表示してくれるところにある。メモリの内容に変化があると、それを即時に見る事が出来るのだ。
これは何を意味しているのかと言えば、例えばタイマー割り込みで値が変わるワークだったり、キー入力が入ると値を保存するワークなどが簡単に見つけられる。
これらのワークアドレスをメモっておき、のちに解析を進める上での足がかりとするのだ!
現状ではバンクメモリ等は分かってないので、単純に表示するだけのもの(^^;
ワークエリアは探せても、データ領域は探しづらい状態だ。
でも、ちょっとずつ拡張していけばいーのだ!
プログラムを作ってみて…
このプログラムはLSC C-86試食版で開発をした。
私は普段はMac使いなので、開発にはDOSBoxを利用した。
Macで編集、DOSBoxでmake、そしてそのままDOSBox上でテスト。
出来たモノをMac→OmniBook→PD-7000と経由しながら持って行く。
途中、OnmiBookでのテスト実行も忘れないw
プログラムは、MS-DOS準拠を意識して作っている限りは、特に困る事はない。
標準ライブラリが使用出来るのでとっても便利!
普段、この手のプログラムを作る際にはほとんど全てを手作りする必要があるため、新鮮。
テキストの表示位置指定は、エスケープシーケンスの座標指定を利用した。
PD-7000にANSI.SYSが組み込まれていないのが気になってたけど、普通に解釈してくれたw
PD-7000で実行してみたら、表示速度がとても遅くて話にならなかった。まるで文豪のような速度……汗 仕方ないので、内部で簡単な機種判定を行い、PD-7000で動かした時のみVRAMへ直接キャラクタドットを書き込むようにした。このおかげで100倍速くらいになった気がする!
あとは8ビット時代にお世話になった、変わった部分のみを書き替える手法なども使ったおかげで、まぁまぁ見える速度で動くようになった。
この先は……
とりあえずプログラムが動かせるようになったPD-7000。
でも…まだ全然使えてません。
別のタイミングで手に入れた、PD-7000の設定用ファイル作成プログラムも反映出来てないままですし、CPU速度すら切り替えられてない。
解析よりも前に「使ってみる」すら満足に出来てないイメージ(^^;;
でも今は遊んでみたいから、HC-40の時に表示させたタロットを表示させてみようかなー…。
楽しい悩みが尽きません!(^-^)
それではまた次回!(^o^)ノ