. |

### fm_wrt_ex（ORG 0100H）
フラッシュメモリへの書き込み

#### 引数

書き込むフラッシュメモリの開始上位アドレス：fmadd_h（RAMバンク1　07EH）
書き込むフラッシュメモリの開始下位アドレス：fmadd_l（RAMバンク1　07FH）
書き込むフラッシュメモリのバンクアドレス：fmバンク　（RAMバンク1　07DH）
書き込むフラッシュメモリのデータ（128バイト）：RAMバンク1　080H〜0FFH

#### 戻り値

ACC　正常終了すると00Hが、異常終了すると0FFHがACCにセットされます。

#### 破壊レジスタ

このサブルーチンを呼び出すと、次のレジスタの内容が破壊されます。

ACC，B，C，TRL，TRH，r0

#### 機能

フラッシュメモリの、指定したアドレスから連続した1ページ（128バイト）の領域にデータを書き込みます。

#### 説明

このサブルーチンをCALLすることにより、1ページ（128バイト）分のデータを指定したアドレスから連続した領域に格納します。

このサブルーチンを使用する場合は、あらかじめ下記の設定を行う必要があります。

1. PSWのビット1を‘1’に設定し、使用するRAMをバンク1に設定します。
2. フラッシュメモリに書き込むデータをRAMバンク1の080H〜0FFHに格納します。
3. RAMバンク1の07DHを‘00H’に設定し、書き込みを行うフラッシュメモリをバンク0にします。

   フラッシュメモリのバンク1は、アプリケーションからアクセス禁止です。 データを書き込まないでください。

4. フラッシュメモリの上位アドレス（8ビット）を、RAMバンク1の07EHに書き込み、下位アドレス（8ビット）をRAMバンク1の07FHに書き込みます。

   フラッシュメモリに書き込むときには、以下の点に注意してください。
   - サブルーチンをCALLする直前で、全ての割り込みを禁止してください。
   - サブルーチンをCALLする前に、間接アドレスレジスタのバンクをbank0に設定してください。
   - 2ページにまたがったデータの書き込みはできません。書き込み開始アドレスの設定は、必ず各ページの先頭アドレスを指定してください。
     各ページの先頭アドレスは、下記の式で計算できます。
     先頭アドレス値（2バイト）＝080H×ページ番号（0〜511）
     1ページごとに書き込みを行うため、下位アドレスの0〜6ビットは必ず‘0’になります。
     各ページの先頭アドレス以外の値を設定した場合、正常に動作しない場合がありますので注意してください。
   - STADが00Hに設定されている状態でCALLしてください。STADが00H以外に設定されている場合、画面の一部が書き変わります。
   - システムクロックを1/6分周のRC発振に切り換えてください。
   - サブルーチン動作中は、ローバッテリー検出を禁止してください。

fm_wrt_ex実行時の動作は、次のとおりです。

▽ fm_wrt_exが行なうデータ転送(図94)

[←] | [INDEX] | [→]