読者です 読者をやめる 読者になる 読者になる

プチコンで遊ぼう! (はてなブログ版)

任天堂3DSのプチコンで遊ぼう! [twitter:@eida_s]

はてなダイアリーから移行しました。 はてなダイアリーのURLを開いても自動的にこちらにリダイレクトされますのでご了承ください。

バイナリデータ入力プログラムBEDIT

↓こんなような昔の雑誌のチェックサムダンプリストを入力する目的でバイナリエディタを作ってみました。

↓こんな感じです。

以前、16進データ入力プログラムとして「MON」というプログラムを作っていましたが、16×16バイトを1画面で表示できること、とか、その上でアドレス、チェックサムもスクロールせずに確認できる、とか、複数の入力方法に対応する等の理想の高いプログラムとして作成していたため、製作途中で放置されていました。

今回、PITMANのデータ部分を移植するため、昔の8×16バイダンプを入力するためのプログラムとして急遽作ったものです。
MONのデータ入力部分の一部を移植していたりとか、かなりのやっつけで作ったためにラベルに統一感がないなど、ソースは汚いです。

プログラムの特徴としては、MONゆずりのABXYとLRのコンビネーション入力で、これのおかげでDSi本体をほとんど見ずに入力が可能となっています。
MONはIM切り替えできるようにしていましたが、本作のBEDITでは、MONでいう入力方式(3)の片手入力のみ対応です。

説明は以下の通りです。

【データの保存方式】
GRPのページ1に、1バイトを1ピクセルとして記録していきます。
左上(0,0)の座標点が、アドレス&H0000を表します。

【操作方法】
起動時:

  • START ADDRESS 画面に最初に表示するアドレス位置を16進数で入力します。
  • DISP ADDRESS OFFSET 実際のアドレスからの表示オフセットを16進数で入力します。これは、プチコンGRPが256×192バイト=48キロバイトであり&HBFFFまでしかアドレスを割り当てられないのに対し、昔のZ80マシンの多くが64キロバイトのRAMを搭載しておりマシン語領域は&HC000以降に確保されることが多かったための対応です。(ダンプリストと表示しているアドレスがちがうとチェックしがたいため)
  • INPUT 4/8BIT バイトの下位4ビットだけを入力するか、上位も含めた8ビットで入力するかで、4か8を入力します。

画面:

  • 左端がアドレス、続いて8バイトの16進データ、最後にその行のチェックサム、となっています。
  • SUM:と書かれている行は、縦のチェックサムです。
  • スクロールではなく、128バイト毎のページ切り替えとなります。
  • 青地の箇所がカーソルで、現在の入力位置を示します。

操作方法:

  • 十字キーでカーソル移動。
  • 画面上下にカーソルがはみだすと、上下のページに移動します。
  • また、Lキーを押しながら上下でもページ送りができます。
  • 入力は、ABXYとLRキーのコンビネーションで0〜Fを入力します。
  • B Y X A の順に 0 1 2 3 と割り当てられており、Lキーと一緒を押すと 4 5 6 7、Rキーと一緒に押すと 8 9 A B、L・Rキー同時押しと一緒に押すと C D E F を入力できます。
  • 慣れると画面を見ずにかなり高速に入力可能です。
  • STARTキーを押すとメニュー画面になり、GRPのロード、セーブを行うことができます。


QRコードは以下です。