English
PROGRAMMER'S GUIDEシステムプログラムユーザーズマニュアル
戻る|   ■
SMPCインタフェースユーザーズマニュアル

関数仕様





Title
関数仕様
Function
割り込みベクタへ、
割込み処理ルーチンを登録する
Function Name
SYS_SETSINT
No
1.1
 書 式
void SYS_SETSINT(Uint32 Num, void* Hdr);
 入 力
Num:ベクタ番号(0..7FH)
Hdr:割り込み処理ルーチンアドレス
(0の場合、ダミールーチンまたはNumがSCU割り込みベクタの場合その割り込み処理ルーチンとなる)

 出 力
なし
 関数値
なし
 機 能
Hdrは、必ずレジスタ保存、復帰、RTE命令で終わる処理ルーチンでなければなりません(C言語ならば #pragma interrupt 宣言付のもの)。
Hdrが0の場合、NumがSCU割り込み(40H..4DH,50H..5FH)内では、SCU割り込みルーチンを再登録し、それ以外では、ダミールーチンを登録します。
範囲チェックは行っていません。制限外の値は指定してはいけません。
 備 考
本ルーチンはマスタ・スレーブSH2とも使用可能で、各々のVBRをベースにしたベクタアドレスへ登録します。




Title
関数仕様
Function
SCU割り込みルーチンへ、
処理関数を登録する
Function Name
SYS_SETUINT
No
1.2
 書 式
void SYS_SETUINT(Uint32 Num,void* Hdr);
 入 力
Num:ベクタ番号(SCUベクタ番号)
Hdr:関数ルーチンアドレス(0の場合、ダミールーチンになる)
 出 力
なし
 関数値
なし
 機 能
Hdrは、SHCによる関数でなければいけません。アセンブラで作成したルーチンならば、SHCのレジスタ保存規則に従っていなければなりません。
NumはSCU割り込みベクタ(40H..4DH,50H..5FH)に限ります。
Hdrが0の場合、ダミールーチンを登録します。
範囲チェックは行っていません。制限外の値は指定してはいけません。
 備 考
SYS_SETSINTでベクタにルーチンを登録した場合、そのベクタのSCU割り込み処理ルーチンは無効となり、登録関数は呼び出されません。
本ルーチンをスレーブSH2で呼び出した場合、結果は保証されません。




Title
関数仕様
Function
割り込みベクタの登録内容を得る
Function Name
SYS_GETSINT
No
1.3
 書 式  
void(*)() SYS_GETSINT(Uint32 Num);
 入 力  
Num:ベクタ番号(0..7FH)
 出 力  
なし
 関数値 
ベクタ登録内容(割り込み処理ルーチンアドレス)
 機 能  
Numのベクタの内容を関数値として返します。
範囲チェックは行っていません。範囲外の値は指定してはいけません。
 備 考  
本ルーチンはマスタ・スレーブSH2とも使用可能で、各々のVBRをベースにしたベクタアドレスを参照します。




Title
関数仕様
Function
SCU割り込みルーチンの登録内容を得る
Function Name
SYS_GETUINT
No
1.4
 書 式  
void(*)() SYS_GETUINT(Uint32 Num);
 入 力  
Num:ベクタ番号(SCUベクタ番号)
 出 力  
なし
 関 数値 
登録内容(関数ルーチンアドレス)
 機 能  
Num該当するSCU割り込みルーチンの登録内容を関数値に返します。
範囲チェックは行っていません。範囲外の値は指定してはいけません。
 備 考  
本ルーチンをスレーブSH2で呼び出した場合、結果は保証されません。




Title
関数仕様
Function
SCU割り込みマスクのセット
Function Name
SYS_SETSCUIM
No
2.1
 書 式  
void SYS_SETSCUIM(Uint32 MaskPat);
 入 力  
MaskPat:SCU割り込みマスク値
 出 力  
なし
 関数値 
なし
 機 能  
マスク保存メモリ、SCU割り込みマスクレジスタにMaskPatの値を書き込み、次に同じ値をSCU割り込みステータスレジスタに書き込みます。ただし、A-Bus割り込みマスクビットが許可になる場合、ステータスレジスタの上位ワードをクリアし、さらにA-Bus割り込みアクノリッジレジスタをクリアします。
 備 考  
本ルーチンを(SCU割り込みの)割り込み処理から使用してはいけません(SCU割り込み処理中は、SYS_GETSCUIMの値が不定になっています)。
処理中にSCU割り込みが発生した場合、その割り込みは消える場合があります(SCU仕様)。その可能性を避けるか、関知しない状況で使用してください。
本ルーチンをスレーブSH2で呼び出した場合、結果は保証されません。




Title
関数仕様
Function
SCU割り込みマスクの変更
Function Name
SYS_CHGSCUIM
No
2.2
 書 式  
void SYS_CHGSCUIM(Uint32 AndMask,Uint32 OrMask);
 入 力  
AndMask:許可用マスク値
OrMask:拒否用マスク値
 出 力  
なし
 関数値 
なし
 機 能  
マスク保存メモリ内容を、AndMaskと論理積をとり、それにOr-Maskと論理和をとった結果を、マスク保存用メモリとSCU割り込みマスクレジスタに書き込みます。
次に、AndMaskとOrMaskの論理和を、SCUステータスレジスタに書き込みます。ただしA-Bus割り込みマスクビットが許可になる場合、ステータスレジスタの上位ワードをクリアし、さらにA−Bus割り込みアクノリッジレジスタをクリアします。これらの操作を不可分に実行します。
 備 考  
本ルーチンを(SCU割り込みの)割り込み処理から使用してはいけません(SCU割り込み処理中は、SYS_GETSCUIMの値が不定になっています)。
処理中にSCU割り込みが発生した場合、その割り込みは消える場合があります(SCU仕様)。その可能性を避けるか、関知しない状況で使用してください。
本ルーチンをスレーブSH2で呼び出した場合、結果は保証されません。




Title
関数仕様
Function
SCU割り込みマスク値の参照
Function Name
SYS_GETSCUIM
No
2.3
 書 式  
Uint32 SYS_GETSCUIM;
 入 力  
なし
 出 力  
なし
 関数値 
マスク保存メモリの値
 機 能  
マスク保存用メモリの値を読み出します。この値は、SCU割り込みマスクレジスタのセット・変更を前述の関数で行っていれば、実際にSCU割り込みマスクレジスタに設定されている値と同一です。
 備 考  
SCU割り込み処理中は、アプリケーションがSYS_SETSCUIM()、SYS_CHGSCUIM()を使用してセットした値に、割り込み要因別のマスク値(アプリケーションが、SYS_CHGUIPR()を使用した場合、そのテーブル内の該当値)の論理和に変化します。ただし、割り込みが多重になると、さらにその論理和というように変化します。
 したがって、SCU割り込み処理中でこの値は不定になります。処理中、参照した値に依存する処理は行わないでください。




Title
関数仕様
Function
セマフォを獲得する
Function Name
SYS_TASSEM
No
3.1
 書 式  
Uint32 SYS_TASSEM(Uint32 Num);
 入 力  
Num:セマフォ番号(0〜FFH)
 出 力  
なし
 関数値 
結果(1:獲得、0:すでに他が獲得中)
 機 能  
Numの番号と関連付けられるメモリ(1バイト)に対してTAS命令を実行し、その結果を関数値に返します。
範囲チェックは行っていません。範囲外の値は指定してはいけません。
本ルーチンはマスタ・スレーブSH2とも使用可能です。




Title
関数仕様
Function
セマフォを解放する
Function Name
SYS_CLRSEM
No
3.2
 書 式  
void SYS_CLRSEM(Uint32 Num);
 入 力  
Num:セマフォ番号(0〜FFH)
 出 力  
なし
 関数値 
なし
 機 能  
Numの番号と関連付けられるメモリ(1バイト)をクリアします。
範囲チェックは行っていません。範囲外の値は指定してはいけません。
本ルーチンはマスタ・スレーブSH2とも使用可能です。




Title
関数仕様
Function
システムクロックを切り替える
Function Name
SYS_CHGSYSCK
No
4.1
 書 式  
void SYS_CHGSYSCK(Uint32 CkMode);
 入 力  
CkMode:
0:CPU 26MHz、320/640モード
1:CPU 28MHz、352/704モード
 出 力  
なし
 関数値 
なし
 機 能  
CkModeで指定された値にシステムクロックを切り替えます。
 備 考  
リセットされるデバイスや処理時間に関して、概要やSMPCマニュアルを参照してください。
本ルーチンをスレーブSH2で呼び出した場合、システムはハングアップします。必ずマスタSH2で呼び出してください。




Title
関数仕様
Function
システムクロック値を参照する
Function Name
SYS_GETSYSCK
No
4.2
 書 式  
Uint32 SYS_GETSYSCK;
 入 力  
なし
 出 力  
なし
 関数値 
0または1:最後のSYS_CHGSYSCK()のパラメータ値
 機 能  
システムクロック値を読み出します。最後にSYS_CHGSYSCK()が呼ばれた時のパラメータ値です。
 備 考  
この値はマスタSH2で参照してください。




Title
関数仕様
Function
SCU割り込みルーチン優先度を変更する
Function Name
SYS_CHGUIPR
No
5.1
 書 式  
void SYS_CHGUIPR(Uint32 *IprTab);
 入 力  
IprTab:32ロングワードのデータ配列
 出 力  
なし
 関数値 
なし
 機 能  
BOOTROMが持つSCU割り込みルーチン用の優先度テーブルを、IprTabに指定されたテーブルの値で書き換えます。
 
一度書き換えを行うと、SCU割り込みルーチンによる割り込み処理は、要因ごとに該当するそのテーブル値の優先度で実行されるようになります。

テーブル内容をチェックしていません。テーブル内容に優先度関係の矛盾があれば、システムがハングアップする可能性があります。

 備 考  
次に書き換えるまで、テーブルの設定は有効です。その間、パラメータに指定したテーブルをアプリケーションで保持する必要はありません。なお、リセット時にはBOOT ROMの初期設定値に戻ります。
本ルーチンをスレーブSH2で呼び出した場合、結果は保証されません。




Title
関数仕様
Function
CDマルチプレーヤを起動実行する
Function Name
SYS_EXECDMP
No
6.1
 書 式  
void SYS_EXECDMP(void);
 入 力  
なし
 出 力  
呼び出し側には戻りません
 関数値 
なし
 機 能  
CDマルチプレーヤを起動実行します。
 備 考  
本ルーチンをスレーブSH2で呼び出した場合、システムはハングアップします。必ずマスタSH2で呼び出してください。




Title
関数仕様
Function
パワーオンクリアメモリを操作する
Function Name
SYS_PCLRMEM
No
7.1
 書 式  
Uint8 *SYS_PCLRMEM
 入 力  
通常のメモリアクセスを行ってください。
 出 力  
通常のメモリアクセスを行ってください。
 関 数値 
なし
 機 能  
BOOT ROMが管理する8バイトのメモリのアドレスです。このメモリはパワーオン起動時のみ0に初期化されますが、リセットボタン(NMI)では内容は保持されます。
 備 考  
範囲のチェックは行っていません。範囲外のアクセスをしないよう注意してください。


戻る|   ■
PROGRAMMER'S GUIDEシステムプログラムユーザーズマニュアル
Copyright SEGA ENTERPRISES, LTD., 1997