2022-05-07 22:39 — asano
カテゴリー:
予告通り外したHN61256Pを読んでみた話です。
読むためにこのようなHN61256リーダを製作しました。
通常このようなマスクROMを読むときはピン互換のUV-EPROMとしてROMライタで読んでしまいます。シグネチャ機能を切り、書き込み動作を行わないよう注意すれば、まず問題はありません。
ピン互換なデバイスが見つからない時でも簡単な変換アダプタを作れば大抵読むことができます。
ところがこのHN61256はデータシートを確認するととんでもない仕様であることがわかりました。アドレス, CSからのアクセスタイムが最大3.5µs、CEからのアクセスタイムが最大3.0µsと通常のUV-EPROMに比べて一桁遅いのです。ROMライタのアクセスはポートの先でCPUバス接続程の速さはないとはいえ変換アダプタでこれを読めるかは何とも言えません。
それならタイミングを自由に設定できる専用リーダを作った方が確実というわけです。
マイコンにはATmega164を使いました。ゆっくりアクセスする以外はROMエミュレータでのSRAMアクセスと似たようなものなのでAT90S2313あたりでも十分なのですが、ラッチを付けたり配線が面倒になるのでピン数の多いものを選んでいます。
左の6ピンコネクタにTTL-232R-5Vを接続してPCのターミナルから操作します。
左上のトランジスタはROMの電源を切るためのもの、PCに接続したままROMを抜き挿しできるようにしています。
ピン数に余裕のあるマイコンを選定したのでROMとは1:1接続で済んでいます。
ソフトウェアはUniversal Monitorをベースに1バイトリードのルーチンをHN61256用に書きました。
これでHN61256PのC04を読んでみるとそれらしいデータが出てきたのでインテルHEX形式でPCに転送しました。GIMPで横8ドットの画像として開いてみると文字の片側半分のようです。
残りのC05~C07も同様に読みます。
次にこのデータを自作のPC-8001mk2エミュレータに喰わせてみました。漢字ROM対応のコードは以前書いたままROMデータが用意できず放置されていたものです。
まずは手動で試してみます。
cmd put@(320,100),kanji(&H3021)
ビットの向き(MSBが左かLSBが左か)や4つのROMの並び順などを現物合わせで修正すると、画面中央に「亜」が表示されました。
それではということでデモテープの「KANJI」を実行してみます。
半分くらい文字化けしていますね。
どうやらC05, C07に収容されている文字が化けているようです。
(つづく)
コメントを追加