#### フラッシュメモリ関連

. |

### fm_prd_ex（ORG 0120H）
フラッシュメモリのページデータ読み出し

#### 引数

読み出すフラッシュメモリの開始上位アドレス：fmadd_h（RAMバンク1　07EH）
読み出すフラッシュメモリの開始下位アドレス：fmadd_l（RAMバンク1　07FH）
読み出すフラッシュメモリのバンクアドレス：fmbank　（RAMバンク1　07DH）

#### 戻り値

リードデータ（128バイト）：RAMバンク1の080H〜0FFH

#### 破壊レジスタ

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

ACC，TRL，TRH，r0

#### 機能

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

#### 説明

このサブルーチンをCALLすることにより、フラッシュメモリから1ページ（128バイト）のデータを読み出すことができます。このサブルーチンを使用する場合は、あらかじめ下記の設定を行う必要があります。

フラッシュメモリから読み込むときには、以下の点に注意してください。

- このサブルーチンはエラーを返しません。引数などに注意してCALLしてください。
- サブルーチンをCALLする直前で、全ての割り込みを禁止してください。
- サブルーチンをCALLする前に、間接アドレスレジスタのバンクをbank0に設定してください。
- STADが00Hに設定されている状態でCALLしてください。STADが00H以外に設定されている場合、画面の一部が書き変わります。
- システムクロックを1/12分周のRC発振に切り換えてください。
- サブルーチン動作中は、ローバッテリー検出を禁止してください。

##### ■使用するRAMのバンクの設定

1. 使用するRAMをバンク1に設定（PSWのビット1を‘1’に設定）

PSWレジスタについては「ハードウェア編」の「3.8　プログラムステータスワード（PSW）」を参照してください。

##### ■フラッシュメモリの読み出し開始アドレス値の設定

1. 上位アドレス（8ビット）：fmadd_h（RAMバンク1の07EH）に設定
2. 下位アドレス（8ビット）：fmadd_l（RAMバンク1の07FH）に設定

##### ■読み出しを行うフラッシュメモリのバンク設定

1. 読み出しを行うフラッシュメモリをバンク0に設定
   RAMバンク1の07DHを‘00H’に設定します。

上記以外の値を設定した場合、正常に動作しない場合があります。

リードしたデータは、RAMバンク1の080H〜0FFHに書き込まれます。

読み出し設定の際には、以下の点に注意してください。

- 2ページにまたがってデータの読み出しはできません。そのため、読み出し開始アドレスの設定は、必ず各ページの先頭アドレスを指定してください。
  各ページの先頭アドレスは、下記の式で決定されます
  先頭アドレス値（2バイト）＝080H×ページ番号（0〜511）
  1ページごとに読み出しを行うため、下位アドレスの0〜6ビットは必ず‘0’に設定する必要があります。各ページの先頭アドレス以外の値を設定した場合、正常に動作しない場合があります。
- 読み出したデータは、元のRAMの内容に上書きされます。

ページについて フラッシュメモリ空間を先頭アドレスから128バイトごとに分割したそれぞれの領域をページといいます。フラッシュメモリは、このページ単位で管理されます。 フラッシュメモリ空間の1バンクは64Kバイトですので、1バンクは512ページに分割されています。

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

▽ fm_prd_exが行なうデータ転送(図93)

[←] | [INDEX] | [→]