Programmierung des 6502

Aus C64-Wiki
Zur Navigation springenZur Suche springen


Programmierung des 6502
Cover/Buchdeckel
Sprache deutsch
Autor(en) Rodnay Zaks
Verlag SYBEX Verlag GmbH, Düsseldorf
Jahr 1981
ISBN ISBN 978-3-88745-600-9
Neupreis
Datenträger
Seitenzahl 430
letzte Auflage 10. Auflage 1992
Genre Programmieren, Assembler
Information Originaltitel: Programming the 6502
Die 6502 Reihe:
- Band 1: Programmierung des 6502
- Band 2: 6502 Anwendungen
- Band 3: Fortgeschrittene 6502 Programmierung




Beschreibung[Bearbeiten]

Dieser erste Band aus 'Die 6502 Serie' enthält eine vollständigen Kurs zur Programmierung des 6502-Mikroprozessors. Die Hardwareorganisation und der Befehlsvorrat werden detailliert dargestellt. In den späteren Ausgaben gibt es ein ergänzendes Kapitel zu den zwischenzeitlich erschienenen Nachfolger-MCUs.

Klappentext[Bearbeiten]

der 8. Auflage 1985 "... Das Buch wurde jetzt wesentlich erweitert und gibt eine umfassende Einführung in die Programmierung von Prozessoren der 65xx-Familie. Dabei werden außer dem 6502 auch die Typen 6510,65C02 und 65SC02 vorgestellt. Diese Prozessoren sind das Herz von zahlreichen Personal- und Heimcomputern, wie Apple II+, IIe, IIc, Atari, Commodore 64, VC 20 sowie Commodore-Bürocomputern. ... Lernen Sie mit diesem didaktisch gut strukturierten Buch die Programmierung der weitverbreiteten 65xx-Mikroprozessoren. Viele Übungen und Lösungen helfen Ihnen, Ihr neues Wissen direkt zu überprüfen und effektiv anzuwenden. ..."

Inhaltsverzeichnis[Bearbeiten]

  1. Grundlagen
  2. Hardwareorganisation des 6502
  3. Grundlegende Programmiertechniken
  4. Der 6502-Befehlssatz
  5. Adressierungsarten
  6. Ein- und Ausgabetechniken
  7. Ein- und Ausgabebausteine
  8. Anwendungsbeispiele
  9. Datenstrukturen
  10. Programmentwicklung
  11. Erweiterung des Befehlssatzes
  12. Schlußbemerkung

Leseprobe[Bearbeiten]

  • Seite 180

"Indizierte Adressierung (indexed)

Indizierte Adressierung ist eine besonders zum schrittweisen Zugriff auf die Elemente eines Speicherblocks oder einer Tabelle geeignete Technik. ... Das Prinzip indizierter Adressierung liegt darin, dass ein Befehl sowohl ein Indexregister als auch eine Adresse angibt. Im allgemeinen Fall wird der Inhalt des Indexregisters zur Adresse addiert und ergibt so die Endadresse. Man kann so z. B. als Adresse den Anfang einer im Speicher stehenden Tabelle übergeben und das Indexregister dazu benutzen, die Tabellenelemente bequem nacheinander zu erreichen."

Fehler[Bearbeiten]

  • Seite 192, Kapitel "5. Adressierungsarten", "Blockverschiebung mit mehr als 256 Einheiten", Auflage 2 (vermutlich alle Auflagen, auch im englischen Original[1])
    Die angegebene Routine ist fehlerhaft:
    • Bei Längenangaben, die nicht genau Vielfaches von 256 (Pages) sind, wird beim restlichen unvollständigen Block Byte 0 nicht kopiert und insgesamt ein Byte zu viel kopiert.
    • Bei Längenangaben von kleiner 256 (Blockanzahl = 0) wird trotzdem immer ein vollständige Block kopiert.
    • Die Routine ist auf 32 KByte Länge beschränkt (was als Einschränkung im Text nicht erwähnt wird).
    • Im Falle einer Überlappung von Quell- und Zielbereich, würde zu einem niedrigeren Zielbereich an sich funktionieren, aber hier ist die Kopierschleife eines Blocks dekrementierend, was bedeutet, dass bei einer Überlappung Ziel- und Quelladresse mindestens 256 Bytes auseinander liegen müssen.

Sonstiges[Bearbeiten]

Im Gegensatz zu manch anderen Fachbüchern, wurden von Sybex auch die Programmbeispiele, auch jene im Anhang konsequent aus dem Englischen ins Deutsche übersetzt. Für Erklärungen und Verständnis ein sicherlich begrüßenswertes Vorgehen, aber auch auch mit Gefahr, dass sich gerade hier Übersetzungsfehler einschleichen.

Die verwendeten Begriffe sind nicht einheitlich gewählt. Zum Beispiel ist bei einem Byte von "Einheit", "Element". Das englische Original verwendet hier auch den Ausdruck "word", der für heutige Verhältnisse schnell missverständlich werden kann, aber für 8-bit-basierte CPUs damals durchaus legitim war.

Meinung[Bearbeiten]

Doc Phura: "Dieses Buch führt ohne Voraussetzungen in die Assemblerprogrammierung der 65xx-Familie ein. Dies geschieht ohne auf eine besondere Hardwareumgebung, wie etwa den C64 (den gab es 1981 noch nicht), ausgerichtet zu sein. Dies ist für das grundsätzliche Verstehen der Arbeitsweise eines Mikrokontrollers und dessen effiziente Programmierung durchaus hilfreich. Des weiteren werden wichtige Programmiertechniken wie das Rechnen mit BCD-Zahlen und logische Operationen sowie deren Realisierung auf dem 6502 vermittelt. Ebenfalls wird in sehr verständlicher Sprache auf den Umgang mit einen Assembler eingegangen. Das später angefügte Kapitel über die 'neueren' Prozessoren rundet den Band ab."

JohannKlasek: "In frühen Tagen war es das 'Werk' schlechthin, um den Einstieg in die 6502-Programmierung zu wagen, so auch bei mir. Aber schon damals in den 1980er war bekannt, das sich immer wieder Fehler eingeschlichen haben. Nicht nur typographische, auch inhaltliche, was das Buch nicht ganz so ideal als Referenz erscheinen lässt. Wenn man wirklich sichergehen möchte, sollte man eher das Datenblatt bei der Hand haben.
Aber dennoch, es handelt sich um eine umfassende Übersicht, um sich in der Welt des 6502 zu orientieren. Allerdings muss man in Kauf nehmen, dass die Wortwahl speziell aus heutiger Zeit manchmal recht kurios erscheint, wo doch damals Übersetzung aus dem Englischen häufiger recht holprig waren."

Weblinks[Bearbeiten]

Referenzen[Bearbeiten]

  1. Videomitschnitt bei YouTube : 8-Bit Show and Tell: Fixing a Bug in Rodnay Zaks' "Programming the 6502" Sprache:englisch