• 車種別
  • パーツ
  • 整備手帳
  • ブログ
  • みんカラ+

teteenlairのブログ一覧

2016年12月23日 イイね!

M88にプログラムをOCRで入力する その4

M88にプログラムをOCRで入力する その4

マシン語ダンプの入力方法はわかりました。
次はOCRで入力することを考えます。

手順はBASICと基本は同じです。
diskdrvには、マシン語の機能もあり、
cmd bload
cmd bsave
のコマンドが追加されています。

マシン語ダンプリストをOCRでテキストファイルにし、テキストをバイナリに変換して、cmd bloadコマンドでM88に取り込みます。

読取革命の設定は、BASICよりも文字種が限られるので、ユーザー定義で指定します。



BASICと同様、当時の斜線つき「0(ゼロ)」フォントが認識できないので、パターン認識や、右クリック候補で一括変換します。



「B」と「8」、「A」と「4」、「D」と「0」を誤認識することがあるので、最終的には目で見てチェックした方が良いようです。

テキストデータが出来上がったら、バイナリに変換するのですが、変換する前に必ずやらなければならないことがあります。

データの先頭に
 00 D0 xx Dy
を付け加えなければM88に取り込むことができません。

xxとyの数値は、バイナリの長さを表しているようです。
詳しくはわかりませんが、yが百の位で、xxが十と一の位のように見えます。
今回は720なので、
 00 D0 20 D7
となっていました。
(桁が増える場合は、0のところが数値に変わるのでしょうが、未確認です)

→※追記:確かめてみました
千の位になると、「Dy」のDが繰り上がるようです。
千の位が0123456789に対してDEF123456
例)1234→00 D0 34 E2

「xx y」の確かめ方ですが、M88から
cmd bsave "c:¥ファイル名.bin",&H開始アドレス,&H希望する長さ
と適当なファイルをWin上に作成し、出来上がったバイナリファイルをテキスト変換すると、先頭に付け加えられた例のデータを見ることができます。

バイナリ変換のフリーソフトは沢山あります。
今回は、「TxBinCnv」というフリーソフトを使わせていただきました。
(※追記:「テキストバイナリコンバータ3.00」という名前でした)
テキストからバイナリだけでなく、バイナリからテキストへの相互変換も簡単にできます。

あとは、出来上がったバイナリをdiskdrvでM88にロードするだけです。
バイナリをCドライブ直下に保存した場合、

cmd bload "c:¥ファイル名.bin" ,&H開始アドレス

でロードできます。
最後に、フロッピーディスクイメージにbsaveして完了です。

Posted at 2016/12/23 22:57:35 | コメント(0) | トラックバック(0) | パソコン/インターネット
2016年12月23日 イイね!

M88にプログラムをOCRで入力する その3

M88にプログラムをOCRで入力する その3その1、その2
のつづき

さて、BASICリストの部分は無事入力できました。
次の難関はマシン語ダンプリストの入力です。

当時はマシン語をやった記憶がありません。
アセンブラの本は買ったかな・・・?

とりあえず、マシン語ダンプ入力について調べてみてわかったこと。

「mon」でモニターモードに入る。
(ctrl + Aでモニターモードのコマンド一覧を見ることができる)

Dコマンド : アドレスの内容を表示
例)D000~D0a0の内容を表示する
  →「DD000,D0a0」

Sコマンド : アドレスに書き込む
例)D000から書き込む
  →「SD000」

D000 00-

と表示される。現在D000の内容は「00」。書き換えるデータを入力してスペースキーを押す

D000 00-CD 00-

次のアドレス(D001)の内容が表示されるので、続けて書き換えるデータを入力してスペースを押す(エンターキーで終了)。
繰り返していくと、11個目のD00BからD00Cで改行されるみたい。

D000 00-CD 00-46 00-D0 00-01 00-20 00-00 00-11 00-60 00-F2 00-21 00-31
D00C 00-

ちなみにASCIIのリストは8個目で改行しているので、非常に打ち込みにくいです。
入力ミス対策のために8個ごとにチェックサムがついていますが、使い方がわかりません。

Last5minutesのマシン語はサブルーチンなのでそれほど長くありません。
ちょっとだけ根性を出せば、地道に入力できることがわかりました。

入力が終了したら、エンターキーを押してSコマンドが終了します。
「cntl + b」で元のBASICに戻ることができます。

マシン語のセーブ方法は

 bsave "ファイル名",&H開始アドレス,&H長さ

のようです。
長さの部分は、バイト数?というのでしょうか。
Last5Minutesのマシン語サブルーチンであれば、D000~D2D0まであります。
「2D0」は10進数で「720」なので、
(&Hとついていながら10進数に直す必要があるのかわかりませんが、とりあえずこれでうまくいっています)

bsave "ファイル名",&HD000,&H720

でセーブ完了となります。
ここまでできるようになるまで、調べたり、試行錯誤で結構かかりました。
マニュアルレベルのことなんですが・・・。
これからダンプを入力するわけですが、やっぱりOCRでいきたいところです。

マシン語ダンプ入力については結構OCRの方法が検索で見つけられるのですが、意外にも8801でやっている記事が見つかりません。

仕方ないので、ここからも試行錯誤でいくことにします。

つづく
Posted at 2016/12/23 18:08:23 | コメント(0) | トラックバック(0) | パソコン/インターネット
2016年12月23日 イイね!

M88にプログラムをOCRで入力する その2

M88にプログラムをOCRで入力する その2その1
のつづき

あとは左のスキャン画像と、右の認識結果のテキストを比べて修正していきます。
「1」と「I」、「;」と「:」、「,」と「.」など、細かいところはやはり人が見ていかないといけません。

読取革命は、テキストの文字に対応するスキャン画像の文字にカーソルが当たるので、紙を見ながら入力するより格段に効率が良いと思います。
マシン語(あとでやりますが)と違ってBASICはOCRの認識率が低いため、直接打った方が早いという記事をよく見かけますが、疲労度が全く違うと思います。


修正が終わったら、テキストファイルとして保存します。


前述しましたが、高確率で「GOTO」「TO」「OR」のオーがゼロと認識されているのを見逃しているので、ここで検索・置換で一括修正します。
改行を修正し、分割して作ったファイルをくっつけて1つのファイルにします。
最後に拡張子を「bas」に変更しておきます。

なお、テキストファイルをM88に渡す場合、半角カナはいけますが、N88BASIC特有のグラフィック文字はWindowsで入力しようもないので、後でM88上で直接入力することにします。

さて、Win上のファイルをM88で読み込むためには、「dskdrv」というツールを使います。
dskdrvをM88に適用すると、「M88 Disk I/O Extention」と表示され、
 cmd load
 cmd save
というコマンドが使えるようになります。

使い方は、
「 cmd load "C:¥ファイル名.bas" 」
といった感じで、Win上のファイルをM88にBASICファイルとしてロードできます。
取り込むことができたら、M88上でフロッピーディスクイメージにセーブして完了です。

次の難関、グラフィック文字ですが、これは大変でした。
まず、M88でのGraphキーがAltにあたることはわかりました(「キーによるメニュー起動を抑制に設定」する必要があります)。
各種グラフィック文字のキー配列を調べましたが、見つけられなかったので、片っぱしからキーを押してみて紙にメモしました。
テンキーにも罫線のグラフィック文字が割り振られていることを忘れてはいけません。

問題は、M88ではテンキーの「=」が無いということでした。
テンキー「=」には罫線グラフィック文字の縦線が割り振られており、Last5Minutesでは頻繁に出てきます。
これに関しては、別の8801エミュであるPC88Winがテンキー「=」に対応していたので、一時的にそっちで打ち込んで解決しました。

そして、最大のヤマ場である、このページ。
一面がグラフィック文字で埋め尽くされています。
黒い四角が何個並んでいるのか、全くわかりません・・・。



当時、どうやって入力したのか覚えていませんが、多分定規で線をひいてマス目を書いて数えたような気がします。
まあ、船の形が表示されるデータなので、いい加減に入力しても実行上問題はないのですが、せっかくなのできちんと入力したいところです。

そこで、当時にはありえなかったテクを導入します。
(OCRの時点でありえないですけど)



「6100」が沢山並んでいますが、Windowsペイント上で、6100(なんでも良いのですが)の4文字を切り取って片っぱしから貼り付けて並べました。
これを比較対照にすることで、何文字分に相当するか数えることができました。

あとはマシン語サブルーチンのダンプリストの入力が残っています。
考えてみたら、マシン語ダンプって入力した記憶がありません。
当時はもしかしたら、入力ツールを使った可能性があります。
今はそのツールもありません。
薄い記憶では、「mon」と入力すると、マシン語モニターモードに入れるということくらい。
さて、どうしたら良いものか・・・。

つづく
Posted at 2016/12/23 11:52:18 | コメント(0) | トラックバック(0) | パソコン/インターネット
2016年12月22日 イイね!

M88にプログラムをOCRで入力する その1

M88にプログラムをOCRで入力する その1

昔、持っていたパソコン雑誌。
「月刊アスキー1984年11月号」
を手に入れました。

ちょっとした思い出というか、思い入れがある号で、ずっと探していたのですが、記憶があいまいで、電波新聞社の「月刊マイコン」と間違っていたので、どうりで見つからなかったわけです。

そして、掲載のプログラムリスト「Last5Minutes」!
当時、8801FHがあった友達の家に行って、2人でひたすらリスト打ちました。


なつかしい・・・。
このゲームもタイトルの記憶があいまいで、「ミッドウェー海戦」だと思っていました。なおさら見つからないわけですね。

しかし、BASICのリストが結構長いので、あの頃の「タダでゲームができる」という熱意が皆無の状態で打ち込むのはもう無理です。
そこで、OCRを使ってM88に入力しました。
ところが、これがかなり苦戦し、やり方も非常に面倒なので、記録しておかないと絶対忘れます。
備忘録として残しておきます。

まずスキャナでページを読み取り、JPEGで保存します。
スキャナの生データは斜めになっていたり、文字がぼけています。


「Scan Taior」というフリーソフトを使うと、自動でまっすぐにして、白黒に変換できます。



今回使ったOCRソフトは、プリンターに付属してきた「読み取り革命Lite」です。
いろいろ調べた結果、これが一番よく認識できるようです。

読み取る文字の種類は限られているので、できるだけ認識率を上げるように、このように設定しました。





あと、効果があるかわかりませんが、単語辞書にBASICコマンドをなるべく多く登録しました。


さて、文字認識をさせてみて、問題がいくつかありました。


1.当時の「ゼロ(0)」に斜線が入っているフォントをゼロと認識できない。
2.アスタリスク(*)はなぜか絶対認識しない。
3.「GOTO」「TO」が、結構な確率で「GOT0」「T0」(ティーゼロ)と認識される。

問題はもっとありますが、必ず出た誤認識はこの3つです。

1については、パターン辞書の機能を使うといくらか認識できるようです。
また、認識候補が複数ある場合は、グレーに網掛けされるので、右クリックすると候補一覧が表示されます。
そこで希望の文字を選択すると、ほかの部分も一括で変更するか聞いてくるので、ゼロに関してはこの機能でほとんどいけました。

2については、結局方法が見つからず、手打ちで直しました。

3については、辞書登録しているにもかかわらず、うまく認識させられる方法はありませんでした。手修正するにも、意外と「TO」と「T0」の判別が難しく、見逃しが多数ありました。
結局、テキスト変換した後で、検索・置換で一括修正すると良いようです。

つづく

Posted at 2016/12/23 00:36:45 | コメント(0) | トラックバック(0) | パソコン/インターネット
2016年12月09日 イイね!

パワーFCセッティング2

パワーFCセッティング235エアフロに替えてから、ノックレベルが高くなったため、P-FCのマップをいじっています。
https://minkara.carview.co.jp/userid/483232/blog/38797079/

一応、補正したことでノッキングが出なくなったのですが、冬になったら、ちょっと踏んだだけでまたノッキング警告が出るようになりました。

以前も冬になると同じような傾向があったのですが、気温が低いせいくらいに思っていました。
確かに冬はオーバークールになるため、水温が70度くらいにしか上がりません。
これはこれでなんとかしないといけないのですが・・・。

しかし今日、あることに気付きました。
スタッドレスタイヤです。
タイヤのグリップ具合によって読むマップが変わるのではないかと。

というわけで、もう一度高速道路でマップトレーサーを確認してみます。



スタッドレスではこの辺りのマップを読んでいるようです。

一方、ノーマルタイヤを履いているときのマップトレーサーは、

この辺りを読んでいます。

なるほど、確かにスタッドレスタイヤにしたことで、全体的に左側に寄っています。
というわけで、この辺のマップを補正して、ノックレベルを低くしました。

一口にノックレベルを下げるといっても、点火時期を遅らせるか、燃料を濃くするかがありますが、これまでの浅い経験では、燃料で対応するにはかなり増やさないといけないので、ほとんど点火時期で調整しています。
少しマージンをとって燃料もわずかに濃くしたりしています。
正しいやり方はわかりませんが、これで様子をみていきます。
Posted at 2016/12/09 23:07:41 | コメント(0) | トラックバック(0) | クルマ

プロフィール

「32GT-R復活できるかまだわかりませんが、ちょっと振り返ってみた http://cvw.jp/b/483232/47253787/
何シテル?   10/01 20:57
東北で32GT-Rに乗っています。 最近は錆の対応に追われています。 錆びない車が欲しいです・・・(;´Д`) よろしくお願いします。 Youtub...
みんカラ新規会員登録

ユーザー内検索

<< 2016/12 >>

    123
45678 910
11121314151617
18192021 22 2324
25262728293031

リンク・クリップ

32よ、冬は乗らなそうですな・・・ 
カテゴリ:その他(カテゴリ未設定)
2020/02/10 13:37:00
BNR32シフトブーツ枠補修(プラリペアな一日) 
カテゴリ:その他(カテゴリ未設定)
2019/10/10 15:13:23
思い出の撮影地2 
カテゴリ:その他(カテゴリ未設定)
2019/02/02 00:12:32

愛車一覧

日産 スカイラインGT‐R 日産 スカイラインGT‐R
日産 スカイラインGT‐Rに乗っています。 主な仕様は、ノーマルエンジン、34タービン ...
日産 ティーダ 日産 ティーダ
初期型ティーダです。 ホイールとローダウン以外はノーマルです。 内装と広さが気に入ってい ...
トヨタ カローラレビン トヨタ カローラレビン
初めて自分名義で買った中古車です。前期BZ-G SSサス。最初はノーマルでしたが、ボメッ ...
マツダ デミオ マツダ デミオ
奥さんの車です。ティーダからの乗り換えです。かっこよく仕上げたいものです!

過去のブログ

2023年
01月02月03月04月05月06月
07月08月09月10月11月12月
2022年
01月02月03月04月05月06月
07月08月09月10月11月12月
2021年
01月02月03月04月05月06月
07月08月09月10月11月12月
2020年
01月02月03月04月05月06月
07月08月09月10月11月12月
2019年
01月02月03月04月05月06月
07月08月09月10月11月12月
2018年
01月02月03月04月05月06月
07月08月09月10月11月12月
2017年
01月02月03月04月05月06月
07月08月09月10月11月12月
2016年
01月02月03月04月05月06月
07月08月09月10月11月12月
2015年
01月02月03月04月05月06月
07月08月09月10月11月12月
2014年
01月02月03月04月05月06月
07月08月09月10月11月12月
2013年
01月02月03月04月05月06月
07月08月09月10月11月12月
ヘルプ利用規約サイトマップ
© LY Corporation