Dme-Editor Version 1.30 by Matthew Dillon 21 May 1988 Dme-d deutsche Benutzeroberfläche und Help-Datei Version 1.10 Roland Krüger 4.9.89 Diese Diskette ist Public Domain. Sie darf nur ohne Profit vertrieben werden. Sämtliche von mir geschriebenen Dateien können beliebig verändert oder erweitert werden. Sie dürfen aber in keinem kommerziellen Produkt Verwendung finden. Insbesondere dürfen die Texte nicht abge- druckt und ohne meine Erlaubnis veröffentlicht werden. Die Dateien von Matthew Dillon sind hier noch einmal vollständig kopiert und stammen von Fish146 und Fish153. Die arp.library kommt von Fish123 (AmigaDOS-Replacement-Project von C. Heath und vielen anderen). Das Programm "Print" von Michael D. Black ist auf Kiss3 zu finden. Ich verwende es in Verbindung mit der Druckausgabe von Dme-Dateien, da es auch Seitenzahlen druckt und einfache Formatierung erlaubt. Das Programm wurde sehr sorgfältig getestet und immer wieder verbessert. Dennoch sind Fehler nicht auszuschließen. Sollten noch wichtige Fehler auftauchen, so bitte ich um Nachricht. Speziell den Überschreibmodus und die Randbegrenzung habe ich nicht für jeden erdenklichen Fall ge- testet. Weiterhin sind einige Optionen, wie zum Beispiel UNDO, für den Amiga-Anfänger manchmal etwas verwirrend. Wichtige Schriftstücke sollte man nicht gleich am ersten Tag mit Dme verfertigen. Im Übrigen geschieht die Benutzung des Editors auf eigene Gefahr. Für eventuelle finanzielle oder ideelle Folgen aus der Benutzung kann ich keine Haftung übernehmen, so wie ich auch keine Gewinnbeteilung bei positiven Ergebnissen in Anspruch nehme. Für Kommentare und Anregungen wäre ich sehr dankbar. Meine Adresse: Roland Krüger Saalburgstraße 25 6380 Bad Homburg ------------------------------------------------------------------------ Inhalt dieses Textes: 1. Was ist Dme ? Und für wen ? 2. Wie wird Dme am schnellsten gestartet ? 3. Inhalt der Diskette. 4. Weitere Möglichkeiten. 5. Update. (wer nicht gerne soviel liest, braucht sich ja nur an Punkt 2 zu halten) ------------------------------------------------------------------------ 1. Was ist Dme ? Und für wen ? Schon wieder ein Editor... aber: Dme ist der beste Editor für den AMIGA im Public-Domain-Bereich. Grundsätzlich ist ein Editor so etwas wie ein sehr vereinfachtes Text- bearbeitungs-Programm, ohne besondere Zeichensätze oder Bildausgabe. Schreibprogramme wie Beckertext, Vizawrite oder Wordperfect brauchen viel Speicherplatz, spezielle Disketten, aufwendige Startvorbereitungen und dann auch noch Einiges an Einarbeitungszeit. Der Editor nimmt nicht viel Platz ein und kann daher auf der Workbench gespeichert sein. Damit ist er - ohne jede Festplatteninstallation - jederzeit sofort aufrufbar. Er eignet sich zum Schreiben von Batch- Dateien, Listen, Quelldateien oder auch für einfache Briefe. Ich habe lange nach einem guten Editor für Bildbearbeitungsdateien (Director) gesucht. Mit Ed, oder Z (von Manx) und selbst MicroEmacs war ich nie so recht zufrieden. Dme hat den sehr großen Vorzug, daß er vom Anwender weitgehend selbst konfiguriert werden kann. Damit lassen sich viele kleine Unstimmig- keiten wie bei festprogrammierten Editoren beseitigen. Die Anfangs- konfigurierung von Matthew Dillon beschränkt sich auf das Allernot- wendigste. Damit ist Dme (wie er in seiner Anleitung auch selbst schreibt) nur für Programmierer sinnvoll, die sich zudem mit den Möglichkeiten des Editors schon sehr gut auskennen. Mir war es aber wichtig, Dme soweit zu definieren, daß der Anwender sofort - und meinetwegen völlig ohne eine Anleitung zu lesen - einen Text damit schreiben kann. Nun ja, ein Computerneuling wird immer noch sehr viele Schwierigkeiten haben. Aber die Einarbeitung dürfte sicher schneller gehen als mit dem guten alten Ed. Die meisten Dme-Funktionen lassen sich sowohl über die Tastatur als auch mit der Maus aufrufen. Das Menü zeigt jeweils beides an und ermöglicht zudem den schnellen Zugriff auf verschiedene HELP-Texte. Funktionsübersicht: - Laden und Speichern mit und ohne Arp-Auswahlfenster - Beliebig viele Textfenster (je nach Speicherplatz) - Pause mit "Iconize" - Zwischenspeichern - Ende mit Sicherheitsabfrage - Zeilenweise Blockmarkierung - Blockkopie, Blockmove auch zwischen verschiedenen Dateien - Blockkopien ins ram: - Block als Quelldatei für Dme-Anweisungen - Blockmarkierungen stapeln - Markierungen mit Maus setzen - Schnelles Scrollen, auch Seitenweise - Bewegen mit Maus oder mit Cursortasten - Vielfältige Löschoperationen mit Backup im ram: (ausschaltbar) - Suchen, ersetzen (mit und ohne Beachten der Groß- Kleinschreibung) - Ganzes Wort auf Tastendruck groß oder klein schreiben - Zeilenlänge formatieren, Randbegrenzung ausschaltbar (max.256 Zchn) - Text auf Drucker ausgeben - Text sortieren - Befehlswiederholung, auch endlos - Zugriff auf CLI-Befehle - Einfüge- und Überschreibmodus - Cursorblinken nach Sprüngen, aber auch nur dann - ständige Anzeige von Zeile/Gesamtlänge, Spalte, Dateiname mit Pfad - Fenstergröße beliebig veränderbar (nicht einmal das ist selbstver- ständlich) Was mir noch fehlt: - Falten - verschiedene Zeichensätze - Blockmarkierung innerhalb von Zeilen wie bei MicroEmacs - Blockmarkierung mit Maus wie bei AMIGA-Basic - Record-Replay wie bei Micro-Emacs - Zähler, zB. für Ersetzfunktionen - bessere Zeichenkettenverwaltung (gibt es in Version 1.31) ------------------------------------------------------------------------ 2.Start des Dme: Damit Dme zum Laufen kommt, sind folgende Dateien, die hier auf der Diskette im angegebenen Verzeichnis untergebracht sind, verwendbar: Name Größe Blöcke Funktion :c/Dme 49452 97 Editor :s/.edrc 17205 34 Konfigurierung :s/.edrc2 999 2 Konfigurierung2 :s/dme.refs 1199 3 Help - Verteiler :s/ref0 11183 22 Help - Kurzfassung :s/ref1 40578 82 Help - vollständig :s/ref2 15961 32 Help - Kommandoliste :libs/arp.library 9848 20 Dateiauswahlfenster :c/Print 12112 24 Druck-Hilfsprogramm :run Dme 10184 20 IconExec Installationsmöglichkeiten: (wer es schon kann, kann die angegebenen Beispiele mit Dme direkt in ein anderes Fenster kopieren und damit selbst eine maßgeschnei- derte Batch-Datei erzeugen) 0) Am Allereinfachsten - mit der Dme-Diskette stiefeln (booten). Allerdings fehlen dann viele CLI-Befehle und die Libraries usw... a)1 Von der Workbench aus - einfach das Icon "run Dme" anklicken. Dme startet dann zwar nicht wirklich von der Workbench, sondern holt sich ein eigenes CLI-Fenster, aber der Effekt ist derselbe, außer daß dabei 10184 Byte für "iconexec" + 2478 Byte für's Icon draufgehen. Luxus ist eben teurer. a)2 Vom CLI aus - alles bleibt, wo es ist. Dazu brauchen Sie entweder Teile des CLI im ram:, oder zwei Laufwerke, oder die Festplatte, damit die folgenden CLI-Kommandos ausgeführt werden können (die Dme-Diskette liegt zum Beispiel im Laufwerk 0): PATH df0:c ADD ASSIGN S: df0:s ASSIGN LIBS: df0:libs Dann können Sie Dme sofort starten (ob von Workbench oder CLI) und gleich alles ausprobieren, beispielsweise diese Datei lesen. Diese Methode hat vor allem einen Haken beim dritten Befehl, denn das ASSIGN verbaut nun den Zugriff zu den anderen Workbench-Libraries. Aber für den Anfang reicht's. b) Einfache Ausführung für die Workbench: Dme mit komfortabler Konfigurierung, aber ohne Help. Dazu müssen mindestens 151 Blöcke auf der Workbench frei sein. Der Platz kann durch Löschen von seltener verwendeten CLI-Befehlen geschaffen werden, sowie einigen Dateien im System- und im Utilities- Verzeichnis (natürlich nur von einer Kopie!!). Ich habe beispielsweise bei meiner WB folgende Dateien gelöscht: c/Ask, c/DiskChange, c/Ed, c/Edit, c/Skip, System/.info's, System/MergeMem, System/FixFonts, Utilities/alles und dafür eine Workbench2 angelegt. Verzichtet man auf den Lade-Requester, so können noch 20 Blöcke eingespart werden (-arp.library). I.Wenn nur ein Laufwerk und keine Festplatte vorhanden ist (anstatt ram: kann auch card: oder vd0: stehen) Dme-Diskette in df0: COPY df0:c/Dme ram: COPY df0:s/.edrc ram: COPY df0:libs/arp.library ram: Workbench in df0: COPY ram:Dme df0:c COPY ram:.edrc df0:s COPY ram:arp.library df0:libs II.Zwei Laufwerke, das ist einfacher Workbench in df0:, Dme-Diskette in df1: COPY df1:c/Dme df0:c COPY df1:s/.edrc df0:s COPY df1:libs/arp.library df0:libs (Dies gilt entsprechend für Kopien ins dh0:) c) Erweiterte Ausführung, mit einfacher Help-Funktion, sowie der Ein- bindung einer eigenen Konfigurierungsdatei: Dazu sind jetzt schon nach Adam Riese (dem Erfinder der Addition) und Alan Turing (dem Erfinder der allgemeinen Rechenmaschine) 158 Blöcke auf der Workbench freizumachen (bitte unbedingt vorher mittels INFO nachgucken). I.Nur ein Laufwerk Dme-Diskette in df0: 3 Kopien wie oben unter b)I., dann: COPY df0:s/.edrc2 ram: COPY df0:s/dme.refs ram: COPY df0:s/ref0 ram:ref1 (Namensänderung !) Workbench in df0: COPY ram:.edrc2 df0:s COPY ram:dme.refs df0:s COPY ram:ref1 df0:s II.Zwei Laufwerke Workbench in df0:, Dme-Diskette in df1: 3 Kopien wie oben unter b)II., dann: COPY df1:s/.edrc2 df0:s COPY df0:s/dme.refs df0:s COPY df0:s/ref0 df0:s/ref1 (Namensänderung !) (Dies gilt entsprechend für Kopien ins dh0:) d) Erweiterte Ausführung, mit richtiger Help-Funktion (verlangt nach 218 freien Blöcken !) wie c), nur wird statt s/ref0 s/ref1 kopiert (ohne Namensänderung) e) Alles (274 Blöcke - das wären schon 15,58 % von der Workbench-Disk) zusätzlich zu d) noch s/ref2 und Print kopieren f) Kopieren auf der Workbench (statt vom CLI aus): Sämtliche Dateien haben Icons und können daher auch über die Workbench kopiert werden. Dazu müssen allerdings Schubladen-Icons für die Verzeichnisse s/ und libs/ vorhanden sein, was eigent- lich unüblich ist - aber möglich, allerdings wieder nur vom CLI aus: Workbench in df0: COPY df0:system.info df0:s/info COPY df0:s.info df0:libs/info Die Kopien können dann entweder mit zwei Laufwerken oder unter Zuhilfenahme der Ram-Disk erfolgen (Dateien ins ram:, dann Diskette wechseln, Dateien auf die Workbench-Disk - vorher aber genügend Platz schaffen !). Die Aktivierung der Ram-Disk kann vorher vom CLI aus erfolgen: CD ram: Außerdem muß Dme selbst wieder vom CLI aus kopiert werden, da Dme kein Icon besitzt: (Beispiel mit 1 Laufwerk) Workbench-Diskette in df0: INFO (Es müssen mindestens noch 97 Blöcke auf der frei sein) COPY ? Dme-Diskette in df0: COPY df0:c/Dme ram: Workbench-Diskette in df0: COPY Dme df0:c Der Nachteil: Jede mit Icon kopierte Datei braucht deswegen sechs Blöcke mehr an Speicherplatz, jede erzeugte Schublade 1 Block mehr. ------------------------------------------------------------------------ 3.Inhalt der Diskette. Start * Das ist die Datei, die Sie jetzt gerade aufge- * schlagen vor sich liegen haben. run Dme * Dies ist nicht der eigentliche Editor, sondern * dahinter verbirgt sich das Programm "iconexec" * von John A. Thoebes. Ein eigenes CLI-Fenster * wird eröffnet und Dme von dort aus gestartet. * Der Nachteil ist der zusätzliche Platzbedarf * auf der Diskette. * Dme könnte eigentlich auch direkt mit einem * Icon versehen und von der Workbench aus ge- * startet werden. Allerdings hat das einen sehr * entscheidenden Nachteil: Das Dme-Kommando * EXECUTE, das CLI-Befehle ausführen soll, * funktioniert nicht mehr - Dme hängt sich * einfach auf. Das wird hier mit Hilfe von icon- * exec vermieden. * Jedes EXECUTE führt bei Start von der Workbench * aus zum Aufhängen des Tasks oder gleich nach * Indien. Daher sollte immer vom CLI aus ge- * startet werden. c/ Assign * wird von Dme gebraucht, um das temporäre * Gerät "T: ram:" zu definieren Copy * Wird z.B. beim Sortieren gebraucht Dme * Editor Version 1.30 im c-Verzeichnis Delete ff * FastFonts erhöht das Textanzeigetempo LoadWB * Workbench kann geladen werden, falls mit der Dme- * Diskette gestartet wurde More * Zeigt Textdateien im Workbench-Fenster Print * Hilfsprogramm "Printer" zum Druck von Dateien. * Von mir leicht eingedeutscht: druckt nun "Seite" * statt "Page". Run Sort * Workbench-Sortierbefehl s/ .edrc * Konfigurationsdatei im s-Verzeichnis * diese Datei sollte beim Start des Dme mindest- * ens vorhanden sein, um eine komfortable Ober- * fläche zu haben .edrc2 * Zusätzliche Konfiguration - Hier können nach * gründlichem Lesen der ref2-Datei eigene Makros * definiert werden. Diese könnten auch in .edrc * hineingeschrieben werden, das wäre aber zu * unübersichtlich. Daher die separate Datei .edrc.comment * Dies ist nochmal dasselbe wie .edrc, aber * mit ausführlichen Kommentaren versehen. Ist * vielleicht ganz gut zum Lernen, aber wohl auch * etwas verwirrend (einfacher ging's kaum). * Sollte nur mit schmalem Zeichensatz gedruckt * werden dme.refs * Verteiler für die Help-Dateien. Hier werdem * dem Editor Pfad und Namen der einzelnen * Help-Dateien mitgeteilt ref0 * Verkürzte Help-Datei, muß in "ref1" geändert * werden, falls sie angewendet werden soll. * Sie ist als Gedächtnisstütze für erfahrene * Dme-Benutzer gedacht, die die einzelnen * Funktionen schon gut kennen ref1 * Help-Datei. Erklärt bei Aufruf über das Menü * jedes einzelne Makro ausführlich ref2 * Liste aller Dme-Kommandos, die von den .edrc- * Dateien verwendet werden, aber auch im Be- * fehlsmodus direkt eingegeben werden können. * Es handelt sich gleichzeitig um eine gekürzte * Übersetzung der englischsprachigen Dme-Doku- * mentation Print.doc * Information zum Printer-Programm von Michael * D. Black startup-sequence * Startet Dme automatisch beim Booten Dme.docs/ * Verzeichnis mit Original-Dme-Dateien, wie sie * auf den Fish-Disketten überliefert sind dme.doc * Originaldokumentation. Ist im Druck gut 15 * Seiten lang POSTER * Distributionsnotiz für Dme * P.S: How's the vacation ...? README * Erste Einführung zum Dme von Matt Dillon ToDo * Wird er's jemals tun ? rexmacs/ * Verzeichnis für ARexx-Makros. Da ich noch kein * ARexx besitze, habe ich mich wenig darum ge- * kümmert... addr.dme alley.dme ARexxMac.doc args.dme bot.dme cat.dme findbaz.dme findrexx.dme get.dme interr.dme interr2.dme one.dme put.dme putd.dme qq.dme rxbot.dme rxtop.dme save.dme second.dme swish.dme swish2.dme three.dme two.dme xx.dme xyz1.dme xyz2.dme yy.dme zz.dme support/ * Verzeichnis mit Beispiel-.edrc-Routinen, * sowie Help-Routinen für C-Programmierer dme.refs.1 dme.refs.2 macros.edrc sample.edrc src/ * Verzeichnis mit Dme-C-Quelldateien cmd1.c cmd2.c cmd3.c command.c defs.h filereq.c globals.c keyboard.c main.c Makefile menu.c mods.c refs.c rexx.c rexx.h rexxbind.asm subs.c rexx/ * Quelldateien für die ARexx-Implementation errors.h errors.i rexxio.h rexxio.i rxslib.h rxslib.i rxsupplib.i storage.h storage.i Dme-1.31/ * Die von mir bearbeitete Dme-Fassung hat die * Versionsnummer 1.30. Auf der Fish168 ist nun * eine neue Version mit der Nummer 1.31 erschie- * nen. Der Vollständigkeit halber füge ich sie * hier bei. 1.31.doc * Englischsprachige Dokumentation dme * Dme Version 1.31 run dme * Startet diese mit Iconexec libs/ arp.library * ARP wird hier nur für den Dateiauswahlrequester * gebraucht Weiterhin enthält diese Diskette noch einige wichtige Dateien, die für das Booten unbedingt notwendig sind, damit Dme anschließend richtig läuft. Man kann sich wirklich fragen, warum Sachen wie "l/Port-Handler" oder "devs/keymaps/d" beim Amiga nicht gleich im Kickstart-ROM unter- gebracht sind (das ja optimierter und größer sein könnte und meinetwegen bei jedem Update gekauft werden kann). Jedenfalls bringen mich lapidare Fehlermeldungen wie "Can't open redirection file" zur Weißglut. Solche Meldungen sollten schon spezifi- zierter sein ! ------------------------------------------------------------------------ 4. Weitere Möglichkeiten. Wie schon mehrmals angedeutet, ist die Datei .edrc2 dazu gedacht, Ihnen eigene weitere Konfigurierungen zu ermöglichen, ohne die Hauptkonfigu- rierung .edrc völlig umändern zu müssen. Beim Start nimmt sich Dme zunächst .edrc vor, um anschließend .edrc2 zu lesen. Falls diese nicht im S:-Verzeichnis steht, ist es auch nicht schlimm. Wenn aber doch, dann werden die in ihr geschriebenen Makros zusätzlich miteingebunden. Sind hier vorher schon einmal definierte Belegungen eingetragen, so werden diese einfach überschrieben. Auch das Menü kann auf diese Weise neu arrangiert werden, was aber sehr kompliziert sein kann. Das Menü ist von mir bereits fast vollständig belegt, so daß für Oberbegriffe garkein - und für Unterbegriffe nur noch sehr wenig Platz bleibt. Leider können im Dme keine weiteren Untermenüs verwendet werden. Beispielsweise könnten Makros definiert werden, die den C-Compiler automatisch starten, ohne daß Dme extra verlassen werden muß. Gleichzeitig lassen sich Fehlerdateien oder Assemblerdateien mit weiteren Dme-Fenstern editieren und mit dem Quelltext direkt verglei- chen. Es wäre leicht möglich, ein Syntaxkontrollprogramm in Dme einzubinden (solche Programme gibt es sogar in Public-Domain). Dann würde der Editor allerdings schwerfälliger werden und wesentlich mehr Platz brauchen. Außerdem ließe sich auch ein Wort-für-Wort-Übersetzungs- programm mit Hilfe des REF-Kommandos verwirklichen. ------------------------------------------------------------------------ 5.Update. Ja, es gibt auf Fish168 - der Matt-Dillon-Special-Disk - bereits wieder eine Neuversion, nämlich sage und schreibe die 1.31. Ich habe diese hier der Vollständigkeit halber in eine spezielle Schublade gegeben, muß aber dazu sagen, daß ich diese Version nicht getestet habe (während die alte immerhin schon ein gutes halbes Jahr praktischer Erprobung aufweisen kann). ACHTUNG: Weil meine .edrc-Version am Anfang ein EXECUTE verwendet, hängt sich auch diese Version beim Anklicken von der Workbench aus auf, falls .edrc in S: liegt. Deshalb habe ich auch hier wieder den run-Dme-Trick mit Iconexec verwendet. Außerdem gerät das Fenster beim Öffnen seltsamerweise zu klein. Ein Vorteil ist vielleicht die neue Pfadverwaltung - Dme erkennt nun, ob zum Beispiel in df0: die Diskette gewechselt wurde. Allerdings sind damit die bequemen Backups nicht mehr möglich (erst den Text mit f5 als "df0:Text" auf der Originaldiskette speichern, dann Diskette raus, Backup-Diskette rein, und nochmal f5). Der Hauptnachteil der neuen Version ist der größere Speicherbedarf (56792 statt 49452 - das sind immerhin 14,8 % Zuwachs). Damit würde es auf der Workbench wieder etwas enger. Die Unterschiede zur älteren Version sind in der Dokumentation "1.31.doc" unter REVISION SUMMARY angegeben. Speziell ist die neue Variablenverwaltung hervorzuheben. Damit ließen sich viele meiner Konfigurationszeilen einfacher gestalten. Da ich aber momentan nicht die Zeit und das Bedürfnis habe, den Editor, der ja jetzt schon sehr gut ist, noch weiter zu optimieren, lasse ich ihn so, wie er ist. Wer Lust hat, kann das ja mal in Angriff nehmen... ------------------------------------------------------------------------