Seite 4
Ri 3/88 WV/6/1-10 71506 Gesamtherstellung: Druckerei August Bebel Gotha veb mikroelektronik „wilhelm pieck“ mühlhausen Ohne Genehmigung des Herausgebers ist es nicht gestattet, das Buch oder Teile daraus nachzudrucken oder auf fotomechanischem Wege zu vervielfältigen.
Grundlagen Kapitel 1 : Start des Basic-Interpreters (CAOS-Anweisungen BASIC, REBASIC, Anweisung BYE) Kapitel 2 : Der KC 85/3 als Taschenrechner (Anweisung PRINT, LET, CLEAR, CLS) Kapitel 3 : Wir programmieren schon 19 (Anweisungen RUN, GOTO, LIST, CONT) Kapitel 4 :...
Seite 6
I N H A L T S V E R Z E I C H N I S Seite Kapitel 13 : Zeichenvorrat (Funktionen ASC, CHR$) Kapitel 14 : Strings (Stringoperationen, Stringfunk- tionen LEN, VAL, STR$, LEFT$, MID$, RIGTH$, STRING$, VGET$, INSTR, INKEY$) Kapitel 15 : Pause (Anweisung PAUSE)
ZUR EINFÜHRUNG Ihr BASIC-Interpreter ermöglicht es Ihnen, sich mit Ihrem KC 85/3 fast um- gangssprachlich zu unterhalten. Er realisiert also ein Dolmetscher-Programm zwischen der Maschinensprache, die der Computer versteht, und BASIC, einer Sprache, die sich stark an Englisch anlehnt. Warum programmieren wir nicht gleich in Maschinensprache? Die Antwort ist einfach.
Seite 9
GRUNDLAGEN KALTSTART WARMSTART Wie Sie bereits erfahren haben, wird uns der BASIC-Interpreter das Program- mieren stark erleichtern. Um den Interpreter zu nutzen, müssen wir diesen starten. Es stehen zwei Möglichkeiten zur Verfügung. Der Kaltstart wird durch die CAOS-Anweisung BASIC und der Warmstart durch die CAOS-Anweisung REBASIC ausgeführt.
Kommandoeingabe des Betriebssystems. Nun machen Sie bitte zur Übung einen "Warmstart" aus dem Betriebssystem in den BASIC- Interpreter, wie oben beschrieben. Sollten Sie einmal eine fehlerhafte Eingabe mit dem KC 85/3-BASIC-Inter- preter zur Ausführung gebracht haben, so erscheint auf dem Bildschirm eine...
Seite 11
"Warmstart" des BASIC -Interpreters mit der Anweisung "REBASIC" (Hier bleiben bereits eingegebene Programme erhalten.) Ð Anweisung: Format : Bemerkung : BYE gibt die Steuerung an das Betriebssystem zurück Beispiel: Ð Es ist unmöglich, den KC 85/3 durch falsche Eingaben zu beschädigen. Schlimmstenfalls müssen Sie den Computer erneut einschalten.
GRUNDLAGEN DIE ENTERTASTE UND DIE PRINT-ANWEISUNG Unser KC 85/3 kann mehr als wir uns im ersten Moment vorstellen können. Er wartet nur darauf, das auszuführen, was wir ihm anweisen. Das erste und wichtigste Kommando, das wir lernen wollen, ist die Anweisung etwas auf dem Bildschirm darzustellen.
Das Verständnis dieser beiden Begriffe ist die wichtigste Voraussetzung zum Erlernen einer Programmiersprache. Deshalb werden wir uns jetzt anschaulich mit diesen Begriffen vertraut machen. Konstanten sind festgelegte, unveränderliche Werte. Der KC 85/3-BASIC- Interpreter verarbeitet Zahlen und Zeichenketten als Konstanten. Als Zahlen 999999 bis Í999999 (numerische Konstanten ) stehen ganze Zahlen von sowie reelle Zahlen mit einem Betrag zwischen 9.4«396E...
Seite 15
GRUNDLAGEN Veranschaulichen wir uns dies im Bild 1: Wert der Variablen Name der Variablen Bild 1 Veranschaulichung des "Gedächtnisses" unseres Computers durch eine Reihe von Fächern Zum betrachteten Zeitpunkt besitzt - die Variable X den Wert .5 - die Variable X$ den Wert "ANNA" - die Variable A3 den Wert 1«.7 - die Variable LU den Wert 2.1E3«...
GRUNDLAGEN 3. Variablennamen dürfen keine Worte enthalten, die schon mit einer festen Bedeutung in BASIC benutzt werden. Der Variablenname LETTER ist z.B. nicht erlaubt, da er die BASIC-Anweisung LET erhält. 4. Obwohl eine Variable beliebig lang sein kann, unterscheidet der Computer nur die ersten beiden Zeichen einer Variablen.
Seite 17
Variablen zu löschen, d.h. ihnen wird der Wert « zugewiesen. An Ihrem Taschenrechner können Sie alle Speicher löschen, indem Sie die C-Taste drük- ken. Selbstverständlich bietet uns der KC 85/3 den gleichen Komfort. Wir ver- wenden den Befehl CLEAR. Geben Sie ein:...
GRUNDLAGEN Nun überzeugen Sie sich von der Wirkungsweise der Anweisung, indem Sie sich die Werte der vorhin festgelegten Variablen anzeigen lassen. PRINT BROT usw. Sie werden feststellen, daß die Variablen alle den Wert 0 enthalten. DIE GRUNDRECHENARTEN Mit Zahlen und den von Ihnen definierten Variablen können Sie nun nach Belieben rechnen.
Seite 19
GRUNDLAGEN Bei diesem Beispiel sind zwei neue Möglichkeiten angewendet worden: Mit dem Doppelpunkt können mehrere Anweisungen getrennt werden, d.h. es kön- nen somit mehrere Anweisungen auf einer Zeile geschrieben werden. Durch die Angabe von mehreren Variablen in der PRINT-Anweisung können mehrere Werte mit einer Anweisung dargestellt werden;...
Seite 20
GRUNDLAGEN Ð Anweisung: CLS Format: Bemerkung: CLS löscht den Bildschirm Beispiel: Übungen 1. Geben Sie ein: PRINT 4.8E« PRINT 4.8E1 PRINT 4.8E2 PRINT 4.8E9 Wir erkennen, daß Zahlen, die länger als sechs Ziffern sind, in wissen- schaftlicher Notation (mit Exponenten) dargestellt werden. Probieren Sie gleiches mit negativen Zahlen! 2.
GRUNDLAGEN TEXT SCHREIBEN Ein großer Vorteil unseres KC 85/3 gegenüber einem Taschenrechner ist die Möglichkeit der Textverarbeitung. Geben Sie ein: PRINT "KLEINCOMPUTER AUS MUEHLHAUSEN" ENTER-Taste drücken! Sie sehen, die Zeichenkette innerhalb der Anführungszeichen wird auf den Bildschirm geschrieben. So können wir beliebige Zeichenketten mit Hilfe der PRINT-Anweisung in Verbindung mit den Anführungszeichen ausdrucken...
Seite 23
GRUNDLAGEN Die Anweisung RUN bewirkt also die Abarbeitung eines Programms. Begin- nend mit der niedrigsten Zeilennummer werden die Programmzeilen in auf- steigender Nummerierung abgearbeitet. Hierbei gibt es jedoch Ausnahmen. Eine solche ist z.B. die Anweisung GOTO. Geben Sie ein: 2« GOTO 1« (ENTER-Taste !) Und nun lassen wir unser um die Zeile 2«...
Seite 24
GRUNDLAGEN wissen Zeit durch Druck auf die BRK-Taste. Danach können Sie das Programm fortsetzen. Geben Sie ein: CONT (continue, übersetzt fortsetzen) Sie merken, das Programm arbeitet weiter. Eine andere Möglichkeit den Pro- grammablauf einmal kurz anzuhalten, um sich die Kontrolle der Aufschrift auf dem Bildschirm anzusehen, ist durch Drücken der STOP-Taste gegeben.
Seite 25
GRUNDLAGEN - Die Programmzeilen können wir korrigieren, indem wir die entsprechenden Stellen überschreiben oder die Zeile neu eingeben. - Programmzeilen können wir löschen, in dem wir die Zeilennummer ein- geben und die ENTER-Taste drücken - Ein laufendes Programm können wir durch Betätigen der BRK-Taste unter- brechen, um z.B.
Seite 26
GRUNDLAGEN Ð Ein Druck auf die BRK-Taste unterbricht jedes laufende Programm. Die Pro- grammzeile, in der die Unterbrechung stattfand, wird angezeigt. Beispiel: BREAK IN 2« Ð Anweisung: CONT Format: CONT Bemerkung: CONT setzt ein mit BRK-Taste unterbrochenes Programm an gleicher Stelle fort. Beispiel: BRK-Taste betätigen BREAK IN 2«...
GRUNDLAGEN DIE ANWEISUNGEN REM, NEW, INPUT UND LINES In diesem Kapitel lernen wir weitere Anweisungen kennen. Danach sind Sie in der Lage, kleine zuverlässige Rechenprogramme selbst zu erstellen. Die ersten drei Anweisungen sind schnell erklärt. Die Anweisung REM ist abgeleitet vom englischen Wort "remark", das übersetzt Bemerkung heißt.
Seite 29
GRUNDLAGEN Starten Sie das Programm mit RUN! Kommt ein Fragezeichen auf Ihrem Bildschirm zum Vorschein, so ist dies keine Fehlermeldung, sondern der Computer ist, nachdem er die Zeile 1« ignoriert hat, zur Abarbeitung der Anweisung INPUT gelangt. Die Anweisung INPUT unterbricht den Ablauf des Programms und wartet auf eine Eingabe.
Seite 30
GRUNDLAGEN Lassen Sie nun das Programm ablaufen. Sie sehen, ein in Anführungszeichen gesetzter String direkt nach der INPUT-Anweisung wird im Programmablauf entsprechend ausgedruckt. Dieser nach Belieben einzufügender String ist von der folgenden Variablen in jedem Fall durch ein ";" abzutrennen. Weiterhin ist es auch möglich, mit einer INPUT-Anweisung mehrere, durch Komma ge- trennte Variablen einzulesen.
Seite 31
GRUNDLAGEN Ð Anweisung: INPUT Format: INPUT ["String";] Variable [,Variable . . .] Bemerkung: INPUT bewirkt eine Anforderung von Daten für das Pro- gramm. Es istmöglich, Werte mehreren, durch Kommata von- einander getrennten Variablen mit einer INPUT-Anweisung zuzuordnen. Wird in die INPUT-Anweisung eine Stringkon- stante aufgenommen, so wird diese bei der Eingabeanfor- derung mit ausgegeben;...
Seite 32
KAPITEL 5 FOR-Schleifen und die große PRINT-Zusammenfassung (Anweisung FOR. . .TO. . .STEP. . .NEXT)
GRUNDLAGEN DIE FOR-NEXT-SCHLEIFE UND EIN NEUER PRINT-KNIFF Es besteht in der Praxis oft die Notwendigkeit, Programmteile mehrfach, z.B. für die Ermittlung mehrerer Funktionswerte, abzuarbeiten. Das würde sich auf Grund der uns bisher bekannten Anweisungen sehr mühsam gestalten. Wir müßten mit der INPUT-Anweisung Wert für Wert eingeben und das Pro- gramm immer neu ablaufen lassen.
Seite 34
GRUNDLAGEN Sie werden enttäuscht feststellen, daß die Werte nicht alle auf den Bild- schirm passen. Hier gibt es eine kleine Hilfe. Verändern Sie die Zeile 20 wie folgt: 2« PRINT I * I, Starten Sie das Programm ! Sie sehen, das Komma tabelliert die Ausgaben in 3 Bereiche zu je 13 Zeichen.
GRUNDLAGEN PRINT bewirkt die Ausgabe dieser Konstanten, Variablen, Ergebnisse der Aus- drücke und der Strings. Man kann mehrere Ausdrücke hinter einen PRINT- Befehl schreiben. Diese müssen, mit Ausnahme der String-Konstanten, durch Trennzeichen getrennt sein. Die Trennzeichen Komma und Semikolon haben eine Formatierungsfunktion.
Seite 36
Wie würde sich die Ausgabe verändern, wenn Sie die Programmzeile 2« mit einem "," oder einem ";" beenden würden? Überprüfen Sie Ihre Antwort am KC 85/3. 2. Verändern Sie die Zeile 2« von Übung 1 wie folgt: 2« PRINT I; " " ;...
GRUNDLAGEN DIE IF-ANWEISUNG UND DIE LOGISCHEN OPERATOREN Der KC 85/3 kann für Sie auch Entscheidungen treffen. Selbstverständlich müssen Sie ihm dazu erst die Entscheidungskriterien, d.h. in welchem Fall er was zu tun hat, mitteilen. Dies machen Sie im Programm mit Hilfe der IF-An- weisung.
Seite 39
GRUNDLAGEN Ein Ausdruck der aus einer logischen Verknüpfung (in unserem Beispiel OR) zweier Bedingungen (in unserem Beispiel A =1, A =2) besteht, ist in folgenden Fällen wahr: Operator Übersetzung/Wahrheitskriterium UND/Beide Bedingungen treffen gleichzeitig zu. ODER/Mindestens eine von beiden Bedingungen trifft zu. NOT bezieht sich nur auf einen Ausdruck bzw.
Seite 40
GRUNDLAGEN DIE VERGLEICHSOPERATOREN Der Interpreter verfügt über folgende Vergleichsoperatoren: = gleich ½ kleiner als ¾ größer als ½= kleiner oder gleich ¾= größer oder gleich ½ ¾ ungleich Die einfache Handhabung dieser Vergleiche veranschaulichen wir uns am besten wieder an einem Beispielprogramm. Dieses Programm bewertet den Benzinverbrauch von PKW wie folgt: Benzinverbrauch/1««...
Seite 41
GRUNDLAGEN Merke: Ð Anweisung: IF, THEN oder IF, GOTO Anweisung THEN Anweisung Format: IF Ausdruck : ELSE GOTO Bemerkung: IF ist eine bedingte Anweisung. Ist der Ausdruck wahr bzw. das Resultat des Ausdrucks nicht Null, so wird die Anwei- sung THEN oder GOTO ausgeführt. Steht hinter THEN eine Anweisung, so wird diese ausgeführt.
Seite 42
GRUNDLAGEN Ð Die logischen oder Boolschen Operatoren AND, OR und NOT: Bei Verknüpfung der Ausdrücke A und B mit den Boolschen Operatoren ergeben sich neue Ausdrücke mit folgenden Wahrheitswerten (wahr=1; falsch=«): NOT A A OR B A AND B « «...
ebenfalls von links nach rechts DIE MATHEMATISCHEN FUNKTIONEN Wie bereits im Kapitel 2 erwähnt, besitzen wir durch den BASIC-Interpreter mit unserem KC 85/3 einen wissenschaftlichen Rechner, der über alle einschlä- gigen Standard-Funktionen verfügt. Bevor wir zu den konkreten mathemati-...
Seite 45
Diese Beschränkungen resultieren einmal aus der Defini- tion der Funktion selber, zum anderen aus rechentechnischen Gegebenhei- ten des Computers. Die computerspezifischen Einschränkungen sind in fol- gender Vorstellung der mathematischen Funktionen des KC 85/3 vermerkt: MathematischeStandard- Entsprechende Bemerkung...
ERWEITERUNGEN Das Argument der Funktion muß stets in Klammern geschrieben werden. Testen Sie nun die uns zur Verfügung stehenden Funktionen ! Beginnen Sie mit dem folgenden einfachen Beispielen: PRINT SQR(81) oder 1« INPUT A 2« PRINT SQR(A) etc. Durch geeignete Kombinationen der Standardfunktionen können Sie alle geläufigen mathematischen Funktionen realisieren.
Seite 47
ERWEITERUNGEN ZUFALLSZAHLENBERECHNUNG Die Funktion RND (X) liefert eine Zufallszahl im Bereich « (RND (X) ½ 1 Für X ¾ « erscheinen völlig zufällige Zahlen. Für X = « wird der Wert der letzten Zufallszahl noch einmal ausgegeben. Für X ½ « gibt es für jedes X eine bestimmte Zufallszahl. Außerdem wird der Zufallsgenerator neu initialisiert.
Seite 48
Reihenfolge nach, entsprechend der im Kapitel beschriebenen Hierarchie abgearbeitet. Ð Das KC 85/3 -BASIC verfügt über folgende mathematische Standardfunk- tionen: ABS, ATN, COS, EXP, INT, LN, SGN, ,SIN SQR, TAN. Das Argu- ment mit einer Funktion muß stets in Klammern stehen.
Seite 49
ERWEITERUNGEN Übungen 1. Warum hat unser Würfelspiel nach der zweiten Änderung keine 6 "gewür- felt"? 2. Schreiben Sie ein Programm zur Berechnung der längeren Seite c aus den beiden kürzeren Seiten a und b eines rechtwinkligen Dreiecks ABC. (Es Í b gilt der Satz des Pythagoras c .) (Lösung im Kapitel 24.) 3.
Seite 51
ERWEITERUNGEN EDIT Die Anweisung EDIT wird uns in Zukunft eine große Hilfe bei der Korrektur von Programmen sein. Sie haben in Kapitel 5 erfahren, wie man fehlerhafte Programmzeilen überschreiben kann bzw. durch Eingabe der Zeilennummer löscht. Mit Hilfe der Anweisung EDIT können wir nicht nur die gerade in der Eingabe befindliche Programmzeile, sondern auch bereits abgespeicherte Programm- Ê...
ERWEITERUNGEN Alle Programmzeilen eines Programms von Zeile X bis Zeile Y löschen. Über- zeugen Sie sich, indem Sie eingeben: DELETE 2«, 3« Mit LIST und RUN können Sie nun die Wirkung der Anweisung DELETE 2«, 3« kontrollieren. FUNKTIONSTASTENBELEGUNG Mit Hilfe der Funktionstasten können wir einzelne Anweisungen oder eine ganze Folge von Anweisungen mit einem Tastendruck eingeben und auch aus- führen.
ERWEITERUNGEN heißt, wir können diese durch Zeichen im KEY-Eingabemodus als Tastenbele- gung speichern und später durch Druck auf die entsprechende Funktionstaste ausführen. Die Summe aller Tastenbelegungen darf 143 Zeichen nicht über- steigen. Nur mit der CLR-Taste kann während der Eingabe der Tastenbelegung korri- giert werden.
Seite 54
ERWEITERUNGEN konkretisieren. Hierbei ist i die erste zu erzeugende Zeilennummer und j legt den Zeilennummernabstand fest. Testen Sie diese Programmierhilfe an einem kleinen Programm mit mehreren Zeilen! Nach dem Sie sich nun über die Funktionsweise des Kommandos AUTO am Beispiel informiert haben, geben Sie bitte in das bestehende Programm wei- tere Programmzeilen ein, so daß...
Seite 55
ERWEITERUNGEN Ð Anweisung: AUTO Format: AUTO [Zeilennummer] [,Schrittgröße] Bemerkung: AUTO erzeugt automatisch nach jedem Betätigen der ENTER- Taste eine Zeilennummer. Es wird mit der angegebenen Zei- lennummer begonnen und diese jeweils um die angegebene Schrittgröße erhöht. Werden keine Schrittgröße und keine Zeilennummer angege- ben, so beginnt AUTO mit der Zeilennummer 1«...
Seite 56
ERWEITERUNGEN Ð Anweisung: KEYLIST Format: KEYLIST Bemerkung: Mit Hilfe dieser Anweisung kann man die Funktionstasten- belegung auflisten. Beispiel: KEYLIST F1 : RUN F2 : WINDOW:COLOR7,2:CLS:LIST F3 : EDIT F4 : INPUT F5 : FOR I= F6 : NEXT F7 : CLS F8 : GOTO F9 : GOSUB FA : RETURN...
ERWEITERUNGEN SPEICHERMEDIUM TONBAND So, wie wir in Maschinensprache geschriebene Programme vom Recorder in den Computer laden, können wir auch in BASIC geschriebene Programme mit Hilfe des Interpreters durch die BASIC-Anweisung CLOAD in den Computer laden. Da wir nicht nur daran interessiert sind, im Handel erworbene Programme, sondern auch selbsterstellte wiederholt zu nutzen, müssen wir diese vor dem Ausschalten des Gerätes auf unseren Speicher, das Tonband, "retten"...
Seite 59
ERWEITERUNGEN Nach dem Retten besteht die Möglichkeit des Vergleichs der Magnetbandauf- zeichnung mit dem im Computer befindlichen Programm. Dazu erfolgt nach Übernahme des letzten Blockes die Ausschrift: VERIFY ?(Y): Mit dieser Ausgabe ist die Aufnahme beendet und Sie können den Recorder ausschalten.
ERWEITERUNGEN WIR LADEN EIN PROGRAMM Löschen Sie nun den Arbeitsspeicher mit NEW und überzeugen Sie sich mit LIST, daß unser Testprogramm nicht mehr im Computer gespeichert ist. Spu- len Sie die Kassette an den Programmanfang zurück und geben Sie in den Computer ein: (ENTER-Taste noch nicht drücken !) CLOAD "TEST"...
Seite 61
ERWEITERUNGEN Ð Anweisung: CLOAD Format: CLOAD "NAME" Bemerkung: Die Anweisung lädt das angegebene Programm von der Kassette und legt es hinter dem schon im Speicher befind- lichen Programm ab. Beispiel: CLOAD "TEST" Ð Anweisung: BLOAD Format: BLOAD Bemerkung: Die Anweisung ruft das Betriebssystemprogramm LOAD zum Einlesen von Maschinenprogrammen während der Arbeit des BASIC-Interpreters auf.
Seite 63
ERWEITERUNGEN FARBEN Mit Hilfe des KC 85/3 können Sie auf Ihrem Farbfernsehgerät 24 Farben dar- stellen. Das sind im einzelnen 8 Hintergrundfarben und 16 Vordergrundfarben. Unter der Vordergrundfarben verstehen wir die Farbe der Buchstaben bzw. bei der Graphik die Farbe der gezeichneten Linien und Punkte.
Seite 64
ERWEITERUNGEN Merke: Ð Anweisung: PAPER Format: PAPER h Bemerkung: Einstellen der Hintergrundfarbe; h . . . Hintergrundfarbcode entsprechend obiger Übersicht Beispiel: PAPER 3 Ð Anweisung: Format: INK v Bemerkung: Einstellen der Vordergrundfarbe; v . . . Vordergrundfarbcode entsprechend obiger Übersicht INK «...
Seite 66
ERWEITERUNGEN PUNKTE Der KC 85/3 bietet Ihnen einen für einen Kleincomputer beispielhaften Gra- phik-Komfort. Wir sind in der Lage, das Fernsehbild in 32« Punkte (in der Waagerechten) mal 256 Punkten (in der Senkrechten) aufzulösen. Damit stehen uns insgesamt 81 92« Graphikpunkte zur Verfügung. Etwas anschaulicher be- ¼...
Seite 67
ERWEITERUNGEN ¼ Bild 3: Vollgraphik; Das Anzeigebild setzt sich aus 32« 256 Bildpunkten Zusammen Nun schauen wir uns noch ein kleines mathematisches Beispiel an. Folgendes Beispiel zeichnet die Sinusfunktion im Bereich von « bis 2PI. 1« PAPER 1: CLS 2« FOR X=0 TO 319 Â...
ERWEITERUNGEN LINIEN UND KREISE Wir können jedoch nicht nur einige Punkte setzten oder löschen. Der BASIC- Interpreter verfügt auch über Graphikanweisungen, die es ermöglichen, un- kompliziert geometrische Grundfiguren zu zeichnen. Die Anweisung CIRCLE in der Form CIRCLE x-Koordinate, y-Koordinate, Radius, Farbcode zeichnet auf dem Bildschirm einen Kreis mit dem angegebenen Radius, um den Mittelpunkt der angegebenen Koordinaten x und y in der durch den Farbcode festgelegten Vordergrundfarbe.
Seite 69
ERWEITERUNGEN Als Argument wird die x-Koordinate des zu testenden Bildpunktes in Klam- mern hinter die Funktion geschrieben. Als aktuelle y-Koordinate setzt der Computer die zuletzt in einer der vier Graphik-Anweisungen erwähnte y- Koordinate ein. Probieren Sie folgendes Beispiel: 1« CLS:LINE 5«,3«,5«,1««,7 2«...
ERWEITERUNGEN 15« LINEX,Y,319,146 16« LINEX,Y,319,1«« 17« LINEX,Y,319,58 18« FORY=«TO51 19« LINE«,Y,319,Y,9 20« NEXT 21« GOTO21« Lassen Sie das Programm mit der Anweisung RUN abarbeiten. Möchten Sie Ihren Sonnenauf- oder Untergang beenden, so drücken Sie die BRK-Taste! Das Programm wird unterbrochen und der Computer meldet sich mit dem Cursor eingabebereit.
Seite 71
ERWEITERUNGEN Punkt (5«,25) maßgebend ist, nahmen alle 32 Bildpunkte, die ihre Farbwerte aus der gleichen Speicherstelle wie der Punkt (5«,25) beziehen, die neu pro- grammierte Vordergrundfarbe gelb an. Folgende Eingabe auf unser "Sonnenbild" verdeutlicht das eben Gesagte noch einmal am Beispiel: LINE 12«,«,319,12«,«...
Seite 72
ERWEITERUNGEN Die Farbe der Geraden wird durch den Vordergrundfarbcode ≤ f ≤ 31) festgelegt. Wird der Parameter f weggelassen, f (« so erscheint die Gerade in der zuletzt gewählten Graphik- farbe. Beispiel: LINE 1«,1««,3««,1««,26 Ð Anweisung: CIRCLE Format: CIRCLE xm, ym, r [, f] Bemerkung: Die Anweisung zeichnet einen Kreis mit dem Mittelpunkt- koordinaten xm , ym und dem Radius r auf dem Bildschirm.
Seite 74
ERWEITERUNGEN FENSTER Vielleicht haben Sie es schon einmal ausgezählt; unser Bildschirm gliedert sich in 3« Schriftzeilen mit je 4« Zeichen. Dies ist das "Standard-Format", welches stets nach dem Einschalten unseres Computers eingestellt ist. Darüber hinaus können wir aber noch die verschiedensten Bildausschnitte, wir sagen in Zukunft Fenster, einstellen.
ERWEITERUNGEN Bild 4: Einteilung des Bildschirmes in Zeichenzeilen und Zeichenspalten PLAZIEREN UND FORMATIEREN Unabhängig vom eingestellten Fenster können wir mit der PRINT-Funktion AT unsere Ausgaben an jeder beliebigen Stelle des Bildschirms plazieren. Dabei ist folgende Form zu beachten: PRINT AT(Zeile,Spalte);Ausdruck Möchten wir also z.B.
Seite 76
ERWEITERUNGEN Verändern wir unser Beispiel und lassen das Wort ENDE blau auf gelb blin- ken: PRINT AT(3«,2«);COLOR17,6;"ENDE" Es ist jedoch stets darauf zu achten, daß die eingefügte COLOR-Anweisung beide Farbparameter enthält. In gleicher Weise können auch anstelle der COLOR-Anweisung die Farb- Anweisungen INK und PAPER eingefügt werden.
Seite 77
ERWEITERUNGEN Ist das Argument n gleich Null, so erhalten wir die Zeilennummer der Zeile, in der sich der Cursor befindet, bezüglich dem maximalen Bildschirmfenster (32 Zeilen). Im Falle von n ¾«, bezieht sich die Zeilenangabe auf das aktuell ein- gestellte Fenster. Testen Sie folgendes Beispiel: 1«...
Seite 78
ERWEITERUNGEN Ð Funktion: Format: PRINT AT(z,s); [COLOR-Anweisung;] PRINT-Liste Bemerkung: Die Ausgabefunktion AT plaziert die nächste Ausgabe be- ginnend auf dem Zeichenfeld z und in der Spalte s. Anstelle der COLOR-Anweisung kann in den PRINT-Ausdruck in glei- cher Weise eine INK- oder PAPER-Anweisung eingefügt wer- den.
Seite 79
ERWEITERUNGEN Beispiel: 1« CZ=3: CS=5 2« LOCATE CZ, CS Ð Funktion: CSRLIN Format: CSRLIN (n) Bemerkung: CSRLIN (n) liefert als Funktionswert die Nummer der Zeile, in welcher sich der Cursor befindet. n=« - Zeilennummer bezüglich des maximalen Fenster n¾« - Zeilennummer bezüglich des aktuellen Fenster n½«...
ERWEITERUNGEN DIE FUNKTIONEN ASC UND CHR$ Alle Zeichen, wie Buchstaben, Zahlen, Satzzeichen oder Steuerzeichen (z.B. Cursor links), die wir über die Tastatur eingeben können, sind im Computer unter einem bestimmten Code abgelegt. Die Codes sind Zahlen zwischen « und 255. Wollen Sie nun wissen, mit welchem Code der Buchstabe Z gespei- chert wird, so bedienen Sie sich der Funktion ASC: PRINT ASC ("Z") liefert die Zahl 9«.
Seite 82
ERWEITERUNGEN Merke: Ð Anweisung: ASC (String) Bemerkung: Die Funktion ASC ermittelt den ASCII-Code des ersten Zei- chens des Strings. Beispiel: PRINT ASC("ZIGARRE") 9« Ð Anweisung: CHR$ (Zahl) Bemerkung: Die Funktion CHR$ weist der Zahl (ASCII-Code) das ent- sprechende Zeichen zu Beispiel: PRINT CHR$ (77) Übung...
ERWEITERUNGEN ZUR WIEDERHOLUNG Wir wissen, daß unser Computer Zeichenketten, sogenannte Strings, verarbei- tet. Diese Strings können wir auch unter Stringvariablen, die am Ende durch ein $ zu kennzeichnen sind, ablegen. Es gibt mehrere Möglichkeiten, Strings in einem Programm festzulegen. Hier einige Beispiele: LET A$="BAUM"...
Seite 85
Die Funktion STRING$ in der Form STRING$ (n, String) vervielfältigt den in der Klammern stehenden String n-mal. Beispiel: 1« A$="KC 85/3":N=5 2« B$= STRING$ (N,A$) 3« PRINT B$ Die Funktion VGET$ liefert den Inhalt der Cursorposition als String. Beispiel: 1« CLS 2«...
ERWEITERUNGEN EINGABE MIT INKEY$ Zur Vereinfachung der Programmbedienung sowie zur Durchführung von Reaktionstests ist die Funktion INKEY$ gleichermaßen gut geeignet. INKEY$ holt während des Programmablaufs eine Information von der Tasta- tur, ohne daß das Programm angehalten oder die ENTER-Taste gedrückt wer- den muß.
ERWEITERUNGEN DIE ANWEISUNG PAUSE Sollen Computerbilder eine bestimmte oder eine beliebige Zeit während des Programmablaufes erhalten bleiben, so können wir die Anweisung PAUSE sehr vorteilhaft einsetzen. 1« CLS:PRINT"GEDAECHTNISTRAINING" 2« PRINT "BITTE ZIFFERNFOLGE MERKEN UND BEI" 3« PRINT "ABFRAGE '?' EINGEBEN." 4«...
ERWEITERUNGEN DIE ANWEISUNGEN GOSUB UND RETURN Wird ein bestimmter Programmabschnitt mehrmals im Programm benötigt, so ist es effektiv, diesen als Unterprogramm zu schreiben. Mit der Anweisung GOSUB wird zu dem auf der Programmzeile n beginnenden Unterpro- gramm gesprungen und dieses abgearbeitet. Nach der Abarbeitung des Unterprogrammes, das immer mit der Anweisung RETURN abzuschließen ist, "springt"...
Seite 91
ERWEITERUNGEN Bemerkung: GOSUB ruft ein BASIC-Unterprogramm auf, welches in der angegebenen Zeilennummer beginnt. Jedes BASIC -Unterprogramm ist mit RETURN abzuschlie- ßen. Beispiel: 1« INPUT X 2« GOSUB 3«« 3« PRINT E 4« END 3«« E=(XÍ365)/52 3«« RETURN...
KAPITEL 17 Mehrfache Programmverzweigungen (Anweisungen ON. . .GOTO, ON. . .GOSUB...
Seite 93
ERWEITERUNGEN ON. . .GOTO. . . Haben Sie in einem Programm mehr als zwei Fälle zu unterscheiden, so kön- nen Sie die Anweisung ON GOTO sehr vorteilhaft verwenden. Die Anweisung ist wie folgt aufgebaut: ON i GOTO Liste von Zeilennummern Der Sprungbefehl verzweigt im konkreten Fall zu der Zeilennummer, die als i-te in der Liste steht.
Seite 94
ERWEITERUNGEN Merke: Ð Anweisung: ON. . .GOTO ON. . .GOSUB. . . GOTO Format: ON i Liste von Zeilennummern GOSUB Bemerkung: Die Anweisungen verzweigen das Programm zu der Zeilen- nummer, die als i-te in der Liste steht. Im Fall ON . . . GOSUB sind die Zeilennummern die Adresse der aufzuru- fenden Unterprogramme.
ERWEITERUNGEN DATA, READ UND RESTORE Bisher haben wir zwei Möglichkeiten kennen gelernt, einer Variablen einen Wert zuzuweisen. Einmal können wir dies durch eine direkte Wertzuweisung (z.B. V = 1.2) , zum anderen haben wir die Möglichkeit, die Wertzuweisung mit Hilfe des INPUT-Befehls zu realisieren. Müssen wir nun größere Daten- mengen verarbeiten, so erweisen sich beide Methoden aufgrund der immer wiederkehrenden Eingabe als langwierig.
Seite 98
ERWEITERUNGEN Diesen Fehler können Sie beheben, indem Sie die fehlenden Daten in Zeile 1« anfügen oder eine neue Programmzeile (z.B. 12) mit DATA und den Werten hinzufügen. Benötigen Sie jedoch die gleichen Werte in der gleichen Reihenfolge noch einmal, so brauchen Sie nur den DATA -Zeiger auf den ersten Wert zurück- setzen.
Seite 99
ERWEITERUNGEN Merke: Ð Anweisung: DATA Format: DATA Konstantenliste Bemerkung: DATA kennzeichnet die Liste von numerischen und String- Konstanten, welche durch die READ -Anweisung den einzel- nen Variablen zugeordnet werden. Die Listenelemente wer- den durch Kommata voneinander getrennt. Beginnt eine Stringkonstante der Liste mit einem oder mehreren Leerzei- chen, so ist diese konstant in Anführungszeichen zu setzen.
DIE LETZTEN TRICKS Sicher ist es Ihnen schon öfter passiert, daß ein Programm bei seinem ersten Lauf Fehler aufwies. Nicht immer waren es nur Schreibfehler. Diese grund- legenden Fehler resultieren meistens aus einer fehlerhaften Problemanalyse oder einer nicht korrekten Umsetzung Ihrer Ideen in BASIC. Diese Fehler passieren auch Experten immer wieder.
Seite 102
DIE LETZTEN TRICKS Anfang Problem erörtern - Was ist gegeben ? - Was ist gesucht ? - Prinzipielle Lösung grob in einzelne Schritte gliedern Programmablaufplan (PAP) erstellen Den PAP Schritt für Schritt in ein BASIC-Programm umsetzen Das Programm Listing eingehend auf Schreibfehler prüfen Programm starten Ende...
Seite 103
DIE LETZTEN TRICKS In einem PAP symbolisiert den Anfang oder das Ende eines Programms eine oder mehrere Anweisungen und eine antwortbedingte Verzweigung des Programms Anschließend schauen wir uns unser ursprüngliches Noten-Bewertungs-Programm aus Kapitel 8 im PAP an. Anfang Ist A =1 oder A=2 ? Ausgabe: Ausgabe: "GUT"...
DIE LETZTEN TRICKS DAS FINDEN VON FEHLERN Trotz aller Bemühungen lassen sich Fehler oft nicht vermeiden. Deshalb wollen wir jetzt auf das kleine Anweisungskästchen unseres ersten PAP, das da "Feh- ler finden" heißt, eingehen. Den ersten Hinweis auf unseren Fehler bekommen wir durch die Fehlermeldung bei Abbruch des Programms.
Seite 105
DIE LETZTEN TRICKS Merke: Ð Anweisung: TRON TROFF Format: TRON TROFF Bemerkung: TRON bewirkt, daß bei Abarbeitung eines Programms die Nummern der Zeilen in der Reihenfolge ihrer Abarbeitung zur Anzeige gebracht werden. TROFF schaltet diesen Anzeigemodus wieder aus. Beispiel: Siehe dieses Kapitel Ð...
Seite 107
DIE LETZTEN TRICKS TONAUSGABE Mit dem KC 85/3 können Sie Töne monophon über das Fernsehgerät bei FBAS- oder RGB-Anschluß zu Gehör bringen. Dabei ist die Lautstärke in 32 Stufen regelbar. Darüber hinaus erfolgt die Tonausgabe auch stereophon mittels einer Stereo- anlage oder eines anderen geeigneten Musikwiedergabegerätes.
Seite 108
DIE LETZTEN TRICKS Beachten Sie folgende Sonderfälle: - werden l und t nicht angegeben, so bleiben die vorherigen Werte erhal- - ist die Lautstärke = «, so erfolgt keine Tonausgabe über das Fernsehgerät, jedoch weiterhin über die Diodenbuchse; = « oder z = «...
Seite 110
DIE LETZTEN TRICKS Mit einem der Anweisung folgenden Parameter können Sie festlegen, wie oft das Signal ausgegeben werden soll. Testen Sie es selbst: BEEP 4 Merke: Ð Anweisung: BEEP Format: BEEP [n] Bemerkung: Mit Hilfe der Anweis ung BEEP werden akustische Signale mit festgelegter Länge erzeugt.
KAPITEL 21 Variablenfelder   (Anweisungen DIM, CSAVE , CLOAD...
Seite 112
DIE LETZTEN TRICKS DIMENSIONIERUNG Bisher haben wir Variablen der Form X, H3, J$ oder R benutzt. Treten jedoch größere Variablenmengen auf, so bedient man sich in der Mathematik indi- zierter Variablen, also solcher Variablen, die sich durch Indizes (kleine, am Fuß...
Seite 113
DIE LETZTEN TRICKS Sie sehen, lediglich die Variable X(1,2) ist ungleich «, da ihr in der Zeile 2« un- seres Programmes der Wert 8 zugewiesen wurde. So wie wir bisher numeri- sche Variablenfelder betrachtet haben, können wir selbstverständlich auch Stringvariablenfelder anlegen. Das nächste Programm demonstriert am Bei- spiel eines eindimensionalen, aus 12 Elementen bestehenden Stringvariablen- feldeseinfache Möglichkeiten zur effektiven Nutzung von Variablenfeldern.
Seite 114
DIE LETZTEN TRICKS 19« PRINT:PRINT"EINGABE M FUER MENU" 2«« M$=INKEY$:IFM$½¾"M" GOTO2««:ELSEGOTO2« 21« GOTO2« 22« PRINT"RECORDEREINSCHALTEN!":PAUSE5« Â 23« CSAVE "TESTFELD";A$ 24« GOTO2« Insbesondere bei der Arbeit mit Variablenfeldern wird der vorhandene Spei- cherplatz schnell überschritten. Dabei wird für numerische Variablen der Spei- cherbereich nur durch die verfügbare Arbeitsspeicherkapazität begrenzt.
Seite 116
DIE LETZTEN TRICKS Wenn wir uns mit dem Innenleben des Computers etwas vertraut machen wollen, müssen wir uns darüber im klaren sein, daß wir bis jetzt bei unserer BASIC-Programmierung noch gar nicht direkt mit dem "Gehirn" des Compu- ters, dem U88«D “gesprochen“ haben. Dieser Mikroprozessorschaltkreis ver- steht nämlich nur seinen U88«-Maschinencode.
Seite 117
Kontrollbildes u. ä.) bzw. verfügbar sind (z.B. Programme zur Zusammen- arbeit mit dem Magnetbandgerät: SAVE , LOAD , VERIFY). Dieser Festspei- cher hat im KC 85/3 einen Umfang von 16 KByte (10 KByte BASIC-Interpreter, 6 KByte Betriebssystem). Im RAM, dem Arbeitsspeicher, befinden sich alle Programme, die wir mit dem Kassettengerät oder der Tastatur eingeben.
Seite 118
RAM-Block ist reserviert für den Bildwiederholspeicher. Dieser enthält die In- ¼ 256 formationen für das Anzeigebild und ermöglicht die Vollgraphik von 32« Bildpunkten. Der ROM enthält das Betriebssystem und den BASIC-Interpreter. Im Bild 7 ist die Speicherverwaltung übersichtlich dargestellt. Bild 7: Graphische Darstellung der Speicheranordnung im KC 85/3...
DIE LETZTEN TRICKS Die nicht belegten Speicheradressen sind für mögliche Speichererweiterungen vorgesehen. Diese, wie auch die im Grundgeräte bereits enthaltenen Speicherblöcke können durch die Anweisung SWITCH m, k zu- oder abgeschaltet und schreibgeschützt werden. Die Parameter m (Steck- platzadresse) und k (Steuerbyte) sind, wie im System-Handbuch Kapitel 5 be- schrieben, zu bilden und in dezimaler Form durch Komma voneinander ge- trennt einzugeben.
Seite 120
DIE LETZTEN TRICKS Eine Einführung in die Arbeit mit dem hexadezimalen Maschinencode würde den Rahmen dieses Buches sprengen. Dazu verwenden Sie bitte folgende weiterführende Literatur: Kieser, H. ; Meder, M.: Mikroprozessortechnik Aufbau und Anwendung des Mikroprozessor- system U88« VEB Verlag Technik Berlin, 1982 Claßen: Programmierung des Mikroprozessorsystems U88«...
(L-Teil. . . niederwertiger Teil, z.B. 8« bei 3«8«; H-Teil. . . höherwertiger Teil, z. B. 3« bei 3«8«) 2. Aufruf der URS-Funktion Beispiel: Ein Maschinenprogramm wird mit dem MODIFY-Kommando des Betriebssystems KC 85/3-CAOS auf eine freie Adresse (z.B. «H) eingegeben: Adresse Anweisung Bemerkung ««««...
Seite 122
DIE LETZTEN TRICKS Die Eingabe kann aber auch vom BASIC-Programm erfolgen: 1« DATA 2«5,111,2«1;REM Maschinencode 12 DATA 19,122,67:REM als Dezimalzahlen 14 DATA 2«5,117,13 16 DATA 2«1 2« AD=«:REM Anfangsadresse des Maschinenprogramms 3« FOR I=«TO9 4« READ B:POKE AD = I,B 5«...
Seite 123
DIE LETZTEN TRICKS CALL . «F«18H CD18F« ; Einschalten des IRM . Zugriff zum IRM ist möglich . z.B. zum Maschinenunterprogramm dort bzw. zur Realisierung von . Bildschirmausschriften «F«1BH CALL CD1BF« ; Abschalten des IRM ; Rückkehr ins BASIC Beispiel: Das folgende Beispiel ist ein Rahmenprogramm, mit dem es möglich ist, ein Maschinenunterprogramm im IRM aufzurufen.
Seite 124
DIE LETZTEN TRICKS Adresse Anweisung Bemerkung BE«« INC DE ; Von BASIC überge- ; bener Parameter ; wird um 1 erhöht BE«1 C9 RET ; Rückkehr zum ; Rahmenprogramm Die Eingabe des Rahmenprogramms sowie des Maschinenunterprogramms kann vom Betriebssystem-Niveau aus mit MODIFY erfolgen. Die Eingabe kann auch per BASIC-Programm geschehen was im folgenden dargestellt wird 1«...
DIE LETZTEN TRICKS Achtung: Die angegebenen Adressen 3«4H, 3«5H, C96FH (UP CPRVL3) und D«B1H (UP FRE3) sind nicht für die Magnetbandversion des BASIC- Interpreters zum KC 85/3 gültig. Merke: Ð Anweisung: SWITCH Format: SWITCH m, k Bemerkung: Die BASIC-Anweisung SWITCH ermöglicht das Schalten von Modulen auch innerhalb eines Programms.
Seite 126
DIE LETZTEN TRICKS Ð Anweisung: CLEAR Format: CLEAR [Ausdruck] [,Ausdruck] Bemerkung: CLEAR löscht den Variablenspeicher. Zusätzlich wird mit dem Wert des ersten Ausdrucks festgelegt, wieviel Speicherplätze für Strings reserviert werden sollen. Mit dem zweiten Aus- druck kann die obere Grenze des zugewiesenen RAM-Be- reiches neu bestimmt werden.
DIE LETZTEN TRICKS wirkt wie CALL. Die Startadresse ist dabei jedoch hexadezi- mal anzugeben. Bei Verwendung von CALL muß gegebenen- falls beachtet werden, daß der Bildwiederholspeicher beim Erreichen des Maschinenprogramms abgeschaltet ist. Â Beispiel: CALL 3«A« Ð Anweisungen: VPEEK und VPOKE Format: VPEEK (Adresse) und VPOKE Adresse, Wert...
DIE LETZTEN TRICKS ZUSATZGERÄTE UND BASIC Mit BASIC-Programmen können wir mit unserem KC 85/3 auch Zusatzgeräte, die Peripherie, ansteuern. Eine Peripherie erhöht die Anwendungsbreite und den Wert des Computer- systems enorm. So besitzen Sie z.B. mit einem anschließbaren Drucker und dem KC 85/3 eine elektronische Schreibmaschine.
Seite 130
Anzahl "NULL-" oder auch "Dummyzeichen" angehangen. Für die Grundein- stellung sind 1« Dummyzeichen festgelegt. Diese bedeutungslosen Zeichen ermöglichen die synchrone Zusammenarbeit zwischen dem KC 85/3 und der peripheren Einheit. Die Anzahl der zu vereinbarenden Dummyzeichen ist ab- hängig vom Peripheriegerät.
Seite 131
DIE LETZTEN TRICKS Ð Anweisung: CLOSE Á Format: CLOSE r Bemerkung: CLOSE schließt den Kanal n (nach Dateneingabe r=I oder nach Datenausgabe r = O). CLOSE führt der BASIC-Inter- preter automatisch bei Programmende oder -abbruch (Taste oder Error) aus. Á Á...
Seite 132
DIE LETZTEN TRICKS Á Á Mit LOAD können die mit LIST ausgegebenen Programme wieder eingegeben werden. Durch n wird wiederum das Peripheriegerät festgelegt. Á Beispiel: LIST 2 "KALKU" (Ausgabe des Programmlistings KALKU auf Drucker) Á Á LOAD 1 "TEST" Einlesen des mit LIST 1 "TEST“...
DIE LETZTEN TRICKS Ð Anweisung: WAIT Format: WAIT i, j, (k) Bemerkung: WAIT hält den Programmablauf in einer Warteschleife bis am Port i das erwartete Bitmuster erscheint. Der eingelesene Wert wird exklusiv-oder-verknüpft mit k und anschließend und-verknüpft mit j. Ist das Resultat «, bleibt das Programm in der Warteschleife, ansonsten wird es fortgesetzt.
LÖSUNGEN In diesem Kapitel wird jeweils eine Lösung der in den Übungen zur Aufgabe gestellten BASIC-Programme vorgestellt. Sollten Sie ein anderes Programm als Lösung erarbeitet haben, welches die Aufgabe ebenfalls erfüllt, so ist dieses genauso richtig wie die hier aufgeführten Programme. Denn es gibt fast immer eine Vielzahl von Lösungsmöglichkeiten.
Seite 136
LÖSUNGEN 7« X1=SÍW:X2=S-W 8« PRINT"X1=" ;X1 9« PRINT" X2=" ;X2:GOTO 11« 1«« PRINT"GLEICHUNG IM REELLEN ZAHLENBEREICH NICHT LOESBAR" 11« END Kapitel 11 Übung 1 1« PAPER1:CLS 12 LINE0,128,319,128,7 14 LINE«,«,«,255 2« FOR X =« TO 319 Â Â 3« Y=128=5« SIN(X/159.5 4«...
S A C H W O R T R E G I S T E R Adressen 116 Index 11« AND 36 INS-Taste 8 Arbeitsspeicher s. RAM Interpreter 7 Aufnehmen eines BASIC Programmes 56 Kaltstart 7 Kassettenrecorder 56 BASIC 5, 7 Konstante 12 Bildwiederholspeicher 116 Bit 114...
Seite 138
S A C H W O R T R E G I S T E R Scrolling-Modus Variable 12 Speicher 116 Variablenfeld 11« - gliederung 116 Variablenname 12 STOP-Taste Vergleichsoperatoren 38 String 82 - Operationen - Speicher Warmstart 7 Wert der Variablen 13 Tabellen 1«7 Ton 1«5 Zeichenvorrat 79...
Seite 139
Abschrift erstellt: Götz Hupe Elmar Klinder...