Anschluß und Inbetriebnahme ..........Jetzt geht es endlich los ............Die Tastatur ................Laden und Speichern von Programmen......... Der PRINT-Befehl und das Rechnen mit dem COMMODORE 64 ..............Grundlagen des Programmierens in BASIC ......GOTO ..................Tips zum Edieren eines Programms........Variable ...................
Seite 4
Sprite-Grafik ................Was sind SPRITES ..............Die Konstruktion von Sprites ........... Binärarithmetik ............... Musik mit dem COMMODORE 64 ........... Die Struktur eines Musikprogramms ........Beispielprogramm..............Wichtige Klangeinstellungen ..........Klangeffekte ................Fortgeschrittenes Programmieren ......... READ und DATA ............... Mittelwerte................. Indizierte Variable; Eindimensionale Felder ......
Seite 5
Anhang Seite COMMODORE 64 Zubehör und Software ......Fortgeschrittene Kassettenoperation ........COMMODORE 64 BASIC ............Abkürzungen der BASIC-Schlüsselwörter ......Bildschirm Codes ..............ASCII- und CHR$Codes ............Adreßbereiche von Bildschirm- und Farbspeicher ....Abgeleitete mathematische Funktionen........Steckerbelegung der Ein- und Ausgabeanschlüsse....
Computer vertraut zu werden. Weiterhin lernen Sie auf einfache, abwechslungsreiche Weise, eigene Programme zu schreiben. Für alle Besitzer eines COMMODORE 64, die sich nicht gleich ins Programmieren stürzen wollen, haben wir diejenigen Informationen gleich zu Anfang zusammengefaßt, die Sie brauchen, um fertige Pro- gramme zu benutzen.
Seite 7
Hand weiterführender Literatur tiefer in die Materie einzudringen. Commodore möchte, das Sie Spaß an Ihrem COMMODO- RE 64 haben und wir haben auch versucht alles zu tun, um Ihnen dabei zu helfen. Aber denken Sie daran. Programmieren ist keine Fähigkeit, die man an einem Tag erlernt;...
DER ANSCHLUSS DES COMMODORE 64 Im folgenden wird beschrieben, wie Sie den COMMODORE 64 an ein Fernsehgerät, einen Verstärker oder einen Monitor anschließen können. Überprüfen Sie zuerst den Inhalt der Verpackung, in der der COMMO- DORE 64 geliefert wurde. Außer dieser Betriebsanleitung sollte die Packung folgendes enthalten: 1.
Seite 10
7. Serieller Ausgang. Zum Anschluß eines Druckers oder eines Dis- ketten-Einzellaufwerks. 8. Recorder-Anschluß. Anschlußmöglichkeit für die Datasette zur Speicherung von Programmen oder Daten. 9. User Port. Frei programmierbarer Ein/Ausgang und Anschluß- möglichkeit für Steckmodule wie z. B.: RS-232-Schnittstelle.
1. Verwendung des UHF-Antenneneingangs Verbinden Sie mit Hilfe des beiliegenden Fernsehkabels den TV-An- schluß (Nr. 5) auf der Rückseite des COMMODORE 64 mit dem UHF- Antenneneingang Ihres Fernsehgerätes. Antenne vorher entfernen. Stellen Sie Ihr Gerät auf Kanal 36 ein.
Seite 12
Das beste Bild erzielen Sie über einen Farb-Monitor. Verwenden Sie hierzu ein Videokabel, das an dereinen Seite einen 5-poligen Dioden- stecker (DIN 41524) für die Buchse 6 Ihres COMMODORE 64 hat, auf der anderen Seite einen Videostecker (DIN 45322) für Ihren Monitor.
Seite 13
Zum Empfang normaler Fernseh-Sendungen müssen Sie das Video- Kabel in der Regel entfernen. 3. Netzanschluß Verbinden Sie Ihr Netzgerät mit dem Commodore 64 (Buchse 1) und mit einem 220 V/50 Hz-Netzanschluß. 4. Weitere Anschlüsse Da der COMMODORE 64 das Tonsignal in Hi-Fi-Qualität liefert, bietet es sich an, dieses Signal durch einen hochwertigen Verstärkerzu ver-...
Seite 14
Wie Sie vielleicht wissen, können Sie als Peripherie z. B. noch das Dis- kettenlaufwerk („Floppy Disk") VC 1541 oder den Drucker VC 1525 an- schließen. Ein solches komplettes System kann etwa wie folgt aussehen.
Seite 15
Einstellung Ihres Fernsehgerätes besteht darin, daß Sie einen dunkelblauen Bildschirmhintergrund mit hellblauem Rand und hell- blauen Zeichen erhalten sollten. Wenn sich ihr COMMODORE 64 nicht wie beschrieben auf dem Bild- schirm Ihres Fernsehgerätes oder Monitors meldet, überprüfen Sie Ihren Aufbau noch einmal anhand der folgenden Liste.
Seite 16
FEHLERSUCHE SYMPTOM URSACHE MASSNAHME Rote Indikatorlampe am Computer nicht Schalter auf der rechten Seite Computer brennt nicht eingeschaltet des Computers muß in der Stellung „ON" sein Keine Verbindung zum Netz Überprüfen Sie Netzstecker, Gerätestecker und gegebe- nenfalls auch die Steckdose Sicherung defekt Bitten Sie Ihren Fachhändler die Sicherung auszutauschen...
DER „CURSOR" Das helle blinkende Quadrat unter der READY-Meldung wird als CURSOR bezeichnet. Es zeigt die Position an, in der ein von der Tastatur eingegebener Buchstabe auf dem Bildschirm erscheint. Geben Sie einen Text ein und beobachten Sie, wie der Cursor sich über den Bildschirm bewegt und jeweils durch die von Ihnen eingegebenen Zeichen ersetzt wird.
Seite 18
Erzeugen Sie auf diese Weise ein Farbmuster auf dem Bildschirm und regeln Sie die Farb- und Helligkeitskontrollen Ihres Fernsehgerätes oder Monitors so ein, daß Sie möglichst kräftige reine Farben erhalten, die mit den Bezeichnungen auf den Farbtasten Ihres COMMODORE 64 überein- stimmen.
Seite 19
Ihr Bildschirm sollte etwa wie folgt aussehen: Ihr System ist nun korrekt eingestellt. Die folgenden Kapitel geben Ihnen nun eine Einführung in die Pro- grammiersprache BASIC. Sie können aber auch fertige Programme ver- wenden, für deren Betrieb Sie keine Programmierkenntnisse benötigen. Diesen Programmpaketen sind ausführliche Anleitungen beigefügt, die Ihnen die Anwendung erleichtern;...
KAPITEL JETZT GEHT ES ENDLICH LOS Die Tastatur • Laden und Speichern von Programmen • Der Befehl PRINT • Rechenoperationen •...
Seite 21
Nehmen Sie sich nun ein paar Minuten Zeit, um mit der Tastatur ver- traut zu werden, da sie das wichtigste Instrument zur Eingabe von Infor- mationen in den COMMODORE 64 darstellt. Im großen und ganzen stimmt die Tastatur mit der einer Schreib- maschine überein.
Seite 22
Edieren Jeder macht mal einen Fehler, und der COMMODORE 64 berück- sichtigt das. Er hat eine Reihe von Tastenfunktionen die Ihnen das Korri- gieren sehr erleichtern. Sie erinnnern sich noch, wir haben das blinkende Rechteck, das angibt, wo wir uns gerade auf dem Bildschirm befinden, CURSOR ge- nannt.
Seite 23
(Abgeleitet von RESTORE = wiederherstellen) Drücken Sie die -Taste zusammen mit der -Taste, so können Sie Ihren Computer in den „Ausgangszustand" zurückbringen. Was damit gemeint ist, wird später näher erläutert. Die Funktionstasten Die Funktionstasten auf der rechten Seite der Tastatur können im Rahmen eines Programms frei mit Bedeutungen belegt werden.
-Taste dient dazu, den Ablauf eines Basic-Programms zu unterbrechen. Der Computer erhält den Befehl, einen Vorgang zu STOPpen. Zusammen mit der -Taste wird ein Programm vom Band geladen (und gestartet). Die „COMMODORE"-Taste Die Taste mit dem COMMODORE-Symbol hat eine ganze Reihe Funktionen.
VOR DEM EINSTECKEN DER MODULE STETS COMPUTER AUS- SCHALTEN!!! Wenn Sie diesen Ratschlag nicht befolgen, können Ihre Module be- schädigt werden. Schalten Sie nun Ihren COMMODORE 64 ein und starten Sie das Programm mit dem in der Anleitung angegebenen Befehl oder der jeweiligen Starttaste.
Seite 26
Computer wieder mit: FOUND (PROGRAMM- NAME). Auf Drücken der -Taste hin wird das Programm in den Spei- cher des COMMODORE 64 geladen. Sie können den Ladevorgang je- doch jederzeit durch Drücken der -Taste unterbrechen. 3. DISKETTE: Öffnen Sie das Laufwerk, orientieren Sie die Diskette so, daß...
Seite 27
Wenn Sie sich nicht mehr an den Namen des Programms erinnnern können, so tippen Sie nur LOAD ein und drücken die -Taste. In diesem Fall wird einfach das erste Programm auf dem Band geladen. Der Computer meldet sich dann mit: Wenn Sie nun dieser Aufforderung folgen und die PLAY-Taste der Datasette drücken, so verschwinden Schrift und Cursor vom Bildschirm und der Computer sucht das von Ihnen gewählte Programm.
Bern.: Wenn Sie ein Programm in den Speicher des Computers laden, so wird die gesamte Information, die vorher darin enthalten war, gelöscht. Über- prüfen Sie daher, ob Sie das Programm, an dem Sie gearbeitet haben, abgespeichert haben, bevor Sie das neue laden. DAS SPEICHERN VON PROGRAMMEN AUF BAND Wenn Sie ein Programm geschrieben haben und Sie wollen es auf Kassette abspeichern, so tippen Sie ein (wobei PROGRAMMNAME für...
Computer darüber, daß Sie Ihr Programm auf Diskette abspeichern wollen. Nach dem Drücken der -Taste meldet sich der COMMODORE 64 wieder mit: DER PRINT-BEFEHL UND DAS RECHNEN MIT DEM COMMODORE 64 Da Sie nun wissen, wie man ein Programm abspeichert, wollen wir darangehen eins zu schreiben.
Seite 30
Als erstes haben Sie einen Befehl formuliert, der den Computer anweist, den Text, der zwischen den Anführungszeichen steht, auf den Bildschirm zu schreiben. Der COMMODORE 64 erkennt den Befehl als solchen aber erst nach dem Drücken der -Taste, und er führt ihn dann auch erst aus, d.
Seite 31
Addition: Die Addition wird mit Hilfe des (+)-Zeichens ausgeführt. In unserem Beispiel wurde die Rechnung 12 + 12 ausgeführt. Denken Sie daran, daß der Computer erst nach dem Drücken der -Taste Ihren Befehl ausführen kann. Subtraktion Zum Subtrahieren verwendet man das normale (—)-Zeichen. Multiplikation Die Multiplikation wird durch das „Sternchen"...
Seite 32
Rechenoperationen im Zusammenhang mit einem PRINT-Befehl ausgeführt werden. Bis jetzt haben wir nur kleine Zahlen und einfache Beispiele ver- wendet; aber der COMMODORE 64 kann wesentlich mehr. Nehmen Sie die nächste Aufgabe als Beispiel und addieren Sie eine Reihe großer...
Seite 33
Wenn Sie sich die Zeit nehmen und das Beispiel von Hand durch- rechnen, kommen Sie zu einem anderen Ergebnis. Woher kommt das? Die Rechengenauigkeit Ihres COMMODORE 64 ist zwar groß, aber dennoch begrenzt. Er rechnet mit zehn Stellen, von denen er jedoch nur neun anzeigt.
Seite 34
Je nach Vorgehensweise kommt man auf 14 oder 24. Ihr COMMO- DORE 64 bekommt 24 heraus. Der Grund dafür ist, daß er die Division vor der Addition durchführt. Hier ist eine Rangfolge der Rechenoperation; die weiter obenstehenden Operationen werden vor den weiter unten- stehenden ausgeführt.
(= 9). Setzen Sie nun die Summe 5 2 in Klammern: Nun hat der COMMODORE 64 als erstes die Rechenoperation in der Klammer ausgeführt (= 7) und 35 durch das Ergebnis dividiert (= 5). Im nächsten Beispiel berechnet der Computer als erstes die beiden Klammern und multipliziert die Ergebnisse.
Seite 36
über eine Zeile. Überzählige Zeichen „schiebt" er in die nächste Zeile. Der Grund liegt darin, daß der Bildschirm des COMMODORE 64 so organisiert ist, daß jede Zeile aus 4 Abschnitten á 10 Zeichen besteht. Das Komma entspricht einem Tabulator, der jeweils an den Anfang des näch- sten Abschnittes springt, auch wenn dieser sich in der nächsten Zeile...
-Taste wurden die in dieser Zeile enthaltenen Befehle dann vom Computer ausgeführt. Diese Art mit dem COMMODORE 64 zu rechnen nennt man den DIREKT-Modus. Aber unser Computer kann mehr! Er kann eine große Zahl von Befehls- zeilen nacheinander ausführen; d. h., er kann ein PROGRAMM ab- arbeiten.
Seite 40
Zeile 20 und erhält dort den Befehl, in die Zeile 10 zurückzugehen. Damit fängt das Spiel von vorne an, und Ihr COMMO- DORE 64 wird nicht aufhören, seinen Namen auf den Bildschirm zu druk- ken, bis Sie ihn mit der -Taste unterbrechen.
TIPS ZUM EDIEREN EINES PROGRAMMS Wenn Sie in einer Programmzeile einen Fehler machen, gibt es einige Methoden, diesen zu korrigieren. 1. Sie können die Zeile noch einmal schreiben; die alte Zeile wird dann automatisch durch die neue, fehlerfreie ersetzt. 2. Wenn Sie nur die Nummer der fehlerhaften Zeile eintippen und drücken, so wird diese Zeile gelöscht.
VARIABLE Einer der wichtigsten Begriffe in allen Programmiersprachen ist der der Variablen. Er ist deshalb wichtig, ihre Eigenschaften und Möglichkeiten kennenzulernen. Stellen Sie sich vor, daß Ihr Computer eine Reihe von Schachteln ent- hält, die Zahlen oder Worte enthalten. Diese Schachteln tragen Namen, die Sie frei wählen können.
Seite 43
einer Variablen eine ganze Zahl, einen Dezimalbruch oder auch einen Satz zuordnen. Steht hinter dem Namen der Variablen ein %, so handelt es sich um einen Variablentyp, der nur ganze Zahlen repräsentieren kann (auch Integer-Variable genannt). Zulässige Integer-Variablennamen sind etwa die folgenden: Steht hinter einem Variablennamen ein $, so handelt es sich um eine sogenannte „Stringvariable".
Seite 44
In den Zeilen 10 und 20 haben wirder Variablen X% die (ganze) Zahl 15 und der Variablen X den Dezimalbruch 23.5 zugeordnet. Der String X$ wurde in Zeile 30 definiert. In Zeile 40 haben wir verschiedene Formen der PRINT-Anweisung kombiniert, um die Namen und Werte der Vari- ablen X und X% auszudrucken.
Seite 45
Wenn dies zutrifft, so wird der hinter THEN stehende Befehl ausgeführt. Sollte die hinter IF stehende Bedingung nicht mehr wahr sein, so führt der COMMODORE 64 den Befehl in der nächsten Zeile aus. Eine ganze Reihe von Bedingungen können im Zusammenhang mit IF ...
10 ZR = 0 20 ?"COMMODORE 64" 30 ZR = ZR + 1 40 IFZR < 5 THEN 20 50END Wir haben in unserem Beispielprogramm eine sogenannte „Schleife" konstruiert, die jedoch nur so lange durchlaufen wird, wie die Bedingung, die zwischen IF und THEN steht, erfüllt ist.
Seite 47
Sie erhalten den gleichen Bildschirmausdruck wie im letzten Kapitel, aber das Programm ist kürzer geworden. ln Zeile 10 wird ZR = 1 gesetzt. Zeile 20 bewirkt wieder das Ausdrucken unseres Textes, und in Zeile 30 wird der Wert von ZR um 1 erhöht. Der Ausdruck „NEXT"...
KAPITEL WEITERE BASIC-BEFEHLE Einleitung • Bewegung auf dem Bildschirm- • geschachtelte Schleifen INPUT • • Die Random-Funktion • Zahlenratespiel • Würfeln • Zufallsmuster – die CHR$ - • und die ASC-Funktion...
Diese Beispiele werden Ihnen einen Eindruck davon vermitteln, welche faszinierenden Grafik- und Tonmöglichkeiten in Ihrem COMMODORE 64 stecken. Für diejenigen, die gar nicht genug kriegen können, haben wir im Anhang M noch eine Liste von BASIC- Lehrbüchern zusammengestellt.
BEWEGUNG AUF DEM BILDSCHIRM Wir wollen nun noch einmal das üben, was wir bis jetzt gelernt haben, und noch einige neue Methoden dazu lernen. Nehmen Sie sich Mut tippen Sie das nachstehende Programm ein. Das Bemerkenswerte an diesem Programm ist, daß der PRINT-Befehl zur Steuerung des Cursors benutzt wird.
Seite 51
Ballbewegung in die Bildschirmmitte verlagert. Wenn Sie die Zeile 25 weglassen, wird sich der Ball am oberen Bildschirmrand hin- und her- bewegen. Beachten Sie, daß bei einer FOR ... NEXT-Schleife FOR-...
Seite 52
NEXT-Anweisung in einer Zeile stehen können. Mehrere BASIC-Befehle in einer Zeile müssen jedoch durch Doppelpunkte getrennt werden. In Zeile 30 befindet sich der erste Teil einer Schleife, die dafür sorgt, daß sich der Ball horizontal (von links nach rechts) über den gesamten, 40 Spalten breiten, Bildschirm bewegt.
Zum besseren Verständnis des Programms bringen wir noch eine kleine Änderung in Zeile 40 an: 40 PRINT" "; Starten Sie das Programm noch einmal und schauen Sie was passiert. Da wir die Cursorsteuerung weggelassen haben, bleibt der Ball auf dem Bildschirm, bis er durch den „reflektierten"...
Seite 54
nicht länger als 38 Zeichen sein. Das Format (d. h. soviel wie Schreib- weise) der INPUT-Anweisung ist: INPUT "KOMMENTAR"; Variable Dabei kann die Variable eine Stringvariable oder eine numerische Variable sein. Wenn Sie auf den Kommentar verzichten wollen, brauchen Sie nur ein- zugeben: INPUT VARIABLE BEM.: Um aus diesem Programm „auszusteigen", müssen Sie...
Wenn das Programm richtig eingetippt wurde, so fragt es ab, welche Umrechnung gewünscht wird, verlangt dann die Eingabe des ent- sprechenden Temperaturwertes und rechnet um. Die Umrechnungsformeln können in jedem Grundlehrbuch der Physik nachgelesen werden; ihre Umsetzung in ein BASIC-Programm ist sehr einfach.
Anweisungen ausstatten, wenn Sie die Zeilen 10, 20 und 40 in folgender Weise umschreiben und Zeile 45 löschen: DIE ERZEUGUNG VON ZUFALLSZAHLEN Ihr COMMODORE 64 enthält eine große Zahl eingebauter Funktionen. Sie können diese Funktionen im Rahmen von BASIC-Programmen wie Unterprogramme benutzen. Dazu brauchen Sie nur die gewünschte Funktion mit ihrem Namen aufzurufen.
Seite 57
Nach Beendigung des Programms sollte der Bildschirm etwa wie folgt aussehen: Sie haben andere Zahlen? Nun, kein Wunder, die Zahlen sollen ja auch zufällig sein. Lassen Sie das Programm ein paar mal laufen und vergewissern Sie sich, daß stets andere Zahlen ausgedruckt werden. Allen Zahlen ge- meinsam ist nur die Eigenschaft, daß...
Nun liegen die Zahlen etwa für ein Würfelspiel im richtigen Bereich, aber die Nachkommastellen stören noch. Aber auch für diesen Fall haben wir eine eingebaute Funktion in unserem COMMODORE 64: Die INI-Funktion (abgeleitet von INTeger = ganze Zahl) schneidet die Nachkommastellen einer Dezimalzahl ab.
ZAHLENRATESPIEL Nachdem wir uns so lange mit dem Erklären der Zufallszahlen auf- gehalten haben, wollen wir endlich auch eine Anwendung bringen. Das folgende Programm zeigt nicht nur eine sinnvolle Anwendung der RND- Funktion, sondern bringt auch einige neue Programmiertricks. Die Zufallszahl, die in diesem Programm verwendet wird, wurde der Variablen NM zugeordnet.
Anzahl der Feh l versuche zu ermitteln, die ja nach Auffinden der „richtigen" Zahl vom Computer zusammen mit dem Text „Toll SIE HABEN DIE ZAHL ERRATEN" ausgegeben wird. Nun können Sie mit einem neuen Spiel beginnen, in dem der COMMODORE 64 natürlich eine neue Zufallszahl vorgibt. PROGRAMMIERTIPS: In den Zeilen 40 und 50 wurden mehrere Befehle durch Doppelpunkte getrennt.
ZUFALLSGRAFIKEN Daß man auch Grafiken auf Zufallszahlen aufbauen kann, sehen Sie an folgendem kleinen Programm: Das Wichtigste in diesem Programm steht in der Zeile 20, die die CHR$-Funktion enthält. Je nachdem welche Zahl zwischen 0 und 255 Sie in Klammern hinter den Funktionsnamen setzen, erhalten Sie jeweils ein anderes Zeichen.
Seite 62
Wenden wir nun die Formel 205.5 + RND(1) an, so werden Zahlen zwischen 205.5 und 206.5 erzeugt. Die Wahrscheinlichkeiten dafür, daß eine Zahl größer oder kleiner als 206 ist, sind gleich groß. Da die CHR$- Funktion die Nachkommastellen ignoriert, werden also die Zeichen mit den Codes 205 und 206 mit gleicher Häufigkeit ausgedruckt.
KAPITEL FORTGESCHRITTENE GRAFIK- UND FARB- PROGRAMMIERUNG Farbe und Grafik • Farbgebung mit PRINT-Befehlen • Farb-CHR$-Codes • PEEK und POKE • Weitere Beispiele •...
(hellblaue Schrift auf dunkelblauem Hintergrund mit hellblauem Rand) beschränkt. Nun wollen wir Ihnen zeigen, wie Sie diese Farben ändern können und wie Sie die vielen Grafiksymbole Ihres COMMODORE 64 einsetzen können. FARBGEBUNG MIT PRINT-BEFEHLEN Wenn Sie den Farbjustagetest in Kapitel 1 gemacht haben, so können Sie sich sicher daran erinnern, daß...
Seite 65
Tippen Sie nun NEW ein und machen folgendes Experiment: Nach dem Zeilenanfang 10 PRINT" drücken Sie zusammen die und die -Taste. Lassen Sie dann die -Taste los und drücken die -Taste. Nun drücken Sie die -Taste zusammen mit der -Taste und dann die -Taste allein.
BEM.: Nach Beendigung eines Programms, in dem Sie die Farbsteuerung angewandt haben, bleibt der Computer in dem Modus, den Sie als letztes eingeschaltet hatten. Sie kommen in den Normalmodus (hellblau, dunkelblau) zurück, wenn Sie drücken. FARB-CHR$-CODES Wie Sie dem Anhang F (Liste der CHR$-Codes) entnehmen können, haben die Farben (aber auch z.
Seite 67
Nach dem Eintippen der Zeilen 1 bis 40 sollte Ihr Bildschirm wie folgt aussehen: EDIERHINWEISE Bewegen Sie zuerst den Cursor mit Hilfe der Cursor-Steuertasten auf die „4" der Zeilennummer 40. Tippen Sie nun eine „5", so daß die Zeilen- nummer 50 entsteht. Steuern Sie nun den Cursor zwischen die Klammern der CHR$-Funktion.
In derselben Weise, wie man sich die Variablen als „Schachteln" vor- stellen kann, in die Information „eingefüllt" werden kann, so kann man sich auch vorstellen, daß die Speicherplätze des COMMODORE 64 sol- chen „Schachteln" entsprechen. Der Inhalt einiger Speicherplätze hat nun ganz bestimmte Bedeutungen.
Seite 69
ändern, Objekte auf dem Bildschirm erscheinen und sich bewegen lassen und sogar Töne erzeugen und zu Musikstücken zusammensetzen. Schreibt man Werte direkt in den Computerspeicher, so geschieht das mit Hilfe des POKE-Befehls. Man sagt deshalb auch, man „poked" einen Wert in eine Speicherstelle. Man kann Speicherstellen etwa auf folgende Art darstellen Hier haben wir 4 Speicherplätze dargestellt, von denen zwei die Bild- schirm- und Hintergrundfarbe bestimmen.
Seite 70
Zwei Schleifen werden ineinander geschachtelt, um alle Kombinatio- nen zu erfassen. Die zusätzliche Schleife in Zeile 50 verzögert den gan- zen Vorgang nur ein bißchen. Wenn das Programm abgelaufen ist, tippen Sie ein: ? PEEK (53280) AND 15 Als Antwort sollte eine „15" auf dem Bildschirm stehen. Dies ist sinnvoll, da als letzter Wert eine „15"...
Aber wie es Speicherplätze im COMMODORE 64 gibt, die die Bild- schirmfarben bestimmen, so gibt es auch Speicherplätze, die den ver- schiedenen Bildschirmpositionen zugeordnet sind. DER BILDSCHIRMSPEICHER Da der Bildschirm unseres Computers aus 25 Zeilen ä 40 Zeichen be- steht, können wir 1000 Zeichen auf ihm unterbringen und brauchen na- türlich genausoviele Speicherplätze, die Informationen darüberenthalten,...
Wert in den Bildschirmspeicher geschrieben. Leider können Sie den Ball noch nicht sehen, er hat nämlich dieselbe Farbe wie der Hintergrund, es gibt jedoch einen Speicher in Ihrem COMMODORE 64, wo Sie durch Ändern der Speicherinhalte die Farben von einzelnen Zei-...
Die Farbcodes liegen zwischen 1 und 15 und entsprechen denen, wir benutzt haben, um die Farbe von Hintergrund und Rahmen zu ändern (siehe S. 61). Die Formel zur Berechnung der Farbspeicheradresse ist bis auf den Startwert dieselbe wie bei der Bildschirmadresse: FARBSPEICHERADRESSE = 55296 + SPALTE +40*ZEILE EIN WEITERES SPRINGBALLSPIEL Auf dieser Seite ist das Programm eines Ballspiels abgedruckt, das eine...
Seite 74
In Zeile 10 wird der Bildschirm gelöscht; in Zeile 20 wird als Hintergrund- farbe hellgrün und als Rahmenfarbe gelb gewählt. Die Variablen X und Y in Zeile 30 stehen für die Zeile und die Spalte, in der sich der Ball momentan befindet. Die Variablen DX und DY in Zeile 40 geben die horizontale und vertikale Bewegungsrichtung des Balls an.
All diesen Vorteilen stehen nur relativ geringe Schwierigkeiten beim Programmieren gegenüber. Zugegeben, Sie müssen noch einiges darüber lernen, wie der COMMODORE 64 arbeitet und wie er Zahlen intern verarbeitet. Aber schließlich ist das doch ganz interessant und auch gar nicht so schwierig; und wenn Sie alle Beispiele sorgfältig durcharbeiten, so werden Sie bald mit selbstkonstruierten SPRITES die verblüffendsten Kunststücke anstellen.
DIE KONSTRUKTION VON SPRITES Die Sprites werden von einem speziellen Grafik-Baustein im COMMO- DORE 64, dem VIC (Video Interface Chip), unterstützt. Die Arbeit, die das Konstruieren der Sprites, das Kontrollieren ihrer Bewegungen und Positionen und die Farbgebung macht, wird zum größten Teil von diesem Chip übernommen.
Seite 78
3 mal hintereinander die Zahlenreihe 128, 64, 32, 16, 8, 4, 2, 1. Die Zeilen des Feldes numerieren Sie von 1 bis 21 durch. Legen Sie sich nun für jede Zeile drei Wertetabellen an, wie sie auf der Seite 71 dargestellt sind. Tabelle 1 entspricht den ersten 8 Positionen einer Zeile in Ihrer Sprite-Darstellung, und die Tabellen 2 und 3 ent- sprechen den Positionen 9-16 bzw.
Seite 79
Die dritte Tabelle der ersten Reihe enthält wieder lauter Nullen, die Summe ist also auch 0. Die 1. Reihe unseres Sprites wird also durch die Zahlen 0,127,0 beschrieben. Um sie leicht in einem Programm verwerten zu können, schreiben wir sie als sogenannte DATA-Zeile: DATA 0, 127,0 Als weiteres Beispiel die Daten der zweiten Reihe unseres Sprites: Für die Reihe zwei erhalten wir also die DATA-Zeile:...
Seite 80
Wenn Sie alles richtig eingetippt haben, fliegt ein BalIon ruhig über den Himmel. Um das Programm zu verstehen, müssen Sie wissen, welche Speicher- stellen (auch Register genannt) welche Funktionen kontrollieren. Sie können das der folgenden Tabelle entnehmen: Register Beschreibung X-Koordinate von Sprite 0 Y-Koordinate von Sprite 0 2-15 Bedeutung paarweise wie 0 und 1 für die Sprites 1 bis 7...
Seite 81
Sie müssen außerdem wissen, in welchem 64er Block die Daten eines bestimmten Sprites abgespeichert sind. Diese Daten stehen in den 8 Re- gistern direkt hinter dem Bildschirmspeicher. Nun wollen wir Schritt für Schritt durchgehen, wie wir unsere Sprites auf den Bildschirm bringen und verschieben können. 1.
Seite 82
20 FOR N = 0 TO 62: READ Q: POKE 832+N,Q: NEXT Durch diese Schleife werden 63 Bytes Daten in den 13. Block (1 Block = 64 Bytes) des Speichers eingelesen, der bei der Adresse 832 (= 13*64) beginnt. 30 FOR X = 0 TO 200 40 POKE V+4.X...
Seite 83
Der Ballon ist jetzt in X- und Y-Richtung doppelt so groß wie vorher. Der Grund dafür ist, daß die Zahl 4 (für Sprite Nr. 2) in die Register 23 und 29 geschrieben wurde. Es ist wichtig zu berücksichtigen, daß die linke obere Ecke des Sprites beim Vergrößerungsvorgang an ihrem Platz bleibt.
Seite 84
NOCH EINIGE BEMERKUNGEN ZU SPRITES Mit Hilfe derselben Kodierungen (0-15) wie bei den Zeichenfarben (siehe Kapitel 5 oder Anhang G) können Sie die Sprites in 16 verschiede- nen Farben darstellen. Wenn Sie z. B. dem Sprite Nr. 1 die Farbe grün geben wollen, so müssen Sie folgenden Befehl eintippen: POKE V+40,13 (mit V = 53248).
In Zeile 60 wird das MSB für Sprite Nr. 2 gesetzt. In Zeile 70 beginnt Schleife, die das Sprite zum rechten Bildschirmrand wandern läßt. Die Zeile 100 ist ebenfalls wichtig, da hier das MSB wieder „abgeschaltet" wird, so daß die Bewegung wieder am linken Bildrand starten kann. BINÄRARITHMETIK Eine detaillierte Einführung in die Methode, wie der Computer Zahlen verarbeitet, würde überden Rahmen dieser Einführung hinausgehen;...
REGISTER Ein REGISTER entspricht einer speziellen Adresse im Computer; in ihr kann ein BYTE, d. h. maximal der Wert 255 abgespeichert werden. Durch Änderung der Registerinhalte können Computerfunktionen gesteuert werden. Im Zusammenhang mit den Sprites haben wir z. B. Register kennengelernt, deren Änderung dazu führt, daß...
Seite 87
HILFSPROGRAMM: Umwandlung von Binärzahlen in Dezimalzahlen Das folgende Programm wandelt von Ihnen eingegebene Binärzahlen in Dezimalzahlen um: Die eingegebene Binärzahl wird als String A$ abgespeichert; dieser String wird von rechts nach links mit Hilfe der MID$-Funktion gelesen. Mit der VAL-Funktion wird ermittelt, wie groß der Wert des gelesenen Stringbestandteils ist (0 oder 1) und dieser Wert wird dann mit der ent- sprechenden Zweierpotenz multipliziert.
KAPITEL MUSIK MIT DEM COMMODORE 64 Die Struktur eines Musikprogramms • Beispiel für ein Musikprogramm • Wichtige Klangeinstellungen • Klangeffekte •...
Eigenschaften werden Sie daher mit Ihrem Programm auch beein- flussen wollen. Ihr COMMODORE 64 besitzt zu diesem Zweck wieder einen eigens konstruierten elektronischen Baustein, den SID (Sound Interface Devi- ce). Im SID ist eine Reihe von Speicherplätzen für die Parameter enthal- ten, die das gewünschte Klangbild zu synthetisieren gestatten.
Seite 91
(Tastverhältnis, Hi-Byte) Nun noch das Faszinierendste: der Anschlag, derVerlauf eines Tones. Ihr COMMODORE 64 läßt jeden Ton zunächst auf die im Register 24 ein- gestellte Lautstärke ansteigen und dann wieder etwas abschwellen, die nun erreichte Lautstärke bleibt erhalten, solange Sie den Ton einge- schaltetlassen;...
Programm erzeugt wird. MELODIEN MIT DEM COMMODORE 64 Sie brauchen kein Musiker zu sein, um mit dem COMMODORE 64 Melodien zu erzeugen. Hier ist ein Beispielprogramm, an dem gezeigt wird, wie man das macht. Wir benutzen wieder nur eine Stimme von den dreien, die uns zur Verfügung stehen.
Seite 93
Wenn wir Töne erzeugen wollen, die denen eines Cembalos ähneln, müssen wir Zeile 80 in folgender Weise abändern. POKE W,33 Durch diesen POKE-Befehl wählen wir einen „Sägezahn" als Wellen- form; dadurch erhalten wir obertonreichere, „schärfere" Klänge, als es bei der bisher benutzten „Dreieck"-Wellenform der Fall war. Aber die Wahl der Wellenform ist ja nur eine der Möglichkeiten, den Klang- charakter zu bestimmen.
WICHTIGE KLANGEINSTELLUNGEN 1. Lautstärke - Die Wahl der Lautstärke gilt für alle 3 Tongeneratoren des COMMODORE 64. Das in Frage kommende Register hat die Adresse 54296; Sie erhalten die maximale Lautstärke, wenn Sie in dieses Register eine 15 poken: POKE L,15 oder POKE 54296,15.
Seite 95
Durch POKE 54277,66 stellen Sie den Anschlag auf einen mitt- leren Wert (64=4*16) und das Abschwellen auf einen kleinen Wert (2), der Wert 66 ergibt sich dann als Summe von 64 und 2. Am besten erkennen Sie die Zusammensetzung, wenn Sie statt POKE 54277,66 schreiben: POKE A,4*16+2 (wobei natürlich die Registeradresse A vorher definiert...
Seite 96
Wir benutzen die Stimme 1 zur Erzeugung eines Tones mit kurzer An- stiegszeit und kurzer Abfallphase nach Erreichen der Maximallautstärke (Zeile 60!). Was dabei herauskommt, klingt etwa wie ein Ball, der in einer Blechtonne hin- und herspringt. Um einen anderen Klang zu erzeugen, ändern wir diese Zeile.
Zuordnung dieser Werte zu den Notennamen können Sie der Tabelle in Anhang P entnehmen. Da den Stimmen unterschiedliche Adressen zugeordnet sind (siehe fol- gende Tabelle), können Sie die drei Stimmen Ihres COMMODORE 64 unabhängig voneinander programmieren und auf diese Weise z. B. drei- stimmige Musikstücke erstellen.
Werte eintragen, die Sie mit Hilfe der Noten- tabelle im Anhang P ermitteln können. Dabei können Sie Ihre Melodie so lang wählen, wie Speicherplatz in Ihrem COMMODORE 64 verfügbar ist, Sie müssen nur dafür sorgen, daß die letzte Programmzeile den Aus- druck DATA-1,-1,-1 enthält.
8. Ändern Sie in schneller Folge die Frequenz über mehrere Oktaven hinweg. KLANGEFFEKTE ZUR DEMONSTRATION Die hier besprochenen Programmbeispiele können Sie in direkter, oder in abgeänderter Form in eigene BASIC-Programme einbauen. Sie sollen Sie zum Experimentieren anregen und Ihnen zeigen, welche Klangmöglichkeiten in Ihrem COMMODORE 64 stecken.
READ UND DATA Sie haben zwei Methoden kennengelernt, mit denen man einen Zahlenwert einer Variablen zuordnen kann; durch eine direkte Zu- weisung im Programm (z. B. A=2) oder mit einer INPUT-Anweisung. Bei manchen Anwendungen, insbesondere wenn es sich um die Verarbeitung größerer Zahlenmengen handelt, sind jedoch beide Methoden nicht praktikabel.
Seite 103
Folgendes Format muß bei den DATA-Anweisungen eingehalten wer- den: 40 DATA 1, 34, 10.5, 16, 234,56 Die DATA-Anweisungen können ganze Zahlen, Dezimalbrüche oder Zahlen in wissenschaftlicher Notation enthalten, jedoch keine Variablen oder arithmetischen Operationen. Folgende DATA-Zeile ist unzulässig: 40 DATA A, 23/56,2*5 Auch Strings können in DATA-Anweisungen gespeichert werden;...
Wenn Sie die in DATA-Anweisungen gespeicherten Werte in einem Programm mehrfach verwenden wollen, so müssen Sie den Zeiger wieder auf das erste Element zurücksetzen. Dies geschieht mit Hilfe des RESTORE-Befehls. Ergänzen Sie das Programm auf Seite 93 durch die Zeile 50 GOTO 10 Sie werden die Fehlermeldung OUT OF DATA ERROR erhalten, da nach dem ersten Durchlauf des Programms der DATA-Zeiger auf den letzten...
Seite 105
In Zeile 5 werden Schleifenzähler CT und die Zahlensumme T gleich 0 gesetzt. In Zeile 10 werden die Daten gelesen und in Zeile 20 werden sie überprüft ob es sich dabei um eine Marke („flag") handelt; in unserem Fall wird die Marke durch eine „ -1" dargestellt. Wenn es sich um gültige Daten handelt, so werden sie auf addiert (Zeile 30} und der Zähler wird um 1 erhöht (Zeile 25).
Seite 106
INDIZIERTE VARIABLEN Wir haben bis jetzt nur einfache Variablen der Form A, XY, K1, C$ etc. benutzt. Der Variablenname bestand immer aus einem Buchstaben, oder aus der Kombination eines Buchstabens mit einem zweiten, bzw. mit einer Ziffer. Die Anzahl der Variablennamen, die Sie auf diese Weise erzeugen können, dürfte in den meisten Fällen ausreichen, aber die Handhabung solcher Variablen in einem Programm ist manchmal recht umständlich.
Seite 107
BEM.: = Indizierte numerische Variable enthalten den Wert 0, wenn ihnen kein anderer Wert zugewiesen wurde. Es gibt jedoch auch die Möglichkeit, Stringvariablen zu indizieren (z. B. B$(2)); solche Variablen enthalten, wenn ihnen kein String zugewiesen wurde „nichts". Eine solche Gruppe indizierter Variablen nennt man ein FELD (oder auch TABELLE).
Man hätte dieses Programmierproblem sicher eleganter lösen können, aber hier soll ja illustriert werden, wie die indizierten Variablen ange- wendet werden können. In Zeile 10 wird gefragt, wieviele Zahlen ein- gegeben werden sollen. Die zugeordnete Variable X gibt an, wie oft die Schleife durchlaufen werden muß, in der die zu verarbeitenden Werte eingegeben und der indizierten Variablen B(A) zugeordnet werden.
Mehrere Dimensionierungen können in folgender Weise zusammen- gefaßt werden: 10 DIM C(29), D(50), E(40) SIMULATION EINES WÜRFELSPIELS Komplizierte Programme können durch Verwendung von indizierten Variablen knapp und einfach geschrieben werden. Im nächsten Programm wird eine indizierte Variable verwendet, um zu registrieren, wie oft eine bestimmte Zahl gewürfelt wird.
Auf der nächsten Seite haben wir ein Programm abgedruckt, das das gleiche leistet; jedoch ohne indizierte Variablen zu verwenden. Sie brau- chen es nicht abzutippen, aber beachten Sie, um wieviel länger es gegen- über dem vorhergehenden Programm ausgefallen ist. Die Länge des Programms hat sich von 8 auf 16 Zeilen verdoppelt. Bei größeren Programmen, insbesondere bei einer größeren Zahl von Variablen, kann man noch mehr Zeilen und damit Speicherplatz ein- sparen.
Seite 111
Hierbei geben die Indices an, in welcher Spalte und welcher Zeile dieser Tabelle das betreffende Element steht. Wir können uns also vorstellen, daß die 255 in der dritten Zeile und der vierten Spalte unserer Tabelle steht. Wie die eindimensionalen, müssen auch die mehrdimensionalen Felder dimensioniert werden.
Seite 112
Das Kernstück des Programms ist ein Feld aus 4 mal 3 Elementen. In diesen Elementen werden die Antworten gezählt. Aus Gründen der Über- sichtlichkeit haben wirdabei die Elemente A(0,0) bisA(0,4) nicht benutzt. Im Klartext: Wenn auf die Frage 1 die Antwort „JA" gegeben wurde, so wird A(1,1) um 1 vergrößert-Zeile 1, da es sich um Frage 1 handelt und Spalte 1, da die Antwort „JA"...
Seite 114
EINLEITUNG Nachdem Sienunmit Ihrem COMMODORE 64 enger vertraut sind, sol- len Sie wissen, daß unsere Unterstützung hier nicht endet. Sie werden es vielleicht nicht wissen, aber COMMODORE ist bereits seit 23 Jahren im Geschäft. In den 70er Jahren stellten wir den ersten eigenständigen Personalcomputer vor, PERSONAL ELECTRONIC TRANSACTOR.
COMMODORE 64zur Verfügung stehen, so daß unterschied- liche Standardgeräte wie Drucker, Modems, Controller, Meßgeräte und andere Instrumente angeschlossen werden können. Mit einer speziellen IEEE-488 Steckkarte kann der COMMODORE 64 sämtliche CBM Peripherie-Geräte benutzen, einschließlich der Disks und Drucker.
Seite 116
COMMODORE 64 und seine volle Fähigkeit Töne, Geräusche und Musik zu erzeugen. AUSBILDUNG Der COMMODORE 64 ist ein Tutor, der nie müde wird und Ihnen • immerseine volle Aufmerksamkeit schenkt. Neben den vielen CBM- Ausbildungsprogrammen wird der COMMODORE 64 über zusätz- liche Sprachen des Erziehungsbereichs wie etwa PILOT, LOGO und weitere fortgeschrittene Pakete verfügen.
Seite 117
ANHANG B FORTGESCHRITTENE KASSETTEN OPERATION Neben Kopien Ihrer Programme speichert der COMMODORE 64 auf Magnetband die Werte und Variablen und andere Arten von Daten in einer Anordnung, die FILE genannt wird. Sie können so mehr Information speichern, als der Computer auf einmal in seinem Hauptspeicher unter- bringen kann.
Seite 118
Um wieder an die Daten heranzukommen, spulen Sie das Band zurück und probieren einmal das: Wieder muß das „DATEN FILE" geöffnet werden. In Zeile 50 wird A$ ge- lesen (INPUT#) und in Zeile 60 auf den Bildschirm geschrieben (PRINT). Der ganze Prozeß wird wiederholt, bis „STOP" gelesen wurde, wodurch das Programm beendet wird.
Seite 119
Programmierung von Computern und das dabei benutzte Vokabular zu geben. In diesem Anhang finden Sie nun eine vollständige Liste aller Regeln (der Syntax) des COMMODORE 64 BASIC, zusammen mit kurzen Beschreibungen. Probieren Sie die Kommandos einfach aus. Sie können Ihrem Computer keinen dauerhaften Schaden zufügen, wenn Sie Pro- gramme eintippen;...
Seite 120
(wieviele Dimensionen das Array hat). A(7), BZ%(11), A$(50), PT(20,20) Bemerkung: Es gibt drei Variablennamen, die der COMMODORE 64 selbst benutzt und die Sie nicht definieren dürfen: ST, Tl und Tl$. ST ist die Statusvariable und erhält ihren Wert entsprechend einer zuvor ausgeführten Ein- oder Ausgabe-Operation.
Seite 121
Multiplikation Division Exponentiation (hoch) Werden in einer Zeile mehrere arithmetische Operatoren verwendet, dann gilt für die Reihenfolge der Berechnung die in der Mathematik üb- liche „Punkt vor Strich"-Regel. Das heißt, zuerst wird die Exponentiation ausgeführt, dann werden Multiplikationen und Divisionen vor der Addi- tion und Subtraktion berechnet.
Seite 122
Zahl oder numerische Variable folgen, die als Gerätenummer interpretiert wird und die angibt, von welchem Gerät das Programm zu laden ist. Wird keine Gerätenummer angegeben, nimmt der COMMODORE 64 Gerät #1 an, die Kassetteneinheit. Das andere, gewöhnlich mit dem LOAD-Kommando angegebene Gerät ist das Diskettenlaufwerk, Gerät #8.
Seite 123
Nach der Gerätenummer kann, durch ein Komma getrennt, eine zweite Zahl folgen und zwar eine 0 oder eine 1. Ist diese zweite Nummer eine 1, dann wird der COMMODORE 64 eine Marke für Band-Ende hinter Ihr Programm schreiben. Das signalisiert dem Computer, daß nach einem LOAD nur bis zu dieser Stelle gesucht werden soll.
Seite 124
Dies stellt sicher, daß das Programm bei SAVE korrekt weggespeichert wurde und währenddessen kein Fehler auf dem Band oder der Diskette auftrat. VERIFY ohne weitere Angabe läßt den COMMODORE 64 mit dem nächsten Programm auf dem Band vergleichen, unabhängig von dessen Namen.
Seite 125
Dieser Befehl löscht alle Variablen im Speicher, läßt aber das Pro- gramm selbst intakt. CLR wird automatisch ausgeführt, wenn RUN be- fohlen wird. CMD sendet Ausgaben, die normalerweise auf den Bildschirm gehen würden (z. B. PRINT oder LIST, aber nicht POKE auf den Bildschirm), stattdessen an ein anderes Gerät.
Seite 126
ment DEF, dem der Funktionsname folgt. Nach dem Namen wird in Klammern ein numerische Variable angegeben. Danach kommt ein Gleichheitszeichen und dann die aktuelle Formel, mit der Variablen am richtigen Platz. Die Funktion kann nun aufgerufen werden, indem für die Variable jeder beliebige Wert oder eine andere Variable eingesetzt wird.
Seite 127
Während des Programmlaufs wird zur Lauf variable der als Schrittweite gegebene Wert addiert oder subtrahiert. Wird kein STEP angegeben, be- deutet dies Schrittweite =1. Zähleranfang und Zählerende stellen die Grenzwerte für die Laufvariable dar. 10 FOR L= 1 TO 10 STEP .1 20 PRINT L 30 NEXT L Die Schrittweite kann auch negativ angegeben werden.
Seite 128
zeilen nicht mehrfach eintippen, sondern kann sie durch GOSUB bei Bedarf „aufrufen". 20 GOSUB 800 GOTO oder GO TO Das Programm springt in die nach GOTO angegebene Zeile und fährt dort mit der Arbeit fort. Kommt die nach GOTO angegebene Zeilen- nummer nicht im Programm vor, stoppt das Programm mit einer Fehler- meldung.
Seite 129
INPUT# INPUT# ist ähnlich wie INPUT, übernimmt die Daten aber von einem vorher mit OPEN geöffneten File. LET leitet eine Zuweisung ein, wird aber kaum jemals in Programmen benutzt, da seine Angabe wahlfrei ist. Der Variablenname, dem das Er- gebnis einer Rechnung zugewiesen werden soll, steht links vom Gleich- heitszeichen, die Formel steht rechts.
Seite 130
OPEN Mit dem OPEN Befehl kann der COMMODORE 64 Daten mit Geräten wie dem Kassettenrecorder oder Diskettenlaufwerk, einem Drucker oder sogar dem Bildschirm austauschen. Auf das Schlüsselwort OPEN folgt eine Nummer (0-255), die logische Filenummer, auf die sich alle nach- folgenden Befehle beziehen.
Seite 131
PRINT PRINT ist wohl der erste Befehl, den ein Neuling zu gebrauchen lernt. Einige Variationen sollten dabei beachtet werden. Nach PRINT können stehen: Textstrings in Anführungszeichen Variablennamen Funktionen Satzzeichen Satzzeichen dienen der Formatierung der Daten auf dem Bildschirm. Das Komma unterteilt den Bildschirm in vier Spalten, wogegen das Semi- kolon jeden Zwischenraum unterdrückt.
Seite 132
REM (Remark, Bemerkung) Nach REM steht eine Bemerkung für irgend jemanden, der das Pro- grammlisting lesen wird. Sie könnte zum Beispiel einen Programm- abschnitt erklären oder zusätzliche Informationen beinhalten. Hinter REM kann ein beliebiger Text stehen. Es hat auf ein Programm keinerlei Wirkung, außer daß...
WAIT folgt eine Speicheradresse (X) und bis zu zwei Variablen. Das Format ist: WAIT X,Y,Z Der Inhalt der angegebenen Adresse wird zuerst EXCLUSIV OR ver- knüpft mit dem dritten Wert Z (falls dieser angegeben ist), und dann wird mit dem zweiten Wert ein logisches AND ausgeführt. Ist das Resultat 0, prüft das Programm den Inhalt dieser Adresse erneut.
Seite 134
bedeutet, daß negative Zahlen dem Betrag nach größer werden (INT(-2.1)=-3). LOG(X) Ergibt den natürlichen Logarithmus von X zur Basis e (siehe EXP(X)). Zur Umwandlung in den Zehnerlogarithmus wird durch LOG(10) divi- diert. PEEK(X) Ergibt den Inhalt der Speicheradresse X, mit X im Bereich 0-65535. Das Ergebnis ist eine ganze Zahl im Bereich 0-255.
Seite 135
SQR(X) (Quadratwurzel) Ergibt die Quadratwurzel von X, für X größer oder gleich 0. Bei nega- tivem X erhält man die Fehlermeldung ILLEGAL QUANTITY ERROR. TAN(X) (Tangens) Das Ergebnis ist der Tangens des Winkels X, mit X im Bogenmaß. USR(X) Wenn die Funktion USR benutzt wird, springt das Programm in ein Maschinenprogramm, dessen Startadresse in den Speicherstellen 785 und 786 abgelegt ist.
MID$(X$,S,X) Ergibt einen String, der X Zeichen von X$ enthält, beginnend mit dem S-ten Zeichen. RIGHT$(X$) Ergibt die rechten X Zeichen von X$. STR$(X) Ergibt einen String, der mit der durch PRINT ausgegebenen Version von X identisch ist. VAL(X$) Diese Funktion wandelt X$ in eine Zäh l um und ist im Wesentlichen die Umkehrfunktion von STR!J5(X).
Seite 137
SPC(X) Diese Funktion wird in PRINT Befehlen benutzt, um X Zeichen zu über- springen. TAB(X) TAB wird ebenfalls mit PRINT benutzt. Das nächste Zeichen wird in Spalte X gedruckt. (Wird vom Drucker wie SPC(X) behandelt.)
Damit Sie bei m Eintippen Ihrer Programme und Direktkommandos Zeit sparen können, dürfen Sie die meisten Schlüsselwörter im BASIC COMMODORE 64 abkürzen. Die Abkürzung für PRINT ist das Frage- zeichen. Die Abkürzungen für andere Schlüsselwörter werden gebildet, indem man die ersten ein oder zwei Zeichen eintippt und das nächste Zeichen des Wortes mit SHIFT eingibt.
BILDSCHIRM CODES Die folgende Tabelle listet alle in den Zeichensätzen des COMMODORE 64 vorkommenden Zeichen auf. Sie zeigt, welche Zahl in den Bildschirm- speicher (Adressen 1024-2023) gePOKEd werden muß, um ein bestimm- tes Zeichen zu erhalten. Sie zeigt umgekehrt, welches Zeichen einer aus dem Bildschirmspeicher gePEEKten Zahl entspricht.
Seite 142
Die Codes 128-255 ergeben die invers dargestellten Zeichen der Codes 0-127. An den freien Stellen in Spalte 2 stimmen die beiden Sätze überein.
ANHANG F ASCII UND CHR$ CODES Dieser Anhang zeigt für alle x, welches Zeichen auf dem Bildschirm erscheint, wenn Sie PRINT CHR$(x)senden. Umgekehrt können Sieauch das Ergebnis für PRINT ASC(„x") entnehmen, wobei „x" der zu gehörigen gedrückten Taste entspricht. Dies ist besonders nützlich, um das in einem GET Statement empfangene Zeichen zu ermitteln, zwischen Groß- und Kleinschrift umzuschalten und um nicht druckbare Steuerzeichen, wie etwa Umschaltung Groß-/Kleinschrift zu senden, die nicht in einem...
Seite 145
Codes 192-233 wie Codes 96-127 Codes 224-254 wie Codes 160-190 Code wie Code...
Seite 146
ANHANG G ADRESSBEREICHE VON BILDSCHIRM- UND FARBSPEICHER Die folgenden Tabellen und Diagramme zeigen, welche Adressen die auf dem Bildschirm dargestellten Zeichen und deren individuelle Farben kontrollieren, sowie die Farbcodes. BILDSCHIRM SPEICHER TABELLE...
Seite 147
Um ein Zeichen in einer bestimmten Farbe darzustellen, sind die fol- genden Werte in die entsprechende Adresse des Farbspeichers zu POKEn: 0 SCHWARZ 8 ORANGE 1 WEISS 9 BRAUN 2 ROT 10 HELLROT 3 TÜRKIS 11 GRAU 1 4 VIOLETT 12 GRAU 2 5 GRÜN 13 HELLGRÜN...
Seite 148
ANHANG H ABGELEITETE MATHEMATISCHE FUNKTIONEN Funktionen, die in Commodore 64 Basic nicht vordefiniert sind, können mit Hilfe der folgenden Formeln berechnet werden: FUNKTION BERECHNUNG BASIC SEKANS SEC(X}= 1/COS(X) COSEKANS CSC(X) = 1/SIN(X) COTANGENS COT(X) = 1/TAN(X) ARCUSSINUS ARSIN(X) = ATN(X/SQR(1-X'2))
ANHANG l STECKERBELEGUNG DER EIN-/AUSGABE ANSCHLÜSSE Dieser Anhang soll Ihnen zeigen, wie welches Gerät wo an den COMMODORE 64 angeschlossen werden kann. 1) Steuereingängefür Spiele 4) Serielle E/A (Disk/Drucker) 2) Modul-Steckplatz 5) Kassette 3) Audio/Video 6) User Port...
ANHANG J PROGRAMME, DIE SIE AUSPROBIEREN SOLLTEN Wir haben hier für Sie einige Programme aufgelistet, die Sie auf Ihrem Commodore 64 zur Übung eingeben können. Sie zeigen Ihnen Unter- haltendes aber auch Nützliches.
Besitzen Sie Programme, die in einer anderen BASIC-Version als COMMODORE BASIC geschrieben wurden, werden einige kleinere An- passungen nötig sein, bevor sie auf dem COMMODORE 64 laufen kön- nen. Wir geben Ihnen nun einige Tips, die die Anpassung leichter machen.
Seite 157
Mehrfache Anweisungen Einige BASIC-Versionen benutzen den Schrägstrich rückwärts (\) um mehrere Statements in einer Zeile voneinander zu trennen. In COMMO- DORE 64 BASIC werden alle Anweisungen durch einen Doppelpunkt (:) voneinander getrennt. MAT-Funktionen Programme, die die in einigen BASIC-Versionen vorrätigen MAT Funk- tionen für Matrizenoperationen verwenden, müssen umgeschrieben...
ANHANG L FEHLERMELDUNGEN Dieser Anhang enthält eine vollständige Liste der Fehlermeldungen des COMMODORE 64 zusammen mit einer Beschreibung der Ursachen. BAD DATA Von einem File wurden String Daten gelesen, das Pro- gramm erwartete jedoch numerische Daten. BAD SUBSCRIPT Das Programm versuchte, ein Element eines Arrays anzusprechen, dessen Nummer außerhalb des in der DIM Anweisung...
GOSUB Befehl wurde vorher gegeben. STRING TOO LONG Ein String kann höchstens 255 Zeichen enthalten. SYNTAX Eine Anweisung kann vom Commodore 64 nicht erkannt wer- den. Sie haben eine Klammer vergessen oder zuviel angegeben, ein Schlüsselwort falsch eingetippt, usw.
ANHANG M BIBLIOGRAPHIE Christiani Kompakt-Kurs BASIC P. Christian! (Hrsg.) Technisches Lehrinstitut Dr.-lng. P. Christiani, Konstanz BASIC - Eine Einführung in das Programmieren Rüdeger Baumann Klett, Stuttgart Programmieren mit BASIC Byron S. Gottfried . Graw Hill, Düsseldorf Lerne BASIC mit dem Volkscomputer VC-20 Günter O.
Diese Tabelle gibt Ihnen die Schlüsselzahlen, die Sie in Ihren Geräusch- programmen benötigen, basierend auf den drei Stimmen des COMMO- DORE 64. Um eine Klangkontrolle von BASIC aus zu setzen, benötigen Sie Befehle von der Form POKE (Register), (Inhalt) (vgl. Beispiel unten).
Seite 164
Zusätzlich besitzt der SlD noch 4 Register, die nichts mit der Tonerzeu- gung zu tun haben, sondern aus denen der Mikroprozessor des COMMO- DORE 64 bestimmte Informationen lesen kann: Um z. B. die Stellung der am Steuereingang angeschlossenen Paddle abzulesen, benutzen Sie die Befehle:...
Seite 165
Mit Hilfe dieser Einstellungen können Sie verschiedene Instrumente nachahmen: BEMERKUNG: Die Einstellungen für die Hüllkurve sollten immer gePOKEt werden bevor die Wellenform gePOKEt wird.
ANHANG P WERTE FÜR MUSIK-NOTEN In diesem Anhang finden Sie eine vollständige Liste der Noten, zugehöri- gen Frequenzen und Frequenzparameter und der Werte, die in die Re- gister FREQ Hl und FREQ LO des Klangchips gePOKEt werden müssen, um den gewünschten Ton zu erzeugen.
Seite 167
Sie sind nicht an die Werte dieser Tabelle gebunden! Wenn Sie mehrere Stimmen benutzen, sollten Sie sogar bewußt die zweite und dritte Stimme etwas „verstimmen", d. h. das Lo-Byte aus derTabelle leicht (!) abändern. Sie bekommen so einen volleren Klang.