************************************************************************* Inhalt ====== I. Žnderungen seit Version 5/88 II. Beschreibung der Fileselectorbox FSELECT.PRG III. Beschreibung des Tastaturbelegungsprogrammes PATCH.PRG IV. Anhang I. Žnderungen seit Version 5/88 ================================= - Die Box ist jetzt mit JEDER Tos-Version lauff„hig! - Die Box kann nun auch ber die Tastatur bedient werden. - L„uft jetzt auch mit Programmen, bei denen es bisher Schwierigkeiten gab. - max. 16 Laufwerkskn”pfe - Directory (=Ordnerinhalt) kann jetzt auch unsortiert ausgegeben werden. - Die Art der Pfadnamenspeicherung kann nun gew„hlt werden. - Der Formats-Ordner von 1st-Word wird korrekt bedient. - Die Pfadnamenkorrektur wurde erweitert und verbessert. - Die Box wurde um eine Zeile tiefer gesetzt, da viele Programme ber der Box eine Meldung ber die aktuelle T„tigkeit ausgeben. Diese Meldung wird jetzt nicht mehr durch die Box verdeckt. - Einige kleinere Fehler (soweit sie bekannt waren) wurden beseitigt. - Stellt nun auch die Textzeile der fsel_exinput()-Funktion dar. Diese neue AES-Funktion ist normalerweise erst ab TOS 1.4 verfgbar. Durch die Box ist diese Funktion jetzt aber in allen TOS-Versionen verfgbar! (siehe auch PATCH.PRG ->) - Die Box h„ngt nun in den Vektoren 2 (GEM) und 13 (BIOS). In beiden Vektoren h„lt die Box das XBRA-Protokoll ein. II. Beschreibung der Fileselectorbox FSELECT.PRG ================================================= Grunds„tzliches: ---------------- Das Programm FSELECT.PRG ist ein Programm fr den AUTO-Ordner und sollte auch nur von dort beim Booten des Rechners gestartet werden. Es verbleibt nach dem Start im RAM und wartet dort auf einen Aufruf der bisherigen Fileselectorbox. Wird nun irgendein Programm gestartet, das die Fileselectorbox benutzt, so erscheint statt der alten Box nun die neue. Wird das Programm dennoch manuell vom Desktop aus gestartet, so muž hinterher ein *.TOS oder *.TTP - Programm gestartet werden, damit sich die Box in die Vektoren einh„ngt (dies funktioniert jedoch nicht mit dem neuen TOS 1.4, bei diesem TOS muž die Box also beim Booten aus dem AUTO-Ordner gestartet werden!). Es reicht auch, sich eine Textdatei vom Desktop aus anzeigen zu lassen (z.B. xyz.txt anklicken, erste Seite anzeigen und beenden). Dieser Effekt ist leider eine Folge des v”llig neuen Mechanismus, mit dem die Box nun im Betriebssystem h„ngt. Der Mechanismus hat allerdings einen (riesigen) Vorteil: Er ist nicht mehr von der verwendeten TOS-Version abh„ngig! Ich m”chte nochmals darauf hinweisen: Das nachtr„gliche Starten eines *.TOS oder *.TTP - Programms ist NICHT notwendig, wenn die Box beim Booten des Rechners aus dem AUTO-Ordner gestartet wird! --> Also: Um Probleme zu vermeiden, Box immer aus dem AUTO-Ordner starten! 1. Funktionen der Hauptbox: --------------------------- Kopfzeile --------- In der ersten Zeile der Box befindet sich die Copyright-Meldung. Sie ist als Button gestaltet und fhrt beim Anklicken zur Optionsbox (->). Wird die Box vom aufrufenden Programm ber die Funktion fsel_exinput(path, filename, button, message) (nur fr Programmierer interessannt) aufgerufen, so wird anstelle der Copyright - die - Meldung ausgegeben. Fr den Anwender heižt das, daž von den Programmen in dieser Zeile zus„tzliche Mitteilungen ausgegeben werden k”nnen, etwa "Datei laden" oder "Bitte Textdatei angeben". Diese Meldung kann max. 38 Zeichen lang sein. Laufwerkskn”pfe A-P ------------------- Die Laufwerkskn”pfe dienen zur schnellen Anwahl der verschiedenen Laufwerke. Anw„hlbar sind dabei nur diejenigen Laufwerke, die beim Betriebs- system ber den Bitvektor $4C2 angemeldet sind, d.h. aktiv bzw. eingeschaltet sind. Maximal werden 16 Laufwerkskn”pfe dargestellt. Durch einen Doppelklick auf einen Knopf werden Informationen ber dieses Laufwerk ausgegeben: Gesamtkapazit„t, belegter und freier Platz. Wird das Laufwerk durch Anklicken eines dieser Kn”pfe gewechselt, so wird automatisch auf den auf diesem Laufwerk gltigen Pfad umgeschaltet (Pfadnamenspeicherung ->). Pfadnamenfeld (2.Feld von oben) ------------------------------- In diesem Feld wird der aktuelle Pfad angezeigt. Ist der Pfad l„nger als angezeigt werden kann, so wird der Rest abgeschnitten (nur bei der Anzeige, intern wird der Pfad voll mit 256 Zeichen verwaltet). In diesem Feld kann der Pfadname auch manuell eingegeben werden. Anschliežend muž zur šbernahme in die Box das Mover-Feld (das graue Feld ber dem Dateinamenfenster) angeklickt werden. Dabei bestehen mehrere Eingabem”glichkeiten: - Nur Laufwerk und ':' (z.B. "A:") -> wird mit Auswahlpattern "*.*" versehen (im Bsp.: "A:\*.*") - nur ein angezeigter Ordnername (wenn. z.B. im aktuellen Verzeichnis der Ordner TEST existiert und "TEST" eingegeben wird, so wird in den Ordner TEST gewechselt und der Pfadname entsprechend erweitert). Laufwerk und Auswahlpattern werden nicht ver„ndert! - jegliche Art von Pfadnamen (z.B. "..\..\XYZ\DEF\*.C"). Sobald jedoch ein '\' oder '*' in der Eingabe vorkommt, MUSS der Pfad- name mit einem Auswahlmuster enden (s.u.). Generell gilt fr den eingegeben Pfadnamen: Zuerst wird vom Ende her ein '\' gesucht. Wird dieses Zeichen gefunden, so wird angenommen, daž der Rest danach ein Auswahlmuster darstellt und von dem eingegebenen Pfadnamen abgeschnitten. Wird kein '\' gefunden, so wird vom Anfang her nach dem Zeichen '*' gesucht. Wird es gefunden, so wird angenommen, daž es das erste Zeichen eines Auswahlmusters (z.B. "*.BAS") darstellt und vom restlichen Pfadnamen abgeschnitten. Anschliežend wird untersucht, ob die Eingabe mit einer Laufwerks- angabe (z.B. "A:") beginnt. Falls nicht, wird das aktuelle Laufwerk vor den Pfadnamen gesetzt. Dann wird untersucht, ob der Pfadname mit einem '\' beginnt. Falls nein, so wird der bis dahin aktuelle Pfad vor den einge- gebenen Pfadnamen gesetzt (z.B. wird aus der Eingabe "XYZ" der Pfad "C:\TEST\ABC\XYZ"). Der so zusammengesetzte Pfad wird nun auf Korrektheit hin untersucht: Dazu werden zuerst alle mehrfachen '\' zu einem einzigen zusammen- gefažt (aus "C:\\\XXX\\YYY\\\\\\ZZZ" mach "C:\XXX\YYY\ZZZ"). Dieser Pfad wird nun vom Ende her so weit abgeschnitten, bis er eine gltige Pfadnamenbezeichnung darstellt (dies kommt vor, wenn man falsche Ordner angibt). Im Extremfall wird der Pfad bis auf die Wurzel gekrzt ("A:\"). Dieses Bearbeiten des Pfades gilt auch fr Pfadnamen, die ein externes Programm der Fileselectorbox bergibt (insbesondere werden jetzt also Pfadnamen, die in der alten Box zwei '\' hintereinander enthielten, korrekt angezeigt)! Dateinamenfeld (3.Zeile von oben) --------------------------------- In dieses Feld kann der auszuw„hlende Dateiname von Hand eingetragen werden. Wird ein Dateiname im Fenster angeklickt, so wird er automatisch in dieses Feld eingetragen. Fenster ------- a) "Mover"-Feld (oberste Zeile des Dateinamenfensters) Mit einem Klick auf dieses Feld wird der Text im Pfadnamenfeld eingelesen und verarbeitet. Aužerdem wird in diesem Feld das zur Zeit gltige Auswahlmuster angezeigt. b) "Closer"-Feld (Feld links neben dem Mover-Feld) Mit einem Klick auf dieses Feld steigt man in der Hierarchie der Directories um eine Ebene nach oben. c) Pfeile oben/unten Mit diesen Feldern kann der Fensterinhalt nach oben/unten verschoben werden, falls mehr als 11 Dateinamen im aktuellen Ordner vorhanden sind. Diese Felder sind mit einer Repeatfunktion ausgestattet. d) Fensterschieber Dient ebenfalls der Auswahl des Fensterbereichs. Funktioniert wie bei allen anderen GEM-Fenstern. e) Pfeile links/rechts Mit ihnen kann ausgew„hlt werden, was im Fenster angezeigt werden soll: Datei-/Ordnernamen, Dateigr”že, Erstellungsdatum oder Erstellungszeit. Was jeweils angezeigt wird, steht im Feld zwischen den beiden Pfeilen. f) Die 11 Dateinamenzeilen des Fensters Hier werden die Dateinamen des aktuellen Ordners angezeigt (evtl. nur ausgew„hlte Dateinamen). Ordner werden mit einem vorangestellten ''-Zeichen gekenn- zeichnet. Durch einen Doppelklick auf einen Namen wird dieser ausgew„hlt und die Box automatisch mittels 'OK' verlassen. Bei einem Klick auf einen Ordnernamen wird automatisch in dieses neue Verzeichnis gewechselt. Ordnernamen werden nicht in das Dateinamenfeld eingetragen. Extensionfelder (die 2*6 Felder rechts neben dem Fenster) --------------------------------------------------------- Mit diesen Extensionfeldern k”nnen bestimmte Auswahlmuster durch einen einfachen Klick ausgew„hlt werden (z.B. werden mit "*.PRG" nur noch alle Dateien angezeigt, die mit .PRG enden. Ordner werden allerdings immer angezeigt (bis auf eine Aus- nahme, siehe Sortierung ->). Mit einem Doppelklick auf eines der Extensionfelder kann dessen Inhalt editiert werden. Der neue Wert wird dann mittels der Returntaste oder Mausklick auf dieses Feld bernommen. Auf diese Weise kann man sich seine pers”nliche Sammlung von Auswahlmustern zusammenstellen, die man am h„ufigsten braucht. Sortierung (rechts unten) ------------------------- Bei der Sortierung hat man 5 M”glichkeiten, den Fensterinhalt sortieren zu lassen: a) Name Es wird nach dem Datei-/Ordnernamen sortiert b) Extension Es wird vorrangig nach der Extension sortiert, sollten diese gleich sein, wird innerhalb einer Extensiongruppe (z.B. *.DOC) nach dem Dateinamen sortiert. c) Gr”že Es wird nach der Dateigr”že sortiert (kleinste Dateien zuerst) d) Datum/Zeit Es wird zuerst nach dem Datum und dann nach der Zeit sortiert. Die jngsten Dateien werden zuerst angezeigt. e) Unsortiert Diese "Sortierung" erreicht man durch Doppelklick auf eines der 4 Sortierfelder. Die Dateien werden dann in ihrer Reihenfolge angezeigt, wie sie wirklich im Directory stehen. Diese Art der Anzeige ist z.B. ntzlich, um anzeigen zu lassen, in welcher Reihenfolge im Auto-Ordner die Programme abgearbeitet werden. Achtung: Bei unsortierter Anzeige werden auch die Ordnernamen in das Auswahlmuster mit einbezogen. Es kann also vorkommen, daž kein Ordnername mehr angezeigt wird (z.B. beim Auswahlmuster *.C, welcher Ordnername endet schon mit .C ?). Wird dann wieder auf sortierte Anzeige zurckgeschaltet, bleiben die ausgeblendeten Ordner weiterhin verschwunden! Um wieder alle Ordner anzuzeigen, reicht es, einen Laufwerksknopf, das Mover-Feld oder ein Extensionfeld anzuw„hlen. 2. Funktionen der Optionsbox ---------------------------- Die Optionsbox wird durch Anklicken der Kopfzeile aktiviert. Folgende zus„tzliche Auswahlm”glichkeiten stehen nun zur Verfgung: Redraw-Modi ----------- "Redraw" heižt "neu zeichnen" und ist im GEM des Atari eine sehr wichtige Funktion: Wird n„mlich irgendetwas auf dem Bildschirm ver„ndert, z.B. ein Fenster verschoben, verkleinert oder ganz weggel”scht, so muž der freiwerdende Bildhintergrund wieder neu gezeichnet werden. a) Redraw-Modus --------------- Der Standardmechanismus, den GEM hier dem Programmierer anbietet, funktioniert in etwa so (hier am Beispiel der Box): Die Fileselectorbox wurde vom Anwender mit OK oder Abbruch beendet und muž nun dafr sorgen, daž der von ihr benutzte Bildschirmbereich neu gezeichnet wird. Sie schickt dazu an das AES eine Meldung ber Position und Gr”že des von ihr benutzten Bildschirmbereichs. Das AES fllt darauf diesen Bildschirmbereich mit dem Standardgrau aus und zeichnet evtl. vorhanden Fensterr„nder neu (nicht die Inhalte). Um auch die Fensterinhalte zu restaurieren, weiž das AES wiederum, wer sich alles auf dem Bildschirm tummelt (Applikationen, Accessories) und schickt seinerseits die Meldung an alle auf dem Bildschirm aktiven Programme weiter. Diese prfen nun, ob sie gewisse Bildschirmbereiche neu zeichnen mssen und tun dies ggf. Nun gibt es aber Programme, die (gerade bei der Fileselectorbox) die Meldung ber die Position und Gr”že ignorieren und von einer konstanten Gr”že der Box ausgehen. Sie restaurieren deshalb nur einen Bereich auf dem Bildschirm, der so grož ist, wie die alte Fileselectorbox. Da die neue Box aber gr”žer ist, wird auch mehr Platz auf dem Bildschirm belegt. Am Ende zeichnet das AES daher auch einen gr”žeren grauen Bereich. Die Programme restaurieren jedoch nur den kleineren Bereich der alten Box und somit bleibt ein grauer Streifen auf dem Bildschirm brig. Um hier nun aus der Klemme zu kommen, habe ich den folgenden Modus dazugebaut: b) Auto-Modus ------------- In diesem Modus wird, noch bevor die Box auf den Bildschirm gezeichnet wird, ein 32KB-Puffer angelegt und der gesamte Bild- schirminhalt in diesen Puffer kopiert. Anschliežend wird die Box gezeichnet und der Anwenderdialog gefhrt. Beendet der Anwender den Dialog, wird einfach wieder der Puffer auf den Bildschirm kopiert und anschliežend freigegeben. In diesem Modus wird also berhaupt keine Meldung mehr an das AES geschickt, den Bildschirm zu restaurieren. Die Box bernimmt die Wiederherstellung des Bildschirms also v”llig selbstt„tig! Dadurch, daž nun einfach der Bildschirminhalt hin- und herkopiert wird und sich das Anwenderprogramm nicht mehr um den Redraw kmmern muž, geht dieser sehr viel schneller vonstatten. Nun gibt es aber Programme (z.B. 1st Word und STAD), die den gesamten verfgbaren Speicher fr sich beanspruchen. Die Box kann dann nicht mehr die 32KB Pufferspeicher anlegen und schaltet intern in den Redraw-Modus (fr den Auto-Modus muž mind. 32KB + Platz fr 200 Directory-Eintr„ge vorhanden sein). Dann ist aber wieder das Problem mit dem grauen Balken wieder da (z.B. bei STAD). Dafr gibt es jetzt den 3.Modus, den c) Fest-Modus ------------- In diesem Modus wird beim Starten von FSELECT.PRG (nicht erst beim Aufruf der Box) sofort der 32KB-Puffer angelegt. Diese 32KB sind dann fest fr die Box reserviert und werden im weiteren Verlauf auch nicht wieder freigegeben, d.h., sp„ter gestartete Programme erhalten von Beginn an 32KB weniger Speicher zur Verfgung gestellt. Sie funktionieren dann aber (meistens) dennoch und (!) die Box hat ihren eigenen Bildschirmspeicher, so daž sie den Bildschirm nach einem Boxaufruf korrekt restaurieren kann. Dieser Modus ist eigentlich nur sinnvoll, wenn die Box mit einem Programm im redraw-Modus nicht korrekt zusammenarbeitet und dieses Programm zudem den ganzen verfgbaren Speicher an sich reižt, so daž auch ein evtl. angew„hlter Auto-Modus in den redraw-Modus gezwungen wird. Die Bildschirmrestaurierung sollte also in diesem Modus immer funktionieren. Damit dieser Modus jedoch aktiv wird, muž mit "Parameter abspeichern" der Modus gespeichert und der Rechner neu gebootet werden. Es ergibt sich also folgende Vorgehensweise: - Fest-Modus selektieren - "Parameter abspeichern" anw„hlen -> der Modus wird jetzt gesichert - Beenden der Box und allen noch laufenden Programmen - Neustart des Rechners (Reset, Aus-/Einschalten) -> der Rechner bootet und die Box wird im Fest-Modus gestartet Noch ein generelles Wort zu den Redraw-Modi: Normalerweise verwende ich immer den Auto-Modus. Er bietet den Vorteil einer enorm hohen Redrawgeschwindigkeit. Und sollte einmal wirklich nicht der Speicher reichen, so schaltet er auto- matisch in den Redraw-Modus. Der Fest-Modus ist eigentlich nur bei den Programmen sinnvoll, die das Problem mit dem grauen Balken haben und zudem den gesamten Speicher fr sich belegen. Dieser Modus belegt die 32KB Pufferspeicher n„mlich die ganze Zeit, w„hrend der Auto-Modus diesen Speicher nur belegt, wenn die Box am Bildschirm sichtbar ist. Der Redraw-Modus ist eigentlich nur sinnvoll bei Grožbildschirmen, da bei diesen nicht der gesamte Bildschirminhalt weggespeichert werden kann (zumindest nicht mit den hier benutzten 32KB). Die Box habe ich jedoch noch nicht im Zusammenhang mit einem solchen Bildschirm ausprobieren k”nnen. Achtung: Beim Programm TIMEWORKS muž der REDRAW-Modus verwendet werden! Klemmen ------- Mit diesen beiden Kn”pfen (Pfad, Extension) kann man festlegen, wer den Pfad bzw. die Extension (das Auswahlmuster) vorgeben soll: - das externe Programm, das die Box aktiviert hat (Knopf nicht selektiert) - oder die Box (Knopf selektiert) Es gibt immer wieder Programme, die meinen, einen festen Pfad vorgeben zu mssen, obwohl man auf einem anderen Pfad arbeiten m”chte. In einem solchen Fall kann man den Pfad-Knopf selektieren und damit den aktuellen Pfad festklemmen. Das Programm kann nun an die Box an Pfaden liefern, was es will, die Box nimmt immer den zuletzt (mit der Box) benutzten Pfad. Genauso kann man es der Extension ergehen lassen (H„H„...). Pfad-Sp(eicherung) ------------------ Bei den bisherigen Versionen der Box wurde die Speicherung der Pfadnamen dem GEMDOS berlassen. Die Box verhielt sich daher nach aužen hin nicht genauso wie die Original-Box. Dieser Effekt machte sich das erste Mal bei 1st-Word mit dem FORMATS-Ordner bemerkbar. Der Ordner wurde von 1st-Word nicht mehr gefunden. Die Pfadspeicherung kann deshalb jetzt ebenfalls gew„hlt werden: a) Fsel(ect) ------------ Die Box bernimmt die komplette Speicherung der Pfadnamen auf allen aktiven Laufwerken. Wird ein Laufwerk in der Box das erste Mal angesprochen, so wird dort defaultm„žig der Wurzelpfad ("X:\") gesetzt. Die Box verh„lt sich somit in diesem Modus nach aužen hin genauso wie die Originalbox. Insbesondere macht sie keine Ver„nderungen nach aužen hin, nimmt aber auch keine Ver„nderungen von aužen an (siehe n„chster Modus)! b) TOS ------ Dieser Modus entspricht dem Modus in den bisherigen Versionen von FSELECT. Die Pfadnamenspeicherung wird also vom GEMDOS bernommen. Dies hat einerseits den Effekt, daž 1st-Word den FORMATS-Ordner nicht mehr findet, andererseits bekommt die Box alle Žnderungen von aužen mit: d.h. ”ffnet man z.B. ein Fenster auf Laufwerk E: mit dem Pfad E:\BEISPIEL\PFAD und startet dann auf Laufwerk C: ein Programm, das wiederum die Fileselectorbox aufruft, so erscheint dort zun„chst der vom Programm vorgegebene Pfad (sofern man nicht geklemmt hat). Klickt man nun den Laufwerksknopf E an, so erscheint sofort der Pfad E:\BEISPIEL\PFAD, w„hrend dies im Fall a) normalerweise nicht der Fall ist. Man ist somit meistens sofort auf dem Pfad, auf dem man sein m”chte. Die Box gibt sich in diesem Modus also v”llig offen nach aužen hin: Sie nimmt die Pfadnamen vom GEMDOS, egal, wer sie gesetzt hat; sie setzt aber auch neue Pfadnamen im GEMDOS mit allen Konsequenzen (->FORMATS-Ordner)! c) T(OS)->F(select) ------------------- Dieser Modus der Pfadnamenspeicherung ist ein Kompromiž zwischen den beiden vorhergehenden Modi: Immer, wenn die Box aufgerufen wird, liest sie von s„mtlichen angemeldeten (aktiven) Laufwerken die kompletten Pfadnamen ein. Dadurch kann sie auf Žnderungen von aužen wie im Modus b) reagieren. Anschliežend bernimmt sie die Verwaltung der Pfadnamen v”llig selbst„ndig wie im Modus a). Das heižt insbesondere, daž sie keine Pfadnamen im GEMDOS speichert. Daher funktioniert der FORMATS-Ordner auch in diesem Modus. Noch einen kleinen Haken hat die Sache: Durch das st„ndige Neueinlesen der Pfade bei jedem neuen Aufruf der Box werden die Pfade nur solange gespeichert, solange die Box auf dem Bildschirm sichtbar ist. Dies ist aber m.E. nicht weiter hinderlich. In diesem Modus werden die Laufwerke A: und B: gesondert behandelt: Fr Festplattenbesitzer ist es besonders hinderlich, wenn bei jedem Aufruf der Box die Meldung "Bitte Diskette B: in Laufwerk A: einlegen" erscheint. Dies passiert immer dann, wenn nur ein Laufwerk ange- schlossen ist und die Pfadnamen von A: und dann von B: eingelesen werden. Daher werden einfach, sobald ein Laufwerk >= C: angemeldet ist, die Pfadnamen von A: und B: nicht mehr bei jedem Aufruf der Box eingelesen. Diese Laufwerke werden dann wie im Modus a) behandelt. Sind jedoch nur A: und B: angemeldet, so werden die Pfadnamen dieser beiden Laufwerke dennoch bei jedem Aufruf der Box eingelesen mit der Konsequenz, daž ab und zu die Aufforderung zum Diskttenwechsel erscheint (je nach Lust und Laune des GEMDOS). Ist dieser Effekt nicht gewnscht, so muž der Modus a) oder b) verwendet werden. Ordner/Datei l”schen: --------------------- Es wird der/die Ordner/Datei im aktuellen Verzeichnis gel”scht, dessen/deren Name im Dateinamen-Eingabefeld steht. Bei einem Mižerfolg wird eine Fehlermeldung ausgegeben. Also: zu l”schende Datei einmal anklicken bzw. Ordnernamen ins Dateinamenfeld eingeben und "Ordner/Datei l”schen" in der Optionsbox anklicken. Ordner anlegen: --------------- Damit kann ein Ordner im aktuellen Verzeichnis angelegt werden, und zwar mit dem Namen, der im Dateinamen-Eingabefeld steht. Parameter abspeichern: ---------------------- Damit k”nnen alle wichtigen Einstellungen der Box gesichert werden, und zwar: Die Sortierung, die Default-Extensions, der Redraw-Modus, das Klemmen von Pfad und Extension (hier wird auch einer der 12 Default-Extenders, sofern ausgew„hlt, mit gesichert), die Pfadnamen- speicherung (nicht jedoch die Pfadnamen selbst) und die Art der Anzeige (Namen, Gr”že,...). Damit die Abspeicherung funktioniert, muž das Fileselectorprogramm selbst im dem Autoordner, von dem gebootet wurde, unter dem Namen FSELECT.PRG liegen. Dies ist notwendig, da bei der Abspeicherung das Programm selbst modifiziert wird (wenn die abgespeicherten Daten aus einer eigenen Datei geladen wrden, so wrde sich die Zeit beim Booten verl„ngern; aužerdem hat man bei der jetzigen Form nur 1 Datei, n„mlich das Programm selbst!). Tastaturbedienung ----------------- Eine wesentliche Neuerung ist nun die Bedienbarkeit der Box ber die Tastatur. Da sich mittlerweile viele Programme sowohl mit der Maus als auch mit der Tastatur bedienen lassen, habe ich die Box dahingehend umgebaut, daž sich jetzt alle Funktionen auch ber die Tastatur steuern lassen. Dadurch f„llt ein weiterer Griff zur Maus weg (ich hoffe, der Vorteil der Tastaturbedienung hat sich so langsam herumgesprochen)! Achtung: Die Funktionen der Optionsbox k”nnen ber die Tastatur von der Hauptbox aus aufgerufen werden! Die Optionsbox braucht also nicht erst zur Anzeige gebracht werden! Die Belegung der Tasten l„žt mittels des Programmes PATCH.PRG um„ndern. Die genaue Belegung der Tasten steht in der Datei FSELECT.INS. Hier die wichtigsten: Undo : Abbruch Help : Optionsbox ^a-^p : Laufwerke A: - P: ^s : Parameter abspeichern (funktioniert auch in der Hauptbox) ^Insert : Ordner anlegen ( -"- ) ^Delete : Ordner/Datei l”schen ( -"- ) Durch zus„tzliche Bet„tigung der Shift-Taste kann ein Doppelklick auf den entsprechenden Knopf simuliert werden. Genauere Beschreibung siehe Punkt III. -> Sonstiges --------- Wichtig fr Harddisk-Besitzer: Sollte das Programm im Auto-Ordner liegen und sich beim Booten mit irgendeinem anderen Programm nicht vertragen (B”mbchen, B”mbchen....), so kann mit niedergedrckter Alternate-Taste w„hrend des Bootens ein Programmstart verhindert werden. III. Beschreibung des Tastaturbelegungsprogrammes PATCH.PRG =========================================================== 1. Beschreibung der Installationsdatei FSELECT.INS -------------------------------------------------- Generell gilt: Die Reihenfolge der Zeilen in der Datei ist nicht von Bedeutung! In jeder Zeile kann ein Kommentar stehen, er beginnt mit einem '#' und geht dann bis zum Zeilenende. Leerzeichen drfen berall stehen, nur nicht in zusammengeh”renden Symbolen (etwa Zahlen ("$4E"), Namen ("header") und Ascii-Konstanten ("'A'")). Schlsselworte k”nnen grož und klein geschrieben werden. Jede Zeile beginnt mit einem Schlsselwort. Es bestimmt das Objekt in der Box, das mit einer Tastenkombination erreicht werden soll (z.B. "drive0"). Daraufhin folgt ein "=", gefolgt von einer Konstanten. Diese Konstante stellt den ASCII-Code der dem Schlsselwort zuzuweisenden Taste dar. Die Konstante kann folgende Formate annehmen (z.B.): - $4C (Hex-Format) fr den Buchstaben 'L' oder dazu „quivalent - 76 (Dezimalformat) oder - 'L' (ASCII-Format) Bei den Sondertasten und Tasten des numerischen Eingabefeldes sind meistens nur symbolische Konstanten m”glich (z.B. "F1", "F2", "ESC", "TAB", "INSERT"). Anschliežend folgen (optional) zwei Shifttasten-Kombinationen, jeweils durch Komma vom vorigen Wert getrennt: Die erste Kombination definiert die Taste fr einen Einfachklick, die zweite fr einen Doppelklick. Eine Kombination besteht aus max. 3 Shifttasten-Schlsselw”rtern (siehe unten) mit dem Zeichen '+' dazwischen. ...Etwas kompliziert zu beschreiben, deshalb zwei Beispiele, da sieht's gleich einfacher aus (oder besser mal FSELECT.INS ansehen): "drive0 = '5', shift, alt" d.h. Laufwerk A: (drive0) kann ber Shift-5 angew„hlt werden und mittels Alt-5 werden die Laufwerksinformationen ber Laufwerk A: ausgegeben. "ext0 = 'a', , shift" d.h. mit einem einfachen Tastendruck auf A wird der erste Extender ausgew„hlt, w„hrend er sich mit Shift-A editieren l„žt. Es kann in diesem Fall kein 'A' mehr ins Pfadnamenfeld oder ins Dateinamenfeld eingegeben werden! Aufgrund der Abfragetechnik in der Box l„žt sich pro Taste nur ein Objekt definieren, fr dieses k”nnen dann aber fr Einfach- und Doppelklick verschiedene Shifttastenkombinationen definiert werden. Pro Objekt k”nnen aber mehrere Tasten definiert werden (wie z.B. fr die Kopfzeile geschehen ist: sie ist sowohl ber Ctrl-Q als auch ber Help erreichbar). Ich habe die Tastaturabfrage in der Box so konstruiert, daž die Optionsbox nicht mehr dargestellt werden braucht! So kann z.B. jederzeit in der Hauptbox Ctrl-S gedrckt werden, um die Boxparameter abzuspeichern. M”chte jemand eine Funktion der Box fr die Tastatur sperren (z.B. weil Ctrl-Delete auch von der Hauptbox aus Dateien und Ordner l”scht), so ist einfach die entsprechende Zeile aus der Installationsdatei zu entfernen und das Patchprogramm neu zu starten. Pro Taste sollten immer beide Shifttastenkombinationen definiert werden. Wird eine Kombination weggelassen, so bekommt die Taste bereits ohne irgendwelche Shifttasten eine Steuerfunktion fr die Box (siehe Beispiel 2 oben)! Sind beide Kombinationen gleich, so wird der Tastendruck als Einfachklick gewertet. Eine Ausnahme in der Steuerdatei bildet das Schlsselwort "fixdrives": Es muž alleine auf einer Zeile stehen und schaltet eigentlich nur eine Option der Box ein oder aus (je nachdem, ob es in der Installationsdatei erscheint oder nicht): So kann man mit dieser Option die Tasten, die die Laufwerke ausw„hlen, entweder an die Laufwerksbezeichnungen oder an die Laufwerkskn”pfe festbinden: z.B. aktiviert bei der Option 'fixdrives' die Taste 'c' immer das Laufwerk C:, egal ob A: und B: angemeldet sind oder nicht. Ist die Option 'fixdrives' ausgeschaltet (gel”scht oder auskommen- tiert), so ist die jeweilige Taste nicht an die Laufwerkskennung, sondern an den jeweiligen Knopf gebunden: Die Taste 'c' aktiviert dann immer den 3. Laufwerksknopf, egal, ob dort Laufwerk C:, D: oder E: eingetragen ist. Es folgt noch ein Syntaxdiagramm in EBNF-Notation mit einer Auflistung s„mtlicher Schlsselw”rter: lines: { line } line: [ "fixdrives" | ( OBJECT "=" KEY kshifts ) ] "\n" kshifts: [ "," ( kshift [ "," kshift ] ) | ( "," kshift ) ] kshift: SHIFT [ "+" SHIFT [ "+" SHIFT ] ] Shifttasten-Schlsselworte SHIFT: "shift" | "s" Linke/rechte Shifttasten | "alternate" | "alt" | "a" Alternate-Taste | "control" | "ctrl" | "c" Control-Taste Schlsselworte der Hauptbox KEY: "DRIVE0" Laufwerk 0 (normal A:) | "DRIVE1" Laufwerk 1 (normal B:) | "DRIVE2" ... | "DRIVE3" | "DRIVE4" | "DRIVE5" | "DRIVE6" | "DRIVE7" | "DRIVE8" | "DRIVE9" | "DRIVE10" | "DRIVE11" | "DRIVE12" | "DRIVE13" | "DRIVE14" | "DRIVE15" | "HEADER" Kopfzeile | "WICLOSE" Closer-Feld des Dateinamenfensters | "WIMOVE" Mover-Feld des Dateinamenfensters | "WI0" 1. Dateinamenzeile des Fensters | "WI1" 2. -"- | "WI2" ... | "WI3" | "WI4" | "WI5" | "WI6" | "WI7" | "WI8" | "WI9" | "WI10" | "WIUPARR" Fensterpfeile nach oben | "WIDNARR" ... nach unten | "WILTARR" ... nach links | "WIRTARR" ... nach rechts | "EXT0" die Extensionfelder "*.C"-"*.*" | "EXT1" | "EXT2" | "EXT3" | "EXT4" | "EXT5" | "EXT6" | "EXT7" | "EXT8" | "EXT9" | "EXT10" | "EXT11" | "SORTNAME" Sortierung nach Namen | "SORTEXT" ... Extension | "SORTDATE" ... Datum | "SORTSIZE" ... Dateigr”že | "EXIT" Abbruch der Hauptbox Schlsselworte der Optionsbox | "OPFEST" Fest-Modus | "OPAUTO" Auto-Modus | "OPREDRAW" Redraw-Modus | "OPKLPF" Klemmen des Pfades | "OPKLEX" Klemmen der Extension | "OPSPFSEL" Fselect speichert Pfad | "OPSPTOS" TOS speichert Pfad | "OPSPTOSFS" Fselect bernimmt Pfad von Fselect | "OPREMOVE" Ordner/Datei l”schen | "OPMKDIR" Ordner anlegen | "OPSAVE" Parameter abspeichern | "OPEXIT" Abruch der Optionsbox OBJECT: ( "$" ( "0".."9" | "A".."F" ) { "0".."9" | "A".."F" } ) | ( ( "0".."9" ) { "0".."9" } ) | ( "'" " ".."~" "'" ) | "Z(" Die Zeichen auf der numerischen | "Z)" Eingabetastatur | "Z/" | "Z*" | "Z+" | "Z-" | "Z." | "Z0" | "Z1" | "Z2" | "Z3" | "Z4" | "Z5" | "Z6" | "Z7" | "Z8" | "Z9" | "ZCR" Enter auf der num. Tastatur | "ENTER" dto. | "HELP" div. Sondertasten | "UNDO" | "INSERT" | "HOME" | "CLR" | "CURUP" | "CURDOWN" | "CURLEFT" | "CURRIGHT" | "ESC" | "TAB" | "SPACE" | "BACKSPACE" | "RETURN" | "DELETE" | "F1" | "F2" | "F3" | "F4" | "F5" | "F6" | "F7" | "F8" | "F9" | "F10" 2. Beschreibung des Programmes PATCH.PRG ---------------------------------------- Das Programm PATCH.PRG dient zum Patchen der Tastenbelegungstabelle von FSELECT.PRG. Dazu wird die gewnschte Tastenbelegung in der Datei FSELECT.INS eingetragen und das Programm PATCH.PRG gestartet. Zu diesem Zeitpunkt sollte die Fileselectorbox bereits aktiv sein, da das Patchprogramm zu Demonstrationszwecken von der M”glichkeit Gebrauch macht, eine Kopfzeile in der Box mit angeben zu k”nnen. Ist die Fileselectorbox trotzdem noch nicht aktiv, so kann das Programm mit niedergedrckter Alternate-Taste gestartet werden (Taste halten, bis die Fileselectorbox erscheint). In diesem Fall wird dann der normale Fileselectoraufruf benutzt. Das Programm fragt jetzt nach dem Namen der Installationsdatei (im Normalfall FSELECT.INS). Die Datei wird dann gelesen und interpretiert. Etwaige Fehler in der Datei werden gemeldet. Falls keine Fehler auftraten, fragt das Programm anschliežend nach dem zu patchenden Programm. Dies ist im Normalfall FSELECT.PRG im AUTO-Ordner. Ging alles glatt, so werden keine Fehlermeldungen ausgegeben und der Rechner kann anschliežend neu gebootet werden, um die Version mit der neuen Tastenbelegung in den Speicher zu laden. IV. Anhang ========== Das Programm BOXTEST.PRG ist eigentlich nur zur Demonstration der Box mit der Kopfzeile gedacht. Man kann auch verschiedene Pfadnamen eingeben und sehen, was die Box daraus macht. War eingentlich nur zum Testen der Box gedacht... Den Quelltext zu dieser Version von FSELECT gibt's bei mir fr lasche DM 30.- (170KB Sourcecode, 400KB alle Dateien). Wer ihn m”chte, soll mir bitte eine Diskette (DD,DS), einen frankierten Rckumschlag und natrlich 30DM zuschicken. Fehlt was, gibt's nichts! Anforderungen an den Compiler: Mark Williams C >= 3.0 (2.1.7 tuts fast auch!) fr das Programm patch.prg ist zus„tzlich lex und yacc sehr von Nutzen (aber nicht unbedingt notwendig)! ---- Fr Anregungen und Benachrichtigungen ber Fehler bin ich immer dankbar! Fr Rckantworten bitte frankierten Umschlag beilegen! Danke! Und hier noch meine Adresse: Martin Patzel Promenadeweg 15 D-7905 Dietenheim 1 West-Germany