Herunterladen Inhalt Inhalt Diese Seite drucken
Commodore 128 Bedienungshandbuch
Vorschau ausblenden Andere Handbücher für 128:
Inhaltsverzeichnis

Werbung

•u
Commodore ( 1 ^ )
Cr
•6
» n
M
>
L i
t
J — v
Bedienungshandbuch
C o m m o d o r e
C-
/

Werbung

Inhaltsverzeichnis
loading

Inhaltszusammenfassung für Commodore 128

  • Seite 1 •u Commodore ( 1 ^ ) •6 » n > Bedienungshandbuch C o m m o d o r e J — v...
  • Seite 3: Personal Computer

    Bedienungshandbuch Commodore Personal Computer © Copyright der deutschen Ausgabe bei Commodore Büromaschinen GmbH, Frankfurt 1985.
  • Seite 5: Inhaltsverzeichnis

    Gliederung des C 128-Handbuches Gliederung des C 128-Handbuches Inhalt Einführung Allgemeine Eigenschaften von BASIC Betriebsarten von BASIC BASIC-Zeilenformat und-Zeichenvorrat Reservierte Wörter BASIC-Konstanten BASIC-Variablen 2.5.1 Variablennamen und-Typen 2.5.2 Feldvariablen Genauigkeit numerischer Werte Numerische Ausdrücke und Operatoren 2.7.1 Arithemetische Operatoren 2.7.2 Vergleichsoperatoren 2.7.3...
  • Seite 6 Gliederung des C 128-Handbuches C128-Modus Erweiterte Tastaturfunktionen im C128-Modus Erweiterte Bildschirmfunktionen im C128-Modus BASIC 7.0 im C128-Modus Struktur von BASIC 4 - 10 Struktur und Syntax der Beschreibungen 4 - 11 Befehle, Anweisungen, Funktionen und Variablen 4 - 12 Farben, Sprites und grafische Effekte 4-135 Klänge und Musik mit dem C128...
  • Seite 7 Gliederung des C 128-Handbuches Fehlermeldungen BASIC-Fehlermeldungen ..Floppy-Disk-Fehlermeldungen Anhang A: Zeichencode-Tabellen, Steuercodes Anhang B: Speicherorganisation Anhang C : Maschinensprache-Monitor Anhang D: Besonderheiten der DIN-Tastatur Anhang E : Registerzuordnungen beim SID und VIC Anhang F: Musiknotentabelle Anhang G : Besonderheiten im C64-Modus (Funkt.-Tasten, Grafik)
  • Seite 8 Allgemeine Hinweise zu diesem Handbuch Das Bildsignal des 80-Zeichen-Modus Ist nur am RGBI-Ausgang vorhan- den, nicht am Video- bzw. Fernsehausgang, d.h. bei Anschluß eines Fern- sehgerätes oder eines Monitors an der Fernsehbuchse bzw. an der Video- buchse kann nur im 40-Zeichen-Modus gearbeitet werden. Umgekehrt ist der 40-Zeichen-Modus nicht am RGBI-Ausgang verfügbar.
  • Seite 9: Einführung

    Einführung 1. Einführung Machen Sie Bekanntschaft mit dem neuen C128 von Commodore, dem "großen Bruder" des weltweit bekannten C64. Der neue C128 erlaubt Ihnen die Auswahl zwischen drei Betriebsarten, so daß er nahezu all Ihren speziellen Wünschen und Anforderungen gerecht wird.
  • Seite 11: Allgemeine Eigenschaften Von Basic

    Allgemeine Eigenschaften von BASIC 2.1 Betriebsarten von BASIC 2.2 BASIC-Zeilenformat und -Zeichenvorrat 2.3 Reservierte Wörter 2.4 BASIC-Konstanten 2.5 BASIC-Variablen 2.6 Genauigkeit numerischer Werte 2.7 Numerische Ausdrücke und Operatoren 2.8 Ausdrücke und Operatoren mit Zeichenketten...
  • Seite 13 Eigenschaften des BASIC-Interpreters und sollte vor der Erstellung von BASIC-Programmen von denjenigen Anwendern beachtet werden, die mit dem Programmieren in Commodore-BASIC noch keine Erfahrung haben. Aber auch für den Fachmann enthält dieses Kapitel viel Wissenswertes. 2.1 Betriebsarten von B A S I C Der BASIC-Interpreter kennt grundsätzlich zwei Betriebsebenen: die Be-...
  • Seite 14: Basic-Zeilenformat Und -Zeichenvorrat

    Allgemeine Eigenschaften von BASIC GOTO-Anweisung aus. Auf diese Weise können Programme eingegeben werden. Beispiel 2: R E O D Y . 1 B P R I N T " E R G E B N I S I S T ' \ 2 0 P R I N T 5 * 2 R U N E R G E B N I S I S T 1 0...
  • Seite 15: Reservierte Wörter

    Allgemeine Eigenschaften von BASIC Neben den Groß- oder Kleinbuchstaben des lateinischen Alphabets sowie den Ziffern 0 bis 9 kennt BASIC eine Reihe von Sonderzeichen, die eine besondere Bedeutung haben: Bedeutung Zeichen Plussymbol oder Verkettungssymbol für Zeichenket- Minussymbol oder Bindestrich Multiplikationssymbol oder Stern Divisionssymbol oder Schrägstrich Potenzierungssymbol Gleichheitszeichen oder Zuweisungssymbol...
  • Seite 16 Allgemeine Eigenschaften von BASIC werden. Im folgenden sind alle reservierten Wörter alphabetisch zusammen- gestellt. DLOAD INPUT# RCLR RDOT APPEND DOPEN READ DRAW RECORD AUTO DSAVE RENAME RENUMBER BACKUP LEFT$ RESTORE DVERIFY BANK RESUME BEGIN RETURN BEND LIST BLOAD ELSE RIGHT$ LOAD BOOT LOCATE...
  • Seite 17 Allgemeine Eigenschaften von BASIC Reservierte Wörter (Fortsetzung) UNTIL WAIT SWAP USING WHILE WIDTH WINDOW TRAP TRON TEMPO TROFF VERIFY THEN 2.4 BASIC-Konstanten Konstanten sind aktuelle Werte, die der BASIC-Interpreter während der Programmausführung verwendet. Er unterscheidet dabei zwischen Zeichen- ketten-Konstanten und numerischen Konstanten. Eine Zeichenkettenkonstante ist eine Folge von bis zu 255 beliebigen (alphanumerischen) Zeichen, die in Anführungszeichen (") eingeschlossen ist.
  • Seite 18: Variablennamen Und-Typen

    Allgemeine Eigenschaften von BASIC gefolgt vom Buchstaben E und einer ganzen Zahl im Bereich zwischen - 3 9 und + 3 8 mit oder ohne Vorzeichen, die den Exponenten zur Basis 10 darstellt. Z.B.: 1 5 E - 3 gleichbedeutend mit 0.015 146.285E-6 gleichbedeutend mit 0.000146285 Der Interpreter akzeptiert Gleitkommakonstanten im Bereich von 1.7E + 38...
  • Seite 19: Feldvariablen

    Der Name einer Variablen dient nicht nur ihrer Benennung, sondern auch der Definition ihres Typs. Zeichenkettenvariablen werden durch ein $ als letztem Zeichen im Namen definiert. Z.B.: C $ = "COMMODORE" Numerische Ganzzahlvariablen (Typ integer) werden durch ein % als letztem Zeichen im Namen definiert: T A G % = 30...
  • Seite 20: Genauigkeit Numerischer Werte

    Allgemeine Eigenschaften von BASIC Ein eindimensionales Gleitkommafeld X mit 26 Elemen- D I M X C Z 5 ) ten (0 bis 25) wird dimensioniert. Ein zweidimensionales Zeichenkettenfeld mit 21 Ele- D I M X $ ( Z , 6 ) menten (3*7) wird dimensioniert.
  • Seite 21: Numerische Ausdrücke Und Operatoren

    Allgemeine Eigenschaften von BASIC sind, können folgendermaßen ge- Konstanten, die keine ganzen Zahlen schrieben werden: z.B. 100.59 • bis zu 10 Zeichen • Exponentialdarstellung mit E z.B. 3.57E-05 2.7 Numerische Ausdrücke und Operatoren Ein numerischer Ausdruck kann eine numerische Konstante oder Variable oder eine Kombination aus numerischen Konstanten, Variablen und Opera- toren zur Berechnung eines einzelnen Wertes sein.
  • Seite 22 2-10 Allgemeine Eigenschaften von BASIC Im folgenden sind die sechs verschiedenen Vergleichsoperatoren, die der BASIC-Interpreter kennt, tabellarisch zusammengestellt. Operator Vergleich auf Beispiel Gleichheit A = B < > , > < Ungleichheit A < > B , A > < B <...
  • Seite 23: Logische Operatoren

    Allgemeine Eigenschaften von BASIC 2-11 2.7.3 Logische Operatoren Logische Operatoren dienen zum Testen von Mehrfachvergleichen, zur Bit-Manipulation oder zum Durchführen Boolescher Operationen mit nume- rischen Werten. Ein logischer Operator verknüpft zwei Operanden als Kombination aus "wahr"- und "falsch'-Werten bitweise und liefert als Ergebnis einen Wert, der entweder als "wahr"...
  • Seite 24 2-12 Allgemeine Eigenschaften von BASIC Die folgenden Beispiel-Programmzeilen sollen dies verdeutlichen: 1 0 B I F D < 2 B B AND F ' 4 T H E N 8 B I I B I F I > 1 0 OR K < B T H F N S B 1 2 8 I F N O T P T H E N 1 B B Die logischen Operatoren arbeiten intern folgendermaßen: Zunächst werden die beiden Operanden in ganze, vorzeichenbehaftete...
  • Seite 25: Funktionsoperatoren

    Allgemeine Eigenschaften von BASIC 2-13 4 OR 2 = 6 0000000000000100 0000000000000010 0000000000000110 = 10 OR 10 = 10 0000000000001010 0000000000001010 0000000000001010 = - 1 OR - 2 = - 1 1111111111111111 1111111111111110 1111111111111111 = NOT 1 = - 2 0000000000000001 1111111111111110 = Der Operator NOT bildet das...
  • Seite 26: Zeichenkettenausdrücke Und Operationen Mit Zeichenketten

    2-14 Allgemeine Eigenschaften von BASIC Addition und Subtraktion ( + , - ) logisches Komplement (NOT) Konjunktion (AND) Disjunktion (OR) Aufeinanderfolgende Operatoren derselben Hierarchiestufe werden von links nach rechts abgearbeitet. Die Hierarchie kann durch Verwendung von Klammern aufgehoben werden. Geklammerte Ausdrücke werden grundsätz- lich zuerst bearbeitet.
  • Seite 27: Zeichenkettenfunktionen

    Allgemeine Eigenschaften von BASIC 2-15 2.8.1 Verkettungsoperator Zeichenketten können mit dem Plus-Zeichen ( + ) aneinandergefügt werden, um neue Zeichenketten zu bilden. Z.B.: 1 0 H $ = " R E G E N " B $ = " S C H I R M fl$+B$+"E"...
  • Seite 29: Eingeben Und Verwalten Von Basic-Programmen

    Eingeben und Verwalten von BASIC-Programmen 3.1 Tastatur 3.2 Eingeben von Programmzeilen 3.3 Ersetzen oder Ändern von Programmzeilen 3.4 Speichern von BASIC-Programmen 3.5 Laden von BASIC-Programmen...
  • Seite 31 Kleinbuchstaben/Großbuchstaben. Nach dem Einschalten des Rechners ist der Großbuchstaben/Grafik-Modus aktiv. Um zwischen den beiden Modi hin-und herzuschalten, werden die Umschalttaste (SHIFT) und die C*-Taste (Commodore-Taste) zusammen gedrückt. Schreibmaschinentastatur: Den Hauptteil der Tastatur nimmt das Schreib- maschinen-Tastenfeld ein, das auch so funktioniert.
  • Seite 32 A b b . 3.1: Tastatur des C128...
  • Seite 33 Direktmodus. Zusammen mit der SHIFT-Taste wird das erste auf Kassette (C64-Modus) oder Diskette (C128-Modus) befindliche Programm geladen und gestartet. C= (Commodore)-Taste: Diese Sondertaste hat zwei Funktionen: Zusammen mit der SHIFT-Taste kann mit dieser Taste zwischen den beiden bereits erwähnten Tastatur-Modi h i n - und hergeschaltet werden.
  • Seite 34: Eingeben Von Programmzeilen

    Eingeben und Verwalten von Programmen ten Zeichen werden, falls vorhanden, um eine Stelle nach links versetzt. Bei gleichzeitigem Drücken der SHIFT-Taste wird an der Cursor-Position eine Leerstelle eingefügt (Einfügemodus). Alle Zeichen rechts davon werden, falls vorhanden, um eine Stelle nach rechts versetzt. Bei diesem Einfügemodus wird außerdem die direkte Wirkung der Cursor- Steuertasten aufgehoben und statt dessen ihr Steuercode in Form eines...
  • Seite 35 Eingeben und Verwalten von Programmen Alle BASIC-Schlüsselwörter und -Variablennamen müssen bei aktiviertem Kleinbuchstaben/Großbuchstaben-Tastaturmodus grundsätzlich in Klein- buchstaben eingegeben werden. Wird bei der Eingabe einer Programmzeile das Fragezeichen (?) als Abkür- zung für die PRINT-Anweisung (s. dort in Kapitel 3) verwendet, so wandelt der Interpreter dies beim LIST-Befehl in das Schlüsselwort PRINT um, wodurch die Zeile ggf.
  • Seite 36: Ersetzen Oder Ändern Von Existierenden Programmzeilen

    Eingeben und Verwalten von Programmen 3.3 Ersetzen oder Ändern von existierenden Programmzeilen Wie bereits in Kapitel 3.2 erwähnt, werden existierende Programmzeilen ersetzt, indem eine neue Programmzeile mit der Zeilennummer der zu ersetzenden Zeile eingegeben wird. Dabei kann die neue Programmzeile auch kürzer oder länger als die zu ersetzende Zeile sein.
  • Seite 37: Speichern Von Basic-Programmen

    Eingeben und Verwalten von Programmen gramm keine programmierte Fehlerverarbeitung enthält. Die fehlerhafte Zeile muß mit LIST oder durch Drücken der HELP-Taste angezeigt und dann mit den oben beschriebenen Techniken geändert werden. Drücken der RE- TURN-Taste speichert die geänderte Zeile ins Programm, das dann erneut gestartet werden kann.
  • Seite 39: C128-Modus

    C128-Modus 4.1 Erweiterte Tastaturfunktionen im C128-Modus 4.2 Erweiterte Bildschirmfunktionen im C128-Modus 4.3 BASIC 7.0 im C128-Modus 4.4 Struktur von BASIC 4.5 Struktur und Syntax der Beschreibungen 4.6 Befehle, Anweisungen, Funktionen und Variable 4.7 Farben, Sprites und grafische Effekte 4.8 Klänge und Musik mit dem C128...
  • Seite 41: Erweiterte Tastatur-Funktionen Im C128-Modus

    Der C128 meldet sich in diesem Modus, wenn der Rechner eingeschaltet oder der Reset-Knopf gedrückt wird. In diesem Modus stehen dem Anwender 128 KBytes Hauptspeicher, wahl- weise eine 40 oder 80 Zeichen breite Bildschirmdarstellung mit 25 Zeilen, ein BASIC-Interpreter mit gegenüber dem C64-Modus (s. Kapitel 5) erheblich erweitertem Befehlsumfang (BASIC7.0), wahlweise eine deutsche D I N - o d e r...
  • Seite 42 C128-Modus Wird f1 gedrückt, so wird das Befehlswort GRAPHIC bei der aktuellen Cursor-Position angezeigt, und es brauchen nur noch die gewünschten Parameter (s. dort in Kapitel 4.6) eingegeben zu werden. Wird f2 (f1 zusammen mit SHIFT) gedrückt, so wird das Befehlswort DLOAD" bei der aktuellen Cursorposition angezeigt, und es braucht nur noch der gewünschte Dateiname mit abschließendem Anführungszeichen eingege- ben zu werden.
  • Seite 43 Anzeigebreiten des C128-Modus h i n - und hergeschaltet werden (gedrückt: 80-Zeichen-Anzeige). Voraussetzung ist jedoch, daß ein 80-Zeichen-Moni- tor (z.B. Commodore 1902) angeschlossen ist. Auch diese Taste verriegelt sich beim Drücken automatisch und wird bei erneutem Drücken wieder freigegeben. Die Umschaltung muß jedoch vor dem Einschalten oder Rücksetzen (Reset-Taste) des Computers erfolgen.
  • Seite 44 C128-Modus 4 - 4 TAB-Taste: Drücken der TAB-Taste zusammen mit der SHIFT-Taste setzt an der aktuellen Cursor-Position einen Tabulator-Stop, der durch Drücken der TAB-Taste angesprungen werden kann. Voreingestellt sind Tabulator- stops alle 8 Spalten. E S C - T a s t e : Die ESC-Taste erlaubt zusammen mit den Buchstabentasten A bis Z eine Reihe von Sonderfunktionen für die Tastatur und den Bildschirm, die im folgenden beschrieben werden.
  • Seite 45 C128-Modus 4 - 5 E S C - S e q u e n z e n (Fortsetzung) Taste Funktion Schaltet den Bildschirm von Invers-Darstellung auf Normal-Dar- stellung (nur 80-Zeichen-Schirm). Bewirkt ein Abschalten aller Modi (Blinken, Untersteichen, Re- vers). Die aktuelle Zeile wird vom Anfang bis zur Cursor-Position ge- löscht.
  • Seite 46 C128-Modus einer der folgenden Tasten bei niedergehaltener CTRL-Taste ausgelöst werden können: Taste CHR$-Code Funktion Schaltet den Unterstreichungsmodus für alle angezeigten Zeichen ein (nur 80-Zeichen-Bildschirm) Löst ein akustisches Klingelzeichen aus. Löst einen Tabulatorsprung auf den nächsten Tabulatorstop aus. Führt einen Zeilenvorschub aus. Verbietet Umschaltung zwischen Klein/ G r o ß...
  • Seite 47 C128-Modus Achtung Die E S C - und CTRL-Funktionen können auch mit Hilfe der PRINT-An- weisung in einem Programm ausgeführt werden. Z.B.: PRINT CHR$(27) + "M" verbietet Bildschirmrollen. PRINT CHR(7) löst ein akustisches Klingelzeichen aus. Bei aktivierter DIN-Tastatur gilt für die Verwendung der Tasten zusammen mit der CTRL-Taste die ASCIl-Tastaturbelegung.
  • Seite 48: Erweiterte Bildschirm-Funktionen Im C128-Modus

    (VIDEO und RGBl). An den Anschluß VIDEO wird ein 40-Zeichen-Monitor (z.B. Commodore 1701) angeschlossen. An den Anschluß RGBl wird ein 80-Zeichen-Monitor angeschlossen (RGBI-Monitor). Beide Anschlüsse werden benötigt, wenn ein Doppel-Monitor wie der Commodore 1901 angeschlossen wird. Dieser Monitor kann sowohl im 4 0 -...
  • Seite 49: Basic 7.0 Im C128-Modus

    Weitere Informationen siehe Kapitel 4.6 und 4.7 ff. 4.3 BASIC 7.0 im C128-Modus Aufbauend auf dem Commodore-Standard-BASIC 2.0, das ausführlich im Kapitel 5.2 beschrieben wird, bietet das erweiterte BASIC 7.0 dem Anwender viele komfortable Befehle, Anweisungen, Funktionen und Systemvariablen, um die vielfältigen Möglichkeiten, die der C128 bietet, nutzen zu können.
  • Seite 50: Struktur Von Basic

    Ehe jedoch die einzelnen Anweisungen beschrieben werden, hier noch einige allgemeine Anmerkungen zur Struktur der Programmiersprache BA- SIC und zur Syntax der nachfolgenden Beschreibungen. 4.4 Struktur von BASIC Der Sprachumfang des Commodore-BASIC gliedert sich in: - Befehle - Anweisungen Funktionen...
  • Seite 51: Struktur Und Syntax Der Beschreibungen

    C128-Modus BASIC 7.0 4-11 Variablen der BASIC-Sprache dürfen nicht mit den vom Programmmierer frei definierbaren Variablen eines Programms verwechselt werden. Die hier gemeinten System-Variablen haben feste, von BASIC vorgegebene Namen und Funktionen. Ihnen wird beim Aufruf vom Interpreter ein Wert zugewie- sen, der bestimmte Funktionszustände des Interpreters oder Rechnersy- stems zu einem bestimmten Zeitpunkt beschreibt.
  • Seite 52: Beschreibung Der Einzelnen Befehle, Anweisungen, Funktionen Und Variablen

    4-12 C128-ModusBASIC7.0 Bei den Parameterangaben haben die dort verwen- deten Abkürzungen folgende Bedeutung: beliebige numerische Ausdrücke x,y,z beliebige ganzzahlige Ausdrücke i,j,k,m,n x$,y$ beliebige Zeichenkettenausdrücke v,v$ numerische oder Zeichenkettenva- riablen Zweck: Hier wird die Wirkung des jeweiligen Befehls oder der Anweisung, Funktion oder Variablen detailliert beschrie- ben, und die Parameter und ihre Definitionsbereiche werden erläutert.
  • Seite 53: Append-Anweisung

    Ein ganzzahliger Wert zwischen 1 und 255, der der eröffneten Datei als Kennummer zugeordnet wird. Bei Werten kleiner als 128 wird an die mit der P R I N T # - A n w e i s u n g ausgegebenen Daten ein Wagen- rücklaufcode ausgegeben.
  • Seite 54 4 - 1 4 C128-Modus BASIC 7.0 AUTO-Befehl Format: AUTO [Schrittw] Zweck: Während der Eingabe von BASIC-Programmzeilen wird am Zeilenanfang eine neue Zeilennummer angezeigt, wenn am Ende der vorhergehenden Zeile die RETURN- Taste gedrückt wurde. Nach Eingabe des Befehls AUTO muß die erste Pro- grammzeile mit Zeilennummer eingegeben werden.
  • Seite 55 C128-Modus BASIC 7.0 4-15 BACKUP-Befehl Format: BACKUP DQuelle TO DZiel[,ü Gerät] Zweck: Dupliziert eine Diskette auf einem Floppy-Disk-Doppell- aufwerk. Quelle Ein Wert von 0 oder 1 für das Laufwerk, in dem die zu duplizierende Diskette eingelegt ist. Ziel Ein Wert von 1 oder 0 für das Laufwerk, in dem die Diskette auf die kopiert wird, eingelegt ist.
  • Seite 56 4-16 C128-Modus BASIC 7.0 Beispiel 1: B O C K U P D O T O D I Duplizierung der Diskette in Laufwerk 0 auf die Diskette in Laufwerk 1. Beispiel 2: B O C K U P D I T O D B O N U S Duplizierung von Laufwerk 1 auf Laufwerk 0 im Gerät mit der Adresse 9.
  • Seite 57 4-17 C128-Modus BASIC 7.0 BANK-Befehl Format: BANK n Zweck: Definiert eine 64-kByte-Speicherbank für nackfolgende PEEK- POKE-, S Y S - oder WAIT-Anweisungen. n muß zwischen 0 und 15 liegen. Bemerkungen: Der Speicher des C128 ist in 15 Speicherbänke zu je 64 kBytes aufgeteilt.
  • Seite 58 4-18 C128-Modus BASIC 7.0 B E G I N - und BEND-Anweisungen Format: IF . . . THEN BEGIN . Anweisungen BEND Zweck: BEGIN und BEND schließen einen beliebig langen Block von BASIC-Anweisungen ein, der auch über mehrere Zeilen gehen darf. Bemerkungen: BEGIN wird immer in Verbindung mit der IF-Anweisung (s.
  • Seite 59 C128-Modus BASIC 7.0 4-19 BLOAD-Befehl Format: BLOAD Dateiname[,D Laufwerk][,U Gerät] [,ON BBank][,PAdr] Zweck: Es wird eine Datei mit binär codiertem Inhalt (z.B. Ma- schinensprache, Binärdaten) in den Hauptspeicher gela- den (s.a. Kapitel 6.4). Dateiname Eine Zeichenkettenkonstante in Anfüh- rungszeichen (") oder -variable einer Länge von bis zu 16 Zeichen, die den Namen der zu ladenden Binärdatei angibt.
  • Seite 60 4-20 C128-Modus BASIC 7.0 Beispiel 1: B L O O D " B I N " , O N B I P I B 2 4 Die Datei BIN wird von der Floppy-Disk mit der Geräte- adresse 8 in Bank 1 des Hauptspeichers ab Adresse 1024 geladen.
  • Seite 61 C128-Modus BASIC 7.0 4-21 BOOT-Befehl Format: BOOT [Dateiname[,ÜLaufw],[U Gerät]] Zweck: Lädt einen ausführbaren Binärfile von Diskette in den Hauptspeicher und startet ihn bei seiner Startadresse. Dateiname Eine Zeichenkettenkonstante in Anfüh- rungszeichen (") oder -variable einer Länge von bis zu 16 Zeichen, die den Namen der zu ladenden Binärdatei angibt.
  • Seite 62: Box-Anweisung

    C128-Modus BASIC 7.0 4-22 BOX-Anweisung Format: BOX [Farbquelle],x1,y1[,[x2,y2]] [,[Winkei\]l[Ausmal\] Zweck: Es wird ein Rechteck an einer wählbaren Bildschirmposi- tion gezeichnet und wahlweise ausgemalt. Farbquelle Ein ganzzahliger Wert zwischen 0 und 3, der die Quelle für die Farbe definiert, in der gezeichnet wird. Es bedeuten: Hintergrund Vordergrund...
  • Seite 63 C128-Modus BASIC 7.0 4-23 Beispiele: 3 0 x 1 , 1 8 , 1 8 , 6 0 , 6 0 Zeichnet die Kontur eines Rechteckes in der aktuellen Vordergrundfarbe. B O X , 1 0 , 1 0 , 6 0 , 6 0 , 4 5 , 1 Zeichnet eine in der aktuellen Vordergrundfarbe ausge- füllte Raute.
  • Seite 64 C128-Modus BASIC 7.0 4-24 BSAVE-Befehl Format: BSAVE Dateiname[,DLaufwerk][,U Gerät [,ON BBank][PAdr1][TO PAdr2] Zweck: Es wird ein Hauptspeicherbereich (z.B. Maschinenspra- che, Binärdaten) als Binärdatei auf Diskette gespeichert. Dateiname Eine Zeichenkettenkonstante in Anfüh- rungszeichen (") oder -variable einer Länge von bis zu 16 Zeichen, die den Namen der zu ladenden Binärdatei angibt.
  • Seite 65 C128-Modus BASIC 7.0 4-25 Beispiel 1: BSAWE " B I N " , ON B2, P I B Z 4 T O P2B47 Der Hauptspeicherbereich von'Adresse 1024 bis 2047 einschließlich (1 kBytes) in Bank 2 wird als Datei BIN auf Diskette in der Floppy-Disk mit der Geräteadresse 8 gespeichert.
  • Seite 66: Bump-Funktion

    4-26 C128-Modus BASIC 7.0 BUMP-Funktion Format: v=BÜMP{n) Zweck: Liefert die Nummer des Sprites (1 bis 8), das seit der letzten BUMP-Abfrage entweder mit einem anderen Sprite ( n = 1 ) oder mit angezeigten Daten ( n = 2 ) kolli- diert ist.
  • Seite 67 C128-Modus BASIC 7.0 4-27 CATALOG-Befehl Der CATALOG-Befehl ist mit dem DIRECTORY-Befehl (s. dort) identisch.
  • Seite 68: Char-Anweisung

    C128-Modus BASIC 7.0 4-28 CHAR-Anweisung Format: CHAR [Farbquelle],x,y[,Zeichenkette] [, Invers] Zweck: Zeigt eine Zeichenkette mit auswählbarer Position auf dem Bildschirm an. Farbquelle Ein ganzzahliger Wert zwischen 0 und 3, der die Farbe definiert, in der der Text angezeigt werden soll. Es bedeuten: Hintergrundfarbe Vordergrund- (Zeichen-)Farbe...
  • Seite 69 C128-Modus BASIC 7.0 4-29 Um im Mehrfarbenmodus Zeichen in der Zusatzfarbe 1 anzuzeigen, muß Farbquelle auf 1 und Invers auf 0 gesetzt werden. l a e CHOR 1 , 3 8 , 1 2 , " G U T E N M O R G E N " Beispiel: Der Text "GUTEN MORGEN"...
  • Seite 70: Circle-Anweisung

    C128-Modus BASIC 7.0 4-30 CIRCLE-Anweisung Format: C I R C L E [Farbquel\,[x,y],xr[,\yr] [,[Start\[,[Ende][,[ Winker] [,Segmentwinkel\ Zweck: Es wird eine Ellipse, ein Kreis oder ein beliebiges Poly- gon mit dem Mittelpunkt x,yauf dem Bildschirm gezeich- net. Farbquel Ein ganzzahliger Wert zwischen 0 und 3, der die Farbe definiert.
  • Seite 71 4-31 C128-Modus BASIC 7.0 Bemerkungen: Nach dem Zeichnen der Figur ist die aktuelle Position des grafischen Cursors der Endpunkt des Winkels Ende. Jede Drehung der Figur erfolgt grundsätzlich um den Mittelpunkt x,y. Werden xr und yr gleichgesetzt, so wird ein Kreis ge- zeichnet.
  • Seite 72 4-32 C128-Modus BASIC 7.0 COLLECT-Befehl Format: C O L L E C T [DLaufwerkfOH ÜGeräteadr] Zweck: Löscht alle nicht geschlossenen Dateien und gibt den solchen Dateien zugewiesenen Speicherplatz auf der Diskette im spezifizierten Laufwerk wieder frei (s.a. Kapi- tel 6.9.1). Laufwerk Ganzzahliger Wert von 0 oder 1.
  • Seite 73 C128-Modus BASIC 7.0 4-33 COLLISION-Anweisung Format: COLLISION Typ(,Zeilennummer] Zweck: Inaktiviert oder aktiviert die Programmunterbrechung für Sprite-Kollisionen und definiert im letzteren Fall eine Programmzeile für Programmverzweigung bei Kollisio- nen. Ganzzahliger Wert zwischen 1 und 3, der das Ereignis definiert, das zur Unterbrechung führen soll. Es gilt: Sprite-Sprite-Kollision Sprite-Anzeigedaten-Kollision...
  • Seite 74 4-34 C128-Modus BASIC 7.0 Verschwindet ein Sprite vom sichtbaren Bereich des Bildschirms, kann es auch keine Unterbrechung mehr auslösen. Um das Sprite zu bestimmen, das seit der letzten Abfra- ge eine Kollision verursacht hat, kann die BUMP-Funkti- on (s. dort) verwendet werden. Beispiel: I B B C O L L I S I O N Z ^ S O B Das Programm verzweigt zu einem Unterprogramm bei...
  • Seite 75: Color-Anweisung

    4-35 C128-Modus BASIC 7.0 COLOR-Anweisung Format: COLOR Farbquelle.Farbcode Zweck: Definiert für jede mögliche Farbquelle eine der 16 mögli- chen Farben. Farbquelle Folgende Farbquellcodes sind verfügbar: Hintergrund (40-Zeichen-Anzeige) grafischer Vordergrund grafischer Mehrfarbenmodus 1 grafischer Mehrfarbenmodus 2 Rand Textfarbe Hintergrund (80-Zeichen-Anzeige) Farbcode Folgende Farbcodes sind verfügbar: schwarz 9 hellbraun...
  • Seite 76 C128-Modus BASIC 7.0 4-36 CONCAT-Befehl Format: CONCAT [D Quellaufw,] Quelldatei TO [DZiellaufw,]Zieldatei [ON U Geräteadr] Zweck: Fügt eine angegebene sequentielle Datei an das Ende einer anderen angegebenen sequentiellen Datei auf der Diskette im angegebenen Laufwerk an (s.a. Kapitel 6.9.3). Quellaufw,Ziellaufw Ganzzahlige Werte von 0 oder 1.
  • Seite 77 4-37 C128-Modus BASIC 7.0 COPY-Befeht C O P Y [DQuellaufw,] Quelldatei TO Format: [D Ziellautw,]Zieldatei [ON U Geräteadr] Zweck: Kopiert eine angegebene Quelldatei unter demselben oder einem neuen Namen auf die Diskette im angegebe- nen Laufwerk derselben Floppy-Disk-Einheit. Quellaufw,Ziellaufw Ganzzahlige Werte von 0 oder 1. Voreingestellt ist hier 0.
  • Seite 78: Dclear-Anweisung

    C128-ModusBASIC7.0 4-38 DCLEAR-Anweisung Format: D C L E A R üLaufwerk [ON UGeräteadr] Zweck: Alle für das angegebene Laufwerk offenen Floppy-Disk- Kanäle (nicht Dateien) werden geschlossen. Laufwerk Ganzzahliger Wert von 0 oder 1. Geräteadr Ein ganzzahliger Wert zwischen 4 und 15, der die Geräteadresse der Floppy-Disk angibt.
  • Seite 79: Dclose-Anweisung

    4-39 C128-Modus BASIC 7.0 DCLOSE-Anweisung Format: D C L O S E [#log Dateinr] [ON U Geräteadr] Schließt die spezifizierte oder alle offenen Dateien auf Zweck: der angeschlossenen Floppy-Disk (s.a. Kapitel 6.6). log Dateinr Ein ganzzahliger Wert zwischen 1 und 255, unter dem die Datei mit der O P E N - (s.
  • Seite 80: Dec-Funktion

    4-40 C128-Modus BASIC 7.0 DEC-Funktion Format: v$= DEC(hex Zeichenkette) Zweck: Liefert den Dezimalwert eines Zahlenwertes in hexadezi- maler Schreibweise. hex Zeichenkette Eine Zeichenkette in Anführungszei- chen ("), die einen hexadezimalen Wert im Bereich zwischen 0 und FFFF darstellt. Beispiel: PRINT DECC " F F F F " ) 65535 KEfiDY.
  • Seite 81 C128-Modus BASIC 7.0 4-41 DELETE-Befehl Format: D E L E T E [Zeilennr1][-Zeilennr2] Zweck: Der angegebene Zeilennummernbereich wird in dem im Hauptspeicher befindlichen Programm gelöscht. Zeilennrl Nummer der ersten zu löschenden Zeile. Zeilennr2 Nummer der letzten zu löschenden Zeile. Bemerkungen: Der DELETE-Befehl kann nur im Direktmodus verwen- det werden.
  • Seite 82 Die Anzeige langer Verzeichnisse führt zum Aufrollen des Bildschirms. Mit Hilfe der NO SCROLL-Taste (s. Kapitel 5.2) kann die Anzeige angehalten werden, mit der Cr (Commodore)-Taste kann sie verlangsamt werden. Beispiele: D I R E C T O R Y Alle Verzeichniseinträge von der Diskette in Laufwerk 0...
  • Seite 83 C128-Modus BASIC 7.0 4-43 DIRECTORY "AB*" Die Verzeichniseinträge für alle Dateien, deren Namen mit AB beginnen, auf der Diskette in Laufwerk 0 der Floppy-Disk mit der Geräteadresse 8 werden angezeigt. DIRECTORY "DRTEI77?. ORB" Die Verzeichniseinträge für alle Dateien, deren Namen zwischen den Zeichen DATEI und .ARB drei beliebige Zeichen enthalten, auf der Diskette in Laufwerk 0 der Floppy-Disk mit der Geräteadresse 8 werden angezeigt.
  • Seite 84 4-44 C128-Modus BASIC 7.0 DLOAD-Befehl Format: DLOAD Dateiname^ Laufwerk] [,U Geräteadr] Zweck: Lädt ein BASIC-Programm von einer angegebenen Dis- kette in den Hauptspeicher des Rechners s.a. Kapitel 6.6). Dateiname Eine Zeichenkettenkonstante in Anfüh- rungsstrichen (") oder eine -Variable in Klammern () einer Länge von bis zu 16 Zeichen, die den Programmda- teinamen bezeichnet.
  • Seite 85: Do-Anweisung

    C128-Modus BASIC 7.0 4-45 DO-Anweisung Formate: DO [UNTIL logischer Ausdruck] . Anweisungen . . . [EXIT] LOOP [UNTIL logischer Ausdruck] DO [WHILE logischer Ausdruck] . Anweisungen . . . [EXIT] LOOP [WHILE logischer Ausdruck] Zweck: Definiert und steuert den Ablauf von Programmschleifen. Bemerkungen: Wenn kein Zusatz UNTIL oder WHILE in Verbindung mit logischen Ausdrücken angegeben ist, werden alle A n -...
  • Seite 86 4-46 C128-Modus BASIC 7.0 Beispiel 1 1 B B X = 1 8 1 1 0 D O U N T I L X = 0 O R X = 1 1 2 8 P R I N T "X I S T NOCH N I C H T 8 O D E R 1" 1 3 8 X = X - 1 1 4 8 L O O P 1 5 0 .
  • Seite 87: Dopen-Anweisung

    FilenrEm ganzzahliger Wert zwischen 1 und 255, der der eröffneten Datei als Kennummer zugeordnet wird. Bei Werten kleiner als 128 wird nach jeder P R I N T # - A n - weisung ein Wagenrücklaufcode ausgegeben. Bei Wer- ten über 127 wird zusätzlich ein Zeilenvorschubcode...
  • Seite 88 C128-Modus BASIC7.0 4-48 Werden zwei Dateien unter derselben logischen Datei- nummer eröffnet, wird die Fehlermeldung FILE ALREA- DY OPEN angezeigt. Beispiele: D O P E N S Z , " D A T E N " Die sequentielle Datei DATEN auf Laufwerk 0 der Floppy- Disk mit der Geräteadresse 8 wird zum Lesen eröffnet.
  • Seite 89: Draw-Anweisung

    C128-Modus BASIC 7.0 4-49 DRAW-Anweisung DRAW [Farbquel\,[x1,y1] TO x2,y2... Format: Verbindet beliebig viele spezifizierte Koordinaten durch Zweck: eine Linie. Farbquelle Ein ganzzahliger Wert zwischen 0 und 3, der die Farbe definiert, in der die Linie(n) gezeichnet werden soll(en). Voreingestellt ist die Vordergrundfarbe (1). Es bedeuten: Hintergrundfarbe V o r d e r g r u n d - (Zeichen-)Farbe...
  • Seite 90 4-50 C128-Modus BASIC 7.0 Beispiele: D R A W I , I B B , 5 8 Zeichnet einen Punkt, da keine Endkoordinate angege- ben ist. 1 8 8 D R A U , 1 B , 1 8 T 0 1 8 8 , 6 8 1 1 8 DRAU! T O 2 5 , 3 8 Zeichnet einen Winkel.
  • Seite 91 C128-Modus BASIC 7.0 4-51 DSAVE-Befehl Format: DSAVE Dateiname[,DLaufwerk] [,U Geräteadr] Zweck: Speichert ein BASIC-Programm aus dem Hauptspeicher auf Diskette im angegebenen Laufwerk s.a. Kapitel 6.2). Dateiname Eine Zeichenkettenkonstante in Anfüh- rungsstrichen (") oder eine -variable in Klammern () mit einer Länge von bis zu 16 Zeichen, die den Programmda- teinamen bezeichnet.
  • Seite 92 4-52 C128-Modus BASIC 7.0 D S - und DS$-Systemvariablen v= DS Format: v$= DS$ Zweck: Liefert den Fehlerstatus als Code (DS) und als komplette Statusmeldung (DS$) des zuletzt angesprochenen Flop- py-Disk-Gerätes. Bemerkungen: Ein Statuscode von 0 bedeutet kein Fehler. Die Statusmeldung ist eine Zeichenkette und besteht aus 4 Teilen: Statuscode...
  • Seite 93 C128-Modus BASIC 7.0 4-53 DVERIFY-Befehl Format: DVERIFY Dateiname[,DLaufwerk] [,U Geräteadr] Zweck: Vergleicht ein Programm im Hauptspeicher byteweise mit einer Programmdatei auf einer angegebenen Dis- kette. Dateiname Eine Zeichenkettenkonstante in Anfüh- rungsstrichen (") oder eine -Variable in Klammern () einer Länge von bis zu 16 Zeichen, die den Programmda- teinamen bezeichnet.
  • Seite 94 C128-Modus BASIC 7.0 4-54 eine byteweise Übereinstimmung mit dem gespeicher- ten Programm nicht mehr gegeben ist. Beispiele: D U E R I F Y " P F O G I " Das Programm PROG1 auf Laufwerk 0 in der Floppy- Disk 8 wird mit dem hauptspeicherresidenten Programm byteweise verglichen.
  • Seite 95 C128-Modus BASIC 7.0 4-55 EL-Systemvariable Format: v= E L Zweck: Liefert die Nummer der Programmzeile, in der ein Fehler aufgetreten ist. Bemerkungen: Da EL eine Systemvariablen ist, darf sie nicht als anwen- derspezifische Variable in einem Programm verwendet werden. Andernfalls würde der Fehler SYNTAX ERROR angezeigt.
  • Seite 96: Envelope-Anweisung

    C128-Modus BASIC 7.0 4-56 ENVELOPE-Anweisung Format: E N V E L O P E n [,[An)[,[Ab][,[Ha] [,[Au ][,milbl]]]]] Definiert eine von 10 möglichen Hüllkurven für Musikin- Zweck: strumente. Nummer der Hüllkurve (0 bis 9). Anschlagzeit (0 bis 15). Abschwellzeit (0 bis 15). Haltezeit (0 bis 15).
  • Seite 97 C128-Modus BASIC7.0 4-57 Nach dem Einschalten des Rechners werden für die Parameter folgende Werte voreingestellt: Instrument 1536 Klavier Akkordeon Zirkusorgel Trommel Flöte Gitarre Cembalo 2048 Orgel Trompete Xylophon Weitere Einzelheiten zur ENVELOPE-Anweisung ent- nehmen Sie bitte dem Abschnitt „Musikerzeugung mit dem C128"...
  • Seite 98 4-58 C128-Modus BASIC 7.0 ER-Systemvariable v=ER Format: Zweck: Liefert den Code des zuletzt vom Interpreter diagnosti- zierten Fehlers. Im Kapitel 8.1 sind die Fehlermeldungen zusammen mit den ihnen zugeordneten Fehlercodes aufgeführt. Bemerkungen: Da ER eine Systemvariablen ist, darf sie nicht als anwen- derspezifische Variable in einem Programm verwendet werden.
  • Seite 99 C128-ModusBASIC7.0 4-59 ERR$-Funktion Format: y # = E R R $ ( n ) Zweck: Liefert den Text des durch n spezifizierten Fehlers. Ein ganzzahliger Wert zwischen 1 und 127, der den Fehlercode angibt (s. Kapitel 8.1). Beispiel: I B T R B P I O B B .
  • Seite 100 C128-Modus BASIC 7.0 4-60 FAST-Befehl Format: FAST Zweck: Schaltet den Prozessor vom Betrieb im 1-Megahertz- Takt auf Betrieb im 2-MegahertzTakt um. Der Rechner wird damit doppelt so schnell. Bemerkungen: Der 40-Zeichen-Bildschirm wird durch den FAST-Befehl inaktiviert, d.h. Text- oder Grafikausgaben sind nur noch auf dem 80-Zeichen-Bildschirm sichtbar.
  • Seite 101 C128-Modus BASIC 7.0 4-61 FETCH-Befehl Format: F E T C H Bytes,lntadr,Extadr,Bank Überträgt eine wählbare Anzahl von Bytes aus eine/ Zweck: Speichererweiterungs-Bank in den BASIC-Arbeitsspei¬ cher. Bytes Ein ganzzahliger Wert zwischen 0 und 65535, der die Anzahl der zu übertragenden Bytes angibt. Intadr Ein ganzzahliger Wert zwischen 0 und 65535, der die Adresse im BASIC-Arbeitsspeicher angibt, ab dder...
  • Seite 102: Filter-Anweisung

    4-62 C128-Modus BASIC 7.0 FILTER-Anweisung Format: FILTER [Freq}[,[Tp][,[Bp][,[H Zweck: Definiert die Parameter für Klangfilter. Freq Ein ganzzahliger Wert zwischen 0 und 2047, der die Filtergrenzfrequenz festlegt. Tp,Bp,Hp Ein ganzzahliger Wert von 0 oder 1, der das Tiefpaß-, Bandpaß- oder Hochpaß-Filter e i n - (1) oder ausschaltet (0).
  • Seite 103: Fre-Funktion

    C128-Modus BASIC 7.0 4-63 FRE-Funktion Format: v=FRE{Bank) Bedeutung: Liefert die Anzahl der noch nicht benutzten Speicher- plätze im B A S I C - P r o g r a m m - oder -Arbeitsspeicher. Bank Ein ganzzahliger Wert von 0 oder 1, der die Speicherbank bezeichnet, deren ungenutzte Speicher- plätze abgefragt werden sollen.
  • Seite 104: Getkey-Anweisung

    1-Byte-Zeichenkette den Variablen A $ , B$ und C$ zugewiesen. 1BB GETKEY fi$ I I B I F fi$<"ft" OR 0$>"B" THEN 108 128 0NPISCCfl$)-64 GOTO 1888,2888 Das Programm verzweigt nur nach Zeile 1000 oder 2000, wenn entweder die Taste A oder B gedrückt wird.
  • Seite 105 C128-ModusBASIC7.0 4-65 G064-Befehl Format: G 0 6 4 Zweck: Der Rechner wird vom C128-Modus in den C64-Modus umgeschaltet. Bemerkungen: Der Interpreter fordert durch die Anzeige fiREYOU SURE? vom Anwender eine Bestätigung für den Befehl. Wird Y (Yes) eingegeben, so wird das momentan im Speicher befindliche Programm gelöscht und der Rechner wird in den C64-Modus umgeschaltet.
  • Seite 106: Graphic-Anweisung

    C128-Modus BASIC7.0 4-66 GRAPHIC-Anweisung Formate: GRAPHIC Modus[,[Lösch],Textz] GRAPHIC C L R Zweck: Aktiviert Grafikmodus und reserviert Grafikspeicher (bit mapped) bzw. gibt Grafikspeicher wieder frei. Modus Ein ganzzahliger Wert zwischen 0 und 5. Fol- gende Modi sind wählbar: 0 Text mit 40 Zeichen/Zeile. 1 hochauflösende Grafik (320x200 Punkte).
  • Seite 107 C128-Modus BASIC 7.0 4-67 Dieser Bereich bleibt auch reserviert, wenn wieder der Text-Modus (1 oder 5) eingeschaltet wird und wird erst durch die GRAPHIC CLR-Anweisung wieder freigege- ben. Beispiele: G R A P H I C I Schaltet auf hochauflösende Grafik um. G R A P H I C 4, 1, 1 5 Schaltet auf Mehrfarbengrafik mit geteiltem Bildschirm und setzt den Anfang des Textschirms auf Zeile 16...
  • Seite 108: Gshape-Anweisung

    C128-Modus BASIC7.0 4-68 GSHAPE-Anweisung Format: G S H A P E Zeiket^,[x,y[,Modus]}] Zweck: Überträgt den Wert einer angegebenen Zeichenkette als binäre Bildinformation auf den Grafik-Bildschirm (s.a. MOVSPR-Anweisung). Zeikett Eine Zeichenkettenvariable oder - konstante, die die abzubildende Bildinformation binär enthält (s. SSHAPE-Anweisung).
  • Seite 109 C128-Modus BASIC 7.0 4-69 HEADER-Befehl Format: HEADER Name,DLaufwerk[,\Kennung] [,UGeräi\ Zweck: Formatiert eine Diskette im angegebenen Laufwerk der gewählten Floppy-Disk neu oder löscht das Inhaltsver- zeichnis (s.a. Kapitel 6.1). Name Eine Zeichenkettenkonstante in Anführungszei- chen (") oder eine -variable einer Länge von maximal 16 Zeichen, die den Namen der Diskette bezeichnet.
  • Seite 110 4-70 C128-Modus BASIC 7.0 Soll eine bereits formatierte Diskette nur gelöscht wer- den, wird beim HEADER-Befehl der Parameter [Ken- nung weggelassen. Die Diskette erhält dann nur den neuen Namen, behält aber die alte Kennung. Werden als Parameter Variablen verwendet, so müssen diese in Klammern gesetzt werden.
  • Seite 111 C128-Modus BASIC 7.0 4-71 HELP-Befehl Format: HELP Zweck: Zeigt nach einer Fehlermeldung des Interpreters die fehlerhafte Programmzeile auf dem Bildschirm an und stellt den fehlerhaften Teil invers beim 4 0 - Z e i c h e n - und unterstrichen beim 80-Zeichen-Bildschirm (s.a.
  • Seite 112 4-72 C128-Modus BASIC7.0 HEX$-Funktion Format: v$= HEX$(/7) Zweck: Liefert eine Zeichenkette, die die hexadezimale Darstel- lung des Wertes des numerischen Ausdruckes n enthält. n Beliebiger numerischer Ausdruck, dessen ganzzahli- ger Wert gewandelt wird und zwischen 0 und 65535 liegen muß. Beispiel: I B B X = 2 3 : Y = 1 4 5 6 I I B P R I N T X;...
  • Seite 113: If-Anweisung

    C128-Modus BASIC 7.0 4-73 IF-Anweisung Format: IF Ausdr JHEN Anw [:ELSE Anw] Zweck: Erlaubt die Verzweigung in verschiedene Programmteile, abhängig vom logischen Wahrheitsgehalt eines numeri- schen Ausdruckes. Ein numerischer Ausdruck ist lo- gisch "wahr", wenn sein Wert von Null verschieden ist und logisch "falsch", wenn sein Wert 0 ist.
  • Seite 114 4-74 C128-Modus BASIC 7.0 Beispiel 1: I B B N M S G $ = " D E B W E R T M U S S P O S I T I U S E I N " 1 1 0 P M S G $ = " D I E W U R Z E L I S T " 1 2 0 I N P U T "...
  • Seite 115: Instr-Funktion

    C128-Modus BASIC 7.0 4-75 INSTR-Funktion Format: v= INSTR(x£y£[,/7]) Zweck: Sucht und liefert die Position des ersten Auftretens der Teilzeichenkette y$ in x$. Beliebiger Zeichenkettenausdruck, dessen Wert die zu durchsuchende Zeichenkette darstellt. Beliebiger Zeichenkettenausdruck, dessen Wert die gesuchte Teilzeichenkette darstellt. n Ein numerischer Ausdruck, dessen ganzzahliger Wert zwischen 1 und 255 liegen muß...
  • Seite 116: Joy-Funktion

    Werte von 128 bis 136 bedeuten, daß zusätzlich der Feuerknopf gedrückt wurde. Beispiel: P R I N T j o y c 2 ) REfiDY.
  • Seite 117 C128-Modus BASIC7.0 4-77 KEY-Befehl Format: K E Y [n,x$] Zweck: Belegt Funktionstasten neu oder zeigt deren Belegung n Beliebiger numerischer Ausdruck, dess en ganzzahli- ger Wert zwischen 1 und 8 liegen muß und der eine Funktionstaste bezeichnet. Beliebiger Zeichenkettenausdruck, dessen Wert der gewählten Funktiionstaste zugeordnet wird und der bei Betätigen dieser Taste auf dem Bildschirm angezeigt wird.
  • Seite 118: Locate-Anweisung

    4-78 C128-Modus BASIC 7.0 LOCATE-Anweisung Format: L O C A T E x,y Zweck: Positioniert den grafischen Cursor (Pixel-Cursor) auf dem Bildschirm. x,y Skalierte Koordinaten (s.a. SCALE-Anweisung). Für x (horizontale Koordinate) und für y (vertikale Koordina- te) dürfen je nach Skalierung Werte zwischen 0 und 1023 angegeben werden.
  • Seite 119 C128-Modus BASIC 7.0 4-79 MONITOR-Befehl Format: MONITOR Zweck: Der Maschinensprache-Monitor wird aufgerufen. Bemerkungen: Funktionen und Bedienung des Monitors sind ausführ- lich im Anhang C beschrieben.
  • Seite 120: Movspr-Anweisung

    C128-Modus BASIC7.0 4-80 MOVSPR-Anweisung Format: MOVSPR n,x,y MOVSPR n, + /-x1, + /-y1 MOVSPR n,Winket#Geschw Zweck: Bewegt ein Sprite mit einer spezifizierten Geschwindig- keit oder plaziert ein Sprite an einer bestimmten Stelle auf dem Bildschirm. Ein ganzzahliger Wert zwischen 0 und 7, der die Nummer für das Sprite angibt.
  • Seite 121: Paint-Anweisung

    C128-ModusBASIC7.0 4-81 PAINT-Anweisung Format: PAINT [Farbquelle][,[x,y\[,Modus]} Zweck: Malt einen Bildschirmbereich mit einer wählbaren Farbe aus. Farbquelle Ein ganzzahliger Wert zwischen 0 und 3, der die Farbe definiert, mit der der Bereich ausgemalt wer- den soll. Voreingestellt ist die Vordergrundfarbe (1). Es bedeuten: Hintergrundfarbe V o r d e r g r u n d - (Zeichen-) Farbe...
  • Seite 122: Pen-Funktion

    C128-Modus BASIC 7.0 4-82 PEN-Funktion Format: y = P E N ( n ) Zweck: Liefert den Zustand oder die Bildschirmkoordinaten des Lichtstiftes. n Ein ganzzahliger Wert zwischen 0 und 4, der folgende Wirkung hat: x-Koordinate der Lichtstiftposition auf dem grafi- schen Bildschirm (60 bis 320).
  • Seite 123: Funktion

    C128-Modus BASIC 7.0 4-83 71-Funktion Format: Zweck: Ubergibt den Wert der Ludolfschen Zahl (3.14159265). Beispiel: P R I N T c o s c m R E A D Y .
  • Seite 124 C128-Modus BASIC 7.0 4-84 PLA Y-Anweisung Format: PLAY Zeichenkette Zweck: Spielt die mit Hilfe einer Zeichenkette definierte Ton- folge. Zeichenkette Eine Zeichenkette in Anführungszeichen, die sich aus Tonerzeugungs- und -abspielbefehlen zu- sammensetzt. Es gibt folgende Befehle: 0/7 Setzt eine von 7 Oktaven (n=Q bis /7 = 6). Setzt eine der folgenden 10 Klanghüllkurven: 0 Klavier (voreingestellt) 1 Akkordeon...
  • Seite 125 C128-Modus BASIC 7.0 4-85 Die folgende Note wird als viertel Note gespielt. Die folgende Note wird als achtel Note gespielt. Die folgende Note wird als sechzehntel Note ge- spielt. Die folgende Note wird als punktierte Note (die Hälfte ihres Wertes) gespielt. Setzt eine Pause.
  • Seite 126: Pointer-Funktion

    POINTER ist nützlich, um die Anfangsadressen für Varia- blendeskriptoren an Maschinensprache-Unterprogram- me zu übergeben. Beispiel: I 8 8 B X ^ = I B 2 4 118 UP=POINTERCBX%) 128 BfiNKl:fiX=256«PEEKCUP)*PEEKCUP+l) Die Daten, die in der Ganzzahlvariablen BX% gespeichert sind, werden in Zeile 120 gelesen.
  • Seite 127: Pot-Funktion

    C128-Modus BASIC 7.0 4-87 POT-Funktion Format: v= POt\n) Zweck: Liefert die Position eines der 4 anschließbaren Drehreg- ler (paddles). Ein ganzzahliger Wert zwischen 1 und 4 der den Drehregler definiert. Drehregler 1 Drehregler 2 Drehregler 3 Drehregler 4 Bemerkungen: Der von der POT-Funktion übergebene Wert kann zwi- schen 0 und 255 liegen.
  • Seite 128: Print Using

    Die Nummer, unter der eine Datei für ein Ausga- begerät eröffnet wurde. Bei Nummern zwischen 1 und 127 wird den ausgegebenen Daten ein Wagenrücklauf- code (CHR$(13)) angefügt. Bei Nummern zwischen 128 und 255 zusätzlich noch ein Zeilenvorschubcode (CHR$ (10)). v$ Eine Zeichenkettenvariable oder -konstante, die das Druckformat definiert (s.
  • Seite 129 C128-Modus BASIC 7.0 4-89 Die normalerweise linksbündig im Druckfeld ange- zeigten Daten werden zentriert angezeigt. > Diß Daten werden rechtsbündig im Druckfeld ange- zeigt. Numerische Druckfelder Hat der Wert eines numerisch Ausdruckes mehr Druckstellen als Positionen mit # definiert sind, wird das Druckfeld mit Sternen (*) gefüllt, hat er weniger, werden links Leerstellen aufgefüllt, da die Daten rechtsbündig gedruckt werden.
  • Seite 130 C128-Modus BASIC7.0 4-90 Die folgende Tabelle enthält eine Reihe von Beispielen für die Verwendung der PRINT USING-Anweisung: Bemerkungen Ausdruck Ergebnis Format + # # Leerstelle zwischen Vorzei- chen und Zahl Führende Null hinzugefügt - . 0 1 0 . 0 1 - # .
  • Seite 131 C128-Modus BASIC 7.0 4-91 Format Ausdruck Ergebnis Bemerkung + $ # # # + $ - 1 Vor dem $ muß mindestens ein stehen, sonst wird + druckbares Zeichen interpre- tiert + # $ # # - $ 1 Überlauf, weil kein Platz für $ # .
  • Seite 132: Pudef-Anweisung

    4-92 C128-Modus BASIC 7.0 PUDEF-Anweisung PUDEF V$ Format: Zweck: Erlaubt die Umdefinition von bis zu vier verschiedenen Steuerzeichen in der PRINT USING-Anweisung. v$ Eine Zeichenkettenkonstante in Anführungszeichen (") oder -variable, deren Wert bis zu 4 Zeichen lang sein darf. Die Position dieser Zeichen in der Zeichenkette steht für ein bestimmtes Steuerzeichen der PRINT USING-Anweisung.
  • Seite 133 C128-Modus BASIC 7.0 4-93 Beispiel 1 : P U D E F ' " ? " Leerstellen werden beim Ausdruck durch Fragezeichen ersetzt. Beispiel 2: I B P U D E F " . , " 2 B P R I N T U S I N G " » I t t t , » t t t t . S 8 " ; - 1 2 3 4 . 5 6 7 R U N - 1 .
  • Seite 134: Rclr-Funktion

    C128-Modus BASIC 7.0 4-94 RCLR-Funktion Format: v=RCLR(n) Zweck: Liefert den der angegebenen Farbquelle zugeordneten aktuellen Farbcode im Bereich zwischen 1 und 16 (s.a. COLOR-Anweisung). Ein ganzzahliger Wert zwischen 0 und 6, der die Farbquelle angibt. Folgende Farbquellen sind verfügbar: Hintergrund (40-Zeichen-Anzeige) grafischer Vordergrund Mehrfarbenmodus 1 Mehrfarbenmodus 2...
  • Seite 135: Rdot-Funktion

    C128-Modus BASIC 7.0 4-95 RDOT-Funktion Format: v= R D O T ( / 7 ) Zweck: Liefert die aktuelle Bildschirm-Position des grafischen Cursors (Pixel-Cursor) oder den für die aktuelle Position gültigen Code der Farbquelle. n ein ganzzahliger Wert zwischen 0 und 3 mit folgender Bedeutung: x-Position y-Position...
  • Seite 136: Record-Anweisung

    4-96 C128-Modus BASIC 7.0 RECORD-Anweisung Format: R E C O R D #Filenr,Satznr[,Bytenr] Zweck: Positioniert den Schreib/Lese-Zeiger auf eine wählbare Position innerhalb einer Disketten-Relativ-Datei (s.a. Kapitel 6.7). Filenr Die logische Nummer im Bereich zwischen 1 und 255, unter der die Disketten-Relativ-Datei eröffnet wur- Satznr Ein ganzzahliger Wert zwischen 1 und 65535, der den logischen Datensatz in der Diskettendatei be-...
  • Seite 137 4-97 C128-Modus BASIC 7.0 RENAME-Befehl Format: RENAME Altname TO Neuname[,D Laufw] [,U Geräteadr] Zweck: Weist einer Diskettendatei auf einem wählbaren Lauf- werk einen neuen Namen zu (s.a. Kapitel 6.9.4). Altname,Neuname Zeichenkettenkonstanten in Anfüh- rungszeichen (") oder-variablen mit einer Länge von bis zu 16 Zeichen, die den alten bzw.
  • Seite 138 C128-Modus BASIC7.0 4-98 RENUMBER-Befehl RENUMBER[/V/7um[, [Schrittw] [,Anum]]] Format: Numeriert das im Hauptspeicher befindliche BASIC-Pro- Zweck: gramm vollständig oder teilweise neu. Nnum Die Zeilennummer, mit der der neu zu numerie- rende Programmteil beginnen soll. Voreingestellt ist hier Schrittw Ein ganzzahliger Wert, um den bei der Neu- numerierung jede Zeilennummer gegenüber der vorher- gehenden steigen soll.
  • Seite 139 4-99 C128-Modus BASIC7.0 Beispiele: R E N U M B E R Das gesamte im Haupspeicher befindliche Programm wird in 10er-Schritten neu numeriert. Die erste Zeile erhält die Nummer 10. R E N U M B E R 1 0 8 , 1 5 Das gesamte im Hauptspeicher befindliche Programm wird in 15er-Schritten neu numeriert.
  • Seite 140: Restore-Anweisung

    C128-Modus BASIC 7.0 4-100 RESTORE-Anweisung R E S T O R E [Zeilennr] Format: Zweck: Setzt den Lesezeiger der READ-Anweisung (s. dort in Kapitel 3) auf das erste DATA-Element der ersten oder einer wählbaren DATA-Zeile im Programm, um DATA¬ Elemente wiederholt zu lesen. Zeilennr Eine gültige Programmzeilennummer, bei der eine DATA-Anweisung stehen muß.
  • Seite 141: Resume-Anweisung

    4-101 C128-Modus BASIC 7.0 RESUME-Anweisung Format: R E S U M E RESUME NEXT RESUME Zeilennr Zweck: Setzt das Programm nach Ausführen einer Fehlerbe- handlungsroutine (s. TRAP-Anweisung) an einer defi- nierten Stelle fort. R E S U M E Das unterbrochene Programm wird mit der Anweisung, die den Fehler verursacht hat, fortgesetzt.
  • Seite 142: Rgr-Funktion

    C128-Modus BASIC 7.0 4-102 RGR-Funktion Format: v=RGR(n) Zweck: Liefert den aktuell eingestellten grafischen Modus (0 bis 5; s. a. GRAPHIC-Anweisung). n Ein Scheinargument, dessen Wert beliebig sein kann, aber angegeben werden muß.
  • Seite 143: Rreg-Anweisung

    4-103 C128-Modus BASIC 7.0 RREG-Anweisung Format: R R E G [AVar][,[XVar][,[YVar] [,[SVar]]] Zweck: Weist den spezifizierten Variablen die bei der Beendi- gung eines mit der SYS-Anweisung (s. dort in Kapitel 5.2) aufgerufenen Maschinensprache-Unterprogramms aktuellen Inhalte der Prozessorregister A, X, Y und SR (Statusregister) zu.
  • Seite 144: Rspcolor-Funktion

    4-104 C128-Modus BASIC 7.0 RSPCOLOR-Funktion Format: v= R S P C O L O R ( n ) Zweck: Liefert den Code der aktuellen Zusatzfarbe für Sprites. Ein ganzzahliger Wert von 1 oder 2 mit folgender Bedeutung: liefert einen Farbcode zwischen 1 und 16 für die Sprite-Zusatzfarbe 1.
  • Seite 145: Rsppos-Funktion

    C128-Modus BASIC 7.0 4-105 RSPPOS-Funktion Format: v= RSPPOS(n,m) Zweck: Liefert für ein bestimmtes Sprite Position oder aktuelle Geschwindigkeit. Ein ganzzahliger Wert zwischen 1 und 8, der das zu untersuchende Sprite definiert. m Ein ganzzahliger Wert zwischen 0 und 2 mit folgender Bedeutung: liefert aktuelle x-Koordinate liefert aktuelle y-Koordinate...
  • Seite 146: Rsprite-Funktion

    4-106 C128-Modus BASIC 7.0 RSPRITE-Funktion Format: v= RSPRITE(n,m) Zweck: Liefert für ein bestimmtes Sprite die aktuellen Attribute. Ein ganzzahliger Wert zwischen 1 und 8, der das zu untersuchende Sprite definiert. m Ein ganzzahliger Wert zwischen 0 und 5 mit folgender Bedeutung: Liefert 1, wenn das Sprite aktiviert und 0, wenn es inaktiviert ist.
  • Seite 147 4-107 C128-Modus BASIC 7.0 RUN-Befehl Format: RUN [Zeilennr] RUN Dateiname[, D Laufw] [, U Geräteadr] Bedeutung: Ein BASIC-Programm, das entweder im Hauptspeicher resident ist oder von Disk geladen wird, wird gestartet. Zeilennr Eine gültige Programmzeilennummer, bei der das Programm gestartet werden soll. Dateiname Eine Zeichenkettenkonstante in Anführungs- strichen (") oder eine -Variable in Klammern (), die den Programmdateinamen bezeichenet.
  • Seite 148 4-108 C128-Modus BASIC 7.0 Beispiel 1 188 FOR I = l T O 2: PRINT I f 2 ; : NEXT 288 PRI NT "HALLO ! " 1 4 HALLO ! READY. RUN 288 HALLO ! READY. Beispiel 2 RUN "PROG1" , D8, U9 Das Programm PROG1 wird von der Diskette in Laufwerk 0 der Floppy-Disk mit der Geräteadresse 9 geladen und gestartet.
  • Seite 149: Rwindow-Funktion

    4-109 C128-Modus BASIC 7.0 RWINDOW-Funktion Format: y = RWINDOW(n) Zweck: Liefert die Parameter für das aktuelle Bildfenster (s.a. WINDOW-Befehl). n Ein ganzzahliger Wert zwischen 0 und 2 mit folgender Bedeutung: Liefert die Nummer der letzten Zeile im aktuellen Bildfenster (0-24). Liefert die Nummer der letzten Spalte im aktuellen Bildfenster (0-79).
  • Seite 150: Scale-Anweisung

    4-110 C128-Modus BASIC 7.0 SCALE-Anweisung Format: S C A L E [n][,xmax,ymax] Zweck: Schaltet die Skalierung im Grafikmodus ein oder aus und verändert den Maßstab für die Bildschirmkoordinaten. Ein ganzzahliger Wert von 0 oder 1 mit folgender Bedeutung: schaltet die Skalierung aus. Die grafischen Bild- schirmkoordinaten x/y sind 0-159/0-199 im Mehrfarbenmodus und 0-319/0-199 im hochauflösenden Modus.
  • Seite 151: Scnclr-Anweisung

    C128-Modus BASIC 7.0 4-111 SCNCLR-Anweisung Format: S C N C L R [n] Zweck: Löscht den angegebenen Bildschirm. n ein ganzzahliger Wert mit folgender Bedeutung: Der 40-Zeichen-Textschirm wird gelöscht. Der hochauflösende Grafikbildschirm wird gelöscht. Der hochauflösende geteilte Bildschirm (Text- und Grafikdarstellung) wird gelöscht.
  • Seite 152 4-112 C128-Modus BASIC 7.07.0 SCRATCH-Befehl Format: S C R A T C H Dateiname[,üLaufw] [,U Geräteadr] Zweck: Löscht den Dateieintrag für die angegebene Datei aus dem Diskettenverzeichnis und damit die Datei von Dis- kette (s.a. Kapitel 6.8). Dateiname Eine Zeichenkettenkonstante in Anfüh- rungszeichen (") oder eine -variable mit einer Länge von bis zu 16 Zeichen, die die zu löschende Datei bezeichnet.
  • Seite 153 C128-Modus BASIC 7.0 4-113 Beispiele: S C R A T C H " D A T E N " Die Datei "DATEN" wird auf der Diskette in Laufwerk 0 von der Floppy-Disk mit der Geräteadresse 8 gelöscht. S C R A T C H " * " , U 9 Alle Dateien werden von der Diskette in Laufwerk 0 von Floppy-Disk Nr.
  • Seite 154 C128-Modus BASIC 7.0 4-114 SLEEP-Befehl Format: S L E E P n Zweck: Hält die Programmausführung für eine bestimmte Zeit n Ein ganzzahliger Wert zwischen 1 und 65535, der die Wartezeit in Sekunden definiert. Bemerkungen: Die durch den SLEEP-Befehl gesetzte Zeit wird durch die FAST-Anweisung (s.
  • Seite 155 C128-Modus BASIC7.0 4-115 SLOW-Befehl Format: S L O W Zweck: Schaltet den Prozessor vom Betrieb im 2-Megahertz- Takt auf Betrieb im 1-MegahertzTakt um. Der Rechner wird damit halb so schnell. Bemerkungen: Die 40-Zeichen-Bildschirmanzeige wird durch SLOW-Befehl wieder aktiviert (s.a. FAST-Befehl).
  • Seite 156: Sound-Anweisung

    C128-Modus BASIC 7.0 4-116 SOUND-Anweisung Format: SOUND Stimme,Freq,Dauer[,[Richtung] [,[Maxfreq][,[Stufe][,[Welle] [, Impulsbreite]]]]] Zweck: Erzeugt T o n - oder Klangeffekte wählbarer Frequenz und Dauer und gibt sie über den Lautsprecher des Monitors oder Fernsehempfängers aus. Stimme Ein ganzzahliger Wert zwischen 1 und 3 mit folgender Bedeutung: Stimme 1 (Ton) Stimme 2 (Ton)
  • Seite 157 C128-Modus BASIC 7.0 4-117 Welle Ein ganzzahliger Wert zwischen 0 und 3 für die Wellenform: Dreieck Sägezahn Rechteck Rauschen Voreingestellt ist hier 2. Impulsbreite Ein ganzzahliger Wert zwischen 0 und 4095. Voreingestellt ist hier 2048 (50 % Tastverhältnis). Bemerkungen: Wenn eine SOUND-Anweisung mit einer bestimmten Stimme gegeben wird, solange eine vorher gegebene SOUND-Anweisung mit derselber Stimme noch aktiv ist, so wird erstere zunächst zuende geführt, ehe die zweite...
  • Seite 158: Sprcolor-Anweisung

    C128-Modus BASIC 7.0 4-118 SPRCOLOR-Anweisung Format: S P R C O L O R [Zusatzfarb1][,Zusatzfarb2] Zweck: Setzt die Zusatzfarbe im Mehrfarbenmodus für alle Spri- tes. Zusatzfarb 1 Ein ganzzahliger Wert zwischen 1 und 16, der die Zusatzfarbe 1 für alle Sprites im Mehrfarbenmo- dus festlegt.
  • Seite 159 C128-Modus BASIC 7.0 4-119 SPRDEF-Befehl Format: S P R D E F Zweck: Schaltet den Sprite-Editor ein. Bemerkungen: Dieser Befehl ist sowohl im Direktmodus als auch im Programmodus erlaubt. Der Sprite-Editor kennt folgen- de Befehle: 1 bis 8 Wählt eine Sprite-Nummer. Schaltet die automatische Wiederholung für die Zei- chen-Tasten 1, 2, 3 oder 4 ein oder aus.
  • Seite 160 ße des zu entwerfenden Sprites zu haben. C T R L 1 bis C T R L 8 Wählt eine der 8 Vordergrundfarben 1 bis 8 für das Sprite. Cr 1 bis O 8 (Commodore-Taste) Wählt eine der 8 Vordergrundfarben 9 bis 16.
  • Seite 161 C128-Modus BASIC7.0 4-121 Mit Hilfe des Monitors müssen Sie zum Speichern auf Kassette oder Diskette S"name ,gerät,0E00,0FFF und zum Laden L" name", gerät eingeben. Für name ist der Dateiname und für gerät d\e Geräteadresse in hexadezimaler Schreibweise anzuge- ben.
  • Seite 162: Sprite-Anweisung

    C128-Modus BASIC 7.0 4-122 SPRITE-Anweisung Format: S P R I T E n[,[ak%[Farbe][,[Prr] [,xdehn][,{ydehn] UModuäm Zweck: Setzt Attribute für eines von 8 Sprites. Ein ganzzahliger Wert zwischen 1 und 8 für die Sprite-Nummer. Ein ganzzahliger Wert von 0 oder 1, der angibt, ob das Sprite aktiviert (1) oder inaktiviert (0) werden soll.
  • Seite 163 C128-Modus BASIC 7.0 4-123 tes können im Mehrfarben-Grafikmodus verwendet wer- den und umgekehrt. Zur Ermittlung der für ein bestimmtes Sprite eingestell- ten Attribute kann die RSPRITE-Funktion (s. dort) ver- wendet werden. Beispiel: s p m T E 4 , i , 6 , i , , , i Das Sprite Nr.
  • Seite 164: Sprsav-Anweisung

    C128-Modus BASIC 7.0 4-124 SPRSAV-Anweisung Format: SPRSAV n,v$ S P R S A V v$,n Zweck: Speichert ein bestimmtes Sprite als Punktraster in einer Zeichenkettenvariablen oder umgekehrt. Ein ganzzahliger Wert zwischen 1 und 8 für die Sprite-Nummer. v$ Eine beliebige Zeichenkettenvariable, die das Punkt- raster als Binärinformation aufnimmt oder enthält.
  • Seite 165: Sshape-Anweisung

    4-125 C128-Modus BASIC 7.0 SSHAPE-Anweisung Format: SSHAPE Zeikett,x1,y1[,x2,y2] Zweck: Übeträgt den Inhalt eines angegebenen Bereiches auf dem Grafikbildschirm als binäre Bildinformation in eine Zeichenkettenvariable. Zeikett Eine Zeichenkettenvariable, die den gewählten Bildschirmbereich als binäre Bildinformation aufnimmt. x1,y1 Die skalierten Bildschirmkoordinaten der linken oberen Ecke des darzustellenden Bildes.
  • Seite 166 4-126 C128-Modus BASIC 7.0 STASH-Befehl Format: STASH Bytes. Intadr, Extadr, Bank Überträgt eine wählbare Anzahl von Bytes aus dem Zweck: BASIC-Arbeitsspeicher in eine Speichererweiterungs- bank. Bytes Ein ganzzahliger Wert zwischen 0 und 65535, der die Anzahl der zu übertragenden Bytes angibt. Intadr Ein ganzzahliger Wert zwischen 0 und 65535, der die Adresse im BASIC-Arbeitsspeicher angibt, ab der...
  • Seite 167 C128-Modus BASIC 7.0 4-127 SWAP-Befehl SWAP Bytes,lntadr,Extadr,Bank Format: Zweck: Tauscht eine wählbare Anzahl Bytes zwischen dem BASIC-Arbeitsspeicher einer Speichererweite- rungsbank. Bytes Ein ganzzahliger Wert zwischen 0 und 65535, der die Anzahl der auszutauschenden Bytes angibt. Intadr Ein ganzzahliger Wert zwischen 0 und 65535, der die Adresse im BASIC-Arbeitsspeicher angibt, ab der die Bytes ausgetauscht werden sollen.
  • Seite 168: Tempo-Anweisung

    C128-Modus BASIC 7.0 4-128 TEMPO-Anweisung Format TEMPO n Zweck: Setzt das Spieltempo für Musiknoten. Ein ganzzahliger Wert zwischen 0 und 255, der die relative Dauer angibt, mit der die gespielten Musiknoten gehalten werden. Die tatsächliche Dauer berechnet sich nach Dauer = 19.22/n in Sekunden.
  • Seite 169: Trap-Anweisung

    C128-Modus BASIC 7.0 4-129 TRAP-Anweisung Format: TR AP [Zeilennr] Zweck: Die Fehlerunterbrechung wird aktiviert und das Pro- gramm verzweigt zu einer angegebenen Zeilennummer, sobald der Interpreter eine Fehlermeldung ausgeben will. Zeilennr Eine gültige Programmzeilennummer, mit der die Fehlerbehandlungsroutine beginnt. Wird keine Zei- lennummer angegeben, so wird die Fehlerunterbre- chung inaktiviert.
  • Seite 170: Tron- Und Troff-Befehle

    C128-Modus BASIC7.0 4-130 TRON- und TROFF-Befehle Format: TRON T R O F F Zweck: Schaltet die Programmablaufverfolgung ein (TRON) oder aus (TROFF). Bemerkungen: Bei eingeschalteter Programmablaufverfolgung werden die Zeilennummern in der Reihenfolge ihrer Bearbeitung durch den Interpreter in eckigen Klammern ([ ]) auf dem Bildschirm angezeigt.
  • Seite 171: Vol-Anweisung

    4-131 C128-Modus BASIC 7.0 VOL-Anweisung VOL n Format: Zweck: Setzt die Lautstärke für die mit der SOUND-und der PLAY-Anweisung (s. dort) erzeugten T o n - oder Klang- effekte. Ein ganzzahliger Wert zwischen 0 und 15, der die Lautstärke bestimmt. 0 bedeutet Ausschalten der T o n - oder Klang-Ausgabe.
  • Seite 172: Width-Anweisung

    C128-Modus BASIC 7.0 4-132 WIDTH-Anweisung Format: WIDTH n Zweck: Setzt die Strichstärke für alle grafischen Zeichenanwei- sungen (BOX, CIRCLE, DRAW etc.). Ein ganzzahliger Wert von 1 für einfache oder 2 für doppelte Strichstärke.
  • Seite 173: Window-Anweisung

    C128-ModusBASIC7.0 4-133 WINDOW-Anweisung Format: WINDOW xlo,ylo,xru,yru[,lö] Zweck: Setzt ein Bildschirmfenster für Textausgabe und löscht dieses wahlweise. xlo,ylo Spalten- und Zeilennummer der linken oberen Ecke des Textfensters. xru,yru Spalten- und Zeilennummer der rechten un- teren Ecke des Textfensters. lö Ein ganzzahliger Wert von 0 oder 1, der angibt, ob das Bildfenster nach der Definition gelöscht werden soll (1) oder nicht (0).
  • Seite 174: Xor-Funktion

    4-134 C128-Modus BASIC 7.0 XOR-Funktion Format: v=X0R{n1,n2) Zweck: Liefert einen ganzzahligen Wert im Bereich zwischen 0 und 65535, der sich aus der Exclusiv-ODER-Verknüfung von zwei ganzen, vorzeichenlosen 16-Bit-Werten ergibt. n1,n2 Zwei ganzzahlige Werte im Bereich zwischen 0 und 65535, die intern in 16-Bit-Zahlen umgewandelt werden, ehe sie logisch miteinander verknüpft werden.
  • Seite 175: Farben, Sprites Und Grafische Effekte

    4-135 C128-Modus Farben und grafische Effekte 4.7 Farben, Sprites und grafische Effekte Der C128 besitzt 14 neue Befehle, die es Ihnen leicht machen, Grafiken zu erzeugen. CHAR CIRCLE DRAW COLOR LOCATE GRAPHIC PAINT MOVSPR GSHAPE SCALE SSHAPE SPRSAV SPRITE Genauere Informationen entnehmen Sie bitte Kapitel 4.6. Grafische Besonderheiten Ein hervorstechendes Merkmal des C128 ist seine grafische Programmier- barkeit.
  • Seite 176 4-136 C128-Modus Farben und grafische Effekte Hochauflösende und Mehrfarben-Grafik Wie bereits erwähnt, zählen zu den Besonderheiten des C128 zwei verschie- dene grafische Betriebsmodis, nämlich der Betrieb mit hochauflösender Grafik und der Mehrfarben-Grafikbetrieb, die mit der GRAPHIC-Anweisung gewählt werden können. Bei beiden Betriebsarten (wie auch beim Mischbetrieb mit geteiltem Bild- schirm) wird ein Speicherbereich von insgesamt 9 bzw.
  • Seite 177 C128-Modus Farben und grafische Effekte 4-137 Welche Farben verwendet werden, wird mit der COLOR-Anweisung, deren Wirkung im folgenden noch näher erläutert wird, festgelegt. Mit ihr werden jeder der vier im Grafikbetrieb existierenden Farbquellen (Hintergrund, Vordergrund, Zusatzfarben 1 und 2) eine der 16 möglichen Farben zugewie- sen.
  • Seite 178 4-138 C128-Modus Farben und grafische Effekte Code Farbe Code Farbe hellbraun schwarz weiß braun rosa grün dunkelgrau violett grau dunkelgrün hellgrün blau hellblau gelb hellgrau Für ein Beispiel mit dem Hintergrund schwarz, dem Vordergrund rot und dem Bildrahmen schwarz probieren Sie folgendes Programm aus. 1B COLOR 0, 1 2B COLOR 1, 3 38 COLOR 4, 1...
  • Seite 179 4-139 C128-Modus Farben und grafische Effekte Das folgende Beispiel arbeitet mit der hochauflösenden Grafik. Geben Sie folgende Programmzeile ein: 40 GRAPHIC 1, 1 Die zweite Zahl 1 im GRAPHIC-Befehl löscht den Bildschirm. Soll der Bildschirm nicht gelöscht werden, geben Sie an der zweiten Stelle eine 0 ein. Beachte: Arbeiten Sie nur mit einem Bildschirm und sollten Sie z.B.
  • Seite 180 4-140 C128-Modus Farben und grafische Effekte Die erste Zahl (1) bedeutet, daß der Kreis in der Vordergrundfarbe gezeich- net wird. Eine 0 bewirkt hier, daß der Kreis in der Hintergrundfarbe gezeich- net, also gelöscht wird. Der Befehl bewirkt weiter, daß ein Kreis in der Mitte des Bildschirmes gezeichnet wird.
  • Seite 181 4-141 C128-Modus Farben und grafische Effekte Nun kurz erläutert, was die einzelnen Zahlen bedeuten. Der erste Wert 1 bedeutet Vordergrundfarbe. 20 und 180 sind die x - und y-Koordinaten für den Startpunkt. Die Werte 280 und 180 sind die x - und y-Koordinaten des Endpunkts.
  • Seite 182 C128-Modus Farben und grafische Effekte 4-142 Mit der DRA W-Anweisung können Sie auch Bereiche des Bildschirms durch Umrandung hervorheben. Sollten Sie jedoch einmal eine Fläche mit Farbe ausmalen wollen, so benutzen Sie die PAINT-Anweisung (s. dort in Kapitel 4.6). Geben Sie z.B. ein: 168 POINT X, 158, 97 Dieser Befehl malt den Kreis, den Sie in Programmzeile 60 gezeichnet haben, vollständig aus.
  • Seite 183 100BOX ,220, 100,280, 168 118 COLOR 1, 10. REM FARBE BRAUN FUER L I N I E N 128 DRAU 1, 20, 180 TO 280, 19B 130 DRAU 1, 10, 20 TO 300, 20T O 150, 80 TO 10, 20 140COLOF 1.6 FFM FARBE GRULN FUER PUNKT...
  • Seite 184 C128-Modus Farben und grafische Effekte 4-144 Sprites: Programmierbare und bewegbare Objekte Ihr C128 bietet Ihnen ferner die Möglichkeit, selbst entworfene Figuren auf dem Bildschirm zu bewegen. Dieses geschieht mit der SPRITE-Anweisung. Sie brauchen zum Erstellen von Sprites kein Millimeterpapier mehr, wenn sie mit dem eingebauten Sprite-Editor (s.
  • Seite 185: Der Sprdef-Befehl

    4-145 C128-Modus Farben und grafische Effekte Der Gebrauch der S S H A P E - , S P R S A V - und S P R I T E - Anweisungen Die Verwendung dieser Anweisungen erlaubt auf schnelle und einfache Art, Sprites als Teile einer Grafik zu erzeugen.
  • Seite 186 C128-Modus Farben und grafische Effekte 4-146 Das folgende kurze Programm zeichnet einen Rennwagen am oberen linken Bildrand: 15 BOX 1, 2, 2, 45, 45 REM ZEICHNET RECHTECK UMS AUTO 28DR0W1, 17, 10TO28, 10 TO 2b, 30TO 19, 301 o li>,18 REM KOROSSERIF 22 DRrtW 1, 11, 18 TO 15, 1BTO 15, 18 TO 11, 18TO 11, 18.
  • Seite 187 4-147 C128-Modus Farben und grafische Effekte ihr Bild ist nun gespeichert. Im nächsten Schritt wird das in A$ gespeicherte Bild in ein Sprite übertragen. Dies kann durch folgendene Anweisungen realisiert werden: SPRSAV n,v$ SPRSAV v$,n Mit dieser Anweisung können Sie die in einer Zeichenkettenvariablen abge- legten Bitmuster als Sprite-Daten verwenden bzw.
  • Seite 188 4-148 C128-Modus Farben und grafische Effekte n- Ganzzahiiger Wert zwischen 1 und 8 für die Sprite-Nummer. akt- Ein ganzzahliger Wert von 0 oder 1, der angibt, ob das Sprite aktiviert (1) oder inaktiviert (0) ist. Farbe - Ganzzahliger Wert zwischen 1 und 16 für die Sprite-Farbe. Die Zuordnung der Codes zu den Farben sind in der COLOR-Anweisung (Kapitel 4.6) beschrieben.
  • Seite 189 4-149 C128-Modus Farben und grafische Effekte Fügen Sie bitte folgende Zeilen an Ihr Progamm an: 70 MOUSPR 1, 240, 0: REM POSITION DES S P R I T E S 1 80MOUSPR 2, 120, 0: REM POSITION DES S P R I T E S 2 Zeile 70 bewirkt, daß...
  • Seite 190 4-150 C128-Modus Farben und grafische Effekte Es folgt noch einmal das komplette Programm: 1COLOR 0, 1 10 GRAPHIC 1, 1 I S BOX 1,2,2,45,45 28DHAW 1, 17, 10TO 28, 10 TO 26, 30 TO 19, 30TO 17, 10 22DRAW 1, 11, 18 T" 15, 10TO 15, 1 8 1 0 I I , 18TO 11, 10 24 1>FHW t i 30, 10 TO 34, 10 TO 34, 18 10 30, 18 TO 38, 18 26 DRHW 1, 11, 20 TO 15, 20 TO 15, 28 TO 11, 281 0 11, 20 28DRAW 1, 3B,20TO34,20 TO 34, 28 TO 30.
  • Seite 191 C128-Modus Farben und grafische Effekte 4-151 Verbinden von Sprites zu einem gößeren Objekt Wollen Sie größere Figuren auf Ihrem Bildschirm erstellen, müssen Sie einzelne Sprites zu der gewünschten Gesamtfigur zusammenfügen. Die folgende Anleitung zeigt Ihnen, wie Sie zwei Sprites zusammenfügen kön- nen: •...
  • Seite 192 4-152 C128-Modus Musik und Geräusch-Effekte Zum Abschluß noch ein Beispiel für verbundene Sprites: 10 COIOH 0, 1 : FEM HINTERGRUND SCHWARZ 20 GRAPHIC 1, X FEM LOESCHT E l l DSCHI FM 30 BOX 1, X, 1,S1, 25 FEM RECHIEcK UM S P R I T E S 40DRAW X, 3, 3 TO 40, 3 T 0 4 7 , 12 TO 0, 19 TO 3,3 45 REM ZFICHNEI EINE RAKETF 50 CHAR 1,1, 1"RAKT"...
  • Seite 193 C128-Modus Musik und Geräusch-Effekte 4-153 Wie in den vorherigen Abschnitten wird jeder einzelne Befehl kurz erklärt. Im Laufe dieser Beschreibungen entsteht dann wieder ein kleines Programm. Die SOUND-Anweisung ermöglicht es Ihnen, schnell und einfach T o n - oder Klangeffekte wählbarer Frequenz und Dauer zu erzeugen und sie über den Monitor oder ein Fernsehgerät auszugeben: SOUND Stimme,Frequenz,Dauer[,[Richtung]...
  • Seite 194 C128-Modus Musik und Geräusch-Effekte 4-154 Wollen sie z.B. einen Ton von 1 Sekunde erzeugen, muß der Wert für die Dauer von einer Skunde 60, für 10 Sekunden 600 usw. sein. Nun probieren Sie bitte folgendes kurzes Programm: 1 0 U O L 5 2 0 S O U N D 1, 5 1 2 , 6 0 Lassen Sie das Programm laufen.
  • Seite 195 C128-Modus Musik und Geräusch-Effekte 4-155 Probieren Sie einmal folgende Variante aus. Es handelt sich dabei um ein Programm, das eine Flugzeugschlacht durch verschiedene Geräusche simu- liert. 10 REM I LUGZFUGSCHI.ACHT UOI 5 30 FOR I = 850 TO 1015 40 SOUND 3, I , 1 50 SOUND 1, 1015-1 , 1 60NFXI 70 SOUND 3, 965,60, , , , 3...
  • Seite 196 4-156 C128-Modus Musik und Geräusch-Effekte Geräusche und Musik im C128-Modus Zu Beginn einige Grundlagen: Jeder Ton, den sie hören, ist eine durch die Luft übertragene Welle. Diese Tonwelle bewegt sich mit einer bestimmten Geschwindigkeit (Fre- quenz). Lautstärke Zeit Die Klangfarbe der Töne wird durch ihre Wellenform bestimmt. Der C128 kann vier verschiedene Wellenformen erzeugen: •...
  • Seite 197 C128-Modus Musik und Geräusch-Effekte 4-157 Die einzelnen Parameter bedeuten: Nummer der Hüllkurve ( 0 bis 9 ). Anschlagzeit ( 0 bis 15 ). Ab - Abschwellzeit ( 0 bis 15 ). Haltezeit ( 0 bis 15 ). Ausklingzeit ( 0 bis 15 ). Wellenform : 0 Dreieck 1 Sägezahn...
  • Seite 198 C128-Modus Musik und Geräusch-Effekte 4-158 Weitere Einzelheiten zu den vorprogrammierten Hüllkurven entnehmen Sie bitte der nachfolgenden Tabelle: 1536 Klavier Akkordeon Zirkusorgel Trommel Flöte Gitarre Cembalo 2048 Orgel Trompete Xylophon Geben Sie nun die folgende Programmzeile ein. 10 ENOELOPE 9, 18, 5, 10, 5, 2, 4800: PL0Y"T9" Der nächste Schritt bestimmt die Lautstärke ihres Musikprogramms.
  • Seite 199 C128-Modus Musik und Geräusch-Effekte 4-159 n muß ein ganzzahliger Wert zwischen 0 und 255 sein. Fehlt in ihrem Programm dieser Befehl, so setzt der Computer die Länge 8 fest. Die tatsächliche Dauer berechnet sich: Dauer = 19.22//; in Sekunden. Setzen Sie das Tempo = 0, so wird die Note gehalten.
  • Seite 200 C128-Modus Musik und Geräusch-Effekte 4-160 Durch ein in Anführungsstriche gesetztes "R" erreichen sie, daß der Ton angehalten wird. Es ist weitermöglich, den Synthesizer des C128 durch zusätzliche Steuerzei- chen in der PLA Y-Anweisung für unterschiedliche Effekte beim Abspielen von Musik zu programmieren. Diese folgen in einer Tabelle: Kontrollzeichen Beschreibung...
  • Seite 201 4-161 C128-Modus Farben und grafische Effekte Hier werden noch einmal die einzelnen Zeichen der Zeile 60 kurz erklärt. U7 - setzt die Lautstärke auf 7 V3 - wählt die 3. Stimme 0 6 - setzt die 3. Stimme auf die 6. Oktave X1 - stellt das Filter an Nähere Angaben entnehmen Sie bitte der Beschreibung der PLA Y - A n w e i - sung in Kapitel 4.6.
  • Seite 202 4-162 C128-Modus Musik und Geräusch-Effekte Wenn Sie schon die Wellenform, ADSR-Parameter, Lautstärke und Tempo gewählt haben, sollten Sie nun das Filter wählen. Die FILTER-Anweisung verändert ebenfalls Klangfarbe und - h ö h e . Das im SID eingebaute Filter gibt Ihnen die Möglichkeit die Wellenform hervorzuheben oder zu eleminieren.
  • Seite 203 C128-Modus Musik und Geräusch-Effekte 4-163 Die FILTER-Anweisung legt die Grenzfrequenz, den Filtertyp sowie die Resonanz fest. Die allgemeine Form lautet: FILTER [Freq}[,[Tp][,[Bp}[,[Hp}[,[Resm] Die Erklärung der einzelnen Parameter: Freq Ein ganzzahliger Wert zwischen 0 und 2047, der die Filterfrequenz festlegt. schaltet den Tiefpass ( 0 = a u s , 1 = an ) schaltet den Bandpass ( 0 = a u s , 1 = an )
  • Seite 204 C128-Modus Musik und Geräusch-Effekte 4-164 Achten Sie auf den Unterschied, wenn ein Filter nach dem anderen ausge- schaltet wird. Experimentieren Sie noch ein wenig mit den einzelnen Filtern. Hier sind einige Beispiele für Filterbefehle mit anderen Grenzfrequenzen. 35 F I L T E R 2BBB, B, B, 1, 15 35 F I L T E R 1588,8, 1,8,5 35 F I L T E R 1888, 1,8,8,8 Das erste Beispiel setzt die Grenzfrequenz auf 2000 und wählt die Resonanz...
  • Seite 205 C128-Modus Musik und Geräusch-Effekte 4-165 Zeile 60 spielt die gleichen Noten wie in Zeile 40 und 50, nur mit geänderter Lautstärke, anderer Stimme und anderer Oktave. Das Filter ist eigeschaltet. Zeile 70 unterscheidet sich von den vorherigen Zeilen, indem ihre Töne auf halbe, viertel, achtel, sechzehntel Noten geändert werden.
  • Seite 206 C128-Modus Musik und Geräusch-Effekte 4-166 Durch das Kombinieren von Band- paß- und Hochpaßfilter werden alle Frequenzen oberhalb der Grenzfre- quenz hervorgehoben. Experimentieren Sie einmal mit den Filtern, um die verschiedenen Möglich- keiten der Musikgestaltung kennenzulernen.
  • Seite 207: C64-Modus

    C64-Modus 5.1 BASIC 2.0 im C64-Modus 5.2 Befehle. Anweisungen. Funktionen und Variable 5.3 Farben und Grafik im C64-Modus 5.4 Musik im C64-Modus...
  • Seite 209 Commodore-Sachbuchreihe veröffentlichten BASIC-Kurse empfohlen. In diesem Abschnitt wird der Sprachumfang der Grundversion 2.0 des Commodore-BASIC beschrieben. Diese Version ist sowohl für den C 6 4 - M o - dus als auch für den C128-Modus gültig. Kapitel 4 (C128-Modus) enthält die Beschreibung der Erweiterungen des Commodore-BASIC zur Version 7.0,...
  • Seite 210: Abs-Funktion

    C64-Modus BASIC 2.0 ABS-Funktion Format: v=ABS(.x) Zweck: Liefert den Absolutwert des Ausdrucks x. Beispiel: P H I N T R B S ( 7 * C - 5 ) ) KEfiDY.
  • Seite 211: Asc-Funktion

    C64-Modus BASIC 2.0 ASC-Funktion ASC(x$) Format: Liefert einen numerischen, ganzzahligen Wert zwischen Zweck: 0 und 255, der den ASCII-Code des ersten Zeichens der Zeichenkette x$ repräsentiert. Ist x$ eine Zeichenkette der Länge 0 (Leerstring), so wird eine ILLEGAL QUANTI- TY-Fehlermeldung ausgegeben. Beispiel: 18 fi$="TEST"...
  • Seite 212: Atn-Funktion

    C64-Modus BASIC 2.0 ATN-Funktion Format: I / = A T N ( A ) Zweck: Liefert den Arcus Tangens von x im Bogenmaß im Bereich - P I / 2 bis PI/2. Der Ausdruck * k a n n von jedem numerischen Typ sein;...
  • Seite 213 C64-Modus BASIC 2.0 CHR$-Funktion Format: y £ = C H R $ ( / ; ) Zweck: Liefert eine Ein-Byte-Zeichenkette, deren Zeichen den ASCII-Code n hat. Deshalb muß n im Bereich zwischen 0 und 255 liegen. CHR$ wird gewöhnlich dazu verwendet, spezielle Zeichen oder Steuercodes zu erzeugen.
  • Seite 214: Close-Anweisung

    C64-Modus BASIC 2.0 CLOSE-Anweisung Format: C L O S E Filenummer Zweck: Beendet die Ein/Ausgabe über einen Ein-/Ausgabe-Ka- nal. Bemerkungen: Filenummer ist die Nummer zwischen 1 und 255, unter der die Datei mit der OPEN-Anweisung eröffnet wurde. Der Zusammenhang zwischen einer bestimmten Datei und der Filenummer wird durch die CLOSE-Anweisung aufgehoben.
  • Seite 215 C64-Modus BASIC 2.0 CLR-Befehl Format: C L R Zweck: Setzt alle numerischen Variablen auf Null, alle Zeichen- kettenvariablen auf die Länge 0, leert den Stapelspeicher und den Speicher für Felder und setzt den Zeiger für freien Speicherplatz auf den Wert zurück, der sich aus der Größe des BASIC-Programms ohne alle Variablen ergibt.
  • Seite 216 C64-Modus BASIC 2.0 CMD-Befehl Format: CMD Filenummer[,Liste von Ausdrücken] Zweck: Adressiert ein Gerät an einer Ein/Ausgabe-Schnittstelle und läßt dieses Gerät nach der Ausgabeoperation im adressierten Zustand. Bemerkungen: CMD hat dieselbe Parameterliste wie die P R I N T # - A n - weisung (s.
  • Seite 217 C64-Modus BASIC 2.0 CONT-Befehl Format: CONT Zweck: Setzt ein Programm, das durch Drücken der STOP-Ta- ste oder durch die STOP- oder END-Anweisung unter- brochen oder beendet wurde, fort. Bemerkungen: Die Programmausführung wird unmittelbar an der Stelle, an der die Unterbrechung auftrat, fortgesetzt. Wenn die Unterbrechung nach der Textanzeige einer INPUT-An- weisung durch Drücken der RETURN-Taste ohne vorhe- rige Texteingabe erfolgte, wird das Programm mit der...
  • Seite 218: Cos-Funktion

    5-10 C64-Modus BASIC 2.0 COS-Funktion Format: y = C O S ( x ) Zweck: Liefert den Cosinus von x im Bogenmaß. Die Berech- nung von COS(x) erfolgt binär im Gleitkommaformat. Beispiel: I B X = 2 » C O S < . 4 ) 2 8 P R I N T X R U N 1 .
  • Seite 219: Data-Anweisung

    5-11 C64-Modus BASIC 2.0 DATA-Anweisung Format: DATA Konstantenliste Zweck: Speichert numerische und/oder Zeichenketten - K o n - stanten, auf die mit der READ-Anweisung (s. dort) zugegriffen werden kann. Bemerkungen: DATA-Anweisungen sind nicht ausführbare Anweisun- gen, die an beliebiger Stelle im Programm stehen kön- nen.
  • Seite 220 5-12 C64-Modus BASIC 2.0 Der Lesezeiger kann mit der RESTORE-Anweisung (s. dort) auf den Anfang der ersten DATA-Anweisung ge- stellt werden. Beispiel: 1 8 D R T A " D O S " , " U E T T E B " , " I S T " , " H E U T E " , " S C H O E N ! " 2 8 F O R I = 1 T 0 5 3 8 R E A D 0 $ 4 8 P R I N T fi$;...
  • Seite 221: Def Fn-Anweisung

    C64-Modus BASIC 2.0 5-13 DEF FN-Anweisung Format: DEF FN Name\(Argumentliste)] Funktionsdefinition Zweck: Definiert und benennt eine vom Anwender programmier- te BASIC-Funktion. Bemerkungen: Name muß ein erlaubter Variablenname sein. Dieser Name, dem FN vorangestellt wird, wird als Name der Funktion betrachtet. Argumentliste ist das Argument der Funktion, das in der Funktionsdefinition durch eine oder mehrere Gleitkom- mavariable bezeichnet wird.
  • Seite 222 C64-Modus BASIC 2.0 5-14 Die DEF FN-Anweisung muß ausgeführt werden, ehe die dadurch definierte Funktion das erste mal aufgerufen wird, sonst wird eine UNDEFINED FUNCTION-Fehler- meldung ausgegeben. DEF FN kann nicht im Direkt-Modus verwendet werden. Beispiel: 4 1 a D E F F N O B C x ) = x t 3 / Y | 3 42BT=FNOBC I ) Zeile 410 definiert die Funktion, die in Zeile 420 aufgeru-...
  • Seite 223: Dim-Anweisung

    5-15 C64-Modus BASIC 2.0 DIM-Anweisung Format: DIM Liste indizierter Variabler Zweck: Definiert die maximale Anzahl von Elementen für Feldva- riablen und reserviert den Speicher für die Feldvariable. Bemerkungen: Wenn ein Feldvariablenname ohne eine vorausgegange- ne DIM-Anweisung verwendet wird, so ist als maximaler Index 10 erlaubt.
  • Seite 224: End-Anweisung

    C64-Modus BASIC 2.0 5-16 END-Anweisung Format: Zweck: Beendet den Programmlauf, schließt alle geöffneten Dateien und setzt den Interpreter in den Direkt-Modus. Bemerkungen: END-Anweisungen zur Programmbeendigung können an jeder Stelle eines Programms stehen. Die END-Anweisung erzeugt keine Bildschirmmeldung wie z.B. BREAK bei der STOP-Anweisung. Am Ende eines Programms (letzte Zeile) ist die E N D - A n - weisung wahlfrei.
  • Seite 225: Exp-Funktion

    C64-Modus BASIC 2.0 5-17 EXP-Funktion v= EXP(x) Format: Zweck: Liefert die x-te Potenz der Zahl e. x muß kleiner oder gleich 88.02969191 sein, sonst wird eine OVERFLOW- Fehlermeldung generiert. Beispiel: 10 X=5 2 0 P R I N T E X P C S - 1 ) 54.59B15B1 REfiDY.
  • Seite 226 C64-Modus BASIC 2.0 5-18 F O R . . .NEXT-Anweisung Format: FOR num Var= x TO y [STEP z] NEXT [num Var][,num Var...] Zweck: Erlaubt die Mehrfachverarbeitung einer Folge von Befeh- len, Anweisungen und/oder Funktionen in einer Pro- grammschleife mit einer definierten Zahl von Durchläu- fen.
  • Seite 227 C64-Modus BASIC 2.0 5-19 schachtelten Schleifen reicht eine NEXT-Anweisung, gefolgt von den einzelnen Zählervariablen in der richti- gen Reihenfolge und durch Kommas getrennt, wenn die einzelnen NEXT-Anweisungen unmittelbar aufeinander folgen würden. Die Variablen in der NEXT-Anweisung können weggelas- sen werden. In diesem Fall bezieht sich jede NEXT-An- weisung auf die zuletzt interpretierte FOR-Anweisung.
  • Seite 228 C64-Modus BASIC 2.0 5-20 Beispiel 2 18 REM MAR I ABLENOENDERUNG NACH SETZEN DER S C H L E I F E 20 K=10 3 8 F 0 R I = 1 T 0 K STEP 2 40 PRINT I ; S0K=K+10 60 PRINT K 70 NEXT...
  • Seite 229 5-21 C64-Modus BASIC 2.0 FRE-Funktion Format: v=FRE(x) Zweck: Liefert die Anzahl der noch nicht benutzten Bytes im BASIC-Programmspeicher. Für x kann ein beliebiges Argument angegeben werden, da es keinerlei Wirkung hat. Als Blindargument muß es jedoch vorhanden sein. Bemerkungen: Da die übergebene Zahl vom Interpreter als ganze Zahl behandelt wird, deren Bereich nur zwischen -32768 und 32767 definiert ist, kann ? FRE(O) auch negative Werte liefern, wenn der verfügbare Speicher mehr als 32767...
  • Seite 230 5-22 C64-Modus BASIC 2.0 G E T - und GET#-Anweisungen Format: GET[#/o<jr Dateinr,] Variablenliste Zweck: Liest ein Zeichen von der Tastatur oder aus einer Datei und weist dieses Zeichen der nächsten Variablen in Variablenliste zu. log Dateinr Ein ganzzahliger Wert zwischen 1 und 255, unter der die Datei eröffnet wurde.
  • Seite 231 C64-Modus BASIC 2.0 5-23 G O S U B - und RETURN-Anweisungen Format: G O S U B Zeilennummer RETURN Zweck: Verzweigt in ein Unterprogramm, das mit Zeilennummer beginnt, und kehrt nach Ausführung des Unterpro- gramms ins Hauptprogramm zurück Bemerkungen: Die FiETURN-Anweisung(en) in einem Unterprogramm bewirken einen Rücksprung zu der Anweisung, die der zuletzt interpretierten GOSUB-Anweisung folgt.
  • Seite 232: Goto-Anweisung

    5-24 C64-Modus BASIC 2.0 GOTO-Anweisung Format: GOTO Zeilennummer Zweck: Verzweigt unbedingt aus der normalen Programmabfol- ge zu einer spezifizierten Zeilennummer. Bemerkungen: Wenn Zeilennummer eine Zeile mit einer ausführbaren Anweisung kennzeichnet, werden diese und die darauf folgenden Zeilen abgearbeitet. Existiert die spezifizierte Zeile nicht, so wird die Fehler- meldung UNDEF'D STATEMENT ERROR angezeigt.
  • Seite 233 C64-Modus BASIC 2.0 5-25 IF-Anweisung Format: IF Ausdruck THEN Anweisungen IF Ausdruck GOTO Zeilennummer Zweck: Erlaubt die Verzweigung zu anderen Anweisungen oder in verschiedene Programmteile, abhängig vom logischen Wahrheitgehalt eines numerischen Ausdrucks. Bemerkungen: Wenn das Ergebnis von Ausdruck logisch "wahr", also von Null verschieden ist, wird die T H E N - oder GOTO- Klausel ausgeführt.
  • Seite 234 C64-Modus BASIC 2.0 5-26 blen auf den berechneten Wert 1.0 folgendermassen verfahren werden: IF A B S ( A - 1 . 0 ) < = 1 . 0 E - 6 THEN . . . Dieser Test liefert das Ergebnis "wahr", wenn der Wert von A gleich 1.0 mit einem relativen Fehler von weniger als 1.06E-6 ist.
  • Seite 235: Input-Anweisung

    5-27 C64-Modus BASIC 2.0 INPUT-Anweisung Format: INPUT [" Text';] Variablenliste Zweck: Erlaubt Dateneingabe über die Tastatur während der Programmausführung. Die Dateneingabe wird durch Drücken der RETURN-Taste beendet. Bemerkungen: Trifft der Interpreter auf eine INPUT-Anweisung, so wird der Programmlauf angehalten, ein Fragezeichen wird auf dem Bildschirm ausgegeben, um zu zeigen, daß...
  • Seite 236 C64-Modus BASIC 2.0 5-28 Wird bei INPUT der falsche Datentyp eingegeben, also z.B. Zeichenkettendaten anstatt numerischer, so wird die Meldung ?REDO FROM START ausgegeben und es wird auf die richtige Eingabe gewartet. Im Direkt-Modus ist INPUT nicht erlaubt. In diesem Fall wird die ILLEGAL DIRECT-Fehlermeldung ausgegeben.
  • Seite 237 5-29 C64-Modus BASIC 2.0 INPUT#-Anweisung Format: INPUT#/o£f Dateinr,Variablenliste Zweck: Liest Daten aus einer sequentiellen oder Relativ-Datei und weist sie Programmvariablen zu. Bemerkungen: log Dateinr ist die Nummer, unter der die Datei zur Eingabe mit der OPEN-Anweisung (s. dort) eröffnet wurde. Variablenliste enthält die Namen der Variablen, denen die Datenelemente aus der Datei zugewiesen werden.
  • Seite 238 5-30 C64-Modus BASIC 2.0 INPUT # kann maximal 80 Zeichen lesen. Beispiel: i e R E M L E S E N OON K A S S E T T E B I S F I L E E N D E 20 O P E N 3 , 1, 8 3 8 I N P U T B 3 , A $ 4 8 I F S T A T U S A N D 6 4 T H E N F E = 1...
  • Seite 239: Int-Funktion

    C64-Modus BASIC 2.0 5-31 INT-Funktion Format: i'=INT(x) Zweck: Liefert die größte ganze Zahl, die kleiner oder gleich x i s t . Beispiel: P R I N T I N T C 9 9 . 8 9 ) , I N T C - I Z . I D REfiDY.
  • Seite 240 Wenn n größer als die Länge von x$ ist, wird die gesamte Zeichenkette geliefert. Wenn n Null ist, dann wird eine Zeichenkette der Länge 0 (Leerstring) überge- ben. Beispiel: 10 H$="COMMODORE BUEROMRSCHI NEN" 20 B$=LEFT$Cfi$,9) 30 PRINT B$ COMMODORE REfiDY.
  • Seite 241: Len-Funktion

    C64-Modus BASIC 2.0 5-33 LEN-Funktion Format: v=LEH{x$) Zweck: Übergibt die Anzahl der Zeichen in der Zeichenkette x$. Es werden alle Zeichen, also auch die nicht abdruckba- ren und Leerzeichen, gezählt. Beispiel: I B x$= " C O M M O D O R E B R A U N S C H W E I G " + C H R $ ( 135 20 P R I N T L E N C X $ ) R U N R E A D Y .
  • Seite 242: Let-Anweisung

    5-34 C64-Modus BASIC 2.0 LET-Anweisung Format: [LET]Variable=Ausdruck Zweck: Weist den Wert eines Ausdrucks einer Variablen zu. Bemerkungen: Das Wort LET ist wahlfrei, d.h. bei der Zuweisung eines Wertes zu einer Variablen genügt das Gleichheitszei- chen. Beispiel: I I B L E T D = I Z : L E T E = I 2 » 2 1 2 8 L E T F = 1 4 4 / 1 2 1 3 8 L E T S U M = D + E + F ist gleichbedeutend mit:...
  • Seite 243 C64-Modus BASIC 2.0 5-35 LIST-Befehl Format: LIST [Zeile1][-[Zeile2]] Zweck: Listet einen Teil oder ein ganzes Programm auf das gegenwärtig aktivierte Ausgabegerät (Bildschirm, Druk- ker, Kassette, Floppy Disk). Bemerkungen: Der BASIC-Interpreter wird nach der Ausführung von LIST immer in den Direkt-Modus gesetzt. Mit LIST ohne Zeilennummernangabe wird das ganze Programm beginnend mit der kleinsten Zeilennummer gelistet.
  • Seite 244 C64-Modus BASIC 2.0 5-36 LOAD-Befehl Format: LOAD "Dateiname"[, Geräteadresse] [Verschieb] Zweck: Lädt eine Programmdatei von einem externen Speicher- gerät (Kassette, Floppy Disk) in den Speicher des Rech- ners. Bemerkungen: Dateiname ist der Name, unter dem das Programm mit der SAVE-Anweisung (s. dort) auf ein externes Spei- chergerät gespeichert wurde.
  • Seite 245 C64-Modus BASIC 2.0 5-37 Wenn LOAD innerhalb eines Programms ausgeführt wird, wird das dadurch geladene BASIC-Programm so- fort gestartet, wobei alle eröffneten Dateien offen blei- ben. Dadurch können mehrere Programme oder Pro- grammsegmente miteinander verkettet werden. Gesetz- te Variablen bleiben durch die Verkettung erhalten. Das nachgeladene Programm darf jedoch höchstens genau s o groß...
  • Seite 246: Log-Funktion

    C64-Modus BASIC 2.0 5-38 LOG-Funktion Format: v=LOG(x) Zweck: Liefert den natürlichen Logarithmus von muß größer als Null sein; andernfalls wird eine ILLEGAL QUANTITY- Fehlermeldung ausgegeben. Beispiel: p p I N T L O G c 4 5 / 7 ) 1 .
  • Seite 247 C64-Modus BASIC 2.0 5-39 MID$-Funktion v$= MID$(jr^/j[ /77]) Format: Zweck: Liefert eine Teilzeichenkette von x$ mit m Zeichen, beginnend beim n-ten Zeichen von x$. n und m müssen im Bereich zwischen 0 und 255 liegen. Wird m weggelas- sen, oder sind rechts vom iT-ten Zeichen weniger als m Zeichen in x$ vorhanden, so werden ab dem n-ten Zeichen alle rechten Zeichen von x$ geliefert.
  • Seite 248 5-40 C64-Modus BASIC 2.0 NEW-Befehl Format: Zweck: Löscht das gegenwärtig im Speicher befindliche Pro- gramm sowie alle Variablen. Bemerkungen: NEW wird gewöhnlich im Direkt-Modus eingegeben, ehe ein neues Programm ediert wird. Der Interpreter setzt den Rechner auf jeden Fall nach Ausführen von NEW in den Direkt-Modus.
  • Seite 249 5-41 C64-Modus BASIC 2.0 ON.. .GOSUB- und ON.. .GOTO-Anweisungen ON Ausdruck GOTO Zeilennummernliste Format: ON Ausdruck G O S U B Zeilennummernliste Zweck: Verzweigt zu einer von mehreren spezifizierten Zeilen- nummern in Abhängigkeit des Wertes, der von Ausdruck geliefert wird. Bemerkungen: Der Wert von Ausdruck bestimmt, zu welcher Zeilen-...
  • Seite 250: Open-Anweisung

    C64-Modus BASIC 2.0 5-42 OPEN-Anweisung Format: O P E N log Dateinr[,Geräteadresse [, Sekundäradr[," Dateiname"]]] Zweck: Eröffnet eine Ein/Ausgabe-Datei bzw. einen E i n - / Ausgabekanal für ein Gerät. Bemerkungen: log Dateinr muß zwischen 1 und 255 liegen. Falls keine Geräteadresse angegeben wird, wird 1 ange- nommen (Kassettenstation).
  • Seite 251 C64-Modus BASIC 2.0 5-43 Geräteadressen größer als 3 beziehen sich auf Geräte, die an die IEEE488-Schnittstelle (seriell oder parallel) angeschlossen werden können (z.B. 4 für Drucker, 8 für Floppy Disk). Beispiel: i a REM E R O E F F N E N E I N E S K A S S E T T E N - 1 5 R E M S C H R E I B F I L E S 2 8 REM A N S C H L I E S S E N D E R B A N D E N D E M A R K E 3 8 O P E N 6 , 1 , Z, "...
  • Seite 252: Peek-Funktion

    C64-Modus BASIC 2.0 5-44 PEEK-Funktion Format: v= P E E K ( n ) Zweck: Liefert den Inhalt der Speicherzelle mit der Adresse n als ganzzahligen Wert zwischen 0 und 255. Für n müssen ganzzahlige Werte zwischen 0 und 65535 angegeben nehmen.
  • Seite 253: Poke-Anweisung

    I B REM A L L E T A S T E N H A B E N W I E D E R H O L F U N K T . 20 P O K E 650, 128...
  • Seite 254: Pos-Funktion

    C64-Modus BASIC 2.0 5-46 POS-Funktion V= POS(/7) Format: Zweck: Liefert die gegenwärtige Spaltenposition des Cursors auf dem Bildschirm. Die äußerst linke Spalte ist die Position 0. n ist ein Blindargument, das aus formalen Gründen jedoch angegeben werden muß. Beispiel: I F P 0 S ( B ) > 2 8 T H E N PKINTCHK$C 13)
  • Seite 255 C64-Modus BASIC 2.0 5-47 PRINT- und PRINT#-Anweisungen Format: PRINT[#/ofir Dateinr,][Liste von Ausdr] Zweck: Gibt Daten an den Bildschirm oder über einen spezifi- zierten Ausgabekanal aus. Bemerkungen: Wird Liste von Ausdr nicht angegeben, so wird eine Leerzeile gedruckt. Andernfalls werden die Ausdrücke ausgewertet und deren Werte an das in der zugehörigen OPEN-Anweisung unter /oflr Oate/nAspezifizierte Ausga- begerät oder die Ausgabedatei ausgegeben.
  • Seite 256 5-48 C64-Modus BASIC 2.0 Gedruckten Zahlenwerten folgt immer eine Leerstelle. Positiven Zahlenwerten ist eine Leerstelle, negativen ein Minus-Zeichen vorangestellt. Jede Zahl zwischen 0 und 0.01 wird in der wissenschaftlichen Exponentialdarstel- lung (s. Kapitel 2.4) wiedergegeben. Die PRINT-Anwei- sung (nicht PRINT # ) kann durch ? abgekürzt werden. Beispiel 1 : I B X=5 20 PHINTX+5, X-5, X*(-5),X|5...
  • Seite 257 C64-Modus BASIC 2.0 5-49 Bei diesem Beispiel wurde in Zeile 40 für die PRINT-An- weisung das ?-Zeichen gewählt. Die Semikolons bewir- ken das Drucken der einzelnen Werte unmittelbar hinter- einander getrennt durch 2 Leerstellen (jede Zahl wird von einer Leerstelle gefolgt, positiven Zahlen ist eine Leerstelle vorangestellt).
  • Seite 258: Read-Anweisung

    5-50 C64-Modus BASIC 2.0 READ-Anweisung Format: READ Variablenliste Zweck: Liest Daten aus einer DATA-Anweisung (s. dort) und weist sie Variablen zu. Bemerkungen: Eine READ-Anweisung kann nur in Verbindung mit einer DATA-Anweisung benutzt werden. Jeder Variablen aus der Liste, die eine numerische oder eine Zeichenketten-Variable sein kann, wird immer nur ein Wert aus der DATA-Anweisung zugewiesen.
  • Seite 259 C64-Modus BASIC 2.0 5-51 Beispiel 1 : s a FOR I = I T O I B 9 0 R E A D AC I ) 1 B B N E X T I I B D A T A 3 . B S , 5 . 1 9 , 3 . 1 2 , 3 . 9 8 , 4 . 2 4 1 2 B D A T A 5 .
  • Seite 260 C64-Modus BASIC 2.0 5-52 R EM-Anweisung Format: REM [Kommentar] Zweck: Mit dieser Anweisung können erläuternde Kommentare in ein Programm eingefügt werden. Bemerkungen: REM-Anweisungen werden nicht ausgeführt, jedoch exakt wiedergegeben, wenn das Programm gelistet wird. Von einer G O T O - oder GOSUB-Anweisung kann zu einer REM-Anweisung verzweigt werden.
  • Seite 261 5-53 C64-Modus BASIC 2.0 RESTORE-Anweisung Format: R E S T O R E Zweck: Setzt den Lesezeiger der READ-Anweisung auf den Anfang der ersten DATA-Anweisung im Programm. Bemerkungen: Nach der Ausführung einer RESTORE-Anweisung greift die nächste READ-Anweisung auf das erste Datenele- ment in der ersten DATA-Anweisung im Programm zu.
  • Seite 262 C64-Modus BASIC 2.0 5-54 RIGHT$-Funktion Format: R\GWX$(x$,ri) Zweck: Liefert die rechten n Zeichen aus der Zeichenkette x$. Wenn n gleich oder größer der Länge von x$ ist, wird x$ übergeben. Für n= 0 wird eine Zeichenkette der Länge 0 (Leerstring) übergeben, n muß einen Wert zwischen 0 und 255 haben.
  • Seite 263: Rnd-Funktion

    5-55 C64-Modus BASIC 2.0 RND-Funktion v=RND(x) Format: Zweck: Liefert eine Zufallszahl zwischen 0 und 1, die, abhängig vom Argument x, unterschiedlich erzeugt wird; x>0: Es wird immer der nächste Wert einer Zufalls- zahlenreihe, die durch einen numerischen Al- gorithmus im BASIC-Interpreter berechnet wird, geliefert.
  • Seite 264 C64-Modus BASIC 2.0 5-56 RUN-Befehl Format: RUN [Zeilennummer] Zweck: Startet das gegenwärtig im Programmspeicher befindli- che BASIC-Programm. Bemerkungen: Wird Zeilennummer angegeben, so wird das Programm mit der dadurch bezeichneten Zeile gestartet. Andern- falls beginnt die Ausführung mit der niedrigsten Zeilen- nummer.
  • Seite 265 C64-Modus BASIC 2.0 5-57 SAVE-Befehl Format: SAVE ["Dateiname"[,Geräteadr [,Option]]] Zweck: Speichert eine BASIC-Programmdatei auf einem spezifi- zierten Ausgabegerät. Bemerkungen: Wenn Geräteadr nicht angegeben wird, so wird das im Programmspeicher befindliche BASIC-Programm auf Kassette (Geräteadr. 1) gespeichert. Als Option kann bei Speicherung auf Kassette eine Null (keine Bandendemarke nach der Programmdatei) oder ein von Null verschiedener Wert (Bandendemarke nach der Programmdatei) angegeben werden.
  • Seite 266: Sgn-Funktion

    C64-Modus BASIC 2.0 5-58 SGN-Funktion Format: v=SGN{x) Liefert das Vorzeichen des Argumentes x in folgender Zweck: codierter Form: x>0 liefert 1 liefert 0 x<0 l i e f e r t - 1 Beispiel: ON SGN(H)+2 GOTO 100,200,30B Das Programmm verzweigt nach Zeile 100, wenn der Wert von A negativ ist, nach Zeile 200, wenn er Null ist und nach Zeile 300, wenn er positiv ist.
  • Seite 267 5-59 C64-Modus BASIC 2.0 SIN-Funktion Format: i/=SIN(x) Zweck: Liefert den Sinus von x i m Bogenmaß. Die Berechnung von SIN(x) erfolgt binär in Gleitkommadarstellung. Zwi- schen SIN(x) undCOS(x) besteht der Zusammenhang COS(x) = SIN(x+3.14159265/2) Beispiel: PRINTSINC1.5) .997494987 REHDY.
  • Seite 268: Spc-Funktion

    C64-Modus BASIC 2.0 5-60 SPC-Funktion Format: SPC(/j) Zweck: Liefert n Leerstellen. SPC kann nur in Verbindung mit der PRINT- oder P R I N T # - A n w e i s u n g verwendet werden, n muß Werte zwischen 0 und 255 einnehmen. B e i s p i e l : PKINT"HIER"SPCC15)"DA"...
  • Seite 269: Sqr-Funktion

    5-61 C64-Modus BASIC 2.0 SQR-Funktion v=SQR{x) Format: Liefert die Quadratwurzel von x. x muß größer oder Zweck: gleich Null sein. Beispiel: 18 FOR X= 10 TO 25 STEP 5 20 PRINT X, SQRCX) 30 NEXT 3.16227766 3.87298335 4.47213595 READY.
  • Seite 270 Block fataler Fehler Prüfsum- menfehler Dateiende Datenende -128 Bandende Gerät nicht angeschlossen Beispiel: I B O P F N 6 , i , z , " M f i s T E K J i i E " G F T 8 6 , A $...
  • Seite 271: Stop-Anweisung

    C64-ModusBASiC2.0 5-63 STOP-Anweisung Format: STOP Zweck: Bricht ein laufendes Programm ab und setzt den Inter- preter in den Direkt-Modus. Bemerkungen: STOP-Anweisungen dürfen an beliebiger Stelle in einem Programm stehen. Wird ein STOP ausgeführt, so meldet der Interpreter dies mit: BREAK IN nnnnn wobei nnnnn die Zeilennummer ist, bei der das Pro- gramm abgebrochen wurde.
  • Seite 272 C64-Modus BASIC 2.0 5-64 STR$-Funktion Format: y # = S T R $ ( x ) Zweck: Liefert die Zeichenkettendarstellung von x. Beispiel: 10 I N P U T " G I B B I T T E E I N E Z H H L E I N " ; N 20 P R I N T N j L E N ( S T R $ C N ) } 30 GOTO 10 R U N...
  • Seite 273: Sys-Anweisung

    C64-Modus BASIC 2.0 5-65 SYS-Anweisung Format: S Y S Ausdruck[,Parameterliste] Zweck: übergibt die Programmsteuerung an ein Unterprogramm in Maschinensprache, das bei einer spezifizierten Adres- se beginnt (s.a. USR-Funktion). Bemerkungen: Der Wert von Ausdruck muß eine ganze Zahl zwischen 0 und 65535 sein. Er bezeichnet die Adresse im Pro- grammspeicher des C128, bei der das Unterprogramm in Maschinensprache beginnt.
  • Seite 274: Tab-Funktion

    5-66 C64-Modus BASIC 2.0 TAB-Funktion Format: TAB(/>) Zweck: Tabuliert über n Spalten in der aktuellen Bildschirmzeile. Steht der Cursor vor der Ausführung von TAB(n) bereits rechts von der n-ten Spalte, so werden n Spalten der Folgezeile übertabuliert. TAB bezieht sich immer auf den Zeilenanfang in der äußerst linken Bildschirmspalte (Spalte 0).
  • Seite 275: Tan-Funktion

    C64-Modus BASIC 2.0 5-67 TAN-Funktion Format: v=TAN(x) Zweck: Liefert den Tangens von x im Bogenmaß. Die Berech- nung von TAN(x) erfolgt binär im Gleitkommaformat. Beispiel: P K I N T T A N ( 5 ) / Z -1.6982575 REfiDY.
  • Seite 276 5-68 C64-Modus BASIC 2.0 TIME-Systemvariable Format: i^=TIME v=T\ Zweck: Liefert den momentanen Stand der internen System-Uhr, die alle 1/60 Sekunde fortgeschrieben wird. Die System- Uhr ist keine Echtzeit-Uhr. Sie wird beim Einschalten des Rechners initialisiert. Beispiel: P J U N T T T 154788 BEflDV.
  • Seite 277 C64-Modus BASIC 2.0 5-69 TIME$-Anweisung TIME$-Systemvariable Format: T\ME$ = x$ als Anweisung Tl$ = x £ als Systemvariable v £ = T I M E $ K $ = T I $ Zweck: Als Anweisung wird die Systemuhr auf eine gewünschte Zeit in Form einer 6-Byte-Zeichenkette in der A n o r d - nung: hhmmss (Stunden Minuten Sekunden)
  • Seite 278: Usr-Funktion

    5-70 C64-Modus BASIC 2.0 USR-Funktion Format: y = U S R ( x ) Zweck: Verzweigt einem Maschinensprache-Unterpro- gramm, dessen Startadresse vorher in die Zellen mit der Adresse 85 und 86 der zero page (Organisationsspei- cher des Interpreters, s. Anhang H) gespeichert werden muß.
  • Seite 279: Val-Funktion

    C64-Modus BASIC 2.0 5-71 VAL-Funktion Format: v=VAL(x$) Zweck: Liefert den numerischen Wert einer Zeichenkette, die H — aus Ziffern besteht. Außerdem sind die Zeichen . und E an den richtigen Stelle erlaubt. Beginnt die Zei- chenkette mit einem anderen Zeichen als einer Ziffer, einem Punkt, Plus- oder...
  • Seite 280 5-72 C64-Modus BASIC 2.0 VERIFY-Befehl Format: V E R I F Y ["Dateiname"[,Geräteadr]] [, Verschieb] Zweck: Vergleicht ein gegenwärtig im Programmspeicher be- findliches Programm mit einem auf einem spezifizierten Ausgabegerät gespeicherten Programm byteweise und meldet ggfs. Unterschiede. Bemerkungen: Geräteadr ist mit 1 (Kassettenstation) voreingestellt. Wird Dateiname nicht angegeben (nur bei Kassettenfiles erlaubt), so erfolgt der Vergleich mit dem ersten auf Kassette gefundenen Programm.
  • Seite 281: Wait-An Weisung

    C64-Modus BASIC 2.0 5-73 WAIT-An Weisung Format: WAIT Adresse,n[,m] Zweck: Hält die Programmausführung an, bis eine angegebene Speicherzelle des C128 ein spezifiziertes Bitmuster an- genommen hat. Bemerkungen: Zur Prüfung des spezifizierten Bitmusters wird zwischen dem Inhalt der durch Adresse gekennzeichneten Spei- cherzelle und dem Ganzzahl-Ausdruck m eine Exklusi- v-ODER-Verknüpfung gebildet.
  • Seite 282: Farben Und Grafik Im C64-Modus

    C64-Modus Farben und grafische Effekte 5-74 5.3 Farben und Grafik im C64-Modus Wir haben nun schon den BASIC-Sprachumfang des C64-Modus kennenge- lernt. Eine der hervorragenden Eigenschaften dieses Modus besteht jedoch auch in der Möglichkeit, Farbgrafiken zu erstellen. Ein einfaches Beispiele ist das im Laufe dieses Abschnittes beschriebene Springballprogramm.
  • Seite 283 CTRL-Taste und der Zifferntasten können Sie folgende Farbkombinatio- nen erzeugen: schwarz weiß grün violett dunkelgrün blau gelb Durch Verwendung der Commodore-Taste ganz unten links auf der Tastatur zusammen mit den Zifferntasten erhalten Sie folgende Farben: hellbraun braun hellrot dunkelgrau grau hellgrün hellblau...
  • Seite 284 Farbvariationen) ausgegeben. Spielen Sie nun einige Möglichkeiten durch, um mit der Farbsteuerung vertraut zu werden und vergessen Sie nicht, daß Sie noch weitere Farbmög- lichkeiten im Zusammenhang mit der Commodore-Taste haben. • Anmerkung: Nach Beendigung eines Programms, bei dem Sie die Farbsteuerung angewandt haben, bleibt der C128 in dem Modus, den Sie zuletzt eingeschaltet haben.
  • Seite 285 C64-Modus Farben und grafische Effekte 5-77 F a r b - C H R $ - C o d e s Einige Farben können über die CHR$-Funktion direkt angesprochen wer- den. Sie haben dieselbe Wirkung wie das Drücken der CTRL-Taste und der entsprechenden Ziffern- Taste.
  • Seite 286 5-78 C64-Modus Farben und grafische Effekte Farbgebung durch P E E K und P O K E Nun lernen Sie eine Methode kennen, wie Sie sich im C64-Modus um- schauen und Informationen an die von Ihnen ausgewählte Stelle bringen können, um den Computer zu steuern. Die Inhalte einiger Speicherzellen haben eine ganz bestimmte Bedeutung.
  • Seite 287 C64-Modus Farben und grafische Effekte 5-79 Nach dem Drücken der RETURN-Taste erhalten Sie einen gelben Bild- schirm, da der Wert 7 die Farbe gelb definiert und wir sie in die Speicherzelle, die die Bildschirmhintergrundfarbe wählt, gepoked haben. Versuchen Sie dasselbe mit anderen Zahlenwerten. Sie können jede Zahl zwischen 0 und 255 verwenden;...
  • Seite 288 C64-Modus Farben und grafische Effekte 5-80 Bildschirmgrafik Bisher haben Sie den Cursor nur durch PRINT-Befehle gesteuert. Damit läßt sich jeder Punkt des Bildschirms erreichen; diese Methode ist jedoch im allgemeinen sehr langsam und verbraucht wertvollen Speicher- platz. Im C64-Modus gibt es aber auch Speicherplätze, die die Bildschirmfarben bestimmen.
  • Seite 289 5-81 C64-Modus Farben und grafische Effekte Die Speicherzelle 1024 entspricht dabei der linken oberen Ecke des Bild- schirms und die Speicherzelle 2023 der unteren rechten Ecke. Um eine bestimmte Position auf dem Bildschirm zu erreichen, können Sie nach folgendem Rechenschema vorgehen: Bildschirmadresse = 1024 + Spalte + 40 * Zeile Nehmen wir nun an, Sie wollen einen Ball etwa in der Mitte des Bildschirms erscheinen lassen (Spalte 20, Zeile 12).
  • Seite 290 C64-Modus Farben und grafische Effekte 5-82 Der Ball wird daraufhin rot. Da Sie außer der Information über das Zeichen in einer bestimmten Bildschirmposition auch die Farbinformationen brauchen, gehörten zu jeder Position auf dem Bildschirm zwei Speicherstellen. Der Farbspeicher beginnt bei der Adresse 55296 (linke obere Ecke) und hat natürlich, wie der Bildschirmspeicher, 1000 Speicherzellen.
  • Seite 291 90 I F X=8 OR X=39THEN DX= -DX 1BBY=V*DY 110 IF Y=0 OR Y=24 THEN DY= —DY 128 GOTO 58 Nachdem in Zeile 10 der Bildschirm gelöscht wurde, wird in Zeile 20 die Hintergrundfarbe schwarz und die Rahmenfarbe gelb gewählt.
  • Seite 292: Sprite-Grafikimc64-Modus

    C64-Modus Farben und grafische Effekte 5-84 Die Zeile 120 bewirkt einen Sprung in die Zeile 50, wo der Ball in die neu berechnete Position auf dem Bildschirm ausgegeben wird. Wenn Sie in Zeile 50 die 81 gegen eine andere Zahl austauschen, so können Sie den Ball durch ein beliebiges Zeichen ersetzen.
  • Seite 293 5-85 C64-Modus Farben und grafische Effekte Aber Sprites haben noch mehr Vorteile. Ihre Farbe kann geändert werden, der Zusammenstoß zweier Sprites kann auf einfache Weise registriert werden. Ein Sprite kann sich vor oder hinter einem anderen vorbeibewegen und man kann mit einem Befehl seine Größe ändern. All diesen Vorteilen stehen nur geringe Schwierigkeiten beim Programmie- ren gegenüber.
  • Seite 294 Schreiben Sie zu diesem Zweck an den oberen Rand des 24 x 21-Punktefel- des dreimal hintereinander die Zahlenreihe 128, 64, 32, 16, 8, 4, 2, 1. Die Zeilen des Feldes nummerieren Sie von 1 - 21 durch. Legen Sie sich nun für jede Zeile drei Wertetabellen an, wie sie nachfolgend aufgeführt sind.
  • Seite 295 GRUPPE GRUPPE GRUPPE 128 32 8 2 128 32 8 2 128 32 8 2 64 16 4 Ii 64 16 4 ll 64 16 4 SPALTE Nehmen wir als Beispiel die Zeile 1 des oben dargestellten Sprites. Die ersten 8 Felder sind leer, d.h.
  • Seite 296 C64-Modus Farben und grafische Effekte 5-88 Als weiteres Beispiel die Daten der zweiten Reihe unseres Sprites: + 64 + 32 1 2 8 + 6 4 = 1 9 2 Für die Reihe zwei erhalten wir also die DATA-Zeile: D A T A 1, 2 5 5 , 1 9 2 Um mit der beschriebenen Methode vertraut zu werden, sollten Sie nun die restlichen 19 DATA-Zeilen selbst berechnen.
  • Seite 297 5-89 C64-Modus Farben und grafische Effekte 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 Sprites 1 - 7 Höchstes Bit-X-Koordinate 1 = Sprite aktiviert; 0 = Sprite inaktiiviert Sprite wird in Y-Richtung vergrößert Sprite wird in X-Richtung vergrößert 39-46...
  • Seite 298 Jedes Sprite ist im Register 21 vertreten. So entspricht der Wert 4 dem Sprite 2. Sprite 7 entspicht dem Wert 128 und beide zusammen 132 (128 + 4). Wenn Sie die Sprites 2 und 7 einschalten wollten, müßten Sie Poke V + 21,132 eingeben.
  • Seite 299 C64-Modus Farben und grafische Effekte 5-91 Durch diese Schleife werden 63 Datenbytes in den 13. Block gelesen, der bei der Adresse 832 (13*64) beginnt. 68 FOR X = 8 TO 288 78 POKE U+4, X 88 POKE U+5, X Da die Register 4 und 5 die x - und y-Koordinaten des Sprites 2 enthalten, bewirkt dieser Programmteil (natürlich zusammen mit NEXT), daß...
  • Seite 300 5-92 C64-Modus Farben und grafische Effekte Ein weiteres Sprite (Nr. 3) ist auf dem Bildschirm erschienen, da wir in das Register 21 eine 12 gepoked haben. Die 12 schaltet die Sprites 2 und 3 ein. Durch die Zeilen 75 und 85 wird das 3. Sprite auf dem Bildschirm bewegt. Die Speicherstellen V + 6 und V + 7 enthalten die x - und y-Koordinaten des Objekts.
  • Seite 301 C64-Modus Farben und grafische Effekte 5-93 Man benutzt zu diesem Zweck das Register Nr. 16, das das höchstwertige Bit (auch MSB = Most Sigfificant Bit) enthält. Das ist folgendermaßen zu verstehen: Wird das n-te Bit dieses Registers gesetzt, so befindet sich das n-te Sprite in der Bildschirmposition, die einem X-Wert von mehr als 255 entspricht.
  • Seite 302: Musik Im C64-Modus

    5-94 C64-Modus Musik und Geräusch-Effekte In Zeile 60 wird das MSB für Sprite Nr. 2 gesetzt. In Zeile 70 beginnt die Schleife, die das Sprite zum rechten Bildschirmrand wandern läßt. Die Zeile 95 ist ebenfalls wichtig, da hier das MSB wieder ausschaltet wird, so daß...
  • Seite 303 C64-Modus Musik und Geräusch-Effekte 5-95 Die Tonhöhe wird physikalisch durch die Frequenz bestimmt. Die Frequenz wird im SID durch einen Parameter gespeichert, der Werte zwischen 0 und 65535 annehmen kann. Sie haben im vorherigen Abschnitt gelernt, daß man so große Zahlen nicht in einer Speicherzelle abspeichern kann. Wir müssen daher den Frequenzparameter in ein höherwertiges und ein niederwertiges Byte zerlegen.
  • Seite 304 5-96 C64-Modus Musik und Geräusch-Effekte zusätzlich müssen Sie noch einen Parameter zwischen 0 und 4095 für das sog. Tastverhältnis (das Verhältnis zwischen Ein und Aus Ihres Rechtecks) festlegen. Beide Bytes dieses Parameters kommen in die Register 2 und 3: TL = S l + 2 (Tastverhältnis Lo-Byte) TH = Sl + 3 (Tastverhältnis Hi-Byte) Der Anschlag und der Verlauf des Tones werden in den Registern 5 und 6 eingestellt.
  • Seite 305 5-97 C64-Modus Musik und Geräusch-Effekte Stimmen gleichzeitig verwenden, unser Beispiel benutzt jedoch nur die Stimme Nr. 1. 18SI=542 72 F L = S I FH=SI+l.W=SI+4. H=SI+5 H=SI+6 L=SI+ 24 20 PÖKEL, 15 30 POKE n, 16+9 48 POKE H, 4*16+4 50 POKF FH, 29 POKE F L, 6 9 60 POKEW.
  • Seite 306 80 POKEW, 17 90 FORT=1TO180 : NEXT 180 POKEW, 0 118F0RT=1T05B NEXT 128 GOTO40 138 M l « 17, 103, 19, 137, 21, 237,23, 59,26,20,29,69, 32,219,34,207 140 D H T H - 1 , - 1 Wenn Sie Töne erzeugen wollen, die einem Cembalo ähneln, müssen Sie die Zeile 80 in folgender Weise abändern:...
  • Seite 307 C64-Modus Musik und Geräusch-Effekte 5-99 Wichtige Klangeinstellungen 1. Lautstärke: Die Wahl der Lautstärke gilt für alle drei Tongeneratoren. Das in Frage kommende Register hat die Adresse 54296. Sie erhalten die max. Lautstärke, wenn Sie in dieses Register einen Wert von 15 poken: P O K E L , 1 5 Oder P O K E 5 4 2 9 6 , 1 5 Um die Tongeneratoren auszuschalten, schreiben Sie eine 0 in das Register: P O K E L , 0 oder P O K E 5 4 2 9 6 , a...
  • Seite 308 C64-Modus Musik und Geräusch-Effekte 5-100 Die Einstellung der Wellenform Register Inhalt RAUSCHEN RECHTECK SÄGEZAHN DREIECK STIMME Wir haben diese Tabelle in Zeile 30 unseres Tonleiterprogramms angewen- det. Mit POKE s i + 4 , 1 7 haben wir das Dreieck als Wellenform gewählt, die wir dann zur Änderung des Klangcharakters durch einen Sägezahn ersetzt haben, indem wir die 17 in eine 33 umgeändert haben.
  • Seite 309 80 POKETH, 8 POKF T I , 0 90 POKE FH, 14 POKE FL, 162 18B POKF W, 65 118 FOR T= 1T n 2B8 NFXT 128 POKFW = 8 130 GOTO 40 Zeile 50 - stellt die Lautstärke ein.
  • Seite 310 5-102 C64-Modus Musik und Geräusch-Effekte Wir benutzen die Stimme 1 zur Erzeugung eines Tons mit kurzem Anschlag und kurzem Abschwellen nach Erreichen der Maximallautstärke (Zeile 60). Was dabei herauskommt, klingt etwa wie ein Ball, der in einer Blechtonne h i n - und herspringt. Um einen anderen Klang zu erzeugen, ändern wir diese Zeile.
  • Seite 311 C64-Modus Musik und Geräusch-Effekte 5-103 Da den Stimmen unterschiedliche Adressen zugeordnet sind (s. folgende Tabelle), können Sie die drei Stimmen im C64-Modus unabhängig voneinan- der programmieren und auf diese Weise z.B. dreistimmige Musikstücke erstellen. Adressen der drei Tongeneratoren und POKE-Werte (Hi-Byte und Lo-Byte) der Töne der 5.
  • Seite 312 5 - 1 0 4 C64-Modus Musik und Geräusch-Effekte Es handelt sich hierbei um Hi-Byte und Lo-Byte der Frequenz und die Tondauer. Die Tondauer wird durch eine Schleife bestimmt, die von 1 bis zu einem bestimmten Wert läuft. Dieser Wert steht in den DATA-Zeilen jeweils an 3.
  • Seite 313 C64-Modus Musik und Geräusch-Effekte 5-105 oder sie sollen den Benutzer eines Programms informieren oder warnen (z.B., daß er gerade im Begriff ist, eine Diskette zu löschen). Hier einige Vorschläge, die zum Experimentieren anregen sollen: • Ändern Sie die Lautstärke während der Ton erklingt, so können Sie damit z.
  • Seite 314 5-106 C64-Modus Musik und Geräusch-Effekte Beispiele für Klangeffekte 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 im C64-Modus stecken. 10 RFM PUPPF 2 0 E l = 542i'2 BL=SI :IH=SI+1.
  • Seite 315: Floppy-Disk-Betrieb Mit Basic

    Floppy-Disk-Betrieb mit BASIC 6.1 Formatierung von Disketten 6.2 Speicherung von Programmen 6.3 Verwendung von Jokerzeichen in Dateinamen 6.4 Laden von Programmen 6.5 Diskettenverzeichnisse 6.6 Öffnen und Schließen von Dateien 6.7 Schreib-/Lesezeiger in Relativdateien 6.8 Löschen von Diskettendateien 6.9 Weitere Verwaltungsfunktionen...
  • Seite 317 Floppy-Disk-Betrieb mit BASIC 6. Floppy-Disk-Betrieb mit BASIC Der C128 erlaubt den Anschluß von einem oder mehreren Floppy-Disk-Lauf- werken zur Speicherung größerer Datenmengen. Einzelheiten zur Bedie- nung dieser Geräte sind den Floppy-Disk-Handbüchern zu entnehmen. In diesem Abschnitt wird vielmehr der Floppy-Disk-Betrieb im C 6 4 - und C128-Modus unter Kontrolle des BASIC 2 .
  • Seite 318 Floppy-Disk-Betrieb mit BASIC wobei für Name eine bis zu 16 Zeichen lange Zeichenkette eingekleidet in Anführungszeichen (") und für Kennung eine 2 Zeichen lange Zeichen- kette eingegeben wird (siehe dazu Beschreibung des HEADER-Befehls in Kapitel 4.6). Für Laufw wird 0 oder 1 angegeben. •...
  • Seite 319: Speicherung Von Programmen

    Floppy-Disk-Betrieb mit BASIC • Für die Fehlerabfrage im C64-Modus muß folgendes kleine BASIC-Pro- gramm geschrieben werden: 1BOPEN 15,8, 15: I NPUT815, FC, FM$, FS, FS 28 PRI NT FC; FM$FS; FT: CLOSE15 6.2 Speicherung von Programmen Speicherung im C128-Modus Im C128-Modus lassen sich sowohl BASIC-als auch in anderen Speicherbe- reichen abgelegte Maschinensprache-Programme speichern.
  • Seite 320: Verwendung Von Joker-Zeichen In Dateinamen

    Floppy-Disk-Betrieb mit BASIC Speicherung im C64-Modus Im C64-Modus lassen sich nur BASIC-Programme auf Floppy-Disk spei- chern. Dazu wird folgender Befehl eingegeben: S f l U E " 0 : N a m e " , B Für Name wird eine bis zu 16 Zeichen lange Zeichenkette angegeben. Die erfolgreiche Speicherung wird angezeigt, wenn BASIC sich mit READY.
  • Seite 321 Floppy-Disk-Betrieb mit BASIC ? steht für ein beliebiges Zeichen an dieser Stelle: DLORD " D m E ? " Lädt das erste Programm aus dem Diskettenverzeichnis, dessen Name 5 Zeichen lang ist und das mit DATE beginnt. D L O R D " P R O ? ? . » " L ä d t das erste Programm aus dem Diskettenverzeichnis, dessen Name mit PRO beginnt, dann 2 beliebige Zeichen und auf der 6 Position einen Punkt enthält.
  • Seite 322 Floppy-Disk-Betrieb mit BASIC Laden im C64-Modus Auch im C64-Modus lassen sich sowohl BASIC-Programme als auch Maschinenspracheprogramme laden. Bei BASIC-Programmen wird folgender Befehl eingegeben: LOAD Harne, Für Name wird eine bis zu 16 Zeichen lange Zeichenkette, eingekleidet in Anführungsstrichen ("), angegeben. Die erfolgreiche Speicherung wird angezeigt, wenn BASIC sich mit READY.
  • Seite 323 Floppy-Disk-Betrieb mit BASIC Die folgenden Einträge sind Dateieinträge. Sie enthalten links die Dateigröße in Sektoren oder Blöcken (1 Sektor enthält maximal 254 Datenbytes), dann den Dateinamen in Anführungszeichen und schließlich den Dateityp. Das DOS unterscheidet 4 Dateitypen, nämlich: PRG für Programmdateien; SEQ für sequentielle Datendateien;...
  • Seite 324 D I R E C T O R Y " * = R " zeigt alle Relativdateieinträge an. Enthält das Verzeichnis mehr Einträge, als auf einen Bildschirm passen, so kann die Anzeige mit Hilfe der Commodore-Taste verlangsamt oder mit der NO SCROLL-Taste angehalten werden. Diskettenverzeichnisanzeigen im C64-Modus Im C64-Modus muß...
  • Seite 325: Öffnen Und Schließen Von Dateien

    Floppy-Disk-Betrieb mit BASIC Sollen nur Auszüge des Verzeichnisses ausgedruckt werden, so ist die oben beim C64-Modus beschriebene Form des LOAD-Befehls zu verwenden. 6.6 Öffnen und Schließen von Dateien Um Daten in BASIC mit der P R I N T # - A n w e i s u n g (s. dort in Kapitel 5.2) in eine Datei auf Diskette zu schreiben oder mit der G E T # - o d e r I N P U T # - A n - weisung (s.
  • Seite 326 Floppy-Disk-Betrieb mit BASIC 6-10 Öffnet die existierende, se- OPPEND »3, "NAMEN" quentielle Datei NAME ( S E Q - oder USR-Typ) unter der logi- schen Filenummer 3 und posi- tioniert den Schreibzeiger des DOS auf das Dateiende, damit weitere Daten angefügt werden können.
  • Seite 327: Schreib-/Lesezeiger In Relativdateien Positionieren

    Floppy-Disk-Betrieb mit BASIC 6-11 Wird eine geöffnete Datei in einem Programm nicht mehr benötigt, so muß sie vor dem Programmende oder einem Diskettenwechsel wieder geschlos- sen werden. Bei sequentiellen Ausgabedateien (SEQ- oder USR-Typ) ist dies unerläßlich, da sonst auf die gespeicherten Daten nicht mehr zugegrif- fen werden kann.
  • Seite 328 6-12 Floppy-Disk-Betrieb mit BASIC Wie oben. Zusätzlich wird auf R E C O R D « 2 , 2 8 8 , 5 0 das 50. Byte des 200. Satzes positioniert. Während der Positionierung brennt die rote oder grüne Aktivitätslampe der Floppy-Disk.
  • Seite 329: Löschen Von Diskettendateien

    Floppy-Disk-Betrieb mit BASIC 6-13 Der Schreib-/Lesezeiger P R I N T « I S , " P " + C H R $ ( 2 + 9 6 ) + Datei, unter logi- C H R $ C 1 9 4 ) + C H R $ C 1 ) + schen Filenummer 2 eröffnet C H R $ C 5 0 ) wurde, wird auf die 50.
  • Seite 330: Diskettenbelegung Überprüfen Und Bereinigen

    Floppy-Disk-Betrieb mit BASIC 6-14 Datei löschen im C64-Modus Es wird folgende Anweisungsfolge eingegeben: OPEN 15,8,15,"S0:A/3men":CLOSE 15 Für Namen wird eine bis zu 37 Byte lange Zeichenkette eingegeben, die den Namen oder die Namen, durch Komma getrennt, der zu löschenden Datei(en) enthält. Joker-Zeichen (s. Kapitel 7.3) sind dabei zum Löschen mehrerer Dateien mit gleichen Namensteilen erlaubt.
  • Seite 331: Datei Kopieren

    Floppy-Disk-Betrieb mit BASIC 6-15 Diskette bereinigen im C64-Modus Es wird folgende Anweisungsfolge eingegeben: OPEN 15,8,15,"V0":CLOSE 15 6.9.2 Datei kopieren Eine Datei kann innerhalb eines Laufwerkes in eine andere Datei mit anderem Namen kopiert werden. Bei Verwendung von Doppellaufwerken kann die Datei unter dem selben Namen auf die Diskette im anderen Laufwerk kopiert werden (s.
  • Seite 332: Datei Umbenennen

    Floppy-Disk-Betrieb mit BASIC 6-16 Dateiverkettung im C128-Modus Es wird folgender Befehl eingegeben: CONCAT Namel TO Name2 Für Namel (Quelldatei) und Name2 (Zieldatei) werden bis zu 16 Zeichen lange Zeichenketten, eingekleidet in Anführungszeichen ("), angegeben. Durch diesen Befehl wird an die existierende Datei Name2d\e Datei Namel angehängt.
  • Seite 333: Diskette Duplizieren

    6-17 Floppy-Disk-Betrieb mit BASIC Während der Umbenennung brennt die rote oder grüne Aktivitätslampe der Floppy-Disk. Blinkt sie, so hat DOS beim Umbenennen einen Fehler diagno- stiziert, der mit der Anweisung PRINT DS$ angezeigt werden kann. Datei umbenennen im C64-Modus Es wird folgende Anweisungsfolge eingegeben: OPEN 15,8,15,"R0:A/a/ne/7eu= OiNamealf Für Nameneu und Namealt werden bis zu 16 Zeichen lange Zeichenketten angegeben.
  • Seite 334 6-18 Floppy-Disk-Betrieb mit BASIC zur Bestätigung aufgefordert. Anwortet er mit Y oder Y E S , so wird der Dupliziervorgang gestartet, bei jeder anderen Antwort abgebrochen. Jeder beim Dupliziervorgang vom DOS diagnostizierte Fehler wird mit der Bildschirmmeldung BRD DISK angezeigt. Der tatsächliche Fehler kann dann mit PRINT DS$ angezeigt werden.
  • Seite 335 Fehlermeldungen 8.1 BASIC-Fehlermeldungen 8.2 Floppy-Disk-Fehlermeldungen...
  • Seite 337 Fehlermeldungen (BASIC2.0und7.0) 8. Fehlermeldungen 8.1 BASIC-Fehlermeldungen In diesem Abschnitt werden die Fehlermeldungen der BASIC-Interpreter 2.0 und 7.0 und ihre Fehlercodes (nur BASIC 7.0) aufgeführt. Zur schnelleren Orientierung werden zunächst die Fehlermeldungen in alphabetischer Rei- henfolge angegeben, anschließend nach Fehlercodes geordnet. Jeder Fehlermeldung wird bei der Anzeige stets das Wort ERROR (Fehler) hinzugefügt.
  • Seite 338 Fehlermeldungen (BASIC 2.0 und 7.0) BASIC-Fehlermeldungen (Fortsetzung) Code Meldung und Bedeutung CAN'T R E S U M E (RESUME ohne TRAP) Der Interpreter findet eine RESUME-Anweisung, ohne daß eine TRAP-Anweisung zur Fehler- verzweigung vorhanden ist. DEVICE NOT P R E S E N T (Gerät nicht angeschlossen) Ein E i n - / Ausgabe-Gerät wird angesprochen, das entweder ausgeschaltet oder nicht angeschlossen ist, oder die Pufferzuweisung für Kasset-...
  • Seite 339 Fehlermeldungen (BASIC 2.0 und 7.0) BASIC-Fehlermeldungen (Fortsetzung) Code Meldung und Bedeutung I L L E G A L DIRECT (unerlaubter Eingabemodus) Es wird versucht, mit INPUT oder GET im Direktmodus Daten einzulesen. I L L E G A L QUANTITY (unerlaubter Wert) Ein numerisches Argu- ment einer Funktion oder ein numerischer Parameter für einen Befehl oder eine Anweisung liegt außerhalb des zulässigen Berei-...
  • Seite 340 RETURN-Anweisung, zu der keine vorausgegangene GOSUB-Anweisung existiert. STRING TOO LONG (zu lange Zeichenkette) Zeichenketten dürfen beim Commodore-BASIC nur maximal 255 Zeichen lang sein. SYNTAX (Syntaxfehler) Ein BASIC-Befehl, eine BASIC-Anweisung, -Funktion oder -Systemvariable ist falsch geschrieben oder es fehlt eine Klammer, ein Komma o.a.
  • Seite 341 Fehlermeldungen (BASIC2.0 und 7.0) BASIC-Fehlermeldungen (Fortsetzung) Code Meldung und Bedeutung UNDEFINED FUNCTION (nichtdefinierte Funktion) Eine anwender- spezifische Funktion wird verwendet, die vorher nicht mit DEF FN definiert wurde. VERFIY (Programm-Verifizierungsfehler) Hilfe VERIFY-Befehls ausgeführter Vergleich des Programms im Haupt- speicher mit dem entsprechenden Programm auf Kassette oder Diskette ist nicht erfolgreich.
  • Seite 342 Fehlermeldungen (DOS) 8.2 Floppy-Disk-Fehlermeldungen In diesem Abschnitt werden die Fehlermeldungen des Floppy-Disk-Be- triebssystems (DOS) aufgeführt und beschrieben. Der Text der Fehlermel- dung sowie der Fehlercode können im C128-Modus mit Hilfe der der Systemvariablen DS$ und DS abgefragt und angezeigt werden. Da der Fehlercode generell Bestandteil des Fehlertextes ist, wird auf eine alphabeti- sche Anordnung verzichtet.
  • Seite 343 Fehlermeldungen (DOS) Floppy-Disk-Fehlermeldungen (Fortsetzung) Code Meldung und Bedeutung READ E R R O R , t t , s s (Lesefehler) Das DOS findet beim Lesen des angegebenen Sektors Fehler in einem oder mehreren Datenbytes durch eine ungültige Prüfsumme. Diese Meldung kann auch auf Erdungsprobleme bei der Floppy-Disk deuten.
  • Seite 344 Fehlermeldungen (DOS) Floppy-Disk-Fehlermeldungen (Fortsetzung) Code Meldung und Bedeutung SYNTAX ERROR,00,00 (Syntaxfehler) Der an die Floppy-Disk über- tragene Befehl ist länger als 58 Zeichen. SYNTAX ERROR,00,00 (Syntaxfehler) In einer OPEN- oder DOPEN-Anweisung oder bei einem S A V E - oder DSAVE-Befehl wurden verbotenerweise die Jokerzeichen ? oder * (s.
  • Seite 345 Fehlermeldungen (DOS) Floppy-Disk-Fehlermeldungen (Fortsetzung) Code Meldung und Bedeutung FILE NOT OPEN,f/,ss (Datei nicht göffnet) Es wird versucht, auf eine nicht geöffnete Datei zuzugreifen. Gelegentlich wird diese Meldung nicht generiert und der Dateizugriff vielmehr von DOS einfach ignoriert. FILE NOT FOUND,tt,ss (Datei nicht gefunden) Auf der angegebe- nen Diskette findet das DOS die angegebene Datei nicht.
  • Seite 346 Fehlermeldungen (DOS) 8-10 Floppy-Disk-Fehlermeldungen (Fortsetzung) Code Meldung und Bedeutung DIRECTORY E R R O R , t t , s s (Fehler im Diskettenverzeichnis) Die auf der angegebenen Diskette gespeicherte BAM (block availability map = Verzeichnis der belegten und freien Sektoren) stimmt nicht mit der vom DOS im Arbeitspeicher für diese Diskette verwalteten BAM überein.
  • Seite 347 Anhang A: Zeichencode-Tabellen, Steuercodes...
  • Seite 349 Zeichencode-Tabellen A - 1 ASCII UND CHR$ CODES Dieser Anhang zeigt für alle x, welches Zeichen auf dem Bildschirm erscheint, w e n n Sie PRINT CHR$(x) senden. Umgekehrt können Sie auch das Ergebnis für PRINT ASC(„x") e n t n e h m e n , wobei „ x " der zugehörigen gedrückten Taste entspricht.
  • Seite 350 Zeichencode-Tabellen A-; -2 Z e i c h e n C H R $ C H R $ Z e i c h e n C H R $ Zeichen C H R $ Z e i c h e n / "...
  • Seite 351 Zeichencode-Tabellen A - 3 Z e i c h e n C H R $ Zeichen C H R $ Z e i c h e n C H R $ Z e i c h e n C H R $ •...
  • Seite 352 A - 4 BILDSCHIRM C O D E S (40-Spalten-Bildschirm) Die folgende Tabelle listet alle in den Zeichensätzen des COMMODORE 128 vorkommenden Zeichen auf. Sie zeigt, welche Zahl in den Bildschirmspei- cher (Adressen 1024-2023) gePOKEd werden muß, um ein bestimmtes Zeichen zu erhalten.
  • Seite 353 A - 5 Z e i c h e n c o d e - T a b e l l e n BILDSCHIRM CODES Satz 1 Satz 2 Satz 1 Satz 2 Satz 1 Satz 2 Poke Poke Poke £...
  • Seite 354 • 1 2 6 1 2 7 • • Die C o d e s 128-255 ergeben die invers dargestellten Zeichen der C o d e s 0-127. An den freien Stellen in Spalte 2 stimmen die beiden Sätze überein.
  • Seite 355 A - 7 Zeichencode-Tabellen COMMODORE 128 WELLE ASCII Funktion Grafik groß/klein Grafik groß/klein SPACE SPACE SPACE SPACE Unterstreichen ein (80 Zeichen-Bildschirm) '• Farbe weiß & & & & Klingelzeichen Tabulator Zeilenvorschub blockiert Umschaltung Text/ Grafik-Zeichensatz entriegelt Umschaltung Text/ Grafik-Zeichensatz RETURN (Wagenrücklauf und...
  • Seite 356 Zeichencode-Tabellen A - 8 ASCII ASCII •ez D e z H e x Grafik groß/klein Grafik groß/klein groß/klein Grafik Grafik groß/klein • • • • • • • • • 1 18 • • • • L T J • £...
  • Seite 357 Zeichencode-Tabellen A - 9 ASCII Funktion Grafik groß/klein Grafik groß/klein SHIFT-Space SHIFT-Space orange Unterstreichen aus • • • HELP • • • • • • • • £ £ SHIFT RETURN Umschaltung auf Grafik-Zeichensatz • • Blinken aus Schwarz Cursor hoch ä...
  • Seite 358 Zeichencode-Tabellen A - 1 0 ASCII ASCII groß/klein Grafik groß/klein Grafik Grafik groß/klein • • • L T D • • • C T J • • • • • • • • • • • • • • • •...
  • Seite 359 Anhang B: Speicherorganisation B.1.1 Einführung B.1.2 C128-Speicherorganisation B.1.3 C128-ROM-Organisation B.1.4 RAM-Speicherorganisation B.1.5 Anordnung von MMU und Ein-/Ausgabebereich im Speicher Beschreibung der MMU-Register B.2.1 Das Konfigurations-Register B.2.2 Der Präkonfigurations-Mechanismus B.2.3 Das Modus-Konfigurations-Register B.2.4 Das RAM-Konfigurations-Register B.2.5 Die Speicherseiten-Zeiger B.2.6 Das System-Versions-Register...
  • Seite 361 Speicherverwaltung (MMU) Anhang B: Die Speicherverwaltung mit der MMU B.1.1 Einführung Die Speicher-Verwaltungseinheit (Memory Management Unit - MMU) wurde entworfen, um die komplexen Vorgänge im C128-System zu kontollieren. Sie wickelt alle C 6 4 - Operationen im C64-Modus ab, ist also absolut kompatibel zum C64.
  • Seite 362 Speicherverwaltung (MMU) ü L_J_ ü _...
  • Seite 363 Die ROMs im C64-Modus entsprechen denen des Commodore 64. Das interne BASIC und das Betriebssystem des C128 versorgen den C64-Modus mit dem normalen Commodore 64 Betriebssystem. Dazu wird ein Teil des ROMs, der im C128-Modus verwendet wird, dupliziert. Im C128-Modus stehen bis zu 48 kBytes Systemsoftware zur Verfügung.
  • Seite 364 B.1.4 RAM-Speicherorganisation Wir beziehen uns nochmals auf das Bild B.1 (C128-Speicherorganisation). Für der vorhandenen RAM-Bereich von 128 kBytes werden dynamische Speicherbausteine verwendet. Dieser RAM-Bereich wird in zwei Speicher- bänke von je 64 kBytes eingeteilt (64 kBytes ist der maximale Adreßraum, den die 8502- und Z80-Prozessoren adressieren können).
  • Seite 365 Speicherverwaltung (MMU) (Stack, Zero Page, Bildschirm) zu behalten. Für diesen Zweck ist die MMU in der Lage, einen gemeinsamen RAM-Bereich bereitzustellen. Dieser RAM-Bereich kann z u - oder abgeschaltet werden. Er ist in seiner Größe veränderbar und kann programmiert am Anfang oder am Ende einer Bank angelegt werden.
  • Seite 366 Speicherverwaltung (MMU) Der VIC-Baustein kann durch 2 Bits im MMU-RAM-Konfigurations-Register adessiert werden. Das Register steuert die Adressleitungen A16 und A17 und erlaubt damit, den VIC-Baustein beliebig innerhalb eines 256-kBytes- Bereiches zu plazieren. Anmerkung: Die Address-Enable-Control (AEC)-Leitung wird von der MMU benutzt, um den VIC-Adreßraum zu steuern, d.h., wenn AEC = 0 ist, kann der VIC-Baustein adressiert werden.
  • Seite 367 Speicherverwaltung (MMU) Adressen der I/O Bausteine $DFFF 1 / 0 2 :DFOO 1/01 $ D E 0 0 C I A # 2 $DD00 C I A # 1 $ D C 0 0 Färb RAM ( R e s e r v i e r t ) $ D 7 0 0 8 5 6 3 ( ,0 Zeichen Video Chip)
  • Seite 368 Speicherverwaltung (MMU) B.2.1 Das Konfigurations-Register Das Konfigurations-Register (CR) kontrolliert R O M - , R A M - und I/O-Konfi- guration im C128-System. Es liegt sowohl bei Adresse $D500 des I/O-Berei- ches als auch bei Adresse $FF00. Im C128-Modus kontrolliert das Bit 0, ob der I/O-Bereich ($D500-$D5FF) eingeschaltet oder ob der ROM/RAM-Bereich zugeschaltet ist.
  • Seite 369 Speicherverwaltung (MMU) MMU Register Belegung . L O A D C O N F I G U R A T I O N $ F F 0 4 LCRD L O A D C O N F I G U R A T I O N $ F F 0 3 LCRC LCRC...
  • Seite 370 Speicherverwaltung (MMU) B-10...
  • Seite 371 Speicherverwaltung (MMU) B-11 Das Bit 1 kontrolliert im C128-Modus den Prozessorzugriff zum niederwerti- gen ROM-Bereich (s. Bild B.1), der im Adreßraum $4000-$7FFF angelegt ist. Ist das Bit 1, so erscheint der Bereich als RAM und wird mit CAS-Signalen versorgt. Wenn Bit 1 = 0 ist, wird System-ROM in diesen Bereich einge- schaltet.
  • Seite 372 Die beiden letzten Bits (Bit 6 und 7) kontrollieren die RAM-Bank-Auswahl. Ihre Funktion hängt von der MMU-Version ab. Für die vorliegende Version als 128-kBytes-System ist nur das Bit 6 signifikant. Ist das Bit 6 auf 0, ist die Bank 0 eingeschaltet, indem das CASO-Signal freigegeben wird. Ist Bit 6 = 1, wird das CAS1-Signal freigegeben und schaltet damit die Bank 1 ein.
  • Seite 373 Speicherverwaltung (MMU) B-13 B.2.3 Das Modus-Konfigurations-Register Der augenblicklich eingeschaltete Rechner-Modus wird durch das Modus- Konfigurations-Register (MCR) bestimmt. Es kontrolliert, welcher Prozes- sor (8502 oder Z80) das System steuert, welcher der Systemmodi (C128 oder C64) gerade eingeschaltet ist und steuert außerdem verschiedene andere Systembesonderheiten.
  • Seite 374 B-14 Speicherverwaltung (MMU) wird auch wieder gelesen, wenn nicht von außen das Port auf 0 gezogen wird. In diesem Fall wird dieses Bit als 0 gelesen. Wird die externe Quelle entfernt, zeigt das Bit seinen vorherigen Zustand an. Die Bits 4 und 5 sind das G A M E - und EXROMIN-Eingabebit. Sie zeigen, ob die Steckmodulleitungen GAME oder EXROMIN, die im C64-Modus benutzt werden, belegt sind.
  • Seite 375 Speicherverwaltung (MMU) B-15 deklariert wurde, werden die R A M - B a n k - B i t s des Konfigurations-Registers grundsätzlich überlesen, da die ausgewählte RAM-Bank für nicht-gemein- same Bereiche genutzt wird (die R O M - und I/O-Bereich-Bits des Konfigura- tionsregisters (s.
  • Seite 376 S p e i c h e r v e r w a l t u n g ( M M U ) B - 1 6 d i e A C E - L e i t u n g e b e n f a l l s n a c h 0 z i e h t . J e d e r D M A v e r a n l a ß t d i e M M U , in d i e V I C - K o n f i g u r a t i o n u m z u s c h a l t e n .
  • Seite 377 Speicherverwaltung (MMU) B-17 B.2.6 Das System-Versions-Register Das letzte Register, das hier erwähnt werden soll, ist das Versions-Register (s. Bild B.4). Es ist im I/O-Bereich bei $D50B angelegt. Dieses Register ist ein Leseregister (read only). Es enthält in dem niederwertigen Halbbyte eine Information über die aktuelle MMU-Version.
  • Seite 379 Anhang C : Maschinensprache-Monitor...
  • Seite 381 C128-Maschinensprache-Monitor Anhang C: Maschinensprache-Monitor Für Anwender, die den Speicher des C128 direkt verwalten wollen oder mit Maschinensprache-Programmen arbeiten, enthält das Betriebssystem des C128 einen Monitor, durch den der Benutzer im C128-Modus jederzeit wichtige Informationen über den inneren Zustand des Computers erhalten kann.
  • Seite 382 C128-Maschinensprache-Monitor Der Inhalt des Indexregisters X des Mikroprozessors 8502. Der Inhalt des Indexregisters Y des Mikroprozessors 8502. Der Inhalt des Stapelzeigers (stack pointer) des Mikroprozessors 8502. Der Maschinensprache-Monitor kennt eine ganze Reihe komfortabler Be- fehle, mit dem der Speicher des C128 bearbeitet werden kann, Speicherbe- reiche von/auf Kassette oder Diskette geladen/gespeichert und Maschinen- sprache-Programme assembliert, disassembliert, ausgeführt und getestet werden können.
  • Seite 383 C128-Maschinensprache-Monitor Befehl Bedeutung Identisch mit dem A-Befehl. Modifiziert die Prozessoregister. Zeigt den Floppy-Disk-Status an oder überträgt einen Floppy-Disk-Befehl. Für die Syntax der Beschreibungen der einzelnen Befehle gelten dieselben Regeln, die in Kapitel 4.5 für die BASIC-Befehle zusammengestellt wurden. Adressen können grundsätzlich in jedem Zahlensystem angegeben werden (s.u.).
  • Seite 384 C128-Maschinensprache-Monitor A Assemblieren Format: A Adresse Befehl [Operand] Zweck: Assembliert den angebenen Maschinensprache-Befehl bei der angegebenen Adresse. Adresse Hexadezimale Speicheradresse, bei der der Befehl assembliert werden soll. Befehl Mnemonische Schreibweise des Maschinen- sprache-Befehls (s. Programmierhandbuch für den Mi- kroprozessor 6502). Operand Definiert, falls erforderlich, den Adressie- rungsmodus und muß...
  • Seite 385 C128-Maschinensprache-Monitor C Speichervergleich Format: C Adressel Adresse2 Adresse3 Zweck: Vergleicht zwei Speicherbereiche und zeigt die Adres- sen der unterschiedlichen Speicherbytes an. Adressel Hexadezimale Speicheradresse, die den A n - fang des Bereiches definiert, gegen den verglichen wird. Adresse2 Hexadezimale Speicheradresse, die das Ende des Bereiches definiert, gegen den verglichen wird.
  • Seite 386 C128-Maschinensprache-Monitor D Disassemblieren D [Adressel] [Adresse2] Format: Disassembliert einen Bereich mit Maschinenspracheco- Zweck: de und zeigt dafür die mnemonischen Befehle zusam- men mit dem Code an. Adressel Hexadezimale Speicheradresse, die den A n - fang des Bereiches definiert, der disassembliert werden soll.
  • Seite 387: F Speicherbreich Füllen

    C128-Maschinensprache~Monitor F Speicherbreich füllen Format: F Adressel Adresse2 Byte Zweck: Füllt einen Speicherbereich mit einem angegeben Byte. Adressel Hexadezimale Speicheradresse, die den A n - fang des Bereiches definiert, der gefüllt werden soll. Adresse! Hexadezimale Speicheradresse, die Ende des Bereiches definiert, der gefüllt werden soll. Byte Eine e i n - oder zweistellige Hexadezimalzahl, die den Code angibt, mit dem der Bereich gefüllt werden...
  • Seite 388 C128-Maschinensprache-Monitor Programm starten Format: [Adresse] Startet ein Maschinenspracheprogramm bei einer ange- Zweck: gebenen Adresse. Adresse Hexadezimale Speicheradresse, bei der das Programm gestartet werden soll. Wird Adresse wegge- lassen, so beginnt die Programmausführung beim aktu- ellen Stand des Programmzählers, der mit dem R-Befehl (s.
  • Seite 389: H Speicherbereich Durchsuchen

    C128-Maschinensprache-Monitor Speicherbereich durchsuchen Format: H Adressel Adresse2 Daten Zweck: Durchsucht einen Speicherbereich nach einer angege- benen Bytefolge. Adressel Hexadezimale Speicheradresse, die den A n - fang des Bereiches definiert, der durchsucht werden soll. Adresse! Speicheradresse, die das Ende des Berei- ches definiert, der durchsucht werden soll.
  • Seite 390 C128-Maschinensprache-Monitor C-10 Programmdatei laden L Dateiname [, Geräteadr] [,Ladeadr] Format: Zweck: Lädt eine Programmdatei von Kassette oder Diskette in den Speicher. Dateiname Eine Zeichenkette von maximal 16 Zeichen Länge, eingeschlossen in Anführungszeichen ("), die den Dateinamen angibt. Geräteadr Die Geräteadresse des externen Datenträ- gers, von dem geladen werden soll.
  • Seite 391 C128-Maschinensprache-Monitor C-11 M Speicherinhalt anzeigen Format: M Adressel [Adresse2] Zweck: Zeigt den Inhalt eines wählbaren Speicherbereiches in einer wählbaren Speicherbank auf dem Bildschirm an. Adressel Hexadezimale Speicheradresse, die den A n - fang des Bereiches definiert, der angezeigt werden soll. Wird Adressel weggelassen, so wird der Speicherbe- reich ab dem aktuellen Programmzähler in der Speicher-...
  • Seite 392 C128-Maschinensprache-Monitor C-12 Eingabefehler oder der Versuch, ROM-Bereiche zu mo- difizieren führen zur Anzeige eines Fragezeichens (?) an der aktuellen Cursor-Position. Es werden immer vollständige Bildschirmzeilen ange- zeigt. Beispiel: . M F 4 5 4 0 F 4 5 4 7 >...
  • Seite 393: R Prozessorregister Anzeigen Und Ändern

    C128-Maschinensprache-Monitor C-13 R Prozessorregister anzeigen und ändern F o r m a t : Z w e c k : Z e i g t d e n a k t u e l l e n I n h a l t s ä m t l i c h e r R e g i s t e r d e s M i k r o p r o z e s s o r s 8 5 0 2 ( P r o g r a m m z ä...
  • Seite 394: S Speicherbereich Sichern

    C128-Maschinensprache-Monitor C-14 Speicherbereich sichern Format: S "[Laufw^Name",Geräteadr, Adressel,Adresse! Zweck: Sichert einen angegebenen Speicherbereich auf Kasset- te oder Diskette als Programmdatei. Laufwerk Wird auf Diskette gespeichert, so muß hier bei Doppellaufwerken unbedingt 0 oder 1 eingegeben werden. Bei Einzellaufwerken kann die Laufwerksanga- be entfallen.
  • Seite 395 C128-Maschinensprache-Monitor C-15 Beispiele: s " S P I E L " , 0 1 , I B B B B , I B S B B Speichert den Adressbereich von $B000 bis $B7FF einschließlich in Speicherbank 1 unter dem Namen SPIEL als Programmdatei auf Kassette.
  • Seite 396: T Speicherbereich Übertragen

    C128-Maschinensprache-Monitor C-16 T Speicherbereich übertragen Format: T Adressel Adresse2 Adresse3 Zweck: Überträgt den Inhalt eines angegebenen Speicherberei- ches in einen anderen Speicherbereich. Adressel Hexadezimale Speicheradresse, die den A n - fang des Bereiches definiert, dessen Inhalt verschoben werden soll. Adresse! Hexadezimale Speicheradresse, die das Ende des Bereiches definiert, dessen Inhalt verschoben...
  • Seite 397: Programmdatei Verifizieren

    C128-Maschinensprache-Monitor C-17 V Programmdatei verifizieren Format: V Dateiname [,Geräteadr] [,Anfadr] Zweck: Vergleicht eine Programmdatei auf Kassette oder Dis- kette mit einem Speicherbereich. Dateiname Eine Zeichenkette von maximal 16 Zeichen Länge, eingeschlossen in Anführungszeichen ("), die den Dateinamen angibt. Geräteadr Die Geräteadresse des externen Datenträ- gers, von dem verglichen werden soll.
  • Seite 398: Rückkehr In Den Basic-Direktmodus

    C128-Maschinensprache-Monitor C-18 X Rückkehr in den BASIC-Direktmodus Format: Zweck: Beendet den Monitorbetrieb und verzweigt zurück in den BASIC-Direktmodus. Beispiel: READY.
  • Seite 399: Speicherinhalte Definieren

    C128-Maschinensprache-Monitor C-19 > Speicherinhalte definieren Format: > Adresse Bytel [Byte2... Byten] Definiert je nach eingestellter Bildschirmbreite die Inhal- Zweck: te von bis zu 8 bzw. 16 aufeinanderfolgenden Speicher- zellen ab einer angegebenen Adresse. Adresse Hexadezimale Speicheradresse, ab der Spei¬ Cherzelleninhalte definiert werden sollen. Bytel...
  • Seite 400: Assemblieren

    C-20 C128-Maschinensprache-Monitor . Assemblieren Dieser Befehl hat dieselbe Wirkung wie der A-Befehl (s. dort).
  • Seite 401: Floppy-Disk-Bedienung

    C128-Maschinensprache-Monitor C-21 ® Floppy-Disk-Bedienung Format: [Geräteadr][,[Floppybefehl\] Zweck: Zeigt den Status der angeschlossenen Floppy-Disk an (nur ® [Geräteadr]) oder überträgt eine angegebene Bedienungszeichenkette an die Floppy-Disk. Geräteadr Ein Wert zwischen 08 und OF für die Geräte- adresse der angeschlossenen Floppy-Disk. Voreinge- stellt ist hier 08.
  • Seite 403 Anhang D: Besonderheiten der DIN-Tastatur...
  • Seite 405 Besonderheiten der Tastatur ü < " CT W "D Ü C Ö O ö m oi|2 'S i> c <? |€ Ü<3...
  • Seite 407 Anhang E: Registerzuordnungen beim SID und VIC...
  • Seite 409 Registerzuordnungen beim SID und VIC K O N T R O L L R E G I S T E R FÜR T O N E R Z E U G U N G Basisadresse des SID: 5 4 2 7 2 = D 4 0 0 D e z H e x...
  • Seite 410: Sprite Register Zuordnung

    Registerzuordnungen beim SID und VIC SPRITE REGISTER ZUORDNUNG Basisadresse VIC = 5 3 2 4 8 = D000 D e z Register # Dez Hex S0X7 S0X6 S0X4 S0X2 S0X5 S0X3 S0X1 SOXO SPRITE OX S0Y7 SOYO SPRITE OY S1X7 S1X0 SPRITE 1 X S1Y7 S1Y0 SPRITE 1 Y...
  • Seite 411 Registerzuordnungen beim SID und VIC Register # Dez Hex VS13 VS12 VS11 CB13 CB12 CB11 CB10 N.C. Speicherbereich für Bildschirm- zeichen LPIRQ RIRQ N.C. N.C. N.C. ISSC ISBC Interupt Request's N.C. N.C. N.C. N.C. MLPI MISSC MISBC MRIRQ Interupt Request MAS KS BSPO Hintergrund BSP7...
  • Seite 412 Der Video-Controller 8563 kann über die Adressen $D600 und $D601 angesprochen werden. Die Übergabe eines Wertes an den Controller (Nur C 128 Betriebsart) geschieht folgendermaßen: Übergabe der Registernummer (0-36) an Adresse $D600 (54784 dez.) und Übergabe des Wertes an Adresse $D601 (54785 dez.) Bsp.: Ändern des Vordergrund-Farbregisters 26...
  • Seite 413 Registerzuordnungen beim SID und VIC 80-Zeichen Video-Controller 8563 Reg. (dez.) Bits Funktion . . . 4 3 2 1 0 Cursor Endadresse 76543210 Startadresse des Bildschirmspeichers (High Byte) 76543210 Startadresse des Bildschirmspeichers (Low Byte) 76543210 Cursor-Position im Bildschirmspeicher (High Byte) 76543210 Cursor Position im Bildschirmspeicher (Low Byte)
  • Seite 414 Registerzuordnungen beim SID und VIC 80-Zeichen Video-Controller 8563 Reg. (dez.) Bits Funktion . . .43210 Anzahl der Bildschirmzeilen, die der Bildschirm nach oben geschoben wird. Der Inhalt dieses Registers sollte zwischen 0 und dem Inhalt des Registers 9 liegen Betriebsart 0: Textdarstellung 1: Bit-Mapped-Darstellung Attribute 0: Attribute abgeschaltet...
  • Seite 415 Registerzuordnungen beim SID und VIC 80-Zeichen Video-Controller 8563 Reg. (dez.) Bits Funktion Adresse des Zeichengenerators (Bits 13-15). Vorher sollte Register 9 gesetzt werden . . .4 ..DRAM-Type (4416/4164) 0: 4416 1: 4164 ...43210 Bildschirmzeilen-zählerfür Unterstreichen 76543210 Anzahl der Block-Write oder Block-Copy Zyk- len.
  • Seite 417 Anhang F: Musiknotentabelle...
  • Seite 419: Werte Für Musik-Noten

    Musiknotentabelle WERTE FÜR MUSIK-NOTEN In diesem A n h a n g finden Sie eine vollständige Liste der Noten, z u g e h ö r i - gen Frequenzen und Frequenzparameter und der Werte, die in die Re- gister FREQ Hl u n d FREQ LO des Klangchips gePOKEt werden müssen, um den gewünschten Ton zu erzeugen.
  • Seite 420 Musiknotentabelle N r . H o t t . - O k t i i * P a r a » e + i - r H i - B . " t e L o - b : - C - 4 2 6 1 .
  • Seite 421 Anhang G: Besonderheiten im C64-Modus (Funkt.-Tasten, Grafik)
  • Seite 423 Besonderheiten im C64-Modus A B F R A G E DER D R E H R E G L E R UND STEUERKNÜPPEL Abfrage der Drehregler (Paddles): Sind die Drehkegler in Port 1 eingesteckt, so werden die Werte, die den Stellungen der Potentiometer entsprechen, in die Adressen 54297 und 54298 eingelesen.
  • Seite 424: B E L E G U N G Der Funktionstasten

    Besonderheiten im C64-Modus B E L E G U N G DER FUNKTIONSTASTEN Die Funktionstasten (f1 bis f8) entsprechen den ASCil-Codes 133 bis 140 (vergl. Liste der ASCII-Codes). Die Abfrage des Tastaturpuffers kann in etwa in Form einer GET-Schleife geschehen, w i e im folgenden Pro- gramm gezeigt w i r d : 1 REM FUNKTIQNSTflSTEN 10 G E T f l $...
  • Seite 425 Anhang H: Organisation der zero page...
  • Seite 427: Speicherbelegung Im C64-Modus

    Organisation der Zero Page Speicherbelegung im C64-Modus ( * = n ü t z l i c h e Adressen) Beschreibung Dezimal 6510 Daten Richtungsregister 0000 6510 Ausgaberegister 0001 nicht benutzt 0002 0003 - 0004 3 - 4 Vektor zur U m r e c h n u n g Float - Fixed 0 0 0 5 - 0006 5 - 6 Vektor zur U m r e c h n u n g Fixed - Float...
  • Seite 428 Organisation der Zero Page Beschreibung Dezimal 003B -• 003C 59 - 60 N u m m e r der vorhergehenden Basic Zeile 003D -• 003E 61 - 62 Zeiger auf Basic Statement für CONT 0 0 3 F - 0040 63 - 64 N u m m e r der aktuellen DATA Zeile 0041 - 0042...
  • Seite 429 Organisation der Zero Page Dezimal Beschreibung 0095 zurückgestelltes Zeichen 0096 EOT von Kassette empfangen (Cassette Sync # ) 0097 Speicher für Register Anzahl offener Files • 0098 Eingabegerät (normal = 0) • 0099 Ausgabe (CMD) Gerät (normal = 3) • 009A Paritätsbyte von Band 009B...
  • Seite 430 Organisation der Zero Page Dezimal Beschreibung OOBF serieller Wortpuffer 00C0 Kassettenmotor Flag 00C1 - 0 0 C 2 1 9 3 - 1 9 4 E/A Startadresse 0 0 C 3 - 0 0 C 4 1 9 5 - 1 9 6 Zeiger auf Vektoradressen des KER- •...
  • Seite 431 B i l d s c h i r m s p e i c h e r Adresse (Page) • 0288 maximale Größe des Tastaturpuffers • 0289 T a s t e n w i e d e r h o l u n g (128=alle • 028A Tasten) Zähler für W i e d e r h o l u n g s g e s c h w i n - •...
  • Seite 432 Organisation der Zero Page Beschreibung Dezimal 7 7 0 - 771 Vector für Basic Warmstart 0302 - 0303 0 3 0 4 - 0305 772 - 773 U m w a n d l u n g von Schlüsselwörtern ir Tokens U m w a n d l u n g der Tokens in Schlüs 0306 - 0307...
  • Seite 433 Organisation der Zero Page C 128 Systemadressen Adresse: Bedeutung Hex. Dez. Label 8502 Datenrichtungs-register D8502 0000 00000 8502 Datenregister 0001 00001 R8502 Monitor und Long-Call/Jump- 0002 00002 BANK Register Register für Befehlszähler High 0003 00003 PC-HI Registerfür Befehlszähler Low 00004...
  • Seite 434 Organisation der Zero Page C 128 Systemadressen Adresse: Bedeutung Dez. Label Hex. TANSGN Flag: Vorzeichen des TAN/Flag 00020 0014 für Gleichheit bei Vergleich Momentanes l/0-Gerät CHANNL 0015 00021 Poke-Adresse 00021 POKER 0015 LINNUM Zeilennummer Integer, oder 0016 00022 2-Byte-Adresse für...
  • Seite 435 Organisation der Zero Page C 128 Systemadressen Adresse: Hex. Dez. Label Bedeutung 0045 00069 INPPTR Vektor: INPUT-Routine 0047 00071 VARNAM Derzeitiger Basic-Variablenname 0049 00073 FDECPT 0049 00073 VARPNT Adresse der aktuellen Variablen 004B 00075 LSTPNT 004B 00075 ANDMSK 004B 00075 FORPNT Variablenzeiger für FOR/NEXT...
  • Seite 436 Organisation der Zero Page H-10 C 128 Systemadressen Adresse: Hex. Dez. Label Bedeutung Vorzeichen des Exponenten, EXPSGN 0062 00098 $80 = negativ Gleitkommaakkumulator # 1, 00099 FAC1 0063 besteht aus dem Exponenten, 4 Bytes für die Mantisse, und einem Vorzeichen-Byte.
  • Seite 437 Organisation der Zero Page H-11 C 128 Systemadressen Adresse: Hex. Dez. Label Bedeutung 007A 00122 DSDESC Deskriptorfür DS$ 007D Obergrenze des Run-Time-Stack 00125 007F 00127 RUNMOD Flag: RUN/DIRECT-Modus 0080 DOS Statuswort, Syntaxcheck 00128 PARSTS 0080 00128 POINT Zeiger bei PRINT USING auf Dezi...
  • Seite 438 Organisation der Zero Page H-12 C 128 Systemadressen Adresse: Bedeutung Dez. Label Hex. Paritätsbyte von Kassette 00155 PRTY 009B DPSW Flag: Byte empfangen 00156 009C Flag: $80 = Direktmodus, 00157 MSGFLG 009D $ 0 0 = Programm Bandfehler/Zeichenpuffer 00158 PTR1 009E Temporärer Speicher...
  • Seite 439 Organisation der Zero Page H-13 C 128 Systemadressen Adresse: Hex. Dez. Label Bedeutung Logische Dateinummer 00B8 00184 Aktuelle Sekundäradresse 00B9 00185 Aktuelle Gerätenummer OOBA 00186 FNADR. Zeiger: Aktueller Dateiname OOBB 00187 RS-232-Parität/Kassette 00189 ROPRTY OOBD temporär Anzahl der zum Lesen/Schreiben...
  • Seite 440 Organisation der Zero Page H-14 C 128 Systemadressen Adresse: Dez. Label Bedeutung Hex. 00214 CRSW RETURN-Input-Flag 00D6 MODE 40/80-Zeichen-Flag $00 = 40- 00D7 00215 $80 = 80-Zeichen Text/Grafik-Flag GRAPHM 00D8 00216 Ram/Rom-Flag für Video-Chip 00D9 00217 CHAREN (40-Zeichen), Bit 2...
  • Seite 441 H-15 Organisation der Zero Page C 128 Systemadressen Die folgenden Adressen beziehen sich auf den gerade aktuellen Bildschirm (40- oder 80-Zeichen) und werden nach Bedarf in einen anderen Speicherbereich ($0A40) kopiert. Damit bleiben die jeweilige Cursorposition, Fensterdefinition u. dgl. auch bei einem Wechsel von 40- auf 80-Zeichen, oder umgekehrt, erhalten.
  • Seite 442 Organisation der Zero Page H-16 C 128 Systemadressen Die folgenden Adressen werden vom MONITOR benutzt Adresse: Hex. Dez. Label Bedeutung 0002 00002 0003 00003 0004 00004 0005 00005 FLGS 0006 00006 0007 00007 0008 00008 0009 00009 00122 TXTPTR 007A...
  • Seite 443 Organisation der Zero Page H-17 C 128 Systemadressen Die folgenden Adressen werden bei PRINT USING benutzt Adresse: Hex. Dez. Label Bedeutung 0123 00291 Zeiger auf Beginn Zeiger auf Ende 0124 00292 0125 00293 DOLR Dollar Flag 0126 00294 Komma Flag FLAG Zähler...
  • Seite 444 Organisation der Zero Page H-18 C 128 Systemadressen Adresse: Hex. Dez. Label Bedeutung Indirekte RAM-Zeiger (Basic) 0300 00768 ERROR Fehler Routine (Fehler in X) 0302 00770 IMAIN Vektor: Basic-Warmstart ICRNCH Token-Umwandlungsroutine 0304 00772 0306 Vektor: Basic-Text listen 00774 IQPLOP IGONE Vektor: Basic-Befehl ausführen...
  • Seite 445 H-19 Organisation der Zero Page C 128 Systemadressen Adresse: Hex. Dez. Label Bedeutung Unterprogramme für indirektes Laden (Aus jeder Bank) 039F 00927 IND-SUB-RAMO Unterprogramm zum Laden aus beliebiger Bank (PCRA und PCRC vorbesetzen) IND-SUB-RAM1 S.o. P C R B u n d P C R D...
  • Seite 446 Organisation der Zero Page H-20 C J 2 8 Systemadressen Adresse: Hex. Dez. Label Bedeutung Zeiger auf Anfang des 02565 MEMSTR. 0A05 verfügbaren Speichers in der System-Bank S.o. Ende MEMSIZ 0A07 02567 Indirekter IRQ-Vektor (Kassette) IRQTMP 0A09 02569 Zeitvergleich bei Kassetten- CASTON OAOB 02571...
  • Seite 447 Organisation der Zero Page H-21 C 128 Systemadressen Adresse: Hex. Dez. Label Bedeutung VIC = 40-Zeichen-Video-Controller, VDC = 80-Zeichen-Video-Controller Ermöglicht Tasten-Wiederholung 0A22 02594 RPTFLG $80 = alle Tasten, $40 = keine Taste, $00 nur Cursortasten/DEL/INST Zähler für Verzögerung bei Tasten-...
  • Seite 448 Organisation der Zero Page H-22 C 128 Systemadressen Adresse: Hex. Dez. Label Bedeutung Bereich für Grafik VWORK 04401 1131 XYPOS 1131 04401 Aktuelle X-Position 04401 XPOS 1131 Aktuelle Y-Position 04403 YPOS 1133 X-Koordinate Ziel 04405 XDEST 1135 Y-Koordinate Ziel YDEST...
  • Seite 449 Organisation der Zero Page H-23 C 128 Systemadressen Adresse: Label Bedeutung Hex. Dez. VDC: Cursormodus: $80 = fest, 0A2B 02603 CURMOD $60 = normal blinkend, $40 = schnell blinkend, $20 = Aus VIC: Text-Basiszeiger 0A2C 02604 VIC: Bit-Map-Basiszeiger 0A2D 02605...
  • Seite 450 Organisation der Zero Page H-24 C 128 Systemadressen Adresse: Hex. Dez. Label Bedeutung Kassettenpuffer und Puffer für 02816 TBUFFR 0B00 BOOT-Sektor RS2331 RS-232 Eingabepuffer 03072 0C00 03328 RS2320 RS-232 Ausgabepuffer 0D00 0E00 03584 Bereich für Sprite-Definitionen ($E00-$FFF) 04440 ROTANG Drehwinkel...
  • Seite 451 Organisation der Zero Page H-25 C 128 Systemadressen Adresse: Hex. Dez. Label Bedeutung Variablen für BOX-Befehl 1150 04432 XCORD1 Punkt 1 X-Koordinate 1152 04434 YCORD1 Punkt 1 Y-Koordinate 1154 04436 BOXANG Drehwinkel 1156 04438 XCOUNT YCOUNT 1158 04440 115A 04442 BXLENG Länge einer Seite...
  • Seite 452 Organisation der Zero Page H-26 C 128 Systemadressen Adresse: Hex. Dez. Label Bedeutung Grafikvariablen allgemein High-Byte einer Character-Room 04456 CHRPAG 1168 Adresse für CHAR-Befehl Registerfür GSHAPE 04457 BITCNT 1169 SCALE-Modus-Flag 04458 SCALEM 116A Flag für doppelte Pixel-Größe 04459 WIDTH 116B Flag für Ausmalen eines...
  • Seite 453 Organisation der Zero Page H-27 C 128 Systemadressen Adresse: Bedeutung Hex. Dez. Label Festlegungen für PRINT USING 1204 04612 PUCHRS 1204 04612 PUFILL Füllzeichen bei PRINT- USING (Standard: Space) 1205 Kommasymbol 04613 PUCOMA Dezimalpunkt-Symbol 1206 04614 PUDOT Währungszeichen 1207 04615...
  • Seite 454 Organisation der Zero Page H-28 C 128 Systemadressen Adresse: Label Bedeutung Dez. Hex. FLTSAV 1234 04660 1238 04664 FLTFLG NIBBLE 1239 04665 TONNUM 123A 04666 123B 04667 TONVAL 123E PARCNT 04670 123F 04671 ATKTAB SUSTAB 1249 04681 WA VT AB...
  • Seite 455 H-29 Organisation der Zero Page C 128 Systemadressen Adresse: Hex. Dez. Label Bedeutung 04775 12A7 TEMP-MIN-LO 12A8 04776 TEMP-MIN-HI TEMP-DIRECTION 12A9 04777 04778 TEMP-STEP-LO 12AA 12AB 04779 TEMP-STEP-HI 12AC 04780 TEMP-FREQ-LO 12AD 04781 TEMP-FREQ-HI 04782 12AE TEMP-PULSE-LO 12AF 04783 TEMP-PULSE-HI...
  • Seite 456 H-30 Organisation der Zero Page C 128 I/O-Systemadressen Adresse: Dez. Label Bedeutung Hex. 53248 VICCHR Character Rom D000 VIC Register 53248 VICREG D000 54272 SIDREG SID Register D400 Register der MMU im I/O-Bereich D500 54528 MMU-LO 80-Zeichen Videochip (VDC) D600...
  • Seite 457 Anhang I: BASIC-Abkürzungen...
  • Seite 459: Abkürzungen Der Basic Schlüsselwörter

    BASIC-Abkürzungen 1 - 1 ABKÜRZUNGEN DER BASIC SCHLÜSSELWÖRTER Damit Sie beim Eintippen Ihrer Programme und Direktkommandos Zeit sparen können, dürfen Sie die meisten Schlüsselwörter im BASIC 2.0 (C64-Modus) abkürzen. Die Abkürzung für PRINT ist das Fragezeichen. 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.
  • Seite 460 BASIC-Abkürzungen wird wird Befehl Abkürzung angezeigt als Befehl Abkürzung angezeigt als p n i n p f f l SHIFT PEEK SPC( 3IMB SHIFT POKE SHIFT P R I N T S T E P SHIFT P R I N T * P [ §G1W S T O P [ SUPff ] 6...
  • Seite 461 BASIC-Abkürzungen Abkürzungen der Basic-Schlüsselwörter (Basic 7.0), die im Basic des C 64 nicht enthalten sind. Befehl Abkürzung APPEND SHIFT AUTO SHIFT BACKUP SHIFT BANK SHIFT BEGIN SHIFT BEND SHIFT BLOAD SHIFT BOOT SHIFT KEINE BSAVE SHIFT BUMP SHIFT CATALOG SHIFT CHAR SHIFT CIRCLE...
  • Seite 462 BASIC-Abkürzungen Abkürzungen der Basic-Schlüsselwörter (Basic 7.0), die im Basic des C 64 nicht enthalten sind. Befehl Abkürzung G 0 6 4 KEINE GRAPHIC SHIFT GSHAPE SHIFT HEADER SHIFT HELP SHIFT HEX$ SHIFT KEINE INSTR SHIFT SHIFT SHIFT LOCATE SHIFT MONITOR SHIFT MOVSPR SHIFT...
  • Seite 463 SHIFT WIDTH SHIFT WINDOW SHIFT SHIFT • Anmerkung: Sollten Sie Basic-Schlüsselwörter der Version 2.0 des C 6 4 im C 128-Modus benutzen, ergeben sich folgende Änderungen: Keine Abkürzungen möglich für: CONT Neue Abkürzungen ergeben sich für: PEEK SHIFT POKE SHIFT...
  • Seite 465 Anhang J : Definition von Tastaturbelegungen...
  • Seite 467 Definition von Tastaturbelegungen Anhang J : Definition von Tastaturbelegungen Wie bereits im Kapitel 4.1 bei der Beschreibung der ALT-Taste erwähnt, kann mit dieser Taste eine anwenderspezifische Tastaturbelegung gewählt wer- den. Die ALT-Taste arbeitet prinzipiell genauso wie die SHIFT-, O - oder CTRL-Taste.
  • Seite 468 Definition von Tastaturbelegungen Tastaturtabelle (Fortsetzung) Taste Code Platz reserviert (muß 1 enthalten)
  • Seite 469 Definition von Tastaturbelegungen Tastaturtabelle (Fortsetzung) Code Platz Taste HOME reserviert (muß 1 enthalten) reserviert (muß 4 enthalten) Leertaste reserviert (muß 2 enthalten) STOP HELP 8 (Zehnertastatur) 5 (Zehnertastatur) 2 (Zehnertastatur) 4 (Zehnertastatur) 7 (Zehnertastatur) 1 (Zehnertastatur) + (Zehnertastatur) - (Zehnertastatur) LINE FEED ENTER (Zehnertastatur) 6 (Zehnertastatur)
  • Seite 470 Definition von Tastaturbelegungen Wenn Sie nur wenige Tastenbelegungen ändern wollen, ist es am einfach- sten, die Originaltabelle, die im ROM liegt, in den RAM-Bereich unterhalb der Adresse $4000 (16384 dezimal) zu kopieren. Dies können Sie z.B. für die ASCIl-Originaltabelle mit Hilfe des T-Befehls des Monitors (s.a. Anhang C) folgendermaßen erreichen: T FFA80 FFAD8 03FA7 Danach ändern Sie entweder mit Hilfe von POKE-Befehlen oder des Moni-...
  • Seite 471 J - 5 Definition von Tastaturbelegungen Nachfolgend finden Sie die Adreßzeiger für alle Tastaturtabellen zusammen- gestellt: Tabelle Adreßzeiger hex Adreßzeiger dez Normaltabelle 33E.33F 830,831 SHIFT-Tabelle 340,341 832,833 C- -Tabelle 342,343 834,835 CTRL-Tabelle 344,345 836,837 ALT-Tabelle 346,347 838,839...
  • Seite 473 Anhang K: Umschreibung transzendenter Funktionen...
  • Seite 475 Umschreibungen transzendenter Funktionen Anhang K: Umschreibung transzendenter Funktionen Einige der trigonometrischen, zyklometrischen und alle Hyperbelfunktionen sind nicht Bestandteil des CBM-BASIC und müssen daher wie folgt berech- net werden: Funktion Umschreibung in CBM-BASIC Logarithmus zur Basis B LOG(X)/LOG(B) Sekans 1/COS(X) Cosekans 1/SIN(X) Cotangens 1/TAN(X)
  • Seite 477 Anhang L: Steckerbelegungen...
  • Seite 479: Steckerbelegung Der Ein-/Ausgabe Anschlüsse

    Steckerbelegungen STECKERBELEGUNG DER EIN-/AUSGABE ANSCHLÜSSE Dieser Anhang soll Ihnen zeigen, wie welches Gerät wo an den C angeschlossen werden kann. 4) Serielle E/A (Disk/Drucker) 1) Steuereingänge für Spiele 2) Modul-Steckplatz 5) Kassette 6) User Port 3) A u d i o / V i d e o Control Port 1 Signal Bern.
  • Seite 480 Steckerbelegungen Belegung d e r Videobuchsen d e s Coaaodore 128 Personal Computer Belegung d e r 4 0 - Z e i c n e n - B u c h s e S i g n a l...
  • Seite 481 Steckerbelegungen Modul-Steckplatz Signal Signal CA10 ROML CA11 I/Ö2 EX ROM CA12 GAME CA13 T 7 Ö T Dot Clock CA15 (j) 2 CR/W TRGF + 5V RESET + 5V ROMH 22 2 1 2 0 1 9 1 8 1 7 1 6 1 5 1 4 1 3 1 2 1 1 1 0 9 8 7 6 5 4 3 2 1 n n n n n n n n n n n n n n r i r m n n n Z Y X W V U T S R P N M L K J H F E D C B A Audio/Video...
  • Seite 482 L - 4 Steckerbelegungen Cassette CASSETTE MOTOR CASSETTE READ CASSETTE WRITE CASSETTE SENSE User Port Bemerkung Signal + 5V MAX. 100 mA RESET CNT1 CNT2 SER. ATN IN MAX. 100 mA 9 VAC MAX. 100 mA 9 VAC FLAG2 9 10 11 12 A B C D E F H J K L M N...
  • Seite 483 Anhang M: Übertragung von BASIC4-Programmen nach BASIC7...
  • Seite 485 148 0PEN2, 8, 4, N2$: GETB2, A$, A$ : S=ST : C L 0 S E 2 : REM T E S T L E S E N 158 I F S = OTHENPRI NT" Z I E L F I L E E X I S T I E R T ! " : PR I NT : GOTO 128 168 OPEN1, 8,3, N8$: OPEN2, 8,4, N2$+", P,W"...
  • Seite 486 Übertragung von BASIC4-Programmen 248 ZZ$=ZZ$+A$: NEXT: GET81, A$:ZZ$=ZZ$+N$:REM NULL AM ZEILENENDE 258 A8=B8: A2 = 02+ N8+Z2: H2=INT( 0 2 / 2 5 6 ) : REM CHAINING MITZAEHLEN 268 FRINT82,CHR$CA2-256*H2);CHR$CH2);ZZ$; :G0T02B8:REM NEUE Z E I L E 9088 FEM CONCAT,DOPEN,DCLOSE,RECORD,HEADER,COLLECT 9810 DATA254819,254813,254015,254018, 241, 243 9820 REM BACKUP,COPY,APPEND,DSAUE;...
  • Seite 487: Bescheinigung Des Herstellers

    BESCHEINIGUNG DES HERSTELLERS Hiermit wird bestätigt, daß der Personal-Computer COMMODORE C 128 in Übereinstimmung mit den Bestimmungen der Amtsblattverfügung Nr. 1046/1984 funk-entstört ist. Der Deutschen Bundespost wurde das Inverkehrbringen die- ses Gerätes angezeigt und die Berechtigung zur Überprüfung der Serie auf Einhaltung der Bestimmungen eingeräumt.
  • Seite 488 Commodore AG, Commodore Büromaschinen GmbH, Commodore Büromaschinen GmbH, Aeschenvorstadt 57, CH-4C10 Basel, Kinskygasse 40-44, A-1232 Wien, Lyoner Str. 38,6000 Frankfurt 71 Tel. (061) 237800,Twx. 64 961 Tel. (02 22) 67 5600, Twx. 111350 Tel. (069) 6638-0, Telefax 6638-159 Telex 4185663 como d Commodore Art.-Nr.: 5 8 0 1 2 8...

Inhaltsverzeichnis