Simons Basic Extension
Aus C64-Wiki
SIMONS' BASIC EXTENSION (im Folgenden auch kurz SBX genannt) ist eine Erweiterung der Modul-Version von Simons' BASIC mit 91 Befehlen, die von Kassette oder Diskette nachgeladen wird. SBX wurde wie Simons' BASIC selbst von David Simons 1983 programmiert und von Commodore vertrieben, allerdings nicht in Deutschland.
David Simons im Lemon64-Forum: "... there was a Simon's Basic2 that was released by Commodore (at least in the UK and I believe the US) - it used a neat trick to page use some of the memory which was rendered inaccessible by the original cartridge."
Inhaltsverzeichnis |
[Bearbeiten] Laden und Starten
Um die Extension laden zu können, muss das Modul eingesteckt und Simons' BASIC aktiv sein. SBX wird nun mit
von Diskette bzw. mit
LOAD <RETURN>
von Kassette geladen und mit RUN gestartet. Während des Ladevorgangs erscheint auf dem Bildschirm "SIMONS BASIC II", mit Hilfe von geänderten Zeichen in großer Schrift. Diese Bezeichnung ist hier verwirrend. Korrekt sollte dort "SIMONS BASIC EXTENSION" stehen, denn die wird ja geladen.
Die Extension lädt sechs Dateien nach.
Nachdem das Erweiterungsprogramm ausgeführt ist, erscheint die Startmeldung mit *** SIMONS BASIC 2 ***. SIMONS' BASIC 2 (auch kurz SB2 genannt) enthält neben den 114 Befehlen des Moduls nun aus der Extension 89 neue, 2 verbesserte Befehle (FIND, RENUMBER) und einen (DESIGN) mit erweiterten Möglichkeiten. Der Befehl FIND ist im Handbuch noch nicht erwähnt.
Es steht nun ca. 10 KB weniger Speicherplatz zur Verfügung.
[Bearbeiten] Befehlsübersicht
[Bearbeiten] Befehle nach Anwendungsbereich
Die Befehle der Extension kommen aus folgenden Bereichen:
Befehle zur Programmverwaltung:
- RENUMBER, DELETE, ALTER, HELP, CHAIN, PROTECT, FORCE, DS$, FIND
Befehle für numerische Felder:
- SET ARR, ZER ARR, PRINT ARR, ADD ARR, SUB ARR, MUL ARR, DIV ARR, ADD ALL, SUB ALL, MUL ALL, DIV ALL, COPY ARR, INPUT ARR, READ ARR, ELEMENTS, MIN, MAX, SCRATCH, SUM, SORT
Befehle für numerische Verwaltung:
- GRAD, DEG, BIN$, HEX$, CALCX, CALCY, EVAL, BACK
Befehle zur Speicherverwaltung:
- DEEK, DOKE, HIMEM, LOMEM, SCREEN
Befehle für Grafik und Bildschirmverwaltung:
- GRID, TICK, LABEL, DRAW TO, VLIN, HLIN, SCALE, SCX, SCY, LOW RES, DESIGN, MCOL, ROTATE, FONT, UPPER, ECOL, BCKFLASH, CCOL, SCOL, SCHR, *, PREPARE, PUSH, PULL, HSAVE, HLOAD
Befehle zum Erzeugen und Bewegen von Sprites:
- INIT, SPRITE, CREATE, TRANSFER, INVERT, REVERSE, CHANGE, BARRIER, INFO, START, CLEAR, SPRX, SPRY, SPR LOC, XVEC, YVEC, ON DETECT, CONTINUE, SHOW, NORMAL
Befehle zur Musiksteuerung:
- FILTER, MODE, PULSE, BEEP
[Bearbeiten] Die BASIC-Befehle von SIMONS' BASIC EXTENSION
| * | ADD ALL | ADD ARR | ALTER | BACK | BARRIER |
| BCKFLASH | BEEP | BIN$ | CALCX | CALCY | CCOL |
| CHAIN | CHANGE | CLEAR | CONTINUE | COPYARR | CREATE |
| DEEK | DEG | DELETE | DESIGN | DIVALL | DIVARR |
| DOKE | DRAWTO | DS$ | ECOL | ELEMENTS | EVAL |
| FILTER | FIND | FONT | FORCE | GRAD | GRID |
| HASVE | HELP | HEX$ | HIMEM | HLIN | HLOAD |
| INFO | INIT | INPUTARR | INVERT | LABEL | LOMEM |
| LOWRES | MAX | MCOL | MIN | MODE | MULALL |
| MULARR | NORMAL | ONDETECT | PREPARE | PRINTARR | PROTECT |
| PULL | PULSE | PUSH | READARR | RENUMBER | REVERSE |
| ROTATE | SCALE | SCHR | SCOL | SCRATCH | SCREEN |
| SCX | SCY | SETARR | SHOW | SORT | SPRITE |
| SPRLOC | SPRX | SPRY | START | SUBALL | SUBARR |
| SUM | TICK | TRANSFER | UPPER | VLIN | XVEC |
| YVEC | ZERARR |
[Bearbeiten] Token
Schlüsselwörter des Simons' BASIC werden vom Interpreter in 2-Byte-Token gewandelt.
Die Modulbefehle haben als erstes Tokenbyte $64 (100), die Extensionbefehle $65 (101).
Token und Einsprungadressen zeigt die Tabelle Simons Basic Extension Token.
[Bearbeiten] Speicherverwaltung unter SIMONS' BASIC 2
[Bearbeiten] Speicherbelegung
Die Speicherbelegung des Moduls ist im Simon's BASIC - Artikel dokumentiert.
Die Extension belegt im RAM folgende Speicherbereiche:
- part1 $7700-$7FF1
- part2 $801A-$8201
- part3 $8356-$8419
- part4 $897A-$8AAA
- part5 $8C09-$8F4F
- part6 $929C-$BDFB.
Der Bereich $8000-$9FFF ist nun doppelt, der Bereich $A000-$BFFF sogar dreifach belegt (BASIC-ROM, Modul, RAM).
[Bearbeiten] Geänderte Vektoren
| Adresse | Bedeutung | Modul | SBX |
| $0073-$0075 | CHRGET | $0073 | $7817 |
| $0300-$0301 | BASIC-Warmstart | $8FAE | $7808 |
| $0302-$0303 | Eingabe einer Zeile | $8289 | $7827 |
| $0304-$0305 | Umwandlung in Interpretercode | $8261 | $77DC |
| $0306-$0307 | Umwandlung in Klartext (LIST) | $826D | $77EE |
| $0308-$0309 | BASIC-Befehlsadresse holen | $8609 | $7EE4 |
| $030A-$030B | Ausdruck auswerten | $9646 | $7B8A |
| $0314-$0315 | IRQ | $9CDC | $9CDC |
| $0316-$0317 | BRK | $8353 | $7717 |
| $0318-$0319 | NMI | $8330 | $7717 |
| $FFFA-$FFFB | NMI-Vektor | $8118 | $7717 |
| $FFFE-$FFFF | IRQ | $775E |
[Bearbeiten] Weblinks
Download:
- SIMONS' BASIC EXTENSION auf TAP+D64 von iAN CooG
Dokumentation:
- SIMONS' BASIC EXTENSION USER GUIDE
Manual für die Erweiterung zur Modul-Version (PDF in DLH's Commodore Archiv, 34 MB)
- David Simons, the author of Simons' Basic im Lemon64-Forum
Artikel:
- "SIMONS BASIC II" in der RUN 01/1985 S. 116,117,126
Bilder:
- SIMONS' BASIC EXTENSION Kassette
- Simons' Basic EXTENSION available Karton mit Kassette