.mjtの日記復帰計画 RSSフィード Twitter

電通大MMAはいつでも部員募集中。

2012-04-15

[] ファミコンのCPU/音源のフロアプラン

ファミコンのCPUを分解し、個々の機能ブロックをトレースした人がいる。もっとも、まだvisual6502のビジュアルシミュレータ( http://www.visual6502.org/JSSim/index.html )には部分的にしか載せられていないようだ。

ビジュアルシミュレータでは、6502の部分は既存のものを流用している。

ファミコンのCPUは、CPU(6502の変種)と音源を統合している。

ブロックは大きく4つくらいに分割できるが、左上と左下が音源部、右上はおそらくチップ設計時のテスト用のpad、右下が6502 CPUになっている。右下の模様と本家6502のビジュアルシミュレータ( http://www.visual6502.org/JSSim/expert.html )の模様を比べれば、ほぼ同じ物が入っていることがわかる。

サウンドは左上の左右対称なブロックが矩形波チャンネル(2ch)、左下の大きめのブロックが残りの3ch(ノイズ、三角波、DPCM)となっていると考えられる。CPUよりも音源がデカいのは、CPUに比べて音源は演算幅が大きく(10bit)単純にカウンタが多い(CPUはレジスタA/S/X/Y/PC/フラグレジスタだが、音源は位相+周波数カウンタを5セット要求し、さらに他のパラメタもある)ことによる。

ファミコンのCPUでは、デシマルモード(BCD演算モード)が削除されているが、これによってどの程度領域を節約できたのかは謎としか言いようが無い。見た目としては同じ物が入っているように見える。(ちなみに、スーパーファミコンではBCDモードが復活している)

残念ながら開発者のサインのようなものは見当たらない。例えばAtariのTIA( http://www.visual6502.org/images/pages/Atari_10444D_TIA.html )にはJay Minerを表すとみられるJMのイニシャルを見つけることができる。

[] E350起動しなくなった(復旧済)

USBをかなりハードに使っていたら、AMD E350なマシンが起動しなくなってしまった。症状としては、BIOSの起動時カウントが98で止まる。

BIOSの起動時カウント  って正式名称なんなんだろう。。最近のBIOSはPOST LEDに表示する数字と同様の内容を画面に出力することができる。

POST LEDの表示(POST CODE等とも呼ばれる)は、BIOSの起動ステップをデバッグするために使われることが多い。このコードの意味はBIOSベンダによって異なるような気がするが、AMIのBIOSの場合:

このページで数字98はマウスの初期化を表している。というわけで、マウスを抜いたら正常に起動するようになった。

必要最低限の周辺機器で起動するのは常に勧められる回復手段と言える。USB機器を抜くと起動するようになる場合は、USB Legacy supportを切る。ただし、USB Legacy supportを切ると、BIOSの設定をUSBキーボードでできなくなるので、PS/2キーボードを持っている人専用のworkaroundになる。

POST LEDカウントを画面に表示するためには、全画面ロゴ(AMI BIOSの場合"Full screen logo")を切らないといけない。往々にして全画面ロゴは役にたたないことが多いので、PCをセットアップしたら真っ先に切るべきと言える。

(ちなみに、この後BIOSをアップデートして直後にCMOSをクリアしたら本当に起動しなくなった。AMIのBIOSを採用したM/Bでは、BIOSをアップデートした直後にCMOSをクリアしてはいけないらしい。M/Bの説明書には確かにそういう記載があった。今回は全ての周辺機器を外してCMOSをクリアすると復旧できた。)

[]

3Dやってるとデフォルメキャラクタを描くのがすごい下手になる気がする。