# Anwenderprogramme

Der GNU Assembler (für PC und UNIX) und C Compiler (für PC und UNIX) ist die komfortabelste Art der Codeerzeugung für EyeBot. Information hierzu finden sich in der GNU Manual Page. Es gibt auch eine Reihe weiterer Compiler und Assembler für den 68.000. C Compiler und Assembler können vom EyeBot ftp-Server kopiert werden.

Zur Steuerung von EyeBot können eigene Programme in Assembler oder C geschrieben werden. C-Programme sollten die EyeBot-Bibliothek verwenden, welche eine Reihe von Funktioen für Graphikausgabe (Text oder Grafik), Kameraeingabe (Graustufen oder Farbe), Soundausgabe und Servosteuerung zur Verfügung stellt. Clib-Funktioen wie "printf" oder "getchar" können anstelle von "LCDPutString" und "KEYGet" verwendet werden. Durch die Hinzunahme dieser weiteren Bibliothek verlängert sich jedoch das ausführbare Programm!

### Schreiben eines Anwenderprogramms

- Beispiele anschauen
- Verändern eines bestehenden Programms oder Schreiben eines neuen Programms
- Konventionen für File-Endungen:

- .c C Source-Programm
- .s Assembler Source-Programm
- .o Object-File
- .hex S-Record File (ASCII) zum Download

### Programmieren in C

Editieren des C Sourcefiles (z.B. 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;
    }

- Compilieren des C-Programms mit Shell-Skript gcc68

- gcc68 demo.c

- Danach Downloaden des ausführbaren Programms auf den EyeBot.

- dl a.out

### Programmieren in Assembler

Editieren des Assembler Sourcefiles (z.B. hello.s):

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

    main:  LEA hello, A0          | Uebergebe String in Register
           CALLEXEC LCD_PutString | Aufruf der Systemroutine
           RTS

    hello: .asciz "Hello !"

- Assemblieren mit dem Shell-Skript gas68

- gas68 hello.s

- Danach Downloaden des ausführbaren Programms auf den EyeBot.

- dl a.out

Einige gnu Assembler-Konventionen weichen vom Motorola-Standard ab:

- Filenamen enden mit ".s"
- Kommentare beginnen mit "|"
- Ohne Längenattribut wird "WORD" angenommen
- Präfix "0x" anstelle von "$" für hexadezimale Konstanten
- Präfix "0b" anstelle von "%" für binäre Konstanten

### Kombinieren von C und Assembler Programmen

Mehrere C und Assembler Programme können zu einem Executable kombiniert werden. Hierfür gibt es zwei Möglichkeiten:

- Benutzung von gcc68 mit mehreren Sourcefiles oder gcc68 - c um individuelle Objektfiles zu erzeugen, die dann mit gcc68 zu einem Executable zusammengebunden werden.
- Verwendung eines Makefiles zum Compilieren/ Asemblieren/ Linken mehrerer Sourcefiles. Details finden sich in Beispielprojekten oder in der Unix Dokumentation.

Thomas Bräunl, 2001