English
HARDWARE ManualSCSPユーザーズマニュアル
戻る進む
SCSPユーザーズマニュアル/4.2 音源部レジスタ

■割り込み制御レジスタ

 SCSPは、メインCPUに対する割り込み信号を制御する機能と、サウンドCPUに対する割り込み信号を制御する機能を含めた割り込みコントローラを内蔵しています。

図4.55 サウンド割り込み信号接続図

 サウンドブロックの割り込み信号系は、SCSPの割り込みコントローラを中心にして各CPUに接続されています。サウンドCPUに対する割り込み信号は、レベル1から7までのオートベクタ割り込みで行います。 メインCPUに対する割り込みは、サウンドCPU側からレベル設定、およびベクタ設定等を行うことはできません。
 メインCPUに対する割り込みは、単に割り込みの機能だけでなく、SCUのDMA転送スタートのトリガとしても使用することができます。この機能により波形データ等の膨大なデータのDMA転送のタイミングを、 サウンドCPUによってコントロールできます。この機能を使用する場合、メイン側(SCU等)で、サウンドの割り込みによりDMA転送がスタートされるような設定を、前もって実行しておくようにしてください (詳細は、SCUのユーザーズマニュアルを参照してください)。

 以下にレジスタの説明を行います。
 割り込みは、メインに対する割り込みを管理する部分(MC〜と名付けられたレジスタ)および、サウンドCPUに対する割り込みを管理する部分(SC〜と名付けられたレジスタ)の2つがあります。

 SCIPD[10:0] ; Sound-Cpu Interrupt PenDing
 サウンドCPUに対する割り込みをモニタリングするレジスタ(割り込みフラグ)です。割り込みの要求が発生すると、該当する割り込み要求のフラグを"1B"に設定するので、CPUで"SCIPD"のレジスタを読むことにより、どの割り込みが発生しているかを知ることができます。 また、割り込みイネーブルレジスタ("SCIEB")の設定に関わらず、割り込み要求を逐次モニタします。割り込みリセットレジスタ("SCIRE")によって、対応するフラグをリセットすることができます。 ビット5のみ読み書き可能で、その他は全て読み込み専用です。ビット5に"1B"を書き込むことでサウンドCPUに割り込みがかかります。ただし"0B"の書き込みは無効です。

 SCIEB[10:0](R/W) ; Sound-Cpu Interrupt EnaBle
 サウンドCPUへの割り込み許可レジスタです。"1B"を書き込むことで、対応するビットのハードウェア割り込みを許可します。割り込み発生の有無は、"SCIEB"の設定に関わらず"SCIPD"を読むことでも判断できます。"0B"のセットで割り込み禁止です。

 SCIRE[10:0](W) ; Sound-Cpu Interrupt REset
 サウンドCPUへの割り込み要求リセットフラグです。"1B"を書き込むことで、対応するビットのハードウェア割り込み要求をリセットします(割り込みが発生しているビットに対して、そのビットに対応する"SCIRE"に"1B"を書き込むとにより、 "SCIPD"も"1B"から"0B"に変わります)。

 MCIPD[10:0](R) ; Main Cpu Interrupy PenDing
 メインCPUに対する割り込みをモニタリングするレジスタ(割り込みフラグ)です。割り込みの要求が発生すると該当する割り込み要求のフラグが"1B"に変化するので、CPUで"MCIPD"のレジスタを読むことによりどの割り込みが発生しているかを知ることができます。 また、割り込みイネーブルレジスタ("MCIEB")の設定に関わらず、割り込み要求を逐次モニタします。割り込みリセットレジスタ("MCIRE")によって、対応するフラグをリセットすることができます。ビット5のみ読み書き可能で、その他は全て読み込み専用です。 ビット5に"1B"を書き込むことでメインCPUに割り込みがかかります。ただし"0B"の書き込みは無効です。

 MCIEB[10:0](R) ; Main Cpu Interrupy EnaBle
 メインCPUへの割り込み許可レジスタです。"1B"を書き込むことで、対応するビットのハードウェア割り込みを許可します。割り込み発生の有無は"MCIEB"の設定に関わらず"MCIPD"を読むことにより判断できます。"0B"のセットで割り込み禁止です。

 MCIRE[10:0](R) ; Main Cpu Interrupt REset
 メインCPUへの割り込み要求リセットフラグです。"1"セットで、対応するビットのハードウェア割り込み要求をリセットします (割り込みが発生しているビットに対して、そのビットに対応する"MCIRE"に"1B"を書き込むことにより、"MCIPD"も"1B"から"0B"に変わります)。

図4.56 割り込みレジスタのビット対応

表4.31 割り込みレジスタのビット要因
ビット割り込み要因
0外部割り込み入力"INT0N"の割り込み入力に対応
1外部割り込み入力"INT1N"の割り込み入力に対応
2外部割り込み入力"INT2N"の割り込み入力に対応
3MIDI入力割り込みに対応 MIDI-IN側のFIFOバッファメモリが空の状態からデータを取り込んだ時に割り込みを発生します。 FIFOバッファからデータをすべて読み取り、バッファが空き状態になると、自動的に解除されます。
4DMA転送終了割り込みに対応 SCSP内蔵DMAを使用したDMA転送が終了した時("DLG"で設定したブロック(長さ(量))のデータ転送がすべて終了した時)に割り込みを発生させます。
5CPUマニュアル割り込みに対応 CPU(メインおよびサウンド)の書き込みによる、サウンドCPUへの割り込み、またはメインへの割り込みを行なうことができます。"1B"を書き込むと割り込みがかかります("0B"は無効です)。
6タイマA割り込みに対応
7タイマB割り込みに対応
8タイマC割り込みに対応
9MIDI出力割り込みに対応 MIDI-OUT側のFIFOバッファのメモリが空状態に時に、割り込み要求を発生します。 MIDI-OUTバッファメモリ(レジスタ)にデータを書き込んで、空き状態でなくなった時、割り込みは自動的に解除されます。
101サンプルごとの割り込みに対応します(1サンプル=22.68μsec=1/44.1Kの時間間隔)。
11〜15無効

※SCILV0、1、2について
 サウンドCPUに対するオートベクタの割り込みのレベルを設定するレジスタです。各レジスタは割り込み要因ごとにビット単位で分割されていますので、設定するときは、図4.58を縦に見る必要があります。
 また、ビット7の列でタイマB、C、MIDI出力割り込み、1サンプルごとの割り込みのレベルを一括して設定するようになっています。
 レベル設定は3ビットコードで行いますが、各ビットがSCILV0、1、2のレジスタに振り分けられています。

図4.57 3ビットコードとレジスタの対応

 レベルを設定する3ビットのコードは、図4.57のようになっています。例えば101Bと設定すると、割り込みレベルが5になります。"000B"では、レベル0割り込みとなるので割り込みはかかりません。
 ただし、実際のレジスタではフォーマットが図4.58のようになっているので、設定の際には充分注意してください。

図4.58 割り込みレベル設定レジスタフォーマット

 SCILV0[7:0](W) ; Sound-Cpu Interrupt LeVel bit0
 ビット対応で定義されたサウンドCPUへの割り込みレベルコードのビット0を指定します。

 SCILV1[7:0](W) ; Sound-Cpu Interrupt LeVel bit1
 ビット対応で定義されたサウンドCPUへの割り込みレベルコードのビット1を指定します。

 SCILV2[7:0](W) ; Sound-Cpu Interrupt LeVel bit2
 ビット対応で定義されたサウンドCPUへの割り込みレベルコードのビット2を指定します。

 以下に割り込みの設定例を示します。

 割り込み設定例
条件:タイマAの割り込みでメインCPUにも割り込みをかけ、サウンドCPUにはレベル6の割り込みをかける場合

手順:現在、割り込みがかかっていないものとして、割り込みの設定をすべて終えてから、タイマの設定を行います。

:サウンドCPUの割り込みレベルを6に設定します。
 レベル6は、3ビットコードで"110B"です。またタイマAの割り込みを管理するビットはビット6なので、

"SCILV0"のビット6に"0B"
  (100425H番地にバイトで"00H"、または100424H番地にワードで"0000H")

"SCILV0"のビット6に"1B"
  (100427H番地にバイトで"40H"、または100426H番地にワードで"0040H")

"SCILV0"のビット6に"1B"
  (100429H番地にバイトで"40H"、または100428H番地にワードで"0040H")

 を設定します。以上で、割り込みレベルの設定は完了です。

:メインとサウンドCPUに割り込みがかかるように、"MCIEB"と"SCIEB"のレジスタにパラメータ設定を行います。
タイマAによってメインCPUに割り込みがかかるように、

"MCIEB"レジスタのビット6に"1B"を書き込みます。
  (10042BH番地にバイトで"40H"、または10042AH番地にワードで"0040H")

 またサウンドCPUも同様に割り込みがかかるように、
"SCIEB"のビット6に"1B"を書き込みます。
  (100421FH番地にバイトで"40H"、または10041EH番地にワードで"0040H")

 更に、タイマにパラメータを設定することによりその直後からカウントを始め、オーバフローを起こすと割り込みがかかります。

:割り込みの解除は、メインおよびサウンドCPUの各リセットレジスタを使用してください。


戻る進む
HARDWARE ManualSCSPユーザーズマニュアル
Copyright SEGA ENTERPRISES, LTD., 1997