## 第1章　アプリケーションの開発手順

ここでは、すでにアプリケーションの仕様があるものとして、プログラムのコーディングから実機チェックまでを説明します。

### 1-1　ソースコードを書く

プログラムの先頭には、必ず次の宣言文を記述します。

>     	chip	LC868700
>     	world	external
>     	public	main
>     	extern	_game_end

ビジュアルメモリ用のアプリケーションは、すべてフラッシュメモリに配置されるので、worldでは必ずexternalを宣言してください。

また、システムBIOSからアプリケーションが呼び出されると、フラッシュメモリの0000H番地が呼び出されます。0000H番地は、GHEAD.ASMにてjmp mainと記述されていますので、アプリケーションはゲームモードの突入用のmainというラベルを用意します。mainはGHEAD.ASMから参照されるので、public宣言をしておきます。

逆にアプリケーション終了時には、GHEAD.ASMの_game_endにジャンプしますので、このラベルが外部にあることをextern宣言します。

アプリケーションでフラッシュメモリ関連や時計関連のBIOSを呼び出す場合は、fm_wrt_ex, fm_vrf_ex, fm_prd_exなどが、外部プログラムである旨をextern宣言します。

次にデータセグメント（DSEG）の間接アドレスレジスタの構造を定義します。データセグメントは、すべてRAMに展開されます。なお、RAMの0000〜000FHまでは間接アドレスレジスタなので、アプリケーションで間接アドレスレジスタを使う・使わないに関わらず、16バイト分のRAMを確保してください。アプリケーションで利用できるRAM領域は、0010H以降です。

間接アドレスレジスタの詳細については『ビジュアルメモリハードウェアマニュアル』を参照してください。

コードセグメント（CSEG）は、0280Hより上位のアドレスからスタート（org 280H）させてください。0000H〜01FFHまではGHEAD.ASMが、0200H〜027FH（最小）まではインフォメーションフォークが利用します。//in00090 “GHEAD.ASM”には、割り込みベクタの定義とBIOSの呼び出し・戻り先などが定義されています。一方、インフォメーションフォークには、アプリケーション名やアイコンなどの情報を定義します。インフォメーションフォークの大きさが不定なのは、アイコンをアニメーションさせたり、大きめのアイコンを挿入したりといったことが選択できるためです。あらかじめ、インフォメーションフォークのイメージが決まっている場合は、0200Hにそのサイズを加えたアドレスからプログラムをスタートさせてください。

インフォメーションフォークの詳細については「第2章　ビジュアルメモリとDreamcast の連携」以降を参照してください。

[←] | [INDEX] | [→]