*************************************************************************** * * * Beschreibung des Programms 'BrowserV1.6' von Peter da Silva. * * * * * *************************************************************************** Programmname: Browser, Version 1.6 Autor: Peter da Silva Internet: peter@sugar.uu.net 1620 Enclave Parkway #2710 UUCP path: texbell!sugar!peter Houston, TX 77077 Compuserve: 70216,1076 USA Zweck: Version 1.6, bietet einige wesentliche Verbesserungen gegenüber der Version 1.3. Programme (tools) können nun auch vom CLI aus gestartet werden. Den Programmen mit CLI-Start können auch Parameter mitgegeben werden. Beim M2Amiga_Compiler hilft das allerdings nicht, da der dann keine '.sym'- und '.obj'-Files mehr findet. Zusätzlich verbesserte Menüstruktur durch mehrere, vom Anwender definierbare Menüstreifen. Er 'stellt eine workbenchähnliche Oberfläche für Programmierer' zur Verfügung. Arbeitet ähnlich wie 'CLImate', nur flexibler, d.h. der Anwender bestimmt die Befehle, die er verwenden will! Hardwarevoraussetzung: A500, A1000 oder A2000, mit und ohne Erweiterung (=beliebig). Fundort: Fish-Disk # 180. Zusammenfassung: Der Browser ist für Programmierer besonders deshalb brauchbar, weil er den Zugriff auf alle Files erlaubt, nicht nur auf solche, die ein Icon besitzen. Beim richtigen Einsatz des Browsers werden andere Directory-Utilities ziemlich überflüssig, denn mit einem speziellen File 'browser.inittab' im 's:-Directory' kennt der Browser alle Werkzeuge, die der jeweilige Anwender gerne verwendet. Direkt unterstützt werden die AmigaDOS-Befehle für Files: execute, copy/move, rename, makedir, delete. Nicht unterstützt werden: format, relabel, diskcopy. Einführung: Die Standard-Amiga-Workbench hat einige schwerwiegende Nachteile als Arbeitsumgebung. Der wichtigste ist die Tatsche, daß man nicht mit beliebigen Files arbeiten kann (das soll, Gerüchten zufolge ab V.1.4 gelöst sein), aber es gibt noch andere Nachteile. Die Workbench wurde mit der Idee gemacht, daß ihre Bedienung leicht zu lernen sein sollte, aber entsprechend wenig nützt sie dem fortgeschritteneren Anwender. Der Browser versucht nun einige dieser Probleme zu lösen. Er ist nicht als vollständiger Ersatz für die Workbench gedacht. Icons und diskettenorientierte Funktionen (formatieren, kopieren, etc.) werden nicht unterstützt. Mit dem Browser können Sie leicht und bequem die Funktionen move, copy, rename, und delete, jeweils auf Files bezogen, ausführen. Workbench- oder CLI-Programme können damit leicht durch Doppelklick oder über das Menü gestartet werden. Durch die Kombination dieser Möglichkeiten läßt er sich als komplette Arbeitsumgebung aufbauen, die CLI und Workbench weitgehend ersetzt. Der Browser zeigt Ihnen eine Reihe von Fenstern, die Directories darstellen. Alle gezeigten Files und Directories werden alfabetisch sortiert. Directories werden in der Farbe 2 (rot/orange) dargestellt und kommen zuerst. Selektierte Files werden invertiert gezeigt. Auswahl (=Selektion) von Files: Einzelne Files können auf drei verschiedene Arten selektiert werden: a) Filename anklicken: Damit wird das angeklickte File selektiert, und alle anderen (im gleichen Fenster) vorher selektierten, deselektiert. b) Filename anklicken und gleichzeitig die -Taste gedrückt halten: Damit wird das angeklickte File selektiert ohne andere zu deselektieren. Damit kann eine Liste von selektierten Files aufgebaut werden, auf die dann andere Operationen angewandt werden können. c) Bereits selektierten Filenamen anklicken und gleichzeitig die -Taste gedrückt halten: Damit wird genau dieses File deselektiert ohne andere, bereits selektierte Files zu beeinflussen. Damit kann man Fehler bei der Fileauswahl rückgängig machen. d) Mit den MenüItems des Browser-Menüs (= 1. Menüstreifen) "Sel All" und "Sel Match" können Gruppen von Files gleichzeitig selektiert werden. "Sel All" selektiert alle Files im jeweils aktiven Fenster. Mit "Sel Match" können Sie ein Muster eingeben, nachdem die Files im aktiven Fenster selektiert werden. Dies ist eine wechselweise Selektion (toggleSelect), d.h. wenn bereits Files angewählt waren, werden sie deselektiert, falls sie dem Muster entsprechen. Bei "Sel Match" sind als Jokerzeichen '#?' und '?', NICHT '*' erlaubt. Allgemeine Aktionen Auch hier gibt es drei Arten, selektierte Files zu manipulieren: a) Sie können ein oder mehrere selektierte Files in ein anderes Browser-Fenster ziehen, indem Sie das oder die Files mit der linken Maustaste anklicken, diese Taste gedrückt halten und mit dem Mauszeiger in ein anderes Browser-Fenster fahren und die linke Maustaste dort loslassen. Das funktioniert genau wie auf der Workbench. Wenn Ausgangs- und Zielfenster auf der gleichen Disk liegen, dann wird das File ge'move'd, sind die Fenster auf verschiedenen Disks, dann wird das File kopiert. b) Per Doppelklick wird das File gestartet. Handelte es sich um ein Directory, dann wird dieses geöffnet und sein Inhalt in einem neuen Browser-Fenster angezeigt. Falls zu dem File ein '.info'-File existiert, wird das Programm als Workbench-Task gestartet. Das funktioniert auch mit Projekten, wenn im zugehörigen '.info'- File ein Tool angegeben wurde. Beispiel: Icons zu ReadMe-Files, in denen ':more' als Tool angegeben ist. Existiert kein '.info'- File, dann werden Sie gefagt, ob das Programm als CLI-Programm gestartet werden soll. c) Jedes weitere selektierte File wird an das vorherige selektierte File als CLI- oder Workbench-Argument weiter gegeben - genau wie bei der Workbench SHIFT-Doppelklick-Methode. Menüs: Es existieren zwei Haupt-Menüs. Das erste, "Browser", bezieht sich auf die Arbeitsumgebung des Browsers selbst. Das zweite, "Actions", bezieht sich auf die Files und Directories, die in den Fenstern des Browsers zu sehen sind. MenüItems (=Auswahlpunkte) wirken entweder auf selektierte Files oder das gerade aktive Fenster. Daneben gibt es noch zusätzliche Menüs (Tool Menüs genannt), die der Anwender nach Belieben zusammenstellen kann. 1. Das "Browser"-Menü: 1.1 MenüItem "Open": Die Anwahl dieses Menüpunktes entspricht dem Doppelklick eines selektierten Files. Es sollte von der Workbench startbar sein. Eigenlich sollte dieser Menüpunkt im "Actions"-Menü sein, aber er schien besser hierher zu passen. 1.2 MenüItem "Close": Das entspricht der Betätigung des Schließgadgets des gerade aktiven Fensters. 1.3 MenüItem "Rescan": Dieser Menüpunkt veranlaßt den Browser, das aktuelle Directory nochmals einzulesen. Dies ist gleichbedeutend mit, aber wesentlich komfortabler als, das aktive Fenster schließen und wieder aufmachen. Man hätte hier auch eine automatische Aktualisierung einbauen können, aber wenn es sich um Diskettenlaufwerke handelt, dann wird das schnell lästig. 1.4 MenüItem "File Size": Mit diesem Menüpunkt wird ein Bit getoggled (selektiert oder deselektiert), das anzeigt, ob neben dem Filenamen auch die Filegröße im Fenster angezeigt werden soll. Wurde in einem Hauptdirectory dieses Bit getoggled, dann werden auch in den später geöffneten Unterdirectories die Filegrößen angezeigt. In einer späteren Version des Browser sollen auch noch andere Eintäge nch Art des List-Befehls gezeigt werden. 1.5 MenüItem "Sel All": Damit werden alle Files im aktiven Fenstert selektiert, bzw. die vorher selektierten, werden deselektiert. 1.6 MenüItem "Sel Match": Genau wie "Sel All", außer daß die Selektion durch ein Muster vorgegeben wird. 1.7 MenüItem "Options": Damit kann das 'globale' Verhalten des Browsers beeinflußt werden: a) SubItem "X Toggle Selections": Veranlaßt, ob eine Selektion durch das Menü oder ein SHIFT-Klick ein bereits selektiertes File wieder deselektiert oder nicht. b) SubItem "X Move Files into subdirectories": Damit wird kontrolliert, ob man durch Anklicken eines Files, ziehen mit dem Mauszeiger und wieder loslassen über einem Unterdirectory, dieses File in das Unterdirectory kopieren kann oder nicht. Falls dies ausgeschlossen ist, muß vorher das Unterdirectory geöffnet werden. c) SubItem "X Ask before moving into subdirectories": Wenn Sie erlauben, daß Files in Subdirectories ge'move'd werden, dann entscheidet dieses Flag, ob Sie vorher gefragt werden, ob Sie das auch wirklich wollen. 2. Das "Actions"-Menü: Diese MenüItems wirken mehr auf einzelne Files, als daß sie den Zustand des Browsers ändern. 2.1 MenüItem "WB Tool" Das (einzelne) gerade angewählte File wird in das Tools-Menü als Workbench-Tool aufgenommen. 2.2 MenüItem "CLI Tool": Das (einzelne) gerade angewählte File wird in das Tools-Menü als CLI-Tool aufgenommen. In diesem Fall bringt der Browser einen zusätzlichen Requester, in dem Sie weitere Argumente angeben können. 2.3 MenüItem "Rename": Das gegenwärtig angewählte (einzelne) File wird umbenannt. Der Browser bringt einen Requester, in dem der Filename geändert werden kann. 2.4 MenüItem "Duplicate": Das gerade angewählte (einzelene) File wird dupliziert. Der Browser bringt einen Requester, in dem der Filename (vorgegeben als 'Copy of...) geändert werden kann. 2.5 MenüItem "Make Dir": Erzeugt ein neues Directory im gerade aktiven Fenster. Dazu bringt der Browser einen Requester, in dem Sie den Namen des neuen Directories angeben können. 2.6 MenüItem "Delete": Löscht alle selektierten Files. Directories werden jedoch nur gelöscht, wenn sie vollkommen leer sind. 2.7 MenüItem "Delete All": Löscht alle angewählten Files und Directories rekursiv (also auch alle Unterdirectories). 3. Die Tools-Menüs: Diese Menüs, beginnend mit Tools, sind zunächst alle leer. Sie werden aufgefüllt, indem man "Add * Tool" anwählt, oder im File "s:browser.inittab" die entsprechenden Angaben macht. Wählt man einen Item dieser Menüs aus, dann wird das Programm gestartet (als Workbench- oder als CLI-Programm) und alle selektierten Files werden übergeben. Wenn Sie die Wahl haben, lassen Sie das Programm von der Workbench aus starten, das ist SEHR VIEL ZUVERLÄSSIGER. 4. Die Umgebung: Der Browser selbst kann von der Workbench oder vom CLI aus gestartet werden. Auf dieser Disk finden Sie zwei verschiedene Versionen des Browsers. Die erste Version "browser", ist die übliche CLI/Workbench- Version. Die zweite "bgbrowser", unterscheidet sich nur insofern von der ersten Version, als sie zusätzlichen Code enthält, der das Programm vom aufrufenden CLI-Fenster loslöst. (Also als Background- Prozess laufen läßt.) Der Browser verwendet ein File, "s:browser.inittab", um Anwender- Menüs sofort beim Start einzuladen. Jede Zeile darin stellt einen Menüeintrag dar, der 5 verschiedene Felder enthalten kann. name;environment;command;stack;window Das erste Feld "name", gibt an, unter welchem Namen der Eintrag im Menü erscheinen soll.Dort kann zuerst der Menüname, gefolgt von einem Punkt '.' und dann der MenüItem folgen. Falls kein Menüname angegeben wird, wird der Menüname "Tools" verwendet. Beispiel: "Applications.Terminal Emulator" erzeugt den MenüItem Terminal Emulator im Menü "Applications". Falls das Menü nicht schon existiert, wird es neu erzeugt. Die beiden Umgebungen, die z.Z. unterstützt werden, sind CLI und Workbench. Project-Files (wie z.B. AmigaBASIC-Programme) werden vom Menüsystem z.Z. noch nicht unterstützt. Vielleicht zu einem späteren Zeitpunkt. Sie arbeiten ganz normal per Doppelklick. Wenn unser Beispielprogramm "terminal emulator" als Workbench-Programm laufen soll, dann ist im entsprechenden (2.) Feld "Workbench" anzugeben. Falls es vom CLI starten muß, dann ist hier "CLI" zu schreiben. Im Zweifelsfall ist es immer besser, das Programm von der Workbench aus starten zu lassen. Die Workbench stellt die 'sauberere' Umgebung dar, und Sie bekommen keine zusätzlichen Fenster auf dem Bildschirm. Das nächste Feld ist der Name des Programms. Dort sollte der volle Pfad stehen. Handelt es sich um ein CLI-Kommando, dann können hinter dem Namen noch zusätzliche Argumente stehen. Die Namen irgenwelcher selektierter Files werden hier angehängt. Handelt es sich um ein Workbench-Programm, dann sollte hier nur der Name, inklusive Pfad, stehen. Selektierte Files werden mittels der Workbench-Argument-Struktur übergeben. Das nächste Feld gibt die Stackgröße an. Wird die Angabe weggelassen, dann wird automatisch eine Stackgröße von 8k angenommen. Das letzte Feld gibt das Fenster an. Bei einem CLI-Befehl ist das das Fenster von dem aus der CLI-Befehl gestartet wird. Bei einem Workbench-Programm ist das das 'ToolWindow', das übergeben wird. Unterbleibt die Angabe, dann wird eine Voreinstellung verwendet. Beispiel: Applications.Terminal Emulator;Workbench;sys:system/Termulator Starten Sie ein Programm über das CLI, dann bleibt nach dem Programmlauf gelegentlich ein aktives CLI-Fenster stehen. Dies kann passieren, wenn man die BREAK-Tasten drückt, solange das Programm noch läuft. Ich mußte das so stehenlassen, damit auch noch 'schwierigere' Programme, wie z.B. der Manx 'Z' Editor noch einwandfrei laufen. Wenn Sie ein File auf eine Disk kopieren, und Disk-Errors bekommen, dann scheint es manchmal so, als ob der Browser diese Disk-Errors ignorieren würde und weiter versuchte auf diese Disk zu schreiben. Tatsächlich behandelt der Browser aber alle Errors, die er gemeldet bekommt. Aber aus irgendwelchen Gründen meldet das AmigaDOS manche Fehler nicht sofort. Ich vermute, daß das dann auftritt, wenn man größere Puffer als den Diskpuffer zum Schreiben verwendet. Ich habe jedoch nicht vor, solche Probleme in Zukunft extra zu berücksichtigen. Der Browser selbst scheint ganz gut mit dem Standard-Stack von 4k zu laufen. Die Minimal-Umgebung, die der Browser benötigt, ist: libs (dir) icon.library Wollen Sie auch CLI-Programme laufen lassen, dann benötigen Sie zusätzlich: c (dir) cd EndCli Failat NewCli Run Stack l (dir) Ram-Handler Diese werden benötigt, wenn Sie die Scripts verwenden wollen, die der Browser ins RAM: schreibt, wenn Sie ein CLI-Programm starten. Autor: Peter da Silva, Adresse siehe oben. Spenden: Falls Sie das Programm brauchbar finden, können Sie eine Spende an den Autor, Peter da Silva, senden. Bei Spenden von dreißig Dollars oder mehr, erhalten Sie die neueste Version des Browsers (oder, falls Ihnen das lieber ist, die nächste Version wann immer sie erscheinen wird). Ich plane in zukünftigen Versionen eine Liste der Sponsoren einzuführen. Wenn Ihr Name darin erscheinen soll, lassen Sie mich es wissen. Falls Sie sich dazu nicht äußern, nehme ich an, daß Sie Anonymität bevorzugen und werde Ihren Wunsch berücksichtigen. Was auch immer Sie angeben, ich werde niemals Ihren Namen an eine Mailingliste (Anm.: Das sind die Dinger, von denen später die 'Junk Mail' herkommt) verkaufen. ****************************Ende der Übersetzung********************* Anmerkungen des Übersetzers: 1. Peter hat für den Aufbau des Files "s:browser.inittab" m.E. etwas mit Beispielen gespart. Deshalb hier noch ein komplettes File: Show .UmlautEx;Workbench;c:UE Show .More;Workbench;c:more Show .MuchMore;Workbench;c:MuchMore Show .Druck!;Workbench;c:druka Show .Print;CLI;c:print; Show .Ed;Workbench;c:ed Show .m2emacs;Workbench;mod:m2/m2emacs M2-Demo .compile;Workbench;mod:m2d/m2c M2-Demo .link;Workbench;mod:m2d/m2l M2-Demo .compile3.11;Workbench;mod:m2k/m2c M2-Demo .link3.11;Workbench;mod:m2k/m2l M2 .compile;Workbench;mod:m2/shortm2c M2 .longcompile;Workbench;mod:m2/m2c M2 .link;Workbench;mod:m2/m2l M2 .load;Workbench;mod:m2/m2r M2 .make;Workbench;mod:m2/m2make 2. Das Einbinden von Compileroptionen in den Aufruf funktioniert noch nicht so richtig. Schreibt man: M2 .longcompile;CLI;mod:m2/m2c -di dann startet der Compiler zwar, aber er findet die benötigten '.sym'- Files nicht mehr. Irgendetwas stimmt mit dem übergebenen Pfad da noch nicht. Gleiches gilt vermutl. für den Linker.