Computing">
C64 Basic - System Und Anwendung - Compressed
C64 Basic - System Und Anwendung - Compressed
GOlDMANN
Icomputer compact I
IRicnard G. PeddicordJ
Wir danken der Firma Commodore BüromaschinenGmbH für
die freundliche Überlassungdes Bildmaterials.
1. EINLEITUNG 7
2. DER COMMODORE 64 8
3. DAS FERNSEHGERAET ALS MONITOR 12
4. IHR ERSTES ERFOLGSERLEBNIS 14
5. ZEILENNUMMERN,
KONSTANTEN UND VARIABLEN 19
6. DIE SICHERUNG
VON PROGRAMMEN AUF BAND 26
7. DIE SICHERUNG
VON PROGRAMMEN AUF DISKETTE 30
8. DIE BENUTZUNG EINES VIDEOMONITORS 35
9. DIE BENUTZUNG EINES DRUCKERS 37
10. PROGRAMMIEREN MIT EINGABE 41
11. EINFACHE BERECHNUNGEN 45
12. ARITHMETISCHE AUSDRUECKE 49
13. IF ••• THEN-ANWEISUNG 52
14. LOGISCHE AUSDRUECKE 54
15. SCHLEIFEN 56
16. SPEICHERUNG
VON DATEN IN PROGRAMMEN 61
17. EIN SPESENABRECHNUNGSPROGRAMM 64
18. FELDER 67
19. DIE FORMATE
VON SCHLUESSELWOERTERN. 69
20. DIE VERSCHIEDENEN
ARTEN VON SCHLUESSELWOERTERN 72
21. LISTE DER SCHLUESSELWOERTER 75
1. Einleitung
Wenn Sie gerade einen Commodore 64 erworben haben
oder dies beabsichtigen, dann ist der vorliegende Band
aus der Reihe »Goldmann computer compact« gerade
richtig für Sie. Erwendet sich an den Neuling, also auch an
Schüler und Jugendliche, und zeigt nicht nur, wie sich der
Commodore 64 an Peripheriegeräte (Zusatzgeräte), wie
Videomonitor oder Fernsehgerät, Drucker, Disketten lauf-
werk oder Datasette-Rekorder, anschließen läßt. Dieser
Band gibt zugleich eine Einführung in BASIC, jener Pro-
grammiersprache, die auf Ihrem Commodore64 verwen-
det wird. BASIC setzt sich, wie jede andere höhere Pro-
grammiersprache, aus einer Menge von Schlüsselworten
(»Keywords«) zusammen, die für den Computer jeweils
eine genaue Bedeutung besitzen, sowie aus einer Reihe
grammatikalischer Regeln, die festlegen, wie das jewei-
lige Wort zu benutzen ist. Ein Schlüsselwort, wie LIST, RUN
oder PRINT, ist ein Ausdruck, den das System als Kom-
mando oder Teil eines Kommandos erkennt; es darf also
in BASIC kein Variablenname, beispielsweise zur Benen-
nung von Dateien, verwendet werden , der eines dieser
Schlüsselwörter enthält.
Um Fehler dieser Art leicht zu vermeiden, enthält dieser
Band eine Liste aller BASIC-Schlüsselworte mit Beispiel,
Format, Fehlermeldungen und der Beschre ibung dessen,
was ihre Verwendung bewirkt. Damit wird der Zugang
zu BASIC wesentlich erleichtert, allerdings können Sie
keinen großen Lernerfolg erwarten, wenn Sie die hier er-
läuterten Arbeitsschritte nicht an einem Rechner tatsäch-
lich einüben .
7
2. Der Commodore64
Mit dem Commodore 64 haben Sie einen der leistungs -
fähigsten Personal Computer erworben, die sich derzeit
auf dem Markt befinden. Zusammen mit dem Rechner er-
halten Sie ein Bedienungshandbuch, das die wichtigsten
Informationen enthält, die zur Inbetriebnahme des Geräts
erforderlich sind, sowie ein Netzgerät. Es versorgt Ihren
Commodore 64 mit der nötigen Betriebsspannung und ist
nicht in den Rechner selbst integriert, um dessen Hitze-
belastung zu vermindern und sein Gewicht zu reduzieren.
Neben dem Stromversorgungskabel weist das Netzgerät
ei n zweites Kabel auf, an dessen Ende sich ei n Stecker mit
sieben kleinen Stiften und einer Schutzverkleidung befin-
det. Damit wird das Netzgerät an den Commodore64 an-
geschlossen; die entsprechende Buchse finden Sie an
der rechten Seite des Geräts. Stellt man ein System zu-
sammen, so arbeitet man immer nur an einer Kompo-
nente. Auf diese Weise lassen sich eventuelle Fehler unter
Kontrolle halten. Jetzt ist es an der Zeit zu überprüfeIl', ob
Ihr Commodore 64 mit Strom versorgt wird.
Suchen Sie den kleinen Ein/Aus(On/Off)-Schalter neben
der Buchse für den Anschluß des Netzgeräts. Wenn Sie
ihn betätigen, sollte die rote Anzeige (POWER) oberhalb
der Tastatur aufleuchten. Ist das der Fall, können Sie sich
gratulieren und weitermachen.
Brennt diese Anzeige dagegen nicht, beginnen Sie noch-
mals von vorne.
Drehen Sie nun den Commodore64 herum, so daß Sievor
der Rückseite des Geräts sitzen. Der Schlitz links dient der
Aufnahme von ROM-Chips und wird Modul -Steckplatz
genannt. Es gibt zwei Arten von Speicher, »Read Only
Memory «, kurz ROM genannt, und »Random Access
Memory«, abgekürzt RAM. Während man im RAM Informa -
8
Abb. 1: Eine typische Systemkonfiguration : Commodore
64, 1701 Monitor, 1520 Drucker, 1541 Diskettenlaufwerk,
Datassette-Rekorder.
9
Direkt neben diesem Wahlschalter liegt derTV-Anschluß.
Das Ihrem Commodore 64 beigelegte Hi-Fi-Kabel läßt
. sich hier anschließen; das andere Ende verbinden Sie mit
dem UHF-Anschluß Ihres Fernsehers.
Besitzen Sie einen Videomonitor , dann legen Sie das Hi-
Fi-Kabel beiseite. Ein Videomonitor sieht aus wie ein Fern-
sehgerät, verfügt jedoch über kein Empfangsgerät für die
verschiedenen Fernsehkanäle. Er akzeptiert nur ein Video-
signal, wie es auch eine Videokamera erzeugt.
Ein Videomonitor läßt sich am Audio/Video-Ausgang
rechts vom TV-Anschluß mit dem Computer verbinden;
eine genaue Anleitung finden Sie in Kapitel 8.
Rechts neben dem Audio/Video-Ausgang befindet sich
die Anschlußmöglichkeit für serielle Schnittstellen (»Inter-
face «). Hier schließen Sie das Diskettenlaufwerk, den
Drucker oder jedes andere Gerät an, das für serielle Daten-
übertragung geeignet ist. Damit ist gemeint, daß die Da-
tenübertragung Bit für Bit erfolgt, im Gegensatz zu einer
parallelen Schnittstelle, die jeweils ein gan zes Byte (8 Bit)
übermittelt. Mit dem Begriff »Schnittstelle « ist, allgemein
gesprochen, lediglich die Verbindung zweiter System-
komponenten gemeint. Rechts von diesem seriellen An-
schluß finden Sie die Anschlußmöglichkeit für den Datas -
sette-Rekorder oder ähnliche Kassettenrekorder. Ganz
rechts auf der Rückseite des Commodore 64 liegt ein frei
programmierbarer Ein- und Ausgang (»User Port«), der
ebenfalls als Anschlußmöglich1<eit für Schnittstellen ge-
nutzt werden kann.
Gleich vorweg ein Wort zu Schnittstellen: die Unterschei-
dung zwischen paralleler und serieller Übertragung reicht
noch nicht aus, um sicher festzulegen, daß in jedem Fall
damit die Übertragung zwischen Computer und Drucker
beispielsweise gelingt. Es existieren zahlreiche Varianten
der verschiedensten Hersteller, und Sie sollten bei einem
Kauf absolut sichergehen, daß die gewählte Schnittstelle
mit den Komponenten Ihres Systems verträglich ist. Prü-
10
fen Sie dies daher eingehend . Auf dem Gebiet der seriel-
len Schnittstellen ist die »RS232 C«-Schnittstelle sehr ver-
breitet, die in Europa auch unter der Modellbezeichnung
»v 24« angeboten wird . Problemen , die hier entstehen
können, gehen Sie am leichtesten dadurch aus dem Weg,
daß Sie die von Commodore hergestellten Peripherie-
geräte zur Erweiterung Ihres Systems erwerben. Dann ist
garantiert, daß Sie nicht Geld und Nerven vergeuden müs -
sen, um die Erweiterungskomponenten so arbeiten zu las-
sen, wie Sie es sich vorstellen.
11
Das Fernsehgerät
3 • als Monitor .
Ihr Commodore 64 läßt sich auch an ein gewöhnliches
Fernsehgerät anschließen. Einzelheiten dazu finden Sie
im beige legten Bedienungshandbuch . Nehmen Sie die-
sen Ansch luß gleich nach Erwerb des Geräts vor, um
sicherzustellen, daß der RF-Modulatorfunktioniert. Er sen-
det die separaten Video- und Audiosig nale an den Fern-
sehkanal 3 oder 4. Um allerdings die Mög lichkeiten aus-
zuschöpfen , die Ihr Commodore 64 an Farbgraphik bietet,
benötigen Sieden Commodore1701 Farbmonitoroderein
vergleichbares Gerät.
Schalten Sie zuerst das Fernsehgerät, dann Ihren Com-
modore 64 ein. Auf dem Bildschirm sollte, in hellblauer
Schrift auf dunke lblauem Hintergrund , folgende Meldung
erscheinen :
READY
Direkt unter dem Wort READY blinkt ein hellb laues Recht-
eck, der Kursor. Er zeigt nicht nur an, daß das Gerät auf Ihre
Eingabe wartet, sondern markiert zugleich die Stelle, an
der das Zeichen plaziert wird, das Sie als nächstes auf der
Tastatur eintippen.
Bleibt Ihr Bi ldschirm jedoch leer, so tun Sie folgendes :
1. Überprüfen Sie, ob die Geräte richtig verbund en sind,
und ob die Ansch lüsse festsitzen.
2. Überprüfen Sie die Einstellung Ihres Fernsehgeräts; Sie
müssen Kanal 3 oder 4 wählen .
12
3. Kontrollieren Sie die Stellung des Kanalwahlschalters
auf der Rückseite Ihres Commodore 64. Er muß nach
li nks zeigen, wenn Sie die Rückseite des Geräts be-
trachten.
4. Besitzen Sie einen 1701 Monitor, kontrol lieren Sie die
Schaltersteilung auf der Rückseite.
5. Studieren Sie nochmals die Anleitungen des Bedie-
nungshandbuchs.
6. Wenden Sie sich mit ungelösten Problemen an Ihren
Händler.
13
Ihr erstes
4 • Erfolgserlebnis
Das blinkende Rechteck ist der Kursor, der, wie gesagt, die
Stelle markiert , an der das von Ihnen auf der Tastatur ein-
gegebene Zeichen auf dem Bildschirm erscheint. Tippen
Sie einige Zeichen und beobachten Sie, wie sich der Kur-
sor dabei weiterbewegt. Geben Sie dann etwas völlig Un-
verständliches ein und betätigen Sie die RETURN-Taste,
die sich ganz rechts auf der Tastatur befindet. Das System
wird mit folgender Ausgabe antworten:
?SYNTAX ERROR
Auf diese Weise teilt es Ihnen mit, daß es Sie nicht verstan-
den hat. Es gibt aber auch noch andere Formen der Fehler-
meldung .
Spielen Sie mit dem Kursor und lassen Sie ihn über den
Bildschirm wandern . Benutzen Sie die SHIFT-Taste sowie
die Kursortasten für die senkrechte und waagrechte Be-
wegung des Kursors.
Wenn Ihnen die Spielerei zu langweilig wird und Sie
ernsthaft arbeiten wollen, dann drücken Sie die RETURN-
Taste und geben anschließend die folgende Zeile ein:
14
löschen die ganze Zeile, indem Sie die RETURN-Taste
drücken und eine neue Zeile anfangen .
Wenn Ihre Zeile zu stimmen scheint , bedienen Sie die
RETURN-Taste. Sie sollten dann folgende Ausgabe auf
dem Bildschirm erhalten :
PRINT 3*15
45
Geben Sie nun das Kommando LIST ein und bedienen Sie
dann die RETURN-Taste. Sie erhalten nur eine leere Zeile.
Es gibt kein Programm, das aufgelistet werden könnte,
weil Sie keine Zahl vor der PRINT-Anweisung angegeben
haben. Sie befanden sich deshalb in der Betriebsart der
direkten Ausführung, bei der jedes Kommando unmittel-
bar nach dem Drücken der RETURN-Taste sofort ausge-
führt wird.
Geben Sie nun die folgende Anweisung mit einer Zeilen-
nummer ein:
15
entwickelnden Programms gespeichert, weil Sie eine An-
weisungsnummer (auch Zeilennummer genannt) voran-
gestellt haben . Alle Anweisungen werden nach aufstei-
genden Zeilennummern angeordnet. Wenn Ihnen beim
Tippen der Zeile ein Fehler unterläuft, können Sie die in der
oberen rechten Ecke der Tastatur befindliche INST/DEL-
Taste zur Korrektur benutzen. Wenn Sie SHIFT und INST/
DEL drücken, dann schaffen Sie an der Position des Kur-
sors Platz für ein Zeichen , und wenn Sie INST/DEL allein
bedienen, dann bewegt sich der Kursor auf die Position
des zuletzt eingegebenen Zeichens zurück.
Eine Warnung: Wenn Sie sich innerhalb der Anführungs-
zeichen befinden, dann arbeiten die Kursortasten nicht in
dieser Weise. Wenn Sie sie verwenden wollen, geht das
nur nach Eingabe eines zweiten Anführungszeichens .
Versuchen Sie nun, die restlichen drei Zeilen dieses Pro-
gramms ei nzugeben, und vergessen Sie dabei nicht, nach
jeder Zeile die RETURN-Taste zu bedienen:
16
allerdings ohne Anführungszeichen . Der Autor dieser Zei-
len ist übrigens Christian Morgenstern . Tippen Sie nun
LIST ein und drücken Sie RETURN. Diesmal wird Ihr Vier-
zeilenprogramm ausgegeben. Wenn jemand vor Ihnen
den Rechner benutzt hat und das Gerät zwischenze itlich
nicht ausgeschaltet wurde, erhalten Sie wahrscheinlich
auch noch andere Ausgaben.
Um ein solches noch im Hauptspeicher stehendes Pro-
gramm zu löschen, müssen Sie nurdas Kommando NEW
eingeben und die RETURN-Tastedrücken. Versuchen Sie
es doch gleich einmal. Wenn Sieanschließend LiSTeintip-
pen, wird kein Programm mehr erscheinen.
Jedesmal also, wenn Sie ein neues Programm beginnen
wollen, müssen Sie. NEW eingeben und die RETURN-
Taste betätigen.
Übungen
1. Arbeiten Sie mit direkter Ausführung (also ohne Zeilen-
nummern) und lassen Sie das System Ihren Namen
ausgeben.
2. Schreiben Sie ein vierzeiliges Programm, das das fol-
gende Gedicht von Franz Pocci ausgibt:
PRINT "8+8"
Wie reagiert der Computer darauf, wenn Sie nun die
RETURN-Taste bedienen?
Versuchen Sie dagegen folgende Eingabe:
PRINT 8+8
17
4. Schreiben Sie ein Programm, das folgende Liste aus-
gibt:
ACCESS: ZUGRIFF
TO ALTER: AENDERN
BIT: BINARY DIGIT
BLANK: LEERSTELLE
BRACKET: KLAMMER
BRANCH: VERZWEIGUNG
BUS: SAMMELLEITUNG
18
Zeilennummern,
5 • Konstanten und Variablen
Zeilennummern zeigen dem Computer an, daß die nume-
rierten Anweisungen Bestandteil eines Programms sind
und im Hauptspeicher abgelegt werden sollen. Zeilen-
nummern sind aber auch noch für andere Dinge gut. Sie
legen nämlich die Reihenfolge fest, in der der Computer
Ihre Anweisungen ausführt . Außerdem listet ergle ichzeitig
Ihr Programm in aufsteigender Folge der Zeilen nummern
auf.
Geben Sie be isp ielsweise folgendes Programm ein:
NEW
20 PRINT "SPART ALTERSHEIM"
10 PRINT "JUNG KAPUTT"
19
10
Und jetzt lassen Sie mit Hilfe von LIST das Programm auf- .
listen. Die Ausgabe müßte wie folgt aussehen :
NEW
10 LET PI=3.14159
20 PRINT PI
RUN
3 . 14159
READY
20
Gleichheitszeichens in derjenigen Speicherzelle abge-
legt, die dem Variablennamen links vom Gleichheits-
zeichen zugeordnet ist.
Nimmt man später wieder auf den Variablennamen 1t
Bezug, dann liefert das den Wert 3.14159, es sei denn, der
Wert ist inzwischen geändert worden.
Konstanten können auch Wörter sein, wie beispielsweise
in folgender:n Programmstück :
NEW
10 N$="PANIK"
20 PRINT "KEINE"; N$
RUN .
KEINE PANIK
21
1. Das erste Zeichen eines Variablennamens muß ein
Buchstabe sein.
2. Das zweite Zeichen kann ein Buchstabe oder eine Ziffer
sein.
3. Als folgende Zeichen können Sie Buchstaben oder
Ziffern wählen, allerdings werden sie vom System nicht
beachtet.
4. Ein Variablenname darf keines der Schlüsselwörtervon
BASIC enthalten (wie beispielsweise PRINT, RUN oder
NEW).
5. Das letzte Zeichen des Namens muß bei Stringvaria-
bien das Dollarzeichen ($) und bei ganzzahligen Varia-
blen das Prozentzeichen (%) sein. Als String-Variable
bezeichnet man eine Variable, die eine Zeichenfolge
speichert (Buchstaben und auch Ziffern, aber keine
Zahlen) .
6. Ein Variablenname darf nicht unflätig sein.
Gut. Ehe Sie zum nächsten Abschn itt übergehen, ein letz-
tes Beispiel. Geben Sie das folgende Programm ein und
lassen Sie es laufen:
NEW
10 REM LEBENSWEISHEIT
20 BE$="UEB"
30 FU$="IMMER"
40 BV$="TREU UND"
SO LO$="REDLICHKEIT"
60 ?BE$;BE$:?FU$:?BV$:?LO$
RUN
UEB
IMMER
TREU UND
REDLICHKEIT
READY
22
Das Fragezeichen (?) stellt eine Kurzform des Komman-
dos PRINT dar. Überall dort, wo Sie das Wort PRINT in
einem Programm sehen, können Sie stattdessen auch ein
Fragezeichen verwenden . Beachten Sie, daß in Zeile 50
eine einzige Anweisung insgesamt vier PRINT-Befehle
enthä lt. Jedes dieser Kommandos muß dabei vom näch-
sten durch einen Doppelpunkt (:) getrennt werden.
Übungen:
1. Geben Sie folgendes Programm ein und lassen Sie es
laufen.
10 PRINT "OHNE"
20 PRINT "FLEISS"
30 PRINT "KEIN"
40 PRINT "PREIS"
10 PRINT "OHNE"
wird damit also:
23
ERROR, weil in dem Variablen namen NORBERT ein
Schlüsselwort versteckt ist. Schauen Sie in Kapitel 21
nach, um es zu erkennen.
5. Lassen Sie die folgende Zeile direkt ausführen:
A=5.5 : PRINT A
Das sollte gelingen . Jetzt versuchen Sie es einmal mit
der folgenden Zeile:
A%=5.5 : PRINT A
10 ABACUS=1
20 ABRAHAM=2
30 PRINT ABACUS
A$="BOO "
20 B$="HOO "
30 ?A$ B$ A$ B$ ? B$ B$
24
8. Was erbringt das Kommando LIST jeweils im folgenden
Programm? Testen Sie es!
NEW
LIST
10 B=2
70 ?B
60 B=B+1
B=S
LIST
10 R1$="EINNAHMEN"
20 R2$="AUSGABEN":K=0.2S*E
30 R3$="GEWINN":G=E-A
40 ?R1$;E:?R2$;K:?:?R3$;G
25
Die Sicherung von
6 • Programmen auf Band
Commodore stellt zwei verschiedene Kassettenrekorder
her, die sich mit dem Kassettenanschluß Ihres Commo-
dore 64 (den kleinsten der rechteck igen Ansch lüsse auf
der Rückseite) direkt verbinden lassen. Den Strom erhal-
ten diese Geräte vom Computer.
Es gibt zum einen die VIC Datassette, ein älterer, größerer,
für den VIC 20 entworfener Rekorder, und zum anderen
eine neuere, kompaktere Datassette, die für den C64 ge-
dacht ist. Sie arbeiten beide in dergleichen Art und Weise.
Stecken Sie das Verbindungskabel des Rekorders in den
Kassettenanschluß des C64 . Es handelt sich, wenn Sie
von vorne auf Ihren Commodore schauen, um die zweite
Buchse von links .
26
Achten Sie darauf, daß Sie das Kabel korrekt einstecken
und wenden Sie keine Gewalt an; es gelingt schon, wenn
Sie behutsam vorgehen.
Der Datassette-Rekorder arbeitet wie jeder andere Kas-
settenrekorder auch und verwendet dieselbe Art von
Magnetband. Probieren Sie das Einlegen und Heraus-
nehmen einer Kassette, damit Sie darin Übung bekom-
men. Die STOP/EJECT-Taste öffnet den Kassetten-
schacht. F.FWD (»Fast Forward«) und REW (»Rewind«) las-
sen das Band vorwärts und rückwärts laufen. PLAY und
REC (»Record«) tun genau das, was Sie davon erwarten.
Wenn Ihr Datassette-Rekorder erst einmal angeschlossen
ist, und Sie eine leere Kassette eingelegt haben, dann kön-
nen Sie Ihre BASIC-Programme sichern. Geben Sie dazu
ein Programm ein, und lassen Sie es laufen. Tippen Sie
dann :
SAVE "<programmname>"
Drücken Sie also sowohl die RECord- als auch die PLAY-
Taste auf dem Datassette-Rekorder. Sobald die Sicherung
erfolgt ist, erscheint das READY-Promptzeichen.
Zum Laden des gesicherten Programms vom Datassette-
Rekorder spulen Sie das Band an den Anfang zurück und
geben folgendes ein:
LOAD "PROGRAMMNAME"
27
Nach dem Drücken der RETURN-Taste zeigt der Bild -
schirm:
28
6. Nachdem der Computer das Programm gefunden und
Ihnen den Namen mitgeteilt hat (während des Suchvor -
gangs ist der Bildschirm hellblau), drücken Sie die
C=-Taste im linken unteren Teil des Tastenfeldes .
7. Ist das Programm geladen (Sie erhalten eine READY-
Meldung auf dem Monitorbildschirm), betätigen Sie die
STOP-Taste des Datasette-Rekorders.
8. Tippen Sie RUN ein und drücken Sie die Return-Taste,
um das Programm zu, starten.
Falls sich Ihre Datei nicht laden läßt, kann es am falschen
Zählerstand liegen. Das passiert oft, wenn zwei verschie -
dene Rekorder zur Sicherung und zum Laden der Datei
verwendet wurden.
29
Die Sicherung von
7. Programmen auf Diskette
Früher oder später werden Sie ein Disketten laufwerk an
den Commodore 64 anschließen wollen. Das Modell 1541
ist das für den C64 konzipierte Laufwerk. Es verfügt über
einen eigenen Mikroprozessor, wesha lb es ohne Bean-
spruchung der Speicher des Commodore C64 arbeitet.
Eine Diskette ist ein angenehmeres und effizienteres Spei-
chermedium als das Magnetband, allerdings ist sie auch
teurer und empfind licher.
Beim Auspacken des Diskettenlaufwerks finden Sie zu-
sätzlich zum Stromkabel noch ein kurzes schwarzes
Kabel, wodurch das Laufwerk mit Ihrem Commodore 64
verbunden wird . Das eine Ende läßt sich in den seriellen
Ansch luß (rechts neben dem Audio/Video-Anschluß,
wenn Sie den Rechnervon hinten betrachten) einstecken ,
und das andere Ende in einen der bei den identischen An-
schlüsse auf der Rückseite des Diskettenlaufwerks .
Das Mode ll 1541 eignet sich für 5%-Zo ll-Disketten, die
soft-sektoriert sind und ein- oder beidseitig mit einfacher
oder doppelter Dichte aufzeichnen . Die Diskette selbst ist
nichts anderes als eine sehr dünne Plastikscheibe, be-
schichtet mit magnetisierbarem Material. Sie dreht sich in
. ihrer schützenden Hülle.
Im Inneren des Diskettenlaufwerks befindet sich ein Lese/
Schreibkopf, der winzige Felder, sogenannte Spuren und
Sektoren, auf der Diskette magnetisieren oder diese
Magnetisierung wieder von der Diskette lesen kann. Er be-
wegt sich hin und her, um auf die verschiedenen Bereiche
der Diskette zuzugreifen. Dadurch wird das Geräusch ver-
ursacht, das Sie beim Betrieb des Diskettenlaufwerks
hören.
Das Diskettenlaufwerk 1541 kann entweder einseitig oder
beidseitig aufzeichnende Platten verwenden . Beidseitig
30
Abb. 3: Das 1541 Diskettenlaufwerk
31
Diese Diskette istfür Ihr System am besten geeignet: Eine
soft-sektorierte 5 %-Zoll-Diskette, die einseitig und mit
einfacher Dichte aufzeichnet.
32
Das Formatieren einer neuen Diskette
Wie bereits erwähnt, markieren auf einer Diskette magneti -
sche Signale die Spuren und Sektoren, in denen Infor-
mation gespeichert wird. Dieser magnetische Markie-
rungsprozeß wird auch als »Formatierung « der Diskette
bezeichnet. Eine noch nicht formatierte Platte kann nicht
zur Speicherung oder Wiedergewinnung von Informatio-
nen verwendet werden, da das Laufwerk nicht weiß, wo die
Information gespeichert werden kann.
Legen Sie eine alte oder eine neue Diskette in das Lauf-
werk, geben Sie
OPEN 15,8,15
PRINT#15,"NEWO:<diskettenname>,<id-code>"
33
2. Nachdem die rote Betriebsleuchte des Laufwerks erlo-
schen ist, öffnen Sie das Diskettenfach, indem Sie leicht
gegen die Klappe drücken.
3. Legen Sie die Diskette vorsichtig mit dem Etikett nach
oben und dem länglichen Schlitz nach hinten zeigend
ein. Die Diskette muß einrasten .
4. Schließen Sie das Diskettenfach .
5. Tippen Sie LOAD "Programmname",8 in den Computer
ein. Der in Anführungszeichen eingeschlossene Pro-
gramm name sollte der Namedes Programms sein,das
Sie laden wollen. Drücken Sie die RETURN-Taste.
6. Nachdem das Programm geladen ist (der Computer
sendet Ihnen eine READY-Meldung) , tippen Sie RUN
ein und drücken die RETURN-Taste,um das Programm
zu starten.
34
Die Benutzung
8 • eines Videomonitors
Wenn Sie anstelle eines Fernsehgeräts einen Videomoni-
tor verwenden , erhalten Sie ein besseres Bild. Wenn Sie
wirklich gute Farbgraphik erzeugen wollen, sollten Sie den
Commodore Monitor 1701 erwerben.
Der Commodore Videomonitor 1701 besitzt einen 36 cm-
Farbbildschirm, der unter Verwendung entweder eines
Zwei-Kanal- oder eines Vier-Kanal-Audio/Videokabels
direkt mit dem Commodore 64 verbunden werden kann.
Bei einem Zwei-Kanal-Kabel wird die Vorderseite des
Monitors benutzt.
Stecken Sie das Zwei-Kanal-Kabel in den Audio-Video-
Anschluß Ihres Commodore64, und schalten Sie Compu-
ter und Monitor ein. Auf der Rückseite des Monitors befin-
det sich ein mit FRONT und REAR markierter Schalter.
Stellen Sie ihn auf FRONT.
Stecken Sie probehalber jeden der Phonostecker in die an
derV.orderseite befindliche VIDEO-Buchse, um herauszu-
finden, über welchen. die Bildsignale laufen. Das andere
Kabel übermittelt den Ton. Es läßt sich in die ebenfalls an
derVorderseite befindliche AUDIO-Buchse hineinstecken.
Die Anschlüsse sind identisch mit denen anderer Video-
monitore. Falls Ihr Monitor jedoch keinen Lautsprecher be-
sitzt, müssen Sie die Audiokabe l bis zu Ihrer Stereoanlage
verlängern . Dazu verbi nden Sie das Audiokabel mit ei nem
länger en Hi-Fi-Kabel, das mit den üblichen Phonostek-
kern versehen ist.
Verfügen Sie über ein Vier-Kanal-Audio/Video-Kabel,
dann schließen Sie es an der Rückseite des Monitors 1701
an.
Überprüfen Sie, ob der Schalter auf der Rückseite auf
REAR steht. Wenn der Commodore 64 und der Monitor
eingeschaltet sind, ermitteln Sie, über welchen der vier
35
Stecker das Helligkeitssignal läuft, indem Sie nachein-
ander alle vier Stecker in die Phonobuchse auf der Rück-
seite einstecken, die mit LUMA (für »Luminance Infor-
mation «) gekennzeichnet ist. Natürlich müssen Sie jedes-
mai den Bildschirm beobachten, ob sich etwas tut. Zwei
der vier Stecker vermitteln Ihnen ein Bild, aber nur das
Helligkeitssignal bringt ein normales Schwarzweiß-Bild
zustande .
Das andere Kabel, das Sie zur Erzeugung eines Bildes be-
nötigen, übermitte lt das Farbsignal. Stecken Sie es in die
mit CHROMA gekennzeichnete Buchse; nun sollte Ihr
Bildschirm blaue Farbe zeigen. Ist das nicht der Fall, dann
vertauschen Sie die bei den Kabel.
Der 1701 verfügt über insgesamt sieben Regler. Belassen
Sie die vier, die sich ganz links befinden, in ihrer mitt leren
Position. Auf diese Weise erhalten Sie das beste Bild .
Der Knopf ganz rechts regelt die Lautstärke. Die anderen
beiden Knöpfe auf der rechten Seite dienen zur Steuerung
des Bildes in der Waagrechten und in der Senkrechten.
36
Die Benutzung
9 • eines Druckers
Sie werden bald einen Drucker an Ihr System anschließen
wol len. Commodore stellt mehrere DruckerzurVerfügung:
Mode ll 1515, Model l 1525 und ein neues Model l, MPS 80l
Sie entsprec hen im wesent lichen dem 1525, der im fo lge n-
den beschrieben wird:
Der Commodore Drucker 1525 verfügt über eine Druck-
zeile von 80 Zeichen und kann 30 Zeichen pro Sekunde
drucke n. Er erzeugt die Zeichen durch Nade ln, vo n de nen
fü nf mal sieben auf einer Matrix angeordnet sind; Drucke r
dieser Art nennt man Punkt-Matrix-Drucker . Wenn Sie die
gedruckte Seite genau betrachten, können Sie die ei nzel-
nen Punkte sehen.
Ei n Vorteil des 1525 besteht darin, daß er alle vo n C 64 ver-
wendeten Sonderze ichen so druckt, wie sie auf dem Bi ld-
sch irm erscheinen. Andere Drucker leisten dies nur, wenn
die Schnittstelle entsprechend angepaßt wurde.
Das Druckerkabel wird in den seriellen Ansch luß einge-
steckt, also in die li nke de r beiden Buchsen in der Mitte der
Rückse ite des Commodore 64. Der Stecker verfügt über
sec hs winzige Stifte sowie über eine Abschirmung und ist
ide ntisch mit dem Stecker für das Disketten laufwerk.
Schließen Sie das Druckerkabel an und achten Sie dabei
da rauf, daß die kleine Kerbe nach oben zeigt.
Schalten Sie nun den Drucker ein. Jetzt leuchtet die rote
Kontrollampe auf.
Verwenden Sie für Ihren Drucker nach Möglichkeit Papier
mit Randlo chung . Nach dem Abschalten des Druckers he-
ben Sie die durchsicht ige Abdeckhaube ab und öffnen die
Papierführung. Schiebe n Sie das Pap iervo n hinten in de n
Pap iereinfü hrungssch litz, bis es vorne am Drucker her-
aussschaut. Richten Sie die Papierführung vorsichtig so
ein, daß die Zähne des Papiertransporters in die Perforie-
37
Abb. 4: Der VC 1520 Plotter Printer
OPEN 1,4
38
Soll die Ausgabe nicht an den Bildschirm , sondern an den
Drucker übermittelt werden, geben Sie das Kommando:
CMD 1
PRINT#1
CLOSE 1
39
schwindigkeit der Geräte sind nicht unbedingt zutreffend;
in der Regel beziehen sie sich auf Endloszeilen. Der
Sprung in eine neue Zeile kostet natürlich Zeit, so daß
Drucker in der Regel10 bis 20 Prozent langsamer sind, als
von den Herstellern angegeben. Bidirektionale Drucker,
die nach rechts wie nach links schreiben können, besitzen
hier einen Vorteil, da sie nicht erst eine ganze Zeile zurück-
gehen müssen, um weiterschreiben zu können.
Sofern Sie vor allem auf technische Zeichnungen ange-
wiesen sind, benötigen Sie einen Plotter Printer. Erver'wen-
det spezielle Farbstifte zur Erzeugung komplexer Grafi-
ken, wobei er, anders als die übrigen Drucker-Typen, das
Blatt nicht nur Zeile für Zeile beschriften kann, sondern
sich je nach Bedarf darauf bewegt.
40
Programmieren
10 • mit Eingabe
Geben Sie das Kommando NEW ein und drücken Sie die
RETURN-Taste. Dadurch wird ein eventuell noch im
Hauptspeicher stehendes Programm gelöscht. Dann
geben Sie das folgende Programm ein:
10 REM NAMENSPROGRAMM
20 PRINT "WIE HEISST DU?"
30 INPUT N$
40 PRINT "DANKE, "?;N$
41
Programm geschrieben haben. Eine Variable oder ein
Ausdruck, der nicht von Anführungszeichen eingeschlos-
sen ist, wird ausgewertet, und das Ergebnis ausgegeben.
Wenn es sich bei dem Ausdruck um einen einfachen
Variablen namen handelt, wie bei N$, dann wird der unter
N$ abgespeicherte Wert ausgedruckt. Was auch immer
Sie also bei der Ausführung von Zeile30 eingetippt haben,
wird nach dem DANKE ausgedruckt.
Übungen
1. Schreiben Sie ein Programm, das Sie Ihrer Lieb-
lingsfarbe fragt und dann den folgenden Einzeiler aus-
druckt:
Dabei handelt es sich bei < farbe > um die Farbe, die Sie
wählen .
Hier ist ein Beispiel der von dem Programm erzeugten
Ausgabe, wenn Sie »LILA" eingetippt haben:
RUN
WAS IST DEINE LIEBLINGSFARBE?
?LILA
LILA, LILA, OH WIE SCHOEN IST LILA
TUT MIR LEID, <zahL> WAR NICHT DIE ZAHL, AN DIE ICH
GEDACHT HABE; SIE SCHULDEN DIESEM RECHNER EINE MARK.
42
10 INPUT A, A%, A$
20 PRINT A, A%, A$
Das Programm erwartet drei Datenei ngaben : ei ne Dezi-
malzahl, ei ne ganze Zahl und ei ne Zeichenrei he. Geben
Sie zuerst alle drei Daten auf einmal ein, wobei Sie nach
dem ersten und dem zweiten Datum je ein Komma set-
zen. Wenn Sie dann die RETURN-Taste drücken, wer-
den alle drei Daten gedruckt. Lassen Sie das Programm
nun mit Hilfe von RUN noch einmal laufen, geben Sie
diesmal nur ein Datum ein, und drücken Sie dann die
RETURN-Taste. Das Programm wird weitere Daten von
Ihnen verlangen, indem es zwei Fragezeichen (??) aus-
gibt. Machen Sie weiter, und geben Sie die fehlenden
Daten ein. Experimentieren Sie noch etwas, indem Sie
falsche Datentypen eingeben. Geben Sie beispiels-
weise einen Namen ein, wenn das Programm eine Zahl
erwartet, und betrachten Sie sich die daraufhin erschei-
nende Fehlermeldung .
4. Wenn Ihnen Übung 3 noch Schwierigkeiten bereitet,
probieren Sie folgendes Programm:
RUN
?8
??3
??7
8 3 7
READY
43
5. Bei der Verwendung von Variablen namen können Sie
Überraschungen erleben. Probieren Sie folgende
Eingabe :
FORDERUNG
44
Einfache
11 • Berechnungen
Ihr Commodore 64 ist sehr gut im Rechnen . Hier ist ein
Beispiel :
NEW
10 REM KREISFLAECHE
20 PI=3.14159
30 PRINT "WAS IST DER RADIUS IHRES"
40 PRINT "KREISES IN CM"
50 INPUT R
60 FLAECHE=PI*RA 2
70 PRINT "DIE FLAECHE IHRES KREISES"
80 PRINT "IST ";FLAECHE;" QUADRAT-CM"
RUN
WAS IST DER RADIUS IHRES
KREISES IN CM
?45
DIE FLAECHE IHRES KREISES
IST 6361.71976 QUADRAT-CM
READY
45
Die Zeilen 30 und 40 sind einfache Druckanweisungen :
beide veranlassen, daß jeweils nur eine Zeichenreihe
gedruckt wird. Die Anführungszeichen werden nicht aus-
gegeben .
Zeile 50 zeigt eine INPUT-Anweisung. Da der Variablen -
name auf einen Buchstaben endet, erwartet das System
eineZahl. Wenn das System diese Anweisung liest, gibtes
auf dem Bildschirm ein Fragezeichen am Anfang der
nächsten Zeile aus. Dann wartet es und träumtvorsich hin,
bis Sie es mit dem Anschlagen der RETURN-Tastewieder
aufwecken . Es überprüft dann, ob Sie auch eine echte Zahl
eingegeben haben. Wenn das der Fall ist, wird diese Zahl
in R abgespeichert. Zeile 60 ist wieder eine arithmetische
Zuweisung (LET). Diesmal ist der Ausdruck auf der rechten
Seite ein arithmetis cher Ausdruck. Er sagt dem System ,
daß TI mit dem Quadrat der Radiuslänge multipliziert wer-
den soll.
Das System weiß auch, daß es die Potenzierung vor der
Multiplikation ausführen muß, weil man ihm beigebracht
hat, daß Potenzierungsoperationen grundsät zlich zuerst
berechnet werden .
Zeile 80 stellt wieder eine Druckanweisung dar, die dies -
mal aber etwas kompli zierter ist. Zuerst wird das Wort IST,
gefolgt von einem Leerzeichen, gedru ckt. Dann erscheint
die Zahl, die den Wert der Variablen FLAECHE ausdrü ckt.
Wenn es sich dabei um eine positive Zahl handelt, ist das
nächste Zeichen ein Leerzeichen; geben Sie aber eine
negative Zahl (also kleiner als Null) ein, dann wird ein
Minuszeichen (-) gedruckt.
Die Zahl endet nicht auf Null. Das Semikolon (;) unmittel-
bar hinter FLAECHE befieht dem System, mit dem Druk-
ken des nächsten Elements unmittelbar nach der Aus-
gabe der letzten Ziffer des Werts von FLAECHE zu be-
ginnen.
Als nächste Element erscheint in diesem Fall eine Zei-
chenreihe , deren erstes Zeichen ein Leerzeichen ist. Sie
46
sollten nach dem Drucken einer Zahl immer mindestens
eine Leerstelle lassen, damit die Zahl nicht mit dem nach-
folgenden Druckelement verbunden wird.
Übungen
1. Das Volumen einer Kugel mit Radius R errechnet sich
nach der Formel 3/ 4 . n . R3. Ändern Sie die Zeilen 60
bis 80 des obigen Programms so ab, daß das Pro-
gramm das Volumen einer Kugel berechnet. Wieviel
Kubikzentimeter beträgt das Volumen einer Kugel mit
einem Radius von 47 cm?
2. Schreiben Sie eine PRINT-Anweisung, die den Aus-
druck 4,235 . 3562,9802 berechnet.
3. Schreiben Sie ein Programm, mit dessen Hilfe Sie den
Zinseszins eines fiktiven Betrags berechnen. Ange-
nommen, Sie investieren einen Betrag C bei einer Zins-
rate R für einen Zeitraum von N Jahren, so errechnet
sich der Zinseszins nach der Formel:
S = C(1+R/100)n
47
dauer von 8 Jahren und einer Zinsrate von 17 Prozent
erhalten Sie folgende Ausgabe :
RUN
ANLAGEKAPITAL
?
10000
JAEHRLICHE ZINSRATE
?
17
ANLAGEDAUER IN JAHREN
?
8
NACH 8 JAHREN ERHALTEN SIE 35114.5 DM
48
Arithmetische
12
. • Ausdrücke
Auf der Tastatur des Commodore 64 werden fünf arithmeti -
sche Operationen durch jeweils ein Zeichen dargestellt:
t Potenzierung
*Multiplikation
/ Division
+ Addition
- Subtraktion
49
In den folgenden Beispie len wird ein in Worten ausge-
drücktes Problem in einen arithmetischen Ausdruck um-
gewandelt. Betrachten Sie die Beispiele, und führen Sie
ansch ließend die Übungen durch.
Beispie l1 : Erheben Sie das Produkt aus 8 und 5 in die drit-
te Potenz. Antwort: (8*5)t)l3.
Beispiel 2: Addieren Sie 2,3,4 und 5, und bilden Sie das
Quadrat des Ergebnisses. Antwort: (2+3+4 +5 )1)12.
Beispiel 3: Ziehen Sie die Wurzel aus X2 + Y2. Antwort :
(X t)I 2 t)I ,Y t)I 2) .5 (Wußten Sie schon, daß man die Wurzel
aus einer Zahl ziehen kann, indem man sie hoch Vz
nimmt?) .
Übungen
1. Berechnen Sie den Durchschnitt der Zahlen -4.5, 7.89
und 13.78. Hinweis : Addieren Sie die Zahlen, und teilen
Sie die Summe durch drei.
2. Bilden Sie das Produkt aus den Zahlen 1.1,1.2,1.3und
1.4.
3. Für den Anfänger ist es oft mit Schwierigkeiten verbun-
den, die gewohnte Schreibweise von Formeln in BASIC
zu übertragen .Während man normalerweise die Formel
7ab
als Produkt »7 mal a mal b« liest, ohne daß das Zeic hen
für Multiplikation geschrieben wurde, ist dies in BASIC
nicht mögli ch; die korrekte Schreibweise lautet hier:
7ab
Versuchen Sie daher, in folgender Gegenüberstellung
selbständig die BASIC-Form des algebraischen Aus-
drucks zu schreiben :
50
Algebra BASIC
a+b A + 8
3(10-3,5 ) 3*(10-3.5)
1
"2 (5x+2y) 1/2*(5X+2*Y)
ab
c A*8/C
0,25 (2(x+ 10)-3y) 0.25*(2*(X+10)-3*Y)
a+b
A+8/C+D
c+d
x 2 +2ab X1'2+2*A*8
x 2 +y Xt(2+Y)
Weiterhin existieren in BASIC Schlüsselwörter, die bei-
spielsweise bei der Sinus- oder Wurzelberechnung
Anwendung finden; sie sind in Kapitel 21 aufgelistet.
Das Schlüsselwort SQR ersetzt so das Wurzelzeichen:
Algebra BASIC
-IX SQR(X)
-IO,5x-y SQR(Q.5*X)-Y
-/2X+1 SQR(2*X+1)/(X+y)
x+y
51
IF... THEN-
13 • Anweisung
Wollen Sie, daß Ihr Rechner sinnvo lle Arbeit für Sie leistet,
dann müssen Sie ihn Entscheidungen treffen lassen und
ihn auf der Grundlage dieser Entscheidungen antworten
lassen. Dafür gibt es die IF... THEN-Anweisung. Sie ist von
einfacher Form, wie das folgende Beisp iel zeigt.
Tippen Sie das angeführte Programm ein, und lassen Sie
es mit Hilfe des Kommandos RUN laufen.
NEW
10 REM DER GROESSTE KREIS
20 PRINT "WIE GROSS IST DER GROESSTE KREIS"
30 PRINT "(IN DEN SIE GESEHEN HABEN?"
40 INPUT RADIUS
50 IF RADIUS> 1000 THEN GOTO 80
60 PRINT "SEHR BEEINDRUCKEND"
70 END
80 PRINT "GLAUBE ICH NICHT"
52
NICHT ausgeben und anhalten, weil keine weiteren An-
weisungen auszuführen sind.
Übungen
1. Ändern Sie das Programm DER GROESSTE KREIS so
ab, daß als Ausgabe GENAU RICHTIG erscheint, wenn
Sie die Zahl 1000 eingeben, und dasselbe wie bisher
ausgegeben wird , wenn Sie eine Zahl eingeben, die
kleiner oder größer als 1000 ist.
2. Schreiben Sie ein Programm, das nach einer Lieblings-
zahl fragt. Ist die eingegebene Zahl kleiner als 10, soll
folgende Ausgabe erscheinen: TUT MIR LEID, SIE IST
ZU KLEIN. Aufdie Eingabe derZahl10soil es antworten:
GENAU RICHTIG. Ist die Zahl größer als 10, soll das Pro-
gramm ausgeben: SIE IST ZU GROSS. In jedem Fall
soll Ihr Programm aufhören, nachdem es eine dieser
drei Meldungen ausgegeben hat.
53
Logische
14 • Ausdrücke
Jeder logische Ausdruck entspricht erner Frage, auf die es
die Antwort »ja « oder die Antwort »nein« gibt.
In logischen Ausdrücken werden folgende Vergleichs-
modelle verwendet:
gleich
<> ungleich
< kleiner als
> größer als
<= kleiner als oder gleich
>= größer als oder gleich
Die Wahrheit oder Falschheit eines logischen Ausdrucks
läßt sich dadurch bestimmen, daß man von der Maschine
verlangt, den logischen Ausdruck auszugeben. Ist der
logische Ausdruck falsch, antwortet die Maschine mit
Null; ist er wahr, wird die Maschine die Ausgabe minus 1
(-1) erscheinen lassen. Probieren Sie das mit folgenden
Ausdrücken aus :
2=2 <wahr)
7<8 <wahr)
45<=23.8 <faLsch)
32>14 AND 7=3+4 <wahr)
3*9>100 AND 80>=8*10 <faLsch)
50/25=2 AND 400<9*50 <faLsch)
45=40+5 OR 6/2<=3 <wahr)
44=7t2 OR 4t3>2t3 <wahr)
11>99/9 OR65=60-5 <faLsch)
54
Bei direkter Ausführung kann man Variablen Werte zu-
weisen. Diese bleiben erhalten, bis Sie sie ändern. Geben
Sie die folgende Zeile ein, und drücken Sie dann die .
RETURN-Taste:
?X*(Y+Z)«4.56-Z)*(Y-X)
?(X-Y)tZ<>342 OR xtXtXtX=1
?NOT(2)3ANDNOT(4+2<>6))
Übungen
1. Schreiben Sie einen logischen Ausdruck, der besagt,
daß X + 1 nicht gleich Y ist.
2. Schreiben Sie einen logischen Ausdruck, der besagt,
daß Y2 größer als 5 ist, und daß X-5 kleinerodergleich
Z ist.
55
15. Schleifen
Ein weiteres wertvolles Paar von Anweisungen sind FOR
und NEXT. Sie werden dazu benutzt, Schleifen in Ihrem
Programm zu bilden, so daß dieselbe Operation immer
wieder ausgeführt werden kann. Für die meisten Men-
schen sind Wiederholungen langweilig , während Maschi-
nen im Gegensatz dazu sie geradezu lieben .
Erstellen Sie einfach eine Liste der Anweisungen, die Sie
wiederholt von Ihrem Computer ausgeführt haben möch-
ten. Setzen Sie eine FOR-Anweisung davor und eine
NEXT-Anweisung dahinter, womit Sie der Maschine sa-
gen, wo sie anfangen und wo sie aufhören soll, und lassen
Sie dieses Programmstück laufen.
Versuchen Sie einmal dieses Programm:
NEW
5 REM ZAEHLEN BIS 10
10 PRINT "ICH ZAEHLE BIS 10 IN ZWEIERSCHRITTEN"
20 FOR COUNT=2 TO 10 STEP 2
30 PRINT COUNT
40 NEXT COUNT
RUN
ICH ZAEHLE BIS 10 IN ZWEIERSCHRITTEN
2
4
6
8
10
READY
56
und man kann seinen Wert innerhalb der Schleife nicht
verändern. Man kann den Wert des Schleifenzählers in Be-
rechnungen verwenden, aber er darf nie auf der linken
Seite einer Zuweisung stehen.
In der FüR-Anweisung müssen Sie angeben , mit wei-
chem Wert der Schleifenzäh leranfangen und mit welchem
Wert er aufhören so ll. Wenn Sie sonst nichts angeben, wird
bei jedem Durchlauf der Schleife die Zahl 1 zu dem im
Schleifenzähler angegebenen Wert hinzugezählt. Wenn
Sie wollen, daß ein anderer Wert jedes Mal dazuaddiert
wird, dann müssen Sie noch das Wort STEP, gefolgt von
der gewünschten positiven oder negativen Zah l, hinzu-
fügen.
Zei le 30 ist die einzige PRINT-Anweisung innerhalb der
Schleife. In diesem Fall druckt das System den Wert des
Schleifenzählers, den er jeweils beim Durchlaufen dieser
Anwe isun g hat.
Al le Schleifen müssen mit einer NEXT-Anweisung enden .
Es ist guter Stil, aber nicht notwendig, hier noch einma l
den Schleifenzähler, der erhöht und getestet werden soll,
anzugeben. Das zahlt sich vor allen Dingen für de njenigen
aus, der das Programm liest.
Wenn das System auf eine NEXT-Anweisung läuft, addiert
es zunächst die hinter STEP angegebene Zah l auf den
Schleifenzähler . Dann entsche idet es, ob es noch einmal
durch die Schleife läuft oder ob es damit aufhört.
Wenn die hinter STEP angegebene Schrittweise posit iv ist,
und wenn der erhöhte Wert des Schleifenzählers die obere
Grenze noch nicht überschreitet , dann wird mit der Anwei-
sung, die auf die FüR-Anweisung folgt, fortgefa hren.
Wenn jedoch die obere Grenze überschritten worden ist,
dann wird mit der Anweisung unmittelbar hinterder NEXT-
Anwe isung fortgefahren .
In einer Schleife kann eine weitere Schleife stehen. In die-
sem Fall spricht man davon, daß die Schleifen ineinander
gesc hachte lt sind . In diesem Fall werden jedesmal, wenn
57
die äußere Schleife einmal durchlaufen wird, sämtliche
Schleifendurchläufe der inneren Schleife ausgeführt.
Ineinander geschachtelte FüR ... NEXT-Schleifen sind
immer dann nützlich, wenn eine Menge von Aktionen als
Bestandteil anderer sich wiederholender Aktionen mehr-
fach ausgeführt werden muß.
Häufig wird der Schleifenzähler in Berechnungen inner-
halb von FüR ... NEXT-Schleifen verwendet. Das ist zuläs-
sig, solange der Wert des Schleifenzählers innerhalb der
Schleife nicht verändert wird.
Geben Sie das folgende Programm, das die Multiplika-
tionstabelle aller Zahlen zwischen 1 und 12 ausdruckt, ein,
und lassen Sie es mit Hilfe von RUN laufen. Denken Sie da-
ran, daß immer eine Schrittweite von 1 angenommen wird,
wenn STEP nicht angegeben ist.
NEW
10 REM MULTIPLIKATIONSTABELLE
20 FOR X=1 TO 12
30 PRINT X;"-TABELLE":PRINT
40 FOR Y=1 TO 12
50 PRINT X;" MAL ";Y;" IST ";X*Y
60 NEXT Y
70 PRINT
80 NEXT X
Während der Wert von Y die Zahlen von 1 bis 12 annimmt,
bleibt derWertvon X konstant. Anschließend wird derWert
von X um 1 erhöht, und der Schleifendurchlauf wiederholt
sich.
Es ist vorteilhaft, die Ausgabe dieses Programms an den
Drucker zu schicken, denn auf dem Bildschirm wird sie zu
schnell angezeigt, als daß man sie wirklich verfolgen
könnte. Die Ausführung des Programms kann jedoch ver-
langsamt werden, indem Sie eine spezielle Form der
FüR .. . NEXT-Schleife verwenden, die man »Verzöge-
58
rungsschleife « nennt. Fügen Sie dem Programm die fol-
genden beiden Zeilen hinzu:
Diese bei den Zeilen haben zur Folge, daß Ihr Programm
solange anhält, wie der Computer braucht, um bis 500
zu zählen. Die Dauer der Verzögerung kann dadurch
gesteuert werden, daß man den Endwert erhöht oder er-
niedrigt.
Übungen
1. Schreiben Sie ein Programm, das hundertmal JONA-
THAN druckt.
2. Berechnen Sie die Summe der Zahlen 1,2,3,4, ... ,100;
d.h., zählen Sie die ersten hundert ganzen Zahlen zu-
sammen. Hinweis: Verwenden Sie eine Schleife mit
ei nem Zähler, der von 1 bis 100 läuft, und zählen Sie bei
jedem Schleifendur chlauf den Wert des Zählers zu
dem, was Sie bisher schon zusam mengezählt haben,
dazu, wobei Sie eine Anweisung wie die folgende ver-
wenden:
59
gerader Zahlen von 7 anzeigt. Antwort: Ändern Sie Zeile
40 des auf Seite 58 abgedruckten Programms wie folgt:
60
von Daten
16 • In Proprammen
Manchmal ist es nützlich, viele Daten durch ein Programm
bearbeiten zu lassen. Auf diese Weise kann man Pro-
gramm und Daten zugleich sichern.
DATA-Anweisungen gestatten die Speicherung großer
Mengen von Information innerhalb des Programms.
DATA-Anweisungen können ganze Zahlen, Dezimalzah-
len oder Zeichenreihen enthalten. Sie werden dazu ver-
wendet, den in READ-Anweisungen enthaltenen Variablen
Werte zuzuw eisen, z.B. auf folgende Weise:
10 READ X, Y%,Z$
20 DATA 25.4,6,"JAHR"
30 PRINT X,Y%,Z$
RUN
25.4 6 JAHR
61
10 READ X
20 READ Y%,Z$
100 DATA 25.4,6,"JAHR"
10 READ X,Y%,Z$
100 DATA 25.4
110 DATA 6
120 DATA "JAHR"
Jetzt versuchen Sie einmal dieses Beispiel:
NEW
10 ?"WARE","ANZ","PREIS","KOSTEN"
20 ?
30 READ WARE,ANZ%,PREIS
40 KOSTEN=ANZ%*PREIS
50 ?WARE$,ANZ%,PREIS,KOSTEN
140 DATA PAPIER,5
150 DATA 1.25,BROT,12,3.99,TISCH
Beachten Sie, daß eine READ-Anweisung zwei DATA-An-
weisungen verwendet. Außerdem gibt es überzählige
DATA-Elemente. Beides ist völlig zulässig.
Stehen dem Programm keine Datenwerte mehr zur Ver-
fügung, bevor sämtliche READ-Variablen mit Werten be-
setzt sind, bekommt man eine Fehlermeldung.
Vielfach werden die Elemente einer DATA-Anweisung von
einer READ-Anweisung, die innerhalb einer Schleife liegt,
gelesen . Fügen Sie dem obigen Programm die folgenden
Zeilen hinzu :
25 FOR K=1 TO 4
60 NEXT K
160 DATA 3,50.55,STUHL,5,25.15
62
Die FOR ... NEXT-Schleife in obigem Programm ist nur für
Fälle geeignet, in denen genau vier Datenmengen
lesen werden müssen. Vielfach soll jedoch ein und das-
selbe Programm mit verschieden vielen Daten laufen. In
solchen Fällen wird die letzte Datenmenge dazu verwen-
det, das Ende der Daten anzuzeigen. Eine solche Anzeige
kann ein beliebiger Wert sein, den gültige Daten niemals
annehmen würden. Nach jeder READ-Anweisung über-
prüft das Programm, ob das Ende der Daten angezeigt
worden ist, ehe es die weiteren Operationen innerhalb der
Schleife ausführt. Bei Anzeige des Datenendes wird die
Schleife beendet.
Nehmen Sie jetzt Änderungen an dem letzten Programm
vor: Löschen Sie die Zeilen 25 und 60, indem Sie jede der
beiden Zeilennummern , gefolgt vom Ansch lagen der
RETURN-Taste, eingeben . Dann fügen Sie die folgenden
Zeilen hinzu:
63
Ein Spesenabrechnungs-
17. programm
Sie sind jetzt in der Lage, ein Programm zu schreiben, das
Sie zu nützlichen Berechnungen verwenden können. Bei
folgender Problemstellung werden zehn DATA-Anweisun-
gen verwendet. Jede Anwe isung enthä lt den Typ T, den
BetragA und den Rechnungsstel lerV$fürdie Abrechnung
einer Dienstreise nach München .
Das Programm soll folgendes leisten:
1. Der jeweilige Erstattungsbetrag R berechnet sich wie
folgt:
Wenn T gleich 1 ist, dann ist R 100% des Betrags von A.
Wenn T gleich 2 ist, dann ist R 80%des Betrags von A.
Wenn T gleich 3 ist, dann ist R 20%des Betrags von A.
Wenn T irgendeinen anderen Wert hat, dann soll die
Ausgabe FALSCHE TYPZAHL gedruckt werden.
2. Es sol! der Typ T, der RechnungsstellerV$, der Betrag A
und der Erstattungsbetrag R (der in Schritt 1 berechnet
worden ist) ausgegeben werden.
3. Sind alle zehn Anweisungen verarbeitet worden, soll
das Programm VERARBEITUNG ABGESCHLOSSEN
ausgeben und anhalten.
64
210 DATA 2,9.00, "TAXI"
220 DA TA 3,55.40, "CITY BAR"
230 REM *****ENDE DER DATEN*****
RUN
SPESENABRECHNUNG
T RECHNUNGSSTELLER BETRAG ERST
1 HILTON MUENCHEN 180.00 180. 00
3 CITY BAR 21.50 4.30
2 PIZZALAND 32.80 26.24
1 CA FE 12.60 12.60
1 TAXI 8.70 8.70
3 STADTRUNDFAHRT 10.00 2.00
1 HILTON MUENCHEN 180.00 180. 00
65
2 ZEITSCHRIFTEN 8.20 6.56
2 TAXI 9.00 9 . 00
3 CITY BAR 55.40 11.08
VERARBEITUNG ABGESCHLOSSEN
66
18. Felder
Felder erlauben eine wesentlich schnellere Berechnung
der Spesendaten aus München, da man sie nur einmal zu
lesen braucht.
Fügen Sie Ihrem Programm die folgenden Zeilen hinzu:
67
310 REM BERECHNUNG DES DURCHSCHNITTS AVE
320 AVE=O
330 FüR K=1 Tü 10
340 AVE=AVE + A(K)
350 NEXT K
360 ?"DURCHSCHNITTSBETRAG IST ",AVE/10
RUN
68
Die Formate von
19 • Schlüsselwörtern
Mittlerweile existiert eine Sprache, die einen Programmie-
rer genau informiert, welche Anweisungen für ein be-
stimmtes System zulässig sind . DieseSprache hat keinen
Namen, abersiewird heutzutage überall verwendet. Sie ist
sowohl für den Anfänger als auch für den fortgeschrittenen
Programmierer geeignet und wird, wenn Sie weiterhin pro-
grammieren wollen, Ihnen eine große Hilfe sein. (Wenn Sie
für den Rest Ihres Lebens vom Programmieren genug
haben, dann hören Sie am besten hier mit dem Lesen auf
und verkaufen dieses Buch an einen Freund.)
Betrachten wir ein so einfaches Schlüsselwort wie NEW.
Es bietet keine Wahlmöglichkeiten . Das allgemeine For-
mat dieses Kommandos sieht daher folgendermaßen
aus:
FORMAT: NEW
69
wahlfrei (optiona l) ist, d. h., Sie können ihn weglassen,
wenn Sie wollen. Die spitzen Klammern stehen für verän-
derbare Ausdrücke, in diesem Fall für Zeilennummern , bei
der mit der Ausführung des Programms begonnen wer-
den soll. Was innerhalb der spitzen Klammern steht, soll
Ihnen lediglich andeuten, worum es an dieser Stelle geht.
Wenn Sie die Liste der Schlüsselwörter durchsehen, dann
werden Sie auf Ausdrücke wie < variable >, < zahl > ,
< speicherplatz >, < dateinummer > , < ausdruck > usw.
stoßen. Zwar handelt es sich sowohl bei < zahl > als auch
bei < dateinummer > um Zahlen, aber eine < dateinum-
mer > kann den Wert 15 nicht übersteigen.
Noch komple xer wirkt folgendes Format:
Hierbei ist < element > ein Wort oder ein Ausdruck, bei-
spielsweise »Spesenberechnung « oder 3 + 2.
Wie die beiden eckigen Klammern verraten, sind beide
Objekte hinter dem Kommando PRINT optional. Daraus
folgt zugleich, daß PRINT für sich alleine vom System ak-
zeptiert wird. Es sagt nichts darüber aus, was das System
machen wird (tatsächlich wird es eine leere Zeile ausge-
ben), aber es signalisiert, daß die Syntax in Ordnung ist
oder, was dasselbe ist, daß das System weiß, was Sie
meinen. Sie wissen vielleicht nicht, was Sie meinen, aber
das System weiß es.
In dem ersten eckigen Klammernpaar steht das Objekt
< element >. Das bedeutet, daß man ein < element > un-
mittelbar hinter dem Wort PRINT schreiben kann, etwas
anderes aber ausgeschlossen ist. Damit ist also eine An-
weisung wie PRINT A$ zulässig , wohingegen PRINT;A$
unzulässig ist.
Das zweite eckige Klammernpaar ist komplizierter und
auch schwieriger zu lesen. Der Schrägstrich (I) bedeutet,
daß an dieser Stelle die Wahl zwischen den angegebenen
70
Zeichen oder Zeichenreihen besteht. Die Formatanwei-
sung besagt hier, daß man nach dem ersten Element ein
Komma oder ein Semikolon setzen kann.
Was Sie nun auch setzen (ein Komma oder ein Semiko-
lon), ihm muß ein weiteres < element > folgen, denn wenn
ei n Bestandteil der in den eckigen Klammern aufgeführten
Angaben geschrieben wird, dann müssen auch die übri-
gen angegeben werden. Während also PRINT A,B oder
PRINT A; B zulässig ist, erhalten Sie für PRINTA;;;B, eine
Fehlermeldung.
Jetzt sollten Sie keine Schwierigkeiten mehr haben, die
Syntax eines beliebigen Schlüsselworts zu verstehen.
71
Die verschiedenenArten
20 • von Schlüsselwörtern
Ein Schlüsselwort ist eine Zeichenreihe; das System ist so
programmiert, daß es Schlüsselwörter sofort erkennt. Bei-
sp iele für Schlüsse lwörter sind RUN, NEW, LIST, PRINT,
OR, COS. Immer wenn das System eine solche Zeichen-
reihe liest, wird es dadurch veranlaßt, eine bestimmte
Operation durchzuführen. Das ist der Grund, warum Sie
keine Variablennamen verwenden dürfen, die Schlüssel-
wörter enthalten: Das System würde grundlos aufge-
schreckt werden.
Geben Sie z. B. eine so unschuldig ausssehende Anwei-
sung wie
ein, wird das System Sie daran erinnern, daß ein Syntax-
fehlervorliegt. Der Grund: Sie haben das Wort COS (für die
Cosinusfunktion) als die ersten drei Buchstaben Ihres
Variablen namen COST verwendet.
Das System muß deshalb so engstirnig sein, da es Ihnen
erlaubt ist, Leerzeichen zu schreiben, wo immer Sie wollen.
Sie können aber Ihre Anweisungen auch ohne Leer-
zeichen schreiben. Das System muß deshalb gewisse
Zeichenreihen erkennen, auch dann, wenn sie mit ande-
ren Zeichenreihen zusammenstoßen. Diese gewissen
Worte sind genau die Schlüsselwörtervon Commodore 64
BASIC.
Es gibt verschiedene Arten von Schlüsselwörtern. Zum
einen existieren Wörter, die nicht wirklich zur Sprache
BASIC gehören; ihnen kann man keine Zeilennummern
voranstellen. Dies betrifft Schlüsselwörter wie NEW, RUN
und LIST. Sie werden zur näheren Kennzeichnung als
Kommandos klassifiziert. Es ist sicher vernünftig, Anwei-
72
sungen, die Bestandteil eines Programms sein können
(im weiteren als »Anweisungen « bezeichnet), zu trennen
von Anweisungen, die nicht Bestandteil eines Programms
sein können (im weiteren »Kommandos « genannt).
Weiterhin werden Anweisungen (genauer gesagt, die in
einem Programm zulässigen Anweisungen) unterschie-
den in solche , die zusätzliche Geräte, wie Laufwerke oder
Drucker, voraussetzen, und solche , die Sie auch dann ver-
wenden können, wenn Sie nichts als einen Schwarzweiß-
fernseher und Ihren Commodore 64 besitzen. Die Anwei-
sungen, die zusätzliche Geldausgaben von Ihnen fordern,
nennt man E/A-Anweisungen (»Ein/Ausgabe-Anweisun-
gen«). Mit ihrer Hilfe wird Information an ein Laufwerk,
einen Rekorder, einen Drucker oder ein anderes Gerät ge-
schickt oder von dort geholt.
Eine weitere Klasse von BASIC-Anweisungen stellen die
Funktionen dar. Wenn Sie das Programmieren wirklich
lernen wollen, dann müssen Sie wissen, was eine Funk-
tion ist.
Eine Funktion ist eine Vorschrift, die einem oder mehreren
Eingabewerten genau einen Ausgabewert zuordnet. Han-
delt es sich bei dem Ausgabewert immer um eine ganze
Zahl, dann spricht man von einer ganzzahligen Funktion;
ist der Ausgabewert immer ein String (also eine Zeichen-
reihe), dann spricht man von einer Stringfunktion ; stellt
schließlich der Ausgabewert eine Dezimalzahl dar, be-
zeichnet man die Funktion als Dezimalfunktion.
73
3. Ganzzahlige Funktion: Eine Funktion, die ein ganzzah-
liges Ergebnis liefert.
4. Dezimalfunktion : Eine Funktion, die eine Dezimalzahl
als Ergebnis liefert.
5. Stringfunktion: Eine Funktion, die einen String (Zeichen-
reihe) als Ergebnis .liefert.
6. Operator : Ein logischer Operator, der Bestandteil einer
umfassenden Anweisung ist.
7. E/A-Anweisung: Ein Kommando odereineAnweisung,
durch die ein Eingabegerät oder ein Ausgabegerät ge-
steuert wird .
74
Liste der
21 • Schlüsselwörter
ABS
Typ: Dezimalfunktion
Beispiel: PRINT ABS(-4 .5)
4.5
Format: ABS ( < ausd ruck »
Leistung : Liefert den Absolutbetrag einer Zahl. Bei einer
positiven Zahl ist der Absolutbetrag die Zahl selbst, bei
einer negativen Zahl die mit -1 multiplizierte Zahl).
AND
Typ: Operator
Beispiel : IF X < 3 AND Y> 2
Format: < ausdruck > AND < ausdruck >
Leistung: Liefert den Wahrheitswert »wahr « nur dann,
wenn beide Ausdrücke wahr sind; ist nur ein Ausdruck
wahr oder sind beide falsch, ist der Wahrheitswert der Ver-
knüpfung »falsch«. Wenn Zahlen anstelle der Ausdrücke
eingesetzt werden, ist der Funktionswert eine durch 16 Bit
darstellbare Zahl, die dadurch entsteht, daß man die bei-
den Zahlen bitweise durch logisches »und « miteinander
verknüpft, nachdem man die beiden Zahlen in eine 16-Bit-
Darstellung umgewandelt hat.
Fehlermeldungen: ?ILLEGAL QUANTITY,falls Zahlen ver-
wendet werden , die außerhalb des Bereichs zwischen
-32768 und + 32767 liegen.
ASC
Typ: Ganzzahlige Funktion
Beisp iel : PRINT ASC(»MAX« )
Format: ASC( < string »
Leistung: Liefert den ASCII-Wert des ersten Zeichens der
Zeichenreihe .
75
Fehlermeldungen: ?ILLEGAL QUANTITY, falls der String
leer ist.
ATN
Typ: Dezimalfunktion
Beispiel: ATN (56.0987)
Format: .ATN ( <zah I »
Leistung: Berechnet den Arcustangens der angegebenen
Zahl. Weitere Winkelfunktionen berechnen COS, SIN und
TAN.
CHR$
Typ: Stringfunktion
Beispiel: CHR$ (65)
Format: CHR$«zahl »
Leistung: Ersetzt Steuerzeichen durch Zahlen im ASCII-
Code.
Fehlermeldungen: ?ILLEGAL QUANTITY, falls eine Zah l
verwendet wird, die außerhalb des Bereichs zwischen 0
und 155 liegt.
CLOSE
Typ: E/A-Anweisun g
Beispiel: CLOSE 4
Format: CLOSE < dateinummer >
Leistung : Speichert eine unvollständige Datei auf ein Ge-
rät, beendet die Kommunikation und gibt den von einem
eröffneten Kanal beanspruchten Teil des Hauptspeichers
wieder frei.
CLR
Typ: Anweisung
Beispiel: CLR
Format: CLR
Leistung: Löscht alle nicht dauerhaften Daten im Haupt-
speicher.
76
CMD
Typ: E/A-Anweisung
Beispiel: CMD 4, »STEUERBETRAG«
Format: CMD < dateinummer > , [ < string >l
Leistung: Lenkt die Normalausgabe vom Bildschirm auf
das spezifizierte Gerät bzw. auf die spezifizierte Datei. Ein
angegebener String wird als Dateiname aufgefaßt. Die
Dateinummer muß in einervorausgegangenen OPEN-An-
weisung bereits vorgekommen sein.
Um die Ausgabe wieder auf den Bildschirm zu lenken,
muß mit einer PRINT#-Anweisung eine Leerzeile an das
Gerät bzw. die Datei geschickt werden, ehe sie mit CLOSE
geschlossen wird. Auch bei Auftreten eines beliebigen
Systemfehlers wird die Ausgabe wieder auf den Bild-
schirm gegeben.
CONT
Typ: Kommando
Beispiel: CONT
Format: CONT
Leistung: Setzt die Ausführung eines Programms an der
Stelle fort, an der sie unterbrochen wurde .
Fehlermeldungen: CAN'T CONTINUE, falls das System
die Ausführung nicht fortsetzen kann (das kann verschie-
dene Gründe haben).
COS
Typ: Dezimalfunktion
Beispiel: COS (Y*PI/180)
Format: COS«zahl »
Leistung : Berechnet den Cosinus einer Zahl.
DATA
Typ: Anweisung
Beispiel: DATA »WOZU«, 865, 67.35
Format: DATA < konstantenliste >
77
Leistung : Speichert die aufgezählten Konstante n inner-
halb des Programms.
DEFFN
Typ:' Anwe isung
Beispiel: DEF FN A(X) =INT(RND(1)*X+ 1)
Format: DEF FN < name > ( < variable»= < ausdruck>
Leistung: Vereinbarung einer vom Benutzer definierten
Funktion.
OlM
Typ: Anweisung
Beispiel: DIM A(30), B(25)
Format: DIM <va riable > ( < indices »
[, <variable > ( < indices » ] ...
Leistung: ReseNiert den erforderlichen Hauptspeicher für
ein oder mehrere Felder.
Fehlermeldungen: REDIM'D ARRAY, falls versucht wird,
ein Feld innerhalb eines Programms zum zweiten Mal zu
dimensionieren .
END
Typ : Anwe isung
Beispiel: END
Format: END
Leistung: Beendet die Ausführung eines Programms und
bewirkt die Ausgabe von READY auf dem Bildschirm.
EXP
Typ: Dezimalfunktion
Beispiel: EXP(1) .
Format: EXP«zahl »
Leistung: Berechnet die mathematische Konstante e
(e= 2.71828183) hoch die angegebene Zahl.
Fehlermeldungen: ?OVERFLOW, falls die angegebene
Zahl größer als 88.0296919 ist.
78
FN
Typ: Dezimalfunktion
Beispiel: PRINT FN A(3)
Format: FN < name > «zahl »
Leistung: Liefert den Wert, der von der vom Benutzer defi-
nierten Funktion mit dem ange gebenen Namen berech-
net wird .
Fehlermeldungen : UNDEF'D FUNCTION, falls FN ausge-
führt werden soll, ehe eine entsprechende DEF FN-Anwei-
sung ausgeführt wurde .
FRE
Typ: Ganzzahlige Funktion
Beispiel: FRE(O)
Format: FRE « variable »
Leistung : Stellt fest, wi eviel Speicherkapazität im RAM
noch verfügbar ist.
GET
Typ: Anweisung
Beispiel: GET X,X$
Format: GET < variablenliste >
Leistung: Liest jeweils ein einzelnes Zeichen aus dem
Tastaturpuffer.
79
Fehlermeldungen: ?SYNTAX ERROR, falls eine Ziffer er-
wartet wird, aber ein Alphabetzeichen eingetippt wurde.
GET#
Typ: E/A-Anweisung
Beispiel: GET#1 ,C
Format: GET# < dateinummer >, < variablenliste >
Leistung: Liest jeweils ein einzelnes Zeichen vom spezifi-
zierten Gerät bzw. von der spezifizierten Datei.
GOSUB
Typ: Anweisung
Beispiel: GOSUB 3400
Format: GOSUB <z eilennummer >
Leistung: Sprung innerhalb eines Programms zu der An-
weisung mit der angegebenen Zeilennummer. Stößt das
Programm in der Fol.ge auf RETURN, wird mit der Anwei-
sung unmittelbar hinter GOSUB fortgefahren.
GOTO
Typ: Anweisung
Beispiel: GOTO 870
Format: GOTO < zeilennummer >
Leistung: Sprung innerhalb eines Programms zur Anwei-
sung mit der angegebenen Zeilennummer .
80
ist, oder es werden alle hinter THEN noch folgenden An-
weisungen ausgeführt . Hat der Ausdruck den Wahrheits-
wert »falsch «, dann wird mit der nächsten Anweisung im
Programmte xt fortgefahren .
INPUT
Typ: Anweisung
Beispiel : INPUT "ZAHL EINGEBEN:";N
Format: INPUT "< prompt > "; < variablenliste >
Leistung: Nimmt die vom Benutzer eingegebenen Zei-
chen bis zum nächsten RETURN entgegen und interpre-
tiert diese Zeichen als Datenwerte und Zuordnung dieser
Datenwerte zu den in der Liste angegebenen Variablen.
Fehlermeldungen: ?? bedeutet, daß eine weitere Eingabe
erforderlich ist, d. h., daß noch nicht genügend Daten ein-
gegeben worden sind, um alle Variablen der Liste mit
Werten zu versehen. ?REDO FROM START bedeutet, daß
man eine Zeichenre ihe eingegeben hat, obwohl eine Zahl
verlangt worden war, und daß man mit der Eingabe von
vorne anfangen muß. ?EXTRA IGNORED bedeutet, daß
mehr Werte eingegeben worden sind, als verlangt war,
und daß die überzähligen Werte vom System ignoriert
werden.
INPUT#
Typ: E/A-Anweisung
Beispiel : INPUT #1,A
Format: INPUT# < dateinummer > , < variab lenliste >
Leistung: Nimmt Zeichen vom angegebenen Gerät bzw.
der angegebenen Datei bis zum nächsten RETURN-Zei-
chen entgegen .
INT
Typ: Ganzzahlige Funktion
Beispiel : INT(-15.78)
Format: INT «zahl »
81
Leistung: Liefert den ganzzahligen Antei l einer Zahl. Ist die
Zahl positiv, werden die Stellen nach dem Komma wegge-
lassen, ist die Zahl negativ, dann ist das Ergebnis die
nächstkleinere Zahl.
LEFT$
Typ: Stringfunktion
Beispiel: LEFT$ (B$,7)
Format: LEFT$«string > , < ganze zahl >
Leistung: Liefert aus einer Zeichenreihe die links stehen-
den Zeichen bis zu der durch die Zahl markierten Stelle.
LEN
Typ : Ganzzahlige Funktion
Beispiel: LEN ("FRITZ") (Antwort: 5)
Format: LEN«s tring »
Leistung: Liefert die Anzahl der Zeichen der Zeichenreihe,
also ihre Länge.
LET
Typ : Anweisung
Beispiel: LET X= (4+ Y) 2
Format: [LET] < variable > = < ausdruck >
Leistung: Der Wert des Ausdrucks wird der Variable zuge-
wiesen. Das Wort LET kann weggelassen werden.
LIST
Typ: Kommando
Beispiel: LIST 10-30
Format: LlST[[ < erste zeile > ]-[ < Ietzte zeile > ]]
Leistung: Auflistung der angegebenen Zeilen Ihres Pro-
gramms .
LOAD
Typ: Kommando
Beispiel : LOAD "0: *",8,1
82
Format: LOAD[" < dateiname > "] [, < gerät > ] [, < adresse > ]
Leistung : Liest eine Programmdatei von Magnetband
oder Diskette in den Hauptspeicher. Dem Magnetband-
gerät entspricht die Gerätenummer 1 (Voreinstellungs-
wert), dem Diskettenlaufwerk die Gerätenummer 8.
Bei direkter Ausführung wird vor dem Laden des
Programms CLR ausgeführt. Bei Verwendung innerhalb
eines Programms führt das System das zu ladende Pro-
gramm unmittelba r nach dem Laden sofort aus. Auf diese
Weise können mehrere Programme miteinander ver-
knüpft werden.
Wird innerhalb des Dateinamens das Zeichen * verwen-
det, dann wird die erste Datei herangezogen, auf die der
restliche Dateiname paßt.
Das Programm wird ab Adresse 2048 in den Hauptsspei-
cher geladen , es sei denn, es ist 1 als Adresse angegeben ;
in diesem Fall wird das Programm an dieselbe Stelle gela-
den, an der es vor dem Sichern im Hauptspeicher gestan-
den ist.
LOG
Typ: Dezimalfunktion
Beispiel: LOG (34/32)
Format: LOG « zahl »
Leistung: Berechnet den natürlichen Logarithmus (zur
Basis e) der Zahl.
MID$
Typ: Stringfunktion
Beispiel: PRINT MID ("ETAGE",2,3)
TAG
Format: MID$«string >,< anfang > ,< länge »
Leistung: Liefert eine Teilzeichenreihe aus einem String,
die mit dem angegebenen Zeichen (von links gezählt) be-
ginnt und die angegebene Länge hat, wie aus dem ange -
führten Beispiel hervorgeht.
83
NEW
Typ: Kommando
Beisp iel : NEW
Format: NEW
Leistung : Löscht das gerade im Hauptspeicher befind-
liche Programm.
NEXT
Typ: Anweisung
Beispiel : NEXT I,J, K
Format: NEXT [< zähler > ] [< zähler > ] ...
Leistung: Bestimmt das Ende einer oder mehrerer FOR ...-
NEXT-Schleifen, wobei die Schleifen durch die Zähler-
variablen festgelegt werden. Wird keine Zählervariable an-
gegeben, dann bezieht sich NEXT auf das letzte noch nicht
abgeschlossene FOR.
NOT
Typ: Operator
Beisp iel: IF NOT 3 <4 THEN
Format: NOT < ausdruck >
Leistung : Liefert den Wahrheitswert »wahr«, wenn der Aus-
druck den Wert »falsch « besitzt und liefert den Wahrheits-
wert »falsch «, wenn der Ausdru ck den Wert »wahr« auf-
weist.
ON
Typ: Anweisung
Beispiel : ON K GOTO 450,670,300
Format: ON < variable > GOTO/GOSUB <z eilen nummer >
[, < zeilennummer > ] ...
Leistung: Bewirkt die Fortsetzung der Programmausfüh-
rung bei einer der angegebenen Zeilennummern, wenn
die ganzzahlige Variable einen Wert gleich einer dieser
Zeilennummern hat; andernfa lls wird die Ausführung mit
der nächsten Anweisung fortgesetzt.
84
OPEN
Typ: E/A-Anweisung
Beispiel : OPEN 1,8,15,"COMMAND"
Format: OPEN < dateinummer > [,< gerät > ] [, < adresse >]
[,"< dateiname > [, < typ > ] [, < betriebsart > ]"]
Leistung: Eröffnet einen Kanal für die Eingabe oder Aus-
gabe zu einem bestimmten Gerät. Voreinstellungswert für
das Magnetband ist 1. Die Dateinummer muß dieselbe
sein wie bei den entsprechenden Kommandos CLOSE,
CMD, GET#, INPUT# und PRINT#.
Bei < ad resse > bedeutet 1 das Eröffnen ei ner Datei auf
einer Kassette, 2 bewirkt das Schreiben einer Bandende-
marke bei Eingabe von CLOSE. Der < dateiname > darf
aus maximal 16 Zeichen bestehen. Bei < typ > wird als
Voreinstellungswert eine Programmdatei angenommen ,
für sequentielle Dateien ist SEQ und für relative REL anzu-
geben. Als < betriebsart > sind R für " Lesen« und W für
" Schreiben« zulässig.
OR
Typ: Operator
Beispiel: A=4 OR B=2.
Format: < ausdruck > OR < ausdruck >
Leistung : Liefert den Wahrheitswert " wahr«, wenn einer
der bei den Ausdrücke oder beide den Wert " wahr« haben.
Weisen beide Ausdrücke den Wert »falsch « auf, ist das Er-
gebnis ebenfalls »falsch«.
PEEK
Typ: Ganzzahlige Funktion
Beispiel: PEEK(53280)
Format: PEEK«speicherplatz »
Leistung: Liefert die ganze Zahl zwischen 0 und 255), die
gegenwärtig unter dem angegebenen Speicherplatz ab-
gelegt ist.
85
POKE
Typ: Anweisung
Beispiel: POKE 53281,4
Format: POKE < speicherplatz >, < wert >
Leistung: Schreibt ein Byte (= acht Bit) in den angegebe -
nen Speicherplatz.
POS
Typ: Ganzzahlige Funktion
Beispiel : POS (0)
Format: POS«dummy »
Leistung: Liefert die augenblick liche Position des Kursors
(0 bis 39 bedeutet die erste, 40 bis 79 die zweite Zeile).
PRINT
Typ: Anwe isung
Beispiel: PRINT "KASSENBELEG"
Format: PRINT[< variable >] ['/;<var iable > ] ...
Leistung : Bewirkt die Ausgabe der angegebenen Varia-
blen von links nach rechts auf dem Bildschirm oder auf ein
anderes Gerät. Bei Fehlen einer Ausgabeliste wird eine
Leerzeile ausgegeben.
Durch die Interpunkt ionszeic hen zwischen den Variablen
wird der Abstand zwischen den auszugebenden Zeichen
gesteuert. Ein Komma bedeutet, daß ab Beginn der näch-
sten Zone gedruckt werden soll (die 80-spaltige Ausgabe-
zeile ist in acht Zonen mit je 10 Spalten unterteilt) .. Ein
Semikolon fordert, daß unmitt elbar hinter dem zuletzt aus-
gegebenen Element weitergedruckt werden soll. Leerzei-
chen zwischen Stringkonstanten oder Variablen haben
dieselbe Wirkung wie ein Semiko lon. Werden Leerzeichen
an anderen Stellen verwendet, kann es Probleme geben .
Nach Absch luß der Anweisung durc h ein Komma oder
durch ein Semikolon fährt die nächste PRINT-Anweisung
dort fort, wo die letzte aufgehört hat, also in derselben Zeile
und an der derselben Position.
86
PRINT#
Typ: E/A-Anweisun g
Beisp iel: PRINT#1 "MACH", R$; "PAUSE"
Format: PRINT# < dateinummer > [< variable > ]
[,/; < variable > ] ...
Leistung: Identisch mit PRINT, abgesehen davon, daß die
Ausgabe in die angegebene Datei gelenkt wird. Bei Da-
teien auf Magnetband haben Interpunkt ionszeic hen
grundsätzlich die Wirkung des Semikolon .
Falls die Liste nicht durch ein Interpunktionszeiche n abge -
sch lossen ist, werden automatisch ein Wagenrück lauf und
ei n Zeilenvorschub eingefügt, anderfa lls nicht.
READ
Typ: Anweisung
Beisp iel: READ A,B,C
Format: READ < variable > [, < variab le > ] ...
Leistung: Liest die Werte aus einerDATA-Anweisung in die
angegebenen Variablen. Die Leseoperation beginnt mit
dem ersten DATA-Element, das noch nicht gelesen wor-
de n ist, und endet, wenn allen Variablen ein Wert zugeord-
net ist.
Fehlerme ldungen: ?SYNTAX ERROR bedeutet, daß der
Typ eines Datenelements nicht mit dem Typ derVariable n
zusammenpaßt. ?OUT OF DATA meldet, daß nicht mehr
genügend Daten für die ang egebene Variablenliste vor-
handen sind.
REM
Typ: Anweisung
Beisp iel: REM SPESENABRECHNUNG
Format: REM [< bemerkung > ]
Leistu ng: Diese Anweisung wird bei der Ausführung des
Programms ignor iert; sie erscheint nur bei der Auflistu ng
des Programms.
87
RESTORE
Typ : Anweisung
Beispiel: RESTORE
Format: RESTORE
Leistung: Setzt den Lesezeiger auf das erste Datenele-
ment der DATA-Anweisung .
RETURN
Typ: Anweisung
Beispiel: RETURN
Format: RETURN
Leistung: Sprung auf die Anweisung unmittelbar nach der
GOSUB-Anweisung , von der aus der Sprung in dieses
Unterprogramm erfolgte.
RIGHT$
Typ: Stringfunktion
Beispiel: PRINT RIGHT$("UNTEN",3)
TEN
Format: RIGHT$«string > ,< ganze zahl »
Leistung: Liefert aus einer Zeichenreihe eine Teilzeichen-
reihe, von rechts beginnend und in derdurch dieZahl mar-
kierten Länge.
RND
Typ: Dezimalfunktion
Beispiel: RND (0)
Format: RND«zahl »
Leistung: Liefert eine dezimale Zufallszahl zwischen 0.0
und 1.0. Die angegebene < zahl> ist ohne Bedeutung, ab-
gesehen von ihrem Vorzeichen. Positive Werte bewirken,
daß eine sich irgendwann wiederho lend e Zah lenfolge ge-
liefert wird. Null erzeugt eine sich wiederholende Folge
von Zufa llszahlen und ein negativer Wert bewirkt, daß bei
jedem Aufruf mit einer anderen Zufallsfolge begonnen
wird.
88
RUN
Typ: Kommando
Beispiel: RUN 35
Format: RUN [< zeilennummer >]
Leistung: Beginnt die Ausführung des aktuellen Pro-
gramms, wobei mit der angegebenen Zeilennummer an-
gefangen wird bzw. mit der ersten Zeile des Programms,
wenn keine Zeilennummer angegeben ist.
SAVE
Typ: Kommando
Beispiel: SAVE "TEST.34",8
Format: SAVE ["< dateiname> "] [, < gerät > ] [, < adresse > ]
Leistung: Speichert das aktuelle Programm auf Magnet-
band oder auf Diskette. Der Diskette entspricht die Geräte-
nummer 8, dem Magnetband, die Gerätenummer 1, sie
wird als Voreinstellungswert verwendet. Ist als Adresse 1
angegeben, dann wird das Programm beim Laden mit
LOAD an dieselbe Stelle des Hauptspeichers gebracht, an
der es zum Zeitpunkt der Sicherung steht. Die Angabe von
2 als Adresse bewirkt, daß das System eine Bandend-
marke hinter das Programm setzt. Die Angabe von 3 als
Adresse hat dieselbe Wirkung wie 1 und 2 zusammen.
SGN
Typ: Ganzzahlige Funktion
Beispiel: SGN (X)
Format: SGN«zahl »
Leistung: Liefert den Wert 1 bei positiven, den Wert -1 bei
negativen Zahlen. Die Zahl Null ergibt den Wert O.
SIN
Typ: Dezimalfunktion
Beispiel: SIN (X)
Format: SIN «zahl »
Leistung: Berechnet den Sinus der Zahl.
89
SPC
Typ: Ganzzahlige Funktion
Beispiel: SPC (0)
Format: SPC«zahl »
Leistung: Druckt die angegebene Anzahl von Zwischen-
räumen.
SQR
Typ: Dezimalfunktion
Beispiel : SQR (4)
Format: SQR«zahl »
Leistung : Berechnet die Quadratwurzel der Zahl.
Fehlermeldungen : ?ILLEGAL QUANTITY, falls die Zah l
negativ ist.
STATUS
Typ: Ganzzahlige Funktion
Beisp iel: STATUS
Format: STATUS
Leistung: Stellt fest, ob die I.etzte auf einer eröffneten Datei
ausgeführte E/A-Operation schon abgeschlossen ist oder
nicht.
STOP
Typ: Anweisung
Beispiel : STOP
Format: STOP
Leistung: Stoppt die Ausführung eines Programms und
bewirkt den Übergang in die der direkten Aus-
führung.
Fehlermeldungen: ?BREAK IN UNE nnnn gibt an, in weI-
cher Zeile die Ausführung des betreffenden Programms
angeha lten wurde.
STR$
Typ: Stringfunktion
90
Beispiel: PRINT STR$(1.567)
1.567
Format: STR$«zahl »
Leistung: Liefert die String-Darstellung der Zahl.
SYS
Typ: Anweisung
Beispiel: SYS (53280)
Format: SYS«speicherplatz »
Leistung: Sprung an den angegebenen Speicherplatz
und Beginn der Ausführung eines Programms in Maschi-
nensprache. Das entsprechende Maschi nencodepro-
grammstück muß mit einem RTS-Befehl (Rückkehr aus
einem Unterprogramm) enden. Es wird dann mit der
BASIC-Anweisung fortgefahren, die unmittelbar auf die
SYS-Anweisung folgt.
TAB
Typ: Anweisung
Beispiel: PRINT "NAME"TAB(25)"BETRAG"
Format: TAB«position »
Leistung: Bewegt den Kursor auf die angegebene Position
(zwischen 0 und 255).
TAN
Typ: Dezimalfunktion
Beispiel: TAN(.876)
Format: TAN «zah l »
Leistung: Berechnet den Tangens der Zahl.
TIME
Typ: Ganzzahlige Funktion
Beispiel: TI
Format: TI
Leistung: Gibt die Anzahl der Sekunden an, die seit dem
Einschalten des Computers vergangen sind .
91
TIME$
Typ: Stringfunktion
Beispiel: TI$
Format : TI$
Leistung: Liefert eine Zeichenreihe aus sechs Zeichen, die
die Zeit in der Form Stunden/Minuten/Sekunden ange-
ben. Man kann durch Besetzung von TI$ die Zeit auch je-
derzeit sei bst ei nstellen.
USR
Typ: Anweisung
Beispiel: USR«zahl »
Format: USR(X/3.4)
Leistung: Sprung in die Maschinensprachenroutine, de-
ren Anfangsadresse die Speicherplätze 785 und 786 sind
(in die man allerd ings mit Hilfe von POKE bereits etwas
hineingeschriebe n haben muß). DieZahl wird in den Gleit-
punktakkumulator gebracht. Ist die Maschinensprachen-
routine beendet, fährt das System mit der nächsten Anwei-
sung nach der USR-Anweisung fort.
VAL
Typ: Dezimalfunktion
Beispiel : VAL("BEREIT")
Format: VAL«string »
Leistung : Liefert ei ne Zahl, die der Zeichenreihe entspricht.
Ist das erste Zeichen der Zeichenreihe (Leerzeichen blei-
ben unberücksichtigt) wederein Plus noch ein Minus noch
eine Ziffer, dann ergibt sich Null als Wert.
VERIFY
Typ: Kommando
Beispiel : VERIFY "TEST1",8
Format: VERIFY["< dateiname > "] [, < gerät > ]
Leistung: Überprüft, ob das bezeichnete Programm mit
dem gegenwärtig im Hauptspeicher liegenden Programm
92
identisch ist. Voreinstellungswert für das Gerät ist 1 (Ma-
gnetbandgerät) . Der Dateiname kann bei einer Magnet-
banddatei weggelassen werden (in diesem Fall wird das
nächste auf dem Magnetband gefundene Programm ver-
wendet), muß bei einer Diskettendatei (Gerät 8) jedoch an-
gegeben werden.
Fehlermeldungen : ?VERIFY ERROR entsteht, wenn ir-
gendein Unterschied zwischen dem extern gespeicherten
Programm und dem Programm im Hauptspe icher be-
steht.
93
NOTIZEN
NOTIZEN
Goldmann -
computer compact
Kompetent. Kompakt. Verständlich und verläßlich.
Immer mehr wird der Personal- oder Homecomputer ein 'nicht
mehr wegzudenkendes Hilfsmittel in Haus, Beruf, Schule,
Industrie und Verwaltung.
Der Goldmann Verlag vermittelt dem Einsteiger und Fortge-
schrittenen in seiner neuen Reihe das Verständnis für die
wichtigsten Systeme und Programmiersprachen. Anwendungs-
bücher, für die jede r Computer-Interessent Verwendung hat!
Joseph Reymann
CP I M
Einführung in das
populärste Betriebssystem
Best. -Nr . 13117
Steve n Manus
IBM PC
Einführun g in System und
Betrieb
Best.-Nr. 13118
In Vorbere itung:
Richard G_ Peddicord
Commodore 64 Graphics
Einführung und Tr aining
Best. -Nr. 13 119
(Dezember '841
Ri chard G. Peddicord
Apple Basic
System und Anwendung
Best.-Nr. 13120
(Dezember '841
Richard G. Peddicord
Apple Graphies
Einführung und Training
Best. -Nr. 13121
(Jan uar '851
Richard G. Peddicord
Logo
Einführung in die popu lärst e
Lernsprache
Best. -Nr . 13 12 2
(Februar '851
William Urschel
Wordstar
Ei nführu ng in das
populärste P.rogramm tür
Textverarbe Itung
Best.-Nr. 13123
(M ärz '8 51
Carlton Shr um
Supereale
Einführun g und Training
Best.-Nr. 13124
13115 13116 ' (April '851
We... die.en viel.eitigen Home Compute ...
besitzt und behe .......chen will .. muß .ich
mit ihm perfekt »ve .... tändigen« le ...nen.
T 3-28-00