CPU実験室

誰も見向きもしない古いCPUをいじって動かしてみようというプロジェクトです

モニタ搭載

考えてみるとレジスタも32ビット幅になってレジスタ表示を修正する必要あるし。コマンドの引数も4バイト対応しなければならないので直すところは結構あります。ここはいつものようにシリアルからRAMへのロード’L’とプログラム先頭番地へのジャンプ’G’の2つの機能だけ持つ原始モニタだけ作ることにします。

 

プログラムの本体はこれだけ。一見Z80のコードですがLD (XHL),A という32ビットレジスタ間接アドレッシングが目新しいです。

シリアルの受信は最初の1キャラのみ永久待ち、2キャラ以降はタイムアウトさせプログラム転送終了でコマンドプロンプトに戻るようになってます

コマンドは引数無し。ユーザプログラムは外付けした128kbyteSRAMの先頭0x20000番地からロード、実行として、中途半端に広い内蔵RAM32kbyteはBSS領域、STACK領域専用にしておきます

これらのコマンドさえあれば統合環境CMPLDRVにも登録できます

 

モニタが初期化した環境下で再度無限ループ JR $ を実行してみると周期は1.6MHzとなり一気にデフォルト環境の24倍速になりました