CPU実験室

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

ペリフェラル制御

H8/3069FCPU基板にモニタを書込み、ROMライタ側のI/O動作を確かめているのですがどうも動きが変です
モニタで8255のアドレスを指定して直接出力ポートを叩くと正常に出力されますが、同様の動作をする単純なテストプロをつくってDLLして実行させると何故か期待する出力が得られません
 
#define  ROMW_CNTR  (*(volatile unsigned char *)0x200008)
void main(void)
{
  init_PPI();
  while(1){
    ROMW_CNTR = 0x55;  
    ROMW_CNTR = 0xAA;  
  }
}
 
初めは8255のデータホールド時間などの問題かと思いCPUクロックの分周比をいじってみましたがそれでもダメ
いろいろやっているうちにプログラムを0x400000~のDRAM上にロードして実行させるとこの問題が出てCPU内蔵RAMの0xFFC000~にロードした場合はOKであることが判明しました
どうもDRAMと外部拡張バスのアクセスが競合しているようです
チップセレクト、/RD、/HWR辺りをプローブしてみます
 
イメージ 1