SORD M68のBOOT ROMの解析はいよいよ煮詰まってきました。残るのは意味不明なポートに0とか1とかヒントになりそうにない値を入れたりしているところばかりで、これ以上、紙と画面を見て推測するのは私の能力的に無理がありそうです。
そこで、現状分かっている段階でFDD上にモニタプログラムのようなものを載せて、実際にポートに対して値を出し入れして、検証することにしました。
BOOT ROMの解析によって、SORD M68は起動時にFDD#0のトラック1のサイド0のセクタ1~8までの2kbだけを0x0番地へロードすることが分かっています。なので、できれば2kbで動くモニタがあれば良いのですが、すぐには見当たりません。そこでコンパクトかつ十分な機能を持つUniversal Monitor | Electrelicをターゲットにして、まずは使用しないであろう機能をオミットした機能限定バージョンを作り起動できるか検証しました。
シリアル関係のセットアップでは、CTCがSIOのボーレートジェネレーターになっていますが、CTCはすでにBOOT ROMで初期化されているのでなにもしません。ただし、SIOの初期パラメータは現在の一般的な設定とは異なっている(ストップビット2)ので、ストップビット1、パリティなしに変更します。これで9600bpsで接続できました。
機能を限定したUniversal Monitorをアセンブルして出来上がったバイナリファイルをL3DiskExを使ってFDDイメージのトラック1、サイド0、セクタ1からインポートします。今回、使用する機能として、Dump、Go、LOAD、Outputコマンドを残しました。これで1647バイトだったので、7セクタ分書き込みました。出来上がったFDDイメージファイルをFlashFloppy化したGOTEKに入れて起動すると、以下のような画面が出て、機能限定バージョンですがUniversal Monitorの起動に成功しました。今後は、不明なポートに対して値を入力して、動作を検証していきます。