Das C64-Profihandbuch
Das C64-Profihandbuch | |||
---|---|---|---|
Sprache | deutsch | ||
Autor(en) | Hans Lorenz Schneider, Werner Eberl | ||
Verlag | Markt & Technik | ||
Jahr | 1985 | ||
ISBN | ISBN 3-89090-110-7 | ||
Neupreis | 52,- DM (47,80 sFr; 405,60 öS) | ||
Datenträger | - | ||
Seitenzahl | 413 | ||
letzte Auflage | 1 | ||
Genre | Profi, Programmieren, Hardware | ||
Information |
Vorwort[Bearbeiten | Quelltext bearbeiten]
In diesem Buch haben wir für Sie wichtige und nützliche Informationen über den Commodore 64 zusammengetragen. Der Begriff 'Profi' ist einerseits in seinem ursprünglichen Sinn zu verstehen (professionelle Anwendungen), es ist aber auch an die Leser gerichtet, die fast alle allgemeinen Fähigkeiten an ihrem Commodore 64 ausgereizt haben. Einiges aus dem Inhalt wird sicherlich bekannt sein, aber unsere Absicht war die Zusammenstellung eines Nachschlagewerkes. Das Buch soll eine umfassende Information über Ihren Rechner auf höherer Ebene darstellen.
Das umfangreiche Stichwortverzeichnis soll Ihnen die Handhabung des vorliegenden Buches als Nachschlagewerk erleichtern, obwohl die Themata nicht lexikographisch behandelt, sondern in logische Gruppen untergliedert sind.
Abschließend sei noch zu erwähnen, dass die Programme mittels des - aus der Zeitschrift 64er bekannten - Checksummers ausgedruckt wurden, um Ihnen die Arbeit zu erleichtern. Eine Beschreibung und das Listing des Checksummers finden Sie im Anhang.
Buchrückseite[Bearbeiten | Quelltext bearbeiten]
In diesem Buch sind alle wichtigen und nützlichen Informationen für professionelle Anwendungen mit dem Commodore 64 zusammengetragen. Nicht nur für Profis, auch für Anwender, die mehr über ihren 64er erfahren wollen, ist dieses Buch eine Hilfe.
Das erste Kapitel beschäftigt sich mit allgemeinen Algorithmen, die nicht nur speziell für den 64er angewendet werden können, sondern auch auf andere Rechner übertragbar sind.
Im zweiten Kapitel sind einige Utilities (getrennt nach BASIC- und Maschinenprogrammen) aufgeführt. Da sich BASIC-Erweiterungen im Commodore 64 ohne Hardwareänderungen sehr leicht durchführen lassen, wurden die im zweiten Teil vorgestellten Maschinenprogramme auch als BASIC-Erweiterung ausgebaut. Besonders nützlich für den Profi sind die erweiterten PEEK- und POKE-Funktionen.
Das dritte Kapitel widmet sich den sechs Verbindungen des Rechners nach außen hin zu, und im vierten Kapitel sind einige nützliche Tips und Tricks aufgezählt, die von einzelnen PEEKs und POKEs über SYS-Aufrufe bis hin zu kurzen Programmen reichen. Das letzte Kapitel stellt die Internas des Commodore 64 in tabellarischer Form sowie in einigen Abbildungen zusammen. Besonders wird hier auf den Speicher und die Registerverteilung (VIC, SID, CIA) eingegangen, aber auch die im ROM implementierten Routinen werden angesprochen. Im Buch befindet sich auch eine ausführliche Fehlerbeschreibung, sowohl der Fehler des Rechners als auch der Floppy. Neben dem Literatur- und einem umfangreichen Stichwortverzeichnis finden Sie im Anhang zwei Übersichten zur Übernahme der vorgestellten BASIC-Erweiterungen in Ihrem Rechner (Hex-Listing, BASIC-Loader).
Inhaltsverzeichnis[Bearbeiten | Quelltext bearbeiten]
Vorwort 5 Einleitung 7 Inhaltsverzeichnis 9 1. Allgemeine Routinen - nicht nur für den C64 15 1.1 Variablendefinitionen 17 1.2 Menütechniken 24 1.3 Sortierverfahren 27 1.3.1 Maxsort / Minsort 28 1.3.2 Heap-Sort (Prinzip) 29 1.3.3 Quicksort 30 1.3.4 Andere Sortierverfahren 34 1.4 Selektieren 35 1.5 Mischverfahren 42 1.6 Rund ums Datum 49 1.6.1 Plausibilitätsprüfung 49 1.6.2 Datum platzsparend speichern 51 1.6.3 Nach Datum sortieren 52 1.6.4 Selektieren durch Vergleich 53 1.7 Boolsche Operatoren 54 1.8 Führende Nullen anfügen 57 1.9 Eliminieren anhängender Leerzeichen 58 1.10 Kaufmännische Zahldarstellung 58 1.11 Runden 60 1.12 Präfix-Suche 60 1.13 Speicherplatz einsparen 63 1.14 Rechenzeit verkürzen 65 1.15 Index-Funktion 67 1.16 Zahlkonvertierungen 67 2. Utilities 75 2.1 Basic-Utilities 77 2.1.1 Joystick-Steuerung 78 2.1.2 Paddles-Steuerung 83 2.1.3 Cursor-Positionierung 86 2.1.4 Parameterübergabe zwischen Programmen 87 2.1.4.1 Übergabe durch Overlay 87 2.1.4.2 Kaltstart 88 2.1.4.3 Übergabe über Bildschirm 89 2.1.4.4 Übergabe über freien RAM-Bereich 91 2.1.4.5 Übergabe über temporäre Dateien 91 2.1.5 Data-Anweisungen generieren 92 2.1.6 Disk-Status bestimmen 93 2.1.7 Eingebaute Uhr 94 2.1.8 Zufallsgenerator 95 2.1.9 Zeichensatz ändern 99 2.1.10 Sprite-Editor 100 2.2 Maschinenroutinen 105 2.2.1 Basic-Erweiterungen 108 2.2.1.1 Symbol Vereinbarungen und Wortreservierungen 108 2.2.1.2 Initialisierung 110 2.2.1.3 Der AUS-Befehl 112 2.2.1.4 Dekodierung von Befehlen 113 2.2.1.5 Dekodierung von Funktionen 116 2.2.1.6 Interrupt-Manager 118 2.2.1.7 Übersicht der neuen Befehle 120 2.2.1.8 Parameterübergabe 121 2.2.2 Zahlkonvertierungen 127 2.2.2.1 Integer nach Fließkomma 127 2.2.2.2 Fließkomma nach Integer 128 2.2.2.3 Signed-Integer nach Fließkomma 128 2.2.2.4 Fließkomma nach Signed-Integer 129 2.2.2.5 Dezimalstring nach Fließkomma 129 2.2.2.6 Fließkomma nach Dezimalstring 130 2.2.2.7 Hexadezimal nach Integer 130 2.2.2.8 Binär nach Integer 131 2.2.2.9 Integer nach Hexadezimal 133 2.2.2.10 Integer nach Binär 134 2.2.2.11 Rahmenprogramm zur Nutzung der Zahlkonv. 134 2.2.3 Erweiterte PEEK- und POKE-Funktionen 137 2.2.3.1 PEEK in RAM unter ROM (REEK) und Z.gen.(CHEEK) 137 2.2.3.2 16-Bit-PEEK (DEEK) 139 2.2.3.3 16-Bit-POKE (DOKE) 140 2.2.3.4 16-Bit-PEEK in RAM unter ROM (DREEK) 141 2.2.3.5 POKE in RAM unter I/O (ROKE) 142 2.2.4 Zeichengenerator in RAM kopieren 143 2.2.5 Austausch von RAM-Bereichen (SWAP) 144 2.2.6 Laden ohne Veränderung der Basic-Zeiger 147 2.2.7 Speichern von RAM-Bereichen 148 2.2.8 Index-Funktion 150 2.2.9 Floppy-Routinen 152 2.2.9.1 Hilfsroutinen 153 2.2.9.2 Disk-Status lesen 157 2.2.9.3 Programmzeile lesen 158 2.2.9.4 Textzeile lesen 160 2.2.9.5 Directory / Programmdatei anzeigen (VIEW) 161 2.2.10 Integer-Division 163 2.2.11 Zeitbehandlung mit der CIA 164 2.2.11.1 Pause mit Timer 164 2.2.11.2 Uhrzeit setzen 165 2.2.11.3 Uhrzeit lesen 168 2.2.12 Key-Click 170 2.2.13 Grafikbefehle 172 2.2.13.1 Grafik einschalten 175 2.2.13.2 Grafik ausschalten 178 2.2.13.3 Punkt setzen 179 2.2.13.4 Textzeichen in Grafik 185 2.2.14 Funktionstasten programmieren 187 2.2.15 Komfortable Tonerzeugung 195 3. Ports 203 3.1 Userport 206 3.2 Controlport 209 3.3 Expansionsport 210 3.4 Serialport 212 3.5 Audio-Video-Port 215 3.6 Kassettenport 216 4. In der Kürze liegt die Würze - Tips und Tricks 217 4.1 Diverse PEEK's, POKE's und SYS-Aufrufe 219 4.2 Programmaustausch mit anderen Commodore-Rechnern 236 5. Tabellen und Diagramme 239 5.1 Speicher und Register 241 5.1.1 Zeropage und weitere wichtige Adressen 241 5.1.2 Speicheraufteilung 247 5.1.3 VIC-Register, Sprites und Grafikspeicher 255 5.1.4 Sound-Register (SID) 260 5.1.4.1 Registerübersicht 260 5.1.4.2 Frequenztabelle 262 5.1.5 CIA-Register (Complex Interface Adapter) 265 5.1.5.1 Adressenübersicht 265 5.1.5.2 Registerbeschreibung 267 5.1.6 Zeichensatz (Bildschirmcodes) 273 5.2 ROM-Routinen 299 5.2.1 KERNAL-Routinen 299 5.2.2 KERNAL-Vektoren 305 5.2.3 Basic-Routinen 306 5.2.4 Basic-Vektoren 317 5.2.5 Variablenzeiger 321 5.3 Prozessor-Befehle 324 5.3.1 Alphabetische Übersicht 324 5.3.2 Numerische Übersicht 326 5.4 Hex-Dez-Tabelle 330 5.5 ASCII- und CHR$-Codes 331 5.6 Steuerzeichen auf Drucker 334 5.7 Tastaturmatrix 335 5.8 Prioritäten der Operatoren 336 5.9 Statusübersicht 337 5.10 Gerätenummern und Sekundäradressen 338 5.11 Fehlermeldungen 340 5.11.1 Basic-Fehlermeldungen (Rechner) 340 5.11.2 Fehlermeldungen von der Floppy 352 Anhang 361 Anhang 1: Literaturverzeichnis 363 Anhang 2: Vergleichsoperatoren 364 Anhang 3: Basic-Loader der Erweiterungen 365 Anhang 4: Hex-Listing der Basic-Erweiterungen 385 Anhang 5: Interpretercodes und Abkürzungen 395 Anhang 6: Stichwortverzeichnis 396 Anhang 7: Checksummer 411
Leseprobe[Bearbeiten | Quelltext bearbeiten]
(Seite 95; Kapitel "2.1.8 Zufallsgenerator")
Die Basic-Funktion RND arbeitet je nach Vorzeichen des Argumentes unterschiedlich.
Für negative Argumente ist der Wert nicht zufällig, sondern eine Funktion des Arguments.
Für positive Argumente wird der neue Zufallswert aus dem alten durch einen einfachen Algorithmus gebildet. Das Setzen des Startwertes kann durch einen Aufruf der RND-Funktionen mit negativen Argumenten erfolgen.
Das Argument 0 bewirkt, daß die Zufallszahl anhängt von dem momentanen Stand des Timers A im CIA1 und dem Stand der Uhr (Sekunden und 1/10 Sekunden) und diesem CIA. Es ist einzusehen, daß weder für den Argument 0 noch für positive Argumente eine optimale Verteilung der Zufallswerte vorliegen kann. Eine etwas besseren Verlauf erhält man, wenn man das Rauschregister des SID verwendet. Das folgende kleine Programm ergibt zufällige Werte zwischen 0 und 255
100 SI=54272 : REM BASISADRESSE SID <216> 110 POKE SI+24,128 : REM STIMME 3 STILL <203> 120 POKE SI+18,128 : REM STIMME 3 RAUSCH <022> 130 POKE SI+15,255 : REM FREQUENZ ST. 3 <206> 200 PRINT PEEK(SI+27) : REM ZUFALLSWERT <079> 210 GOTO 200 : REM ENDLOSSCHLEIFE <190>
Meinung[Bearbeiten | Quelltext bearbeiten]
Werner: "Sicher eins der besseren Bücher für den C64."
Weblinks[Bearbeiten | Quelltext bearbeiten]
- Katalog der Deutschen Nationalbibliothek: 3-89090-110-7
- Das C64 Profihandbuch im Internet Archiv