Nの世界
【 スキャナーを利用したマシン語の入力方法 】
●はじめに
マシン語の入力といえば、真っ先に頭に浮かぶのは、I/O、Pioに掲載されていたプログラムの入力が
頭に浮かぶのですが、残念ながら、Pio1冊しか手元に無い現状では、そちらをサンプルとした
検証は出来ません。(昔、あるプログラムを入力したものの1年以上してバグFixした例もあるので、
新規に入力するのは非常に勇気が…。)
ベーマガ上でも、ごく稀にマシン語のダンプリストが載っている場合があるので、今回は、そちらを
ターゲッドにスキャナーを利用したマシン語方法を説明したいと思います。
今回は、「Mr.Noricの世界」にあった秀丸を利用した「入力支援マクロ」と「Vector」にある「HEX2BIN」を
利用して、スキャナーからマシン語を入力する方法を説明します。
※「入力支援マクロ」は、秀丸本体と同じフォルダに入れておいて下さい。
※「OCRex」(「Burnout!」の「Develop」コーナーにあります)を利用して入力する方法もあるようですが、
ベーマガの場合、年代毎にフォントが違う為、向いていない気がします。
PioやI/Oなら、逆に市販OCRより特化したこのソフトの方が向いている気はしますが…。
●入力方法
M88+diskdrv+市販OCRソフトで入力する事を前提で説明します。
1.スキャナーから取込んだダンプデータ画像の内、実データ部分(チェックサムやヘッダは除く)を
認識範囲として指定します。(OCRソフト上)
※下の例の場合、水色で反転している個所が対象です。(青色の"1"で隠れている部分は2Aです。)
2.OCRソフトで認識した文字の内、明らかに誤っているものを可能な限り修正します。
(この辺は、OCRソフトによって、手順が大きく異なるので省略します。)
認識を終了したテキストデータの例は、下の画像を参照して下さい。
3.認識したテキストデータを秀丸で開き、「マクロ」->「マクロの実行」より、「hex_replace.mac」を
実行します。
実行すると、余計なスペースが削除されます。
4.同じように、「hex_check.mac」を実行します。
実行すると、0〜9,A〜Fまで以外の文字があれば、そこにカーソルが飛びます。
この例の場合、1行目の小文字のlに飛んでいます。
このマクロを実行を繰り返して、誤って認識した文字を全て修正します。
※ちなみに、「byte_fix.mac」は、「hex_check.mac」さえ実行すれば、実行しなくても大丈夫です。
(音声認識機能を使う場合は話が変わりますが…。)
5.diskdrvで認識出来るようにヘッダ部分を追加します。
※詳細は、「diskdrvでマシン語プログラミング」の章を参照して下さい。
6.HEX2BINを使用して、テキストからバイナリデータに変換します。
<変換手順>
(1) MS−DOSプロンプト上で以下のコマンドを入力します。
hex2bin 入力ファイル名 出力ファイル名
Ex) hex2bin kumo.txt kumo.bin
(2) 変換に成功すると、以下のようなメッセージが表示されます。
尚、変換元データに改行コードが含まれていても、問題無くバイナリデータに変換する事が出来ます。
7.最後に、エミュレータ上に作成したプログラムを読込みます。
※詳細は、「diskdrvでマシン語プログラミング」の章を参照して下さい。
これで、マシン語のプログラムの入力は、完了です。