Frank Naumann <fnaumann@cs.uni-magdeburg.de>                        1999-11-16
------------------------------------------------------------------------------

FreeMiNT Guide
==============

In diesem Dokument will ich meine Erfahrungen und Ratschlge zu FreeMiNT
festhalten. Es betrifft vor allem immer wieder auftauchende Fragen ber
bestimmte Tools und Installationsprobleme.

Alle Angaben beziehen sich speziell auf die FreeMiNT 1.15 Versionen und knnen
nur bedingt bzw. gar nicht auf ltere Versionen (insbesondere dem originalen
MiNT) bezogen werden.

Fr konstruktive Kritik sowie Verbesserungsvorschlge, Ergnzungen und
Korrekturen bin ich jederzeit sehr dankbar.

Rckmeldungen am besten per e-Mail. Bei allgemeinen Problemen oder
Fragen zu FreeMiNT ist die MiNT-liste auch eine sehr gute Anlaufstelle.
Man kann sich unter mint-request@fishpool.com und dem Betreff "subscribe"
in diese Internet Mailingliste eintragen lassen. ACHTUNG: die ist eine
internationale Mailingliste, alle Postings sind in Englisch!

Ich mchte auch insbesondere darauf hinweisen das alle geschilderten
Erkenntnisse und Erfahrungen ber bestimmte Tools und Programme in keinster
Weise die Leistungen der betreffenden Programmierer schmlern und
die Softwarequalitt in irgendeiner Art bewerten sollen.


FreeMiNT auf ATARI Clones
-------------------------

Fr Memory Protection wird mindestens die 1.15.1 Version von FreeMiNT
gebraucht.

Weiterhin gibt es ab dem 1.15.1 Release auch keinerlei Probleme mehr mit
den Prozessorcaches. Fr FreeMiNT sollten die Caches jederzeit aktiviert
sein (auch im WriteBack Modus) um die volle Leistung zu erreichen.
Der Kernel aktiviert beim Booten dementsprechend auch smtliche Caches
falls diese ausgeschaltet sind.

Milan
- es mu lediglich die spezielle Milan Version installiert werden

Hades 040/060
- es wird von dem Einsatz von FreeMiNT mit den originalen Hades
  Tools dringend abgeraten (insbesondere in Verbindung mit dem HADES ACC)
- stattdessen werden fr FreeMiNT die MMU Tools von Odd Skancke bentigt
  bzw. sollten installiert sein; diese lsen auch insbesondere
  einige Probleme der HADES Hardware die inkompatibel zur
  ATARI Spezifikation sind
  mit diesen Treibern kann man auch Memory Protection aktivieren

Afterburner 040
- es wird das Toolkit von Douglas Little bentigt (allerletzte Version 5.08)
- FreeMiNT luft damit hervorragend auf dem AB auch mit WriteBack Cache


AUTO Ordner Reihenfolge
-----------------------

Darber gibt es immer wieder widersprchliche Aussagen. Die alte Aussage
von frher das FreeMiNT das allerletzte AUTO Ordner Program sein mu
ist berholt.

Vor FreeMiNT sollten grundstzlich all diejenigen Programme gestartet werden
die sich in irgendeiner Art und Weise in das System ber bestimmte Vektoren
einklinken und resident installieren, dazu zhlen insbesondere:

- NVDI, NovaVDI
- HSMODEM
- BoxKite, Selectric
- MetaDOS/MetaXBS
- BIOS/XBIOS Erweiterungen wie bspw. das Milan Soundblaster XBIOS
- Treiber fr Speichererweiterungen

Unbedingt nach FreeMiNT mssen aber folgende Tools installiert werden:

- FPU Emulationen fr 040/060
- Wdialog (siehe auch bei Abschnitt: Wdialog)

Und alle anderen normalen Programme. Programme die nach FreeMiNT im AUTO
Ordner liegen werden quivalent zu Programmen die in der MiNT.CNF gestartet
werden behandelt.


Memory Protection
-----------------

Dies ist ein Feature von FreeMiNT das auf Rechnern die ber eine MMU verfgen
(mindestens 68030 Prozessor oder hher) die Speicherbereiche der Applikationen
gegenber unerlaubten Zugriffen schtzt. Bspw. wenn ein Prozess aufgrund
eines Fehlers im Speicher wild herumschreibt. Memory Protection erhht deutlich
die Systemstabilitt. Es ist allerdings nicht so ganz einfach das System
erstmal richtig konfigurieren.

Leider lauern viele Fallstricke darauf das man hineintappt. Zuerst einmal
gibt es leider einige recht weit verbreitete Protokolle die unter Memory
Protection ihre Tcken haben:

Das AV-Protokoll
----------------

Hierbei tauschen die Applikationen gegnseitig bestimmte Informationen aus.
Dies geschieht aber indem Referenzen auf Speicherbereiche der anderen
Applikation gesendet werden. Wenn nun die zweite Applikation versucht darauf
zuzugreifen verletzt sie das Prinzip niemals auf fremde Speicherbreiche
zuzugreifen. Dank Memory Protection wird dieses fehlerhafte Verhalten erkannt
und die betreffende Applikaion terminiert. Nur leider provoziert genau
das AV-Protokoll diesen illegalen Zugriff.

Abhilfe ist hierbei die Speicherbereiche die ausgetauscht werden explizit
fr andere Applikationen zugreifbar zu machen. Dies ist problemlos mglich
und wird von FreeMiNT auch untersttzt. Es gibt aber leider heutzutage
immer noch Programmierer die dieses seit 1992 dokumentierte Verhalten entweder
nicht kennen oder ignorieren. Folge ist das diese Programme nicht richtig
funktionieren. Beispielsweise sind alle Programme von Holger Weets davon
betroffen.

In diesem Fall kann man nur auf die etwas unschne Methode des Setzens der
Kompatibilittsflags zurckgreifen. Die Kompatibilittsflags gibt es speziell
um auch alte inkompatible Programme benutzen zu knnen. Mithilfe von
Thing kann man diese sehr leicht einstellen.

Das OLGA-Protokoll
------------------

Die ursprngliche Entwicklung von OLGA hat den Aspekt Memory Protection
miteinbezogen. Das ist sehr positiv. Nur leider gab es bei der allerletzten
Erweiterung wohl anscheinend einen Fehler. Die sogenannte "Inplace Drawing"
Erweiterung ist ganz und gar nicht kompatibel zu Memory Protection. Hierbei
werden nmlich Referenzen auf interne Funktionen des Programms ausgetauscht!
Zu dieser krankhaften Programmierweise will ich jetzt nichts weiter sagen.
Einzige Abhilfe ist hierbei bei allen beteiligten Applikationen das
Kompatibilittsflag auf `global` zu stellen.


An dieser Stelle verweise ich jetzt auf die MP Liste wo alle Applikationen
aufgefhrt werden die Probleme haben und welches die beste Einstellung fr das
Kompatibilittsflag ist.

Wenn man erstmal alle Holger Weets Programmme auf `readable` gestellt hat
ist man schonmal den grten Teil seiner Probleme los. Weiterhin sollte man
am Anfang beim Einrichten der Memory Protection alle unntigen Programme
weglassen (insbesondere Wdialog).

Ich kann auch die (leider noch nicht erhtliche) Thing Version empfehlen
die die Fehler von Applikationen im AV-Protokoll abfngt und den Verursacher
anzeigt.

Bei N.AES 2.0 ist diese Thing Version die solche Fehler abfngt mit enthalten.


Wdialog
-------

Leider scheint der Einsatz von Wdialog heutzutage unverzichtbar zu sein. Und
gerade dieses Tool bereitet mit am meisten rger.

Ich empfehle soweit wie es nur irgendwie geht auf den Einsatz von Wdialog
unter FreeMiNT zu verzichten. Eine deutlich hhere Systemstabilitt war
bei mir die Folge.

Begrndung:

- Wdialog luft nur sehr eingeschrnkt unter Memory Protection.
  Konkret muss man die RAM Flags auf `global` stellen. Auf diese Art und
  Weise kann Wdialog dann unter Memory Protection wenigstens eine
  Applikation bedienen. Bei anderen Applikationen verursacht Wdialog
  im Kontext der Applikation eine Memory Violation so da die
  betreffende Applikation sofort beendet wird.
- Wdialog ist meiner persnlichen Erfahrung nach ein uerst unsauberes
  Tool auch wenn es von B&B geschrieben wurde. Im Prinzip lassen sich alle
  exestierenden Probleme und alle Probleme der Vergangenheit unter N.AES auf
  eine usserst unsaubere und nicht den Standards folgende Programmierung
  zurckfhren. Die Argumentation das es unter MagiC stabil luft greift hier
  auch nicht da anscheinend implizite Annahmen ber vllig undokumentiertes
  Betriebssystemverhalten gemacht wird.

Desweiteren liegt N.AES 2.0 ein eigenes, nachprogrammiertes Wdialog bei.
Im Gegensatz zum original ist es sauber in das System eingebunden und
luft auch mit Memory Protection ohne Fehler.


Freedom
-------

Freedom ist so unsauber geschrieben das es nicht unter FreeMiNT luft.
Von einem Einsatz unter FreeMiNT mu grundstzlich abgeraten werden.

Eine hervorragende Alternative zu Freedom ist BoxKite. Dieses untersttzt bspw.
auch hervorragend moderne alternative Filesysteme.


Sting
-----

Sting ist ebenfalls so ein Kandidat. Unsauber und instabil unter FreeMiNT.
Von einem Einsatz mchte ich abraten, man sollte stattdessen besser
auf den FreeMiNT eigenen TCP/IP Stack MiNT-Net zurckgreifen. Mithilfe
von Gluestik kann man smtliche STiK/Sting Applikationen auch unter MiNT-Net
benutzen sowie die extrem groe Zahl von portierten Unix Applikationen.


PureC
-----

- die IDE kann nicht mit langen Namen umgehen und hat insbesondere mit
  alternativen Filesystemen Probleme

- es wird von dem Einsatz des PureDebuggers unter FreeMiNT grundstzlich
  abgeraten
  
  Begrndung:
  - der PureDebugger luft grundstzlich nicht mit Memory Protection
  - er ist ein uerst unsauberes Programm bezueglich FreeMiNT
  - er wurde ursprnglich fr Original ATARI Computer unter TOS geschrieben
    und luft nur mit Hilfe spezieller Patchprogramme auf kompatiblen
    ATARI Systemen und unter FreeMiNT; allerdings kann man mit Hilfe von
    Patchprogrammen nur kleine Fehler umgehen; das grundstzliche Konzept
    kann man nicht ndern
  - eine saubere Alternative die zudem noch stndig weiterentwickelt wird
    ist Paral <Freeware>

