English
INDEX ▲ |STN-49 |STN-50 |STN-51 |STN-52

STN-52

バックアップライブラリ作業領域サイズ


発行番号:
STN-52
発 行 日:
96/11/07
メディア:
●共 通○CD-ROM○カートリッジ○その他
関  連:
●プログラム○ハード○マニュアル○ツール○ゲーム○バグ○その他
情報区別:
●新 規○変 更○追 加
重 要 度:
●厳 守○推 奨○参 考○その他
添付資料:
●無○有
件名補足:

内 容

■変数領域の破壊

 バックアップライブラリの作業領域を8192バイト分確保した場合以下の条件で他の変数領域 が破壊される可能性があります。

  1. 最大サイズのデータを作成した場合
  2. ブロックアクセステーブル(2048ブロック)の最後の30ブロックを使用した場合

 これは、ブロックアクセステーブルが8192バイト(2048ブロック)使用してしまい、 バックアップライブラリの使用する変数領域120バイト分不足するため、ブロックアクセステー ブルの最後120バイト(30ブロック)分が他の変数領域を破壊してしまうためです。

    変更前                    変更後           
+−−−−−−−−−−+−−−−−−−−−− +−−−−−−−−−−+−−−−−−
|   変数領域   |    ↑      |   変数領域   |    ↑ 
| =120バイト  |           | =120バイト  |    	 
+−−−−−−−−−−+           +−−−−−−−−−−+      
|     ↑    |  定義サイズ    |     ↑    |      
|          |           |          |      
| ブロックアクセス | =8192バイト  | ブロックアクセス |  定義サイズ
|   テーブル   |           |   テーブル   |      
| =8192バイト |    ↓      | =8192バイト | =8312バイト
+ − − − − −+−−−−−−−−−− +          +      
|          |←この部分が破壊されて|          |      
|     ↓    | しまう。      |     ↓    |    ↓ 
+−−−−−−−−−−+ − − − − − +−−−−−−−−−−+−−−−−−

注:「変数領域=120byte」はバックアップライブラリが使用する変数領域です。

■対策

 バックアップライブラリの使用する作業領域を8312バイト確保してください。
 このうちわけは、

の合計 8312バイトです。

ブロックアクセステーブルはロングワードアクセス(4バイト)でおこなうので Uint32 で定義してください。

■例

Uint32 BackUpRamWork[2048+30];
以上
INDEX ▲ |STN-49 |STN-50 |STN-51 |STN-52
Copyright SEGA ENTERPRISES, LTD., 1997