Hi allerseits,
das ist mein erstes Posting hier, ermutigt im Chat will ich gleich mal vorstellen, was ich die letzten Wochen mit dem Assembler von cc65 (ca65) vollendet habe ![]()
Kurz zur Geschichte:
- Episode 1, ca 1995, bin noch Schüler, lerne gerade ein bisschen Assembler -- ich habe ein Buch von Peter Wollschlaeger, da sind auch Grafikroutinen drin, aber etwas "simples" wie eine Linie zeichnen fehlt. Denke mir "so schwer kann das nicht sein", aber alle Versuche scheitern -- ohne Fließkomma-Arithmetik ist es dann doch nicht SO einfach.
- Episode 2, 2006, studiere gerade Informatik, entdecke das Projekt cc65. Die Idee eines C-Compilers für den C64 finde ich genial, spiele ein wenig damit herum -- nur um dann doch wieder bei Assembler zu landen. Ich erinnere mich an mein altes Linien-Problem, bastle ein wenig, finde einen iterativen Algorithmus nur mit Ganzzahlberechnungen und da kommt mir die Idee: Auf dem Amiga gab es eine AmigaBASIC demo "Music", in der Linien gezeichnet wurden und dazu Bachs "Jesu meine Freude" dudelte -- also DAS kann doch der C64 auch
Gesagt, getan, es wurde C64-Code daraus, mit Linien, mit Musik, aber richtig zufrieden war ich doch nicht -- es sah nicht aus wie ein Amiga. Keine Fensterrahmen 
- Episode 3, 2013, ich entdecke GIT für mich und migriere alte Projekte aus SVN. Dabei stolpere ich wieder über mein altes Projekt von 2006. Diesmal packt es mich -- ich lasse nicht locker, bis das ganze für mich aussieht wie ein Amiga!
Ja, nun ist es da, so wie ich es wollte, der Source (und ein .d64 Image in "disks") ist hier: Bitte melde dich an, um diesen Link zu sehen.
Wer es selbst bauen will braucht cc65, GNU make und gcc (nur C-Compiler, für die beiden Tools, eines konvertiert .bmp in C64 assembler-source, eines zum bauen des Disk-images) im Pfad. Auf Windows sollte MinGW verwendet werden und in CMD gebaut werden (NICHT bash für windows verwenden). 'make' erstellt die binaries, 'make disk' das disk image.
Für eine Demo ist es sicher zu wenig, aber vielleicht ja trotzdem interessant. Ich selbst bin vor allem interessiert an Kommentaren, vielleicht könnte man Dinge besser machen, vielleicht gibt es Ideen, was noch dazu passen würde. Vieles ist nicht besonders optimiert, das ist mir klar ...
Kurz noch zum "geliehenen" Code:
- "gfx-core": Hier sind die routinen (hauptsächlich init/clearscreen/plot) aus dem Buch von Wollschlaeger
- "kickstart": Der IRQ-loader ist eine fast 1:1 kopie von Bitte melde dich an, um diesen Link zu sehen. -- nur minimale Anpassungen. Der eigentliche Bootcode (autostart) stammt von Bitte melde dich an, um diesen Link zu sehen. -- von mir so erweitert, dass auch ein laden mit ",8" und anschließendes RUN möglich ist -- habe ich dort als "METHOD Bitte melde dich an, um diesen Link zu sehen." dokumentiert.
- "tools": cc1541.c stammt original von Bitte melde dich an, um diesen Link zu sehen. -- habe ich für meine Zwecke verbessert/erweitert, details dazu im header
