Ergänzung wg. dem Abstand zu den Ursprungsbeiträgen: es geht um die 16bit-Varianten des 6502, also 65816 und 65802.
Dieses Buch kann ich auch wärmstens empfehlen
Ich zitiere mich selbst, denn ich habe dieses Buch jetzt nahezu vollständig von vorne bis hinten durchgearbeitet. Ich habe die spätere Ausgabe aus dem Jahr 1992 bzw. 2007 genommen. Diese wurde von WDC selbst herausgegeben. Oben erwähnte Originalausgabe ist aus dem Jahr 1986 und aus dem Verlag Prentice Hall Press.
Auffälligkeiten:
- Das Buch ist in (La)Tex gesetzt. Dessen Unzulänglichkeiten stören manchmal das flüssige Lesen, denn so sind etliche Tabellen und Grafiken einige Seiten nach ihrer Erwähnung im Text abgebildet, weil zu viele davon wg. Größe nicht untergebracht werden, aber zu viel Text trotzdem dazwischenpaßt. Andere kleine, typische oder individuelle (La)Tex-Satzfehler stören (mich) zusätzlich.
- Viel relevanter: es sind ein paar echte, inhaltliche Fehler drin. Man muß das Buch mit "Medienkompetenz" lesen. Zum Nachschlagen der Befehle, Adressierungsarten u.ä. ist es überwiegend und trotzdem gut, woher mein früherer Eindruck stammte.
Meine Motivation: damals im Jahr 1987 besaß ich oben abgebildeten 65802 für einige Monate, bevor ich ihn weiterverkaufte. Vor einigen Jahren fand er wieder den Weg zu mir, als mir der damalige Kommilitone seine Apple-II-Sachen zum "Retten" übergab Ich wurde damals nicht "warm" mit dem 65802. Und ich wollte jetzt wissen, weswegen das so war. Ein Grund war sicher, daß mir ein solches Buch wie das erwähnte damals fehlte. Ich hatte lediglich dürftige Datenblätter der CPU. Weiterhin fehlten mir Erfahrung und eine gewisse "Coolness" bei der Herangehensweise, beides kam später.
Jetzt sitze ich gerade dran den 65802 in meinem 8bit-Disassembler zu versorgen. Kurz: die Systematik im 65802-Code ist grauenhaft! So schön der extrem kompakte Code auch immer ist, aber das hat Nachteile! Wenn ihr 16bit- oder 32bit-Architektur möchtet, nehmt besser einen 68000. Und wenn Platinenplatz für 16bit RAM fehlt, nehmt einen 68008! Der ist zwar bei gleichem Takt deutlich langsamer, aber 16MHz-68000 als Alternative existieren. Dessen Anforderungen ans Speicher-Interface sind sogar geringer als die eines 8MHz-65816 (weswegen die 68k-CPU bei gleichem Takt langsamer ist).
Spekulierend zum 65832: jetzt weiß ich, weswegen der Super-IIgs bei Apple eingestellt wurde und nie erschien: Die Architektur wäre viel zu verkorkst geworden. Das hatten einige schlaue Leute bei Apple vermutlich erkannt.
BTW als Mikrocontroller oder eigenständiges System, das ausschließlich im 16bit-Modus verwendet wird, kann man diesen Befehlssatz mit Bauchschmerzen vielleicht ertragen. Aber schon die Umschaltung der Register von 8bit auf 16bit und zurück birgt genügend Fallen. Wg. Disassembler habe ich den Befehlssatz systematisch aufgedröselt: diese CPU kennt 5 unterschiedliche Zustände, d.h. 5 unterschiedliche Befehlssätze. Das erfordert höheren administrativen Aufwand, um die Fehlermöglichkeiten zu beschränken. Dieser Aufwand frißt Geschwindigkeit des Gesamtsystems.
Frage an die IIgs-Auskenner: gibt es irgendwo IIgs-ROM-Listings in Textform, also als Textdatei? Ich suche Material zum Test meiner Software.
Gruß, Ralf
P.S.: Meine weitergehende Motivation ist das Verständnis der TransWarp für den Apple II[e]. Kennt jemand die genaue Funktion des Softswitch $C072? Vor einigen Monaten tauchte diese Frage bereits im Usenet in comp.sys.apple2 auf und blieb unbeantwortet.