CPU実験室

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

モード変更

高機能化した修正版モニタのめどが付いてきてサイズも高々1kwordくらいになりそうなのでメモリ配置を再検討しました。

いままではDSPMODE3(Development Mode)で起動していましたがこれをMODE2(Normal Expanded Mode)にしました。こうすることでリセットベクタが$E000に移動します。するとモニタを含んだROM領域を$E000~$FFFFの8kwordに押し込むことができ、残り$0000~$DFFFの56kwordをユーザRAMに開放できます。さらに割込みベクタは$0001以降に残るので先頭部分がRAMだと割込みサービスの記述もできるようになります。

モード切替は基板上のジャンパポスト、メモリマップの変更はGALの書き換えでプログラム空間は以下のようになりました。

なおMODE2にするとオンチップのプログラムRAMが$0000-$01FFに見えるようになり外付けRAMとオーバーライドしますがこの領域でで小さいプログラムを動かしてみると外部への制御信号/PS、/RD、/WRは一切アクティブにならず、アドレスバスすら全く変化しません。つまりアクセスは内部メモリを優先しており外部バスのデコードにそれを考慮する必要はない、ということがわかりました。もちろん内部RAMと外部RAMはシームレスにつながり変な隙間もできません

同じようにデータ空間でも内蔵RAM/ROMや内蔵ペリフェラルとの被りを気にしなくていいのでGALのロジックは非常に単純化しました