CPU実験室

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

ラージモデル実行

つまりバンク切り替えはアプリが起動する前のシステムモニタ側に組み込んでおかなければなりません。モニタ自身はスモールモデルで動作しているので影響はありません。

現状はPAULMON2はi8255に対して何の初期化もしてないので手動で設定することにします。(何の設定もしてないのでi8255のポートはHi-Zの入力モードになりますがその時バンク0となるようA15,A16をプルダウンしています)

f:id:O3I:20190928163548j:plain

コールドスタート直後、バンク0を指しているときにプログラムを転送。その後に0x803(i8255のコントロールワード)に0x80:全ポート出力モード設定、0x800(PA)に0x01出力でバンク1に切替えます

 

この状態で0x8000番地から実行

f:id:O3I:20190928164018j:plain

プログラムは正常に実行され(バンク0からフェッチされ)、一方バンク1の0x8000番地前半部分でパタンデータが壊れているのがわかります

これはデータ空間としてバンク1が外部変数エリアに使用されたことを示していて期待通りの動作になっています