# CTRDG_WriteAgbFlashSector

## 構文

      #include <nitro/ctrdg.h>

      u16 CTRDG_WriteAgbFlashSector(u16 sec_num, u8* src);

      対応するAGB時の関数：u16 (*ProgramFlashSector)(u16 secNo,u8 *src)

## 引数

sec_num | 対象セクタNo
src | 書き込み元アドレス

## 返り値

書き込みに成功すれば 0 を返します。失敗した場合は 0 以外を返します。

## 説明

src アドレスから１セクタ分(4kbyte)のデータを対象セクタ№に書き込みます。
本ルーチン内で CTRDG_EraseAgbFlashSector をコールし、セクタを消去してから書き込みを行います。
対象セクタNo が範囲外の時はエラーを返します。
本ルーチンの実行中、グローバル変数 flash_remainder を参照することで、残バイト数を知ることができます。

アクセスサイクルの設定は関数内で行いますので、事前に行う必要はありません。
また、この関数ではタイムアウト測定用にチックを使用しますので事前に `OS_InitTick( )`を呼んでおく必要があります。

※この関数内では一定期間全ての割り込みが禁止され、カートリッジバスがロックされますので注意して下さい。
特に、本関数コール時はダイレクトサウンドおよびＶ・Ｈブランク同期、表示同期、カートリッジリクエスト等の特定のタイミングで自動起動するＤＭＡは使用しないで下さい。

また IS-NITRO-DEBUGGER 1.66 以前のバージョンでは AGB バックアップデバイスに正常にアクセスすることはできませんので、注意してください。

## 参照

`CTRDG_WriteAndVerifyAgbFlash, CTRDG_WriteAgbFlashSectorAsync, CTRDG_WriteAndVerifyAgbFlashAsync
`

## 履歴

2006/05/25 IS-NITRO-DEBUGGER 1.66 以前のバージョンでは AGB バックアップデバイスに正常にアクセスできないことを追記
2006/04/07 初版