前の記事、キャラクタROMは50MHz動作でした(修正済み)。
キャラクタROMを50MHzに動作するように変更し、PC-6001 の内蔵RAMもとりあえずダミーを付けて、BASICROMは付けずにT80と接続してみると...CycloneIIIのメモリが足らない(;_;)
内蔵RAMを8Kバイト(画面1ページ分)にしてレイアウトしてみると、画面に妙な模様が...
調べた結果、T80 が暴走していて(当たり前だが)、そのために画面メモリに何かのデータを書き込んでいたようでした。
T80 のデータバスに 0x76 の固定値を与えてやると、初期状態で与えていたRAMの内容の画面がキレイに出ました(0x76 はHALT ですね)。
結局、SDRAMを実装しないとこの後全然進まないようなので、SDRAM部の仕様を決めてみる。
・アドレス空間は次の通り
0x0000 〜 0x3FFF : BASIC-ROM
0x4000 〜 0x7FFF : 空き
0x8000 〜 0xBFFF : RAM or 空き
0xC000 〜 0xCFFF : RAM
・空きの部分から読み出した場合は、0xFF が読み出せるようにする。
・SDRAM部 の初期設定動作時に、以下の設定を行う
1)SDRAM の初期設定
2)ROMデータの読み込みと、SDRAMへの書き込み
外部FLASH または、外部SDカードからデータを読み込み、SDRAMのBASIC領域に書き込む。
3)空き、及びRAM領域に固定値 0xFF を書き込む。
SDRAM の制御以外に、SDカードの制御も必要になりました...
ついでなので、キャラクタROM も外部SDカードからデータを読み出しキャラクタROMにする、という変更を行います。
これに伴い、リセット系は、
PLL安定 → キャラクタROM初期設定完了 → SDRAM初期設定完了 → CPUリセット解除
と、キャラクタROMの初期設定を追加します。


技術の話はちんぷんかんぷんですが、色々と課題が発生しているのを一つ一つ解決していく様子が面白いです。
ハードウエアをやった事ない人には、まったくわからないだろうなー、と思いながら書いています(^^;
今は、SDカード対応とSDRAMのアクセス方法でちょっとぐったりです。ただこれを超えると、先が見えてくるかな?