割り込みベクタは ROM 内にあるので、直接ベクタを書き換える事はできないはず。しかし、割り込みベクタのコール先は [7FC0h + 割り込みレベル * 4] になっているので、メインメモリの [7FC0h + 割り込みレベル * 4] に JR nnnnnnnnh の形で書き込めば、自由な位置に割り込み処理ルーチンを置くことができる。
PC-FX の割り込みはレベルトリガっぽいので、割り込みルーチン内で割り込み要因をクリアしなければ永久に割り込みが発生し続けてハングアップ状態になります。
割り込みコントローラに入力される割り込み信号とデバイスの対応は以下の通り。
割り込みレベル | 割り込み発生チップ |
---|---|
15 | HuC6273 |
14 | HuC6270-B |
13 | HuC6272 |
12 | HuC6270-A |
11 | パッド |
10 | 不明 |
9 | タイマー |
8 | 不明 |
E40h | 割り込みマスク(R/W) |
---|---|
E80h | 割り込み優先順位(R/W) |
EC0h | 割り込み優先順位(R/W) |
許可する割り込みレベル(0〜15)を 0 に指定します
bit0 | 割り込みレベル 15 のマスク |
---|---|
bit1 | 割り込みレベル 14 のマスク |
bit2 | 割り込みレベル 13 のマスク |
bit3 | 割り込みレベル 12 のマスク |
bit4 | 割り込みレベル 11 のマスク |
bit5 | 割り込みレベル 10 のマスク |
bit6 | 割り込みレベル 9 のマスク |
bit7 | 割り込みレベル 8 のマスク |
割り込みの優先順位を 0 〜 7 の値で指定する。
優先順位とは、V810 に入力する割り込みレベル(INTV0-INTV3)の事。
bit2-0 | 割り込みレベル 15 の優先順位(0〜7) |
---|---|
bit5-3 | 割り込みレベル 14 の優先順位(0〜7) |
bit8-6 | 割り込みレベル 13 の優先順位(0〜7) |
bit11-9 | 割り込みレベル 12 の優先順位(0〜7) |
割り込みの優先順位を 0 〜 7 の値で指定する。
bit2-0 | 割り込みレベル 11 の優先順位(0〜7) |
---|---|
bit5-3 | 割り込みレベル 10 の優先順位(0〜7) |
bit8-6 | 割り込みレベル 9 の優先順位(0〜7) |
bit11-9 | 割り込みレベル 8 の優先順位(0〜7) |