# ref2 Dme-d  Übersetzung der Dme-Kommandoliste aus der englischspra-
#             chigen Originaldokumentation "Dme.doc"

# Roland Krüger  15.7.89

DOC     Jedes Kommando kann nach Drücken der <Esc>-Taste in die dann
        am unteren Rand entstehende Kommandozeile geschrieben werden.

        Wird ein Kommando öfters gebraucht, so empfiehlt es sich je-
        doch, ein Makro zu definieren, das heißt, irgendeine Taste oder
        eine Tastenkombination damit zu belegen. Dies erfolgt mit dem
        MAP-Befehl. Es lassen sich alle Tasten, einschließlich Pfeil-
        tasten, numerische, Ctrl-, Shift-, Alt-, Amiga-, Tab-, Esc-, und
        sogar die Maustasten definieren (einschließlich der mittleren,
        falls vorhanden). Es wird allerdings nicht zwischen linker und
        rechter Shift-, Alt-, oder Amiga-Taste unterschieden.

        Beim Start des Dme sucht dieser erstmal eine Konfigurierungs-
        datei namens "S:.edrc". Die hier verwendete initiiert bereits
        ein Maus- menü, sowie zahlreiche Funktionen, die in den
        HELP-Dateien ausführ- lich beschrieben sind. Die .edrc-Datei
        läßt sich beliebig verändern, man kann sogar mehrere
        verschiedene schreiben und bei Bedarf um- schalten, je nach
        gewünschter Umgebung. (Die HELP-Dateien verlieren damit
        selbstredend auch ihre Gültigkeit).

ARPLOAD     neue Datei laden, mit ARP-Dateiauswahlfenster (dafür muß die
              arp.library in LIBS: vorhanden sein).
ARPSAVE     Datei mit ARP-Auswahlfenster speichern
BACK        =bs, Backspace - eins-nach-links-und-löschen
BACKTAB     zum nächsten Tabulator nach links rücken
BCOPY       Block über die Cursor-Zeile kopieren
BDELETE     Block löschen
BLOCK       Anfangszeile oder Endzeile eines Blocks markieren
UNBLOCK     Blockmarkierung aufheben
BMOVE       Block über die Cursor-Zeile kopieren
BOTTOM      Cursor und Text ans Ende der Datei
TOP         Cursor und Text an den Anfang der Datei
BS          Backspace - eins-nach-links-und-löschen
BSAVE <Dateiname>   Block als Datei speichern
BSOURCE     Block als Kommandodatei interpretieren (jede einzelne Zeile
              des Blocks wird als Kommando ausgeführt)
CHFILENAME <Name>   aktuellen Dateinamen ändern
DEL         Zeichen an Cursorposition löschen
DELINE      ganze Zeile löschen
DOWN        Cursor nach unten
UP          Cursor eins nach oben
DOWNADD     Cursor nach unten, falls in der untersten Zeile angekommen,
              eine neue Zeile einfügen.
ESC         Kommandozeile ein- oder ausschalten
ESCIMM <Argument>   Kommandozeile aktivieren, kommt mit entsprechendem
                    Argument.
EXECUTE <Kommando>  CLI-Kommando ausführen

FIND <Zeichenkette> Suchbegriff definieren und einmal suchen. Die Zei-
             chenkette muß in Klammern gesetzt werden, wenn Leerzeichen
             vorhanden sind. Klammerzeichen werden durch `' geklam-
             mert:   FIND (. Kla)
                     FIND `(. Kla)'
            (das <'> erreiche ich durch <Alt-ä>)

FINDR <Zeichenkette1> <Zeichenkette2>
                    Such- und Ersetzbegriff definieren und einmal Suchen
                    und Ersetzen,
FINDSTR <Zeichenkette>  nur den Suchbegriff definieren
FIRST       Sprung zu Zeile 1
FIRSTNB     Cursor zum ersten Nicht-Leerzeichen in der Zeile bewegen
GOTO BLOCK  Cursor zum Blockanfang bewegen (falls Block markiert ist)
GOTO START  = goto block
GOTO END    Cursor ans Blockende
GOTO [+/-]<Zahl>    Cursor zu Zeile <Zahl>, absolut; oder auch [+/-]
                    relativ zur aktuellen Position
HEIGHT <Zahl>   Höhe in Pixels für weitere neue Dme-Fenster
ICONIFY     aktuelles Fenster "schlafenlegen" - Fenster wird klein

IF <Bedingung> <Argument> auch WHILE, IFELSE
            funktioniert wie in Basic, dh. wenn <Bedingung> erfüllt,
            dann <Argument> ausführen. Es gibt kein ENDIF, sondern die
            auf IF folgenden Wörter werden automatisch als Bedingung,
            bzw. Argument interpretiert. Durch Klammerung können auch
            mehrere Begriffe zusammengefasst werden. Es lassen sich
            sogar mehrere IF's schachteln (aber nicht mehrere WHILE's).
            WHILE läuft solange, wie die <Bedingung> wahr ist, also
            Vorsicht (notfalls läßt sich dies durch <Ctrl-c>
            terminieren, - oder mit <Ctrl-Amiga-Amiga>).

    Und hier ist eine Liste der möglichen Bedingungen:
        #       = irgendeine Zahl zwischen 0...255 als Umschalter
                0 bis 9 sollten allerdings bei Experimenten nicht be-
                nutzt werden, da diese in der .edrc-Datei verwendet sind
                (vgl. <.edrc.doc>)
        t       Cursor ist in Zeile 1
        b       Cursor ist in der letzten Zeile
        l       Cursor ist in Reihe 1
        r       Cursor ist am Zeilenende hinter dem letzten Zeichen
        m       editierter Text wurde verändert
        i       Insert-Modus ist an
        x[<=>]# Cursor ist in Reihe #, oder davor oder dahinter oder
                beides
        y[<=>]# Cursor ist in Zeile #, oder <, <=, >, >= ...
        cl      Zeichen an Cursorposition ist Kleinbuchstabe
        cu                                    Großbuchstabe
        ca                                    Buchstabe
        cn                                    Zahl
        c[<=>]#                           hat ASCII-Dezimal-Wert #
        cb      Cursor sitzt in einem Block
        !       Inverter für jede andere Bedingung (nicht-...)

    Beispiele:  (viel mehr Beispiele sind in <.edrc.doc>)

        Insert-Modus-Umschalter mit Alt-i
MAP a-i (IFELSE 10 (TOGGLE 10 INSERTMODE OFF) (TOGGLE 10 INSERTMODE ON))

        Solange Cursor auf Kleinbuchstabe steht, wird der Buchstabe zum
        Großbuchstaben umgewandelt und der Cursor rückt eins nach rechts
    MAP c-U (WHILE cl (TLATE -32 RIGHT))

IFELSE <Bedingung> <Argument1> <Argument2>
            wie IF, <Argument2> wird dann ausgeführt, wenn <Bedingung>
            unwahr ist.
WHILE <Bedingung> <Argument>    Solange Bedingung WAHR, Argument ausfüh-
                                ren.
        Kann nicht verschachtelt werden. Führt leicht zu Endlosschleife,
        die notfalls mit c-c abgebrochen werden kann

IGNORECASE <Argument>   Groß- Kleinschreibung bei Suchoperationen be-
        rücksichtigen oder nicht. <Argument> kann eines der folgenden
        sein:  on, off, toggle. Das letztere ist ein Umschalter.
INSERTMODE <Argument>   Einfügemodus an/aus. Im Insert-Modus wird jedes
            neu geschriebene Zeichen in die eventuell schon bestehende
            Reihe eingefügt.
            Im Overwrite- (=Überschreib-)Modus wird nur überschrieben.
            Dieser Modus ist in der Titelzeile mit "ovr" gekennzeichnet.
            <Argument>: on, off, toggle.
INSFILE <Name>  eine Datei mit Namen in bestehenden Text einfügen.
INSLINE     Leerzeile in die Zeile über dem Cursor einfügen
JOIN        Zeile unter Cursorzeile an diese anhängen
LAST        Cursor ans Ende der Zeile
LEFT        Cursor eins nach links

LEFTEDGE <n>    linken Fensterrand in <n> Pixel für neues Fenster
TOPEDGE  <n>    Oberkante des neuen Fensters
WIDTH    <n>    Fensterbreite

MAP <key> <map>   Definiert eine Tastenbelegung. Unter <key> ist eine
            der folgenden Tastenkombinationen zu verstehen:

    Index-Tasten:                               Beispiele:
        a       Alt                             a-w, ac-?, a-f9, a-lmb
        A       Amiga                           A-1, aA-t, A-f10
        L       Maus links                      L-i, L-<, aL-rmb
        M       Maus Mitte                      M-v, M-mmo
        R       Maus rechts                     R-F2, R-mmo, R-lmb
        s       Shift                           s-q (=Q), as-nk8, aAs-F4

    normale:
        bs      Backspace                       bs, a-bs, L-bs
        del     Löschtaste                      del, A-del
        down    Pfeil-nach-unten                down, a-down, aAcLs-down
        enter   Enter                           enter, a-enter, Ac-enter
        left    Pfeil-nach-links                left, cL-left
        lmb     linker Mausbutton               lmb, c-lmb
        mmb     mittlerer Mausbutton            mmb, LR-mmb
        mmo     Maus_wird_bewegt                    mmo, L-mmo, a-mmo
        nk      numeric keypad (Nummer-Tastatur)    nk5, nk., nk[, a-nk7
        right   Pfeil-nach-rechts                   right, A-right
        rmb     rechter Mausbutton              rmb, L-rmb, acs-rmb
        space   Leertaste                       space, s-space
        tab     Tabulator                       tab, s-tab, L-tab
        up      Pfeil-nach-oben                 up, LR-up

    Alle anderen Tasten haben die Bezeichnung, die jeweils drauffsteht.
    Wie die Beispiele zeigen, werden zuerst eine oder mehr Index-Tasten
    be- zeichnet, sodann ein Bindestrich und schließlich GENAU eine
    Taste.

            Mit <map> wird dann die eigentliche Belegung definiert,
            das sind die Kommandos, die auf Tastendruck ausgeführt
            werden sollen. Wenn mehr als ein Kommando oder auch Leer-
            dort stehen, so müssen Klammern gesetzt werden, alternativ
            auch ``''. Beispiele sind in der (kommentierten) .edrc-
            Datei zu finden. Die Kommandos müssen alle in einer Zeile
            stehen, diese kann aber 256 Zeichen lang sein und es
            dürfen auch - vorher schon definierte - Makros verwendet
            werden.
            Wird ein Ausdruck in Doppelklammern gesetzt, so wird dieser
            nicht als Kommando, sondern nur als Wortfolge, die dann
            geschrieben wird.

            Beispiel:
    MAP s-nk0 (first insline down (Sehr geehrte Damen und Herren))
            schreibt "Sehr geehrte Damen und Herren" in eine neue Zeile
UNMAP <key> Tastenbelegung löschen

MARGIN <n>  Zeilenlänge einstellen, wenn "WORDWRAP on"
REFORMAT    Absatz gemäß eingestellter Zeilenlänge (MARGIN) formatieren
WORDWRAP (on/off/toggle)    Zeilenbegrenzung wird an/aus/um-geschaltet

MENUADD <Überschrift> <Menüpunkt> <Argument>
            Menüpunkt definieren (siehe <.edrc.doc>), das <Argument>
            kann wie bei MAP definiert sein.
MENUDEL <Überschrift> <Menüpunkt> <Argument>    Menüpunkt löschen
MENUDELHDR <Überschrift>    Menü-Überschrift löschen
MENUCLEAR   das ganze Menü löschen
MENUON      Menü aktivieren (Mehrfach-Aufrufe werden gespeichert)
MENUOFF     Menü desaktivieren (Mehrfach-Aufrufe werden gespeichert)
NEWFILE <Name>  aktuellen Text durch neuen ersetzen
NEWWINDOW   neues Dme-Fenster öffnen
NEXT        nächste Position der zuvor definierten Zeichenkette finden
NEXTR       nächste Position finden und ersetzen
PAGEDOWN    Cursor und Text einen Teil der Seite nach unten (wieviel
            wird in PAGESET definiert)
PAGESET <n>     in Prozent (0 bis 100) relativ zur aktuellen Zeilenzahl.
            Beim Start sind es 75 %
PAGEUP      Dasselbe nach oben
PING <n>    Textmarkierung setzen (0 - 9)
PONG <n>    zur vorher markierten Position springen (0 - 9)
PREV        vorherige Position der Zeichenkette finden(über Cursorzeile)
PREVR       vorherige Position finden und Zeichenkette ersetzen
PUSHMARK    derzeitige Blockmarkierung speichern und Markierung dann
            aufheben. Im Gegensatz zur Beschreibung in der Original-
            dokumentation wird nicht der Block selbst auf dem Stapel
            gespeichert, sondern nur dessen Markierung.
POPMARK     gespeicherte Blockmarkierung aktivieren
SWAPMARK    PUSHMARK, die oberen beiden Stapel-Einträge austauschen,
            dann POPMARK
PURGEMARK   Stapelspeicher für Blockmarkierungen löschen
QUIT        Editor oder Fenster verlassen
RECALL      das letzte in Kommandozeile eingegebene Makro wiederholen
REF         das Wort an Cursorposition wird als Suchbegriff für eine
            näher zu definierende Referenzdatei interpretiert. Auf
            diese Weise funktionieren beispielsweise die HELP-Menüs.
            Aber mehr möchte ich dazu nicht erklären, die genaue Er-
            läuterung ist in der Originaldokumentation zu finden.
REMEOL      Textzeile an Cursorposition und rechts davon löschen
REPEAT <n> <Argument>   Argument n-mal ausführen. <n> kann auch eins
            der folgenden Dinge sein:

        line    fängt bei 1 an bis zur aktuellen Zeilenposition
        lbot    Zahl der Zeilen von Cursor bis Dateiende
        cleft   Spaltenzahl links vom Cursor
        cright              rechts vom Cursor, einschließlich ihm
        tr      Zeichenzahl bis zum nächsten Tabulator rechts
        tl      Zeichenzahl bis zum nächsten Tabulator links

        Verschiedene Operationen wie FIND[R], NEXT[R], UP, DOWN usw..
        können eine Wiederholschleife vorzeitig beenden, wenn sie
        an ihre Grenzen kommen.

        n=-1 führt zur Endlosschleife (naja, 0xFFFFFFFF mal, aber das
        dauert ... ein Tip: wenn die Kaffeepause vorbei ist, und es
        ist immer noch nicht fertig: c-c führt zum Abbruch, hoffentlich)
RESETTOGGLE <n>     Umschalter auf AUS (irgendeine Zahl zw. 0...255).
        Wird zum Beispiel von IF verwendet. 0 bis 9 sollten nicht aus-
        probiert werden, da sie in meiner .edrc-Datei wichtige Markier-
        funktionen erfüllen
SETTOGGLE <n>       Umschalter auf AN (irgendeine Zahl zw. 0...255).
        Wird zum Beispiel von IF verwendet. 0 bis 9 wie oben
TOGGLE <n>      Umschalter umschalten: AN->AUS oder AUS->AN. 0...255
RESIZE <Spalten> <Zeilen>   Größe des aktuellen Fensters ändern. Ein-
        facher geht's mit der Maus
RETURN  = (FIRST DOWNADD)
RIGHT   Cursor eins nach rechts
RX <Name>   ARexx-Makro, ohne Argumente
RX1 <Name> <Argument1>      ARexx-Makro mit einem Argument
RX2 <Name> <Arg1> <Arg2>    ARexx-Makro, zwei Argumente
SAVEAS <Name>   aktuellen Text unter neuem Namen speichern (dabei ändert
        sich der Name in der Titelzeile nicht)
SAVEOLD     aktuellen Text unter oben angezeigtem Namen speichern (wenn
        dort df0:... steht, speichert Dme ins df0: , egal, ob da jetzt
        eine andere Diskette liegt. Das ist praktisch für Backup-Kopien.
SAVESMAP <Name>     sämtliche Tastaturbelegungen speichern
SAVETABS on/off     Text mit oder ohne Tabulatoren speichern
SCANF <Kontrollzeichen>     soll dem C-Befehl scanf entsprechen, merkt
        sich die Zeichenkette an Cursorposition. Das funktioniert aber
        nur sehr unzureichend. Immer dann, wenn ich hätte gebrauchen
        (speziell in längeren Kommandokombinationen) lief es einfach
        nicht. Mehr dazu in der Originaldokumentation.
SCREENBOTTOM    Cursor ans untere Ende des Fensters
SCREENTOP              ans obere Ende
SCROLLUP    Cursor bleibt und Fenster bewegt sich eine Zeile nach oben
SCROLLDOWN                oder nach unten
SETFONT <Font> <Größe>  neuen Zeichensatz im Fenster definieren. Zum
        Beispiel:   SETFONT topaz.font 11
        Geht auf den ersten Blick großartig, sofern der richtige Font
        vorhanden ist. Aber dann hapert's mit der Bildschirmverwaltung.
SOURCE <Name>       die Textdatei <Name> wird als Quelldatei (ähnlich
        <.edrc>) für den Dme interpretiert. So lassen sich spezielle
        Makrobelegungen aktivieren, umschalten oder verändern. Dann
        könnte sich Dme zB. erst auf C, dann auf Modula und schließlich
        auf Finanzamtformular spezialisieren (wer das geschafft hat,
        bitte eine Kopie der Datei an mich)
SPLIT   Zeile an Cursorposition teilen
TAB     zur nächsten Tabulatormarkierung nach rechts
TABSTOP <n>     Tabulatorabstand definieren (Default: 8).

TLATE (+/-)<n>  ASCII-Wert des Zeichens unter dem Cursor um n erhöhen
        (+) oder vermindern (-). Wenn kein +/- verwendet, dann wird der
        ASCII- Wert = n

TOMOUSE     Cursor wird zur Mausposition bewegt
WLEFT   Cursor zum Anfang des vorhergehenden Worts. Steht der Cursor in
        Wortmitte, so springt er zum Anfang des Wortes
WRIGHT  Cursor zum Anfang des nächsten Worts




