Last Updated on 2021年3月28日 by kabekin
ACIAレベルでは使用可能になっていたL3用のASSIST09モニタですがSNIさんの協力で
L3のコンソール対応になりました^^
ASSIST09からL3のROMサブルーチンが使用できなかったのはDPに0をセットしてからサブルーチンを呼び出して使い終わったら元に戻す処理をしていないことが原因でした^^;;;
レベル3の拡張ROM領域$8000~$9FFFに配置してIC2のROMソケットに実装を予定していましたが
このエリアはDISKBASIC使用時には重なってしまうので、とりあえずはDISKBASIC優先でマッピング
しています。
実装したコマンドは基本コマンド+FILL, TRANSFERです。
L3の機械語モニタは貧弱なので、ASSIST09でかなり強力になりました。
ダンプコマンドはこんな感じでASCIIも同時に表示できるようになり機能UP!
SFormatのパンチコマンドは出力先がCRTになっているので、こちらはACIAに出力させるように改造が必要です。
SAVEコマンドもKBからの入力になっているので、こちらも改造が必要・・・
サブルーチンを直接呼び出せるCコマンドは便利そうです。
Aレジスタに$41をセットしてL3の1文字出力サブルーチン$E820をCコマンドで呼び出すと文字’A’が表示されました。
Rコマンドのレジスタ内容表示/変更はL3相当です。
MコマンドはL3同等ですが、/コマンドで連続してデータが入力できるので少し機能UPです。
/コマンドは変更前の値は表示されますがアドレスは出ないので、連続して入力しているとアドレスが分からなくなります^^;;;
本来ならPTMの増設が必要なブレークとトレースですがSNIさんにL3のトレースカウンタを使用したものを実装して頂きPTMの追加無しでブレーク&トレースが使えています$7002にブレークポイントをセットしG7000から実行してみると、正常にトレースできているように見えます。
トレースしたソフトはこんな感じで、OKそう^^
L3のトレースカウンタは16サイクル後に割込みを発生するらしいので、この用途で使えるのかどうか不明ですがトレーサを弄っている感じでは問題なさそうです。
普段のデバッグ作業はL3エミュ上のデバッガでなければ作業できない体になっていますが、どうしても実機でのんびりデバッグしたいときにはかなり強力なデバッグツールになりそうです。
引き続きRS232C入出力やプリンタ出力、FDD I/Oなど実装してさらに強力なデバッガに仕立てたいところです^^
そんなL3のコンソールでASSIST09モニタが扱えるようになった記録^^