# アプリケーション　プログラム

GNUアセンブラ(PC,UNIX用)またはCコンパイラ(PC,UNIX用)を容易に使用できます。 詳細についてはGNU マニュアルページを参照してください。また、その他の68000用コンパイラやアセンブラも使用できます。 コンパイラとアセンブラをダウンロードするには EyeBot ftpサーバーをご利用ください。

EyeBotを制御するためにアセンブラやC言語のプログラムを独自に作成することができます。Ｃプログラムでは EyeBotライブラリーを使用してください。ディスプレイ出力（テキストまたはグラフィクス）や、カメラ入力（白黒またはカラー）、サウンド出力、サーボ制御(モーター)用の関数が用意されています。 printfやgetcharのようなClib関数 をLCDPutStringやKEYGetの代わりに使用できます。しかし、これによって追加ライブラリ関数がリンクされ、結果として実行プログラムが大きくなることに留意ください。

### アプリケーションプログラムの作成方法

- 用意されている多くの 例題を一覧してください。
- 既存のファイルを改良したり、独自に作成することができます。
- 下記のファイル拡張子の決まりに注意してください：

- .c Ｃプログラムのソースファイル
- .s アセンブリプログラムのソースファイル
- .o オブジェクトファイル
- .hex Eyebotにダウンロードするための S-recordファイル（ASCII）

### Ｃ言語によるプログラミング

Cソースファイル（例えば demo.c）を以下のように編集します。：

    #include "eyebot.h"
    #include <stdio.h>

    int main ()
    {
        int k;

        printf("Hello !\n");
        k = KEYGet();
        printf("key %d pressed !\n", k);
        return 0;
    }

- Cプログラムをコンパイルするにはシェルスクリプトgcc68を使用します。

- gcc68 demo.c

- 次に実行ファイルをEyeBotにダウンロードします。

- dl a.out

### アセンブリ言語によるプログラミング

アセンブリソースファイル（例えばhello.s）を以下のように編集します。：

    .include "labmac.i"
    .section .text
    .globl main

    main:  LEA hello, A0          | load string address
           CALLEXEC LCD_PutString | call assembly routine
           RTS
    hello: .asciz "Hello !"

- アセンブルにはシェルスクリプトgas68を使用します。

- gas68 hello.s

- 次に、実行ファイルをEyeBotにダウンロードします。

- dl a.out

いくつかのGNUアセンブリの拡張子がモトローラ標準と異なっていることに注意してください。：

- ファイル名の最後に".s"を付けます。
- コメントの最初に"|"を付けます。
- もし長さ属性がないときには、"WORD"を仮定します。
- １６進定数を表示するとき接頭語として"$"の代わりに "0x"を使用します。
- ２進定数を表示するとき接頭語として"%"の代わりに "0b"を使用します。

### Ｃ言語とアセンブリ言語の組合せ

ひとつの実行ファイルを作成するときに、いくつかのC言語とアセンブリ言語のプログラムを組合わせることができます。組合せ方法として以下の二つの方法があります。：

- 全てのソースファイルを用いてgcc68を使用するか、gcc68 -cを使用して個々のオブジェクトファイルを生成した後にgcc68を使用してリンクして1つの実行ファイルを構築します。
- 複数のソースファイルをコンパイル/アセンブル/リンクするにはMakeファイルを使用します。詳細については 例題を参照するか、Unix関連文書を読んでください。

Thomas Bräunl, 2001