Vol.789 14.Feb.2020

OCRソフトでダンプリストを読み取る PasoconMiniPC8001(6)〜データの記録・読込

O OCRソフトでダンプリストを読み取る

by fjk

 Bugfireさんお勧めのOCRソフトであるProgramListOCR(808Midwayさん)を使って、ダンプリストやBASICプログラムリストの取り込みを試みる。
 ProgramListOCRはOCRエンジンとしてTesseract、GUIフロントエンジンとしてgImageReaderを組み合わせ、さらに808Midwayさんが(PC6001-)BASICおよび16進ダンプをOCR学習させたもので、PCxx01系のBASICやダンプリストの読み込みが強化されている。
 ダウンロードしたProgramListOCRsetup.exeファイルをクリックするとインストールが開始される。その後、[スタート/PronramListOCR/gImageReader]を選択するとソフトが起動する。

【使い方(の一例)】
@ スキャン画像ファイルの画像をコピーし、PronramListOCRの画像表示画面にペーストする。
A 認識させたいエリアをマウスでドラッグして選択する。
B RecocnizeSelectionボタンをクリックすると、認識され、Output画面に認識結果が表示される。
C Outputをクリックするとファイルに認識結果を出力できる(レイアウトが乱れる?)。
* 画像エリア上でマウスの右クリックし、「clipboadに出力」を選んで認識させ、認識結果をエディタにペーストする方がレイアウトが乱れない(かも・・)。
ProgramListOCR起動画面

 最初は、マニュアルが詳しくなくチョット戸惑ったが、少し使ってみると、以外と簡単にダンプリストやBASICプログラムリストがほぼ正しく認識・取り込めた。さらに、画像補正や様々な設定が可能で、OCRで〈ダンプ)リストの取り込みツールとしては申し分ない(最良)。

ダンプリストの認識例 認識結果
BASICリストの認識例
(誤認識が幾つかあるが修正は容易)
DumpListEditorで修正中
[ダンプリスト]
(「8」を「B」と認識、1カ所)
DumpListEditorで修正中
[BASICリスト]
(改行位置、カタカナ、・・)
*さらに画像補正の実施や取り込み条件を変更すすれば、認識率が向上するかもしれない。


P PasoconMiniPC8001(6)〜データの記録・読込

by fjk

 PasoconminiPC8001では本物のPC8001と異なり、プリンタや外部メディアへの書き出しが行えないが、内蔵SDカードの疑似テープにのみ、データの記録・読み込みができる。なお、ファイルの形式は「シーケンシャルファイル」のみである。データーファイルを使用するには、

@ 使用するテープ・ファイル名は「f9」/「MEDIA」で設定する。
A 読み書きする変数名はデータ型および並びが一致している必要がある。
B シーケンシャルファイルの記録・読み込み時にはファイル名は不要である(指定できない)。
C 通常は上書きモード(OVERWRITE)となる。データを追加したいときはMEDIAのATTRIBでAPPENDに設定する。

 OVERWITEモードでは書込み後のPOSISIONは常に0%(先頭)となるが、APPENDモードでは常に100%(末尾)となる。テストプログラムを実行してみると判るように、OVERWITEモードでは常に新しいデータのみが記録され、APPENDモードを使うと入力データが順に記録される。
 データの読み込みは、OVERWITE時は常に「先頭」に設定しておく必要があり(「末尾」では読み込めない)、APPENDモード時はデータがあるだけ読み出しが可能である。しかし、テープが末尾の状態で読み出しを行うと、フリーズ状態(ずーっと読出中。エラーとならない)となる(STOPで解除できるが・・)。残念ながら、N-BASICではこの状態を見つけることができないようなので、注意が必要(MEDIAの画面には0%とか100%と表示されているのだが・・)。
 これに対応するには、以下の方法が考えられる。

@ あらかじめ決め(られ)たデータ数とする。
A ファイルの先頭にデータ数を記録し、その後にデータを順に記録する。
B 別のファイルにデータ数を記録しておく。
C 正常に読み込まれたデータ数を画面に表示し、フリーズした時はf9でPOSISTIONを先頭に戻すことで、フリーズを解除できる。そして、次回からは正しいデータ数まで読み出す。
D CMTプログラムを機械語で改良・強化する(I/O-1982.8など)。

※ ファイル読み出し時のフリーズはcloadコマンドでも起こるが、f9で再度ファイルを選択するとPOSISIONが0%に巻き戻され(Rewind)、読み込むことができる。データの読み出し時も同様で、f9で巻き戻しすと、フリーズが解除され、データの先頭から読み込みが継続される。
※ データとしてカンマなども使いたい場合はLINEINPUT文を利用し、文字入力データは「”」(ダブルクォーテーション)で囲んで入力しないと、読み込み時にエラーとなる。

10  ' Data File R/W Test
100 INPUT"1:load.2:save";K
110 ON K GOTO 200,300
120 GOTO 100
200 '-- datq load
210 INPUT#-1,A,B$
220 PRINT A,B$
230 GOTO 100
300 '-- data save
310 INPUT"Num,Str";C,D$
320 PRINT#-1,C,D$
330 GOTO 1000
10  ' Data File R/W Test(2)
100 INPUT"1:load.2:save";K
110 ON K GOTO 200,300
120 GOTO 100
200 '-- datq load
210 INPUT#-1,A,B$
220 PRINT A,B$
230 GOTO 100
300 '-- data save
310 INPUT"Num";C
320 LINEINPUT"Str? ";D$
330 PRINT#-1,C,D$
340 GOTO 100   
記録・読み出しテスト(1)
mashn1.cmt(zip)
記録・読み出しテスト(2)
mashn2.cmt(zip)
読み出し中にフリーズ POSISONを100→0%に 読み出しが継続された

●APPENDモードで書込み後(Position=100%)、データを読み出す場合は、f9でPositionを先頭に戻してから読み出すこと。

ATTRIBの設定 LINEINPUTで読み書き

● 書き込まれたデータはPCMフォルダーに記録され、windowsパソコンで見ることができる。
※ 【重要!】SDカードを挿入するとフォーマットメニュが出るが、絶対にフォーマットしないこと!!

PC8001のPCMフォルダー 秀丸エディッタで確認

★ セーブしたデータの1行毎に、ヘッダーとして6つの「9CH」と「20H」があるが、この部分をエディッタで(置換機能などを使って)消去すると、データのみが得られ、プリンタで印刷も可能である。この方法は、PasoconMiniPC8001から電子データとしてデータを取り出せるの方法の一つである。


OCRソフトでダンプリストを読み取る PasoconMiniPC8001(6)〜データの記録・読込