## 第10章　MODEボタンによるアプリケーションの終了手順

アプリケーションは、その実行中にMODEボタンが押された場合、直ちに処理を中断しシステムアプリケーションのモード管理画面へ復帰する必要があります。

ここでは、アプリケーションからシステムアプリケーションへ制御を渡す手順についてを説明します。

▽ モード選択画面への復帰フローチャート(図91)

### 10-1　各ラベルの処理内容

先のサンプルフローチャートにおいて、各ラベルの役割は次のようになっています。

『ビジュアルメモリSDK』に添付の“GHEAD.ASM”を合わせてご覧ください。

説明を簡素化するためにgame_endを除きすべて仮の名称になっています。

##### ■アプリケーション（フラッシュメモリ）

main

アプリケーションのメインプログラムです。

MODEボタンが押されたことで、下記のOSプログラム復帰サブルーチンにジャンプするようにプログラムする必要があります。

_game_end

アプリケーションを終了し、OSプログラムへと処理を移行するサブルーチンです。実行中のアプリケーションのデータを保持する場合は、このサブルーチンにジャンプする前にデータを保存するようプログラムしてください。OSプログラムでは、データの保存は行ないません。

アプリケーション内部で間接アドレスレジスタのBANKを切り替えて使用している場合は、このサブルーチンを実行する前に必ずBANKを0に設定し直す必要があります。

このサブルーチンは、割り込み処理中には実行しないで下さい。

##### ■システムBIOS（ROM）

game_end

アプリケーション終了後、システムBIOSに復帰する際の窓口となる復帰ルーチンです。

ROM内のシステムアプリケーションに復帰し、モード選択プログラムを起動します。

すべてのアプリケーションは、MODEボタンが押されたら直ちにgame_endへCHANGEするように設計してください。 なお、再突入時（アプリケーションを終了し再びゲームに戻る）に必要なRAM上のデータは、アプリケーション自身でその内容をフラッシュメモリに退避してください。データの退避は、game_endへのCHANGEよりも前に行なう必要があります。 また、再突入時のデータのリストアもアプリケーションで行なってください。

mode_main

モード選択プログラムです。

モード選択については「付録編」の「第19章　ビジュアルメモリのモード選択」を参照してください。

[←] | [INDEX] | [→]