Das Trainingsbuch zum Simon's Basic
Das Trainingsbuch zum Simon's Basic | |||
---|---|---|---|
Sprache | deutsch | ||
Autor(en) | Axel Plenge, Norbert Szczepanowski | ||
Verlag | Data Becker | ||
Jahr | 1983 | ||
ISBN | ISBN 3-89090-009-6 | ||
Neupreis | DM 49,- | ||
Datenträger | |||
Seitenzahl | 379 (1. Aufl. 1983) 380 (2. Aufl. 1983) 378 (3. Aufl. 1985) 381 (4. Aufl. 1985) | ||
letzte Auflage | 4. überarbeitete Auflage; 1985 | ||
Genre | Programmieren | ||
Information | Einführung und Tipps zur BASIC-Erweiterung Simon's BASIC |
Beschreibung[Bearbeiten | Quelltext bearbeiten]
Wegen seines großen Befehlsumfanges wurde Simons' Basic eine beliebte Befehlserweiterung. Das nicht gerade umfangreiche Handbuch und eine Reihe von Problemen, die bei der Benutzung der Erweiterung auftraten, weckten den Bedarf nach mehr Informationen. Dem will das "Trainingsbuch zum Simons' Basic" gerecht werden. Es bezieht sich auf eine Simons' Basic - Diskettenversion vom November 1983.
Auf 380 Seiten werden (fast) alle Simons' Basic Befehle und deren Anwendung ausführlich mit vielen Beispielen und ggf. auch Grafiken beschrieben. Zu Unzulänglichkeiten und Fehlern im Simons' Basic findet man hier Hinweise. Die Befehle werden ihrer Anwendung nach in Gruppen eingeteilt. Nach der Behandlung jeder Gruppe kann der Leser sein erworbenes Wissen mit einigen Testaufgaben überprüfen. Jeder Befehl ist einzeln behandelt, so dass sich das Trainingsbuch auch als Nachschlagewerk eignet.
Buchrückseite der 3. Auflage
DAS STEHT DRIN:
Das TRAININGSBUCH ZUM SIMON'S BASIC erklärt detailliert den Umgang mit den über 100 Befehlen des SIMON'S BASIC. Alle Befehle werden ausführlich dargestellt, auch die, die nicht im Handbuch stehen (!). Natürlich zeigen die Autoren auch die "Macken" des SIMON'S BASIC und geben wichtige Hinweise, wie man diese umgeht. Selbstverständlich enthält das Buch auch zahlreiche Programmbeispiele und Programmiertricks. Nach jedem Kapitel folgen Testaufgaben zum optimalen Selbststudium und zur Lernkontrolle.
Aus dem Inhalt:
- Programmierhilfen
- Fehlerbehandlung
- Programmschutz
- Programmstruktur
- Stringoperationen
- Ein-/Ausgabe Peripheriebefehle
- Graphik
- Zeichensatzerstellung
- Sprites
- Musik
- Steuernde Peripherie
UND GESCHRIEBEN HABEN DIESES BUCH:
Axel Plenge, Student, ist vielen bereits als Autor der SUPERGRAPHIK, des MATHEMAT und des GRAFIKBUCHES bekannt.
Norbert Szczepanowski, EDV-Kaufmann und Bestsellerautor schreibt die erfolgreichen Einsteigerbücher bei DATA BECKER.
Inhaltsverzeichnis[Bearbeiten | Quelltext bearbeiten]
1. KAPITEL - Einleitung .................................... 11 2. KAPITEL - Programmierhilfen ............................. 14 2.1 Belegung der Funktionstasten ........................... 14 2.1.1 KEY - Definition der Tasten .......................... 16 2.1.2 DISPLAY - Anzeigen der Definitionen .................. 19 2.1.3 Testaufgaben ......................................... 21 2.2 Komfortable Programmerstellung ......................... 22 2.2.1 AUTO - automatische Zeilennumerierung ................ 22 2.2.2 RENUMBER - Zeilen umnumerieren ....................... 24 2.2.3 MERGE - Programmverknüpfung .......................... 28 2.2.4 Testaufgaben ......................................... 32 2.3 Listhilfen ............................................. 33 2.3.1 PAGE - Formatierte Listausgabe ....................... 34 2.3.2 OPTION - Hervorheben aller SIMON'S BASIC-Befehle ..... 35 2.3.3 DELAY - Verändern der List-Geschwindigkeit ........... 36 2.3.4 FIND - Aufsuchen von Zeichenketten ................... 37 2.3.5 Testaufgaben ......................................... 40 3. KAPITEL - Fehlerbehandlung .............................. 42 3.1 Externe Fehlerbehandlung ............................... 43 3.1.1 TRACE - Anzeigen der aktiven BASIC-Zeilen ............ 43 3.1.2 RETRACE - Anzeige des letzten TRACE-Fensters ......... 45 3.1.3 DUMP - Anzeigen der benutzten Variablen .............. 47 3.1.4 COLD - Kaltstart ..................................... 49 3.1.5 OLD - Anti-NEW ....................................... 50 3.1.6 Testaufgaben ......................................... 51 3.2 Programminterne Fehlerbehandlung ....................... 52 3.2.1 ON ERROR - Abfangen eines Programmfehlers ............ 52 3.2.2 NO ERROR - Ausschalten der Fehlerbehandlung .......... 55 3.2.3 ON ERROR NO ERROR im Detail .......................... 55 3.2.4 OUT .................................................. 62 3.2.5 Testaufgaben ......................................... 63 4. KAPITEL - Programmschutz ................................ 64 4.1 DISAPA - Kennzeichnen geschützter Zeilen ............... 64 4.2 SECURE - Schützen der gekennzeichneten Zeilen .......... 65 5. KAPITEL - Programmstruktur .............................. 66 5.1 Logische Operationen ................................... 67 5.1.1 IF ... THEN ... ELSE ................................. 67 5.1.2 RCOMP ................................................ 68 5.1.3 REPEAT ... UNTIL ..................................... 70 5.1.4 LOOP ... EXIT IF ... END LOOP ........................ 72 5.1.5 Testaufgaben ......................................... 74 5.2 Sprungbehandlung ....................................... 75 5.2.1 PROC - Symbolische Sprungadressen (Label) ............ 75 5.2.2 END PROC - Routinenende festlegen .................... 76 5.2.3 CALL - Sprung zu Label ............................... 77 5.2.4 EXEC - symbolischer Unterprogrammaufruf .............. 78 5.2.5 CGOTO - berechneter Sprung ........................... 79 5.2.6 Testaufgaben ......................................... 80 6. KAPITEL - Variablen ..................................... 82 6.1 LOCAL - Festvariablendefinition ........................ 82 6.2 GLOBAL - Wiederherstellung der Festvariablen ........... 83 6.3 Testaufgaben ........................................... 84 7. KAPITEL - Zahlenbehandlung .............................. 85 7.1 Arithmetische Operatoren ............................... 85 7.1.1 MOD - Rest einer Division ............................ 85 7.1.2 DIV - Vorkommazahl einer Division .................... 87 7.1.3 FRAC - Bestimmen der Nachkommazahl ................... 88 7.1.4 EXOR - Exclusiv-Oder Verknüpfung ..................... 89 7.1.5 Testaufgaben ......................................... 91 7.2 Zahlenumwandlung ....................................... 92 7.2.1 % - Umwandlung binär nach dezimal .................... 92 7.2.2 $ - Umwandlung hexadezimal nach dezimal .............. 93 7.2.3 Testaufgaben ......................................... 94 8. KAPITEL - Stringoperationen ............................. 95 8.1 INSERT - Einfügen eines Strings in einen anderen ....... 95 8.2 INST - Überschreiben eines Strings mit einem anderen ... 97 8.3 PLACE - Suchen eines Stringteils ....................... 99 8.4 DUP - Vervielfachen eines Strings ...................... 109 8.5 Testaufgaben ........................................... 111 9. KAPITEL - Ausgabekontrolle .............................. 113 9.1 Formatierte Ausgabe .................................... 113 9.1.1 CENTRE- zentrierte Ausgabe ........................... 115 9.1.2 USE - Dezimalpunkt orientierte Ausgabe ............... 117 9.1.3 AT - positionierte Ausgabe ........................... 119 9.1.4 LIN - Bestimmen der Cursorposition ................... 122 9.1.5 PAUSE - Verzögern des Programmablaufs ................ 123 9.1.6 Testaufgaben ......................................... 126 9.2 Bildschirm blinken ..................................... 127 9.2.1 FLASH - Blinken einer Bildschirmfarbe ................ 127 9.2.2 OFF - Ausschalten des FLASH-Modus .................... 129 9.2.3 BFLASH - Blinken des Bildschirmrahmens ............... 131 9.2.4 BFLASH 0 - Ausschalten des BFLASH-Modus .............. 133 9.2.5 Testaufgaben ......................................... 135 9.3 Hintergrund- und Rahmenfarbe ........................... 136 9.3.1 COLOUR - Ändern der Rahmen- und Hintergrundfarbe ..... 139 9.3.2 BCKGNDS - Einschalten des Extended-Color Modus ....... 141 9.3.3 NRM - Ausschalten des Extended-Color-Modus ........... 147 9.3.4 Testaufgaben ......................................... 148 9.4 Steuerung : Bildschirmbereiche ......................... 149 9.4.1 FCHR - Bildschirmbereich mit Zeichen füllen .......... 152 9.4.2 FCOL - Bildschirmbereich färben ...................... 156 9.4.3 FILL - Bildschirmbereich mit gefärbten Zeichen füllen. 159 9.4.4 MOVE - Bildschirmbereich duplizieren ................. 162 9.4.5 INV - Bildschirmbereich invertieren .................. 163 9.4.6 Testaufgaben ......................................... 166 9.5 Bildschirm scrollen .................................... 167 9.5.1 LEFT - Linksscrollen ................................. 168 9.5.2 RIGHT - Rechtsscrollen ............................... 171 9.5.3 UP - Aufwärtsscrollen ................................ 174 9.5.4 DOWN - Abwärtsscrollen ............................... 176 9.5.5 Testaufgaben ......................................... 178 10. KAPITEL - Eingabekontrolle ............................. 179 10.1 FETCH - Selektion der eingegebenen Zeichen ............ 180 10.2 INKEY - Abfrage der Funktionstasten ................... 181 10.3 RESET - Setzen des DATA-Zeigers ....................... 182 10.3 Testaufgaben .......................................... 184 11. KAPITEL - Ein/Ausgabe Peripheriebefehle ................ 185 11.1 Diskettenbefehle ...................................... 185 11.1.1 DISK - Befehlsübertragung ........................... 185 11.1.2 DIR - Anzeigen des Directorys ....................... 187 11.1.3 SCRSV - Abspeichern eines LOW-RES Bildschirms ....... 189 11.1.4 SCRLD - Laden eines LOW-RES Bildschirms ............. 191 11.1.5 Testaufgaben ........................................ 192 11.2 Druckerbefehle ........................................ 193 11.2.1 COPY - Hardcopy des HIGH-RES/MULTI COLOR Bildschirms. 193 11.2.2 HRDCPY - Hardcopy des LOW-RES Bildschirms ........... 193 11.2.3 Testaufgaben ........................................ 194 12. KAPITEL - Graphik ...................................... 196 12.1 Hardwarevoraussetzungen ............................... 197 12.2 Graphikmodus und Farbbestimmung ....................... 202 12.2.1 HIRES - Bestimmen der Zeichen- und Hintergrundfarbe und Einschalten der HGR mit Löschen ................. 204 12.2.2 MULTI - Bestimmen der Zeichenfarben und Umschalten in den MULTI-COLOR Modus ............................ 207 12.2.3 NRM - Ausschalten des Extended-Color-Modus .......... 211 12.2.4 CSET 2 - Einschalten der Graphikanzeige ohne löschen 213 12.2.5 LOW COL - Farbwechsel und Zeichnen mit Farbsetzung .. 215 12.2.6 HI COL - Farbausgangszustand herstellen und Zeichnen ohne Farbsetzung ............................ 219 12.2.7 Testaufgaben ........................................ 224 12.3 Grafikbefehle ......................................... 225 12.3.1 PLOT - Setzen eines Punktes ......................... 226 12.3.2 TEST - Prüfen auf gesetzten Punkt ................... 228 12.3.3 LINE - Zeichnen einer Linie ......................... 233 12.3.4 REC - Zeichnen eines Rechtecks ...................... 237 12.3 5 BLOCK - Zeichnen eines ausgefüllten Rechtecks ....... 242 12.3.6 CIRCLE - Zeichnen eines Kreises ..................... 245 12.3.7 ARC - Zeichnen eines Bogens ......................... 250 12.3.8 ANGL - Radius einer Figur zeichnen .................. 256 12.3.9 PAINT - Beliebige Fläche ausfüllen .................. 261 12.3.10 Testaufgaben ....................................... 265 12.4 Zeichnen eigener Figuren .............................. 267 12.4.1 DRAW - Erstellen einer Figur ........................ 267 12.4.2 ROT - Drehen und vergrößern dieser Figur ............ 273 12.4.3 Testaufgaben ........................................ 278 12.5 Text innerhalb der Graphik ............................ 279 12.5.1 CHAR - einzelnes Zeichen in die Graphik setzen ...... 279 12.5.2 TEXT - Zeichenkette in die Graphik setzen ........... 283 12.5.3 Testaufgaben ........................................ 287 13. KAPITEL - Zeichensatzerstellung ........................ 288 13.1 MEM - Verlegen des Zeichensatzes von ROM in RAM ....... 292 13.2 DESIGN 2 - Bestimmen des zu verändernden Zeichens ..... 296 13.3 @ - Definition eines Zeichens ......................... 297 13.4 CSET 0/1 - Umschalten auf zweiten Zeichensatz ......... 302 13.5 Testaufgaben .......................................... 304 14. KAPITEL - Sprites (MOBs) ............................... 305 14.1 Spritedefinition ...................................... 310 14.1.1 DESIGN 0/1 - Speicherplatzzuteilung für Sprites ..... 310 14.1.2 @ - Form eines Sprites eingeben ..................... 312 14.4.3 MOB SET - Eigenschaften des Sprites bestimmen ....... 315 14.1.4 CMOB - Farbwahl eines MULTI-COLOR Sprites ........... 319 14.1.5 Testaufgaben ........................................ 320 14.2 Spritesteuerung ....................................... 321 14.2.1 MMOB - Darstellen oder Bewegen eines Sprites ........ 321 14.2.2 MOB OFF - Ausschalten eines Sprites ................. 325 14.2.3 RLOCMOB - Darstellen und Weiterbewegen eines Sprites. 329 14.2.4 DETECT - Sprite-Kollisionsabfrage vorbereiten ....... 333 14.2.5 CHECK - Abfrage auf Sprite-Kollision ................ 335 14.2.6 Testaufgaben ........................................ 340 15. KAPITEL - Musik ........................................ 340 15.1 Hardwarevoraussetzungen ............................... 341 15.2 VOL - Einstellen der Lautstärke ....................... 345 15.3 WAVE - Wellenform bestimmen ........................... 348 15.4 ENVELOPE - Hüllkurve einstellen ....................... 353 15.5 MUSIC - Tonfolge festlegen ............................ 356 15.6 PLAY - Wiedergabe der Musik ........................... 360 15.7 Testaufgaben .......................................... 363 16. KAPITEL - Steuernde Peripherie ......................... 364 16.1 LIGHTPEN .............................................. 364 16.1.1 PENX - Bestimmen der X-Koordinate ................... 366 16.1.2 PENY - Bestimmen der Y-Koordinate ................... 367 16.2 PADDLE und JOYSTICK ................................... 369 16.2.1 POT - PADDLE-Wert abfragen .......................... 370 16.2.2 JOY - Funktion des Joysticks bestimmen .............. 371 17. KAPITEL - Anhang ....................................... 373 17.1 Lösungen zu den Testaufgaben .......................... 373 17.2 Farbtabelle ........................................... 374 17.3 Fehlermeldungen ....................................... 375 17.3 Alphabetische Befehlsübersicht ........................ 377 17.4 SIMONS BASIC Daten .................................... 378
Leseprobe[Bearbeiten | Quelltext bearbeiten]
9.5.1 LEFT
Format :LEFTW z,a,b,h Parameter : - z: Zeile (0-24) und - s: Spalte (0-39) der oberen linken Ecke des Feldes - h: Höhe und - b: Breite des Feldes Beispiel :LEFTW 5,7,3,4 Funktion :Links Scrollen eines Bildschirmbereiches
Erläuterungen:
Bei dem Befehl LEFT haben wir es mit dem Komando zu tun, das uns - wie der Name schon sagt - unseren Bildschirm nach links verschiebt. Dabei kann jeweils ein bestimmter rechteckiger Bereich ausgewählt werden, für den die Verschiebung ausgeführt wird. Dabei geben die ersten beiden Parameter die absolute Lage des Rechtecks auf dem Bildschirm an:
z stellt hier die Zeile, s die Spalte der oberen linken Ecke Ihres Rechtecks an. z und s sind somit praktisch die An-fangskoordinaten.
Mit h und b nun legen Sie die Höhe bzw. die Breite des Feldes fest, wobei stets in Einheiten eines Zeichens gemessen wird., d.h. h oder b geben die relativen Ausmaße (relativ zu dem mit z und s festgelegten "Ursprungspunkt") Ihres Zeichenrechtecks an. h und b dürfen also nicht größer werden, als die Anzahl der Zeilen oder Spalten vom Ursprungspunkt bis zum Ende der Spalte bzw. Zeile. Beginnen Sie demnach mit Ihrem Rechteck in Zeile 10 / Spalte 10, so darf h nur noch maximal den Wert von 14 annehmen, da nur noch 14 Zeilen bis zum unteren Rand des Bildschirms frei sind. Umgekehrt darf b höchstes nur noch 29 werden, da dies die Zahl der freien Zeichen bis zum rechten Rand ist. Werden diese Werte überschritten, ragt nach Ihrer Eingabe das Rechteck über den Bildschirmrand hinaus, oder geben Sie für einen der Parameter den Wert 0 ein, so wird die Fehlermeldung BAD MODE, ausgegeben.
Wie Sie sehen stimmt (entgegen den Aussagen des Simon's Basic Handbuchs, das an dieser Stelle einen Fehler aufweist) die Parametersyntax mit der der Bildschirmbereichsbefehle überein, was ja auch zweckmäßig ist.
100 REM ##################### 110 REM ## ## 120 REM ## LEFT-BEISPIEL ## 130 REM ## ## 140 REM ##################### 150 REM 160 PRINT CHR$(147) : REM BILDSCHIRM LOESCHEN 170 A$ = "CBM 64 --- SIMON'S BASIC///" : REM SCHRIFT DEFINIEREN 180 PRINT AT(7,12) A$ :REM POSITIONIERT SCHREIBEN 190 FOR X=1 TO 216 : REM AUFZAEHLEN 200 LEFTW 12,7,LEN(A$),1 : REM LEN(A$) IST DIE LAENGE VON A$ 210 FOR Y=X TO 100 : NEXT Y : REM VARIABLE WARTESCHLEIFE/SCHNELLER WERDEND 220 NEXT X 230 FOR X=216 TO 1 STEP -1 : REM ABZAEHLEN 240 LEFTW 12,7,LEN(A$),1 : REM LEN(A$) IST DIE LAENGE VON A$ 250 FOR Y=X TO 100 : NEXT Y : REM VARIABLE WARTESCHLEIFE/LANGSAMER WERDEND 260 NEXT X 270 PRINT : REM LEERZEILE 280 CENTRE "UEBERZEUGT?"
Auflagenunterschiede[Bearbeiten | Quelltext bearbeiten]
Auflage 3 und 4[Bearbeiten | Quelltext bearbeiten]
- Die Lesbarkeit wurde durch eine größere Schrift deutlich erhöht.
- Die Hintergrund der Befehlseckdaten wurden mit grauer Farbe eingefärbt.
- Die Druckqualität wurde verbessert.
- Der Buchrücken ist bedruckt.
- Am Ende der Einleitung wurden folgende Sätze hinzugefügt:
Es gibt noch eine Reihe weiterer im Handbuch nicht aufgeführter Kommandos, die jedoch nicht oder nicht fehlerfrei funktionieren und oft in einem Absturz des Rechners enden. Aus diesem Grunde wurden sie hier nicht weiter aufgeführt.
Auflage 4[Bearbeiten | Quelltext bearbeiten]
- Neues Cover und zusätzliche Grafiken.
- Das fehlerhafte Programmbeispiel des CALL-Befehls wurde in der vierten Auflage korrigiert.
Fehler[Bearbeiten | Quelltext bearbeiten]
Fehler | Korrektur | Fundstelle | Kommentar |
---|---|---|---|
... mit dem Komando ... | ... mit dem Kommando ... | 9.5.1 LEFT, S. 168 , Aufl. 2 | Rechtschreibung |
160 ::DIR:REM DIRECTORY AUFLISTEN
|
160 ::DIR"$":REM DIRECTORY AUFLISTEN
|
11.1.2 DIR, S. 188, Aufl. 2 | DIR-Syntax |
Der Befehl DIR jedoch ließt das Directory wie eine Datei Byte für Byte und stellt sie auf dem Bildschirm dar. | Der Befehl DIR jedoch liest das Directory wie eine Datei Byte für Byte und stellt sie auf dem Bildschirm dar. | 11.1.2 DIR, S. 188 , Aufl. 2 | Rechtschreibung |
Meinung[Bearbeiten | Quelltext bearbeiten]
Petrus: Die Autoren haben sich viel Mühe gegeben - mit Erfolg. Dieses Buch ist eine wertvolle Ergänzung zum Handbuch und kann jedem Simons' Basic Benutzer empfohlen werden. Den positiven Gesamteindruck trüben dabei auch nicht einige kleine Mängel, wie die folgenden (in der 2. Auflage):
- Die Befehle ON KEY, DISABLE, RESUME wurden "vergessen"
- Hinter CALL folgen im Beispiel weitere Anweisungen; das ist aber nicht möglich
- Die MOVE-Parameter für Breite und Höhe sind in der Befehlsbeschreibung vertauscht
- Beim Befehl TEXT wird übersehen, dass auch der drittletzte Parameter nicht als Variable einsetzbar ist.
Johann Klasek: Inhaltlich gesehen füllt das Buch viele Informationslücken, die es zu SB gibt auf. Speziell das Fehlerverhalten der Kommandos und sonstige Macken werden ganz gut erläutert. Die Struktur orientiert sich an den Aufgaben, nachdem auch die Befehle gruppiert sind. Das tut dem Buch selbst in der Nutzung als Nachschlagewerk keinen Abbruch und macht das Werk erst richtig zu einem wertvollen Helfer.
Der Stil ist mir fast zu jovial, was für ein Fachbuch schon eher selten anzutrefen ist.
Zumindest bei Auflage 2 ist das Matrixdrucker-Layout im Blocksatz zum Lesen eine wahre Qual. Hinzu kommt der bei Data Becker übliche schlecht redigierte (wenn überhaupt - vermutlich stammt alles 1:1 vom Autor?) und mit Fehlern überhäufte Satz, wogegen man im Laufe der Lesezeit aber abstumpft.