anago script file reference - workram access mode

スクリプトファイル

workram access mode では dumpcore.nut と指定された スクリプトファイル(.ae or .ag) を2つ読み込みます。dumpcore.nut の内容は変更しないでください。

スクリプトファイルでは board, cpu_ram_access() の2つの定義が必要です。簡潔な記述のために関数を追加することも可能です。

スクリプトファイルに必要な変数と関数

board

  • cpu_ram: そのハードの work RAM の設定

script_common_ja での記載も参考にしてください。

cpu_ram_access()

function cpu_ram_access(d, pagesize, banksize)

引数

  • d: userpointer
  • pagesize: board.cpu_ram.size_base * scale / board.cpu_ram.banksize
  • banksize: board.cpu_ram.banksize と同じ

戻り値

なし

説明

work RAM access 方法を定義します。下記の手順で実装します。

  • RAM 制御レジスタを read/write protect を解除する (レジスタがあれば)
  • cpu_ramrw で RAM へアクセス
  • RAM 制御レジスタの read/write protect をアクセス不可にする (レジスタがあれば)

pagesize が 1 以外を取り得る場合は for ループを使用します。

.ae or .ag ファイルから利用できる関数

cpu_write()

script_common_ja を参照。

この命令を使用して work RAM への書き込みができてしまいますが、読み込みはできないので cpu_ramrw()を使用してください。

cpu_ramrw()

function cpu_ramrw(d, address, length)

引数

  • d: userpointer
  • address: 対象アドレス。利用可能範囲は 0x6000-0x7fff。
  • length: 取得長。利用可能範囲は 1-0x2000。

戻り値

なし

説明

CPU 領域の対象アドレスから Work RAM データへアクセスします。

  • workram read mode 時には対象アドレスからデータを取得し PC 上に RAM image file を作成します。
  • workram write mode 時には読み込んだ RAM image file を対象アドレスへ書き込みます。