cc65 ist eine vollständige Cross-Entwicklungspaket für die 6502-Systeme, einschließlich einer leistungsfähigen Makro-Assembler, einen C-Compiler, Linker, Librarian und einige andere Werkzeuge. cc65 ist auf einem C-Compiler, die ursprünglich für den Atari 8-Bit-Computer, die von John R. Dunning angepasst wurde basierend.
Die ursprüngliche C-Compiler ist eine kleine C Nachkomme, aber hat mehrere Erweiterungen und einige der Grenzen des ursprünglichen Kleine C-Compiler vorbei sind. Die ursprüngliche Urheber ermöglicht freie Weiterverbreitung einschließlich Quellen, auch wenn er nicht als Open Source Software zu qualifizieren nach der Open Source Definition.
Die ursprüngliche Atari-Compiler ist ab http://www.umich.edu/~archive/atari/8bit/Languages/Cc65/. Das Komplettpaket besteht aus dem Compiler, Assembler, einen Bibliothekar, einen Linker und eine C-Bibliothek für den Atari. Es gibt einige Pakete im Netz, die als Crosscompiler für DOS oder Unix angepasst werden behaupten, aber nicht in der Lage sie richtig zum Laufen zu bringen.
Weil ich einen C-Compiler für meine CBM Maschinen, nahm ich die Atari-Compiler und begann ein Rewrite. Bis heute habe ich große Teile der Compiler neu geschrieben, die alle der Bibliothek, dem Assembler, den Linker und den Bibliothekar vollständig ersetzt, und fügte hinzu, eine Oberfläche für den Einsatz zu vereinfachen. Alle Änderungen wurden mit der Portabilität im Gedächtnis getan worden, so die Portierung auf neue Architekturen 6502 sollte recht einfach sein.
Der Compiler ist fast ISO C kompatibel, so sollten Sie in der Lage, viele Quellen aus anderen Systemen zu übersetzen.
Möglicherweise gibt es andere Zielsystem abhängigen Einschränkungen. Ein Beispiel ist die Datei-I / O, die nicht auf allen Plattformen implementiert ist. Das ist keine technische Einschränkung (wie bei der oben genannten Sachen), jedoch nur, dass niemand genug, um den tatsächlichen Code zu schreiben betreut.
Der Compiler ist nur eine der in diesem Paket Werkzeuge. Der Assembler-Suite (Assembler, Linker, Archivierungs) ist eine komplette Entwicklungsumgebung für sich selbst, die verwendet werden, Programme für jede 6502-Maschine schreiben können werden. C-Code und Assembler-Code zusammen und verwendet werden, können sich gegenseitig anrufen werden.
Der Monteur ist ein Durchgang macroassembler und in der Lage ist Ausgangscode für den 6502, die 65SC02 und 65SC816. Es hat viele nette Features wie Include-Dateien, bedingte Assemblierung, Makros, verschachtelte lexikalischen Ebenen (dh lokale Symbole), und vieles mehr. Der Assembler erzeugt Objektdateien verschiebbaren Code enthält. Diese Dateien müssen über einen Linker ausgeführt werden, um das endgültige Programm erstellen.
Der Linker hat eine flexible Ausgabeformat und ist in der Lage, ROMable Code (verschiedene Last und führen Sie Adressen für Daten) unterstützt, Steilsysteme (Segmente die gleiche Lauf Adresse teilen), Systeme mit mehreren ROMs, unbegrenzte Segmenten mehr als ein BSS-Segment und viele andere Dinge.
Die Archivierungs wird verwendet, um Bibliotheken mit Objektdateien erstellen. Dies vereinfacht die Codeverwaltung. Der Linker wird nur die Module aus einer Bibliothek, die tatsächlich benötigt werden, zu extrahieren.
Um simplifiy Verwendung, gibt es auch eine Oberfläche für die in dem Paket enthaltenen cc65 Werkzeuge. Das Frontend ist benannt CL65. Er weiß, wie man Binärdateien aus einer Liste von C-Dateien, Assembler-Dateien, Objektdateien und Bibliotheken zu bauen. Für kleinere Projekte ist nur ein Aufruf des CL65 Dienstprogramm benötigt, um eine binäre aus mehreren Quelldateien und Bibliotheken zu bauen
Eigenschaften .
- Der Compiler ermöglicht einzelne Zeile Kommentare die mit // beginnen. Diese Funktion wird in der strengen ANSI-Modus deaktiviert.
- Der Compiler ermöglicht unbenannte Parameter in Parameterlisten. Der Compiler stellt keine Warnungen über nicht verwendete Parameter, die keinen Namen haben. Diese Funktion wird in der strengen ANSI-Modus deaktiviert.
- Der Compiler hat einige zusätzliche Schlüsselwörter, die für spezielle Funktionen benötigt werden. In strengen ANSI-Modus beginnen die zusätzlichen Stichworte, mit zwei Unterstrichen.
- Der flüchtige Modifizierer hat keine Wirkung.
- Die Datentypen float und double sind nicht verfügbar.
- Der Compiler unterstützt nicht die Bit-Felder.
- C-Funktionen möglicherweise nicht zurück Strukturen und Strukturen können nicht als Parameter als Wert übergeben werden. Struct Zuordnung möglich ist.
- Es gibt einige, Begrenzung der Größe der lokalen Variablen. Nicht alle Funktionen sind verfügbar, wenn die Größe der lokalen Variablen 256 Byte überschreitet.
- Ein Teil der C-Bibliothek ist nur mit fastcall Aufrufkonventionen (siehe unten). Das bedeutet, dass Sie möglicherweise nicht Zeiger auf diese Funktionen zu mischen mit Zeigern auf Benutzer geschrieben Funktionen.
Was ist neu in dieser Pressemitteilung:
- Einige Makro-Themen und Probleme mit falschen Code von der C erzeugt Compiler wurden behoben.
- Dies schließt Umwandlung einer Funktion, um Zeiger und die Runtime-Division Routine führen.
- Der Assembler hatte auch einige Makrofragen und Probleme mit Ausrichtungen von mehr als 256 Byte.
- Es gab Probleme mit 80-Zeichen-Modus und Conio Scrollen in der C128-Bibliothek.
- Die Atari-Bibliothek hat jetzt POSIX-Dateiverzeichnis Routinen.
- Es wurden mehrere Änderungen an der Dokumentation, Fehlerbehebungen und Verbesserungen.
Was ist neu in der Version 2.13.0:.
- Unterstützung von Bit-Feldern hinzugefügt wurde
- Diese Version verbessert die Einhaltung von Standards und zusätzliche Warnhinweise für zweifelhafte Code emittiert werden.
- Die Bibliotheken werden für mehr Geschwindigkeit oder kleinere Größe eingestellt ist.
- Der Compiler erzeugt Codes schneller in vielen Fällen in der Regel ohne viel von einer Zunahme der Codegröße.
Kommentare nicht gefunden