Nach zehnjähriger Suche hat Jordan Mechners Vater den Original-Apple-II-Quellcode auf dem Dachboden gefunden.
Den Inhalt der drei Floppy Disks hat nun J. Mechner ins Netz gestellt, aus Angst der Code könnte für alle Zeiten verloren gehen.
Auffallend gut kommentierter Source und komplett in 6502 Assembler, sowas schau ich mir immer gerne an, auch wenn ich nicht vorhabe was für den 6502 zu programmieren.
Dass die Disketten nach all der Zeit noch perfekt lesbar sind, gibt Hoffnung für andere Projekte, die sich mit dem Erstellen von 1:1-Diskettenkopien beschäftigen.
Ich kann mit Assembler-Code leider überhaupt nichts anfangen, auch trotz der zahlreichen Kommentare sagen mir die einzelnen Befehlszeilen überhaupt nicht, geschweige denn wie mehrere Zeilen zusammen spielen. Ist einer dieser Wunschträume die ich habe, dass ich eines Tages Assembler-Code verstehen würde. Aber das braucht eine Menge Einarbeitung.
Disketten mit niedriger Datendichte (aka 5 1/4 SD, DD oder 3 1/2 DD) halten je nach qualität der Diskette durchaus 30-40 Jahre (wenn nicht noch länger) sind sogar relativ unempfindlich, während CD-Rs schon nach 5 Jahren den Geist aufgeben...
von 3 TB Platten oder ähnlichen Datendichte Monstern gar nicht anzufangen
tomwatayan schrieb:Ist einer dieser Wunschträume die ich habe, dass ich eines Tages Assembler-Code verstehen würde. Aber das braucht eine Menge Einarbeitung.
Assembler hat einen viel schlimmeren Ruf als es tatsächlich ist. Im Grunde ist es sogar extrem simpel. Kann man schon ein Programmiersprache ist es kein Problem Assembler zu lernen.
Assembler würd ich mir heute nicht mehr antun, war vor 20 Jahren vielleicht noch aus Performancegründen unerlässlich, aber der Nutzen ist in der heutigen Zeit doch arg begrenzt.
legen schrieb:Falls euch die Entwicklung von Prince of Persia (oder Karetaka) interessiert, hier ist eine 20 Minütige Präsentation von Mechner:
sehr interessant, wusste gar nicht dass The last Express auch von ihm ist.
Rocco schrieb:Assembler würd ich mir heute nicht mehr antun, war vor 20 Jahren vielleicht noch aus Performancegründen unerlässlich, aber der Nutzen ist in der heutigen Zeit doch arg begrenzt.
Leider hast du wie so viele ganz falsche Vorstellungen von Assembler. Der Nutzen ist immernoch genauso gegeben. Und heutzutage ist es so leicht wie nie Assembler zu schreiben. Es gibt keine Speichersegmentierung mehr, keinen direkten Hardwarezugriff, etc.
Man schreibt ja auch kein komplettes Programm in Assembler, esseiden man möchte Demos oder für embedded systems entwickeln. Assembler wird in den meisten Fällen genutzt um prformancekritischen Code zu optimieren. Und wir reden hier von 20 Zeilen Assemblercode, die nacher bis zu 10 fach schneller sind als Hochsprache.
Andere Nutzen: Reverse Engeneering, Nutzung von CPU Features, welche der Compiler nicht kennt, Procedure Hooks, allgemein besseres Verständnis der CPU
Gerade der letzte Punkt ist interessant. Assembler zu können hilft besseren Hochsprachencode zu schreiben, ganz einfach weil man weiß wie die CPU arbeitet und so effektiveren Code schreiben kann.
Shadder werden auch in Assembler programmiert. Mittlerweile gibts dafür auch Hochsprachen aber viele setzen da immernoch auf Assembler.
Auf ARM Plattformen kommt man kaum um Assembler rumm, wenn man Performanceprobleme hat. Die ARM Compiler optimieren nicht so gut wie die x86 Compiler. Wie wird ne DSP Einheit programmiert (Digital Signal Processor)? Richtig in Assembler und ohne die kannst du HD Videos auf Tabletts vergessen.
Und wie gesagt, das Assembler kompliziert ist, ist ein Mythos. Es sieht einfach nur kryptisch aus für jemanden, der das Prinzip dahinter nicht kennt. Ich hatte die gleichen Vorurteile und hatte auch den Traum es irgendwann mal zu können. Irgendwann hab ih mich dann mal dranngesetzt und hab mich dann tierisch geärgert das ich das nicht schon viel früher gemacht hatte, weils niht im Ansatz so schwierig ist wie of propagiert wird.
Thorium schrieb:Andere Nutzen: Reverse Engeneering, Nutzung von CPU Features, welche der Compiler nicht kennt, Procedure Hooks, allgemein besseres Verständnis der CPU
Genau diese anderen Nutzen sind das, warum ich Assembler können möchte. Zum Erkennen von CD-Checks / Handbuch-Checks in Spielen, um entweder diesen Check zu umgehen oder, was mich viel mehr reizt, die benötigten Handbuchdaten direkt aus dem Spiel zu extrahieren.
Zusätzlich, um bei Spielen, für die es keinen Leveleditor gibt, direkt über den Spielcode herauszufinden, wie das Datenformat gelesen werden muss.
Und vielleicht, um bei der Sache mit dem Spiele-Kompatibilitäts-Tool, an dem du arbeiten wolltest, besser mithelfen zu können.
Ob ich irgendetwas dann tatsächlich umsetzen kann, ist eine andere Sache, aber momentan bleibt mir die Möglichkeit noch komplett verwehrt, weil die Assembler-Zeilen für mich gar keinen Sinn ergeben. Nicht in der lesbaren Quelltextform und noch viel weniger im kompilierten Zustand.
Ich glaube, den Buchtipp schaue ich mir mal näher an. Ich habe aus der Reihe den Titel "C Programmieren von Anfang an" und der hat mir damals auch dabei geholfen, relativ schnell das Prinzip von Pointern einigermaßen zu verstehen. Da ich damals in Eile war, hatte ich es mir allerdings nicht komplett durchgelesen und mir dann einige Zeit später den Unterschied zwischen by-reference (&) und by-value doch mühsam durchs Code-Debuggen erarbeiten müssen.
tomwatayan schrieb:Und vielleicht, um bei der Sache mit dem Spiele-Kompatibilitäts-Tool, an dem du arbeiten wolltest, besser mithelfen zu können.
Ich arbeite noch drann. Nur der New Challange Thread hat mich ettliche Stunden meines Lebens gekostet. ^^
Habs aber jetzt nach dem 6. gescheiteten Versuch aufgegeben Fallout 2 in Ironmanmanier zu beenden.
Die erste lauffähige Version mit dem ersten Plugin ist so gut wie fertig, fehlen nurnoch Kleinigkeiten und wird hier im Board bald veröffentlicht.