Alles über den VC20

Aus C64-Wiki
Zur Navigation springenZur Suche springen


Alles über den VC20
Cover
Sprache deutsch
Autor(en)
Verlag Commodore
Jahr 1983
ISBN ISBN 3-89133-004-9
Neupreis
Datenträger
Seitenzahl 199
letzte Auflage 1. Auflage
Genre Programmierung
Einsteiger / Fortgeschrittener
Information ArtNr.:580020 ;
Commodore Sachbuchreihe





Einführung[Bearbeiten | Quelltext bearbeiten]

Dieses Handbuch geht davon aus, dass Sie als Anwender des VC20-Computers bereits über einige Grundkenntnisse der Programmiersprache BASIC verfügen und nun die vielfältigen Programmierungsmöglichkeiten des VC20 kennenlernen möchten.

Es handelt sich hierbei um ein vollständig in sich geschlossenes Programmierungshandbuch, das auch für den fortgeschrittenen Programmierer viele Anregungen und Hilfen bietet. Aber auch der Anfänger kann unter Verwendung dieses Handbuches sehr bald Programme schreiben und auf dem VC20 ausführen. VC20-BASIC ist eine leicht zu handhabende Programmiersprache, die die Welt der Farben und Töne in den Betrieb des Computers mit einbezieht.

Inhaltsverzeichnis[Bearbeiten | Quelltext bearbeiten]

1.       Allgemeine Beschreibung                                        1

1.1      Einführung                                                     1

1.2      Das VC-20-System                                               1 
1.2.1    Eigenschaften                                                  1
1.2.1.1  Farbe und Ton                                                  2
1.2.1.2  Spezielle Schnittstellen                                       2
1.2.1.3  Speichererweiterung und Einsteckprogramme                      3

2.       Kommunikation mit dem VC20                                     4

2.1      Einführung                                                     4

2.2      Programmierte Befehle. Ein kurzer Überblick                    5

2.3      Programmierung des VC20                                        5
2.3.1    Direkt-Modus                                                   5
2.3.2    Programm-Modus                                                 7
2.3.3    Programmanzeige und Programmveränderungen                      7
2.3.4    Anhalten des Programmablaufes                                  8

2.4      Zahlen und Datenformate                                        9
2.4.1    Gleitkommazahlen                                               9
2.4.2    Rundung                                                       10
2.4.3    Wissenschaftliche Zahlendarstellung                           10
2.4.4    Ganze Zahlen                                                  12
2.4.5    Zeichenketten (Strings)                                       12
2.4.6    Variablen                                                     13
2.4.6.1  Variablennamen                                                14
2.4.6.2  Gleitkommavariablen                                           14
2.4.6.3  Ganzzahl-Variablen (Integer-Variablen)                        14
2.4.6.4  String-Variablen                                              15
2.4.6.5  Lange Variablennamen                                          15
2.4.7    Reservierte Wörter                                            16
2.4.8    Mathematische Operatoren                                      17
2.4.8.1  Arithmetische Operatoren                                      17
2.4.8.2  Rechenhierarchie                                              19
2.4.8.3  Vergleichsoperatoren                                          19
2.4.8.4  Boolesche Operatoren (logische Ausdrücke)                     20
2.4.8.5  Bit-orientierte Boolesche Operationen                         21
2.4.9    Felder                                                        23 

2.5      BASIC-Funktionen                                              24

2.6      Farbregulierung beim VC20                                     27
2.6.1    Hintergrundfarbe                                              27
2.6.2    Zeichenfarben                                                 28 
2.6.2.1  Direktdarstellung von Zeichen auf dem Bildschirm              29
2.6.3    Beispielprogramme für die farbige Zeichendarstellung          30 
2.6.3.1  Auswahl von Farbkombinationen                                 30
2.6.4    Adressänderung bei Speichererweiterung                        30

2.7      Tonregulierung beim VC20                                      31 
2.7.1    Erzeugung von Tönen                                           31 
2.7.1.1  Beispielprogramm für die Tonerzeugung                         32

2.8      Der Bildschirmeditor                                          32
2.8.1    Cursor-Steuermodi                                             34
2.8.2    Inverse Zeichendarstellung                                    35
2.8.3    RUN/STOP-Taste                                                35
2.8.4    Zusammenstellung aller Steuertastenfunktionen                 36
2.8.5    Zusätzliche Tastenfunktionen                                  37

3.       VC20-BASIC                                                    38

3.1      Überblick                                                     38

3.2      CBM-BASIC                                                     38
3.2.1    Initialisierung des Rechners                                  38
3.2.2    Bedienungsmodi                                                39
3.2.3    Zeilenformat                                                  39
3.2.4    Zeilennummern                                                 39
3.2.5    Zeichensatz des CBM-BASIC                                     39
3.2.6    Konstanten des CBM-BASIC                                      41
3.2.7    Variablen 41 3.2.7.1 Variablennamen und -kennzeichnung        41
3.2.7.2  Namen für Stringvariablen                                     42
3.2.7.3  Namen für numerische Variablen                                42
3.2.8    Feldvariablen                                                 42
3.2.9    Umwandlung von numerischen Variablen                          42
3.2.10   Ausdrücke und Operatoren                                      43
3.2.10.1 Arithmetische Operatoren                                      44
3.2.10.2 Überlauf und Division durch Null                              44
3.2.10.3 Vergleichsoperatoren                                          45
3.2.10.4 Logische Operatoren                                           45
3.2.10.5 Funktionsoperatoren                                           47
3.2.11   String-Operationen                                            47
3.2.12   Editieren (Eingeben) von Programmzeilen                       47
3.2.13   Fehlermeldungen                                               48

3.3      BASIC-Anweisungen                                             48
3.3.1    Vereinbarung der Notation                                     49
3.3.2    CLOSE                                                         50
3.3.3    CLR                                                           51
3.3.4    CMD                                                           52
3.3.5    CONT                                                          53
3.3.6    DATA                                                          54
3.3.7    DEF FN                                                        55
3.3.8    DIM                                                           56
3.3.9    END                                                           57
3.3.10   FOR...NEXT                                                    58
3.3.11   GET und GET#                                                  61
3.3.12   GOSUB...RETURN                                                62
3.3.13   GOTO                                                          63
3.3.14   IF...THEN und IF...GOTO                                       64
3.3.15   INPUT                                                         65
3.3.16   INPUT#                                                        67
3.3.17   LET                                                           68
3.3.18   LIST                                                          69
3.3.19   LOAD                                                          70
3.3.20   NEW                                                           71
3.3.21   ON...GOSUB und ON...GOTO                                      72
3.3.22   OPEN                                                          73
3.3.23   POKE                                                          74
3.3.24   PRINT und PRINT#                                              75
3.3.25   READ                                                          77
3.3.26   REM                                                           78
3.3.27   RESTORE                                                       79
3.3.28   RUN                                                           80
3.3.29   SAVE                                                          81
3.3.30   STOP                                                          82
3.3.31   SYS                                                           83
3.3.32   VERIFY                                                        84
3.3.33   WAIT                                                          85

3.4      BASIC-Funktionen                                              86
3.4.1    ABS                                                           87
3.4.2    ASC                                                           88
3.4.3    ATN                                                           89
3.4.4    CHR$                                                          90
3.4.5    COS                                                           91
3.4.6    EXP                                                           92
3.4.7    FRE                                                           93
3.4.8    INT                                                           94
3.4.9    LEFT$                                                         95
3.4.10   LEN                                                           96
3.4.11   LOG                                                           97
3.4.12   MID$                                                          98
3.4.13   PEEK                                                          99
3.4.14   POS                                                          100
3.4.15   RIGHT$                                                       101
3.4.16   RND                                                          102
3.4.17   SGN                                                          103
3.4.18   SIN                                                          104
3.4.19   SPC                                                          105
3.4.20   SQR                                                          106
3.4.21   STATUS                                                       107
3.4.22   STR$                                                         108
3.4.23   TAB                                                          109
3.4.24   TAN                                                          110
3.4.25   TIME                                                         111
3.4.26   TIME$                                                        112
3.4.27   USR                                                          113
3.4.28   VAL                                                          114

4.       Hardware und Betriebssystem des VC20

4.1      Aufbau des VC20

4.1.1    Mikroprozessor                                               115
4.1.1.1  Ein- und Ausgänge                                            116
4.1.1.2  Adressbus                                                    116
4.1.1.3  Datenbus                                                     116
4.1.1.4  Steuerbus                                                    116
4.1.2    Speicher für das Betriebssystem (ROM)                        116
4.1.3    Arbeitsspeicher (RAM)                                        117
4.1.4    Variabler Interface-Adapter (VIA)                            117
4.1.5    Video-Interface-Chip (VIC)                                   117
4.1.6    Zeichengenerator                                             117

4.2      Speicherorganisation                                         118
4.2.1    Arbeitsspeicher und Anwenderprogramme                        119
4.2.2    RAM- und ROM-Erweiterungen                                   120
4.2.3    Betriebssystem, Interpreter und Ein/Ausgabe                  121

4.3.     Der BASIC-Interpreter des VC20                               121
4.3.1    Speicherung von BASIC-Anweisungen                            122
4.3.2    Schlüsselwort-Codes                                          124
4.3.3    Leerstellen in Programmzeilen                                124
4.3.4    Null-Bytes                                                   124
4.3.5    Programmformat bei der Kassetten-Speicherung                 124
4.3.6    Programmformat-Kompatibilität                                125

4.4      Zugriff auf Farb- und Zeichenmatrizen                        125
4.4.1    Zeichenzeiger                                                125
4.4.2    Anzeige von Zeichen 125 4.4.2.1 Bildschirmspeicher           125
4.4.3    Farbzeiger                                                   127
4.4.4    Formatorganisation für die Bildschirmanzeige                 127

Anhänge

A        Beschreibung der RS-232(V24)-Schnittstelle                   129
B        Routinen des Betriebssystems                                 138
C        Umsetzung von fremden Programmen in VC20-BASIC               176
D        Zusammenstellung der Fehlermeldungen                         179
E        Mathematische Funktionen und ASCII-Codes                     185
F        Beschreibung des 6561-Video-Interface-Chip (VIC)             187

Tabellen

2.1      Reservierte Namen                                             16
2.2      Mathematische Operatoren                                      20
2.3      Boolesche Wahrheitstabelle                                    21
2.4      Farbsteuerzahlen                                              28
2.5      Zahlenäquivalente für Musiknoten                              31
3.1      Sonderzeichen und Cursorsteuerzeichen                         40
3.2      BASIC-Schreibweise von algebraischen Ausdrücken               44
A.1      RS-232-Leitungen und -Anschlüsse                             134
B.1      Aufrufbare Betriebssystem-Unterprogramme                     138
C.1      Codes für VC20-BASIC-Anweisungen                             178
D.1      Fehlermeldungen                                              179

Abbildungen

1.1      System-Blockschaltbild des VC20                                2
2.1      Tastenfeld des VC20                                            4
3.1      Initialisierungsanzeige                                       38
4.1      Speicherorganisation des VC20                                118
4.2      Aufteilung des Arbeitsspeichers                              119
4.3      RAM/ROM-Speichererweiterungen                                120
4.4      Speicherbereiche für Interpreter, Betriebssys. und E/Ausgabe 121
4.5      Adresszeiger für den Anwenderprogrammbereich                 122
4.6      Speicherung von BASIC-Programmzeilen                         123
4.7      Schema der Bildschirmzellen für die Zeichendarstellung       126
4.8      Video-Matrix                                                 127

A.1      Kontrollregister für die RS-232-Schnittstelle                131
A.2      Befehlsregister für die RS-232-Schnittstelle                 132
A.3      RS-232-Statusregister                                        135
F.1      Typische Video-Matrix                                        189
F.2      Kontroll-Register des VC20                                   190
F.3      Pinbelegung des VIC 6561                                     196

Leseprobe[Bearbeiten | Quelltext bearbeiten]

3.3.7 DEF FN (Seite 55)

Format:       DEF FN<Name>[(<Parameter>)]=<Funktionsdefinition>

Zweck:	       Definiert und benennt eine vom Anwender program-
              mierte BASIC-Funktion.

Bemerkungen:  <Name> muss ein erlaubter Variablenname sein.
              Dieser Name, dem FN vorangestellt wird, wird als
              Name der Funktion betrachtet. <Parameter> ist das
              Argument der Funktion, das in der Funktionsdef-
              i­nition durch eine Gleitkommavariable bezeichnet
              wird. Letztere wird dann beim Aufruf der Funktion
              durch den aktuellen Parameter ersetzt. 
              <Funktionsdefinition> ist ein beliebiger Ausdruck, 
              der die Operation, die die Funktion ausführen 
              soll, beinhaltet. Die Länge des Ausdrucks ist
              auf eine BASIC-Anweisungszeile (88 Zeichen)
              beschränkt. In diesem Ausdruck verwendete
              Variablennamen dienen nur der formalen 
              Funktionsdefinition und sind nicht mit Programm­-
              variablen desselben Namens zu verwechseln. Ein in
              einer Funktionsdefinition verwendeter Variablen­-
              name kann als Parameter auftreten oder auch
              nicht. Ist er Parameter, so wird sein Wert beim
              Aufruf der Funktion ersetzt; andernfalls wird der
              derzeitige Wert der Variablen verwendet.
              Mit DEF FN können keine eigenen Stringfunktionen
              definiert werden. Wenn im Funktionsnamen ein
              Variablentyp spezifiziert wird, so wird der Wert
              des Ausdruckes diesem Typ angepasst, bevor er der
              aufrufenden Anweisung übergeben wird. Wenn ein
              Variablentyp im Funktionsnamen deklariert wurde,
              der nicht zu dem Typ passt, den der Ausdruck lie­-
              fert, so wird eine TYPE MISMATCH-Fehlermeldung 
              ausgegeben. Die DEF FN-Anweisung muss ausgeführt
              werden, ehe die dadurch definierte Funktion das
              erste mal aufgerufen wird, sonst wird eine 
              UNDEFINED FUNCTION-Fehlermeldung ausgegeben. DEF 
              FN kann nicht im Direkt-Modus verwendet werden.

Beispiel:     410 DEF FNAB(X)=X↑3/Y↑3
              420 T=FNAB(I)

              Zeile 410 definiert die Funktion, die in Zeile
              420 aufgerufen wird. Dabei wird die Variable X
              durch den aktuellen Wert von I ersetzt. Die 
              Variable Y behält den ihr zum Zeitpunkt des 
              Funktionsaufrufes zugeordneten Wert.

Meinung[Bearbeiten | Quelltext bearbeiten]

Werner: "Eines der besseren Bücher für den VC20. Man erfährt nicht alles, jedoch eine ganze Menge über den VC20. Zuerst werden Zahlenformate, Operatoren und Variablen ausführlich beschrieben. Anschließend wird jeder Basic-Befehl detailliert beschrieben und durch kurze Beispiele demonstriert. Die (komplexe) Speicherorganisation des VC20 wurde verständlich erläutert. Im Anhang werden 36 aufrufbare Betriebssystem-Unterprogramme (z.B. CHROUT $FFD2) genau beschrieben. Am Ende werden noch die Register und die Anschlüsse des VICs beschrieben. Tolles Buch!"

Sonstiges[Bearbeiten | Quelltext bearbeiten]

Das englischsprachige Original-Buch ist unter "VIC-20 Programmers Reference Guide" erschienen.

Weblinks[Bearbeiten | Quelltext bearbeiten]