Nachdem ich die letzte ASM-Compo gewonnen habe und damit die zweifelhafte Ehre erlangt habe, die nächste Compo auszurichten (nochmal Danke an Mac Bacon ^^) folgt hier in rascher Folge die ASM-Compo #3!
Nachdem die Teilnehmer ja letztes Mal einige Kreativität an den Tag gelegt haben, gibt es diesmal ein etwas trockeneres Thema: es geht darum, den vorgegebenen Text mit einem C64 auf den Bildschirm zu bringen, und zwar mit so wenig Speicherverbrauch wie möglich! Natürlich gibt es auch hier einige Nebenbedingungen:
- Es darf nicht auf das ROM zugegriffen werden, mit der Ausnahme, dass die vorgegebene Einsprungaddresse für CHROUT benutzt werden darf
- Auf die I/O Chips darf nicht zugegriffen werden
- Modifizieren des vorgegebenen Codes zur Laufzeit ist verboten
- Zugriff auf jegliches RAM ist erlaubt (das schließt das Color RAM ein, vielleicht nützt es ja jemandem was...)
Regel-Erweiterung:
Um mehr Diversität bei den Lösungen zu bekommen, darf davon ausgegangen werden, dass das Color-RAM zu Beginn des eigenen Codes korrekt gesetzt ist und kein Color-RAM Bug vorliegt.
Es gibt nur eine Kategorie: Gewinner ist, wer die gestellte Aufgabe mit dem kleinsten Programm (das schließt Code und Daten ein) bewältigen kann.
Sollte es Beiträge geben, die die obigen Regeln trickreich umgehen, ohne sie zu brechen, so wird für diese eine Extra-Kategorie erstellt.
Deadline ist der 20. September 2014, 19:00 Uhr MEZ. Beiträge bitte als Source hier in den Thread oder per PM direkt an mich.
Die Datei "template.asm" enthält den vorgegebenen Code sowie eine naheliegende Implementierung mit einem Speicherverbrauch von 741 Bytes, die es zu schlagen gilt.
Zusätzlich habe ich den geforderten PETSCII-Text als Hex-Dump angehängt, um eventuelle Analysen und Verarbeitung zu vereinfachen. Falls jemand ein anderes Format bevorzugt, erstelle ich es gerne auf Anfrage.
Für den geneigten Leser gibt es hier eine meiner Meinung nach hervorragende Einführung in Kompressionsalgorithmen von Pasi Ojala, dem Autor von PUCRUNCH: Compression Basics. Als Tipp auf den Weg geben kann ich, dass bei dieser kleinen Datenmenge die Codesize für das Entpacken eine wesentliche Rolle spielt, eine einfache Lösung wird hier also vermutlich besser sein, als einen kompletten Exomizer oder ähnliches zu verwenden. Ich habe eine eigene Lösung implementiert (natürlich außer Konkurrenz) und kann versprechen, dass man das eine oder andere Byte sparen kann .
Zu gewinnen gibt es wie immer immerwährenden Ruhm und Ehre, sowie die Genugtuung, dabeigewesen zu sein. Ach ja, und außerdem die Bürde, die nächste ASM-Compo ausrichten zu müssen...
Viel Spaß!
EDIT by FXXS: Bedingungen auf Wunsch vom Autor um "mit einen C64" und Erweiterungsabsatz ergänzt.