WINDOW-EDITOR und WINDOW-MANAGER
die Menuexperten
----------------------------------------
Mit den Programmen "Window-Editor" und
"Window-Manager" können Sie auf einfache
Weise Menuleisten und Pulldown-Menus
erstellen und in eigene Programme, seien
diese nun in BASIC oder Assembler ge-
schrieben, einbinden. Hierbei erstellen
Sie zunächst Ihre gewünschten Menus mit
dem Window-Editor und speichern sie auf
Diskette ab. Für Ihr eigenes Programm
laden Sie das Window-File wieder ein und
rufen die einzelnen Menus mit Hilfe des
Window-Managers auf. Sie erhalten dann
jeweils einen Rückgabewert, der Ihnen
anzeigt, welcher Menupunkt vom Benutzer
angewählt wurde.
DER WINDOWEDITOR
Laden Sie den Window-Editor mit LOAD"-
WINDOW-EDITOR",8,1 in den Speicher Ihres
Rechners ein und starten Sie ihn mit
"SYS 20000".
Nach dem Start erscheint das Titelbild.
Kurz danach gelangen Sie in das Hauptme-
nu des Window-Editors. Hier gibt es
sechs Menupunkte, die Sie mit verschie-
denen Buchstabentasten aufrufen können:
E - Fenster erstellen
A - Fenster ändern
L - Fenster löschen
T - Fenster testen
U - Umrandung ändern
D - Diskmenu (Programm beenden)
Auf der rechten Seite des Bildschirms
sehen Sie ein Informationsfenster, das
Ihnen anzeigt, wieviele Fenster Sie
schon im Speicher halten ("Nummer" -
entspricht gleichzeitig der Nummer des
nächsten Fensters), wieviele Bytes im
Arbeitsspeicher noch frei sind ("Frei"),
und wieviele Bytes genutzt werden
("Nutzt").
DIE MENUPUNKTE
a) FENSTER ERSTELLEN:
Wählen Sie diesen Menupunkt, so werden
Sie gefragt, ob Sie ein Pulldown-Menu-
Window ("Pulldown"), oder einen Menubal-
ken ("Waagerecht-Menu") erstellen wol-
len. Zudem wird die Fensternummer ange-
zeigt. Diese sollten Sie sich merken, da
Sie sie später zum Aufruf des entspre-
chenden Menus benötigen. Drücken Sie
nun, entsprechend des gewünschten Menus,
die Tasten "P" oder "W".
Möchten Sie ein Pulldown-Window erstel-
len so können Sie nach Drücken von "P"
Ihre einzelnen Menupunkte nacheinander,
jeweils durch ein RETURN voneinander
getrennt, eingeben. Geben Sie keinen
Menupunkt ein und drücken RETURN, so
wird wieder unverrichteter Dinge zum
Hauptmenu zurückgekehrt.
Mit Hilfe der Tasten F1-F4 können Sie
während der Eingabe die Rahmen- und Hin-
tergrundfarbe verändern. Hierbei gilt:
F1/F2 - Rahmenfarbe hoch-/runterzählen
F3/F4 - Hintergrundfarbe hoch-/runter-
zählen
Sind alle Menupunkte eingegeben und die
Farben gesetzt, so drücken Sie bitte
RETURN ohne eine Eingabe in der jeweili-
gen Zeile gemacht zu haben. Der Window-
Editor zeigt Ihnen nun die Anzahl der
eingegebenen Zeilen an und fragt nach
der Anzahl der Kopfzeilen. Eine Kopfzei-
le ist ein Eintrag im Menu-Window, der
keinen Menupunkt ansich darstellt, son-
dern vielmehr zur Information über die
folgenden Menupunkte dient (z.B. "Disk-
operationen:" als Kopfzeile und dann die
Menupunkte "Laden", "Speichern", etc.).
Kopfzeilen befinden sich immer am oberen
Ende (eben dem "Kopf") eines Pulldown-
Windows. Demnach können Sie nur die obe-
ren n-ten Zeichen als Kopfzeilen defi-
nieren. Möchten Sie keine Kopfzeilen
verwenden, so übernehmen Sie einfach die
Anzahl "0". Andernfalls stellen Sie bit-
te die gewünschte Anzahl mittels der
CRSR-Tasten (hoch/runter) ein, oder be-
nutzen Sie die Tasten 0-9. Mit den Ta-
sten "+" und "-" können Sie jeweils um
10 Zeilen vor-, bzw. zurückblättern.
Beenden Sie Ihre Eingabe mit RETURN.
Nun werden Sie nach der Farbe der Kopf-
zeilen, der Menupunkte und der Menu-
Umrandung gefragt. Benutzen Sie zur
Farbangabe entweder die Cursortasten
(wie oben beschrieben), oder aber geben
Sie den gewünschten Farbcode direkt mit-
tels CTRL 1-8, bzw. CBM 1-8 an (z.B.
"CTRL-7 für Dunkelblau, oder "CBM-7" für
hellblau). Wenn Sie keine Kopfzeilen
verwenden, so wird die Frage nach der
Farbe derselben übersprungen.
Sind alle Farben eingegeben, so können
Sie Ihr Pulldown-Menu-Fenster mit Hilfe
der Cursor-Tasten auf dem Bildschirm
positionieren. Beachten Sie bitte, daß
Sie Teile des Fensters, die in Zeile 0
stehen, nicht sehen können (hier wird
der Informationsbalken des Window-
Managers dargestellt). Später, bei der
Verwendundg mit dem Window-Manager ist
ein Window in Zeile 0 jedoch komplett
sichtbar. Desweiteren werden Sie merken,
daß der Rahmen Ihres Windows eine "Spur"
auf dem Bildschirm hinterläßt. Dies ist
normal und sollte Sie nicht weiter beun-
ruhigen (die "Spur" erscheint später
beim Aufruf des Menus nicht). Sollte es
störend sein, so können Sie mit CLR/HOME
den Bildschirm nochmals löschen.
Bevor Sie nun die Bildschirmkoordinaten
übernehmen, sollten Sie noch den
gewünschten Zeichensatz (Groß/Klein,
oder Groß/Grafik) mit "CBM+SHIFT" ein-
stellen. Beenden Sie nun die Eingabe mit
RETURN. Sie gelangen anschließend wieder
ins Hauptmenu zurück.
Wenn Sie ein "Waagerecht-Menu", also
einen Menubalken, editieren möchten, so
wählen Sie unter "Fenster erstellen" die
Option "W" an. Nun können Sie eine Bild-
schirmzeile mit den von Ihnen gewünsch-
ten Menupunkten füllen. Dabei müssen Sie
die einzelnen Menupunkte jeweils mit
"F7" voneinander trennen. Drücken Sie
diese Taste, so erscheint ein Trennzei-
chen in Ihrer Zeile. Wenn Sie alle Ihre
Menupunkte eingegeben haben, drücken Sie
bitte RETURN. Wenn Sie die Trennzeichen
falsch benutzt haben (z.B. 2 Trennzei-
chen hintereinander, oder als erstes,
bzw. letztes Zeichen) so meldet Ihnen
das der Window-Editor und Sie müssen
Ihre Zeile noch einmal eingeben. Achten
Sie bitte auch darauf, daß Sie vor Been-
den mit RETURN die Vorder- und Hinter-
grundfarben Ihres Bildschirms mittels
F1-F4 eingestellt haben. Sie werden
ebenfalls mitgespeichert!
Nun werden Sie nach der Farbe Ihres Me-
nus gefragt. Gehen Sie hier bitte wie
bei den Pulldownmenus vor (Farben blät-
tern mittels Cursortasten, oder direkte
Farbcodes mittels CTRL und CBM).
Anschließend können Sie wieder die Bild-
schirmposition Ihres Menubalkens festle-
gen. Mit RETURN fixieren Sie Ihn und
kehren ins Hauptmenu zurück.
b) FENSTER ÄNDERN
Mit diesem Menupunkt können Sie ein
schon eingegebenes Fenster nachträglich
abändern. Stellen Sie zunächst einmal
die Fensternummer des zu ändernden Fens-
ters ein (funktioniert wie bei der Anga-
be der Anzahl an Kopfzeilen). Gleichzei-
tig wird dazu immer das entsprechende
Fenster eingeblendet (unsichtbar wenn in
Zeile 0!). Drücken Sie nun RETURN um das
eingestellte Fenster zu verändern und
antworten Sie auf die Sicherheitsabfrage
mit "J" ("N" kehrt zum Hauptmenu
zurück).
Ändern Sie ein "Waagerecht-Menu", so
wird das alte Menu in der obersten Zeile
angezeigt, während Sie eine Zeile tiefer
das Menu neu eingeben können. Drücken
Sie hier einfach nur RETURN, wenn Sie
das Menu so übernehmen wollen, wie es
bereits eingegeben war. Etwaige Änderun-
gen an den Bildschirmfarben sollten, wie
immer, vorher vorgenommen werden (F1-
F4). Nun können Sie wieder Farbe und
Position Ihres Menubalkens bestimmen und
kehren anschließend mit übernommenen
Änderungen ins Hauptmenu zurück.
Ein Pulldown-Menu wird ähnlich geändert.
Hier sehen Sie die einzelnen Menuzeilen
jeweils einzeln und können Sie auch ein-
zeln ändern. Zusätzlich sehen Sie am
Ende der Darstellung des bisherigen Tex-
tes für diesen Menupunkt einen Buchsta-
ben, der Ihnen anzeigt, wieviele Menu-
punkte Sie noch zur Verfügung haben. Sie
müssen wissen, daß die Anzahl der Menu-
punkte nicht geändert werden kann. Steht
nun z.B. ein "E" am Ende der Anzeige, so
bedeutet das, daß Sie noch 5 Zeilen än-
dern können, da "E" der 5. Buchstabe im
Alphabet ist.
Wenn alle Menuzeilen eingegeben sind, so
können Sie nun, wie bei "Fenster erstel-
len", alle übrigen Einstellungen (Anzahl
der Kopfzeilen, Farben, etc.), vornehmen
und kehren anschießend ins Hauptmenu
zurück.
c) FENSTER LÜSCHEN
Mit dieser Funktion können Sie immer das
jeweils zuletzt eingegebene Fenster wie-
der löschen. Dabei wird selbiges ange-
zeigt, und nach einer Sicherheitsabfrage
gelöscht. Sie können nun das vorangegan-
gene Fenster löschen (das jetzt das
letzte ist). Mit "N" kehren Sie ins
Hauptmenu zurück.
d) FENSTER TESTEN
Hier wählen Sie wie gewohnt eines Ihrer
Fenster an, das anschließend angezeigt
wird und getestet werden kann. Das
heißt, daß Sie mit den Cursortasten den
Menubalken durch Ihr Menu bewegen können
(näheres zur Bedienung in der Anleitung
für den Window-Manager). Durch Druck auf
RETURN können Sie ein weiteres Fenster
testen oder abbrechen.
e) UMRANDUNG ÄNDERN
Mit diesem Menupunkt können Sie die Um-
randung für Pulldownmenus ändern. Nach
einer Sicherheitsabfrage können Sie nun
die Zeichen eingeben, die am oberen und
unteren Rand, sowie in der Mitte als
Umrandungszeichen benutzt werden sollen.
Hier sehen Sie zunächst die Orginalzei-
chen, die der Window-Manager standardmä-
ßig benutzt. Darunter stehen dann die
aktuellen Zeichen, sowie die Eingabezei-
le, in der Sie die neuen Zeichen einge-
ben. Durch Drücken von CRSR-Rechts über-
nehmen Sie das jeweils vordefinierte
Zeichen. Mit der DEL-Taste springen Sie
ein Zeichen zurück. Mit den Tasten "RVS/
ON" und "RVS/OFF" können Sie den Re-
vers-Modus ein- und ausschalten (RVS ON
und CRSR-Rechts übernimmt das vordefi-
nierte Zeichen, jedoch invertiert). Alle
weiteren Tasten bewirken eine Verände-
rung des entsprechenden Zeichens. Zum
Schluß folgt noch eine Sicherheitsabfra-
ge, mit der Sie die neuen Zeichen über-
nehmen können. Antworten Sie mit "N", so
werden die momentan gespeicherten Zei-
chen beibehalten und ins Hauptmenu
zurückgekehrt.
f) DISKMENU
Im Diskmenu können Sie Ihre Window-
Dateien laden und speichern. Desweiteren
können Sie Diskettenkommandos an die
Floppy senden, sowie den Window-Editor
verlassen. Hier nun die einzelnen Menu-
punkte:
L - LADEN
Hiermit laden Sie eine schon erstellte
Window-Datei in den Rechner. Nach anwäh-
len des Menupunktes können Sie einen
Dateinamen angeben. Wenn Sie dieselbe
Datei schon einmal geladen hatten, so
können Sie ihren Namen mit F7 nochmals
abrufen. Geben Sie keinen Namen an, so
wird in das Diskmenu zurückgesprungen.
Ist die angegebene Datei keine Window-
Datei, so wird eine Fehlermeldung ausge-
geben. Desweiteren wird nach jeder Dis-
kettenoperation der Floppystatus ange-
zeigt.
S - SPEICHERN
Hiermit speichern Sie eine Window-Datei.
Die Bedienung erfolgt analog zu "LADEN".
K - Kommando
Hiermit senden Sie ein Diskettenkommando
an die Floppy (so können Sie z.B. Files
löschen, oder eine Diskette formatie-
ren). Geben Sie kein Kommando an, so
wird nur der Floppystatus angezeigt.
Desweiteren können Sie sich mit der Ein-
gabe von "$" das Directory der eingeleg-
ten Diskette anzeigen lassen. Während
dieser Anzeige können Sie die Ausgabe
mit der SPACE-Taste anhalten, oder mit
"RUN/STOP" abbrechen. Um sich ein spe-
zielles Directory anzeigen zu lassen
können Sie auch sog. "File-Patterns"
benutzen. Hier zwei Beispiele:
"$WIN*" --> zeigt alle Dateien, deren
Name mit "WIN" beginnt.
"$*=S" --> zeigt alle sequentiellen
Dateien an.
Z - Zurück
Hiermit gelangen Sie ins Hauptmenu
zurück.
| - BASIC
Nach einer Sicherheitsabfrage wird der
Window-Editor beendet.
DER WINDOW-MANAGER
Der "Window-Manager" dient dazu, die mit
dem Window-Editor erstellten Fenster von
BASIC, oder Assembler aus benutzen zu
können. Er ist ein Maschinensprache-
Modul, das in den Speicher ab $C000
(dez. 49152) geladen wird. Dies muß ab-
solut geschehen, also mit ",8,1". Als
erstes sollte Ihr Programm den Window-
Manager nachladen. Diese Aufgabe sollten
Sie mit einem kleinen Ladeprogramm erle-
digen. Dadurch, daß der Ladevorgang die
BASIC-Variablen-Vetoren "verbiegt" ist
es nicht ratsam, den Window-Manager in
Ihrem Programm selbst nachzuladen. Am
Besten benutzen Sie den Loader, den wir
Ihnen unter dem Namen "WINDOW-LOADER"
mit auf diese MD gepackt haben. Er
schreibt zunächst den Ladetext auf den
Bildschirm und füllt anschließend den
Tastaturpuffer mit "RETURN"-Zeichen (AS-
CII-Code 13). In Zeile 30 fügen Sie bei
"IHR PROGRAMM" den Namen Ihres Programms
ein.
a) Window-Datei laden:
In Letzterem sollten Sie nun, das mit
dem Window-Editor erstellte Window-File,
einladen. Dies geschieht mit einer Rou-
tine aus dem Window-Manager. Sie rufen
Sie mit 'SYS 49152,"NAME"' auf. "NAME"
steht hierbei für den Namen Ihrer Win-
dow-Datei. Selbiger MUSS innerhalb von
Anführungszeichen stehen und kann nicht
in einer Variablen übergeben werden!
b) Windows aktivieren:
Ist eine Window-Datei einmal geladen,
können die einzelnen Menus mit dem Be-
fehl 'SYS 49155,NUMMER' aufgerufen wer-
den. "NUMMER" steht dabei für die Nummer
Ihres Windows (die im Window-Editor an-
gegeben wurde). Wenn Sie zu der Nummer
den Wert 100 addieren, so wird Ihr Menu
invertiert dargestellt.
Nach dem Aufruf erscheint dann das ent-
sprechende Menu auf dem Bildschirm, wo-
bei der erste Menupunkt invertiert dar-
gestellt wird (sog. Auswahlbalken). Mit
den Cursortasten können Sie diesen Bal-
ken nun im Menu bewegen. Hierbei gilt
für Pulldown-Menus, daß mit den Tasten
CRSR-Hoch und CRSR-Runter, bzw. für
Waagerechtmenus mit CRSR-Links und CRSR-
Rechts, bewegt wird. Mit "HOME" springen
Sie auf den jeweils ersten Punkt eines
Menus, mit "CLR/HOME" auf den letzen.
Drücken Sie eine beliebige Taste, so
wird der nächste Menupunkt angesprungen,
der mit dem gedrücken Zeichen beginnt
(Bei Druck auf "L" wird z.B auf "Laden"
gesprungen). Ist der Menubalken positio-
niert, so kann mit RETURN der Menupunkt
angewählt werden. An dieser Stelle kehrt
der Window-Manager in Ihr Programm
zurück. Die Nummer des Menupunktes kön-
nen Sie nun durch auslesen der Speicher-
stelle 2 in Erfahrung bringen ("M=-
PEEK(2)").
Mit der ON-GOTO-Anweisung des 64er-
BASICs können Sie dann ganz einfach auf
Ihre Unterroutinen verzweigen:
10 SYS 49155,nr:
20 ON PEEK(2) GOTO 100,200,300,etc.
c) Selbst-Kopie
Der Window-Manager enthält auch eine
Funktion mit der Ihnen das Kopieren auf
eine andere Diskette (z.B. Ihre Arbeits-
diskette) erleichtert wird. Nach einem
'SYS 49158' werden Sie dazu aufgefor-
dert, eine Diskette einzulegen und RE-
TURN zu drücken. Anschließend speichert
sich der "Window-Manager" selbst auf
diese Diskette.
HINWEISE FÖR ASSEMBLER-PROGRAMMIERER
In Maschinensprache lautet der Aufruf
der Routinen natürlich etwas anders.
Hier die einzelnen Aufrufe:
Laden einer Datei:
1) Filenamen im ASCII-Code ab $0340
(dez.832) ablegen.
2) Filenamenlänge in $0002 übergeben.
3) Aufruf durch "JSR $C05F"
Aufruf eines Fensters:
1) Fensternummer im X-Register.
2) Aufruf durch "JSR $C11E".
3) Menupunktnummer in $0002.
Speichern des Steuerprogramms:
Aufruf durch "JSR $C006"
ALLGEMEINE HINWEISE
Probieren Sie ruhig einmal das Programm
"DEMO" auf dieser MD aus. Es zeigt Ihnen
den Umgang mit den Window-Manager-Menus,
und wie man auf intelligente Weise die
einzelnen Menufenster miteinander
verknüpft.
Wenn Sie einen eigenen Zeichensatz in
Ihren Menus verwenden wollen, so akti-
vieren Sie bitte selbigen, und geben Sie
nach dem Laden des Window-Editors fol-
gende POKE-Befehle ein:
POKE20006,groß: POKE 20007,klein
Hierbei stehen 'groß' und 'klein' für
die Werte, die Sie beim Auslesen der
Speicherstelle 53272 erhalten, wenn Sie
einmal den Groß-/Grafik- und den Groß-/
Kleinschrift-Zeichensatz eingeschaltet
haben (umschalten mit "CBM+SHIFT").
Beim Window-Manager müssen Sie folgende
POKEs verwenden:
POKE 49161,groß: POKE 49162,klein
Jetzt können Sie den Window-Manager mit
Hilfe der Selbst-Kopie-Funktion ("SYS
49158") auf eine Diskette speichern,
wobei die Änderungen für den Zeichensatz
mitgespeichert werden.
(ub)