RP2A03 割り込み詳細

 ファミコンのCPUであるRP2A03には合計3つの割り込みが用意されています。

割り込みとは、メインのプログラムを実行中でも、割り込みが検出された場合はメインのプログラムを一旦中断し、
予め決めておいたサブプログラムを実行し、実行が終了したら元のメインのプログラムに戻るような用途に主に使用します。

 「一旦中断する」といっても何秒も止まるわけではなく、通常数ミリ秒の停止ですので、「中断された」ことを
体感することはできません。言いかえると数ミリ秒のうちにサブの処理を終わらせないとメインのほうに影響が出るので
極力サブのプログラムは短い時間で終わるよう、努力するべきです。


各割り込みが発生した場合は、特定のアドレスにセットされている16ビットの割り込みベクタを参照し、
強制的にプログラムを分岐します。そして、RTI命令を検出すると、元のアドレスへ復帰します。




各割り込みの機能は下記のようになっています。
割り込み 概要
NMI  NMI割り込みは禁止できない特殊な割り込みです。
システム稼動中はVBLANK毎に必ず発生します。NMI割り込みは、NTSCシステムで毎秒60回発生します。
サウンドドライバなど定期的に処理をしたい場合にフックすると良いでしょう。
RESET  RESET割り込みは、リセットボタンを押したときのみ発生する割り込みです。

注意すべき点は、RESET割り込みが発生してもレジスタやメモリ内容は一切変わらない点です。
レジスタやメモリが初期化されるのは電源投入時のみです。
リセットや初期化処理に関しては別ページで詳しく載せています。
IRQ/BRK  IRQ割り込みが発生する条件はCPUのIRQラインがHighになった場合で、BRK割り込みが発生する条件は
CPUへBRK命令を発行した場合です。

IRQ割り込みとBRK割り込みは同じ割り込みベクタで示されますので、どちらの割り込みかを判別するには
xxxxxxxxxを参照します。





 割り込みベクタが格納されているアドレスに関しては、ファミコン標準状態と、RAMアダプタ装着状態とでは異なり、
下記のようになります。
割込みの
種類
ファミコン標準 RAMアダプタ
装着時
NMI $FFFA〜$FFFB $DFFA〜$DFFB
RESET $FFFC〜$FFFD $DFFC〜$DFFD
IRQ/BRK $FFFE〜$FFFF $DFFE〜$DFFF





 各割り込みの優先順位は下記のようになります。
割込みの
種類
優先順位
RESET 最高
NMI
IRQ/BRK 最低





任天堂株式会社の登録商標です。本webサイト中のゲーム画像の著作権は全て開発ゲームメーカーへ帰属します。
Copyright(C) 2004 by Fantasy.