Simons Basic Extension

Aus C64-Wiki
Wechseln zu: Navigation, Suche
Simons' Basic Extension
Die Einschaltmeldung von Simons' BASIC Extension
Entwickler David Simons
Firma D.S. Software
Verleger Commodore
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
Information alias Simons' Basic II

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."



Laden und Starten[Bearbeiten]

Der Ladebildschirm

Um die Extension laden zu können, muss das Modul eingesteckt und Simons' BASIC aktiv sein. SBX wird nun mit

LOAD"*",8,1 RETURN  oder LOAD"*",8 RETURN 

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 Startmeldung

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 nicht erwähnt.
Es steht nun ca. 10 KByte weniger Speicherplatz für BASIC zur Verfügung als in der Standardkonfiguration.

Befehlsübersicht[Bearbeiten]

Befehle nach Anwendungsbereich[Bearbeiten]

SIMONS' BASIC EXTENSION Handbuch

Die Befehle der Extension kommen aus folgenden Bereichen:

Befehle zur Programmverwaltung:

RENUMBER, DELETE, ALTER, HELP, CHAIN, PROTECT, FORCE, 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 Berechnungen:

GRAD, DEG, BIN$, HEX$, CALCX, CALCY, EVAL, BACK

Befehle zur Speicher- und Systemverwaltung:

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

Systemvariable:

DS$

Die BASIC-Befehle von SIMONS' BASIC EXTENSION[Bearbeiten]

* 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

Token[Bearbeiten]

Schlüsselwörter (Token) 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.

Speicherverwaltung unter SIMONS' BASIC 2[Bearbeiten]

Speicherbelegung[Bearbeiten]

Die Speicherbelegung des Moduls ist im Artikel Simons' BASIC 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

Zusätzlich werden von der Initialisierungs-Routine des SBX die folgenden Stellen im RAM überschrieben:

$8463-$8466
$858A-$858D
$87B9-$87BB
$88D3-$88D8

Da das Modul in seiner Kaltstart-Routine den Code aus dem ROM-Bereich $8000-$BFFF ins RAM kopiert, steht an allen Speicherstellen, die nicht von SBX überschrieben werden, der Code des Moduls im RAM.

Der Bereich $8000-$9FFF ist nun doppelt, der Bereich $A000-$BFFF sogar dreifach belegt (BASIC-ROM, Modul, RAM).


Geänderte Vektoren[Bearbeiten]

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 KERNAL-Vektor $9CDC $9CDC
$0316-$0317 BRK KERNAL-Vektor $8353 $7717
$0318-$0319 NMI KERNAL-Vektor $8330 $7717
$FFFA-$FFFB CPU NMI-Vektor $8118 $7717
$FFFE-$FFFF CPU IRQ-Vektor $775E

Weblinks[Bearbeiten]

Download
Dokumentation
Artikel
  • "SIMONS BASIC II" in der RUN 01/1985 S. 116,117,126
Bilder

Siehe auch[Bearbeiten]