SSブログ

6801/6301でオリジナルモニタ [6801]

オリジナルモニタシリーズ、今度はMC6801系です。
MC6800版はMC6802ボードで確認してだいたい動作しているのでベースにします。
とりあえずCPU依存な部分を除いてそのまま流用。
ただし今後各種I/Oを動作させるために、ユーザ設定の割り込みルーチンを使えるように変更。
今まではROM内固定ルーチンのみだったが、RAM上にユーザ割り込みベクタエリアを確保し、各割り込み毎にユーザベクタをチェックし、設定されていればそのルーチンを呼び出すように変更。

通信部分はACIAから内蔵SCIへ。
モトローラと日立セカンドソースの6801(3)と、その日立のCMOS版であるHD6301(3)R/Sと、さらに強化版のHD6301(3)X/Yとでソースを共有することにする。
HD6301X/Yは内蔵I/Oが増えて、その分ZEROページの占有領域が増えているがHD6301R/Sに単純に追加されているので、共通部分は機能もメモリマップも同じ。追加されたのはタイマがもう1本とポート。モニタがその追加部分を使うことはないので、占有ZRAMが増えても問題なし。
一部変更があるが、設定用のレジスタでアドレスは同じ。ブート直後にそれぞれにあわせて設定するだけなので、これも問題なし。さすがにバイナリ共通とまではいかないが、ちょっと編集してアセンブルし直しでいける。
まずはMC6801で確認。このボードで。

SYC6801_B01.jpg

多少リビジョンが上がっているが初期から使っているボードで、以前にも書いたと思うがNMOS版の6801(3)では動かないので、日立のHD6303で確認。
動作OKなのでソースをMC6801向けにカスタマイズ。
基本的には16bi処理をDレジスタ用命令に書き換えるだけ。
インデックスレジスタ退避/復帰もスタックで、と思ったが今回はパス。
これも動作OKなので、次はHD6303X/Y。このボードで。

SYC8-6303X_B01.jpg

以前のボードから変更していて、外部I/Oを使用できるようにしている。68系のCPUボードはI/Oの上位8bitを設定できるようにして、80系と同じ256バイトメモリ空間を占有する。

これも初期化部分を少し変更するだけで問題なく動く。
これでタイマが使えるボードで基本となるモニタが動作するようになったので、I/Oボードを色々試すことができそう。
ただし、MC6801ボードはシングルボード化してしまってバスを出すようにしていないので、作成したI/OボードのテストはHD6303ボードメインかな?


nice!(0)  コメント(0) 
共通テーマ:趣味・カルチャー

nice! 0

コメント 0

コメントを書く

お名前:
URL:
コメント:
画像認証:
下の画像に表示されている文字を入力してください。

この広告は前回の更新から一定期間経過したブログに表示されています。更新すると自動で解除されます。