\documentstyle[12pt,german,dina4]{report}
\pagestyle{headings}
\parindent0cm
\parskip1ex plus0.5ex minus0.5ex
\textheight22cm
\voffset-0.7cm
\sloppy
\raggedbottom
\setcounter{secnumdepth}{3}
\setcounter{tocdepth}{3}
\title{\Huge \bf Cross V4.1 Manual}
\author{Jürgen Weinelt\\
        Zur Kanzel 1\\
        D--8783 Hammelburg\\
        Deutschland}
\date{7. August 1991}
%
\begin{document}
%
\maketitle
%
\begin{abstract}
  Cross V4.1 ist ein Programm zur computerunterstützten Erzeugung
  von Gitterkreuzworträtseln (ein CAGK-Programm sozusagen). Das Programm
  arbeitet (soweit mir das bekannt ist) mit jeder Amiga-Konfiguration
  problemlos zusammen.

  Cross V4.1 ist im Augenblick zweisprachig (Deutsch und Englisch), kann
  aber ohne eine Änderung am Programm selbst leicht in andere Sprachen
  übersetzt werden, weil (fast) alle Programmtexte in einer eigenen
  Meldungsdatei abgelegt sind.

  Cross V4.1 ist Freeware, darf also auf nicht-kommerzieller Basis
  frei weitergegeben werden. Profite darf man dabei allerdings nicht
  machen; ich verdiene nichts an diesem Programm, also habe ich
  auch etwas dagegen, wenn andere daran verdienen.

  Cross V4.1 kann nun auch RESIDENT geladen werden und ist komplett
  REENTRANT; das ist besonders für Amiga-Besitzer ohne Festplatte
  eine wichtige Neuerung.
\end{abstract}
%
\tableofcontents
%
\chapter{Rechtliches}
\section{Copyright}
Programm und Dokumentation sind Copyright (c)1991 by \\
\begin{quote}
  Jürgen Weinelt \\
  Zur Kanzel 1 \\
  8783 Hammelburg \\
  Deutschland \\
\end{quote}

Cross darf nur auf nicht-kommerzieller Basis weitergegeben werden, z.B.
im Rahmen von PD-Serien.

Cross V4.1 ist Freeware. Das bedeutet, daß das Programm zwar auf
nicht--kommerzieller Basis kopiert werden darf, aber ich verzichte
durchaus nicht auf mein Urheberrecht, wie das bei reiner Public Domain
Software der Fall wäre. Für den normalen Benutzer ist diese Feinheit
sowieso unerheblich; im Grunde läuft es auf einen kurzen Satz
hinaus: \sl Kopieren ja, Profit machen nein. \rm

\section{Kopiergebühren}
%
Ich bin wirklich relativ tolerant, was die Kopiergebühren für PD-Disketten
angeht; trotzdem behalte ich mir vor, bei besonders üblen Auswüchsen alle
mir zur Verfügung stehenden rechtlichen Mittel einzusetzen! Ich verbiete
deshalb ausdrücklich, Disketten mit diesem Programm darauf für mehr als
DM 8.- zu verkaufen. Falls Sie für Ihre Kopie von "`Cross"' mehr als DM 8.-
bezahlt haben, sollten Sie zwei Dinge tun:
%
\begin{enumerate}
  \item Wechseln Sie Ihren PD-Händler (eigentlich ist der Begriff "`PD-Händler"'
        ohnehin ein Widerspruch in sich\dots{} was soll's.) \\
        Geeignete Adressen finden Sie im Anzeigenteil aller
        Amiga-Fach\-zeit\-schrif\-ten (z.B. Amiga-Magazin, KickSTART,\dots{})
 \item Schicken Sie mir eine kurze Notiz (Postkarte) mit Bezugsquelle und Preis.
\end{enumerate}
%
Bedenken Sie, daß man PD-Disketten auch für unter DM2.-- kaufen kann, vergleichen
Sie die Preise und richten Sie sich danach.

\section{Hinweise}
\subsection{Haftungsausschluß}
Benutzung des Programms auf eigene Gefahr; d.h. wenn es irgendwas
demoliert, beschweren Sie sich bitte nicht bei mir! Bitte bedenken Sie, daß
Sie ein durchaus leistungsfähiges Programm praktisch zum Nulltarif erhalten
haben; ich finde es deshalb absolut fair, jede Verantwortung bezüglich
der Ergebnisse (gewollte und auch ungewollte) des Programms abzulehnen.

Über größere Bugs wüßte ich trotzdem gerne Bescheid\dots{}

\subsection{Speicherbedarf}
Cross benötigt sehr viel Speicher; auf 512K-Systemen mit Extras wie
z.B. mehreren Laufwerken kann es unter Umständen Schwierigkeiten geben.
Davon betroffen ist besonders die Option "`\ref{genfancy} Rätsel drucken
(schön)"'.
Schlaflosigkeit bereitet mir dies allerdings nicht weiter, denn die
meisten Amigas sind mittlererweile doch mit mindestens 1MB Speicher
ausgestattet.

\subsection{Bug Reports}
Ich selbst habe einen A2000 mit A2630, 1.0MB Chipmem und
2.0MB 32Bit-Fastram, ECS-Agnus, Standard-Denise, ALF2-Festplatte
und Kick/WB 1.3 und als Drucker einen HP-Deskjet 500; wer Probleme
mit dem Programm hat, möge mir bitte eine kurze Problembeschreibung
mit möglichst exakter Angabe seiner Konfiguration (Hard- UND Software)
schicken.

\subsection{Zuschriften}
Wenn Sie mir von innerhalb Deutschlands schreiben, vergessen Sie bitte das
Rückporto nicht! Zur Zeit (mal sehen, wie lange die Post noch stillhält)
kostet ein Standardbrief DM1.-- und eine Diskette im Brief DM1.70.

Wenn Sie mir von außerhalb Deutschlands schreiben, dürfte es ziemlich
schwierig sein, mir das Rückporto zukommen zu lassen. Bei Zuschriften
aus dem Ausland bin ich daher ausnahmsweise auch zufrieden, wenn Sie
anstatt des Rückportos eine Ansichtspostkarte oder einem Foto Ihrer
Heimatstadt beilegen\dots

\chapter{Bedienungsanleitung}
\section{Programmstart}
Vom CLI aus kann das Programm folgendermaßen aufgerufen werden:

\begin{verbatim}
  CROSS [-xXSIZE] [-yYSIZE] [-d]
\end{verbatim}

Das Programm akzeptiert bis zu 3 Parameter: \\

\begin{tabular}{|c|l|l|l|l|}
  \hline
  Option & Bedeutung               & \multicolumn{3}{|c|}{Wert}       \\
         &                         & mindestens & Default & höchstens \\
  \hline
  \hline
      -x & Breite des Rätsels      &          5 &      25 &        39 \\
  \hline
      -y & Höhe des Rätsels (PAL)  &          5 &      25 &        35 \\
      -y & Höhe des Rätsels (NTSC) &          5 &      25 &        25 \\
  \hline
      -d & Debug-Modus für das     & \multicolumn{3}{|c|}{---}        \\
         & Meldungs-Datenfile      & \multicolumn{3}{|c|}{ }          \\
  \hline
\end{tabular}
\vspace{1.4ex}

Die Parameter können in beliebiger Reihenfolge angegeben werden; alle
Parameter sind optional.

Beispiele:
\begin{quote}
  Cross -x9 -y9 \\
  Cross -y21 \\
  Cross -d \\
  Cross -y13 -d -x39 \\
\end{quote}

Vor dem Aufruf von Cross muß mittels ASSIGN ein logisches Device namens
"`CROSS:"' definiert werden; dort sucht Cross seine Datenfiles: \\

\begin{tabular}{|l|l|}
  \hline
  File bzw. Verzeichnis & Bedeutung                              \\
  \hline
  \hline
  DATA                  & Verzeichnis                            \\
  \hline
  DATA/msgtxt.data      & Datenfile mit mehrsprachigen Meldungen \\
  \hline
  DATA/words01.crw      & Wortschatzdatenfile deutsch            \\
  DATA/words02.crw      & Wortschatzdatenfile englisch           \\
  \hline
  DATA/ (\dots{}) .crd  & Rätseldatenfiles                       \\
  \hline
\end{tabular}
\vspace{2ex}

In diesem Release wird Cross mit zwei Wortschatzdatenfiles geliefert:
\begin{itemize}
  \item words01.crw enthält deutsche Wörter
  \item words02.crw enthält englische Wörter
\end{itemize}

Direkt nach dem Programmstart liest Cross das Message-Datenfile.
Es erscheint eine Liste aller verfügbaren Sprachen (zur Zeit nur Deutsch
und Englisch), und der Benutzer kann dann auswählen, welche Sprache
verwendet werden soll (Zifferntaste, dann Return). \\
Eine ausführliche Beschreibung von "`msgtxt.data"' folgt weiter unten.


\section{Die Menüs}
Das Programm ist weitgehend selbsterklärend. Trotzdem vorsichtshalber eine
ausführliche Beschreibung aller Menüs:

\subsection{Das Projekt-Menü}
Hier befinden sich vor allem die Lade- und Speicherungsfunktionen:

\subsubsection{Projekt : Neues Rätsel}
Nach einer Sicherheitsabfrage wird das gerade bearbeitete Rätsel verworfen
und die Bearbeitung eines neuen Rätsels vorbereitet.

\subsubsection{Projekt : Kreuzworträtsel laden}
Es erscheint ein ARP-Filerequester, mit dem Sie ein bereits fertiges Rätsel
von einem externen Massenspeicher (Diskette, Platte) laden können. Ich
benutze für solche gespeicherten Rätsel stets Namen mit der Endung "`.crd"'
und empfehle Ihnen, diese Endung ebenfalls zu benutzen.

Bitte beachten Sie, daß bei dieser Aktion implizit das gerade bearbeitete
Rätsel verworfen wird, ohne daß eine besondere Warnung erscheint!

\subsubsection{Projekt : Wortschatzdatei laden}
Es erscheint ein ARP-Filerequester, mit dem Sie eine Wortschatzdatei auf
einem externen Massenspeicher (Diskette, Platte) speichern können. Ich
benutze für solche Wortschatzdateien stets Namen mit der Endung "`.crw"'
und empfehle Ihnen, diese Endung ebenfalls zu benutzen.

\subsubsection{Projekt : Kreuzworträtsel speichern}
Es erscheint ein ARP-Filerequester, mit dem Sie das gerade bearbeitete Rätsel
auf einem externen Massenspeicher (Diskette, Platte) speichern können. Ich
benutze für solche gespeicherten Rätsel stets Namen mit der Endung "`.crd"'
und empfehle Ihnen, diese Endung ebenfalls zu benutzen.

\subsubsection{Projekt : ENDE}
Nach einer Sicherheitsabfrage wird das Programm beendet.

\subsection{Das Edit-Menü}
Im Edit-Menü sind die Funktionen zusammengefaßt, diezur Bearbeitung eines
Kreuzworträtsels benötigt werden.

\subsubsection{Edit : Automatiksuche an/aus}
Die Automatiksuche ist das Kernstück von Cross. Wenn die Suche aktiv ist,
werden selbsttätig Wörter in das Kreuzworträtsel eingepaßt. Dazu müssen
folgende Voraussetzungen erfüllt sein:

\begin{itemize}
  \item Es muß sich ein Wortschatz im Speicher befinden.
  \item Es muß bereits mindestens ein Wort vorher plaziert worden sein als
   "`Keim"', aus dem das Rätsel "`wachsen"' kann.
\end{itemize}

Die Automatiksuche wird durch nochmaliges Auswählen des Menüpunkts
beendet, der gerade laufende Suchvorgang wird aber noch beendet.

\subsubsection{Edit : Manuelles Eingeben und Plazieren}
Zuerst erscheint ein Requester, in den Sie das Wort eingeben müssen, das
Sie plazieren wollen. Dieses Wort muß nicht unbedingt im gerade
gültigen Wortschatz enthalten sein. Falls Sie ein Wort eingeben, das
bereits zuvor plaziert wurde, erhalten Sie eine entsprechende
Fehlermeldung.

Nach der Eingabe des Wortes können Sie eine geeignete Position im
Kreuzworträtsel mit der Maus auswählen (mit der linken Maustaste
anklicken). Danach fragt ein zweiter Requester, ob das Wort an dieser
Stelle horizontal oder vertikal plaziert werden soll.

\subsubsection{Edit : limit zurücksetzen}
Die "`limit"'-Variable wird bei der Automatiksuche verwendet, um
sicherzustellen, daß zuerst die längeren Wörter plaziert werden, bevor
die kürzeren zum Zug kommen. limit gibt an, welche Länge ein Wort
mindestens haben muß, um bei der Suche berücksichtigt zu werden.
Mit diesem Menüpunkt können Sie limit wieder auf seinen (hohen)
Ausgangswert zurücksetzen; sie sollten dies mindestens vor jedem
neuen Rätsel tun, besser sogar jedesmal dann, wenn Sie einen neuen
Wortschatz geladen haben.

\subsubsection{Edit : Rätselgröße festlegen}
Es erscheinen nacheinander zwei Requester, mit denen Sie die Höhe und
die Breite des Rätsels festlegen können. Diese Größenangaben müssen
ungerade sein!

Dieser Menüpunkt kann nur angewählt werden, solange im gerade bearbeiteten
Rätsel noch keine Wörter plaziert wurden.

\subsubsection{Edit : Keimwörter plazieren}
Die vier Keimwörter, aus denen das Rätsel wachsen wird, werden automatisch
plaziert. Das Programm sucht dazu zufällig vier Wörter aus dem Wortschatz
heraus, die lediglich eine bestimmte Mindestlänge haben müssen. Falls alle
Wörter im Wortschatz zu kurz sind, wird die Funktion abgebrochen (das kann
unter Umständen ein Weilchen dauern! Geduld- er ist nicht abgestürzt\dots{}) \\
Sie müssen die Wahl der Keimwörter nicht unbedingt dem Computer überlassen;
Sie können auch manuell ein Wort (oder mehrere) als Keimwörter eintragen
(siehe "`Edit : manuelles Eingeben und Plazieren"'). \\
Dieser Menüpunkt kann nur angewählt werden, solange im gerade bearbeiteten
Rätsel noch keine Wörter plaziert wurden.

\subsubsection{Drucker : Rätsel drucken (generisch einfach)}
Diese Funktion wird hoffentlich niemals im Ernst benutzt werden- sie soll
sicherstellen, daß man mit jedem noch so exotischen Drucker wenigstens
irgend etwas auf's Papier kriegt. Falls Sie's wirklich probieren wollen
(oder womöglich müssen), schminken Sie sich besser alle Ansprüche an das
Aussehen des Gedruckten ersatzlos ab.

\subsubsection{Drucker : Rätsel drucken (generisch schön)} \label{genfancy}
Im Normalfall werden Sie diese Funktion zum Ausdrucken eines Rätsels
benutzen; sie druckt sowohl generisch (sollte mit absolut jedem graphikfähigen
Drucker funktionieren, der korrekt mit den Preferences eingestellt wurde),
als auch schön (oder was ich für schön halte). Falls sie einen Amiga mit nur
512K Speicher besitzen sollten (gibt's das noch?), könnten Sie eventuell
Speichermangel bekommen. Pech.

\subsubsection{Drucker : Rätsel drucken (\LaTeX{})}
\LaTeX{} ist eine Erweiterung (Makropaket)
für das semiprofessionelle Textsatzsystem \TeX{}. Mit diesem Menüpunkt können
Sie ein \LaTeX{}-Quellcode-File erzeugen, das Sie wie gewohnt mit \TeX{}/\LaTeX{}
weiterverarbeiten können. Abhängig von Ihrer lokalen Umgebung kann es
möglicherweise nötig sein, das Quell-File von Hand abzuändern; es geht
speziell um die Papierabmessungen. Experimentieren Sie ein wenig mit
\verb+\oddsidemargin+, \verb+\textwidth+, \verb+\hoffset+ und evtl.
auch \verb+\voffset+.
Sie können auch das gesamte Rätsel global verkleinern, indem Sie den
Parameter von \verb+\unitlength+ etwas verkleinern. \\
Zur Bedienung: es erscheint ein ARP-Filerequester, mit dem Sie den
Namen der Ausgabedatei wählen können.

\subsubsection{Drucker : Rätsel drucken (Epson)}
Dies ist dieselbe Druckfunktion, die schon in Cross Version 3 enthalten
war. Selbst wenn Sie einen Epson (-kompatiblen) Drucker besitzen, sollten
Sie aber zuerst "`\ref{genfancy} Drucker : Rätsel drucken (generisch schön)"'
ausprobieren.

\subsubsection{Drucker : Lösung drucken}
Diese Funktion ist für alle Drucker gleich; es wird ja ohnehin nur
Text ausgedruckt, keine Graphik.

\chapter{Dateien}
\section{Das Message-Datenfile}
Diese Datei enthält (fast) alle Texte, die das Programm benutzt, und zwar
(zur Zeit) in Englisch und Deutsch. Die Datei kann problemlos um weitere
Sprachen erweitert werden (insgesamt bis zu 9 Sprachen).
Jeder Eintrag in der Datei belegt eine eigene Zeile.

\subsection{Aufbau des Message-Datenfile}
Die erste Zeile enthält eine Ziffer. Diese Ziffer gibt die Anzahl der
vorhandenen Sprachen an. Es darf nur eine einzelne Ziffer sein.

Danach folgen die Bezeichnungen der einzelnen Sprachen (z.Z. ENGLISH und
DEUTSCH\footnote{Haben Sie Cross an eine weitere Sprache angepaßt? Bitte
                 schicken Sie mir eine Diskette mit Ihrem "`msgtxt.data"'-File
                 zu, damit ich es im nächsten Release berücksichtigen kann.
                 Als Dank bekommen Sie Ihre Diskette mit einem anderen
                 PD-Programm von mir zurück.}).

Die folgenden Einträge sind ebenfalls jeweils für jede Sprache einmal
vorhanden; sie stellen die Programmeldungen dar.

\subsection{Hinweise}
Falls Sie das Message-Datenfile um eine neue Sprache erweitern wollen,
beachten Sie bitte, daß die Übersetzungen nicht wesentlich länger als
die Originalmeldungen sein sollten, da die Texte zum Teil in Menüs
oder Requestern auftauchen.

Jeder Eintrag muß mit einer dreistelligen Nummer beginnen, die mit der
tatsächlichen Mel\-dungs\-num\-mer\footnote{durchzählen} übereinstimmen muß
(Sicher\-heits\-maß\-nahme). Das hört sich recht kompliziert an, aber wenn man sich
das Message-Datenfile einmal genau ansieht, versteht man bald, was gemeint ist.
Die einzige Ausnahme is die die Meldung Nummer 999, die das Dateiende
anzeigt.

Nach der Meldung 999 können beliebige Kommentare angehängt werden, der Rest
des Files wird nämlich ignoriert.

\subsection{Debug-Modus}
Falls bei der Anpassung an eine neue Sprache Schwierigkeiten auftreten
sollten, kann man Cross mit der Option "`-d"' aufrufen, dann werden während
des Programmlaufs die Meldungen zusammen mit der Meldungsnummer ausgegeben;
so können Probleme leichter lokalisiert und behoben werden.

\section{Wortschatzdatenfiles}
Eigene Wortschatzdatenfiles können jederzeit benutzt werden, wenn folgende
Einschränkungen beachtet werden:

\begin{enumerate}
  \item Im Gegensatz zu früheren Cross-Versionen dürfen jetzt alle Zeichen
        benutzt werden (auch Leerzeichen, Satzzeichen u.s.w.); Kleinbuchstaben
        werden automatisch in Großbuchstaben umgewandelt. Der Zeichensatz,
        den Cross zur Ausgabe auf dem Bildschirm benutzt, enthält keine
        Sonderzeichen, aber bei der Druckerausgabe werden die Sonderzeichen
        korrekt ausgedruckt, \bf falls der Drucker korrekt konfiguriert
        wurde (Preferences).\rm \\
        Denken Sie daran, daß es nun in Ihrer Verantwortung liegt, darauf
        zu achten, daß die Wörter einigermaßen sinnvoll sind.
  \item Die Wörter sollten eine ungerade Länge\footnote{Anzahl von Buchstaben}
        haben, also 3, 5, 7, 9, 11, \dots{}, 25 Buchstaben (Ausnahme: zweibuchstabige
        Wörter). Diese Einschränkung ist nötig, um eine optimale Vernetzung
        der Wörter untereinander zu erreichen. Wörter mit gerader Länge
        dürfen zwar auch benutzt werden, aber es können später im Rätsel
        unter Umständen größere Lücken auftreten. \\
        Eine Sortierung der Wörter ist nicht unbedingt nötig, dient aber
        der Übersichtlichkeit, wenn Sie die Wortschatzdatei ändern möchten.
  \item Kein Wort darf länger als 25 Buchstaben oder kürzer als 2 Buchstaben
        sein.
  \item Die Wortschatzdatei darf keine Leerzeilen enthalten.
  \item Der letzte Eintrag kann "`***END***"' sein, ohne die Anführungszeichen
        natürlich; dieser "`***END***"'-Eintrag ist aber seit
        Version 4 nicht mehr zwingend nötig.
\end{enumerate}

\section{Der PreProcessor}
Mit dem ebenfalls mitgelieferten Hilfsprogramm "`PreProcessor"' kann man eine
normale ASCII-Textdatei in eine Wortschatzdatei umwandeln. Dazu filtert man
einen beliebigen Text durch den PreProcessor und sieht sich das resultierende
File mit einem ASCII-Editor (die meisten Textverarbeitungen
haben eine ASCII-Option) an. Dabei löscht man einfach alle Wörter, die
nicht benötigt werden, wieder heraus (es sind wahrscheinlich auch einige
Wörter bei der Umwandlung verstümmelt worden). So kann man in wenigen
Minuten fast mühelos neue Wortschatzdateien erzeugen. PreProcessor hält
sich übrigens noch an die strengeren Vorschriften in Sachen Wörter, die
in der Version 3 von Cross galten, also nur "`A-Z"' und "`a-z"'. Deutsche
Umlaute (ä,ö,ü,ß,Ä,Ö,Ü) werden dabei umgewandelt (AE,OE,UE,SS).

\subsection{Aufruf des PreProcessors}
Es werden keine Parameter benötigt, die Dateien werden mittels FileRequester
ausgewählt.

\subsection{Hinweis}
Der PreProcessor arbeitet mit einem rekursiven Algorithmus
(zum Sortieren wird nämlich ein binärer Baum aufgebaut); deshalb
sollte genügend Stack-Speicher reserviert sein. Gegebenenfalls
kann der CLI-Befehl \sl{}STACK\rm{} benutzt werden, um mehr
Stack-Speicher zu reservieren. PreProcessor reserviert sich automatisch
50000 Bytes Stack; wenn Sie noch mehr benötigen, benutzen Sie das
STACK-Kommando.\\
PreProcessor ist übrigens auch ansonsten ein ziemlicher
Speicherfresser\dots{} bei umfangreicheren ASCII-Dateien wird es
vermutlich Schwierigkeiten mit 512K-Amigas geben.
%
\subsection{Umfangreiche Wortschatzdateien}
Eine Warnung: Besonders umfangreiche Wortschatzdaten haben natürlich den
Vorteil, daß besonders gut vernetzte Rätsel entstehen; allerdings sollte
man auch bedenken, daß die Rechenzeit mit zunehmendem Umfang des Wortschatzes
rapide ansteigt\dots{} \\
Meine Empfehlung: man benutzt am besten mehrere (kleinere)
Wortschatzdatenfiles, und lädt immer dann, wenn für ein Datenfile keine Wörter
mehr plaziert werden können, das nächste File nach. Besonders sinnvoll wäre
es dabei, wenn man die Wörter gemäß ihrer Länge auf die Datenfiles verteilen
würde, z.B.: \\

\begin{tabular}{|l|c|}
  \hline
  File         & Wortlänge \\
  \hline
  \hline
  words05.crw  & 25--17 \\
  words06.crw  & 15--9 \\
  words07.crw  &  7--5 \\
  words08.crw  &  3--2 \\
  \hline
\end{tabular}
\vspace{1.4ex}

\chapter{Sonstiges}
\section{Bekannte Probleme/Fehler von Cross}
\begin{itemize}
  \item (selten) TRAP 11 beim Programmstart (Grund: unbekannt)
  \item (selten) Speicher-Fragmentierung (Grund: unbekannt)
\end{itemize}

Wer selbst ähnliche Probleme hat, möge mir bitte eine möglichst detaillierte
Beschreibung des Problems, sowie der zugrundeliegenden Hard- und
Soft\-ware\-kon\-fi\-gu\-ra\-tion zuschicken. (Rückporto!) Danke.

\section{Geplante Erweiterungen von Cross}
\begin{itemize}
  \item Plaziertes Wort wieder entfernen
  \item Verschiedene Grundmuster zur Plazierung der ersten "`Keim"'-Wörter
  \item Benutzerkonfigurierbarkeit (wow, verdammt langes Wort\dots{} muß unbedingt
        noch ins Wortschatzfile)
  \item Rätsel mit nicht-rechteckigem Grundriss
\end{itemize}

\section{History}
\begin{tabular}{ll}
V4.1  &  RELEASE auf AMOK und FISH \\
      &  Cross kann jetzt RESIDENT geladen werden und \\
      &  \hspace*{1em}ist komplett REENTRANT \\
      &  diverse Bugs behoben (?) \\
      &  \\
V4.0  &  Gadgets abgeschafft, statt dessen Menüs \\
      &  verschiedene neue Druck-Modi \\
      &  \hspace*{1em}(incl. hochauflösend, generisch, \TeX{}) \\
      &  "`Neues Rätsel"' \\
      &  "`Größe ändern"' \\
      &  viel geringerer Speicherbedarf \\
      &  \hspace*{1em}(halb-dynamisches Array für Wortschatz) \\
      &  verbesserter PAL/NTSC-Support \\
      &  kürzer \\
      &  schneller \\
      &  \\
V3.5A &  quick-and-dirty-fix für einige Probleme \\
      &  \hspace*{1em} (in 4.0 wieder entfernt) \\
      &  \\
V3.5  &  immer noch Kampf mit dem neuen Compiler \\
      &  \\
V3.4  &  neue Compiler-Version 4.096d \\
      &  \\
V3.3  &  RELEASE auf FISH \\
      &  PAL/NTSC-Erkennung durch Abfrage der \\
      &  \hspace*{1em} Höhe des Workbench-Screen \\
      &  kleine Schönheitsfehler in Programm \\
      &  \hspace*{1em} und Dokumentation behoben \\
      &  \\
V3.2  &  RELEASE der M2-Version auf AMOK \\
\end{tabular}
\end{document}
