13.07.2015 Aufrufe

CC65-Einsteigerkurs# - Strotmann.de

CC65-Einsteigerkurs# - Strotmann.de

CC65-Einsteigerkurs# - Strotmann.de

MEHR ANZEIGEN
WENIGER ANZEIGEN

Erfolgreiche ePaper selbst erstellen

Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.

<strong>CC65</strong>-<strong>Einsteigerkurs#</strong>Seit einiger Zeit gibt es im Internet einen C-Compiler für Rechner mit <strong>de</strong>m 6502 Prozessor. DankChristian Grössler, Mark Keates, Freddy Offenga und David Lloyd erzeugt dieser Compiler nebenC64, Apple II, PET, Plus4, C128 auch Atari 8-Bit Programme.Im ersten Teil dieses Kurse geht es um die Installation <strong>de</strong>s <strong>CC65</strong> Compilers und das Einrichteneiner Entwicklungsumgebung. Diese wird mit <strong>de</strong>m "Hello World" Programm aus <strong>de</strong>n Beispieldateiengetestet.Voraussetzungen:#Der <strong>CC65</strong> Compiler ist ein sogenannter "CrossCompiler", d.h. er läuft nicht auf Rechnern für die erspäter die Programme erzeugt. Man braucht neben einem Atari 8-Bit Rechner noch einen an<strong>de</strong>renComputer, auf <strong>de</strong>m <strong>de</strong>r <strong>CC65</strong> Compiler läuft. Dieser Rechner kann ein normaler Intel-kompatibler PC(386 und höher) mit <strong>de</strong>n Betriebssystemen DOS, Windows 9x/NT/2000/XP, OS/2 o<strong>de</strong>r Linux sein. Dasich <strong>de</strong>r <strong>CC65</strong> auf fast je<strong>de</strong>m Standard-Unix übersetzen lässt, kann als Übersetzungssystem auchein Atari ST, Amiga o<strong>de</strong>r Apple mit Unix (z. B. NetBSD) o<strong>de</strong>r MacOS Xbenutzt wer<strong>de</strong>n. In diesesKurs gehe ich von einem PC Betriebssystem mit DOS-ählicher Kommandozeile (DOS, Windows,OS/2) aus.Weiterhin muss es möglich sein, die erstellten Atari Programme auch auszuprobieren. Dies kannmit einer Verbindung zwischen <strong>de</strong>m Übersetzungsrechner (PC) und <strong>de</strong>m Atari geschehen (z. B. perSIO2PC Kabel) o<strong>de</strong>r mit einem Atari Emulator.<strong>CC65</strong> aus <strong>de</strong>m Internet la<strong>de</strong>n#Der <strong>CC65</strong> ist ein "OpenSource" Programm und kann als solches zusammen mit <strong>de</strong>m Quelltext aus<strong>de</strong>m Internet gela<strong>de</strong>n wer<strong>de</strong>n. Die Internetadresse ist http://www.cc65.org. Da <strong>de</strong>r Haupt-FTP Serverein wenig eigen mit <strong>de</strong>r korrekten Konfiguration <strong>de</strong>s Webbrowsers und <strong>de</strong>r Namensauflösung ist,sollte man bei Problemen die angegebenen Spiegel ("Mirror") Server benutzen. Der <strong>CC65</strong> Compilerwird auf <strong>de</strong>m Server in verschie<strong>de</strong>nen Paketen angeboten:• cc65-dos32-2.6.2.zip Compiler für DOS im 32Modus• cc65-os2-2.6.2.zip Compiler für OS/2 mit EMX Bibliotheken• cc65-win32-2.6.2.zip Compiler für Windows 32Bit Systeme (9x,ME,2000,XP)Im Unterverzeichnis "RPM" <strong>de</strong>s Servers fin<strong>de</strong>n sich Pakete für Linux Systeme mit RetHat PackageManager (RPM). Von diesen Compilerpaketen wird ein Paket für das verwen<strong>de</strong>te Betriebssystembenötigt.Zusätzlich zum Compiler gibt es Pakete für die verschie<strong>de</strong>nen Zielplattformen:• cc65-apple2-2.6.2.zip Dateien für die Apple II Entwicklung• cc65-atari-2.6.2.zip Dateien für die Atari 8-Bit (800, 800 XL, 130 XE) Entwicklung• cc65-c128-2.6.2.zip Dateien für die Comodore C128 Entwicklung• cc65-c64-2.6.2.zip Dateien für die Comodore C64 Entwicklung• cc65-cbm610-2.6.2.zip Dateien für die Comodore CBM610 Entwicklung• cc65-pet-2.6.2.zip Dateien für die Comodore PET Entwicklung• cc65-plus4-2.6.2.zip Dateien für die Comodore Plus4 Entwicklung• cc65-geos-2.6.2.zip Dateien für die GEOS Oberfläche (C64) EntwicklungZusätzlich fin<strong>de</strong>n sich in <strong>de</strong>r Datei cc65-sources-2.6.2.tar.gz die Quelldateien <strong>de</strong>s Compiler.


Installation#Für die Entwicklung von Programmen von Atari 8-Bit Systeme wird ein Paket für <strong>de</strong>n Compiler (jenach Betriebssystem) und das Atari 8-Bit Paket benötigt. Diese Dateien wer<strong>de</strong>n mit einem Entpacker(infoZip unzip o<strong>de</strong>r WinZip) in ein Unterverzeichnis geschrieben. Im Verzeichnis <strong>CC65</strong> sollte nun fünfVerzeichnisse (bin, doc, inclu<strong>de</strong>, lib, samples) und eine Datei "announce.txt" enthalten.Das "bin" Verzeichnis enthält die ausführbaren Programmbestandteile <strong>de</strong>s Compilers: <strong>de</strong>n C-Compiler (cc65.exe), einen Linker (ld65.exe), eine Compiler-Shell (cl65.exe), einen Assembler(ca65.exe), Objekt-Daten Ausgabe (od65.exe), Disassembler (da65.exe). Der GEOS ResourceCompiler wird auf <strong>de</strong>m C64 für die Programmierung <strong>de</strong>r GEOS Oberfläche benötigt und ist fürdie Atari Programmierung nicht von Be<strong>de</strong>utung. Es ist sinnvoll, das "bin" Verzeichnis mit in <strong>de</strong>nSuchpfad für Programme aufzunehmen, z. B. mit <strong>de</strong>m Befehl "PATH=%PATH%;c:\cc65\bin" in <strong>de</strong>rAUTOEXEC.BAT.Der Compiler, Assembler und Linker arbeiten zusammen um ein ausführbares Programm zuerzeugen. Damit diese drei Programme nicht einzelnt aufgerufen wer<strong>de</strong>n müssen, erledigt dieCompilerShell (cl65.exe) dies automatisch. Der Compiler benötigt zum übersetzen die Hea<strong>de</strong>r-Dateien (.h). Diese befin<strong>de</strong>n sich im "INCLUDE" Verzeichnis. Damit <strong>de</strong>r Compiler diese fin<strong>de</strong>t, mussdie Systemvariable <strong>CC65</strong>_INC auf das "INCLUDE" Verzichnis gesetzz wer<strong>de</strong>n, z. B. mit <strong>de</strong>m Befehl"SET <strong>CC65</strong>_INC=C:\cc65\inclu<strong>de</strong>" in <strong>de</strong>r AUTOEXEC.BAT.Ein Programm übersetzen#Im Verzeichnis "samples" befin<strong>de</strong>n sich Beispiel-Quelldateien, an <strong>de</strong>nen wir die Compilerinstallationausprobieren können. Haben wir <strong>de</strong>n Programmpfad und die Inclu<strong>de</strong>-Variable gesetzt, wechselnwir in das Verzeichnis "samples". Dort liegt <strong>de</strong>r Quellco<strong>de</strong> <strong>de</strong>s "Hello-World" Programms ("hello.c").Ein Aufruf von "cl65 -t atari hello.c" startet <strong>de</strong>n Übersetzungsvorgang. Da <strong>de</strong>r <strong>CC65</strong> standardmäßigProgramme für <strong>de</strong>n C64 erzeugt, gibt <strong>de</strong>r Parameter "-t atari" an, das wir ein Programm für <strong>de</strong>n Atari8-Bit Computer übersetzen wollen. Wem dies nicht behagt, <strong>de</strong>r kann <strong>de</strong>n <strong>CC65</strong> aus <strong>de</strong>n Quellen neuübersetzen und <strong>de</strong>n Atari 8-Bit als Standardsystem einsetzen.Alles geklappt? Nein? Ok, es gab möglicherweise die Fehlermeldung "Error: Cannot open `atari.o':No such file or directory". Dies ist eine unschöne Eigenheit <strong>de</strong>r "nicht-Unix" Versionen <strong>de</strong>s <strong>CC65</strong>.Der Linker benötigt die Dateien "atari.o" und "atari.lib" aus <strong>de</strong>m "lib" Verzeichnis, und er sucht sieim aktuellen Verzeichnis sowie im Verzeichnis "/usr/lib/cc65/lib/". Auf Unix Systemen führt das zumErfolg, bei Dos, Windows etc lei<strong>de</strong>r nicht. Ich kenne <strong>de</strong>rzeit drei Möglichkeiten, diesen Fehler zuumgehen:1. die Dateien "atari.o" und "atari.lib" in das jeweils aktuelle Verzeichnis mit <strong>de</strong>n Quelldateienkopieren (in diesem Fall "samples)2. die Quelldatei <strong>de</strong>s <strong>CC65</strong> än<strong>de</strong>rn und <strong>de</strong>n <strong>CC65</strong> aus <strong>de</strong>n Quellen neu übersetzen3. mit einem Hexeditor <strong>de</strong>n Eintrag in ld65.exe än<strong>de</strong>rn (Vorsicht, vorher eine Sicherheitskopie vonld65.exe anfertigen)Nach<strong>de</strong>m wir nun diesen Fehler umgangen haben können wir die Übersetzung erneut starten.Wir führen wie<strong>de</strong>r "cl65 -t atari hello.c" aus und fin<strong>de</strong>n, wenn alles klappt, zwei neue Dateien imVerzeichnis: "hello.o" und "hello". "hello.o" ist die Objektdatei vor <strong>de</strong>r Bearbeitung durch <strong>de</strong>n Linker,d.h. ohne <strong>de</strong>n atarispezifischen La<strong>de</strong>vorspann in <strong>de</strong>r Datei, welche <strong>de</strong>m DOS angibt, an welcherStelle im Speicher das Programm gela<strong>de</strong>n wird und wo es gestartet wird. "hello" ist das fertigeProgramm, wir können es ohne weiteres in "hello.com" umbenennen.


Programm ausprobieren:#Ich benutze hier zum Test <strong>de</strong>s Programms <strong>de</strong>n XFormer Atari Emulator. Es kann jedoch auch einan<strong>de</strong>rer Atari Emulator o<strong>de</strong>r ein original Atari Rechner benutzt wer<strong>de</strong>n. Der Befehl "xformer dos25.xfdhello.com" startet <strong>de</strong>n Atari mit einer DOS 2.5 Diskette in Laufwerk 1 und <strong>de</strong>m neuen Programm inLaufwerk 2. Nun mit "L" und <strong>de</strong>r Eingabe "D2:HELLO.COM" das Programm gestartet. Es sollte einschwarzer Bildschirm mit weissem Rand und <strong>de</strong>m Text "Hello world!" zu lesen sein.Und weiter....Soweit zum ersten Teil unseres Kurses. Im nächsten Teil wer<strong>de</strong>n wir uns näher mit <strong>de</strong>rProgrammiersprache "C" beschäftigen, die wichtigsten Unterschie<strong>de</strong> zu Basic lernen und ein BasicProgramm nach "C" übersetzen. Bis dahin viel Spass mit <strong>CC65</strong>.Carsten <strong>Strotmann</strong>, 2002erschienen im ABBUC Magazin

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!