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でマシン語プログラミング」の章を参照して下さい。
入力完了

これで、マシン語のプログラムの入力は、完了です。


[戻る]