16進ダンプ入力ツールを作った!

16進ダンプリスト、入力してますか?(^-^)

 

私は気圧の変化による頭痛がひどい時や、仕事で必要となった時に入力してる(^^;

何も考えない状態(無心)で打ち込みたい時や、逆に集中したい時とかにも入力したくなるw

今回、気圧の低い日が頻繁にあって集中出来ない期間があったため、ちょこちょこダンプリストを入力しては気を紛らわせていた。

 

そんな時、もっと効率の良い入力環境を作りたいなぁ……なんて思ってしまった!(^-^)

思ってしまったならば作るしかないだろう!w

 

今までのダンプ入力事情

今までも手入力でダンプリストを打ち込む環境を手元に用意してあった。

↑こんな感じのテキストを用意しておいて、コンバートするだけの簡単な環境。

 

バイナリに変換するツールはPythonで書いてあり、バイナリ化とチェックサムを計算するだけのごくごく簡単なもの。

 

このPythonツール自体は2017年11月頃作ったもので、当時開発をしていたFM-7エミュレータでテスト用のプログラムを準備するために用意した。

この当時、手元にバイナリデータを打ち込む環境が無くて、当時のプログラムを入力するのはどうしたらいいんだ??となったのがきっかけだ。

FM-8活用研究に掲載されていたギャラクシアンを打ち込んだのが最初だった!(^^)

 

テキストデータで打ち込むようにしたのは、単純に整形する際の利便性のよさと、OCRした後のテキストを簡単に扱えるようにしたかったためだ。

 

そしてギャラクシアンOCRを利用してデータを作成していた。

タブレットで写真を撮る

OCRでテキスト化

・テキストをダンプ形式に整形

・誤字を修正

チェックサム確認→修正を繰り返す

・256バイト終了

 

……入力する手間は無かったけれど、全体的な時間はかえって掛かったイメージ。

16進数ダンプ専用のOCRとかあったら認識率上がりそうだけど、(当時の感じでは)使いにくいかもなーって印象だった。

 

試しにダンプリストを手入力してみる事にした!(^-^)

テンキーをA〜Fに変換するプログラムもないけれど(そもそもうちのMacにはテンキーがない…)、フルキーで打ち込んだらどのくらいの速度になるんだろうか??

当時、256バイトを打ち込むのに約10分掛かった記憶がある。1ブロック10分、1時間で6ブロック打ち込める!みたいな感じで気合を入れていた記憶が蘇る(^^;;

 

そしたら…今フルキーでタッチタイピングすれば、256バイトを2〜3分で入力出来た!

考えてみればテンキーをA〜Fに割り当てて打ち込んだとしても、効率の良い片手打ちだ。

タッチタイピングすれば両手で高速に打ち込むことが出来る。

そりゃそうか!(^-^)

コレ以降、OCRに頼らずに手入力をするようになった!

 

↑昔は書籍を広げてカセットテープのレーベルをあてがう感じで入力をしていたが、今の時代にこれをやると広げ続ける本が傷んでしまう(T-T)

 

↑そこでダンプリストを写真に撮るようにした。

これで本の痛みは最小限に済む!

さらにガイドとなるものはダンボールを切り貼りして手作りした!

しっかりと固定して置けるので両手が空き、タッチタイプが可能となった!(^-^)

 

便利な入力ツールが欲しい

「自分が使う」を大前提として、使いやすいツールが欲しい!

ダンプリストを入力するたびに、そんな事を思うようになった。

 

不満のひとつに、アドレスを自動発生させる機能がない事があった。

ダンプを入力するたびにアドレスを手で書いてたのだ。

これは効率が悪い上に間違いが起こる。

さらにADRSSumなどの雛形を自分でコピーしたテキストを作らねばならず、ダンプを打ち込む際の面倒事項となっていた。

 

今の感じだとOCRを試すこともしばらくは無いだろう。

そうなると手入力を大前提に使いやすいツールが欲しい!(^-^)

 

昔、Oh!FMだったと思うけど、FM-7で動くとても使いやすい入力ツールがあった。

フルスクリーンでダンプ入力が可能であり、しかも入力していくとチェックサムがリアルタイムに表示される!

そんな感じのツールが手元にあると良い!(^-^)

 

なんとなく想像で以下のような仕様を考えてみた!

 256バイトのブロックを表示

 チェックサムはリアルタイムに更新される

 カーソル移動はEmacs準拠

 入力部分が拡大表示される

 セーブされるファイルは常に64KBのRawファイル

 

テキストベースで画面構成も考えてみる。

 

ふむ、こんな感じで入力できるのならば画面は80x25固定でも良さそう。

1980年代風の入力ツールでいいじゃん!(^-^)

拡大表示するためにはフォントを変えるかドットで打つか…。

せっかくなのでSDL対応してグラフィックで描いちゃう!

よし、そうなったらフォントはPC-9801だよなー!

……って感じでだんだんとワル乗りしてきたww

 

最初に作ったのがコレ。画面構成はほぼそのまま作っている。

拡大表示はカーソルを中心として前後を見えるようにしてみた。

この状態で16進数を打ち込むと、チェックサムがリアルタイムに更新される!

 

その後、アスキー文字領域にもカーソルを表示してみたり……

入力対象となっているラインにアンダーラインを引いてみたり…

 

背景を淡い青にしてみたり…と改良を重ねてみた!

 

SDL対応なのでMacだけでなくWindowsLinuxでも動くはずだ。

ポメラDM250に入れておけば、旅先でダンプリストを入力しちゃう事だって可能!

電子辞書Brainに入れておけば、授業中のヒマな時間にダンプ入力出来る!

おお、意外に使えそう!(使う人は限られるが…)

 

使い方のクセが強すぎるため(だってカーソル移動がEmacs準拠よ?)配布する予定はないけれども、使ってみたーい!という話が多数上がるようであれば公開も考えていきたい。

何度も書くけど、高機能ではない(^^;;

セーブ(CTRL-X + CTRL-S)されたファイルは64KBのRawデータなので、独自でデータ加工のプログラムが書けない人にはお手上げツールなのだ(^-^;;

 

おわりに

昔から自分の環境は自分で作りたい派の人だったけれど、まさかこの時代にダンプ入力ツールを作るとは思ってなかったw

でもいいね、自分環境!

もっともっと整えていきたいと感じた!(^-^)

 

ではまた次回!(^-^)ノ