Der "B-E-E" (für Basic-Erweiterungen-
Editor) ist ein mächtiges Tool zum er-
stellen eigener Basic-Erweiterungen. Sie
können hierbei sowohl eigene Assembler-
routinen 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 er-
scheint 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 abbre-
chen. Wenn Sie sich bei einer Filena-
menabfrage das Inhaltsverzeichnis an-
schauen möchten, so geben Sie einfach
"$" als Filenamen an. Das Inhaltsver-
zeichnis wird daraufhin geladen, und
Sie gelangen per Tastendruck wieder
zurück zur Filenamen-Eingabe.
* Generell sind bei der Eingabe von Zei-
chenketten 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 Erwei-
terung 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 ab-
gelegt werden soll. Mögliche Bereiche
sind:
'F1' - $C000-$CFFF (49152-53247 = 4KB)
'F3' - $9000-$9FFF (36864-40959 = 4KB)
'F5' - $8000-$9FFF (32768-40959 = 8KB)
Hierbei hat jeder Bereich seine Vor- und
Nachteile. Der erste liegt gänzlich au-
ßerhalb des von Basic-Programmen benutz-
ten Speichers und kann immer dann ver-
wandt werden, wenn sich dort nicht ande-
re, externe Assembler-Programme befin-
den, die Ihr Programm nutzen soll. Der
zweite Bereich kann hierzu als Alterna-
tive benutzt werden. Er hat jedoch den
Nachteil, daß er die letzten 4KB des
Basic-Speichers belegt (geht von $0800-
$A000, dez. 2048-40960). Diesen Nachteil
hat der dritte und letzte Bereich übri-
gens auch, jedoch ist er der einzige
Bereich, für den man doppelt soviel Ka-
pazität zur Verfügung hat (8KB). Benut-
zen Sie ihn, wenn Sie sehr viele, oder
lange Befehle in Ihre Basic-Erweiterung
einbauen möchten. Liegt eine Erweiterung
in einem der letzten beiden Speicherbe-
reiche, 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 Va-
riablen die Erweiterung überschreiben,
so daß diese abstürzt.
Als nächstes wird nach der Art, in der
die neuen Basic-Befehle aufgerufen wer-
den 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 Vor-
teil, daß der Basic-Interpreter den Be-
fehl schneller erkennt, jedoch auch den
Nachteil, daß Sie immer ein Zeichen mehr
eingeben müssen.
Nun können Sie die Einschaltmeldung edi-
tieren, die bei Initialisierung der Er-
weiterung 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. Hier-
bei können Sie alle gängigen Editierta-
sten (Cursortasten, CLR, HOME, INS, DEL)
benutzen. Sie haben nun zwei Möglichkei-
ten, die Eingabe zu beenden: Drücken Sie
'F1', wenn Sie die Meldung, wie eine
Einschaltmeldung ausgegeben haben wol-
len, oder 'F3', wenn der eingegebene
Text einfach ausgedruckt werden soll.
Als nächtes sehen Sie nochmals die Ein-
schaltmeldung, 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 Einga-
be zurückspringen.
DAS HAUPTMENU
Nach all diesen Eingaben (oder nach dem
Laden einer schon bestehenden Erweite-
rung) 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 File-
namen der gewünschten Routine einzuge-
ben. 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 automa-
tisch 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 ver-
wenden, sowie Tabellen und Texte an das
Ende der Routine legen (diese stellen
für den Relokatierer in der Regel ille-
gale 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 $AB1E ;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 $C00A ;Zeiger aus Adressie-
C003: LDY $C00B ;rung des BIT-Befehls
;laden,
C006: JMP $AB1E ;und Text ausgeben
C009: BIT $C00C ;BIT-Befehl mit Zeiger
;auf Text ($C00C).
C00C: ASC 'Text' ;Daten des Textes
Achten Sie bitte auch darauf, daß die
Einsprungadresse in die Assembler-Rou-
tine immer gleich der Ladeadresse der-
selben 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 auf-
gerufen werden kann, so müssen Sie diese
Parameter später ebenso übergeben wer-
den. 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äm-
lich auch dann noch erkennt und in spe-
zielle 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 Ba-
sic-Befehle "PRINT", "NEW" und "CLR" in
ihren Namen enthalten. Desweietern kön-
nen Sie bei der Eingabe eines Namens
maximal 10 Zeichen verwenden. Diese sind
auf die Buchstaben und einige Sonderzei-
chen begrenzt. Alle nicht erlaubten Zei-
chen werden bei der Eingabe ignoriert.
Ausserdem müssen Sie bei der Namensver-
gabe vorsichtig mit gleichlautenden Be-
fehlen sein. Möchten Sie z.B. zwei Be-
fehle 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 letzte-
ren Art und Weise akzepiert und getrennt
erkannt. Das hängt mit der Befehlserken-
nung des Basic-Interpreters zusammen.
Sollten Sie die erste Reihenfolge ver-
wandt haben, so weist Sie die Eingabe-
routine 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 au-
frufen, 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ückge-
kehrt.
'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 Sicherheits-
abfrage bestätigen um den Vorgang kor-
rekt 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 Befeh-
le, 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 Grund-
parameter 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 Er-
weiterung auf Diskette ab. Sie kann von
nun an benutzt, oder aber später noch-
mals 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 Pro-
gramm 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 Erwei-
terung in den Speicherbereichen 2 oder 3
(s.o.), so müssen Sie nach Aufruf der
Erweiterung den Basic-Befehl "CLR" be-
nutzen.
'F8' - BEE BEENDEN
Hiermit verlassen Sie den BEE. Bestäti-
gen 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. Vor-
rausgesetzt, daß Sie zwischenzeitlich
nicht ein anderes Programm geladen ha-
ben. So wiedergestartet erkennt der BEE
eine sich evtl. noch im Speicher befind-
liche 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 passie-
ren, daß die Erweiterung später ab-
stürzt!
(ub)