### 1-6　実行ファイルの起動

Dreamcastまたは通常のコンピュータから、アプリケーションの実行ファイルを転送し、その実行ファイルをビジュアルメモリ単体で動作できる機能です。

1つのビジュアルメモリには、1つの実行ファイルのみを転送できます。したがって、同時に実行できるアプリケーションも1つのみとなります。

アプリケーション用に公開されているOSプログラムがいくつかあり、これらを利用することが可能です。

##### ■ビジュアルメモリ用アプリケーションの開発

ビジュアルメモリ用アプリケーションの開発は、MS-DOS（汎用）のアセンブラ、リンカを用います。 リンカによって生成された実行ファイルは、E2H86K.EXEでビジュアルメモリ用の実行ファイルに変換します。

ビジュアルメモリ用の実行ファイルは、Windows95以上で実行可能な「ビジュアルメモリシミュレータ」でデバックできます。 この「ビジュアルメモリシミュレータ」は、ビジュアルメモリのハードウェアをすべてソフトウェアでエミュレーションします。詳細については『ビジュアルメモリ シミュレータマニュアル』を参照してください。

##### ■実行ファイルの転送

実行ファイルは、フラッシュメモリのブロック番号00H〜7FHに格納されます。また、実行ファイルの先頭は、ブロック番号00Hから順番に格納されます。

Dreamcastまたはコンピュータからビジュアルメモリにアプリケーションを転送する場合、ブロック番号00Hから連続した空き領域を確保（デフラグ）してから転送を開始してください。

空き容量がアプリケーションより少なかったり、連続した空き領域を確保できない場合は転送できません。

転送には、Ninjaライブラリや転送ユーティリティを利用してください。空き領域のチェックやデフラグが自動的に行なわれます。

##### ■実行ファイルのサイズ

実行ファイルのサイズは、64Kバイトまでです。 実行ファイルのサイズがこれ以上の場合は、ビジュアルメモリに転送することはできません。

プログラム実行中にフラッシュメモリをアロケート することはできません。フラッシュメモリ中にデータ領域を確保する場合は、あらかじめ実行ファイル中にその領域を確保する必要があります。

実行ファイルには、OSプログラムの呼び出しや、割り込みベクトルが記述された「プログラムヘッダ領域」が含まれます。SDKに添付の“GHEAD.ASM”では、0000H−01FFHまでがプログラムヘッダ領域として確保されています。

##### ■アプリケーションから利用できるOSプログラム

アプリケーションから利用できるOSプログラムの一覧です。

OSプログラムを呼び出すと、ワークエリアとして使用されるRAMがあります。

1. ローバッテリ自動検出

：
電池容量が少なくなった場合、自動的にその旨を警告するかどうかを指定できます。

1. 時計の読み出し

：
ビジュアルメモリ内蔵の時計から日時を読み出します。

1. フラッシュメモリ書き込み

：
フラッシュメモリにブロック単位でデータを書き込みます。

1. フラッシュメモリの読み込み

：
フラッシュメモリからブロック単位でデータを読み込みます。

1. フラッシュメモリのベリファイ

：
フラッシュメモリに書き込んだ内容の整合性をチェックします。

##### ■RAM

アプリケーションが利用できるRAMは、次のとおりです。

RAM | ： | 00H〜0FFH（バンク1）
|  | RAMのバンク0は、システム専用なのでスタック領域を除いてアプリケーションからの利用はできません。
作業用RAM | ： | 00H〜1FFH（アドレス指定して1バイト単位で読み書きします）
XRAM | ： | バンク0，バンク1

▽ RAMのメモリマップ(図10)

##### ■アプリケーションのデータを保存する

ビジュアルメモリ用アプリケーションの途中経過やパラメータなどを保存したい場合は、その実行ファイル内にデータ領域を確保してください。実行ファイルは、フラッシュメモリに読み込まれますので、データ領域もフラッシュメモリに確保されます。Dreamcastの保存データと同形式のファイルを作成することはできません。

Dreamcast用アプリケーションとリンクして、ビジュアルメモリで保存したデータを利用する場合は、ビジュアルメモリ用アプリケーション自身を読み込み、データが保存されているアドレスを参照するように設計してください。

▽ ビジュアルメモリとDreamcastのセーブデータをリンクする(図11)

##### ■オートパワーオフ

2分間にわたりボタン操作や通信が行なわれない場合は、自動的にスリープ状態になる「オートパワーオフ機能」が組み込まれています。スリープ状態のビジュアルメモリについては「1.10　スリープ機能」を参照してください。

なお、ゲームモード中はオートパワーオフしません。アプリケーションで独自にスリープ状態にしてください。詳しくは「5.3　スリープ機能」を参照してください。

[←] | [INDEX] | [→]