タイトルは「HC-20」となってるけれども、実際にはHX-20ね!
中身は同じ???
それも含めて調べていこうと思う!
今、手元にあるHC-20系でまともに通信が出来るのがHX-20しか無いという事情。
いつかHC-20のバッテリーがちゃんと動くようになったら、HC-20に切り替えようと思う。
解析第一歩!
何かプログラムを作ってみたいなぁ…と思った時にどうしても必要なのが解析。
別に手元にある資料を見ながら開発してもいーんだけど、やっぱりブラックボックスは得意じゃない。細かいところまで調べなくても良いけど、調べられる手段は用意したい!
というわけで、まずはROMの中身を拝見してみよう!
例のごとく、HX-20にメモリの内容をPEEKしてRS-232C経由でホストマシンへ送り込むプログラムを作る。せっかくなのでホスト側でBASICプログラムも作ってみた。
プログラムは手動RENUMだけど、数行程度のプログラムなのでキニシナーイ。
転送速度はまだ見極めをしていない&確実に送れる速度が良いって事で、300bpsで送る事に。この速度だと64KBすべてを送るために相当な時間がかかってしまうため、いくつかに分割して送る事にした。それでも心配だったので行の先頭にアドレスを入れ、行の最後に2桁のチェックサムを入れ…ってやってたら、なんだかIntelHEX形式っぽくなったw
なんのかんので6時間くらい掛けてメモリの内容をホストマシンへ転送した!
受け取ったテキストをバイナリに変換して……よし!これでROM情報が手に入った!(^^)
逆アセンブルしてみる!
手に入れたROMデータを逆アセンブルしてみよう。
そのためにHC-88の時に開発し、JR-800の時に改良をした逆アセンブラを利用する。HC-20用に特化する必要は無いと思ってるけど、実はまだ足りない部分がある。
まだすべてのニーモニックに対応していなくて、HC-88とJR-800で使われていなかった命令は未サポートのままだw 作ったメーカー、人によって命令コードの使い方に偏りがあるようで、見てて面白い(^-^) コードのクセを見るのも楽しみのひとつだ!(暗い??)
案の定、未対応コードが出てきたので、今はその対応を続けている。
トラブル発生!
……のは良いんだけど…なぜかせっかく作ったRS-232Cコネクタが動かなくなってしまった!
HX-20側に受信する事は出来るけれど、HX-20→ホストへの送信が全く出来なくなった。
うーん…ROMの転送をするときはちゃんと動いてたのに…orz
そういえばHC-80の時にも受信は出来るけど送信が出来ないって事があった。確かあの時はプルダウン抵抗というものを入れる事で解決したんだった…。
今回は直結しているだけで抵抗を入れていない。これが原因かも???
とりあえずHX-20側での受信は問題なく出来ているので、当面はこのままになりそう。
いつかちゃんと直さねば…(T-T)
番外編
こっそり書いておくけど、時間があるときを見ながらHD61700エミュレータを開発中!
いつかPB-1000に取り組む時のために準備しておかねば(^-^)
ではまた次回!(^-^)ノ