Cc65
# Cc65

Der cc65 ist ein Cross-Compiler-Paket für alte (und neue) 6502-basierte Computerarchitekturen. Es umfasst einen Compiler für die Programmiersprache C, einen Makro-Assembler, Linker, Archiver und einige andere Tools. Das Compiler-Paket ermöglicht u. a. die Entwicklung von Programmen für den C64, C128, Apple II und Atari Heimcomputer/Handheld. Durch eine gute Programmbibliothek ist es u. a. mit dem cc65 sehr einfach möglich, Programme für die grafische Benutzeroberfläche GEOS (C64/128 Versionen) zu entwickeln.

Der Compiler unterstützt beinahe die ganze C-Programmiersprache. Das wichtigste noch fehlende Element der Sprache sind Gleitkommazahlen, daher sind Berechnungen nur mit ganzen Zahlen möglich. Die Funktionen der C-Standardbibliothek werden unterstützt, soweit sie auf den Zielsystemen sinnvoll umsetzbar sind.

## Systemübergreifende Programmierschnittstellen

### Statisch

* conio – Direkte Ein- und Ausgabe über Tastatur und Bildschirm
* dio – Direkter Datenträgerzugriff auf Blockebene

### Dynamisch

* em – Unterstützt diverse Arten von Speichererweiterungen auf einheitliche Weise, ähnlich EMS
* joystick – relatives Eingabegerät
* mouse – absolutes Eingabegerät
* serial – Unterstützt die Ein- und Ausgabe über RS-232 und ähnliche Schnittstellen
* tgi – einheitliche Schnittstelle für diverse Grafikmodi, ähnlich BGI

Verfügbarkeit von APIs bzw. Anzahl der Treiber :

| | statisch | statisch | dynamisch | dynamisch | dynamisch | dynamisch | dynamisch |
| - | - | - | - | - | - | - | - |
| | conio | dio | emd | joy | mou | ser | tgi |
| apple2 | ✓ | ✓ | 1 | 1 | 1 | 1 | 2 |
| apple2enh | ✓ | ✓ | 1 | 1 | 1 | 1 | 2 |
| atari | ✓ | ✓ | | 2 | | | |
| atari2600 | | | | | | | |
| atari5200 | ✓ | | | 1 | | | |
| atmos | ✓ | | | | | | 2 |
| c16 | ✓ | | 1 | 1 | | | |
| c64 | ✓ | | 6 | 4 | 3 | 1 | 1 |
| c128 | ✓ | | 5 | 2 | 3 | 1 | 2 |
| cbm510 | ✓ | | 1 | 1 | | 1 | |
| cbm610 | ✓ | | 1 | | | 1 | |
| creativision | ✓ | | | 1 | | | |
| gamate | ✓ | | | 1 | | | |
| geos | ✓ | ✓ | 1 | 1 | | | 1 |
| lynx | | | | 1 | | 1 | 1 |
| nes | ✓ | | | 1 | | | |
| osic1p | ✓ | | | | | | |
| pce | ✓ | | | 1 | | | |
| pet | ✓ | | | 1 | | | |
| plus4 | ✓ | | | 1 | | 1 | |
| supervision | | | | 1 | | | |
| telestrat | ✓ | | | | | | 2 |
| vic20 | ✓ | | | 2 | | | |

## Beispielhafte Projekte

* Contiki (Internet Program Suite)
* Zoo Mania (Spiel)
* IP65 (Protokollstapel)
* VM02 (Java VM)
* EasyFlash (Tool)
