PET2001のROMはこのように大きなアルミ製の放熱板が接着してある。これはROM自体が発熱し内容が読めなくなるようなトラブル対策だと思われるが、実際手持ちのPET2001は基板上のROM付近が悪さをして起動しない。
で、現在はROM/RAM replacement boardを使っている。これはMPU 6502と差し替えて使うボードで、メモリアクセスはボード上のROM/RAMに対して行う。ROMやRAMは一部または全部、本体側のメモリをアクセスするような設定もできる。
Commodore PET ROM / RAM replacement boards(tynemouthsoftware blog)
PET2001のROMはMOSテクノロジ製で入手困難。このROM/RAMreplacement boardでもできるのだが入手性と価格で2台目以降のPET2001にはもっと簡便な方法で対処したい。ということでPET2001のROM領域だけでもリプレースできないか考えた。
PET2001のROM領域は$9000~$FFFFで、このうち$E800~$EFFFの2KバイトはI/O領域となる。これを整理すると:
$8000~$FFFF はVRAM,ROM,I/O領域
$8000~$8FFF はVRAM領域なのでROMアクセスから除外
$E800~$EFFF はI/O領域なのでROMアクセスから除外
基板上のROMは全部はずし、6502と差し替えるボード上のROMにアクセスする
ROM/RAM replacement boardはPLDでアドレスデコードを実現している。これ汎用ロジック2個ぐらいでなんとかできんだろうか。できた。
LS139とLS138をそれぞれ1個。初段のLS139では以下をデコード。
(1) x000_xxxx_xxxx_xxxx
(2) x110_xxxx_xxxx_xxxx
次段のLS139では(2)に追加。
(2') x110_1xxx_xxxx_xxxx
これらと$8000~$FFFFのアクセスを最終段のLS138でまとめ、クロックφ2とあわせROMの*CSを得る。ロジックは三段になるがクロックは1MHzなので問題ない。これで汎用ロジックIC 2個で実現できそう。
今朝方あまりにも寒くて眠れずずっと考えていたのをメモしました。






