Simons’ BASIC
Simons' Basic | |
---|---|
Entwickler | David Simons |
Firma | D.S. Software |
Verleger | Commodore, Conrad Electronic |
Release | 1983 |
Lizenz | Vollversion |
Plattform(en) | C64 |
Genre | BASIC-Erweiterung |
Steuerung | |
Medien | |
Sprache(n) | , Anleitung , |
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]
Die neuen BASIC-Befehle dienen folgenden Zwecken:
- Funktionstastenbelegung: F1 bis F16 (!)
- Programmierung: Hilfen, Schutz
- Kontrollierte Eingabe und Textmanipulationen
- Erweiterte und zusätzliche numerische Funktionen
- Zusätzliche Befehle und Funktionen für Strings
- Zusätzliche Disketten-Befehle
- Befehle für Grafik
- 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
- Vereinfachte Erstellung und Umgang mit Zeichen und Sprites (auch Multicolor)
- 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
- Befehle zur Speicherverwaltung
- Systemvariablen
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:
% | $ | 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 | TSB speziell |
$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 | belegt: Fast-Call-Tabelle, Länge je nach Anzahl PROCs) |
$C500-$CBFF | Hilfszellen für Simons' BASIC | Code von $C750 bis $CAA8 |
$CC00-$CFFF | Video-RAM nach MEM | Code oder Video-RAM nach MEM |
$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 | $9E9F | $8FAE |
$0302-$0303 | Eingabe einer Zeile | $825C | $825B | $8289 |
$0304-$0305 | Umwandlung in Interpretercode | $8234 | $8233 | $8261 |
$0306-$0307 | Umwandlung in Klartext (LIST) | $8240 | $823F | $826D |
$0308-$0309 | BASIC-Befehlsadresse holen | $917A | $917C | $8609 |
$030A-$030B | Ausdruck auswerten | $8C8D | $8C7F | $9646 |
$0314-$0315 | IRQ | $9694 | $969E | $9CDC |
$0316-$0317 | BRK | $8314 | $8313 | $8353 |
$0318-$0319 | NMI | $82FA | $82F9 | $8330 |
$0330-$0331 | LOAD | $8BE7 | ||
$0332-$0333 | SAVE | $8BF8 |
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 nicht für TSB.
Literatur[Bearbeiten | Quelltext bearbeiten]
Bücher[Bearbeiten | Quelltext bearbeiten]
- 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.
- Spiele mit Computergrafik für Phantasie und Logik
- 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:
- Simons Basic (H.L. Schneider) - 64'er 4/84 S.40 auf archive.org
- Simons Basic Teil 2 (H.L. Schneider) - 64'er 5/84 S. 42 ff. auf archive.org
- Simons Basic: Befehle die nicht im Handbuch stehen (Hans Lorenz Schneider) - 64'er 9/84 S. 103-104 auf archive.org
- Befehlserweiterungen für Simons Basic (Dieter Temme) - 64'er 11/84 S. 90-91 auf archive.org
- Tips und Erweiterungen zu Hi-Eddi und Simons Basic (Hans Haberl) - 64'er 3/85 S. 88 ff. auf archive.org
- Geschichte vom feinen Basic (Arndt Dettke) - 64'er 3/91 S.26 auf archive.org
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]
- TSB
- SIMONS' BASIC EXTENSION
- Simons' BASIC Tipps - Wie erstellt man ein eigenständig lauffähiges Simons Basic Programm?
Weblinks[Bearbeiten | Quelltext bearbeiten]
Download[Bearbeiten | Quelltext bearbeiten]
Diskette
- CSDb: Simon's Basic Expanded CBM V2 Basic, gleicht inhaltlich der originalen kopiergeschützten Diskette von Commodore (*1)
- CSDb: Simon's BASIC V3.1 Disketten-Version mit geändertem (falschen) Startschirm und gekürzter Laderoutine, im Ergebnis wie (*1)
- CSDb: Simon's Basic by The Secret Service gepackt, sonst dieselbe Version wie (*1)
- CSDb: Simon's Basic by Injun gepackt, Schnelllader, Startscreen "- Injun Inc. -", sonst identisch mit (*1)
- CSDb: Simon's Basic by Totosoft Intro Screen, Schnelllader, sonst identisch mit (*1)
- CSDb: Simon's Basic by Probyte mit Monitor und Turbo-Tape erweiterte Version, incl. Demoprogramm
- CSDb: Simon's Basic II V1.85 by Mad Hacker's Incorporated (MHI) gepackt, Schnelllader, mit Monitor und Turbo-Tape
- CSDb: Extended CBM V2 Basic Utility D64 mit verändertem Simons' Basic und div. anderen (Musik-)Programmen
- Simons Basic veränderte Disketten-Version mit Kurzanleitung (TXT) bei Digital Dungeon
- Disketten von Simons' BASIC in DHL's Commodore-Archiv:
- Simons Basic MHI 2 D64, gepackte Version mit Schnelllader, viele Demoprogramme
- Hand Book D64
- User Guide D64
Modul
- Simons BASIC Archiv mit Modul-Version (CRT) und Kurzanleitung (TXT) bei NoGames64 (Webarchiv)
- C64Games.de - Spiel Nr. 3167 Disketten-Version (verändert, identisch mit der bei Digital Dungeon), Modul-Version (CRT), Kurzanleitung (TXT)
Allgemein[Bearbeiten | Quelltext bearbeiten]
Wikipedia: Simons' BASIC |
Wikipedia: Simons' BASIC mit Beschreibung der Befehlswörter |
- Artikel "Simons Basic - Eine notwendige Erweiterung für den Commodore 64" aus der 64'er 4/84 in Projekt 64'er
- Artikel im 64'er Magazin 3/91 (Seite 26; PDF-Datei)
- "Simons‘ Basic (Commodore)" bei retroport.de
Dokumentation[Bearbeiten | Quelltext bearbeiten]
- Inhaltsverzeichnis vom Simons' BASIC Handbuch
- SIMONS BASIC Modul-Version Handbuch im Internet Archiv
- SIMONS' BASIC USER GUIDE Manual für die Modul-Version (PDF in DLHs Commodore Archiv 6.2 MByte)
- SIMONS' BASIC USER GUIDE für die Modul-Version im Internet Archiv
- SIMONS' BASIC Conrad Elektronic Modul Broschüre im Internet Archiv
Reviews in Creative Computing[Bearbeiten | Quelltext bearbeiten]
- Simons' Basic evaluation Tim Onosko, CREATIVE COMPUTING VOL. 9, NO. 11
- Compuserve and Simon's Basic graphics John J. Anderson., CREATIVE COMPUTING VOL. 10, NO. 9
- hi-res graphics from Simon's Basic John J. Anderson., CREATIVE COMPUTING VOL. 10, NO. 10
- MOBs: Simon's Basic sprites for the C64 John J. Anderson., CREATIVE COMPUTING VOL. 10, NO. 12
Simons BASIC Programme[Bearbeiten | Quelltext bearbeiten]
- Sternenhimmel im 64'er 1985-02 S.52 auf archive.org , D64 bei planetemu
- Spiegel-Grafik in c't Heft 1/86, S. 104-108 (Scan in Club-Info des Genie-Clubs Bremerhaven 1/86, PDF, S. 11)
- Fractal Berge im 64'er Sonderheft 7 S.124 auf archive.org , D64 bei planetemu
- Testbild 64 Testbildgenerator im 64'er 1987-01 S.62 auf archive.org , D64 bei planetemu
- Tarnwirkung im 64'er Sonderheft 34 S.72 auf archive.org , Disk2A D64 bei planetemu
- Blattlaus im 64'er Sonderheft 34 S.78 auf archive.org , D64 s.o.
- Reaktor 64 Lippe Enterprises, 1984 Tronic Verlag GmbH/Homecomputer, D64 im Forum64
Quellen[Bearbeiten | Quelltext bearbeiten]
Dieser Artikel wurde Artikel des Monats. |