8-Bit-Nirvana Startseite  
?DISK TOO BLANK ERROR IN 59500
[ Home | Index | Werbung | Forum | Flohmarkt | Gästebuch | Links | Info ]

8-Bit-Forum

"Re: CC65 - warum?" von Ullrich von Bassewitz
(22.7.2000, 14:47)

(Dieser Artikel wurde 875 mal seit dem 16.10.2001, 22:56 aufgerufen)

Bezugsnachricht: CC65 - warum? (Andre)
Antworten: Re: CC65 - warum? (Ullrich von Bassewitz)
Re: CC65 - warum? (Andre)

[ Antwort schreiben | Übersicht | Thema ]

Andre schrieb am 21.7.2000, 19:09:56:
> Haben doch der Uz und ein paar andere einen Crosscompiler/assembler für einige 8-Bitter gebastelt, wie ich gerade in comp.sys.atari.8bit las - schön, schön, dass auch Atari darunter ist. Sehr löblich!

Den Compiler gibt es schon ziemlich lange (ich schätze mal 2 Jahre oder so - es war mein nächstes grosses Projekt nach Elite 128). Und gebastelt haben ihn primär John Dunning (der ursprüngliche Autor) sowie ich (> 80% des gesamten Codes im Paket sind inzwischen nicht mehr von JRD).

Ein paar Atari Fans haben für den neuen Release die notwendigen Library Files für den Atari codiert und ein GEOS Fan hat eine GEOS Library zur Verfügung gestellt, sodass man jetzt auch GEOS Programme für den C65 und C128 schreiben kann. Support für den Apple 2 gibt es schon eine Weile.

> Und nun gleich die Frage aller Fragen: Was soll das? Wer programmiert heute noch Sachen auf 8-Bittern? Wenn doch dann höchstens mal Demos, und für die benutzt man dann auch gleich Assemblersprache (weswegen ich den Crossassembler sehr gut finde). Aber C-Crosscompiler? Wozu? Kann mich einer aufklären (über den Sinn eines C-Crosscompilers ;)

Die Frage ist ziemlich sinnlos. Sie entspricht dem Sinngehalt nach einer Frage, die bestimmt die meisten hier kennen:

"Wieso machst Du überhaupt noch was mit diesen alten Rechnern, damit kann doch kein Mensch mehr was anfangen?"

Wie wir alle wissen sind die alten 8-Bitter ein Hobby, und bei einem Hobby macht die Frage nach dem Sinn keinen Sinn. Nun ist es so, dass ausser alten 6502 Rechnern auch Compilerbau ein Steckenpferd von mir ist. Und was liegt näher, als ein Hobby mit dem anderen zu verbinden?

Es kann natürlich durchaus sein, dass Du selber mit einem C Crosscompiler nichts anfangen kannst (vielleicht kannst Du ja gar kein C - dann ist natürlich leicht meckern:-). Es gibt aber eine ganze Menge Leute, die das offenbar nicht so sehen (alleine auf der cc65 Mailingliste sind knapp 50 Leute). Verschiedene Leute haben nunmal verschiedene Interessen.

Da ein wichtiges Ziel bei der Portierung des Compilers Portabilität war (sowohl was die Sourcen des Compilers und der anderen Tools selber, als auch was das Design der Bibliotheken für den Compiler angeht), sind die Anwendungsmöglichkeiten grösser, als die meisten Leute annehmen. Einige Anwender (interessanterweise diejenigen, die auch den meisten Feedback liefern) programmieren damit auf Embedded Hardware. Wenn Du mal schaust, wieviele ASICs mit einem 6502 Core inzwischen angeboten werden, dann ist das auch klar.

Aber auch für Spassprogramme für die alten 8-Bitter ist der C Compiler gut geeignet: Es programmiert sich nunmal deutlich einfacher in einer Hochsprache als in Assembler, d.h. man kommt schneller zum Ziel. Ausserdem lassen sich Assembler & C leicht mischen. Viele Programme sind nicht, oder nur in sehr kleinen Teilen zeitkritisch. Was liegt also näher, als seine Programme erst mal in C zu codieren, und dann Teile, die zu langsam (oder zu gross) sind in Assembler zu umschreiben? Der Zeitgewinn durch diese Vorgehensweise ist enorm, je nach Projekt sind nur wenige oder gar keine Nachteile damit verbunden.

Ein Beispiel dafür ist mein Morse-Übungsprogramm für den C64: Es besteht zu > 90% aus C, lediglich der Interrupt-Handler mit der Abspielroutine ist in Assembler geschrieben. Codiert wurde das ganze an einem Tag. Bei ausschliesslicher Codierung in Assembler hätte ich dafür eine knappe Woche rechnen müssen, ohne echte Vorteile davon zu haben. (-->ftp://ftp.musoftware.de/[...]/morse-64-1.0.zip)

Falls jetzt jemand denkt, der erzeugte Code wäre langsam: Der 6502 ist natürlich keine ideale CPU für C, andererseits laufen die Programme normalerweise deutlich schneller als vergleichbare Programme in compiliertem(!) BASIC. Ein Anwender hat sich die Mühe gemacht, den Code mit dem eines kommerziellen C Compilers für den 6502 zu vergleichen: Laut seiner Aussage sind von cc65 erzeugte Programme etwa 30% kürzer und um denselben Faktor schneller. Natürlich gibt es trotzdem Dinge für die Assembler besser geeignet ist - aber das schöne ist ja, dass sich C und Assembler leicht mischen lassen, und dass man so das beste aus beiden Welten nutzen kann.

Übrigens braucht sich der Macroassembler, der bei dem Paket dabei ist, hinter keinem anderen standalone Produkt zu verstecken. Selbst wenn man nicht direkt in C programmieren will kann es deshalb Sinn machen, wenigstens den Assembler/Linker zu verwenden. Falls sich später dann doch die Notwendigkeit für C ergeben sollte, dann ist schon alles dafür vorbereitet.

Also, um´s nochmal zusammenzufassen: Die kurze Antwort auf Deine Frage lautet "Falsche Frage":-) Die lange Antwort steht oben.

Falls sich jemand für den Compiler interessiert: Mehr Informationen gibt´s unter http://www.von-bassewitz.de/uz/cc65/.

Gruss

Uz

.


Lesezeichen für diesen Beitrag: del.icio.us del.icio.us Bei Mister Wong speichern Mister Wong Seite bei LinkARENA speichern LinkARENA Digg it Digg Slashdot it Slashdot StumbleUpon StumbleUpon


Antwort schreiben

Hier kannst Du auf die angezeigte Nachricht antworten. Beachte bitte die folgenden Punkte:
  • Dieses Forum befasst sich ausschließlich mit 8-Bit-Computern und Videospielen, Artikel zu anderen Themen sind off-topic und unerwünscht (für Computer mit mehr als 8 Bit gibt es hier aber auch ein eigenes Forum). Wenn der Vorschreiber schon vom Thema abweicht und Du unbedingt antworten möchtest, dann schreibe ihm lieber per e-mail.
  • Schreibe bitte so, dass sich niemand beleidigt oder angegriffen fühlt, auch wenn der Vorschreiber sich bereits im Ton vergriffen haben sollte. Solche Sachen löst man eh besser privat per e-mail.
  • Im Eingabefeld wird der komplette Text zitiert. Kürze die Zitate bitte so weit wie möglich, damit unnötiger Ballast vermieden wird. Hinweise zu richtigem und falschem Quoting findest Du hier: learn.to/quote.
Name:
E-mail:
Betreff:
Antwort:
Klicke bitte das Feld links an, falls Du Antworten auf diese Nachricht auch per E-mail bekommen möchtest.


       

Achtung: "SPAMFALLE" heißt nicht ohne Grund so, keinesfalls benutzen!



Mozilla Sidebar Opera Sidebar RSS 0.91 Newsfeed RSS 2.0 Newsfeed Add to Google Add to MyYahoo Spam Poison
Mozilla Sidebar Opera Sidebar RSS 0.91 Feed RSS 2.0 Feed Add to Google My Yahoo! Spam Poison

[ Index | Werbung | Forum | Flohmarkt | Gästebuch | Links | Info | Impressum/Datenschutz | News | Credits | Webmasters | Seitenanfang ]