2009-10-01から1ヶ月間の記事一覧
MMC3, VRC6, VRC7 あたりは安定しているんだが、MMC5, VRC4 がだめ。 MMC5 erase command を打ち込むと erase 途中のデータは規則的に変化したものがでてくるが、これが8割ぐらいの確率でとれない。なので erase 完了のタイミングがわからずに、erase 途中に…
Charcter ROM 領域の W29C040 の書き込みが安定しない 0x100 byte 書いた後に比較して、一致しなかったら書き込みし直す実装をいれたら大丈夫! Program ROM 領域はそんなんなかったんだけどなぁ... AM29F040B の erase がうまくいかない erase 中のデータ出…
unagi に相当な手を入れて、Program ROM 領域の書き込みを確認。mmc5 だけうまくいってないけど、根が深そうなので後回し。Charcter ROM 領域も同様に実装したはずなのに、書き込みが実装できず。問題点はわかってるのだが、修正点が見つからん。phi2 関連で…
ディスクに関しては詰まってるのでだめになるかも!
DRAM access は phi2 を定期的に更新するようにしたが、改善せず。もしかして DRAM enable flag でもあるのかもしれない。 disk が 1 seek でとまる原因は、motor を動かしてから $4032.bit1 == 0 になる直後。 head が外周→内周になった直後に停まるのでそ…
motor が動かなかったり、停まらなかったりする理由は write タイミングで wait をはさまないといけないため。 motor の制御は 1seek で停まるか、動き続けるか(強制的に停められる)のどっちかなんだが、よくわからず。 DRQ の発生は確認しているが 20 回程…
面倒くさい配線作業をばくてんさんにやっていただきました。ありがとう。Famicom で 14 + 13 + 8 のバスラインがあって面倒。 verilog でやってるのは 23 + 16 が大量にあるやつだから手作業でやったら狂気の沙汰というやつ。 read 現状のシーケンスは下記の…
ruby の言語仕様が HDL から取られたことに気づいた。 複数分岐 ruby case nantara when 0 iyan = 4 when 5 iyan = uhun else ahan = 4 end verilog case nantara 0: iyan = 4; 5: iyan = uhun; default: ahan = 5; endcase数値表現 ruby 0b1010_0101 0xffff…
いろいろな下調べから Altera の Cyclone II にすることにした。Quartus II をインストールして 1chip MSX のソースをコンパイルしたり、 opencores.org にあった 68000 コアをコンパイルしてみた。ハードウェア記述言語のソースってこーなってるのかと感動…
FPGA/CPLD で古いハードを作ってみようってやつ。MSX とかパックマン基板とかが有名。具体的なハードは現段階では上げないが、1980年台後半にメジャーになった 68000 と Z80 の構成のやつ。きっかけは入手困難な部品が多い箇所は 74IC が大量に組まれている…
AVR を利用して USB と FC 60pin edge connector を接続して、read 及び write を行うハードウェア。既存のハードウェアは read することに重みを置いているのに対して、 write と IRQ の活用を強化している。 write bank 切り替えと PPU 領域のメモリを RAM…