%format latexg %!!! DURCH DOPPELKLICK �FFNEN UND SCHLIESSEN SICH DIE FALTEN!!!
%  Hinweis: Das Inhaltsverzeichnis ist erst nach dem 2. TeX-Lauf korrekt !
\documentstyle[12pt,din_a4,twoside,german]{article}
% Keine Einr�ckung bei Abs�tzen, daf�r etwas mehr Abstand
\parskip 5pt plus 2pt minus 2pt \parindent 0pt
% Jetzt kommt eine �nderung f�r die Kopfzeile, die eigentlich
% durch ein Style-File vorgenommen werden sollte.
% Das w�re aber in diesem Spezialfall ziemlich anwenderunfreundlich ...
% ulheadings -> underlined headings
\catcode`\@=11
\if@twoside
 \def\ps@ulheadings{\let\@mkboth\markboth
  \def\@oddfoot{}\def\@evenfoot{}%       No feet.
  \def\@evenhead{\vbox{\hbox to \textwidth{\small\sf\thepage\hfil\leftmark}%
                      \vskip 3pt \hrule}}%
  \def\@oddhead{\vbox{\hbox to \textwidth{\small\sf\rightmark\hfil\thepage}%
                      \vskip 3pt \hrule}}%
  \def\sectionmark##1{\markboth {\uppercase{\ifnum \c@secnumdepth >\z@
    \thesection\hskip 1em\relax \fi ##1}}{}}%
  \def\subsectionmark##1{\markright {\ifnum \c@secnumdepth >\@ne
          \thesubsection\hskip 1em\relax \fi ##1}}}
\else
 \def\ps@ulheadings{\let\@mkboth\markboth
  \def\@oddfoot{}\def\@evenfoot{}%     No feet.
  \def\@oddhead{\vbox{\hbox to \textwidth{\small\sf\rightmark\hfil\thepage}%
                      \vskip 3pt \hrule}}%
  \def\sectionmark##1{\markright {\uppercase{\ifnum \c@secnumdepth >\z@
    \thesection\hskip 1em\relax \fi ##1}}}}
\fi
\catcode`\@=12
\headheight 13.5pt

\pagestyle{ulheadings}

\begin{document}
%%%%%%%%%%%%%%%%% Titelseite %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\thispagestyle{empty}
\setcounter{page}{0}
\begin{center}
    {\sf ATARI~ST~~~ATARI~TT~~~ATARI~Falcon} \\[3.5cm]
    {\Huge\bf xEDIT}                         \\[3cm]
    Handbuch zur Version 2.00                \\[2cm]
    Alexander Gr�pl                          \\
    Pilgerstra�e 10                          \\
    D-6710 Frankenthal(Pfalz)                \\[0.3cm]
    Tel. 06233/65225                         \\[0.7cm]
    Mai/Juni 1993
\end{center}
%%%%%%%%%%%% Inhaltsverzeichnis %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\newpage
\tableofcontents
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\newpage
\section{Einleitung}
\begin{flushright}
{\it \dots{} und was bekomm' ich, wenn er wieder Bomben macht?}\\
{\small Britta}
\end{flushright}
\bigskip
xEDIT ist ein relativ kleiner und einfach zu bedienender Editor, der
urspr�nglich als reiner Quelltext-Editor konzipiert war. Die Entwicklung
begann ganz bescheiden etwa 1989, da ich damals einen vor allem {\em
kleinen\/} Editor brauchte (ich hatte damals noch keine Festplatte),
und f�r meine Zwecke die mir damals bekannten Editoren zu unpraktisch
waren. Au�erdem reizte mich nat�rlich das Thema, da ich in dieser
Richtung noch nichts programmiert hatte.

Seit das Programm die Gr��e von ca.{} 7~KB hatte, ersetzte es meinen
damaligen Editor, und alle folgenden Versionen von
xEDIT\footnote{Diesen Namen hatte das Programm damals nat�rlich noch
nicht.} wurden danach nur noch mit ihm selbst weiterentwi"ckelt.
Eigentlich hatte ich mir fest vorgenommen, bei 10~KB Programml�nge
aufzuh�ren, aber wie es so oft ist, ich konnte die Finger nicht mehr
davon lassen. Schlie�lich bekam ihn ein Freund in die H�nde --- er
wollte eigentlich nur wissen, was ich da die ganze Zeit so mache ---
und war sofort begeistert: Vor allem die M�glichkeit, den ganzen
Desktop-Hintergrund f�r die Darstellung von Text auszunutzen und die
kleinen Zeichens�tze waren auch f�r ihn wichtiger als manche
"`Bonbons"', die sein damaliger Editor (�brigens ein kommerzielles
Produkt) zus�tzlich anbot. So reifte der Entschlu�, das Programm als
PD-Software zu ver�ffentlichen.

Bis es endlich soweit war, war es aber noch ein langer Weg \dots

\bigskip

Inzwischen ist einige Zeit vergangen, xEDIT ist nun in jeder Hinsicht
ein "`sauberes"' GEM-Programm geworden und hat nun eine Programml�nge
von ca.{} 55~KB --- das ist f�r seine Leistungsf�higkeit aber immer
noch ausgesprochen wenig. xEDIT ist inzwischen Shareware, da ich auch
heute noch sehr viel Zeit und Energie in die Weiterentwicklung stecke.
Es sind aber bisher vor allem die ermutigenden Briefe der Anwender
gewesen, die mich das Projekt haben nicht aufgeben lassen, finanziell
gesehen ist der Editor bisher ein totaler Reinfall. Es d�rfte
hoffentlich klar sein, da� das nicht ewig so weitergehen kann.

\subsection{Zielsetzung}
Wie schon aus dem vorhin gesagten zu vermuten ist, wendet sich xEDIT
weniger an Leute, die nur gelegentlich mal einen Editor ben�tigen,
sondern an alle, die h�ufig und intensiv mit einem Editor arbeiten.
Daher war mir Funktionalit�t, Flexibilit�t und Schnelligkeit wichtiger
als GEM-Konformit�t (das mu� aber auch kein Widerspruch sein). Das
Erscheinungsbild des Editors hat sich vor allem auch durch meine
privaten Anforderungen entwickelt. Funktionen, die ich selbst nicht
vermisse, habe ich nicht, oder nur, wenn Anwender einen wichtigen Grund
daf�r hatten, eingebaut.

\pagebreak

Funktionalit�t hoffe ich erreicht zu haben, indem xEDIT
\begin{itemize}
  \item mit allen mir bekannten Shells zusammenarbeitet, zumindest was
    die Auswertung der Commandline betrifft.
  \item der Shell �ber einen einstellbaren Returncode mitteilen kann,
    was nach seinem Verlassen mit den �bergebenen Texten geschehen soll.
  \item die M�glichkeit bietet, durch die Verwendung von kleineren
    Zeichens�tzen und der Ausnutzung des ganzen Desktop-Hintergrunds
    mehr Text als �blich darzustellen, um so vor allem bei Quelltexten
    eine bessere �bersicht zu haben.
  \item die M�glichkeit bietet, Texte zu falten. Auf dieses einzigartige
    Feature komme ich sp�ter noch zu sprechen.
  \item durch die Verwendung der Faltinfo-Dateien beim erneuten Laden
    eines Textes an die Stelle springen kann, an der das Edieren
    beendet wurde. Als Ged�chtnisst�tze hat sich das als sehr praktisch
    erwiesen.
\end{itemize}

\bigskip

Flexibilit�t hoffe ich erreicht zu haben, indem xEDIT
\begin{itemize}
  \item durch die Verwendung von speziellen Ressource-Dateien
    ausgesprochen vielf�ltig angepa�t werden kann. Die RSC-Dateien
    enthalten
    \begin{itemize}
      \item einen Zeichensatz in drei unterschiedlichen Gr��en.
        Z.\,Z. sind folgende Zeichens�tze verf�gbar:
        \begin{itemize}
          \item IBM-Zeichensatz, wie er auch von den meisten
            Dru"cker benutzt wird (in \verb|XEDIT.RSC|).
          \item {\sf ATARI}-Systemzeichensatz (in
            \verb|XED_SYST.RSC|).
          \item \TeX-Zeichensatz (in \verb|XED_TEX.RSC|).
        \end{itemize}
      \item die Tastaturbelegung, die au�ergew�hnlich flexibel ist. Es
        l��t sich grund"-s�tz"-lich jede beliebige
        Tastaturfunktion, sei sie ein Menushortcut, eine elemementare
        Grundfunktion oder auch nur eine ganz normale Taste,
        umdefinieren, so da� es prinzipiell sogar m�glich ist, beim
        Dr�cken von {\tt A} ein {\tt O} auszugeben. Nat�rlich gibt es die
        M�glichkeit, auch Makros auf eine Taste zu legen, wobei in einem
        Makro wiederum alles untergebracht werden kann, was sich durch
        Tastendruck erreichen l��t. Wenn Sie wollen, k�nnen Sie also auch
        einen ganzen Brief auf eine Taste, z.\,B. {\sf F1}, legen.
      \item eine Kopie der Menu-Eintr�ge und des Hilfe-Dialogs,
        damit Ihre pers�nliche Tastaturbelegung auch dort
        erscheint.
      \item K�rzel: Sie tippen also \verb|mfg|, dr�cken eine
        spezielle Taste, und schon steht \verb|Mit freundlichem Gru�|
        da. In der \TeX-RSC-Datei sind etwa 260 K�rzel vorgegeben!
      \item eine Tabelle zur Umwandlung von Gro�- in Kleinbuchstaben und
        umgekehrt, weil es bei den Sonderzeichen (ASCII ab 128) h�ufig
        Unterschiede gibt.
      \item eine einfache Druckeranpassung, mit der sich aber
        durchaus auch ganz raf"-fi"-nierte Sachen machen lassen.
      \item drei Breitentabellen f�r g�ngige
        Proportionalschriften, falls Sie mit xEDIT auch mal
        formatiert drucken wollen.
      \item einige Voreinstellungen, die Sie beim Start von xEDIT vorfinden
        m�chten.
    \end{itemize}
  \item zwei verschiedene Texteingabe-Modi unterst�tzt, den
    Quelltext- und den Dokumentmodus.
  \item mit zwei Sorten von markierten Bl�cken arbeitet, den Zeilen-
    und den Zei"-chen"-bl�"cken. Das liegt vor allem am Folding, hat sich
    aber in der Praxis auch ansonsten gut bew�hrt.
  \item alle ASCII-Zeichen leicht verf�gbar macht (dr�cken Sie mal die
    rechte Maustaste!).
  \item m.\,E. nat�rlich auf"-l�sungs- und
    betriebssystemversionsunabh�ngig arbeitet.
\end{itemize}

Zur leichten und bequemen Erstellung und Modifizierung der RSC-Dateien
ist das Installationsprogramm \verb|XED_INST.PRG| beigef�gt. Starten
Sie es doch einmal und schauen sich an, was sich alles damit
anstellen l��t --- Sie werden verbl�fft sein!

�brigens hat die Aufteilung des Editors in ein Installationsprogramm
und den eigentlichen Editor einige Vorteile:
\begin{itemize}
  \item Der Editor bleibt klein (z.\,Z. ca.{} 55~KB), da er viele Sachen
    "`vorverdaut"' in seiner RSC-Datei vorfindet.
  \item Der Editor bleibt �bersichtlich. W�re das Installationsprogramm
    integriert worden, w�ren 35(!) Dialoge mehr vorhanden.
  \item Beim Installationsprogramm mu� nicht mit Platz gegeizt werden, da
    es im allgemeinen nur recht selten eingesetzt wird; Ladezeit und
    Speicherbedarf spielen daher keine gro�e Rolle. Ich habe das
    ausgenutzt und eine Vielzahl von erkl�renden Hilfs"-tex"-ten darin
    untergebracht, die bei anderen Projekten wohl eher ins Handbuch
    gekommen w�ren. Auch das erkl�rt die beachtliche L�nge des
    Installationsprogramms --- es ist mehr als doppelt so lang wie der
    eigentliche Editor!
\end{itemize}

\bigskip

Schnelligkeit wurde vor allem durch die sorgf�ltige Programmierung
erzielt; da� ich hierbei mit einem Assembler gearbeitet habe, ist
zweitrangig und hat in erster Linie zu einem sehr kompakten Code
gef�hrt. Inzwischen bereue ich diesen Schritt, da heutzutage die
Programml�nge keine so wichtige Bedeutung mehr hat, und das
Programmieren in Assembler sehr anstrengend werden kann.

\bigskip

\pagebreak
%\dots{} aber auch das mu� gesagt werden:

GEM-Puristen m�gen mir bitte verzeihen, da� ich
\begin{itemize}
  \item eigene Zeichens�tze benutze und nicht auf GDOS zur�ckgreife.
    Das hat einerseits geschichtliche Gr�nde, andererseits hat es sich
    vor allem bei der Arbeit mit \TeX{} als ausgesprochen sinnvoll
    erwiesen.
  \item f�r die Ressource-Dateien den Extender \verb|.RSC| verwende,
    auch wenn sie keine Standard-RSC-Dateien sind. Erstens ist der
    Umgang mit ihnen ganz analog (wichtig f�r Neulinge), zweitens gibt
    es keinen Grund, mit einem RCS auf sie zuzugreifen (nur dann gibt es
    Probleme), und drittens sind es ja auch tats�chlich die von xEDIT
    ben�tigten Ressourcen. Kennt jemand einen besseren Namen daf�r?
  \item viele Einstellungen im Menu und nicht in Dialogboxen
    untergebracht habe, aber man erreicht sie auf diese Weise
    schneller. Au�erdem gibt es da ja auch noch die Tastaturmakros \dots
  \item nur ein einziges Fenster f�r alle Texte einsetze, aber solange
    man kein stolzer Besitzer eines Gro�monitors ist, finde ich diese
    Methode wesentlich �bersichtlicher.
  \item MultiTOS nicht {\em aktiv\/} unterst�tze, aber ich habe
    augenblicklich keins, und au�erdem d�rfte es meinen 260ST zu sehr
    ausbremsen. Aber mal abwarten \dots
  \item beim eigentlichen Editor die Dialoge nicht in Fenstern
    untergebracht habe, denn das w�re einer Neuprogrammierung von xEDIT
    gleichgekommen. Au�erdem gibt es meiner Meinung nach Wichtigeres \dots
\end{itemize}


\subsection{Texte falten --- was ist das?}
Nun ja, vielleicht geht es Ihnen ja wie mir: Man schreibt ein
Programm, der Quelltext wird l�nger und l�nger, und man beginnt,
das Programm in Module und Include-Files aufzusplitten, um den
�berblick nicht v�llig zu verlieren. Aber, Sie kennen das sicherlich
genauso wie ich, sobald eine gewisse Komplexit�t erreicht ist,
ver(sch)wendet man mehr Zeit darauf, in diversen Texten hin-
und herzuscrollen, statt sich auf die eigentlichen Probleme zu
konzentrieren. Hier beginnen sich Falten als n�tzlich zu erweisen. Sie
k�nnen Textabschnitte in einer Falte wegklappen, und es erscheint nur
noch die erste Zeile als so eine Art �berschrift. Auf diese Weise wird
die �bersichtlichkeit dramatisch gesteigert.

�brigens bleibt Ihr eigentlicher Text reinster ASCII-Code, da die
Information, wie der Text gefaltet wurde, in einer zweiten Datei
gesichert wird; es sollte daher auch keinerlei Schwierigkeiten mit
weiterverarbeitenden Programmen geben.

Die Faltinfo-Dateien sind in der Regel ausgesprochen kurz und k�nnen,
wenn Sie wollen, auch das Datei-Attribut "`hidden"' bekommen, so da�
sie nicht mehr auf dem Desktop oder in der Fileselectbox auftauchen.
Allerdings m�ssen Sie sie dann erst sichtbar machen,\footnote{Siehe
"`\glq Tips und Tricks\grq, die erste \dots"'} falls Sie sie kopieren
wollen.

Um es nochmals klar auszusprechen und Mi�verst�ndnisse auszuschlie�en:
Die M�glichkeit, Texte zu falten, hat keinerlei Einflu� auf den
eigentlichen Text, sondern ist im wesentlichen nur eine Erleichterung
beim Lesen der Texte am Monitor, sonst nichts. xEDIT �berpr�ft
weder, ob die Art und Weise, wie der Text gefaltet wurde, logisch
korrekt ist (macht also {\em keinen\/} Syntax-Check), noch k�mmert er
sich darum, ob gerade eine Falte auf- oder zugeklappt ist, wenn er
z.\,B. nach W�rtern sucht.

Leider mu� nun aber noch etwas anderes gesagt werden: Dadurch, da� die
Falt-In"-for"-ma"-tion ausgelagert wurde, mu� nat�rlich gew�hrleistet sein,
da� sie noch zur Hauptdatei pa�t. Deswegen enthalten die
Faltinfo-Dateien den Namen der Hauptdatei, ihre genaue L�nge und die
Zeilenzahl. Sollte auch nur eine Angabe davon nicht �bereinstimmen,
wird die Faltinfo-Datei f�r ung�ltig erkl�rt. Im Klartext hei�t das,
da� Sie Ihre Texte nicht mit einem anderen Editor �berarbeiten k�nnen,
ohne da� die Faltinfo-Datei ung�ltig wird.\footnote{Aber ich arbeite
daran, da� Sie keinen anderen Editor mehr ben�tigen {\tt ;-)}}
�berlegen Sie sich in einem solchen Fall, ob Sie das eventuell mit
"`Block sichern/laden"' vermeiden k�nnen, oder falten Sie Ihre Texte
so sparsam, da� das Wiedereinrichten der Falten-Struktur nicht zur
Qu�lerei wird.

\subsection{Benutzungshinweise f�r dieses Handbuch}
xEDIT ist ziemlich komplex und sicherlich werden die wenigsten
Anwender Lust haben, ein ausf�hrliches Handbuch durchzuarbeiten, wenn
sie viele Informationen f�r ihren Einsatzzweck �berhaupt nicht
ben�tigen. Deswegen habe ich das Handbuch grob in vier Teile
unterteilt:

Im Kapitel "`xEDIT als ASCII-Editor"' wird kurz erl�utert, was die
einzelnen Menu-Punkte bedeuten, und wie bestimmte Funktionen am
sinnvollsten einzusetzen sind. F�r viele Benutzer d�rfte diese
Information vollkommen ausreichend sein.

Im Kapitel "`xEDIT als offenes System"' wird erkl�rt, wie man sich
Anpassungen f�r seine individuelle Arbeitsumgebung schaffen kann.
Hierbei d�rfte sicherlich eine pers�nliche Tastaturbelegung das gr��te
Interesse erwecken, jedoch gibt es auch jede Menge anderer Sachen, die
sich anpassen lassen, so z.\,B. auch eine ganze Anzahl Voreinstellungen.
Nat�rlich werden auch einige interne Abl�ufe erkl�rt, damit Sie bei
eventuellen St�rungen deren Ursache einfacher auf den Grund gehen
k�nnen. �ber das f�r die Anpassung einzusetzende \verb|XED_INST.PRG|
wird nur recht wenig gesagt, da dieses Programm weitestgehend
selbsterkl�rend ist.

Im Kapitel "`Drucken mit xEDIT"' schlie�lich wird die Information
geliefert, wie man mit diesem Programm auch aufwendiger gestaltete
Texte zu Papier bringen kann. Dabei geht es dann z.\,B. �ber
Arbeitsweise von (Nadel)Druckern und auf einige raf"-fi"-nier"-te
M�glichkeiten, sie anzusteuern. Allerdings nehme ich an, da� diese
Fragen nur noch wenige Leser interessieren werden. Solange Sie mit xEDIT
keine Korrespondenz drucken wollen, k�nnen Sie dieses Kapitel getrost
�berspringen.

Interessanter wird es dann hoffentlich doch noch im Kapitel
"`Miszellaneen"', in dem ich alle Sachen untergebracht habe, die
ansonsten noch erw�hnenswert sind und sich schlecht in den anderen
Kapiteln unterbringen lie�en.

\newpage
\section{xEDIT als ASCII-Editor}
\subsection{Das Menu}
Bevor Sie mit der Arbeit beginnen, sollten Sie sich zuerst einmal
s�mtliche Eintr�ge des Menus anschauen. Wenn Sie davor schon einmal mit
einem anderen Editor gearbeitet haben, werden Ihnen sicherlich die
meisten Punkte bekannt vorkommen, trotzdem kann es sein, da� einige
davon anders implementiert sind, als Sie es gewohnt sind. Jedes
Programm hat seine eigene Philosophie der Benutzerf�hrung.
Harmlose Fehler werden  durch xEDIT z.\,B. nur durch ein "`Ping"'
signalisiert.

�brigens signalisieren die drei P�nktchen hinter einem Menueintrag,
da� bei dieser Funktion zuerst eine Fileselectbox aufgerufen wird.

\subsubsection{Das "`Datei"'-Menu}
Im "`Datei"'-Menu befinden sich die Funktionen, die direkt oder
indirekt zu Laufwerkszugriffen f�hren. Die "`Scrap"'-Funktionen
dienen zur Unterst�tzung des GEM-Klemm"-bretts, ich verweise
diesbez�glich zus�tzlich auf den Abschnitt "`Das Klemmbrett"'.

\begin{description}
  \item[Laden \dots:]
    Benutzen Sie zu Beginn Ihrer Arbeit diesen Menupunkt, um einen Text zu
    laden. Wollen Sie einen noch nicht vorhandenen Text edieren, tippen
    Sie einfach den gew�nschten Namen in das Feld der Fileselectbox, es
    taucht dann sp�ter eine Dialogbox mit "`Neue Datei?"'{} auf. xEDIT
    merkt sich das Laufwerk und den Ordner, aus dem der Text geladen
    wurde, und versucht, den Text sp�ter auch wieder an die diese Stelle
    zur�ckzuschreiben. Wenn Sie also die Diskette gewechselt haben, gibt
    es eine Fehlermeldung, wenn beim Sichern der richtige Ordner nicht
    gefunden werden konnte. Legen Sie dann die richtige Diskette ein, oder
    benutzen Sie die Funktion "`Sichern als \dots"'.
  \item[Sichern:]
    Wenn Sie diese Funktion aufrufen, wird der gerade aktivierte Text
    gesichert, ohne da� er aus dem Arbeitspeicher entfernt wird.
    Benutzen Sie diese Funktion, wenn Sie Ihren Text sicherheitshalber
    zwischendurch abspeichern wollen. Man kann leider nicht davon
    ausgehen, da� alle Programme (und selbst das Betriebssystem) immer
    zuverl�ssig funktionieren, und es nicht hin und wieder zu Abst�rzen
    kommt. Auch kann ja mal jemand �ber das Stromkabel stolpern, oder
    Sie l�schen versehentlich einen wichtigen Textabschnitt.
  \item[Sichern als \dots:]
    Benutzen Sie diese Funktion, wenn Sie Ihren Text unter einem anderen
    Namen oder in einem anderen Ordner sichern wollen. Der Text
    bleibt nach Aufruf dieser Funktion im Arbeitsspeicher erhalten.
    Es erfolgt eine Nachfrage, ob Sie den neu eingegeben Namen der
    Datei �bernehmen wollen.
  \item[Block laden \dots:]
    Die Funktion "`Block laden"' dient dazu, eine Datei als Block markiert
    in einen schon geladenen Text einzuf�gen. Eine eventuell vorhandene
    Faltinfo-Datei wird ber�cksichtigt, und der Block wird nach
    M�glichkeit auch als solcher mar"-kiert.\footnote{Falls die eingelesene Datei
    in ihrer ersten Zeile mit einer Falte beginnt und in der letzten Zeile
    nicht mit der selben Falte endet, ist kein "`legaler"' Block
    vorhanden, da er sich {\em so\/} in xEDIT nicht markieren lie�e.}
    Zeilen- und Zeichenbl�cke werden unterschiedlich behandelt, ich
    verweise diesbez�glich auf den Abschnitt "`Die Blockverwaltung"'.
  \item[Block sichern \dots:]
    Einen markierten Block k�nnen Sie mit dieser Funktion sichern.
    Beachten Sie aber, da� bei dieser Funktion keine Faltinfo-Datei
    erzeugt wird. Auch bei dieser Funktion wird zwischen Zeilen- und
    Zeichenbl�cken unterschieden.
  \item[Scrap importieren:]
    Durch diese Funktion wird ein Scrap\footnote{Scrap: {\it engl.{}}
    St�ckchen, (Zeitungs)Ausschnitt, Bild zum Einkleben \dots{}} vom
    Klemmbrett geladen. Sie funktioniert ganz analog zu "`Block laden"',
    nur da� keine Fileselectbox aufgerufen wird, da das Verzeichnis und
    der Dateiname schon feststeht (\verb|SCRAP.TXT|, in der Regel aus dem
    Ordner \verb|C:\CLIPBRD\|). Eine Faltinfo-Datei wird {\em nicht\/}
    ber�cksichtigt. Wie beim Klemmbrett �blich, erfolgt {\em keine\/}
    Nachfrage, ob diese Funktion wirklich erw�nscht ist. Da der Scrap
    allerdings als Block markiert wird, ist ein R�ckg�ngigmachen durch
    "`Block l�schen"' leicht m�glich.
  \item[Scrap exportieren:]
    Nat�rlich kann man auch einen Scrap exportieren. Falls {\em kein\/}
    Block markiert ist, wird angenommen, da� der aktivierte Text damit
    gemeint ist, ansonsten erfolgt eine Nachfrage; nur dann
    k�nnen Sie diese Funktion abbrechen! Auch bei dieser Funktion wird
    gegebenenfalls zwischen Zeilen- und Zeichenbl�cken unterschieden.
  \item[Scrap anh�ngen:]
    Diese Funktion arbeitet ganz analog wie "`Scrap exportieren"', nur
    da� der Scrap an eine eventuell schon vorhandene Datei
    \verb|SCRAP.TXT| angeh�ngt und diese nicht �berschrieben wird.
  \item[Verwerfen:]
    Durch diese Funktion wird der augenblicklich angezeigte Text
    verworfen, also aus dem Arbeitsspeicher entfernt, ohne ihn
    zu sichern. Sollten an ihm bereits �nderungen vorgenommen worden
    sein, so erscheint eine Warnmeldung.
  \item[Sichern \& verlassen:]
    Diese Funktion dient dazu, den aktuellen Text zu sichern (sofern
    er ver�ndert wurde) und den Editor mit Returncode~1 zu verlassen.
    Letzteres f�hrt dazu, da� der Compiler (falls er diese Option
    unterst�tzt) oder \TeX\ automatisch gestartet werden (den Returncode
    k�nnen Sie mit \verb|XED_INST.PRG| ab"-�n"-dern).
    Wenn au�er dem aktuellen Text auch noch andere Texte ver�ndert wurden,
    erscheint eine Warnmeldung, und Sie k�nnen bestimmen, was mit diesen
    Texten geschehen soll.
    \begin{description}
      \item[Sichern:] Alle ge�nderten Texte werden automatisch
        gesichert und der Editor mit Returncode~1 verlassen.
      \item[Verlassen:] Alle nicht ge�nderten Texte werden aus dem
        Arbeitsspeicher entfernt, und es taucht danach noch einmal eine
        Warnmeldung auf, ob Sie xEDIT wirklich verlassen wollen. Wenn Sie
        hier "`OK"' w�hlen, werden nun auch die ge�nderten Texte aus dem
        Arbeitsspeicher entfernt, und der Editor mit Returncode~1
        verlassen. Wenn Sie jedoch "`Abbruch"' w�hlen, k�nnen Sie an den
        ge�nderten Texten mit der Arbeit fortfahren.
    \end{description}
    �brigens empfiehlt es sich meist, vor Aufruf dieser Funktion noch
    einmal schnell ins "`Text"'-Menu zu schauen, um zu verhindern,
    da� {\em versehentlich\/} ge�nderte Files mit gesichert werden.
    Diese m�ssen Sie aktivieren und mit "`Verwerfen"' aus dem
    Arbeitsspeicher entfernen.

    Nichts ohne Ausnahme: Falls beim Aufruf dieser Funktion eine
    Shift- oder die Alternatetaste gedr�ckt wird, wird dem aufrufenden
    Programm ein "`alternativer Returncode"' �bergeben. Er ist
    standardm��ig auf "`0"' eingestellt, so da� der Compiler diesmal
    doch nicht gestartet wird.
  \item[xEDIT verlassen:]
    Durch diesen Menupunkt wird der Editor mit Returncode~0 verlassen,
    ein Compiler wird also nicht gestartet. Sollten sich noch Texte
    im Arbeitsspeicher befinden, an denen �nderungen vorgenommen wurden,
    die noch nicht abgespeichert wurden, gibt es eine Warnmeldung.
\end{description}

\subsubsection{Das "`Text"'-Menu}
Im "`Text"'-Menu erscheinen die Namen der augenblicklich geladenen
Texte. Der gerade aktivierte Text ist durch ein H�kchen kenntlich
gemacht. Wollen Sie auf einen anderen Text umschalten, klicken Sie
einfach den Menueintrag an oder dr�cken solange die ESC-Taste, bis der
gew�nschte Text aktiviert ist. An der Tilde vor dem Dateinamen
erkennen Sie, da� am Text Ver�nderungen vorgenommen wurden, die noch
nicht gesichert wurden.

\subsubsection{Das "`Marken"'-Menu}

\begin{description}
  \item[Setze Marke n:]
    Bei l�ngeren Texten ist es sinnvoll, sich an den Textstellen, zwischen
    denen h�ufig gewechselt wird, eine unsichtbare Marke zu setzen. Seit
    xEDIT-Version 2.00 wird nicht nur die entsprechende Zeile, sondern
    auch die Spalte ber�cksichtigt, so da� Sie die Marke auch an ein
    bestimmtes Wort "`kleben"' k�nnen (k�nnte f�r Tastatur-Makros
    interessant sein).

    Auch f�r die "`Suchen"'-Funktion kann eine Marke g�nstig eingesetzt
    werden, da Sie so den Ausgangspunkt der Suche leicht wiederfinden
    k�nnen.

    �brigens wird der Anfang der Zeile, in der sich die Marke befindet, im
    Menu eingetragen, so da� Sie auch nach l�ngerer Zeit nicht den
    �berblick �ber Ihre Marken verlieren. Sie k�nnen dieses Verhalten aber
    auch via \verb|XED_INST.PRG| abstellen.
  \item[Gehe zu Marke n:]
    Benutzen Sie diese Funktion, um an die Textstelle zu gelangen, an der
    Sie eine Marke definiert haben. Falten werden selbstverst�ndlich
    solange ge�ffnet, bis die entsprechende Textstelle sichtbar wird.
    Beachten Sie auch, da� sich die Marken in unterschiedlichen Dateien
    befinden k�nnen, Sie k�nnen also beliebig umherspringen.
\end{description}

\subsubsection{Das "`Block"'-Menu}
Auch wenn Sie schon mit anderen GEM-Editoren gearbeitet haben, wird
Ihnen das "`Block"'-Menu von xEDIT sicherlich nicht auf Anhieb klar
sein. Das f�ngt wohl damit an, da� zwei Menueintr�ge vorhanden sind,
um den Blockanfang zu markieren, und endet nicht damit, da� die
Punkte "`Ausschneiden"' und "`Einf�gen"' fehlen.

Der Grund: xEDIT arbeitet mit den inzwischen etwas aus der Mode
gekommenen "`nicht-modalen"' Bl�cken, das hei�t, Sie k�nnen trotz
eines markierten Blocks wie gewohnt weiteredieren; Sie bekommen
keinen Modus aufgezwungen. Au�erdem wird kein spezieller
Zwischenpuffer f�r Bl�cke benutzt, sondern xEDIT merkt sich
schlicht und ergreifend nur die Anfangs- und Endmarke des Blocks.
Um die Verwirrung komplett zu machen, wird auch noch streng zwischen
Zeilen- und Zeichenbl�cken\footnote{Sp�ter kommen vielleicht sogar
noch Spaltenbl�cke hinzu.} unterschieden, die ein unterschiedliches
Verhalten an den Tag legen.
\begin{itemize}
  \item Zeilenbl�cke bestehen immer aus kompletten Zeilen. Das ist
    vor allem beim Programmieren praktisch, da die meisten
    Quelltexte stark zeilenorientiert sind.
  \item Zeichenbl�cke k�nnen innerhalb einer Zeile beginnen oder
    enden. Sie lassen sich im Gegensatz zu den Zeilenbl�cken nicht
    falten, formatiern oder drucken. Sie sind in erster Linie f�r
    Textverarbeiter n�tzlich, die einzelne W�rter oder S�tze
    als Block markiert haben wollen.
\end{itemize}
Ich hoffe, diese Kurzeinf�hrung gen�gt, um Ihnen das Menu vertraut
zu machen, f�r weiterf�hrende Informationen verweise ich auf den
Abschnitt "`Die Blockverwaltung"'.
\begin{description}
  \item[Definiere Startzeile:]
    Bedingt durch die M�glichkeit, Texte zu falten, kann ein Block in
    xEDIT nicht beliebig �ber Faltengrenzen hinweggehend markiert werden.
    Das ist auch der Grund daf�r, da� Sie keine Bl�cke bequem mit der
    Maus aufziehen k�nnen, zu oft w�re die Maus in "`illegalen"'
    Bereichen.

    Deswegen m�ssen Sie in xEDIT zuerst den Anfang des Blocks
    markieren,\footnote{bei Zeilenbl�cken brauchen Sie hierzu {\em
    nicht\/} an den Zeilenanfang zu gehen.} woraufhin der folgende Text
    optisch hervorgehoben wird. Ein "`legales"' Blockende k�nnen Sie
    danach nur in den Zeilen, deren linker Rand invertiert ist,
    definieren.
  \item[Definiere Startzeichen:]
    Durch diese Funktion definieren Sie das erste Zeichen eines
    "`Zeichenblocks"'. Ansonsten gilt das bei "`Definiere Startzeile"'
    gesagte.
  \item[Definiere Ende:]
    Mit dieser Funktion wird sowohl das Ende eines Zeilen- als auch
    das Ende eines Zeichenblocks markiert, Sie haben ja vorher schon
    bei der Definition des Anfangs festgelegt, um welche Sorte Block
    es sich handelt. Sie k�nnen das Blockende nur in Zeilen
    definieren, deren linker Rand invertiert ist.

    Falls Sie das Blockende {\em vor\/} dem Start eingeben, wird der
    Block damit aufgehoben.

    Erst, wenn auch das Blockende bekannt ist, l��t sich mit einem
    Block arbeiten, erst jetzt sind die entsprechenden Menueintr�ge
    aktiviert.

    Eine wichtige Besonderheit: Falls der Blockanfang auf einer
    {\em geschlossenen\/} Falte liegt, wird f�r das Blockende die
    letzte Zeile der Falte genommen. {\em Geschlossene\/} Falten
    lassen sich also mit zwei Tastendr�cken als Block markieren, ohne
    da� der Cursor bewegt werden mu�.
  \item[Aufheben:]
    Wenn Sie Blockmarkierungen wieder aufheben\footnote{Leider ist
    die deutsche Sprache manchmal etwas vieldeutig; "`Block
    aufheben"' hei�t {\em nicht\/}, da� der Block in irgendeiner Art
    Schublade f�r eine sp�tere Verwendung {\em aufgehoben\/} wird.
    Schon gar nicht ist er heruntergefallen und mu� nun {\em
    aufgehoben\/} werden.}
    wollen, benutzen Sie bitte diesen Menupunkt.
  \item[Kopieren:]
    Nachdem Sie einen Block markiert haben, wird er durch diesen Menupunkt
    an die Stelle, an der sich der Cursor befindet, kopiert. Beachten
    Sie den Unterschied zwischen Zeilen- und Zeichenbl�cken:
    \begin{description}
    \item[Zeilenblock:] Der Block wird an die Position der {\em
    Zeile\/} kopiert, in der sich der Cursor befindet.
    \item[Zeichenblock:] Der Block wird genau an die Cursorposition
    kopiert.
    \end{description}
    Der Block bleibt auch nach dieser Operation markiert, und
    selbstverst�ndlich k�nnen Sie einen Block auch in einen anderen
    Text kopieren.
  \item[Verschieben:]
    Wenn Sie einen Block verschieben oder in einen anderen Text verlagern
    wollen, benutzen Sie diese Funktion.\footnote{�brigens ist diese
    Funktion intern durch die Folge "`Kopieren"' und "`L�schen"'
    implementiert, Sie w�rden durch Benutzung dieser beiden Funktionen das
    gleiche Resultat erzielen, bis auf den Unterschied, da� bei
    "`Verschieben"' die Blockmarkierung erhalten bleibt.} Auch bei dieser
    Funktion wird wie bei "`Kopieren"' zwischen Zeilen- und Zeichenbl�cken
    unterschieden.
  \item[Rechts schieben:]
    Durch diese Funktion wird ein Block nach rechts geschoben, indem
    in jeder Zeile des Blocks ein Leerzeichen eingef�gt wird. Bei
    Zeilenbl�cken geschieht dies an den Zeilenanf�ngen, w�hrend bei
    Zeichenbl�cken die Spalte, an der der Block beginnt, benutzt wird.
    Letzteres kann z.\,B. n�tzlich sein, wenn Sie in einem Quelltext
    nur die Kommentare nach rechts schieben wollen.
  \item[Links schieben:]
    Auch bei dieser Funktion wird zwischen Zeilen- und Zeichenbl�cken
    unterschieden: Bei Zeilenbl�cken wird jeweils ein Leerzeichen am
    Zeilenanfang gel�scht, w�hrend bei Zeichenbl�cken die
    Blockanfangsspalte benutzt wird. Beachten Sie, da� nur Leerzeichen von
    dieser Funktion gel�scht werden, sie kann daher gut eingesetzt werden,
    wenn es darum geht, Einr�ckungen r�ckg�ngig zu machen.
  \item[Falten:]
    Endlich gefunden! Durch diese Funktion wird eine Falte erzeugt.
    Beachten Sie aber, da� sich nicht jeder markierbare Block auch falten
    l��t, da eine Falte aus mindestens zwei Zeile bestehen mu�, und es
    keine {\em doppelten\/} Faltmarken gibt; Anfangs- und Endzeile des
    Blocks d�rfen daher keine Faltengrenzen sein.
  \item[Formatieren:]
    Ein markierter Zeilenblock wird durch diese Funktion formatiert, das
    hei�t, da� nach der Beseitigung von mehrfachen Leerzeichen und
    "`weichen"'\footnote{Mit "`weich"' meint man, da� der Trennstrich bei
    einer neuen Formatierung gegebenenfalls wieder verschwindet.}
    Trennungen der Block neu umgebrochen wird. Ein Absatzende wird anhand
    einer Leerzeile erkannt. Als rechter Rand wird die Spalte benutzt, die
    auch ansonsten f�r den automatischen Umbruch eingesetzt wird (siehe
    Menupunkt "`RSC-Einstellungen"').
  \item[Drucken:]
    Diese Funktion dient zum Ausdruck eines markierten Blocks, sie wird
    von mir pers�nlich meist als eine Art "`Spickzettel"' beim
    Programmieren eingesetzt. F�r Druckeranpassungen oder formatiertes
    Drucken verweise ich auf das Kapitel "`Drucken mit xEDIT"'.
  \item[Block l�schen:]
    Benutzen Sie diese Funktion, wenn Sie einen Block l�schen wollen.
    Verwechseln Sie bitte aber auf keinen Fall die Funktionen
    "`Block l�schen"' und "`Aufheben"'.
\end{description}

\subsubsection{Das "`Suchen"'-Menu}
Bei gro�en Texten bietet es sich an, bestimmte Textstellen nicht durch
anstrengendes Nachlesen zu suchen, sondern dieses automatisch von dem
Editor vornehmen zu lassen.

\begin{description}
  \item[Suchen:]
    Ab der aktuellen Cursorposition bis zum Ende des augenblicklich
    aktiven Textes wird nach dem Wort gesucht, das Sie bei "`SUCHE"'
    eingeben haben. Wenn Sie in bei "`Gro�/klein"' "`beachten"' ausgew�hlt
    haben, mu� das gesuchte Wort in Gro�- und Kleinschreibung
    �bereinstimmen, allerdings ist die Suche dann auch eine Kleinigkeit
    schneller. Das d�rfte sich aber erst bei extrem langen Texten
    bemerkbar machen. Wenn Sie den gesamten Text durchsuchen wollen,
    m�ssen Sie zuerst an den Anfang der Datei gehen. Zuvor w�rde ich aber
    in die Ausgangszeile eine Marke setzen, am besten eine, die Sie
    stets f�r diesen Zweck einsetzen, also z.\,B. Marke Nr.~6. �brigens
    werden auch geschlossene Falten durchsucht, weil sich die Programme,
    mit denen Sie Ihren Text eventuell weiterverarbeiten (Compiler, \TeX\
    usw.), ja nicht f�r die Falten-Struktur interessieren.

    {\bf Wichtig:}

    Bei der Zeicheneingabe in der Dialogbox wird die
    Standard-Tastaturbelegung des {\sf ATARI} benutzt, Ihre
    selbstdefinierten Tastaturmakros laufen also nicht. Allerdings k�nnen
    Sie jedes beliebige Zeichen durch Anklicken im Buchstabenfeld
    erreichen (nett, nicht wahr?).
  \item[Suchen \& Ersetzen:]
    Geben Sie bei "`SUCHE"' das zu suchende Wort ein, und tragen Sie bei
    "`ERSETZEN"' das Wort ein, durch das es ersetzt werden soll. Die
    Option "`Einige"' bewirkt, da� vor dem Ersetzen eine Nachfrage
    stattfindet, w�hrend diese bei "`Alle"' entf�llt.

    Letztere Funktion arbeitet nicht verdeckt, sondern Sie k�nnen direkt
    am Bildschirm beobachten, wie ein gefundenes Wort gel�scht und durch
    ein anderes ersetzt wir. Das finde ich f�r die Kontrolle wichtig,
    allerdings hat es den Nachteil, da� die Funktion dadurch ein wenig
    gebremst wird. Ich bezweifle aber, da� das in der Praxis eine wichtige
    Rolle spielt, denn erst bei "`Spielereien"', wie dem Ersetzen aller
    "`A"'s durch "`U"'s, macht sich der Geschwindigkeitsverlust st�rend
    bemerkbar.

    Die Funktion "`Ersetze alle"' kann durch einen Tastendruck abgebrochen
    werden.
  \item[Suche wiederholen:]
     Durch diese Funktion wird das Wort, das Sie bei "`SUCHE"'
     eingegeben haben, nochmals gesucht.
  \item[Suche Zeile Nr.:]
    Benutzen Sie diese Funktion, wenn Sie eine bestimmte Zeile anspringen
    wollen, z.\,B. weil der Compiler in ihr einen Fehler gefunden hat.
    Diese Funktion hei�t bei vielen anderen Editoren "`Gehe zur Zeile
    Nr."'.\footnote{Ein Kuriosum am Rande: Es ist �blich, die Zeilen ab
    "`1"' zu nummerieren, w�hrend die Spalten ab "`0"' gez�hlt werden. Wer
    sich das wohl ausgedacht hat?}
  \item[Dateianfang:]
    Durch diese Funktion gelangen Sie zur nullten Spalte in der
    ersten Zeile des Textes.
  \item[Dateiende:]
    Durch diese Funktion gelangen Sie zur letzten Spalte der letzten
    Zeile des Textes.
  \item[Blockstart:]
    Durch diese Funktion gelangen Sie zur ersten Zeile des Blocks.
    Beachten Sie, da� sich dieser auch in einem anderen Text befinden
    kann.
\end{description}

\subsubsection{Das "`Opt"'-Menu}
In diesem Menu finden Sie Einstellungen f�r den Texteingabemodus, f�r
die Darstellung auf dem Bildschirm und die Sicherung von Dateien.
Beachten Sie, da� viele Einstellungen f�r jeden Text gesondert
vorgenommen werden k�nnen, sie werden in diesem Abschnitt durch (lok.)
gekennzeichnet.

\begin{description}
  \item[Einf�gend] (lok.)
    Standardm��ig werden Texte im Einf�ge-Modus geschrieben.
    Bei "`Return"' und "`Control/Return"' wird eine Zeile
    eingef�gt.
  \item[�berschreibend] (lok.)
    �berschreibende Eingabe ist in erster Linie f�r die Korrektur von
    fehlerhaften Stellen gedacht. Falls Sie dann trotzdem mal ein
    (Leer)Zeichen eingeben wollen, k�nnen Sie die Insert-Taste benutzen.
    Return verh�lt sich wie "`Cursor/runter"' und bei
    "`Control/Return"' wird keine Zeile eingef�gt.
  \item[Quelltext-Modus] (lok.)
    Im Quelltext-Modus k�nnen Sie den Cursor frei positionieren, und die
    Eingabe ist wie die meisten Programmiersprachen stark
    zeilenorientiert. Ein automatischer Umbruch und eine weiche Trennung
    wird nicht unterst�tzt.
  \item[Dokument-Modus] (lok.)
    Im Dokument-Modus wird die strenge Zeilenorientiertheit aufgebrochen,
    und der Cursor wandert z.\,B. an den Anfang der n�chsten Zeile, wenn
    das Zeilenende �berschritten wird. Falls Sie Ihre Texte "`blind"'
    eintippen, k�nnen Sie einen automatischen Zeilenumbruch aktivieren
    oder auch nur eine Art Schreibmaschinenglocke auf eine bestimmte
    Spalte legen. Sollte Sie das "`Ping"' jedoch st�ren, w�hlen Sie
    einfach die Spalte Null, dann kann die Glocke nicht mehr ert�nen. Beim
    manuellen Zeilenumbruch innerhalb eines Wortes wird automatisch ein
    weiches Trennzeichen angeh�ngt, das beim Zusammenf�gen der Zeilen
    wieder verschwindet. Als Trennzeichen wird das Zeichen Nr.~127
    benutzt, Sie k�nnen jedoch mit dem Installationsprogramm auch ein
    anderes f�r diesen Zweck deklarieren oder diese Option auch ganz
    abstellen.
  \item[Automatisch einr�cken] (lok.)
    Wenn Sie diese Option aktiviert haben, wird der Cursor beim Einf�gen
    einer Zeile auf die Stelle gesetzt, bei der sich in der Zeile oberhalb
    der erste Buchstabe findet. Dieses automatische Einr�cken ist vor
    allem beim Edieren von Programmtexten n�tzlich.
  \item[Bildschirmfont Gro�/Mittel/Klein] (lok.)
    Hier stellen Sie die Gr��e des Zeichensatzes ein, der f�r die
    Bild"-schirm"-aus"-gabe benutzt werden soll. Der gro�e Font ist
    sicherlich der augenfreundlichste, hat aber den Nachteil, da� man nur
    recht wenige Zeilen zu sehen bekommt. Die meisten Zeilen sehen Sie bei
    Benutzung des mittleren Fonts, jedoch f�llt es schwer, langen Zeilen
    zu folgen (zu wenig wei�er Raum zwischen den einzelnen Zeilen). Ein
    guter Kompromi� stellt der kleinste Font dar, leider erfolgt bei ihm
    die Ausgabe nicht ganz so schnell wie bei den beiden anderen Fonts.
    �brigens k�nnen Sie sich eigene Fonts mit Hilfe von
    \verb|XED_INST.PRG|
    entwerfen, wobei Sie sich jedoch am Zeichenvorrat Ihres Druckers
    orientieren sollten.
  \item[Zeige Zeilennummern] (lok.)
    Wenn diese Option aktiviert ist, sehen Sie am linken Bildschirmrand die
    Nummern der jeweiligen Zeilen. Beachten Sie, da� diese nicht zu Ihrem
    Text geh�ren, also nicht abgespeichert oder ausgedruckt werden.

    Diese Option ist vor allem n�tzlich, wenn Sie in stark gefalteten
    Texten eine bestimmte Zeilennummer suchen.
  \item[Zeige Infozeile] (lok.)
    In der Infozeile finden Sie die augenblickliche Position des Cursors
    sowie die L�nge der aktuellen Zeile und ihre Ausdehnung in
    Proportionalschrift. �ber letzteren Punkt k�nnen Sie mehr im Kapitel
    "`Drucken mit xEDIT"' finden.
  \item[Backups erzeugen]
    Wenn Sie diese Option aktiviert haben, wird die Ursprungsdatei beim
    Sichern mit dem Extender \verb|.BAK| versehen, und der ge�nderte
    Text dann als neue Datei abgespeichert. Sie haben auf diese Weise
    eine Sicherheitskopie Ihres alten Textes, nicht jedoch, wenn Sie
    den Text w�hrend der Arbeit mehrmals abspeichern. Standardm��ig
    ist diese Option nicht aktiviert, Sie k�nnen das jedoch mit Hilfe
    von \verb|XED_INST.PRG| ab�ndern.
  \item[Falt-Infos sichern]
    Wenn diese Option aktiviert ist, wird beim Sichern eines Textes
    noch eine zweite Datei erzeugt, in der die Information untergebracht
    ist, mit welcher Falten-Struktur Sie Ihren Text versehen haben.
    Zus�tzlich sind in dieser Datei noch die aktuelle Cursorposition und
    die gew�hlten Einstellungen, wie Bildschirmzeichensatz usw.,
    untergebracht. Wenn Sie den Text also sp�ter wieder laden, machen Sie
    an genau der Stelle weiter, an der Sie mit der Arbeit aufgeh�rt haben.
    Standardm��ig ist diese Funktion aktiviert, da die erzeugten
    Faltinfo-Dateien ausgesprochen klein sind, und sie sich bei der
    Arbeit als sehr n�tzlich erwiesen haben.

    Falls Sie diese Option {\em nicht\/} aktiviert haben, werden keine
    {\em neuen\/} Faltinfo-Dateien erzeugt; falls beim Laden eines
    Textes eine vorgefunden wurde, wird sie aber trotzdem beim Sichern
    wieder aktualisiert.

    Die Faltinfo-Dateien haben als erstes Zeichen die Tilde, die
    Faltinfo-Datei zu \verb|MEIN.TXT| hei�t also
    \verb|~EIN.TXT|.\footnote{Ahnen Sie Probleme?}
  \item[Versteckte Falt-Infos]
    Durch Aktivieren dieser Option werden die Faltinfo-Dateien als
    versteckte Dateien erzeugt. Sie tauchen dann nicht mehr in der
    Fileselectbox oder auf dem Desktop auf, werden aber trotzdem beim
    Laden eines Textes von xEDIT mit eingelesen. Standardm��ig ist diese
    Option abgeschaltet, da die Faltinfo-Dateien nat�rlich sichtbar sein
    m�ssen, wenn Sie kopiert werden sollen.
\end{description}

\subsubsection{Das "`Etc"'-Menu}
In diesem Menu sind die �brigen Funktionen untergebracht, die Sie
eventuell von Zeit zu Zeit ben�tigen.

\begin{description}
  \item[Fenster teilen:]
    Wenn es n�tig sein sollte, zwei Texte gleichzeitig auf dem
    Bildschirm darzustellen, k�nnen Sie das Fenster in einen
    oberen und unteren Bereich aufspalten. Auf einen legen Sie dann
    zum Beispiel ihren Programmtext und auf den anderen die
    Fehlermeldungen des Compilers. Nat�rlich k�nnen Sie mit der Maus
    die Position des Split-Balkens verschieben und auch verschiedene
    Fontgr��en einsetzen. Wenn Sie auf beide Fensterteile
    den selben Text legen, ist nur im aktiven Fensterteil das korrekte
    Aussehen des Textes gew�hrleistet!

xEDIT ist so voreingestellt, da� bei der �bergabe von mehreren Dateien
�ber die Commandline\footnote{Die Commandline ist ein Speicherbereich,
in dem das aufrufende Programm Kommandos �bergibt.}, das Fenster
automatisch geteilt wird. Dieses Verhalten k�nnen Sie mit
\verb|XED_INST.PRG| ab�ndern.
  \item[Datei drucken:]
    �ber diesen Menueintrag wird der augenblicklich aktivierte Text
    gedruckt. F�r Druckeranpassungen oder formatiertes Drucken verweise
    ich auf das Kapitel "`Drucken mit xEDIT"'.
  \item[Falte aufklappen/zuklappen:]
    Diese Funktionen sind nur der Vollst�ndigkeit halber auch noch
    einmal im Menu untergebracht. Einfacher ist sicherlich der Doppelklick
    mit der Maus. Falls eine Funktion nicht ausf�hrbar ist, ert�nt ein
    "`Ping"'.
  \item[Falte b�geln:]
    Tja, was macht man mit Falten, die einen st�ren? Man b�gelt sie!
    Wenn das im Alltag doch auch so einfach ginge \dots
  \item[Alle Falten aufklappen:]
    Durch diese Funktion werden alle Falten des gerade aktivierten
    Textes aufgeklappt, der Text erscheint danach so, wie Sie ihn bei
    Einsatz eines anderen Editors erblicken w�rden.
  \item[Alle Falten zuklappen:]
    Durch diese Funktion werden alle Falten des aktivierten Textes
    geschlossen, und der Cursor springt an den Textanfang. Der Text
    ist quasi im Grundzustand.
  \item[Proportionen von \dots:]
    W�hlen Sie hier, welche Proportionalschriftbreitentabelle f�r die
    Ausgabe in der Info-Zeile benutzt werden soll. F�r n�here
    Informationen lesen Sie bitte "`Drucken mit xEDIT"'.
  \item[RSC-Einstellungen:]
    Da es durchaus m�glich und auch anzuraten ist, sich f�r jeden
    Aufgabenbereich eine spezielle RSC-Datei f�r xEDIT zu erstellen, kann
    es schon mal vorkommen, da� Sie wissen wollen, welche RSC-Datei jetzt
    wirklich geladen wurde, und welche Eigenschaften es hat. Hierzu dient
    dieser Menupunkt. Au�erdem k�nnen Sie einige Parameter, wie zum
    Beispiel den Tabulatorabstand, �ndern, da der Weg �ber das
    Installationsprogramm manchmal zu umst�ndlich ist.
  \item[Hilfe? Hilfe!:]
    Hier finden Sie einen Hilfedialog, der die Tastaturbelegung
    einiger elementaren Grundfunktionen f�r das Edieren von Texten
    darstellt. Beachten Sie, da� diese Tastaturbelegung nur ein
    Vorschlag ist, sie kann mit \verb|XED_INST.PRG| leicht abge�ndert
    werden.
\end{description}


\subsection{Die Eingabe von Texten}
Hierzu gibt es eigentlich nicht viel zu sagen. Nutzen Sie bitte zum
Kennenlernen den Menupunkt "`Hilfe"' (Sie finden ihn an letzter Stelle
im letzten Menu), um mit den M�glichkeiten der Texteingabe vertraut zu
werden. Sollte einmal ein Zeichen nicht auf der Tastatur verf�gbar
sein, k�nnen Sie einfach die rechte Maustaste dr�cken und im
erscheinenden Formular das entsprechende Zeichen anklicken, es wird
dann an der Cursorposition ausgegeben.

Eine f�r manche Leute gew�hnungsbed�rftige Geschichte ist die
Behandlung der Return-Taste: xEDIT unterscheidet zwischen den
Funktionen "`Zeile fertig"' und "`Zeilenrest abspalten"'. Erstere wird
standardm��ig durch "`Return"' erreicht, wobei bei ihr Zeilenrest {\em
nicht\/} abgespalten wird, egal an welcher Position sich der Cursor
befindet. Man braucht also nicht wieder an das Zeilenende zu gehen,
falls man schnell mal die eingegebene Zeile korrigieren mu�te und dann
weiterschreiben will. Die Funktion "`Zeilenrest abspalten"' wird
standardm��ig durch Control/Return erreicht, da sie von mir viel
seltener ben�tigt wird. Ich m�chte an dieser Stelle keine Diskussion
�ber Sinn oder Unsinn dieser Belegung anfangen, da sich jeder die
Tastaturbelegung f�r diese Funktionen �ber das Installationsprogramm
nach eigenen Vorstellungen ab�ndern kann.

Au�erdem m�chte auch an dieser Stelle nochmals darauf hinweisen, da�
die M�glichkeit besteht, Tastaturmakros und K�rzel zu installieren.
Sie k�nnen sich auf diese Weise eine ausgesprochen effiziente
Arbeitsumgebung schaffen. Mehr zu diesem Themenkreis finden Sie im
Kapitel "`xEDIT als offenes System"'.

\subsection{Die Blockverwaltung}
Wie bereits bei der Beschreibung des "`Block"'-Menus erw�hnt, f�llt
die Blockverwaltung von xEDIT etwas aus dem Rahmen. Auf einige
Besonderheiten m�chte ich daher an dieser Stelle etwas genauer
eingehen.

Urspr�nglich gab es in xEDIT nur die "`Zeilenbl�cke"', die
Programmierer sicherlich am h�ufigsten ben�tigen. Zeilenbl�cke
bestehen, wie der Name schon vermuten l��t, immer aus Zeilen als
kleinste Einheit. Wenn Sie z.\,B. in der letzten Zeile eines
Zeilenblocks einen Zeilenrest abspalten, "`f�llt"' er aus dem Block
heraus. Jede Zeile eines Zeilenblocks --- auch die letzte --- wird
beim Sichern oder Drucken mit {\sf CR/LF} abgeschlossen. Nur
Zeilenbl�cke lassen sich falten, da Falten ja immer aus kompletten
Zeilen bestehen m�ssen.

Nat�rlich braucht man auch gelegentlich Bl�cke, die nicht nur aus
ganzen Zeilen bestehen, z.\,B. wenn Sie ein einzelnes Wort oder einen
Satz verschieben wollen. Zu diesem Zweck wurden die "`Zeichenbl�cke"'
eingef�hrt.\footnote{Bitte glauben Sie mir, da� ich lange mit der
Entscheidung gerungen habe, eine zus�tzliche Art von Bl�cken
einzuf�hren, aber alle �berlegungen, die alten Bl�cke nur zu
modifizieren, h�tten nur zu einer ziemlich "`unlogischen"' und schwer
zu durchschauenden Bedienung gef�hrt.} Zeichenbl�cke haben aber auch
noch eine andere, sehr wichtige Eigenschaft: Sie sind {\em nicht\/}
mit {\sf CR/LF} abgeschlossen, es w�re ja auch sehr �rgerlich, wenn
Sie nur ein Wort verschieben wollen, und die Zeile danach umgebrochen
wird.

Inzwischen hat es sich herausgestellt, da� die Unterscheidung zwischen
Zeilen- und Zeichenbl�cken sinnvoller ist, als ich anfangs vermutete:
Wenn Sie z.\,B. unter Einsatz von "`Let 'em fly"'\footnote{"`Let 'em
fly"' ist eine Betriebssystemerg�nzung von Oliver Scheel, die es
u.\,A. erm�glicht, Dialoge "`fliegen"' zu lassen und sie komplett
tastaturbedienbar zu machen. Das Programm ist aber auch allein schon
deshalb empfehlenswert, weil die Bildschirmrestaurierung nach dem
Verlassen des Dialogs beschleunigt abl�uft.} nur eine Telefonnummer
aus einem Dialog auf das Klemmbrett kopiert haben, wird beim
Scrap-Import die Nummer wie gew�nscht an die Cursorposition gesetzt.
Falls Sie dagegen z.\,B. einen ganzen (Quell)Textabschnitt importieren
wollen, ist dieser in der Regel auch mit {\sf CR/LF} abgeschlossen, so da�
er als Zeilenblock behandelt wird.

Leider ist diese Unterscheidung nicht standardisiert, aber nach meiner
bisherigen Erfahrung funktioniert die Sache ganz ausgezeichnet.

\subsection{Die erweiterte Mausbedienung}
Wie bereits erw�hnt, lassen sich mit xEDIT aus gutem Grund keine
Bl�cke mit der Maus aufziehen. Um das Arbeiten mit der Maus aber
trotzdem ein wenig komfortabler zu machen, wird der Status der
Sondertasten bei Maustastendruck ber�cksichtigt:

\begin{tabular}{|r|l|}
\hline
\rule[-2.5mm]{0mm}{8mm} Tastaturstatus & Funktion\\
\hline
             Shift links & Definiere Startzeile\\
               Alternate & Definiere Startzeichen\\
                 Control & Definiere Ende\\
           Shift/Control & Block kopieren\\
       Alternate/Control & Block verschieben\\
 Shift/Control/Alternate & Block l�schen\\
\hline
\end{tabular}

Diese Zuordnung l��t sich (vorl�ufig) nicht vom
Anwender �ndern.

\subsection{Das Klemmbrett}
Das Klemmbrett dient in erster Linie zum Datenaustausch zwischen
verschiedenen Programmen und ist im Prinzip ein ganz normales
Verzeichnis auf Ihrer Disk. �blich --- aber nicht zwingend --- ist der
das Ordner \verb|C:\CLIPBRD\|. Das Klemmbrett kann grunds�tzlich immer
nur einen Scrap f�r den Datenaustausch aufnehmen, wobei dieser
zwingend zur Maske \verb|SCRAP.*| passen mu�. Allerdings kann ein
Scrap mit dem {\em gleichen\/} Inhalt auch mehrfach in
unterschiedlichen Formaten abgelegt werden, z.\,B. als
\verb|SCRAP.TXT| und \verb|SCRAP.ASC|\@. xEDIT liest und schreibt nur
\verb|SCRAP.TXT|!

Beim Schreiben auf das Klemmbrett werden zuerst {\em alle\/} Dateien
gel�scht, die zur Maske \verb|SCRAP.*| passen, es ist also z.\,B.
nicht m�glich, ein Bildchen und einen dazu passenden Text gleichzeitig
abzulegen. Erst danach wird der Scrap, eventuell in mehreren Formaten,
abgelegt.

Viele Programme, auch xEDIT, bieten die M�glichkeit, einen Scrap
anh�ngend zu schreiben, der alte Scrap wird also nicht �berschrieben.
Diese M�glichkeit kann man z.\,B. sinnvoll einsetzen, wenn man eine
Adressenliste erstellen oder Zitate sammeln m�chte.

xEDIT hat f�r die Unterst�tzung des Klemmbretts eigene Menueintr�ge
vorsehen m�s"-sen, da das Programm nicht nach dem
"`Cut-Copy-Paste-Verfahren"' arbeitet.

Im Kapitel "`Miszellaneen"' k�nnen Sie noch einige Internas zur
Implementierung bei xEDIT lesen, was jedoch erst bei Problemen von
Interesse ist.

\subsection{"`Tips und Tricks"', die erste \dots}
xEDIT ist klein genug, da� Sie Kopien des Programms in die
entsprechende Arbeitsumgebung �bertragen k�nnen. Zus�tzlich braucht
das Programm nat�rlich eine RSC-Datei. Ich empfehle die
Standard-RSC-Datei \verb|XEDIT.RSC|, es sei denn, Sie wollen mit
\TeX{} arbeiten, nehmen Sie dann \verb|XED_TEX.RSC|. Falls Sie
ausnahmsweise eine andere RSC-Datei laden wollen, k�nnen Sie bei
Programmstart eine der Sondertasten (Shift, Control, Alternate)
gedr�ckt halten, es erscheint dann eine Fileselectbox, mit der Sie eine
ausw�hlen k�nnen.

Manchmal w�nscht man sich, das Blockende zuerst markieren zu k�nnen.
In xEDIT ist das nicht vorgesehen, aber mit einem kleinen Trick l��t
sich das leicht umgehen: Zum gew�nschten Ende gehen, Blockstart und
-ende dr�cken, zum gew�nschten Anfang gehen und nochmals Blockstart
dr�cken.

Manchmal will man zwischen zwei Falten noch etwas einf�gen. Klappen
Sie dann die beiden Falten zu und dr�cken Shift/Insert, um eine Zeile
einzuf�gen.

Nutzen Sie die Marken! Sie k�nnen viel Zeit sparen, wenn Sie vor dem
"`Herumspringen"' im Text eine Marke auf den Ausgangspunkt setzen. Ich
pers�nlich verwende zu diesem Zweck stets die Marke 1, mittlerweile
ist mir das in Fleisch und Blut �bergegangen.

Umlaute sind in Dateinamen nicht erlaubt, auch wenn sie die {\sf
ATARI}-Fileselectbox zul��t. Ich kenne einen \TeX-Anwender, der schier
verzweifelte, warum seine korrekte Eingabedatei nicht verarbeitet
werden wollte. Der Grund: Er nannte sie \verb|�BUNG.TEX|, nicht
\verb|UEBUNG.TEX|.

Falls Sie ein verstecktes Faltinfo sichtbar machen wollen und kein
geeignetes Utility f�r diesen Zweck besitzen, k�nnen Sie den Text
einfach mit xEDIT laden und den Text mit sichtbaren Faltinfo sichern.

xEDIT hat eine CapsLock-Anzeige in der Menuzeile. Suchen Sie sie mal!

Falls Sie h�ufiger bestimmte Tastenkombinationen versehentlich
dr�cken, k�nnen Sie ein leeres Makro darauf installieren. Aber damit
w�ren wir schon beim n�chsten Kapitel~\dots

\newpage
\section{xEDIT als offenes System}
Wie bereits in der Einleitung erw�hnt, bietet die Aufspaltung des
Programmpakets in den eigentlichen Editor und ein
Installationsprogramm die M�glichkeit, den Editor in fast beliebiger
Weise zu konfigurieren, ohne da� er dadurch unn�tig gro� und
un�bersichtlich wird. Ich habe versucht, mit xEDIT eine Art
"`Universalschreibmaschine"' zu entwickeln, mit der sich in jeder
Arbeitsumgebung effektiv arbeiten l��t, ohne da� man mit
liebgewordenen Gewohnheiten brechen mu�. Nat�rlich ist mir klar,
da� man sich diesem Ziel nur ann�hern kann, aber ich denke, da�
die Flexibilit�t dieses Editors schon ungew�hnlich weit geht.

Nat�rlich hat diese Flexibilit�t auch ihren Preis: Vor allem bei der
Erstellung einer pers�nlichen Tastaturbelegung m�ssen Sie sich schon
ein wenig intensiver mit der Arbeitsweise des Programms besch�ftigen,
um den vollen Umfang der M�glichkeiten auszusch�pfen. In manchen
Punkten grenzt das bereits an Programmierung.

Ich rate, zus�tzlich zu diesem Handbuch die entsprechenden
Eingabedateien anzuschauen, da vieles selbsterkl�rend ist. Wie hei�t
es doch so sch�n: "`Ein Beispiel sagt mehr als tausend Worte."'
Ansonsten sollten Sie Ihrem Spieltrieb ruhig mal freien Lauf lassen,
viele "`Unsch�nheiten"' des Programm lassen sich durch eine geeignete
Anpassung elegant beseitigen oder zumindest abmildern.

\subsection{Das Installationsprogramm {\tt XED\_INST.PRG}}
Mit Hilfe des Installationsprogramms k�nnen Sie eine schon vorhandene
RSC-Datei laden und f�r Ihren Aufgabenbereich modifizieren. Da das
�ndern der Bildschirmzeichens�tze mit Sicherheit der aufwendigste
Anpassungsschritt ist, sollten Sie zu Beginn der Arbeit die RSC-Datei
ausw�hlen, die die am besten geeigneten Zeichens�tze besitzt. Sie
m�ssen dann wahrscheinlich kaum etwas an ihnen �ndern. Die
Zeichens�tze von \verb|XEDIT.RSC| und \verb|XED_TEX.RSC| wurden
�brigens von mir entwickelt und sind auf optimale Lesbarkeit hin
ausgerichtet, daran sollten auch Sie sich orientieren. Eine
Kurzbeschreibung der einzelnen RSC-Dateien finden Sie in
\verb|LIESMICH.TXT| im \verb|RSC|-Ordner.

Da das Installationsprogramm weitestgehend selbsterkl�rend ist,
beschr�nkt sich dieser Abschnitt auf einige Erg�nzungen und Tips.

\subsubsection*{Zum Menu:}
\begin{description}
  \item[Sichern als \dots:] RSC-Dateien f�r xEDIT m�ssen zur
    Maske \verb|XED*.RSC| passen, damit sie als solche erkannt werden.
    Da es im allgemeinen sinvoll ist, eine eigene Anpassung zuerst
    unter einem anderen Namen zu sichern, ist im Menu nur der Eintrag
    "`Sichern als \dots"' untergebracht.
  \item[Umbenennen:] xEDIT ben�tigt f�r die Arbeit eine RSC-Datei.
    Wenn sich nun im Programmverzeichnis mehrere befinden, z.\,B. weil
    Sie eine eigene Anpassung unter anderem Namen gesichert habe, ist
    unklar, welche nun von xEDIT geladen werden soll. Deswegen sollten
    Sie alle unerw�nschten mit dem Extender \verb|.RSX| versehen.
  \item[Editor starten:] Zuerst sollten Sie bei dieser Funktion den
    Pfad von xEDIT eingeben (�ber Fileselectbox), falls er sich nicht im
    selben Verzeichnis wie das Installationsprogramm befindet. Wenn Sie
    sp�ter diverse Eingabedateien einlesen, wird die Kommandozeile immer
    automatisch aktualisiert, das hei�t, da� auch eine Zeilennummer
    �bergeben wird, falls ein Fehler gefunden wurde. Der Wechsel
    zwischen Installationsprogramm und Editor geht auf diese Weise
    sehr fl�ssig vonstatten.
  \item[Lese Tastaturbelegung:] Mit Hilfe dieses Menupunkts wird eine
    KBD-Datei eingelesen, in der eine Tastaturanpassung definiert ist.
    Mehr dar�ber im Abschnitt "`Die Tastaturbelegung"'.
  \item[Lese Druckersteuerung:] Mit Hilfe dieses Menupunkts wird eine
    PRN-Datei eingelesen, in der eine Druckeranpassung definiert ist.
    Mehr dar�ber im Kapitel "`Drucken mit xEDIT"'.
  \item[Lese Gro�-klein-Tabelle:] Mit Hilfe dieses Menupunkts wird eine
    GKT-Datei eingelesen, mit deren Hilfe xEDIT Gro�- in Kleinbuchstaben
    umwandeln kann und umgekehrt. In dieser Datei brauchen nur die
    ASCII-Zeichen ab 128 eingetragen zu werden. Das Format wird aus den
    beigef�gten Beispielen klar (\verb|IBM.GKT| und \verb|TEX.GKT|).
  \item[Lese Breitentabelle:] Mit Hilfe dieses Menupunkts wird eine
    FWD-Datei eingelesen, in der die Zeichenbreiten verschiedener
    Proportionalschriften eingetragen sind. Diese werden bei der
    Ausgabe von \verb|Prop. X| und \verb|Prop. L| in der Infozeile
    zugrunde gelegt. Mehr dar�ber im Kapitel "`Drucken mit xEDIT"'.
  \item[Gestalte Zeichensatz:] Wenn Sie diesen Eintrag angeklickt
    haben, erscheint ein Fenster mit einer Zeichen�bersicht. Klicken
    Sie nun auf das zu edierende Zeichen, woraufhin es in das
    Edierfenster �bertragen wird. Pixel werden mit der linken
    Maustaste gesetzt und mit der rechten gel�scht. Zum Abschlu�
    schlie�en Sie das Edierfenster, woraufhin noch eine Nachfrage
    stattfindet, ob die �nderungen �bernommen werden sollen.
  \item[Korrigiere Menueintr�ge/Hilfedialog:] Diese Funktionen
    brauchen Sie nur dann, wenn ausnahmsweise die automatische
    Eintragung der Shortcuts nicht geklappt haben sollte. Das kann
    aber nur bei Verwendung von speziellen Tastaturen und bei einigen,
    ganz speziellen Tastaturmakros geschehen. Bei allen mitgelieferten
    Tastaturbelegungen ist der Einsatz dieser Funktionen {\em nicht\/}
    n�tig.
  \item[Tastaturgrundfunktionen:] xEDIT arbeitet bei der Auswertung
    von Tas"-ten"-dr�"cken in mehreren Stufen. Zuallererst wird getestet,
    ob eine "`elementare Grundfunktion"', wie z.\,B. "`Zeile l�schen"'
    oder "`Cursor/hoch"', gemeint ist. Falls Sie an deren
    Tastaturbelegung etwas �ndern wollen (was in einigen F�llen
    durchaus sinnvoll sein kann), k�nnen Sie mit Hilfe dieses Dialogs
    �nderungen vornehmen.
  \item[Registrierung:] Hierzu gibt es kaum was zu sagen, au�er
    vielleicht, was passiert, wenn Sie "`xEDIT updaten"'\footnote{Leider
    ist mir kein anderes Wort als "`updaten"' eingefallen, um
    auszudr�cken, da� xEDIT in eine pers�nliche Version ohne
    Startverz�gerung umgewandelt wird. Verbesserungsvorschl�ge erw�nscht!}
    anw�hlen: Zuerst einmal mu� Ihr vollst�ndiger Name und Ihre
    pers�nliche Geheimzahl, die aus Ihrem Namen und Ihrer Adresse gebildet
    wird, im Dialog eingetragen sein. Danach wird \verb|XEDIT.PRG|
    "`gepatcht"', das hei�t, Ihre Eingaben werden direkt in das Programm
    hineingeschrieben (dazu darf es nat�rlich nicht schreibgesch�tzt
    sein!). Bei Programmstart ermittelt xEDIT dann, ob die "`Zauberzahl"',
    die er aus Ihren eingetragenen Angaben ermittelt, mit der eingegebenen
    Geheimzahl �bereinstimmt, falls ja, entf�llt die Startverz�gerung.

    Pers�nliche xEDIT-Versionen d�rfen Sie nat�rlich {\em nicht\/}
    weitergeben, arbeiten Sie daher mit einer Sicherheitskopie!
\end{description}

\subsection{Die Tastaturbelegung}
Eine der St�rken von xEDIT ist die ausgesprochen flexible
Tastaturbelegung. Leider ist es wie mit den meisten �u�erst flexiblen
Sachen: Die Sache ist nicht unbedingt besonders leicht verst�ndlich.
Ich rate deshalb dazu, diesen Abschnitt beim ersten Lesen nur zu
�berfliegen, um sich einen groben �berblick zu verschaffen. Wenn Sie
beim zweiten Lesen dann noch eine KBD-Datei zur Hand nehmen, d�rfte
sich das meiste spontan kl�ren. Die Tastaturbelegung ist nicht
kompliziert sondern nur etwas verwirrend, weil so viel m�glich ist!

\subsubsection{Scancodes}
Wenn vom Betriebssystem ein Tastendruck gemeldet wird, wird sowohl der
Buchstabe als auch die Nummer der gedr�ckten Taste �bergeben. Beides
wird in eine 16-Bit-Zahl verpackt, die ich im Weiteren "`Scancode"'
nennen werde.\footnote{Vielfach versteht man unter "`Scancode"' auch nur
die Nummer der Taste, die gedr�ckt wurde.} Im Lowbyte, also den
unteren acht Bit, befindet sich der ASCII-Code des Buchstabens,
w�hrend sich im Highbyte, den oberen acht Bit, die Nummer der
gedr�ckten Taste befindet.

Beispiele:
\begin{itemize}
  \item Wenn Sie die "`1"' auf der normalen Tastatur dr�cken, liefert
    das Betriebssystem den Scancode \&0231\footnote{Alle Zahlenangaben,
    die mit "`\&"' eingeleitet werden, sind hexadezimal zu verstehen.}.
    �bersetzt hei�t das, da� die Taste Nr.~2 der Tastaturmatrix gedr�ckt
    wurde, und da� das ASCII-Zeichen Nr.~\&31 (49 dez.) ausgegeben werden
    soll, was --- wer h�tte das gedacht --- dem Zeichen "`1"'
    entspricht.
  \item Halten Sie nun zus�tzlich die Shift-Taste gedr�ckt, so liefert
    das Betriebssystem den Scancode \&0221. Wieder ist also die Taste
    Nr.~2 gedr�ckt worden, diesmal soll jedoch das ASCII-Zeichen Nr.~\&21
    (33 dez.) ausgegeben werden, was das Ausrufezeichen "`!"' ist.
  \item Dr�cken Sie die "`1"' auf dem Zehnerblock, so erhalten Sie den
    Scancode \&6d31, also diesmal die Taste Nr.~109 der Tastaturmatrix
    und wieder einmal die "`1"' als Zeichen.
\end{itemize}
Wichtig zu erw�hnen ist in diesem Zusammenhang, da� nicht alle
unterschiedlichen Tastenkombinationen auch unterschiedliche Scancodes
liefern, z.\,B. wird abgesehen von ein paar Ausnahmef�llen (Umlaute)
entweder nur die Alternate- oder nur die Controltaste ber�cksichtigt,
nicht deren Kombination.\footnote{Unter MiNT sind sogar alle
Kombinationen mit Alt/Control reserviert.}

Auch hat keine Tastatur 256~Tasten und vor allem keine Taste mit der
Nr.~0, was sich sp�ter als wichtig erweisen wird.

xEDIT arbeitet grunds�tzlich mit den Scancodes, so wie sie vom
Betriebssystem geliefert werden, und wertet nicht noch zus�tzlich den
Status der Sondertasten aus, was theoretisch durchaus m�glich
w�re.\footnote{Wenn Sie aufgepa�t haben, haben Sie mich jetzt bei
einer L�ge ertappt: Bei "`Sichern \& verlassen"' wird abgefragt, ob
die Alternate- oder eine Shifttaste zus�tzlich gedr�ckt wird, um das
Programm eventuell mit dem "`alternativen Returncode"' zu verlassen.
Das ist aber wirklich die einzige Ausnahme.} Das hat zweierlei Gr�nde:
\begin{enumerate}
  \item Nur so kann auf einfache Weise das Dr�cken von Tasten
    innerhalb von Makros simuliert werden.
  \item Manchmal meldet das Betriebssystem Tastendr�cke mit einer
    deutlichen Ver"-sp�"-tung, wenn z.\,B. ein im Hintergrund arbeitendes
    Programm den Rechner l�ngere Zeit blockiert. Dann haben Sie die
    Sondertasten m�glicherweise schon wieder losgelassen.
\end{enumerate}

Um die Scancodes von bestimmten Tastenkombinationen herauszubekommen,
benutzen Sie entweder den Menupunkt "`Scancodes anzeigen"' in
\verb|XED_INST.PRG|, oder Sie installieren \verb|SCANUTIL.ACC|, wobei
letzteres den Vorteil hat, da� Sie es bei der Entwicklung von
Tastaturmakros jederzeit zur Hand haben.

\subsubsection{Die Scancode-Auswertung}
xEDIT arbeitet bei der Auswertung von Scancodes in mehreren Stufen und
daher mit mehreren Tabellen.

Falls ein Tastendruck vom Betriebssystem gemeldet wurde, durchsucht
das Programm zuerst die Tabelle der Scancodes der
Tastaturgrundfunktionen. Letztere sind sind die ganz elementaren
Funktion, die beim Edieren eines Textes ben�tigt werden, z.\,B.
"`Backspace"' und "`Return"'. Falls ein �bereinstimmender Scancode
gefunden wurde, wird die entsprechende Funktion aufgerufen.

Als n�chstes kommt die Tabelle mit den Tastaturmakros dran. Unter
einem Tastaturmakro stellen Sie sich vorl�ufig einfach vor, da� durch
Druck einer bestimmten Tastenkombination eine Folge von anderen
Tastendr�cken simuliert wird.

Als n�chstes wird noch �berpr�ft, ob mit dem Scancode eventuell ein
Shortcut f�r das Menu vorliegt, falls auch das keinen Erfolg hat, wird
davon ausgegangen, da� Sie diesmal ausnahmsweise einen
gew�hnlichen Buchstaben eingegeben haben und entsprechend
verfahren.

Wichtig kann unter Umst�nden die Reihenfolge der Auswertung sein:
Sie k�nnen kein Tastaturmakro auf eine Tastenkombination legen, die
bereits f�r eine Grundfunktion vergeben wurde.

Bereits an dieser Stelle sei verraten, da� die dem Menu zugeordneten
Scancodes sich mit keiner Tastatur erzeugen lassen, das Zauberwort
hei�t in diesem Fall "`Tastaturmakros"'. (Pssst, nicht weitersagen!)

\subsubsection{Tastaturmakros}
Mit einem Tastaturmakros wird im wesentlichen eine Folge von
Tastendr�cken simuliert, die beliebig lang sein kann und daher auch
die L�nge Null haben kann; dann hat die entsprechende
Tastenkombination keinerlei Auswirkungen (wichtig, falls Sie bestimmte
Tasten h�ufig versehentlich dr�cken).

Programmintern sieht ein Makro also folgenderma�en aus:

{\sf [Ausgangsscancode][Anzahl der Ersatzscancodes][Ersatzscancode(s)]}

Falls der "`Auswerter f�r Tastendr�cke"' einen Ausgangsscancode
gefunden hat, ruft er sich selbst erneut mit den Ersatzscancodes auf,
solange, bis die Liste der Ersatzscancodes abgearbeitet
ist.\footnote{Fachleute nennen so etwas �brigens Rekursion.}

Nat�rlich k�nnen bei den Ersatzscancodes wieder Makros auftauchen, Sie
m�ssen nur darauf achten, da� Sie keine Endlosschleifen basteln. Wenn es
zweckm��ig erscheint, steht es Ihnen sogar frei, Submakros auf frei
erfundene Scancodes zu legen.

So, und nun schnell mal ein Beispiel f�r das Eingabeformat:
\begin{verbatim}
?&3B00    &1A5C     * Backslash auf F1
\end{verbatim}
Die Definition wird eingeleitet durch das Fragezeichen und dem
Ausgangsscancode, in diesem Fall \verb|&3B00| f�r die {\sf F1}-Taste.
Dieser Scancode wird von xEDIT "`verschluckt"' und der "`Auswerter f�r
Tastendr�cke"' erneut aufgerufen, diesmal mit dem Scancode
\verb|&1A5C|. Da Sie in diesem Fall wohl kein Submakro auf den
Scancode \verb|&1A5C| gelegt haben, h�tten Sie auch \verb|&5C| oder
noch einfacher in der dezimalen Schreibweise \verb|92| schreiben
k�nnen. Kommentare werden durch das Sternchen abgetrennt.

Nat�rlich w�re es ziemlich umst�ndlich, l�ngere Worte mit ihren
Scancodes einzugeben, deswegen gibt es noch folgende Eingabem�glichkeit:
\begin{verbatim}
?&3B00    '\'       * Backslash auf F1
?&3C00    'Hallo'   * "Hallo" auf F2
\end{verbatim}
Einen kleinen Unterschied gibt es hier allerdings: Intern haben die so
erzeugten Er"-satz"-scan"-codes ein gel�schtes High-Byte, woran xEDIT
erkennt, da� es sich nicht um ein Makro handeln kann und das Zeichen
sofort ausgibt. Das geschieht aus Geschwindigkeitsgr�nden.

\subsubsection*{Menu-Shortcuts}
Die Menueintr�ge werden durch Scancodes erreicht, die sich nicht mit
der Tastatur erzeugen lassen. Der Weg geht also �ber Makros. Gleich
ein Beispiel:
\begin{verbatim}
?&310E  &FE10       *  ^N          Laden
?&180F  &FE10       *  ^O          Laden
?&1F13  &FE11       *  ^S          Sichern
\end{verbatim}
Wie Sie sehen, passen alle Scancodes f�r das Menu zur Maske
\verb|&FExx|, und es lassen sich auch mehrere Tastenkombinationen f�r
ein und denselben Menueintrag definieren. In der Praxis d�rfte aber
der umgekehrte Fall wichtiger sein: Viele Menueintr�ge sollen gar
nicht �ber Tastatur erreichbar sein, weil man sie nur selten ben�tigt
und die entsprechende Tastenkombination eher mal aus Versehen dr�ckt.
In den KBD-Dateien m�ssen Sie in diesem Fall einfach das entsprechende
Makro l�schen oder besser noch --- einfach auskommentieren. Beispiel:
\begin{verbatim}
*?&1615  &fe18       *  ^U          Verwerfen
\end{verbatim}
Beim Einlesen einer KBD-Datei versucht \verb|XED_INST|, die Shortcuts
f�r das Menu selb"-st�n"-dig in das Menu einzutragen. Das klappt aber nur,
wenn das Makro nur aus einem einzigen Ersatzscancode besteht. Da�
manchmal l�ngere Sequenzen sinnvoll sein k�nnen, soll folgendes
Beispiel zeigen:
\begin{verbatim}
?&1312 &FE3B &FE54 &FE51 &FE35  * ^R   ab Dateianfang suchen & ersetzen
*      |                                           Marke 6 setzen
*            |                                     Dateianfang
*                  |                               Suchen & Ersetzen
*                        |                         Zu Marke 6 gehen
\end{verbatim}
Hier ist es so, da� der "`Standard-Shortcut"' Control/R eine neue
Bedeutung bekommt, n�mlich das "`Suchen und Ersetzen"' ab dem
Textanfang. Marke~6 wird f�r den R�cksprung an die Ausgangsstelle
benutzt. Falls Sie jedoch �ber das Menu gehen, bleibt es bei der alten
Bedeutung, dem "`Suchen und Ersetzen"' ab der Cursorposition.

\subsubsection*{"`Versteckte"' Grundfunktionen}
Augenblicklich existieren zwei zus�tzliche Grundfunktionen, die sich
nur �ber Makros aufrufen lassen, da sie nur dort einen Sinn machen.
\begin{verbatim}
*   &F000      * Gehe zum Wortende
*   &F001      * Gehe zum Wortanfang
\end{verbatim}
Wie Sie sehen, passen die versteckten Grundfunktionen zur Maske
\verb|&F0xx|. Da eine Erweiterung verh�ltnism��ig einfach ist (kein
neuer Menueintrag usw.) ist es durchaus wahrscheinlich, da� in Zukunft
noch einige solcher Funktionen dazukommen, Ideen habe ich genug \dots

\subsubsection*{K�rzel}
K�rzel werden ganz analog zu Tastaturmakros definiert, mit dem
einzigen Unterschied, da� diesmal der Ausgangsscancode durch ein
K�rzel ersetzt wird. Beispiel:
\begin{verbatim}
?'mfg'    'Mit freundlichem Gru�,' &1C0D &1C0D 'Rainer Juhser'
\end{verbatim}
Wenn sie also in Zukunft \verb|mfg| tippen und danach auf die
Undo-Taste\footnote{Die Grundfunktion "`K�rzel expandieren"' wurde von
mir auf diese Taste gelegt, weil sie die letzte leicht erreichbare
freie Taste war. Sie k�nnen nat�rlich auch jede andere freie
Tastenkombination f�r diesen Zweck einsetzen.} dr�cken, haben Sie in
Rekordzeit Ihren Brief"-fu�. \verb|&1C0D| ist �brigens der Scancode
der Return-Taste, bei diesem Makro erscheint der Name "`Rainer Juhser"'
also zwei Zeilen weiter unten.

Wichtig:

Sie d�rfen nicht mehr als 1024 K�rzel mit jeweils einer Maximall�nge
von 64 Zeichen\footnote{Das K�rzel(!), das Makro kann nat�rlich
beliebig lang sein.} definieren.

\subsubsection*{Submakros}
Da die Entwicklung von Makros ziemlich aufwendig werden kann, rate ich
grunds�tzlich dazu, so viele gleichbleibende Abl�ufe wie m�glich in
Submakros zu stecken, die auf frei erfundene Scancodes zu legen sind.
Ich empfehle f�r diesen Zweck die Maske \verb|&Exxx|.

{\bf Alle Scancodes mit der Maske \verb|&00xx| und \verb|&Fxxx| sind f�r
interne Zwecke von xEDIT reserviert und d�rfen nicht f�r Submakros
eingesetzt werden.}

\subsubsection*{Das Einlesen der KBD-Datei}
Beim Einlesen einer KBD-Datei versucht das Installationsprogramm, die
Tastenbelegung der eingegebenen Scancodes als Klartext im
Logbuch-Fenster darzustellen. Auf diese Weise lassen sich falsch
eingetippte Scancodes leicht erkennen, da sie dann als Zahl ausgegeben
werden.

Bei der Entwicklung einer eigenen Tastaturbelegung empfehle ich
folgende Vorgehensweise:
\begin{enumerate}
\item Zuerst eine Sicherheitskopie der RSC-Datei machen.
\item \verb|XED_INST.PRG| starten.
\item Bei "`Editor aufrufen"' den Pfad f�r \verb|XEDIT.PRG|
  richtig einstellen.
\item Nun seine RSC-Datei laden.
\item Die KBD-Datei einlesen.
  \begin{enumerate}
    \item Falls fehlerfrei verlaufen: RSC-Datei sichern und Editor
      zwecks Test starten.
    \item Anderenfalls RSC-Datei {\em nicht\/} sichern und nur Editor
      starten. Er springt dann zum ersten erkannten Fehler.
  \end{enumerate}
\end{enumerate}
Den letzten Punkt k�nnen Sie nat�rlich beliebig h�ufig wiederholen.



\subsection{"`Tips und Tricks"', die zweite \dots}
\begin{itemize}
  \item Wenn Sie fremdspachige Texte edieren, sollten Sie sich die
    entsprechenden nationalen Sonderzeichen auf leicht erreichbare
    Tastenkombinationen legen. Sie brauchen dann nicht mehr das
    Buchstabenformular benutzen.
  \item Wenn Sie �fters einen Rahmen f�r Tabellen ben�tigen, legen Sie
    sich doch die entsprechenden Zeichen auf den Ziffernblock. Es gibt da
    eine recht einpr�gsame Anordnung, die auch in \verb|XEDIT.KBD|
    eingesetz wird.
  \item Wenn Sie h�ufig mit Standards�tzen arbeiten, k�nnen Sie sich
    diese nat�rlich auch auf eine Tastenkombiation legen. Das geht
    nat�rlich auch mit ganzen Briefen.
  \item Wenn Sie in einem Tastaturmakro einen Apostroph brauchen, gibt
    es Probleme, da der Apostroph als Stringbegrenzer dient. Sie
    m�ssen dann das Zeichen als Zahl eingeben.

    Beispiel:
    \begin{verbatim}
    ?'ihv'  'Ich hab' 39 's verstanden'  * Ich hab's verstanden
    \end{verbatim}
\end{itemize}

\newpage
\section{Drucken mit xEDIT}
Nat�rlich k�nnen Sie mit xEDIT auch Texte drucken, wobei es
unter Ausnutzung der heutzutage den (Nadel)Druckern eingebauten
"`Intelligenz"' durchaus m�glich ist, auch ganz ansprechende
Schriftst�cke zu erstellen. Allerdings m�ssen Sie in diesem Fall schon
recht genau wissen, wie Sie Ihren Drucker anzusteuern haben. Die Sache
d�rfte daher nur in Ausnahmef�llen von Interesse sein.

Trotzdem sollte aber nat�rlich der Ausdruck der Sonderzeichen und
Klammern klappen, weswegen Sie vielleicht trotzdem einmal in dieses
Kapitel hineinschauen sollten.

Alle folgenden Angaben beziehen sich auf den P2$^{\it Plus}$, einen
P6-kompatiblen 24-Nadel-Drucker. Viele Tintenstrahler und Laserdrucker
bed�rfen einer anderen Ansteuerung. Leider erm�glichen sie in der
Regel auch nicht alle Sachen, die im weiteren besprochen werden,
z.\,B. Blocksatz mit Proportionalschrift.

\subsection{Was Ihr Drucker macht \dots}
Drucker unterscheiden normale Zeichen und sogenannte Steuerzeichen.
Erstere sind die Zeichen, die Sie sp�ter auch ausgedruckt sehen,
w�hrend letztere dazu dienen, um zum Beispiel das Papier zu
transportieren oder eine Schriftart auszuw�hlen. Die wichtigsten
Steuerzeichen sind:
\begin{itemize}
  \item Das {\sf CR}-Zeichen (Zeichen Nr.{} 13 "`Carriage Return"')
    l��t den Drucker die eingegeben Zeile ausdrucken (wurde
    zwischengespeichert) und bewegt den Druckkopf danach an den linken
    Rand (den Sie definieren k�nnen).
  \item Das {\sf LF}-Zeichen (Zeichen Nr.{} 10 "`Line Feed"') l��t den
    Drucker das Papier eine Zeile weitertransportieren. Den Zeilenabstand
    k�nnen Sie selbst definieren. �brigens sind einige Drucker von
    Werk aus so eingestellt, da� f�r ein {\sf CR} zus�tzlich gleich
    ein {\sf LF} ausgegeben wird (meiner war's). Stellen Sie das ab,
    da bei {\sf ATARI} immer beide Zeichen gesendet werden. Sie haben
    sonst immer eine zus�tzliche wei�e Zeile zwischen Ihren Textzeilen.
  \item Das {\sf FF}-Zeichen (Zeichen Nr.{} 12 "`Form Feed"') l��t den
    Drucker das Papier bis zur n�chsten Seite transportieren.
  \item Das {\sf ESC}-Zeichen (Zeichen Nr.{} 27 "`Escape"') leitet
    eine Vielzahl von sogenannten Escape-Sequenzen ein, von denen es
    eine beachtliche Anzahl gibt. Keine Angst, die allermeisten werden
    Sie nie ben�tigen. Alle diese Escape-Sequenzen haben als erstes
    Zeichen das {\sf ESC}-Zeichen und danach ein Zeichen, das die
    gew�nschte Funktion ausw�hlt. Danach k�nnen bei vielen Sequenzen
    weiter Zeichen folgen, die als Parameter dienen.

    Beispiele:
    \begin{itemize}
      \item {\sf ESC E} schaltet die Fettschrift ein
      \item {\sf ESC F} schaltet die Fettschrift wieder aus
      \item {\sf ESC l (n)} setzt den linken Rand auf die Spalte, die
        Sie mit n eingeben. Geben Sie hier nicht eine Zahl ein,
        sondern das Zeichen mit der Nummer n.
      \item {\sf ESC Q (n)} setzt den rechten Rand entsprechend.
    \end{itemize}
\end{itemize}

�brigens befinden sich f�r Sie unsichtbar am Ende jeder Zeile im
Editor auch ein {\sf CR}- und ein {\sf LF}-Zeichen. Auch beim Einlesen
eines Textes wird dadurch das Zeilenende erkannt. Das ist {\sf
ATARI}-Standard, bei anderen Rechnerfamilien kann das Zeilenende
jedoch auch anders codiert sein.

\subsection{\dots{} und wie xEDIT es ihm beibringt}
Damit man nun alle diese Zeichen bequem an den Drucker �bergeben kann,
arbeitet der Druckertreiber in verschiedenen Arbeitsmodi:

\begin{description}
  \item[Interpret-Mode (Standard):]
    Der Druckertreiber schickt f�r jedes Zeichen, das er ausdrucken
    soll, ein oder mehrere Bytes an den Drucker. Diese Information
    befindet sich in der RSC-Datei, die Sie mit Hilfe von
    \verb|XED_INST.PRG| modifizieren k�nnen. Hierbei wird eine
    PRN-Datei eingelesen und ausgewertet. Eintr�ge k�nnen zum Beispiel
    so aussehen:
    \begin{verbatim}
    1 27 69        * Bold an als Zeichen Nummer 1
    2 27 70        * Bold aus als Zeichen Nummer 2
    \end{verbatim}
    Durch das erste Druckermakro wird erreicht, da� statt dem
    Zeichen Nr.~1 das {\sf ESC}-Zeichen und das Zeichen Nr.~69 gesendet
    werden, wodurch die meisten Nadeldrucker auf Fettschrift
    umschalten.
  \item[Stupid-Mode:]
    Wahrscheinlich ahnen Sie jetzt schon ein erstes Problem: Was machen
    Sie, wenn Sie Zeichen an den Drucker schicken wollen, ohne da� sie
    durch andere ersetzt werden, wenn Sie zum Beispiel in einer
    Escape-Sequenz eine 1 schicken wollen, die ja als \glq Bold
    an\grq{} interpretiert wird? Ganz einfach: Sie m�ssen den
    Interpreter ausschalten! Sie erreichen dies durch den kleinen
    Pfeil "`$\to$"' (Zeichen Nr.{} 255).\footnote{Das Zeichen
    erscheint {\em so\/} nur bei der Verwendung von \verb|XEDIT.RSC|.}
    Eingeschaltet wird er dann wiederum durch "`$\to$"'.
  \item[Sleep-Mode:]
    Wollen Sie Kommentare einbauen, m�ssen Sie den Druckertreiber in den
    Schlafzustand versetzen. Sie erreichen dies durch zwei Pfeile. Danach
    ignoriert der Druckertreiber alle Zeichen, bis er wieder durch zwei
    Pfeile aufgeweckt wird. Man kann so �brigens auch das Linefeed am Ende
    der Zeile unterdr�cken, falls dies mal n�tig sein sollte.
  \item[Learn-Mode:]
    Zur einfachen Gestaltung von Tabellensatz in Proportionalschrift und
    �hnlichem habe ich auch einen Learn-Modus eingebaut. Sie k�nnen so im
    Text die Druckersequenz f�r ein Zeichen neu definieren, das Sie noch
    h�ufiger ausdrucken wollen. Folgendes Format ist einzuhalten:

    {\sf $\to$[ESC][umzudefinierendes Zeichen][beliebige
    Zeichen-Abfolge]$\to$}
\end{description}

\subsection{Einfache Anpassungen}
Wenn Sie mit xEDIT nur einfache Listings drucken wollen, reicht es
vollkommen, da� der Ausdruck der Sonderzeichen und der Klammern
korrekt klappt.

Zuerst einmal sollten Sie Ihren Drucker auf den amerikanischen
Zeichensatz umschalten. Ja, Sie haben richtig gelesen: Viele
Unerfahrene stellen den deutschen Zeichensatz ein und wundern sich
dann, wenn statt Klammern pl�tzlich Umlaute gedruckt werden.

Danach sollten Sie daf�r Sorge tragen, da� Ihr Drucker einen
erweiterten IBM-Zei"-chen"-satz benutzt. Nadeldrucker bieten in der
Regel keinen anderen, bei Laserdruckern gibt es meist eine recht gro�e
Auswahl.

Wenn Sie nun die ersten Zeilen von \verb|TESTPAGE.TXT| drucken,
sollten zumindest die Umlaute schon richtig r�berkommen. Sp�testens
beim Eszet "`�"' (Zeichen Nr.{} 158) d�rfte es aber Probleme geben. Das
liegt daran, da� sich an der Stelle des Eszets im
{\sf ATARI}-System-Zeichensatz im IBM-Zeichensatz das Pesetas-Zeichen
befindet. Zur Behebung des Problems gibt es zwei L�sungen:
\begin{enumerate}
  \item Sie drucken statt dem Eszet einfach das Beta (Zeichen Nr.{} 225)
    aus, was in der IBM-Welt gerne gemacht wird. Allerdings
    gibt es Unterschiede zwischen diesen beiden Zeichen. In der
    PRN-Datei m��ten Sie folgende Zeile eintragen.
    \begin{verbatim}
    158  225      * Beta statt Eszet
    \end{verbatim}
  \item
    Sie aktivieren kurzfristig den deutschen Zeichensatz, geben das
    Zeichen Nr.{} 126 aus (dort sitzt ansonsten die Tilde), und schalten
    wieder auf den amerikanischen Zeichensatz um. So wird's gemacht:
    \begin{verbatim}
    158  27 82 2 126 27 82 0  * Eszet
    \end{verbatim}
    Das Druckergebnis sieht eindeutig besser aus.
\end{enumerate}
Die n�chste H�rde ist das Paragraph-Zeichen "`\S"' (Zeichen Nr.{} 221).
Hier empfehle ich, entweder das Zeichen Nr.{} 21 oder das Zeichen
Nr.{} 64 mit kurzfristig aktivierten deutschen Zeichensatz zu drucken.
Falls Sie das Grafikzeichen, das sich im IBM-Zeichensatz an der
Position 221 befindet, weiterhin gerne benutzen wollen, empfehle ich,
schon bei der Texteingabe das Zeichen Nr.{} 21 einzusetzen. Wie
ein entsprechendes Tastaturmakro auszusehen hat, wissen Sie ja
inzwischen.

Wenn Sie \verb|TESTPAGE.TXT| nun bis zu dem Abschnitt mit dem
Paragraph-Zeichen drucken k�nnen, haben Sie die einfache
Druckeranpassung beendet. Alle weiterf�hrenden Anpassungen erfordern
spezielle Steuerzeichen {\em innerhalb\/} des Textes und f�hren somit
zu einem speziellen Textformat, das in dieser Form nur von xEDIT
verstanden wird. Eine Weiterverarbeitung mit anderen
Textverarbeitungsprogrammen ist daher erschwert, manchmal sogar
unm�glich.

\subsection{Formatiertes Drucken}
Wie bereits erw�hnt, l��t sich mit xEDIT so ziemlich alles, was Sie
w�nschen, zum Drucker r�berschicken. In gewissen Umfang wird sogar
Proportionalschrift unterst�tzt, da die Abmessungen der aktuellen
Zeile in der Infozeile zu sehen sind und ein manueller Zeilenumbruch
unterst�tzt wird. Allerdings ist das eher eine Sache f�r Experten,
reinen Anwendern wird die Sache wohl zu umst�ndlich sein.

Tippen Sie Ihren Text also einfach zuerst mal ein, und achten Sie
dabei nicht allzu sehr auf eine korrekte Formatierung. Erst wenn
feststeht, da� am Text keine �nderungen mehr vorgenommen werden
m�ssen, sollten Sie mit der Formatierung beginnen.

Am einfachsten haben Sie es, wenn Sie auf den Einsatz von
Proportionalschrift verzichten. Dann werden die Zeichen an den
Positionen ausgedruckt, an denen Sie sich auch auf dem Bildschirm
befinden. Nutzen Sie die Tastenkombination Control/Return, um den
Zeilenrest in die n�chste Zeile zu schreiben, und Control/Tilde, um
zwei Zeilen zusammenzuf�gen. Wenn Sie nun bestimmte Worte mit
Attributen (fett, unterstrichen, usw.) versehen wollen, f�gen Sie die
entsprechenden Druckersteuerzeichen in Ihrem Text ein. Die Tabelle mit
diesen Zeichen erhalten Sie durch den Ausdruck von
\verb|TESTPAGE.TXT|. W�hlen Sie danach an Ihrem Drucker die gew�nschte
Schrift, und der Ausdruck kann beginnen.

Wenn Sie mit Proportionalschrift arbeiten wollen, wird die Sache etwas
komplizierter. Da hier die Zeichen nicht mehr alle gleich breit sind,
klappen bestimmte Sachen, wie das �bereinandersetzen in Tabellen nicht
mehr. Auch ist der Randausgleich nun nicht mehr so einfach m�glich.
Trotzdem brauchen Sie nun nicht gleich das Handtuch schmei�en, denn
durch eine geschickte Steuerung l��t sich Ihr Drucker �berreden, so
ziemlich jeden gew�nschten Effekt auszugeben. Wenn Sie einen P6 oder
eine kompatiblen Drucker besitzen, k�nnen Sie sogar Texte in
Proportionalschrift und Blocksatz ausdrucken, allerdings m�ssen Sie
dann schon ein wenig in die Trickkiste greifen. Davon handeln die
n�chsten Abschnitte.

\subsubsection{Blocksatz mit Proportionalschrift}
Modernere (Nadel)Drucker sind von Haus aus in der Lage, den linken
und den rechten Rand auszugleichen, indem sie die Leerzeichen
innerhalb der Zeile entsprechend dehnen oder stauchen (schauen Sie
nach, ob Ihr Drucker die Escape-Sequenz {\sf ESC a (3)} unterst�tzt).
Nat�rlich geht dies nur bis zu einem bestimmten Ma�e, und man mu�
selbst daf�r Sorge tragen, da� die Zeilen schon in etwa die richtige
L�nge besitzen. Sie m�ssen Ihren Text also selbst von Hand umbrechen.

Zuerst m�ssen Sie allerdings den linken und den rechten Rand
definieren. Ich empfehle hiebei "`meine"' Standardeinstellung �ber die
Zeichen Nr.{} 23 und 24, die R�nder sind dann in der zehnten und der
dreiundsiebzigsten Spalte. Dann m�ssen Sie eventuell noch mit
{\sf ESC k (n)} eine Proportionalschrift ausw�hlen, falls Ihr Drucker
mehrere auf Lager hat, und mit dem Zeichen Nr.{} 30 auf
Proportionalschrift umschalten.

Schalten Sie nun im Menu in den "`Dokument-Modus"' um, denn dann wird
beim Umbruch innerhalb eines Wortes gleich ein Trennzeichen eingef�gt.
Den automatischen Umbruch m�ssen Sie deaktivieren, schalten Sie hierzu
bei "`RSC-Einstellungen"' auf "`Glocke"'.

Au�erdem ist es sinnvoll, die Infozeile zu aktivieren, denn dann
sehen Sie bei \verb|Prop. X| die augenblickliche Cursorposition und bei
\verb|Prop. L| die L�nge der Zeile in der gew�hlten Proportionalschrift.
Die Einheiten, die hierbei benutzt werden sind letztendlich ohne
Bedeutung, es kommt nur darauf an, da� die Relationen der
Zeichenbreiten untereinander in etwa stimmen. Standardm��ig habe ich
drei Breitentabellen installiert, die f�r drei grundlegende
Schrifttypen ausgelegt sind. Aktivieren Sie jetzt die passende:
\begin{description}
  \item[Bold PS:] Eine etwas plumpe Proportionalschrift, bei der die
    Zeichenbreiten wenig variieren. Leider ist diese Schrift bei vielen
    Druckern die einzige eingebaute Proportionalschrift.
  \item[Times PS:] Eine weit verbreitete Proportionalschrift mit Serifen
    (die kleinen H�kchen an den Buchstaben), die relativ breite
    Gro�buchstaben besitzt. Es gibt viele �hnliche Schriften mit anderem
    Namen, die �hnliche Abmessungen haben.
  \item[Helvette PS:] Eine serifenlose Schrift, die das dichteste
    Schriftbild erm�glicht. Leider sind bei dieser Schrift die
    Leerzeichen recht schmal, so da� sehr genau umgebrochen werden mu�,
    damit die Toleranzparameter nicht �berschritten werden.
\end{description}
Mit hoher Wahrscheinlichkeit werden Sie an den Breitentabellen nie
etwas �ndern m�ssen, da die Breiten nur in etwa stimmen m�ssen, und
wohl nur ungew�hliche Schriften ganz andere Abmessungen besitzen.

Nun k�nnen Sie mit dem Formatieren des Textes beginnen. Dr�cken Sie
Control/L, springt der Cursor an die Position, an der die aufaddierten
Breiten der Buchstaben das erste Mal den Wert~2200 �berschreiten.
Dieser Wert ist voreingestellt und bezieht sich auf Texte, bei denen
sich der linke Rand in der zehnten und der rechte in der
dreiundsiebzigsten Spalte befindet. Dieses Format l��t links und
rechts vom Text gleich viel wei�en Platz auf dem Papier. Wenn Sie ein
anderes Format benutzen, sollten Sie diesen Wert mit
\verb|XED_INST.PRG| anpassen. Sollte sich der Cursor nun weit hinter
der Zeile befinden, ist die Zeile zu kurz, und Sie m�ssen nun die
n�chste Zeile hinzuladen (Control/Tilde) und noch einmal Control/L
dr�cken. Der Cursor steht nun an der Position, an der die Zeile
optimal ausgef�llt ist. Nat�rlich k�nnen Sie an dieser Position in der
Regel keinen Umbruch machen, da der Cursor meist mitten in einem Wort
steht. Gehen Sie nun mit dem Cursor an eine Stelle in der N�he dieser
Position, an der ein {\em korrekter\/} Umbruch m�glich ist, wobei
nat�rlich auch getrennt werden kann. Dr�cken Sie nun Control/Return,
um den Zeilenrest abzuspalten, und beginnen das ganze Spiel bei der
n�chsten Zeile von vorn. Verfahren Sie so bis Sie den ganzen Absatz
formatiert haben.

Beachten Sie, da� Sie durchaus ein ganzes St�ck von der optimalen
Umbruchstelle umbrechen k�nnen, die Drucker sind da recht tolerant. Im
Zweifelsfalle sollten Sie sich jedoch links umschauen, da ein Dehnen
der Leerzeichen besser geht als ein Stauchen. Machen Sie am besten mal
ein paar Probedrucke mit einem k�rzeren Text, Sie bekommen dann ein
Gef�hl daf�r, wie weit Sie gehen k�nnen.

Als letztes m�ssen Sie am Anfang der ersten Zeile des Absatzes noch
das Zeichen Nr.{} 17 eingeben, das den Blocksatz aktiviert, und am
Anfang der letzten Zeile noch das Zeichen Nr.{} 14 eingeben, da diese
ja wieder linksb�ndig gesetzt werden soll.

\medskip

Sicherlich ist dieser Abschnitt nicht gerade leicht verst�ndlich, aber
ich denke, wenn Sie sich die Demos einmal im Quelltext anschauen,
werden Sie die Sache schon verstehen. Im �brigen mu� ich sagen, da�
das manuelle Umbrechen auch seine Vorteile hat, denn was n�tzt ein
automatischer Umbruch, wenn jede dritte Trennstelle falsch ist, oder
viele gute Trennm�glichkeiten erst gar nicht erkannt werden. Ein
wirklich {\em guter\/} automatischer Umbruch erfordert einen
betr�chtlichen Aufwand und w�rde den Rahmen dieses Editors bei weitem
sprengen.

\subsubsection{Tabellensatz in Proportionalschrift}
Nachdem Sie jetzt den Blocksatz einsetzen k�nnen, werden Ihnen in der
Praxis h�ufiger Probleme begegnen, f�r deren L�sung ich Ihnen hier ein
paar "`Tricks"' verraten m�chte.

Ein Problem, da� sich Ihnen h�ufiger stellen wird, ist das korrekte
�bereinandersetzen in Auf"|listungen oder Tabellen. Sie m�chten zum
Beispiel folgende Preisliste erstellen:
\begin{verbatim}
Mega ST 1                     1198.00 DM
Monitor SM124                  298.00 DM
Frankenthaler Kurf�rst Pils     17.98 DM
\end{verbatim}
Nat�rlich k�nnten Sie hier mit Blocksatz arbeiten, aber es gibt
Schriften, bei denen das Leerzeichen so schmal ist, da� es einen echte
Gl�ckssache ist, wenn die Sache klappt. Und nat�rlich will ich Ihnen
hier ja auch einen Trick verraten.

Wie Sie sich vielleicht errinnern, druckt der Drucker eine Zeile erst
dann aus, wenn ein {\sf CR}-Zeichen gesendet wird. Danach befindet
sich der Druckkopf noch immer in der selben Zeile, und Sie k�nnen noch
eine zweite, anders formatierte Zeile an den Drucker schicken. Genau
dieses Verfahren soll auch hier angewendet werden. Der Artikel soll in
einer linksb�ndigen und der Preis in einer rechtsb�ndigen Zeile
gedruckt werden. Hierzu entwickelt man sich zuerst zwei Druckermakros.
W�hlen Sie hierzu zwei nationale Sonderzeichen, die Sie nicht
ben�tigen. Im weiteren nehme ich an, da� Sie sich f�r die Zeichen
Nr.{} 166 und 167 entschieden haben.

Das Zeichen Nr.{} 166 wird jeweils vor den Artikel gestellt, und soll
eine linksb�ndige Zeile beginnen. Sie m�ssen also folgende Zeile
eingeben:

{\sf $\to$/ESC/(166)/ESC/a/(0)/$\to$}

(nat�rlich ohne "`/"' und die entsprechenden Zeichen, nicht diesen Text)

Das Zeichen Nr.{} 167 wird jeweils vor den Preis gestellt, und soll
daf�r sorgen, da� Ausdruck der linksb�ndigen Zeile gestartet wird, und
danach eine rechtsb�ndige Zeile eingeleitet wird. Sie m�ssen also
folgende Zeile eingeben:

{\sf $\to$/ESC/(167)/CR/ESC/a/(2)/$\to$}

Jetzt m�ssen Sie nur noch den linken und rechten Rand definieren und
auf Proportionalschrift umschalten. Geben Sie also noch folgende Zeile
ein und beginnen dann den Ausdruck:

{\sf ESC/l/$\to$/(20)/$\to$~~~ESC/Q/2~~~(30)}

(die Pfeile um das Zeichen Nr.{} 20 ben�tigen Sie, damit wirklich das
Zeichen Nr.{} 20 ausgegeben wird, und nicht die Sequenz, die auf
"`normalstellen"' umschaltet.)

�brigens finden Sie genau dieses Beispiel auch bei den Demos
(\verb|PREISLST.TXT|).


\newpage
\section{Miszellaneen}
\subsection{Was tun bei Problemen?}
In diesem Abschnitt m�chte ich kurz auf einige typische
Problemsituationen eingehen, die in der Praxis h�ufiger auftreten
bzw.{} bei mir oder anderen Anwendern schon einmal aufgetreten sind.

Erster Grundsatz: Don't panic. xEDIT hat eine lange Erprobungsphase
hinter sich, und es ist unwahrscheinlich, da� ein Fehler eintritt, der
zu Datenverlusten f�hrt.

Wenn Sie mit Disketten arbeiten, d�rfte wohl am h�ufigsten die Meldung
"`Ordner nicht gefunden"' auftauchen. Sie haben dann wahrscheinlich
w�hrend der Arbeit die Diskette gewechselt und vergessen, beim Sichern
die Ursprungsdiskette einzulegen. Legen Sie nun die richtige Diskette
ein, oder benutzen Sie die Funktion "`Sichern als \dots"'.

Wenn xEDIT aus einer Shell heraus gestartet wurde und es bei "`Sichern
\& Verlassen"' zu einer Fehlermeldung kommt, seien Sie nicht
beunruhigt. Standardm��ig wird von xEDIT ein Returncode von "`1"'
�bergeben, der signalisieren soll, da� nun der Compiler oder \TeX{}
gestartet werden soll. Leider betrachten nun manche Shells diesen Code
als Meldung, da� ein Fehler aufgetreten ist. �ndern Sie dann via
\verb|XED_INST.PRG| den Returncode auf "`0"' ab.

Laserdrucker geben eine Seite erst dann aus, wenn sie komplett gef�llt
ist oder ein Formfeed (Zeichen Nr.~12) gesendet wird. Wenn Sie "`Block
drucken"' benutzen, m�ssen Sie den Drucker danach deselektiern und
dann die FEED-Taste dr�cken, damit das Papier ausgegeben wird.

\subsubsection*{Fehler einkreisen!}
Falls Sie der Meinung sind, einen Fehler des Programm gefunden zu
haben, versuchen Sie bitte, den Fehler so weit wie irgend m�glich
einzukreisen. Wichtig ist, da� Sie mir mitteilen k�nnen, auf welche
Weise ich den Fehler auch bei mir zuhause reproduzieren kann. Fehler,
die bei mir nicht auftreten, kann ich schlecht finden. Dann bleibt
schlimmstenfalls nur das Telefon und eine "`Online-Session"' (oder ein
Hausbesuch).

Am besten booten Sie Ihren Rechner erneut, diesmal aber so "`nackt"'
wie m�glich, also mit einem Minimum an Autoordner-Programmen und
Accessories.\footnote{Bedenken Sie, da� ich keine Programme sammle,
und daher nicht jede Konfiguration testen kann.} Versuchen Sie nun,
einen reproduzierbaren Fall f�r den Fehler zu finden (mindestens
zweimal erzeugen). Falls Sie {\sc SysMon} haben, w�re es f�r mich sehr
hilfreich, wenn Sie mir zus�tzlich ein Protokoll der
Betriebssystemaufrufe zukommen lassen k�nnten.

Bedenken Sie: Fehlermeldungen, wie "`xEDIT ist mir beim Tippen eines
Briefes mit drei oder vier Bomben abgest�rzt"' oder "`\dots Meine
Konfiguration: folgende 23 Autoordner-Programme \dots, die folgenden
MultiACCs \dots (kennst Du �brigens \dots, goil sag' ich),
PC-Emulator, \dots"', sind f�r mich praktisch wertlos. Allerdings mu�
ich zur Ehrenrettung der xEDIT-Anwender sagen, da� die meisten
Fehlerberichte bis jetzt sehr detailliert und hilfreich waren.

Und noch eine letzte Sache: Das Folding hat sich (bis auf eine
Ausnahme vor langer Zeit) als fehlerfrei erwiesen. Sollte wider
Erwarten trotzdem einmal die Falten-Struktur durcheinander geraten,
speichern Sie Ihren Text mit sichtbarem Faltinfo ab und l�schen es
danach. Gleich darauf sollten Sie mich benachrichtigen, wie diesen
Fehler erzeugt haben.

\subsection{Tabulatoren}
Gleich beim Laden von Texten expandiert xEDIT automatisch die
Tabulatoren (Zeichen Nr.{} 9), anschlie�end sind daher an den
entsprechenden Stellen nur noch Leerzeichen zu finden. Beim Sichern
einer Datei werden grunds�tzlich keine Tabulatoren geschrieben, und
das halte ich auch f�r richtig so: Tabulatoren halte ich pers�nlich
f�r einen �rgerlichen Anachronismus aus der Zeit des chronischen
Speichermangels. Heutzutage steht der geringen Platzersparnis eine
Reihe von Nachteilen gegen�ber:
\begin{itemize}
  \item Man wei� nie so recht, welcher Tabulatorabstand bei einem
    fremden Text verwendet wurde. Da es hierf�r keine Normen gibt,
    hilft in der Regel nur mehrmaliges Probieren beim Laden.
  \item Bei der Programmierung eines Editors erfordern die
    Unterst�tzung von Tabulatoren zus�tzlichen Aufwand.
  \item Der Cursor "`springt"' irritierend.
  \item Man nehme einen Text mit Tabulatoren, drucke ihn �ber den
    Desktop aus, verschicke ihn �ber eine Mailbox an einen Bekannten,
    lade ihn in eine Textverarbeitung und vergleiche \dots
\end{itemize}
Anders ist es nat�rlich, wenn man Zeilenlineale zur Verf�gung hat:
Hier sind die sogenannten "`echten"' Tabulatoren ausgesprochen
sinnvoll.

Apropos Platzersparnis: Wer wirklich einmal einen Text komprinieren
will, sollte besser einen Packer verwenden, das ist wesentlich
effektiver (und hat zus�tzlich den Vorteil, da� Fehler anhand der
Pr�fsumme erkannt werden k�nnen).

\subsection{Initialisierung des Klemmbretts}
Lange Zeit hat {\sf ATARI} das Klemmbrett reichlich stiefm�tterlich
behandelt, so ist z.\,B. sein Pfad in alten TOS-Versionen nicht
vorgegeben. Falls xEDIT kein Klemmbrett vorfindet, versucht er, es
bei Zugriffen darauf nach folgendem Verfahren zu finden bzw.{}
anzulegen:
\begin{verbatim}
if (kein Klemmbrettpfad) /* scrap_read() */
  Laufwerke ermitteln;

  Bei C: angefangen
  if (Ordner \CLIPBRD gefunden)
    Pfad setzen; /* scrap_write() */
    fertig;
  else
    Ordner \CLIPBRD anlegen
    if (hat geklappt)
      Pfad setzen;
      fertig;
  n�chstes Laufwerk (Schreibschutz!)

  zuletzt A: probieren
  if (Fehlschlag)
    Fehlermeldung!;
\end{verbatim}
Im Normalfall landet das Klemmbrett auf diese Weise bei
\verb|C:\CLIPBRD|.

\subsection{Format der Faltinfo-Dateien}
Tja, wer jetzt gedacht hat, ich w�rde den {\em genauen\/} Aufbau der
Faltinfos erl�utern, der t�uscht sich. Grunds�tzlich hat nur xEDIT
etwas damit zu tun.\footnote{Sie k�nnen aber trotzdem bei mir
nachfragen, wie das Falten von Texten funktioniert, das ist kein
"`Betriebsgeheimnis"'.}

Aber eine �rgerliche Sache bleibt da: Sobald Sie mit einem anderen
Utility �nderungen an Ihren Texten vornehmen, wird das Faltinfo
ung�ltig. Sie erinnern sich: Es steht darin die genaue Dateil�nge, der
Dateiname (ohne Tilde) und die Zeilenzahl; sobald eine Angabe nicht
stimmt, wird es f�r ung�ltig erkl�rt.

Falls sich an den Zeilenumbr�chen nichts ge�ndert hat, gibt es einen
Ausweg: Die Dateil�nge wird als LONG gleich am Faltinfo-Anfang
gespeichert. Wenn Sie dort die neue Dateil�nge eintragen, wird das
Faltinfo wieder g�ltig. Gleich hinter diesem LONG befindet sich der
korrekte Dateiname ohne Tilde.

\subsection{Die Suche nach der RSC-Datei}
Eine ausgesprochen nichttriviale Sache ist f�r xEDIT die Suche nach
seiner RSC-Datei. In Version 2.00 geht sie folgenderma�en vonstatten:

Bei Programmstart wird �berpr�ft, ob eine der Sondertasten gedr�ckt
ist, falls ja, wird die Fileselectbox aufgerufen, und der Anwender
kann selbst bestimmen, welche RSC-Datei geladen werden soll.

Ansonsten wird zuerst die AES-Funktion \verb|shel_read()| benutzt, um
festzustellen, aus welchem Verzeichnis heraus xEDIT gestartet wurde.
Das klappt allerdings nur, wenn das Programm via \verb|shel_write()|
gestartet wurde, was leider nur relativ wenige Shells
machen.\footnote{Das ist meiner Meinung nach aber der Firma {\sf
ATARI} anzulasten. Offenbar kann sie sich bis zum heutigen Tag unter
einer Shell nur eine Art Desktop-Ersatz vorstellen; da� man via {\tt
shel\_write()} einfach nur einen externen Editor aufrufen m�chte, ist
offenbar nicht vorgesehen.\par Vor MultiTOS gibt es keine offiziell
dokumentierte M�glichkeit, �ber diese AES-Funktion zwischendurch
andere Prozesse zum Zuge kommen zu lassen. Leider kann man nun unter
MultiTOS Prozesse nur {\em parallel\/} starten, was z.\,B. bei einem
Compilersystem keinen Nutzen bringt, schlie�lich m�ssen dort alle
Arbeitsg�nge nacheinander durchgef�hrt werden. Problematisch ist
weiterhin, da� schon bei �lteren TOS-Versionen die zu �bergebenden
Parameter mehrfach umdefiniert wurden. Ich habe vollstes Verst�ndnis
f�r alle Programmierer, die auf {\tt shel\_write()} verzichten.}
Falls das nicht geschieht, erf�hrt xEDIT in der Regel den
Namen des aufrufenden Programms, nicht seinen eigenen. Deswegen findet
eine �berpr�fung des Namens statt. Nur wenn er \verb|XEDIT.PRG|
lautet, wird dieser Pfad benutzt, um eine RSC-Datei zu laden.

Falls das Laden via \verb|shel_read()| nicht geklappt hat, wird die
Funktion \verb|shel_find()| aufgerufen, um nach einer RSC-Datei
zur Maske \verb|XED*.RSC| zu suchen. Leider klappt das h�ufig nur,
wenn das aktuelle Gemdos-Verzeichnis auf dem Ordner mit
\verb|XEDIT.PRG| liegt.

Zuletzt wird die Gemdos-Funktion \verb|Fs_first()| aufgerufen, um den
genauen Namen der RSC-Datei zu erfahren, und die Datei dann endlich
geladen.

Abhilfe bei Problemen: Entweder Sie bringen Ihrer Shell bei, da� sie
das aktuelle Gemdos-Verzeichnis auf den xEDIT-Ordner legt, oder Sie
bringen die RSC-Datei in einem Verzeichnis unter, das von der
AES-Funktion \verb|shel_find()| durchsucht wird. Hierf�r bietet sich
das Wurzelverzeichnis der Boot-Partition an.

\subsection{Die Auswertung der Commandline}
Nat�rlich ist xEDIT in der Lage, die Commandline auszuwerten. Auf
diese Weise kann das aufrufende Programm dem Editor mitteilen, welche
Dateien automatisch geladen werden sollen.\footnote{Es wird nur die
Commandline auswertet, andere Verfahren der Parameter�bergabe werden
von xEDIT augenblicklich nicht unterst�tzt. Und auch bei der �bergabe
�ber die Commandline gilt es, recht viele unterschiedliche Formen (und
auch manch fehlerhafte) zu beachten.}

Folgende Formate werden von xEDIT beispielsweise unterst�tzt:
\begin{verbatim}
A:\TEST.LOG  A:\TEST.TEX 10 2
A:TEST.TEX
\TEST.TEX
TEST.TEX
\end{verbatim}
Im ersten Beispiel wird zuerst die Datei \verb|A:\TEST.LOG| und danach
\verb|A:\TEST.TEX| geladen, wobei der Cursor danach in die zehnte
Zeile und die dritte\footnote{Kein Witz!} Spalte springt. Weitere
Zahlen w�rden ignoriert werden. Im zweiten Beispiel wird die Datei
\verb|TEST.TEX| aus dem aktuellen Verzeichnis des Laufwerks \verb|A:|
geladen. Dieses kann --- mu� aber nicht --- das Wurzelverzeichnis
sein. Im dritten Beispiel wird die Datei im Wurzelverzeichnis des
aktuellen Laufwerks genommen, w�hrend im letzten Beispiel die Datei
aus dem aktuellen Verzeichnis des aktuellen Laufwerks geladen wird.

Beachten Sie ferner, da� standardm��ig die Autosplit-Option aktiviert
ist, bei �bergabe mehrerer Texte �ber die Commandline wird das Fenster
daher automatisch in einen oberen und unteren Teil gespalten. Diese
Option k�nnen Sie mit dem Installationsprogramm deaktivieren.

Wenn Sie eine Shell benutzen, deren Commandline-Format zu
Fehlinterpretationen f�hrt, melden Sie sich bitte bei mir, damit ich
das eventuell ber�cksichtigen kann.

\subsection{Zur Speicherverwaltung}
Seit Version 2.00 hat xEDIT eine dynamische Speicherverwaltung und
beansprucht nicht mehr fast den gesamten Arbeitsspeicher. Das hat
neben Vorteilen allerdings auch einen Nachteil: Da xEDIT mit ziemlich
gro�en Speicherbl�cken arbeitet, kann es bei Speicherfragmentierung
sein, da� kein ausreichend gro�er Speicherblock mehr gefunden werden
kann, obwohl die Summe der freien Bl�cke theoretisch ausreichen w�rde.

Der Speicherbedarf ist bei ein einigen Block-Funktion, speziell bei
"`Block formatieren"', besonders hoch. Unter Umst�nden kann dann f�r
einen 100 KByte gro�en Text mehr als 400 KByte freier Speicher
ben�tigt werden.

Abhilfe bei Problemen: Zuerst alle Texte sichern und danach verwerfen,
dadurch wird der gesamte Speicher freigegeben und eine inzwischen
eingetretene Fragmentierung r�ckg�ngig gemacht. Nun den gew�nschten
Text nochmals laden, und die Funktion erneut probieren. Falls nun
immer noch nichts geht, sollten Sie �berlegen, ob Sie den Text nicht
in kleinere Einheiten aufteilen sollten. Auch nur ein Megabyte
Hauptspeicher sollte eigentlich bei allen "`normalen"' Texten mehr als
ausreichend sein.

�bertreiben Sie es nicht mit den Falten!

\subsection{Geplantes}
xEDIT wird auch in Zukunft von mir gepflegt und gewartet werden.
Fehler werden umgehend beseitigt, Weiterentwicklungen werden aber
voraussichtlich einige Zeit lang nur in geringem Umfang vorgenommen
werden k�nnen (Zeitmangel).

Damit Sie sich lange Briefe sparen k�nnen, gebe ich an dieser Stelle
kurz meine eigene, pers�nliche Wunschliste an:
\begin{itemize}
  \item Ein flexibleres "`Suchen \& Ersetzen"' (viel Arbeit)
  \item Ein Undo (extrem viel Arbeit, da auch alle eventuellen
    �nderungen der Faltenstruktur r�ckg�ngig gemacht werden m�ssen)
  \item Zus�tzliche versteckte Grundfunktionen:
    \begin{itemize}
      \item Wort als Block markieren (einfach)
      \item Zeile als Block markieren (einfach)
      \item Sprung zur schlie�enden/�ffnenden Klammer (relativ
        einfach)
      \item Buchstaben vertauschen (einfach)
    \end{itemize}
  \item Funktion "`Zustand einfrieren und verlassen"' (mu� ich erstmal
    genauer �berdenken)
  \item Auswertung von Fehlerdateien eines Compilers (f�r einen
    {\em speziellen\/} relativ einfach, aber f�r alle?)
  \item Spaltenbl�cke (naja {\tt ;-)}
  \item Ein Utility, das "`Faltinfo-Leichen"' beseitigt (hatte schon
    mal damit angefangen)
  \item In \verb|XED_INST.PRG| das "`Klauen"' von GDOS-Fonts (ist halt
    Arbeit)
  \item Falls n�tig, MultiTOS-Anpassungen (hab' [noch] kein MTOS)
\end{itemize}

Nicht Geplantes:
\begin{itemize}
  \item Start als Accessory
  \item Funktion "`Zeilen sortieren"'
  \item \dots{} alle Sachen, die in eine Shell geh�ren (Diskette
    formatieren, Programm starten etc.)
\end{itemize}

\subsection{"`Tips und Tricks"', die dritte \dots}
An dieser Stelle kommen nun noch einige Sachen in loser Folge, die im
Zusammenhang mit xEDIT erw�hnenswert sind.

Wenn h�ufig zus�tzlich eine Fehlerdatei in der Commandline �bergeben
wird, empfehle ich, den kleinen Bildschirmzeichensatz zum Standard zu
machen. Auf diese Weise werden die Fehlermeldungen �bersichtlich im
kleinen Font dargestellt, w�hrend Ihr eigentlicher Text durch das
Faltinfo weiterhin in der von Ihnen beim Edieren benutzen Gr��e
erscheint.

Eine Textzeile wird auch beim blo�en "`nach rechts Gehen"' mit dem
Cursor umgebrochen. Das kann manchmal praktischer sein, da dann
automatisch einger�ckt wird.

In letzter Minute ist noch eine Schw�che von \verb|XED_INST.PRG|
aufgefallen: Wenn in einer einzulesenden Textdatei das Zeichen Nr.{}
26 auftaucht, wird irrt�mlich das Dateiende erkannt. Ich will diese
"`Unsch�nheit"' nicht auf die Schnelle beseitigen, da das an meinem
C-Compiler liegt, und ich mir nicht sicher bin, welche Randeffekte
sich aus der vorzunehmenden �nderung ergeben.

Es kann niemals schaden, eine formatierte Leerdiskette in der
Schublade zu haben, vor allem, wenn Sie nicht mit einer Festplatte
arbeiten.

Tintenstrahler und Laserdrucker m�ssen vor dem Rechner eingeschaltet
werden, ansonsten werden Sie nicht erkannt. Folgendes
GFA-Basic-Progr�mmchen kann m�glicherweise helfen:
\begin{verbatim}
Ret%=Xbios(30,32)
\end{verbatim}

Obwohl es inzwischen wohl bekannt ist, wie man mit der AES-Funktion
\verb|evnt_button()| beide Maustasten abfragen kann, m�chte ich den
"`Trick"' auch hier noch einmal er"-w�h"-nen, da er sich noch nicht allzu
weit herumgesprochen hat.
\begin{verbatim}
          move.w    #256+1,[intin]
          move.w    #3,2+[intin]        ; beide Tasten ...
          clr.w     4+[intin]           ; ... k�nnen gedr�ckt werden
          lea       aes_21(pc),a0
          bsr       call_aes
\end{verbatim}
Die 256, die \verb|ev_bclicks| addiert werden, erzeugen eine
"`nicht"'-Bedingung. Die Funktion kehrt also dann zur�ck, wenn {\em
nicht\/} beide Maustasten {\em losgelassen\/} sind.

Bei vielen Programmen und auch bei �lteren Versionen von xEDIT kommt
es immer wieder vor, da� mit alten TOS-Versionen die Maus nicht
richtig verwaltet wird, sie also mal zu oft oder mal zu selten
verschwindet. Ich glaube die Ursache erkannt zu haben: Es ist ganz
wichtig, zuerst den \verb|BEG_UPDT|-Aufruf zu machen, und erst danach
die Maus abzuschalten. Das Betriebssystem scheint ansonsten den
\verb|M_OFF|-Aufruf nicht dem Benutzer, sondern sich selbst
zuzuschreiben.

Apropos Maus: Wenn Sie ein Programm schreiben, bei dem die Maus
versteckt wird (z.\,B., weil sie beim Schreiben st�rt), vergessen Sie
bitte nicht, diese wieder sichtbar zu machen, bevor das Programm
verlassen wird.

Leider ist mir keine Shell bekannt, die die M�glichkeit bietet, andere
Programme dauerhaft im Speicher zu halten, obwohl das einfach zu
realisieren ist: Wird ein Programm zum ersten Mal gestartet, wird es
mit \verb|Pexec()| im Modus~3 geladen und dann mit \verb|Pexec()| im
Modus~4 aufgerufen. F�r alle weiteren Aufrufe reicht es dann,
\verb|Pexec()| im Modus~4 einzusetzen. Hierbei sind dann jedoch die im
"`Profibuch"' (10.~Auf"lage) gemachten Bemerkungen zu beachten. Ich
denke, da� diese M�glichkeit vor allem f�r Leute, die keine Festplatte
haben, von Interesse ist (ich hab' meine auch noch nicht so lange).
Probleme gibt es eigentlich nur dann, wenn das aufgerufene Programm
Initialisierungen vornimmt, die nur einmal durchgef�hrt werden d�rfen.
Spontan f�llt mir hierzu nur das Umrechnen von Objektb�umen von
Buchstabeneinheiten auf Pi"-xel"-ein"-hei"-ten ein. Bitte
ber�cksichtigen Sie in Ihren Programmen, da� sie auch mehrmals
gestartet sein k�nnten. Sie brauchen dazu wohl nur ein Flag, das bei
der Initialisierung gesetzt wird und anzeigt, da� die Initialisierung
schon einmal durchgef�hrt wurde.

Manchmal besteht der Wunsch den Tastaturpuffer zu l�schen z.\,B. bevor
eine selbstverwaltete Dialogbox aufgerufen wird. Von den vielen hierzu
m�glichen Methoden ist meiner Meinung nach nur die folgende
GEM-konform, leider aber auch nicht die schnellste: Man wartet
gleichzeitig auf ein Tastatur- und ein Timerereignis, wobei man als
Zeitintervall 1~ms angibt. Letzteres f�hrt dazu, da�
Tastaturereignisse zuerst gemeldet werden. Erst wenn keine
Tastendr�cke mehr gespeichert sind, wird das Timerereignis gemeldet.
Zur Verdeutlichung der entsprechende Auszug aus dem xEDIT-Quelltext:
\begin{verbatim}
clr_keys: move.w    #1+32,[intin]      ; Tastatur und Timer abfragen
          move.l    #$10000,28+[intin] ; 1 ms warten
          lea       aes_25(pc),a0      ; evnt_multi aufrufen
          bsr       call_aes(pc)
          move.w    [intout],d0
          btst      #5,d0              ; schon Timer-Event gemeldet?
          beq.s     clr_keys           ; nein!
          rts
\end{verbatim}

\subsection{Zum Abschlu�}
Erfahrungsgem�� werden auch diesmal noch einige schwer zu entdeckende
Fehler in xEDIT vorhanden sein, allerdings gab es beim Schreiben
dieses Handbuchs keinerlei Probleme mehr. Wenn Sie in Zukunft eine
fehlerbereinigte Version des Programms ben�tigen, k�nnen Sie mir
einfach eine Diskette und einen ausreichend frankierten R�ckumschlag
zusenden. Hierzu m�ssen Sie {\em nicht\/} registrierter Anwender sein.
Grunds�tzlich empfehle ich aber, mich zuvor kurz mal anzurufen, da
sich am Telefon viele Sachen leichter und schneller kl�ren lassen.

Registrierte xEDIT-Anwender erhalten neue Versionen des Programm
automatisch von mir zugeschickt. Das gilt allerdings nur f�r "`gro�e
Updates"', da ich unm�glich bei jeder kleinen �nderung einen Berg von
Post bearbeiten kann. Grunds�tzlich kann aber jeder jederzeit die
neueste (Test)Version des Programms zum Kennenlernen bei mir
anfordern (Diskette \& R�ckumschlag).

Ich m�chte mich an dieser Stelle bei allen Leuten bedanken, die
durch aufmunternde Briefe, Verbesserungsvorschl�ge und Fehlerberichte
mitgeholfen haben, den Editor weiterzuentwickeln. Ich w�rde mich
freuen, wenn auch in Zukunft der Kontakt zu den Anwendern so gut
bleiben w�rde.

Ansonsten w�nsche ich Ihnen viel Spa� mit xEDIT,
\begin{center} Alexander Gr�pl \end{center}

\newpage
\subsection*{Vertriebsbedingungen:}
Obwohl durch das Stichwort "`Shareware"' alles klar sein sollte,
m�chte ich trotzdem an dieser Stelle noch einmal auf einige
Sachen deutlich hinweisen:

Das Programm kann (und soll) von jedem in beliebig vielen Kopien
getestet und weitergegeben werden. Erst bei regelm��iger
Benutzung sind die Anwender verpflichtet, eine Shareware-Geb�hr
von zwanzig Mark zu entrichten.

Das Progamm mu� immer vollst�ndig mit den �brigen Dateien des
xEDIT-Ordners weitergegeben werden, damit keine verst�mmelten
Versionen in Umlauf kommen (sollte eigentlich selbstverst�ndlich
sein, ist es aber nicht). Das gilt besonders auch f�r die
private Weitergabe!

�nderungen am Programm oder den begleitenden Dateien haben zu
unterbleiben oder sind zumindest deutlich(!) als nicht von mir
stammend kenntlich zu machen. Wenn Sie pers�nliche Anpassungen
weiterreichen wollen, kopieren Sie sie au�erhalb des xEDIT-Ordners.
Im Zweifelsfalle am besten bei mir nachfragen.

Das Programm darf vor der Weitergabe "`gepackt"' werden, das
sollte nach M�glichkeit aber unterbleiben, da das Entpacken f�r
Leute ohne Festplatte umst�ndlich ist.

Das Programm darf nicht verkauft werden.

PD-Versendern ist die Weitergabe des Programms gestattet, sofern
sie f�r ihre Disketten keine �ber das �bliche Ma� gehende Geb�hr
verlangen. Die Obergrenze liegt f�r mich hierbei zur Zeit bei
zehn Mark. Analoges gilt f�r die Weitergabe per DF�.

Jede kommerzielle Verwertung bedarf meiner ausdr�cklichen
Genehmigung. Diese liegt f�r mich u.\,A. auch dann vor, wenn ein
Copyright auf den betreffenden Disketten liegt.

{\bf Die Benutzung des Programms erfolgt auf eigene Gefahr, es wird
jede Haftung f�r Sch�den abgelehnt.}

\end{document}

