Wenn Sie zu diesem Projekt beitragen wollen, können Sie neue Funktionen und Klassen entwickeln.
Dank Wolfram Kurtz für die Übersetzung dieses página web ins Deutsche.
Die Sprache ccZ80++ ermöglicht es, Programme für Z80-basierte Computer wie z.B. den Amstrad CPC, den Amstrad PCW, den Sinclair Spectrum oder für MSX-Computer zu schreiben.
Sie kann unter Windows direkt, unter Linux mit WINE oder Mono und auf dem Mac mit Mono verwendet werden. Außerdem wird das Microsoft .NET Framework (Client Profile Version 4 oder höher) benötigt.
Aufbauend auf der an C orientierten Sprache ccz80 wurde in ccZ80++ die Definition von Klassen und die Verwendung von Objekten hinzugefügt. Durch die sehr stark an C++ angelehnte Syntax kann sie recht schnell erlernt werden.
Hauptmerkmale
lauffähig unter Windows, Linux (mit WINE bzw. Mono) oder Mac OS (mit Mono)
benötigt Microsoft .NET Framework 4 Client Profile (oder höher)
Aufruf von der Kommandozeile aus
Ausgabe von ccz80-, Assembler- und Maschinen-Code
Verwendung von Klassen und Objekten
Klassen mit Vererbung
überladbare Funktionen
private und öffentliche Klassen-Elemente
statische und nicht-statische Klassen-Elemente
Quellcode auf mehrere Dateien verteilbar
Verwaltung von 8- und 16-Bit-Werten sowie Character-Strings
ein- oder mehrdimensionale Felder aus numerischen Variablen, Character-Strings oder Objekten
automatischer Funktionsaufruf zur Initialisierung von Objekten
Variablen im Stack oder im statischen Speicher deklarierbar
numerische und Zeichenketten-Konstanten
Bausteine für strukturierte Programmierung
Integration von Assemblercode direkt oder über Funktionen
Das Paket enthält eine ausführliche Beschreibung der Sprache (s. Download-Bereich).
Die ccZ80++ Version von "Hallo Welt":
include Text.ccz80++
class Program
{
static void main()
{
Text.PrintString("Hello World");
}
}
Ein Beispiel mit selbst definierter Klasse und Objekterzeugung:
class Ball
{
const minX = 1, maxX = 32;
const minY = 1, maxY = 24;
short coordX, coordY;
public void SetPosicion(short newX, short newY)
{
if (newX >= minX && newX <= maxX) coordX = newX;
if (newY >= minY && newY <= maxY) coordY = newY;
}
public void MoveLeft()
{
MoveLeft(1);
}
public void MoveLeft(short positions)
{
if (coordX - positions >= minX) coordX -= positions;
else coordX = minX;
}
}
class Main
{
static void main()
{
Ball ball;
ball.SetPosition(10, 12);
ball.MoveLeft();
ball.MoveLeft(3);
}
}
Mitgelieferte Klassen
Mit dem "ccZ80++"-Paket kommt eine Reihe von Klassen, die die vom ccz80-Compiler bekannten Funktionen ebenfalls abdecken.
Die Klassen sind teilweise voneinander abhängig, so dass ggf. noch weitere Klassen geladen werden müssen. Achten Sie im Quellcode der gewünschten Klasse auf include-Zeilen am Anfang.
Benutzerlizenzen
Für den persönlichen Gebrauch ist die Nutzung des Compilers frei.
Zur Erstellung von kommerziellen Programmen mit ccZ80++ kontaktieren Sie bitte den Autor.
Achten Sie auf die richtige Version der "Indirections" - sie muss zum CPC-Modell passen, auf dem das zu erstellende Programm laufen soll (464/472 oder 664/6128).
Klasse File: Dateimanagement (Band oder Diskette)
Klasse Float: Operationen mit Fließkommazahlen
Klasse Graphics: Grafik-Funktionen
Klasse Indirections464: Firmware-Funktionen der Modelle 464 und 472
Klasse Indirections6128: Firmware-Funktionen der Modelle 664 und 6128
Klasse Keyboard: Tastaturfunktionen
Klasse Printer: Druckerfunktionen
Klasse Screen: Bildschirmfunktionen
Klasse Sound: Tonausgabe
Klasse Text: Funktionen zur Textdarstellung
Klasse Timer: Interruptbehandlung
Game Utils CPC: Bibliothek zur Spieleprogrammierung mit den Klassen GameKeyboard, GameScreen, GameSprite und GameSystem
CP/M Plus
Klasse CpmPlus: Allgemeine Funktionen des Betriebssystems
Klasse Disc: Disketten- und Dateioperationen
Klasse Indirections: BDOS- und BIOS-Sprungtabellen
Klasse Keyboard: Tastaturfunktionen
Klasse Printer: Druckerfunktionen
Klasse Screen: Bildschirmfunktionen
Klasse Text: Funktionen zur Textdarstellung
Game Utils PCW: Bibliothek zur Spieleprogrammierung mit den Klassen GameKeyboard, GameScreen, GameSprite und GameSystem
MSX
Klasse Indirections: Firmware-Funktionen
Klasse Keyboard: Tastaturfunktionen
Klasse Msx: allgemeine Systemfunktionen
Klasse Printer: Druckerfunktionen
Klasse Screen: Bildschirmfunktionen
Klasse Text: Funktionen zur Textdarstellung
Spectrum
Klasse Disc: Disketten- und Dateioperationen
Klasse Graphics: Grafikfunktionen
Klasse Keyboard: Tastaturfunktionen
Klasse Screen: Bildschirmfunktionen
Klasse Text: Funtkionen zur Textdarstellung auf Bildschirm und Drucker
Game Utils Spectrum: Bibliothek zur Spiele-Programmierung mit den Klassen GameKeyboard, GameScreen, GameSprite und GameSystem
Klasse Fourspriter: angepasste Fourspriter 2.1-Bibliothek von TheMojonTwins zur Verwendung von Sprites