English
INDEX ▲ |STN-5 |STN-6 |STN-9 |STN-18 |STN-19 |STN-21 |STN-22

STN-18

システムプログラムに関する使用制限


発行番号:
STN-18
発 行 日:
95/01/20
メディア:
●共 通○CD-ROM○カートリッジ○その他
関  連:
●プログラム○ハード○マニュアル○ツール○ゲーム○バグ○その他
情報区別:
●新 規○変 更○追 加
重 要 度:
●厳 守○推 奨○参 考○その他
添付資料:
●無○有
件名補足:
SYS_SETSINT()関数のスレーブCPUからの使用制限

内 容

 SYS_SETSINT()関数をスレーブSHから使用した場合、ベクタ番号Numで示すスレーブ 用ベクタテーブルの該当ベクタには、正しいデフォルト値が書き込まれません。
このようにアドレスを0で指定するデフォルトの登録方法は、スレーブSHから行わな いでください。
 なお、マスタSHからマスタ用、スレーブ用ベクタテーブルを操作するのは問題ありま せん。また、これについてスレーブ用ベクタをデフォルト登録に戻す必要があれば、 以下の方法で処理してください。

■操作方法

 ●スレーブSHが、スレーブ用ベクタを独自に操作する場合
 スレーブSHプログラムが、ワークRAMに常駐するようなケースで、スレーブが 自から状況に応じて割り込み処理を使い分ける場合は、初めに(デフォルトを取得可能な時点)で、

  func_org = SYS_GETSINT(Num);

により変数に保存し、目的の処理ルーチンを登録,更新した後、

  SYS_SETSINT(Num, func_1st);
        :
  SYS_SETSINT(Num, func_2nd);
        :

デフォルトに戻すには、初めのアドレスを登録します。

  SYS_SETSINT(Num, func_org);

 ●マスタSHがスレーブ用ベクタを操作する場合
 スレーブSHプログラムがステージ毎に読み換えるようなケースで、マスタが スレーブON/OFFを頻繁に行う場合は、マスタがスレーブをONする前または OFFの後で、スレーブ用ベクタを初期化すれば良いので、マスタSHから前述の タイミングで、

  SYS_SETSINT(Num+0x100, 0);

を実行する。
 なお、ベクタ番号に0x100を加えることにより、マスタSHからスレーブ用 ベクタを操作する方法は、通常の処理ルーチン登録にも行えます。

以上
INDEX ▲ |STN-5 |STN-6 |STN-9 |STN-18 |STN-19 |STN-21 |STN-22
Copyright SEGA ENTERPRISES, LTD., 1997