2022-12-21 23:10 — asano
カテゴリー:
前回までで従来の機能がセグメントモードで動作するようになりましたが、セグメントモードで動作するなら当然D(ump)などのコマンドでもセグメントが指定できなくてはなりません。
この辺りは8086のセグメントやTLCS-90のバンクを移植する形で対応しました。
表記はZ8000らしく<<SEG>>OFFSET
形式も考えましたが、長くなるので8086同様SEG:OFFSET
形式としています。
コマンドのパラメータ以外に対応が必要なのはR(egister)コマンドにおけるSSPとPCです。
- SSPH, SSPL, PCH, PCLのように16ビットずつ別のレジスタ名をつける
- 32レジスタとして扱う
- 16ビットずつに分けるが「:」で区切ってレジスタとしては1つとして扱う
などの方法が考えられます。
1.は勝手に名前を付けることになることと、2回に分けて設定するのは面倒です。
2.は操作的には良いのですが、このためだけにRDHEX
ルーチンを32ビット対応させなくてはなりません。
ということで3.を採用しました。これならパラメータの処理と同様に処理できます。
以上でセグメント対応は完成ですが、現状テストができません。
セグメントを指定できるかどうかはテストできますが、指定通りのセグメントにアクセスしているかは現状のアダプタがSN0~SN6を無視しているためわかりません。
まずはセグメントモードで動かすことだけを手っ取り早く確認しようとしたからですが、動くとなったら当然次は意図したセグメントにアクセスできているかの確認をしたくなります。
SBCZ8002のプリント板はもう1枚買ってあるのでRAM容量を拡大改造したものを作るか、RAM部も下駄方式にするか、いっそZ8001用にプリント基板を作ってしまうか、どうしようかな。
コメントを追加