プロジェクトの説明 - kazzo

AVR を利用して USB と FC 60pin edge connector を接続して、read 及び write を行うハードウェア。既存のハードウェアは read することに重みを置いているのに対して、 write と IRQ の活用を強化している。

write

bank 切り替えと PPU 領域のメモリを RAM/ROM の判断でのみ write を使っていたのがいままでのハード。いままでの目的が ROM を dump して PC に転送するだったから仕方ない。その目的は達成されていて read をしたところで新しい発見はほとんどない。

昨年 flash memory を 60pin edge connector の信号だけで write する方法を確立した。これによって自作 ROM image を本物で動かさせることが容易になった。read をするだけのハードでは性能の限界があったので新ハードを設計した。ただし、自作 ROM image を動かすことは開発には便利であってもそれ以外では魅力を感じないなと個人的に思う。悪いことができてしまうから。

IRQ

HBlank を得る目的がほとんどなのだが、ディスクのデータアクセス (DRQ) にも使われている。リアルタイム制が求められる IRQ はパラレルポート経由で制御側の PC の CPU を割り込ませることはたぶんできない(かできたとしても相当な制限が出る)。

今回は制御に AVR をはさんでいるのでそこで INT 端子に振り当てて割り込ませる。試験用ハードができてないのでなんとも言えないが、開拓のしがいがある分野だと思っている。

read の確立は魅力的だが、data 自体を得ることは ROM と同じで魅力を感じないし、write は容易に悪いことができるのでできても公開しない。

AVR

使い慣れた gcc + C99 で開発できるのが手軽だった。CPU の制御は、やり慣れているので要領も得ること早くて、苦労できなくてつまらなかったのが本音。

とはいえこの手のハード設計が簡単にできるので時間がそんなにかからなかったのは驚きである。

命名

食べ物の名前をとってくるのが流れであって、今回は鰹。イタリア語で cazzo はちんこの意味。そのまま書くとイタリア人にとても失礼らしいので kazzo にした。失礼の度合いは変わらん気がするが、イタリア人が使って怒らないことを願う。