MagiC 2.0x auf dem Falcon030
----------------------------

Wichtiger Hinweis gleich zu Beginn: Das Booten von MagiC von der IDE-
Festplatte funktioniert nur mit dem HDDriver, da alle anderen mir 
bekannten Festplattentreiber versuchen, mit DMARead weiterzuarbeiten, 
das unter MagiC 2.0x aber nicht fr IDE existiert. Wer also einen 
anderen Treiber hat, kann den "Hack" nicht wie hier beschrieben 
durchfhren. In solchen Fllen sollte man mir schreiben, ich erklre 
dann eine Alternativlsung (bei der man allerdings von Disktte booten 
mu). Meine Adresse steht am Ende des Textes.

Ebenso kann ich keinerlei Garantie fr die korrekte Funktion dieses 
"Hacks" geben, deshalb sollte jedem klar sein, da er dies alles auf 
*eigene Gefahr* durchfhrt (dies gilt insbesondere fr die beiden 
beschriebenen Patches fr MAGIC.RAM). Ich bernehme also auch keine 
Haftung fr Schden, die direkt oder indirekt durch die Ausfhrung des 
hier Beschriebenen oder die Benutzung der im Archiv enthaltenen 
Programme entstanden sind ("indirekt" schliet hier ausdrcklich auch 
Auswirkungen ein, die durch sptere Benutzung des "gehackten" MagiC 
aufgetreten sind).

Bevor man sich in bergroer Erwartung auf den Durchfhrungsteil 
strzt, sollte man sich zunchst den Abschnitt ber die Einschrnkungen 
durchlesen und danach gut berlegen, ob man es trotzdem versuchen will.


Was ist zu tun?
---------------

Zunchst mu MagiC auf der internen Festplatte installiert werden, 
dabei als Auflsung "Default" bzw. "Standard" whlen. Danach eine HD-
Diskette mit Hilfe des Programms FIXINST.PRG mit dem FixMe-Bootsektor 
ausrsten. Dann im AUTO-Ordner MAGXBOOT.PRG an die wirklich erste 
Position verschieben (beispielsweise mit XBOOT) und die Files 
640X400.PRG und SNDFIX.PRG an das Ende hineinkopieren. (640X400.PRG 
wird nur bentigt, wenn man MagiC in ST-Hoch laufen lassen mchte.) Zum 
Abschlu mu jetzt noch der Falcon mit einem NVM-Konfigurationsprogramm 
dazu gebracht werden, in ST-Mittel zu booten. Danach ist MagiC 
einsatzbereit, wenn auch mit nicht unerheblichen Einschrnkungen, die 
man unbedingt beachten sollte (siehe unten)!

Wer MagiC an einem SM124 betreiben mchte, mu zustzlich das File 
MAGIC.RAM patchen: Mit einem geeigneten Tool nach der Bytefolge 0x6010, 
0x4a01, 0x6a1a suchen (sollte nur einmal vorkommen) und 0x6a1a durch 
0x601a ersetzen. Dieser Patch beeintrchtigt nicht die 
Funktionsfhigkeit am TV/RGB oder VGA, also ist ein wechselseitiger 
Betrieb mglich.

Wer unbedingt an auch an TV/RGB oder VGA Programme mit STE-
Digitalsounds benutzen will, sollte folgenden Patch probieren (er 
bildet praktisch eine bermenge des ersten, bietet also gleichzeitig 
die Mglichkeit, MagiC 2.0x am Falcon mit SM124 zu betreiben). Folgende 
Bytefolge suchen: 0x4a38, 0xd2c, 0x676a und die ersten beiden Werte 
durch 0x6000, 0x00ac ersetzen. Dieser Patch ist etwas "rabiater" als 
der erste, daher sollte man besser den ersten benutzen, wenn man auf 
Digitalsounds an TV/RGB bzw. VGA verzichten kann.

Vor dem Patchen *unbedingt* eine Sicherheitskopie von MAGIC.RAM machen, 
damit man, falls etwas schiefluft, nicht gleich vor vorne installieren 
mu! Die Gefahr, da etwas schiefluft, ist brigens beim zweiten Patch 
nicht zu unterschtzen, da hier ein Sprungbefehl neu erzeugt wird, der 
nicht zwigend bei jeder Version der MAGIC.RAM das richtige Ziel trifft!

Was machen die beiden Patches (beide gleichzeitig ist, wie gesagt, 
unntig)? MagiC funktioniert deswegen am SM124 ohne Patch nicht, weil 
die VBL-Routine immer meint, es hinge *kein* SM124 am Rechner (da ein 
Hardwareregister beim Falcon in diesem Fall "falsch" belegt ist) und 
deshalb auf ST-Mittel umschaltet (per Syncmode-Register), wodurch der 
Bildschirm schwarz bleibt (das gleiche Problem trifft brigens auch den 
Bugaboo, der ebenfalls in ST-Hoch nicht luft, was sich aber auch 
umgehen lt...) Patch 1 macht nun nichts weiter als die Reaktion auf 
einen "falschen" Monitortyp abzuschalten, d.h. die Auflsung wird nicht 
mehr gewechselt.

Patch 2 entfernt komplett den gesamten Teil der VBL-Routine, der sich 
mit den Monitoren beschftigt. Dadurch wird erstens das Problem mit dem 
SM124 umgangen und zweitens das Abspielen von Digitalsounds in ST-Hoch 
auch an TV/RGB bzw. VGA ermglicht (das funktioniert ohne Patch nicht, 
weil MagiC in diesem Fall versucht, auf ST-Hoch per Syncmode-Register 
umzuschalten, da einige Hardware-Register sich nicht wie bei ST-Hoch am 
SM124 verhalten).


Einschrnkungen von MagiC auf dem Falcon
----------------------------------------

- MagiC kann nur von HD-Disketten lesen, schreiben funktioniert weder 
  auf HD-, noch auf DD-Disktten. Wie ich inzwischen gehrt habe, trifft 
  das gleiche Problem auch manche TT-Besitzer, ich tippe daher darauf, 
  da die Disketteneinbindung bei Falcons und neueren TTs geringfgig 
  unterschiedlich ist (was zumindest dem normalen TOS nichts ausmacht).
- Die Ansteuerung der seriellen Schnittstelle scheint nicht zu 
  funktionieren (kann ich nicht selbst testen). Laut ASH hatte die 
  erste Version von MagiC 2.0 (damals noch Mag!X) einen Fehler in den 
  Routinen fr die serielle Schnittstelle, es kann also gut sein, da 
  mein Tester, der dies berichtet hat, noch eine dieser fehlerhaften 
  Versionen hat. Also wie so oft: Probieren geht ber Studieren...
- MagiC luft nur in ST-Mittel (oder ST-Hoch, wenn 640X400.PRG im AUTO-
  Ordner liegt). Niemals versuchen, die Auflsung zu wechseln -> Crash.
- Es ist kein Warmstart mglich (also auch keine Resets per Taster). 
  Nur Kaltstarts sind erfolgreich.
- Natrlich hat MagiC 2.0x keine der neuen Systemfunktionen des Falcon, 
  daher knnen Sound-Subsystem, DSP und VIDEL nur per direktem Hardware-
  Zugriff angesteuert werden. Aus diesem Grund wird auch der _SND-
  Cookie vom FixMe-Bootsektor nur auf 3 gesetzt (also Yamaha- und STE-
  DMA-Sound). SNDFIX.PRG sorgt dann dafr, da das Soundsubsystem in 
  den STE-kompatiblen Modus geschaltet wird.
- Es gibt zwei Grnde, warum SndFix nicht in den FixMe-Bootsektor 
  integriert ist: a) Es war kein Platz mehr *grins*, b) manche 
  Programme mit STE-DMA-Sound berschreiben 0xff8900, soda alle Frame-
  Ende-Interrupts abgeschaltet sind. In diesem Fall mu SNDFIX.PRG 
  einfach nochmals gestartet werden, dann sollte das Abspielen von 
  Samples wieder mglich sein.
- Man sollte Programme mit STE-DMA-Sound nur dann benutzen, wenn man 
  MagiC am SM124 betreibt oder den zweiten Patch vorgenommen hat, da an 
  allen anderen Monitoren sonst versucht wird, auf ST-Hoch umzuschalten 
  (mit 71Hz, und das geht nie gut...)
- Der FixMe-Bootsektor korrigiert die Cookie-Eintrge (_SND wird dabei 
  nur auf 3 gesetzt (s.o.), ebenso (aus dem gleichen Grund) _VDO nur 
  auf 0x10000), setzt GEMDOS-Zeit und Datum auf die Werte aus der 
  Hardware-Uhr und versucht, von der IDE-Platte zu booten (siehe auch 
  ganz oben).
- Beim Booten von MagiC *mu* die Diskette mit dem FixMe-Bootsektor 
  eingelegt sein, sonst klappt's nicht!
- Wenn man alle diese Einschrnkungen bercksichtigt, ist ein Betrieb 
  von MagiC 2.0x auf dem Falcon mglich. Allerdings funktioniert nicht 
  alles so, wie es soll, daher ist es besser, auf die offizielle Falcon-
  Version zu warten, wenn man MagiC im Dauerbetrieb nutzen will.


Wenn's nicht klappt
-------------------

Leider kann ich, wie bereits gesagt, nicht garantieren, da das hier 
Beschriebene bei jedem klappt. Ich zumindest habe bisher auf zwei 
Falcons mit TOS 4.01 (wobei die TOS-Version eigentlich keine Rolle 
spielen drfte) den Hack erfolgreich getestet, kenne aber auch einen 
Fall, bei dem es nicht funktioniert hat (der Himmel wei, warum). 

Sollte es also nicht hingehauen haben, bin ich gerne bereit, zu helfen, 
soweit das mglich ist. Zu erreichen bin ich unter folgender Adresse:

Thomas Binder
Johann-Valentin-May-Strae 7
64665 Alsbach-Hhnlein
Deutschland

InterNet: binder@rbg.informatik.th-darmstadt.de
IRC: Gryf


Viel Erfolg!

