2022/10/16(日) [n年前の日記]
#1 [pc][mz][z80] Program List OCRを試用
大昔のPC雑誌には、プログラムがダンプリストの形で掲載されていたわけだけど。とある雑誌の誌面を眺めていたら、そこに掲載されてるプログラムが気になってきた。ちょっと動作確認してみたい。しかし、今時ダンプリストを手打ちするなんて、あまりにもナンセンスだよな…。
ちなみに、ダンプリストと言うのは、16進数の文字列がずらずらと並んだリストのこと。1行に、アドレス、データ(8byte や 16byteが多い)、チェックサムが並んでいるもの。
さておき、ダンプリスト入力を OCRでどうにかしてる事例はないのだろうかとググったところ、Program List OCR というOCRソフトの存在を知った。
_ダウンロードのページ: 808 Midway
_eighttails/ProgramListOCR: OCR suite specialized for printed program listing (BASIC and HEX)
_Program List OCR 1.0.0リリース!: 808 Midway
_Program List OCRができるまで: 808 Midway
_雑誌掲載リストの打ち込みを攻略? - レトロゲーム攻略
_OCRソフトでダンプリストを読み取る
オープンソースのOCRエンジン Tesseract と、GUIラッパー gImageReader、加えて、ダンプリストの文字認識に特化した学習データで作られているらしい。なんだか良さそう。興味が湧いたので試用してみた。環境は Windows10 x64 21H2。
ProgramListOCRSetup-64bit-1.7.2.exe を入手。実行してインストール。今回は D:\Prog\ProgramListOCR\ にインストールしてみた。
かなり高い精度で読み取ってくれた。素晴らしい…。もちろん、元画像が曲がっていたり、変形しちゃったりしていると、読み取りに失敗するけれど、ダンプリストを手打ちするより圧倒的に楽だなと…。
ちなみに、ダンプリストと言うのは、16進数の文字列がずらずらと並んだリストのこと。1行に、アドレス、データ(8byte や 16byteが多い)、チェックサムが並んでいるもの。
さておき、ダンプリスト入力を OCRでどうにかしてる事例はないのだろうかとググったところ、Program List OCR というOCRソフトの存在を知った。
_ダウンロードのページ: 808 Midway
_eighttails/ProgramListOCR: OCR suite specialized for printed program listing (BASIC and HEX)
_Program List OCR 1.0.0リリース!: 808 Midway
_Program List OCRができるまで: 808 Midway
_雑誌掲載リストの打ち込みを攻略? - レトロゲーム攻略
_OCRソフトでダンプリストを読み取る
オープンソースのOCRエンジン Tesseract と、GUIラッパー gImageReader、加えて、ダンプリストの文字認識に特化した学習データで作られているらしい。なんだか良さそう。興味が湧いたので試用してみた。環境は Windows10 x64 21H2。
ProgramListOCRSetup-64bit-1.7.2.exe を入手。実行してインストール。今回は D:\Prog\ProgramListOCR\ にインストールしてみた。
- 実行するとウインドウが開く。
- 左のほうの「画像を追加」アイコンをクリックして、認識させたい画像を追加。今回は300dpiの画像を読み込んでみた。
- 上のほうにある「画像コントロール」アイコンをクリックして、明るさやコントラストを調整。
- 読み取りたい領域をマウスドラッグで指定。
- 上のほうの旗っぽいアイコンをクリックして、「hex」を選択。「hex」が、ダンプリストに特化した言語データらしい。
- 「選択範囲を読み取り」アイコンをクリック。これで読み取りが実行される。
かなり高い精度で読み取ってくれた。素晴らしい…。もちろん、元画像が曲がっていたり、変形しちゃったりしていると、読み取りに失敗するけれど、ダンプリストを手打ちするより圧倒的に楽だなと…。
◎ DumpListEditorを試用。 :
得られたダンプリスト相当のテキストに対して、チェックサムと照らし合わせて読み取りに失敗した部分を探したい。
前述の Program List OCR と組み合わせて、DumpListEditor というツールが利用されてる場合が多いらしいので、これも試用してみた。
_ダンプリスト入力用のツール(DumpListEditor) - PC-8001を懐かしむページ
DumpListEditorVer058.zip を入手して解凍。DumpListEditor.exe を実行すると起動する。
上のほうでレトロPCの機種名を選んで、「マシン語入力」タブで、ダンプリストの形式を選ぶ。昔は雑誌毎にダンプリストのフォーマットが違っていたのだけど、そのあたりも網羅してるらしい。
「マシン語入力」タブのエディタウインドウ内に、ダンプリスト相当のテキストを貼り付けて、左上の「チェック」ボタンをクリック。チェックサムと合ってない部分が色付け表示された。これは圧倒的に分かりやすい…。
MZ-700エミュレータ等で使える .mzt を出力することもできる模様。至れり尽くせり。素晴らしい。
前述の Program List OCR と組み合わせて、DumpListEditor というツールが利用されてる場合が多いらしいので、これも試用してみた。
_ダンプリスト入力用のツール(DumpListEditor) - PC-8001を懐かしむページ
DumpListEditorVer058.zip を入手して解凍。DumpListEditor.exe を実行すると起動する。
上のほうでレトロPCの機種名を選んで、「マシン語入力」タブで、ダンプリストの形式を選ぶ。昔は雑誌毎にダンプリストのフォーマットが違っていたのだけど、そのあたりも網羅してるらしい。
「マシン語入力」タブのエディタウインドウ内に、ダンプリスト相当のテキストを貼り付けて、左上の「チェック」ボタンをクリック。チェックサムと合ってない部分が色付け表示された。これは圧倒的に分かりやすい…。
MZ-700エミュレータ等で使える .mzt を出力することもできる模様。至れり尽くせり。素晴らしい。
◎ 動作確認。 :
前述のツール群を使って、とあるプログラムのダンプリストをバイナリにして、エミュレータで動かせるところまで持っていけるか試してみた。
出力した .mzt を、MZ-700エミュレータ EmuZ-700 に読み込ませて、画面が出るところまでは確認できた。カセットテープを利用することが前提なら、大丈夫そうだなと…。
しかし、X1エミュレータや、EmuZ-2200 で動かすことができない。ロードが終わると画面がピンク色になったり、フリーズした感じになる。もしかすると、BASICやS-OS上からプログラムをロードする場合と違って、電源ON直後からいきなりバイナリを読み込んで動かすためには、実機と一緒についてきた何かが必要になるのかもしれない。一応自分も、大昔、X1turboを使ってた身ではあるのだけど、当時のことはほとんど忘れてしまっている…。
出力した .mzt を、MZ-700エミュレータ EmuZ-700 に読み込ませて、画面が出るところまでは確認できた。カセットテープを利用することが前提なら、大丈夫そうだなと…。
しかし、X1エミュレータや、EmuZ-2200 で動かすことができない。ロードが終わると画面がピンク色になったり、フリーズした感じになる。もしかすると、BASICやS-OS上からプログラムをロードする場合と違って、電源ON直後からいきなりバイナリを読み込んで動かすためには、実機と一緒についてきた何かが必要になるのかもしれない。一応自分も、大昔、X1turboを使ってた身ではあるのだけど、当時のことはほとんど忘れてしまっている…。
[ ツッコむ ]
以上です。