Der " B-E- E"( für Basic-Erweiterungen- Editor) ist ein mächtiges Tool zum erstellen eigener Basic-Erweiterungen. Sie
können hierbei sowohl eigene Assemblerroutinen in eine Erweiterung einbinden, als auch eine Auswahl aus 42 Routinen
treffen, die Ihnen der BEE zur Verfügung
stellt. Dabei können Sie zwischen drei
verschiedenen Speicherbereichen wählen, in denen die Erweiterung abgelegt werden
kann, und die Namen aller Befehle selbst
definieren.
ALLGEMEINES
* Laden Sie den BEE mit LOAD" B-E- E",8 und starten Sie ihn mit ' RUN' . Es erscheint nun das Titelbild, aus dem Sie
mit einem Tastendruck zum eigentlichen
Programm gelangen.
* Hinweise zur Eingabe: Wird irgedwo im
Programm nach einem Filenamen gefragt, so können Sie die Eingabe desselben
durch die Angabe keines Namens abbrechen. Wenn Sie sich bei einer Filenamenabfrage das Inhaltsverzeichnis anschauen möchten, so geben Sie einfach
"$" als Filenamen an. Das Inhaltsverzeichnis wird daraufhin geladen, und
Sie gelangen per Tastendruck wieder
zurück zur Filenamen-Eingabe.
* Generell sind bei der Eingabe von Zeichenketten alle Editiertasten erlaubt.
Sie brechen eine normale Eingabe ( bei
Filenamenseingaben nicht!) immer durch
Druck auf die ' RUN/ STOP'- Taste ab.
DIE VOREINSTELLUNGEN
Nachdem der BEE gestartet wurde, müssen
Sie ihm erst einige Fragen beantworten, damit Sie mit ihm arbeiten können.
Zunächst müssen Sie angeben, ob Sie eine
neue Erweiterung erstellen, oder aber
eine alte Nachladen möchten. Drücken Sie
' F1' für eine neue Basic-Erweiterung, und ' F3' um eine schon bestehende Erweiterung nachzubearbeiten. Hierbei wird
nun nach dem Filenamen selbiger gefragt
(" Loadname:") . Geben Sie den Namen ein
und bestätigen Sie mit ' RETURN' . Die
Erweiterung wird geladen und es wird zum
Hauptmenu verzweigt.
Wenn Sie eine neue Erweiterung erstellen
wollten, so werden Sie nun nach dem
Speicherbereich gefragt, in dem sie abgelegt werden soll. Mögliche Bereiche
sind:
' F1'-$ C000-$ CFFF (49152-53247=4 KB)' F3'-$9000-$9 FFF (36864-40959=4 KB)
'F5' - $8000-$9FFF (32768-40959 = 8KB)
Hierbei hat jeder Bereich seine Vorund
Nachteile. Der erste liegt gänzlich außerhalb des von Basic-Programmen benutzten Speichers und kann immer dann verwandt werden, wenn sich dort nicht andere, externe Assembler-Programme befinden, die Ihr Programm nutzen soll. Der
zweite Bereich kann hierzu als Alternative benutzt werden. Er hat jedoch den
Nachteil, daß er die letzten 4 KB des
Basic-Speichers belegt ( geht von $0800-$ A000, dez.2048-40960) . Diesen Nachteil
hat der dritte und letzte Bereich übrigens auch, jedoch ist er der einzige
Bereich, für den man doppelt soviel Kapazität zur Verfügung hat (8 KB) . Benutzen Sie ihn, wenn Sie sehr viele, oder
lange Befehle in Ihre Basic-Erweiterung
einbauen möchten. Liegt eine Erweiterung
in einem der letzten beiden Speicherbereiche, so werden die Basic-Speicher- zeiger bei Aktivierung der Erweiterung automatisch modifiziert. Sie müssen
hiernach als aller erstes, noch bevor
Sie irgendwelche Variablen definieren, den normalen Basic-Befehl " CLR" in Ihrem
Programm verwenden. Andernfalls kann es
vorkommen, daß die neu definierten Variablen die Erweiterung überschreiben, so daß diese abstürzt.
Als nächstes wird nach der Art, in der
die neuen Basic-Befehle aufgerufen werden sollen, gefragt. Drücken Sie ' F1', so wird ein Befehl an einem einfachen
Befehlswort erkannt. Drücken Sie ' F3', so muß jedem erweiterten Befehl ein "<" vorangestellt werden. Das hat den Vorteil, daß der Basic-Interpreter den Befehl schneller erkennt, jedoch auch den
Nachteil, daß Sie immer ein Zeichen mehr
eingeben müssen.
Nun können Sie die Einschaltmeldung editieren, die bei Initialisierung der Erweiterung ausgegeben wird. Hierzu sehen Sie am oberen Bildschirmrand ein fünf
Zeilen großes Fenster, in dem Sie den
gewünschten Text eingeben können. Hierbei können Sie alle gängigen Editiertasten ( Cursortasten, CLR, HOME, INS, DEL) benutzen. Sie haben nun zwei Möglichkeiten, die Eingabe zu beenden: Drücken Sie
' F1', wenn Sie die Meldung, wie eine
Einschaltmeldung ausgegeben haben wollen, oder ' F3', wenn der eingegebene
Text einfach ausgedruckt werden soll.
Als nächtes sehen Sie nochmals die Einschaltmeldung, wie Sie nach dem Start
der Erweiterung auf dem Bildschirm zu
sehen ist. Sie können sie nun mit ' F1' bestätigen oder aber mit ' F3' zur Eingabe zurückspringen.
DAS HAUPTMENU
Nach all diesen Eingaben ( oder nach dem
Laden einer schon bestehenden Erweiterung) kommen Sie nun endlich zum Haupt- menu. Hier stehen Ihnen die folgenden
Funktionen zur Verfügung:
' F1'- MP-ROUTINE LADEN UND EINBAUEN Hiermit laden Sie eine Assembler-Routine
nach, und bauen sie in die Basic-Erwei- terung ein. Wählen Sie den Menupunkt an, so sind Sie dazu aufgefordert den Filenamen der gewünschten Routine einzugeben. Bestätigen Sie die Eingabe mit ' RE-TURN' . Als nächstes müssen Sie noch den
Namen des Befehls eingeben. Anschließend
wird zum Hauptmenu zurückgekehrt.
Beim Einbinden von eigenen Assembler-Routinen wird die neue Routine automatisch an die neue Speicheradresse in der
Erweiterung angepasst. Achten Sie bitte
darauf, daß sie auch verträglich für den
BEE-Relokatierer ist. So sollten Sie zum
Beispiel keine illegalen Op-Codes verwenden, sowie Tabellen und Texte an das
Ende der Routine legen ( diese stellen
für den Relokatierer in der Regel illegale Op-Codes dar) . Außerdem dürfen nicht die üblichen Zeiger auf interne
Daten benutzt werden. Folgende Routine
ist also verboten:
C000 : LDA #$07 ; Zeiger auf $ C007 in C002 : LDY #$ C0 ; Akku/ Y-Reg. holen, C004 : JMP $ AB1 E ; und Text ausgeben C007 : ASC ' Text' ; Daten des Textes
Die Anpassroutine des BEE erkennt das
Laden des Zeigers nicht, da es ja auch
einfache Ladebefehle für Register sein
könnten. Anstelle dessen sollten Sie
folgendermaßen vorgehen:
C000 : LDA $ C00 A ; Zeiger aus Adressie-C003 : LDY $ C00 B ; rung des BIT-Befehls ; laden, C006 : JMP $ AB1 E ; und Text ausgeben C009 : BIT $ C00 C ; BIT-Befehl mit Zeiger ; auf Text ($ C00 C) .
C00 C: ASC ' Text' ; Daten des Textes
Achten Sie bitte auch darauf, daß die Einsprungadresse in die Assembler-Rou- tine immer gleich der Ladeadresse derselben ist. Fügen Sie ggf. einen JMP-Befehl auf den wirklichen Einsprung am
Anfang der Routine ein. Wenn die Routine
mit einem ' SYS' und nachgestellten, durch Komma getrennten, Parametern aufgerufen werden kann, so müssen Sie diese
Parameter später ebenso übergeben werden. Der einzige Unterschied ist, daß
anstelle des SYS-Befehls der Name des
Erweiterungs-Befehls steht.
Bei der Vergabe von Namen für die neuen
Befehlle sollten Sie darauf achten, daß
Sie keine Namen verwenden, die Teile von
normalen Basic-Befehlen enthalten, da
der normale Basic-Interpreter diese nämlich auch dann noch erkennt und in spezielle Tokens umwandelt ( weshalb ein
solcher Befehl von der Erweiterung nicht
mehr erkannt wird) . So sind z. B. die
Namen " TURBOPRINT"," NEWNAME" oder
" CLRSCR" nicht erlaubt, da sie die Basic- Befehle " PRINT"," NEW" und " CLR" in ihren Namen enthalten. Desweietern können Sie bei der Eingabe eines Namens
maximal 10 Zeichen verwenden. Diese sind
auf die Buchstaben und einige Sonderzeichen begrenzt. Alle nicht erlaubten Zeichen werden bei der Eingabe ignoriert.
Ausserdem müssen Sie bei der Namensvergabe vorsichtig mit gleichlautenden Befehlen sein. Möchten Sie z. B. zwei Befehle mit den Namen " SPRITE" und " SPRI-TEPOS" definieren, so können Sie dies in
den Reihenfolgen " SPRITE - SPRITEPOS" und " SPRITEPOS - SPRITE" tun; jedoch
werden diese Befehle nur in der letzteren Art und Weise akzepiert und getrennt
erkannt. Das hängt mit der Befehlserkennung des Basic-Interpreters zusammen.
Sollten Sie die erste Reihenfolge verwandt haben, so weist Sie die Eingaberoutine darauf hin, daß Sie den Befehl
schon einmal eingaben ( obwohl die Namen
nicht identisch sind) .
'F2' - BEFEHL AUS EINER LISTE EINBAUEN
Mit diesem Menupunkt können Sie eine
oder mehrere der 42 schon mitgelieferten
zusätzlichen Befehle in Ihre Basic-Erweiterung einbauen. Wenn Sie ihn aufrufen, so sehen Sie eine Liste dieser
Befehle. Sie werden nun nach dem Namen
des zu übernehmenden Befehls gefragt.
Bei korrekter Eingabe erscheint eine
Kurzbeschreibung des Befehls, mit all
seinen Parametern. Sie können nun noch
einmal den Namen des Befehls bei Bedarf
abändern.
' F3'- BEFEHL LÜSCHEN Hiermit löschen Sie einen Befehl, den
Sie schon übernommen haben. Geben Sie
einfach seinen Namen ein und bestätigen
Sie mit ' RETURN' . Existiert der Befehl
in Ihrer Erweiterung gar nicht, so wird
ohne Änderung zum Hauptmenu zurückgekehrt.
' F4'- ALLE BEFEHLE LÜSCHEN Dieser Menupunkt löscht alle Befehle der aktuellen Erweiterung. Wählen Sie ihn
an, so müssen Sie noch eine Sicherheitsabfrage bestätigen um den Vorgang korrekt durchzuführen. Drücken Sie ' F1' zum
Löschen, oder ' F3' um zum Hauptmenu
zurückzukehren.
' F5'- ALLE BEFEHLE AUFLISTEN Dieser Menupunkt gibt Ihnen alle Befehle, die Sie schon in die Erweiterung
übernommen haben, auf dem Bildschirm
aus. Drücken Sie irgendeine Taste um zum
Hauptmenu zurück zu gelangen.
' F6'- BEE NEU STARTEN Mit diesem Menupunkt kommen Sie nochmals
zum Programmanfang zurück, um die Grundparameter einer Erweiterung zu ändern.
Natürlich geht dabei auch die aktuelle
Erweiterung verloren. Bestätigen Sie
diesen Menupunkt mit ' F1', oder brechen
Sie mit ' F3' ab, um zum Hauptmenu
zurückzukehren.
' F7'- BASIC-ERWEITERUNG SPEICHERN Hiermit speichern Sie die aktuelle Erweiterung auf Diskette ab. Sie kann von
nun an benutzt, oder aber später nochmals geladen und nacheditiert werden.
Geben Sie einfach den Namen ein, den die
Erweiterung tragen soll und bestätigen
Sie mit ' RETURN' . Um sie zu benutzen
müssen Sie sie absolut ( mit ",8,1") in
den Rechner laden und mit dem vom Programm gegebenen SYS-Befehl ( je nach
Speicherbereich " SYS 32768"," SYS 36864" oder " SYS 49152") initialisieren. Nach
dem Laden muß unbedingt der Basic-Befehl
" NEW" benutzt werden. Liegt Ihre Erweiterung in den Speicherbereichen 2 oder 3( s. o.), so müssen Sie nach Aufruf der
Erweiterung den Basic-Befehl " CLR" benutzen.
' F8'- BEE BEENDEN Hiermit verlassen Sie den BEE. Bestätigen Sie dies mit der ' F1'- Taste. Mit
' F3' kehren Sie zum Hauptmenu zurück.
Haben Sie das Programm verlassen, so
können Sie es wieder aufrufen, wenn Sie
' RUN', oder ' SYS 5800' eingeben. Vorrausgesetzt, daß Sie zwischenzeitlich
nicht ein anderes Programm geladen haben. So wiedergestartet erkennt der BEE
eine sich evtl. noch im Speicher befindliche Basic-Erweiterung und gibt Ihnen
die Möglichkeit sie weiter zu editieren
(' F1'), oder aber eine neue Erweiterung
zu erstellen (' F3') . Im ersten Fall, darf zwischenzeitlich auf gar keinen
Umständen etwas in den Speicherbereich
der Erweiterung geladen oder geschrieben
worden sein, andernfalls kann es passieren, daß die Erweiterung später abstürzt!
(ub)