Simons Basic

Aus C64-Wiki
Zur Navigation springenZur Suche springen
Simons' Basic
Die Einschaltmeldung von Simons' BASIC.
Entwickler David Simons
Firma D.S. Software
Verleger Commodore, Conrad Electronic
Release 1983
Lizenz Vollversion
Plattform(en) C64
Genre BASIC-Erweiterung
Steuerung Icon tastatur.png Icon paddle.png Icon joystick.png
Medien Icon cartridge.png Icon disk525.png
Sprache(n) Sprache:englisch, Anleitung Sprache:deutsch, Sprache:italienisch
Information Überarbeitete Version:
Tuned Simons’ Basic

Simons' BASIC ist eine BASIC-Erweiterung, die vom damals 16-jährigen Schüler David Simons für den C64 entwickelt wurde. Sie erweitert den Befehlssatz des BASIC V2 um 114 nützliche Kommandos und wurde 1983 von D.S. Software über Commodore UK aus England vertrieben.


Versionen[Bearbeiten | Quelltext bearbeiten]

Simons' BASIC gibt es entweder als Steckmodul, das am Expansionsport angeschlossen wird oder als Softwareversion auf Diskette. Es verkleinert den freien BASIC-Speicher des C64 um 8 KByte.

1984 erschien die deutsche Version des Modul-Version-Handbuchs (Art. 564009) der Commodore GmbH, Frankfurt, im Ringbuch.

Ab 1990 wurde das Modul in Deutschland von Conrad Electronic GmbH, 8452 Hirschau (Best.-Nr. 95 11 88) für etwa 9,85 DM[1] vertrieben. Lieferumfang war das Steckmodul, die englischsprachige Anleitung "SIMONS' BASIC - 114 ADDITIONAL PROGRAMMING COMMANDS (USER GUIDE C64108)" und eine deutsche, 24-seitige Kurzbeschreibung der Befehle von Conrad Electronic (*15-01-90/01/E). Darin wurden die Abschnitte 2.2 bis 12.5 des User Guide äußerst kurz (ohne Abbildungen und Beispiele) auf Deutsch wiedergegeben.

Befehlsübersicht[Bearbeiten | Quelltext bearbeiten]

Simonsbasic.jpg

Die neuen BASIC-Befehle dienen folgenden Zwecken:

DISPLAY, KEY
  • Programmierung: Hilfen, Schutz
AUTO, DISAPA, DUMP, FIND, MERGE, OLD, OPTION, PAGE, PAUSE, RENUMBER, SECURE
  • Kontrollierte Eingabe und Textmanipulationen
FETCH, INKEY, USE
DIV, EXOR, FRAC, MOD, %, $
DUP, INSERT, INST, PLACE
DIR, DISK
ANGL, ARC, BLOCK, CHAR, CIRCLE, COPY, DRAW und ROT, HI COL, HIRES, LINE, LOW COL, MULTI, PAINT, PLOT, REC, TEXT, TEST
  • Befehle und Funktionen für die Manipulation des Textbildschirms
AT, BCKGNDS, BFLASH, CENTRE, COLOUR, CSET, DELAY, DOWN, FLASH, FCHR, FCOL, FILL, HRDCPY, INV, LEFT, LIN, MOVE, OFF, SCRLD, SCRSV, UP
CHECK, CMOB, DESIGN und @, DETECT, MMOB, MOB OFF, MOB SET, RLOCMOB
  • Befehle zur Programmsteuerung und strukturierten Programmierung
CALL, CGOTO, (IF-THEN-) ELSE, LOOP-EXIT-END LOOP, PROC, END PROC, EXEC, GLOBAL, LOCAL, ON KEY-DISABLE-RESUME, RCOMP, REPEAT-UNTIL, RESET
  • Laufzeitfehlerkontrolle
ERRLN, ERRN, NO ERROR, ON ERROR, OUT, RETRACE, TRACE
  • Vereinfachte Erstellung und Umgang mit Musik und Tönen
ENVELOPE, MUSIC, PLAY, VOL, WAVE
JOY, PENX, PENY, POT
  • Befehle zur Speicherverwaltung
COLD, MEM, NRM
  • Systemvariablen
GRAPHICS, SOUND


Schlüsselwörter des Simons' Basic werden vom Interpreter in 2-Byte-Token gewandelt. Das erste Tokenbyte ist immer $64 (100). Details zeigt die Tabelle Simons Basic Token.


SIMONS' BASIC Befehle in alphabetischer Reihenfolge:

SimonsBasicModul CoverFront.jpg
SimonsBasicModul CoverBack.jpg
% $ ANGL ARC AT AUTO
BCKGNDS BFLASH BLOCK CALL CENTRE CGOTO
CHAR CHECK CIRCLE CMOB COLD COLOUR
CSET DELAY DESIGN DETECT COPY DIR
DISAPA DISK DISABLE DISPLAY DIV DOWN (B/W)
DRAW DUMP DUP ELSE END LOOP END PROC
ERRLN ERRN EXEC EXIT ENVELOPE EXOR
FCHR FCOL FETCH FILL FIND FLASH
FRAC GLOBAL GRAPHICS HI COL HIRES HRDCPY
INKEY INSERT INST INV JOY KEY
LEFT (B/W) LIN LINE LOCAL LOOP LOW COL
MEM MERGE MMOB MOB OFF MOB SET MOD
MOVE MULTI MUSIC NO ERROR NRM OFF
OLD ON ERROR ON KEY OPTION OUT PAGE
PAINT PAUSE PENX PENY PLACE PLOT
POT PROC RCOMP REC PLAY RENUMBER
REPEAT RESET RESUME RETRACE RIGHT (B/W) RLOCMOB
ROT SCRLD SCRSV SECURE SOUND TEXT
TRACE UP (B/W) UNTIL USE TEST VOL
WAVE @      


Speicherverwaltung unter Simons' BASIC[Bearbeiten | Quelltext bearbeiten]

Belegungsplan[Bearbeiten | Quelltext bearbeiten]

Adressbereich Belegung
$0000-$03FF Wie beim normalen BASIC
$0400-$07FF Video-RAM bei normalem Betrieb
$0800-$7FFF Speicher für Anwendungsprogramm, Variablen und Strings
$8000-$BFFF Simons' BASIC
TSB bis $CFFF
$C000-$C3E7 Video-RAM bei Hires (1. und 2. Farbe, $C3E8-$C3FF: frei)
$C400-$C4FF frei
(in TSB belegt: Fast-Call-Tabelle, Länge je nach Anzahl PROCs)
$C500-$CBFF Hilfszellen für Simons' BASIC
In TSB: Code von $C750 bis $CAA8
$CC00-$CFFF Video-RAM nach MEM
In TSB: Code
$D000-$DFFF I/O und Farb-RAM
$E000-$FF3F Grafik-Speicher bzw. Zeichensatz nach MEM ($E000-$EFFF)
$FF40-$FFF9 (freies RAM)
$FFFA-$FFFB NMI-Vektor (im RAM auf $8118 gerichtet)
$FFFC-$FFFF (frei)

Bei (Kalt-)Start löscht Simons' BASIC den Bereich $C300-$CBFF,
TSB löscht dagegen nur $C400-$C5FF und $CB00-$CBFF.

Geänderte Vektoren[Bearbeiten | Quelltext bearbeiten]

Adresse Bedeutung Disk/TSB Modul
$0300-$0301 BASIC-Warmstart $9E9C $8FAE
$0302-$0303 Eingabe einer Zeile $825C $8289
$0304-$0305 Umwandlung in Interpretercode $8234 $8261
$0306-$0307 Umwandlung in Klartext (LIST) $8240 $826D
$0308-$0309 BASIC-Befehlsadresse holen $917A $8609
$030A-$030B Ausdruck auswerten $8C8D $9646
$0314-$0315 IRQ $9694 $9CDC
$0316-$0317 BRK $8314 $8353
$0318-$0319 NMI $82FA $8330

Erweiterung ein-/ausschalten[Bearbeiten | Quelltext bearbeiten]

Es ist möglich, zwischen Simons Basic und dem BASIC V2 hin- und herzuschalten. Das funktioniert mit der Diskettenversion, mit TSB und mit der Modulversion;

  • SYS 64760 ($FCF8) schaltet von Simons Basic ins BASIC V2; der Aufruf startet den letzten Teil der Reset-Routine ohne Modulabfrage und Arbeitsspeicherinitialisierung.
Beim Modul bleiben allerdings nur "30719 BASIC-BYTES FREE"; es kann auch mit RUN/STOP +RESTORE  wieder gestartet werden.
Einige Diskettenversionen - nicht aber TSB - stürzen nach SYS 64760 und Drücken dieser Tastenkombination ab, weil bei ihnen der NMI-Vektor bei $8002-8003 auf $0000 statt auf $82FF zeigt.
  • SYS 64738 ($FCE2) schaltet Simons Basic wieder ein (RESET)

Dieser Tipp basiert auf einer Veröffentlichung von Jürgen Ehnes in der 64'er 2/86.

Das Modul benutzt intern das I/O-Register $DE00 zum Ein-/Ausblenden des Modul-ROMs.
Schreiben in das Register (STA $DE00) schaltet das Modul ein, das Lesen des Registers (LDA $DE00) aus.

Beachten![Bearbeiten | Quelltext bearbeiten]

Im BASIC V2 ist bei der Auswertung von Ausdrücken mit mehreren Parametern immer nur einer vorgesehen, der 16-bittige Zahlenwerte erlaubt. Aus diesem Grunde versagt diese Auswertung, wenn einer der Parameter eines BASIC-V2-Befehls von einem Simons'-BASIC-Befehl mit ebenfalls 16-bittigen Parametern beschickt wird! In einem solchen Fall wird das Ergebnis des ersten Parameters unrekonstruierbar verworfen und der Ausdruck liefert insgesamt ein falsches Ergebnis oder führt schlimmstenfalls zum Absturz. So würde ein POKE 1024,MOD(2000,64) (um ein "p" an die erste Bildschirmposition zu schreiben) dieses "p" in Speicherstelle 64 ablegen (was in diesem Falle keine weiteren negativen Auswirkungen hätte), ohne jedoch einen Fehler zu melden. Daher Werte für Befehle mit mehreren Parametern nicht direkt an der Parameterposition berechnen lassen, sondern bereits vorher! Diese Einschränkung gilt auch für TSB.

Literatur[Bearbeiten | Quelltext bearbeiten]

Bücher[Bearbeiten | Quelltext bearbeiten]

Modul-Version Handbuch (DE)
Handbuch der Conrad Electronic Edition
von Hans Lorenz Schneider u. Werner Eberl
Markt & Technik Verlag, ISBN 3-922120-71-7
aus der Reihe "Computer Persönlich", Band 5
Enthält ein kommentiertes ROM-Listing.
von Axel Plenge u. Norbert Szczepanowski
Data Becker GmbH, ISBN 3-89011-009-6
Beruht auf der Diskettenversion von Simons' BASIC.
von Norbert Treitz
Hagemann Verlag, ISBN 3-544-53003-1
Enthält 111 kleine Grafikprogramme für Simons' BASIC. Sehr empfehlenswert!
von Walter Bachmann
Westermann Verlag, ISBN 3-14-508811-4
Entwickelt eine parametrisierte Grafikanwendung.
  • Einstieg in Simon's Basic für den Commodore 64
von Vera F. Birkenbihl
IWT Verlag, ISBN 3-88322-056-6
Beschäftigt sich hauptsächlich mit Grafik unter Simons' BASIC.

Artikel über Simons' BASIC im 64'er-Magazin[Bearbeiten | Quelltext bearbeiten]

Folgende Artikel sind im 64'er-Magazin zu Simons' BASIC erschienen:


Trivia[Bearbeiten | Quelltext bearbeiten]

  • Der korrekte Name der Erweiterung lautet Simons' BASIC, ein Genitiv des Nachnamens des Programmierers David Simons. Dennoch wurde vor allem im deutschen Sprachraum einiges an Drittliteratur veröffentlicht, in der fälschlich der Name Simon's BASIC verwendet wird. Sogar in offiziellen Dokumentationen und Handbüchern von Commodore selbst taucht diese falsche Schreibweise auf.
  • Commodore brachte später auf Kassette und Diskette eine Erweiterung SIMONS' BASIC EXTENSION zur Simons' BASIC Cartridge heraus. Diese Version wurde nicht in Deutschland vertrieben. Sie besitzt 91 weitere Befehle, eine leicht verbesserte Speicherverwaltung, meldet sich mit "SIMONS BASIC 2" und hat 28031 Bytes freien Basic-Speicher.
  • In den Jahren 1985-89 waren in Mailboxen unter dem Namen "Commander BASIC VT-xxx", wobei für "xxx" die Typnummern einiger Porsche-Modelle standen (also z.B. "Commander BASIC VT-935" oder "Commander BASIC VT-944" einige um weitere Befehle erweiterte und intern z.T. deutlich geschwindigkeitsoptimierte Kopien von Simons' BASIC in Umlauf.
  • Wie kann man mit Simons' BASIC geschriebene Programme kompilieren?
    Leider gibt es keinen Compiler, der ein allein laufendes "Simons' BASIC"-Compilat erzeugen kann. Einige, wie z.B. der Basic 64 Compiler, verarbeiten einen Teil der Befehle. Diese werden dabei aber nur an den Interpreter weitergereicht, was bedeutet, dass Simons' BASIC bei der Ausführung aktiv sein muss - sonst führt das zu einem ?SYNTAX ERROR - und somit diese Befehle nicht beschleunigt ausgeführt werden.
  • Die amerikanische Indie-Band Barcelona hat im Jahr 1999 ein Album herausgegeben, dessen Titel auf Simons' BASIC zurückgeht ("Simon Basic").


Siehe auch[Bearbeiten | Quelltext bearbeiten]

Weblinks[Bearbeiten | Quelltext bearbeiten]

Download[Bearbeiten | Quelltext bearbeiten]

Allgemein[Bearbeiten | Quelltext bearbeiten]

WP-W11.png Wikipedia: Simons' BASIC
WP-W11.png Wikipedia: Simons' BASIC mit Beschreibung der Befehlswörter Sprache:english

Dokumentation[Bearbeiten | Quelltext bearbeiten]

Reviews in Creative Computing[Bearbeiten | Quelltext bearbeiten]

Simons BASIC Programme[Bearbeiten | Quelltext bearbeiten]

Quellen[Bearbeiten | Quelltext bearbeiten]

  1. 64'er; Ausgabe 03/1991, S.20
Artikel des Monats.gif Dieser Artikel wurde Artikel des Monats.