Das neue Commodore 64 Intern Buch

Aus C64-Wiki
Zur Navigation springenZur Suche springen


Das neue Commodore 64 Intern Buch
Cover/Buchdeckel
Sprache deutsch
Autor(en) Said Baloui, Rolf Brückmann, Lothar Englisch, Jaques Felt, Ralf Gelfand, Klaus Gerits, Drako Krsnik
Verlag Data Becker
Jahr 1990
ISBN ISBN 3-89011-307-9
Neupreis DM 29,80.- sfr 29.- öS 232.-
Datenträger
Seitenzahl 836
letzte Auflage 1., unveränderte Auflage
Genre Programmieren / Hardware
Information Nachfolger von: 64 intern




Buchrückseite[Bearbeiten | Quelltext bearbeiten]

Wer bislang mehrere Bücher brauchte, um effektiv auf dem C64 programmieren zu können, findet hier endlich alles über den C64 in einem Buch. In diesem Band erfahren Sie alles, was zum Thema Hardware, Betriebssystem und Systemprogrammierung zu sagen ist. Und zwar so verständlich, daß auch die Nichtprofis unter Ihnen die Arbeitsweise des C64-Betriebssystems schnell und sicher verstehen werden. Natürlich ist dieses Werk eine riesige Fundgrube für jeden C64-Benutzer, denn hier zeigen die Autoren, wie man das Betriebssystem richtig nutzt. Zudem vertiefen die vielen prägnanten Beispielprogramme das Gelernte und zeigen, wie man schnelle Programme erstellt. Selbst der erfahrene C64-Anwender erhält eine Fülle von Kniffen, Facts und Details. Zusätzlich finden Sie einen kompletten Einsteigerkurs in die Programmiersprache Assembler, der Ihnen zeigt, wie's geht: ohne Fachchinesisch, dafür einfach, schnell und effektiv.

Inhaltsverzeichnis (kurz)[Bearbeiten | Quelltext bearbeiten]

Leseprobe[Bearbeiten | Quelltext bearbeiten]

(Seite 42; Kapitel "Der BASIC-Interpreter"; Unterkapitel "Sprungvektoren und Autostart"):

"

Mit diesen Vektoren lassen sich nun einige 'Kunststücke' voll-bringen. Man kann zum Beispiel die LIST-Vektoren so um-stellen, daß diese auf ein RTS zeigen. Das bewirkt, daß nach einem LIST sofort wieder ins BASIC zurückgesprungen wird, ohne daß überhaupt etwas gelistet wird. Der Befehl wird also einfach ignoriert. Wir haben noch einige andere Ideen für Sie aufgeschrieben:

  POKE 744,  POKE 755,  Adresse        Routine
-----------------------------------------------------------
    226        252      $FCE2 (64738)  Reset
     68        166      $A644 (42564)  NEW
      7        168      $A807 (43015)  SYNTAX ERROR
    160        240      ein $02-Wert   Absturz des Systems

"

Unterschiede zu "64 intern"[Bearbeiten | Quelltext bearbeiten]

Neue Abschnitte
  • Ein Virus-Killer; ein paar Bytes groß. Er füllt den Speicher mit Nullen. Ein Ausschalten des Computers oder ein Modul-Reset mit RAM-Fill (AR:F1) macht das gleiche, ohne dass man die Disk mit dem "Viren-Killer" suchen und dieses Programm extra laden muss. Viren im Floppy-RAM (z.B. HIV) bleiben davon unbeeindruckt.
  • Ein Basic-Kompaktor. Er entfernt keine REM-Zeilen, er macht einen großen Bogen um alle GOTO-Zeilen (nicht nur die GOTO-Targets, sondern dummerweise auch die Zeilen, in denen ein GOTO vorkommt). Ein mit Anführungszeichen begonnener String muss damit auch beendet werden. Und der Kompaktor ersetzt eine Null nicht durch einen Punkt bzw. ein ",," bei DATAs. Da haben wir auf den Tiger-Disks aber schon besseres gesehen.
  • Ein völlig neu geschriebenes Der Aufstieg zu Assembler-Kapitel. Es ist nun viel größer und hervorragend. Intensiv wird die Synthese zwischen BASIC und Assembler beschrieben. Da ist auch für Profis viel Neues dabei.
  • Eine Routine, die den kompletten Screen scrollt. Nein, nicht was ihr denkt, sondern ganz konventionell 8 Bits mit $D016 und dann alle 1000 Bytes des Screens umkopieren. Glücklich, wer soviel Rasterzeit vergeuden kann…
  • Neben einem Joystick-Treiber für eine Maus des Atari ST (wer um alles auf der Welt hat so etwas am C64?!) ist nun endlich einer für die Commodore-Maus 1351 dazugekommen. Das Listing ist kommentiert, aber anstatt uns zu verraten, was die einzelnen Befehle machen (SBC $C004 = subtrahieren, EOR #$FF = Bits umdrehen, STA $C003 = zwischenspeichern), wäre es besser gewesen, uns zu erklären, warum dies geschieht. Einen Maustreiber-Source findet der Interessierte auch auf der Test/Demo-Disk der 1351.
  • Zweieinhalb Seiten Vergleich alter/neuer C64 mit Nennung der neuen Chips. Brauchbar!
Gelöschte Abschnitte
  • Die Tabelle der 6502/6510-Befehle und des Zyklenverbrauchs sowie die Beschreibung der illegalen Opcodes.
  • Das komplette Kapitel "Der Schaltplan" (41 Seiten) inklusive des Schaltplans. In diesem Kapitel wurden intensiv alle Chips besprochen mit ihrer Pin-Belegung und ihrem Zusammenspiel untereinander.

Fehler[Bearbeiten | Quelltext bearbeiten]

Fehler Korrektur Fundstelle im neuen C64 Intern Kommentar
$B1AA Y/A =INT(FAC) $B1AA A/Y =INT(FAC) Kapitel 1.9 Fließkommaarithmetik, Tabelle 3 – Umwandlung verschiedener Datenformate, S. 56
2. 1100 ⇒ 0*1 + 0*16 + 1*256 + 1*4096 = 4112 2. 1100 ⇒ 0*1 + 0*16 + 1*256 + 1*4096 = 4352 Kapitel 2.2 Dualsystem und Hexadezimalsystem, S. 86 unten Das Kapitel Der Aufstieg zu Assembler wurde im neuen C64 Intern komplett neu geschrieben.
6. FFFF ⇒ 15*1 + 15*16 + 15*256 + 15*4096 = 68880 6. FFFF ⇒ 15*1 + 15*16 + 15*256 + 15*4096 = 65535 Kapitel 2.2 Dualsystem und Hexadezimalsystem, S. 87 ganz oben Das Kapitel Der Aufstieg zu Assembler wurde im neuen C64 Intern komplett neu geschrieben.
Die Adressierung der Speicherzellen beginnt mit der Adresse null. Die höchste Adresse ist daher die letzte Speicherzelle, nämlich die Adresse 65536. Die Adressierung der Speicherzellen beginnt mit der Adresse null. Die höchste Adresse ist daher die letzte Speicherzelle, nämlich die Adresse 65535. Kapitel 2.4 Speicherorganisation, S. 89 fünfter Absatz Das Kapitel Der Aufstieg zu Assembler wurde im neuen C64 Intern komplett neu geschrieben.
Der BNE-Befehl überprüft, ob das Zero-Flag momentan gesetzt oder aber gelöscht ist. Wenn es gesetzt ist – also der vorausgegangene DEX-Befehl oder eine beliebige andere Operation zum Ergebnis null führte – erfolgt ein Sprung zur angegebenen Adresse.[…] Der BNE-Befehl überprüft, ob das Zero-Flag momentan gesetzt oder aber gelöscht ist. Wenn es nicht gesetzt ist – also der vorausgegangene DEX-Befehl oder eine beliebige andere Operation nicht zum Ergebnis null führte – erfolgt ein Sprung zur angegebenen Adresse. Kapitel 2.9.1 Schleifen bilden mit BNE, S. 126 letzter Absatz Das Kapitel Der Aufstieg zu Assembler wurde im neuen C64 Intern komplett neu geschrieben.
ADC ("subtract with carry", "addiere mit Carry-Bit")[…] ADC ("add with carry", "addiere mit Carry-Bit") Kapitel 2.13 Rechnen in Maschinensprache, S. 175 fünfter Absatz Das Kapitel Der Aufstieg zu Assembler wurde im neuen C64 Intern komplett neu geschrieben.
[…]Beim C64 beginnt der BASIC-Speicher ab $0400.[…] Beim C64 beginnt der BASIC-Speicher ab $0800. Kapitel 2.20 Wie BASIC-Programme abgelegt werden, S. 277 Das Kapitel Der Aufstieg zu Assembler wurde im neuen C64 Intern komplett neu geschrieben.
A5
und die Nummerierung auf der rechten Seite ist falsch
GND
15 ist rechts unten, darüber kommt 16 usw. bis 28 rechts oben
(SID Pinout-Abbildung)
Kapitel 4.7 Registerbeschreibung des SID, Abb. 4.7.2 Der MOS 6581, S. 409
Die Portbelegung der Audio-/Videobuchse ist fünfpolig Abbildungen der achtpoligen Buchse: Abb. 1, Abb. 2 Kapitel 4.7 Registerbeschreibung des SID, Abb. 4.7.3 Portbelegung, S. 410 Nur die ersten C64 haben eine fünfpolige Audio-/Videobuchse, alle anderen haben eine achtpolige.
C020 SBC #$08 C020 SBC #$07 Kapitel 5.1.1 Ein- und Ausgabe von einzelnen Bytes, letztes Programmlisting, S. 415
[…]Zuvor wird jedoch die soeben gedrückte Taste in einem anderen Code in der Adresse $CB und eine Kopie davon in der Adresse $CB abgelegt.[…] Zuvor wird jedoch die soeben gedrückte Taste in einem anderen Code in der Adresse $CB und der Code der Taste der letzten Abfrage in Adresse $C5 abgelegt. Kapitel 5.4.1 Tastaturabfrage, kurz vor Abb. 5.4.1.1 Tastatur-Matrix, S. 434
10 OPEN 1,8,15
20 PRINT#1,"I"
Es soll also einfach das Zeichen A auf einem Drucker mit der Geräteadresse 8 ausgegeben werden.
10 OPEN 1,4
20 PRINT#1,"A"
Es soll also einfach das Zeichen A auf einem Drucker mit der Geräteadresse 4 ausgegeben werden.
Kapitel 5.8.5 Adressierung, S. 471
$70 112 FAC-Rundungsbyte Kapitel 6.4 Die Belegung der Zeropage, S. 512 Die Speicherstelle fehlt im Buch
$7C-$8A 124-138 Unbenutzt $7C-$8A 124-138 Teil der CHRGET-Routine Kapitel 6.4 Die Belegung der Zeropage, S. 512
$D4 212 Flag für Hochkommamodus
Falls in dieser Speicherzelle eine Null steht, dann befindet sich der Computer im Hochkommamodus. Andere Werte bewirken den Normalmodus.
$D4 212 Flag für Hochkommamodus
Falls in dieser Speicherzelle eine Null steht, dann befindet sich der Computer im Normalmodus. Andere Werte bewirken den Hochkommamodus.
Kapitel 6.4 Die Belegung der Zeropage, S. 520
$FB-$FE 251-254 Unbenutzt Kapitel 6.4 Die Belegung der Zeropage, S. 521 Die Speicherstellen fehlen im Buch
$0310 783 Status-Register für SYS-Befehl $030F 783 Status-Register für SYS-Befehl Kapitel 6.4 Die Belegung der Zeropage, S. 529
$032B-$032C 812-813 $F32F CLALL-Vektor $032C-$032D 812-813 $F32F CLALL-Vektor Kapitel 6.4 Die Belegung der Zeropage, S. 529
LR = X HR = X
GA = 0 EX = 0
LR = X HR = X
GA = 0 EX = 1
Kapitel 6.5 Die Speicheraufteilung des C64, S. 532 Die Null widerspräche auch den zwei Vorgänger-Bildern, bei denen GAME und EXROM auch auf Null sind, LR und HR jedoch eine Bedeutung haben. Die 28 KByte RAM sind in Wirklichkeit nicht vorhandener Speicher. Probiert′s aus oder lest nach in C=Hacking #7.
Missing 'FN' BASIC-Befehlswort
tab( to
tab( to fn Kapitel 6.5 Commodore 64 ROM-Listing, S. 535
FFF6 52 52 42 59z FFF6 52 52 42 59 R R B Y Kapitel 6.5 Commodore 64 ROM-Listing, S. 796 RR BY are the initials of C64 designers Robert Russell & Robert (Bob) Yannes

Diese Tabelle und auch einige Texte wurden mit freundlicher Genehmigung von Willcox′ Website übernommen

Meinung[Bearbeiten | Quelltext bearbeiten]

Jodigi: "Damals war es eines meiner ersten selbst gekauften Bücher zu meinem Lieblingscomputer C64. Ich war wegen dem günstigen Preis, der Hülle an Informationen, den Seitenumfang und wegen vieler interessante Programme, sowie Tips & Tricks sehr angetan... Für mich war es als Jugendlicher ein gutes Buch, um verschiedene Sachen zum C64 besser verstehen zu können... Zumal verschiedene Buchthemen aus den früheren Data Becker Einzelbüchern aus den 1980er Jahre ebenfalls in diesem Buch vorzufinden sind!"

Weblinks[Bearbeiten | Quelltext bearbeiten]