文豪ミニ5でプログラミング! その3

何もプログラミングしてないけどこのタイトルでいいんだろうか…汗

f:id:PocketGriffon:20210313145012j:plain

現状のご報告的な感じで書いていってみようと思う。

 

 

基本、目的を達成したいためだけに調べているので、詳しい事は解析していない(^^;

だってこんな巨大なROMを持つマシンを全解析なんて絶対に無理(^^;;;

 

独自プログラムからMS-DOSフォーマットのフロッピーディスクをアクセスする方法が分かったので、それを利用してROMのデータを解析してる(この1行を実現するためにどのくらい苦労してるのかを理解してもらえれば…w)

 

とりあえずは初期化部分を調べていけば必要なポートとかわかるかも…と思いつつ、ブート部分から見ていってる。

アセンブラは8086に対応したものを作成してあったが、V33特有の命令(というか80186で追加された命令)も出てきているので、随時追加対応していってる。

 

その結果、バンク切り替えで表に出る大量のメモリ(主にROM)が見つかった。

HDDを積んでいるマシンなので、てっきりROMサイズは小さいかと思っていたが巨大だった。おそらくフォントなどの動作速度に直結するデータはROMに入ってるんだろう…。展開するRAM積むよりもROMの方が安いって事情もあるのかも?

 

f:id:PocketGriffon:20210313151036j:plain

そういえばアウトラインフォントのROMカードも持っているので、こちらもどっかのタイミングで中を見てみたい。データだけ見てもイマイチかも知んないけどw

ROMの中には「……デバッガーが埋まってる?」と思うような文字列が入ってたりするので、解析楽しそう(^-^) 少なくともメモリマップや逆アセンブラの機能は含まれていそうと分かった。BIOSのラベルまで入ってるのはどーなのかとw

 

ブート周りを解析してみて分かったのは、CP/Mが起動するプログラムが本当に無いって事。実は隠しコマンドとかで入ってるのかなーと思ったけれども、コードそのものが無かったw

CP/M自体はROMに積まれてるっぽいので、起動する仕組みを作ってみたいね!

 

f:id:PocketGriffon:20210313172552j:plain

「点」を打つ機能が見つかったので、なんとなく遊んでみたw

LSI C-86(試食版)でも浮動小数点の計算は出来る!それなりに速いかなぁ…と思ったけれども、「点」を打つファンクションが激重で、描いてる点が見える(^^;;

 

なんて感じで脱線もしつつ解析は進めてるよ!

うーん、文豪エミュレータ作った方が解析早いかなぁ(良からぬことを…

 

ではまた次回!(^-^)ノ