Magic Disk 64

home to index to html: MD9301-UTILITIES-B.E.E..html
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)



Valid HTML 4.0 Transitional Valid CSS!