home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Fujiology Archive
/
fujiology_archive_v1_0.iso
/
!FALCON
/
!BONUS
/
UTILITY
/
MAGIX3F4.ZIP
/
wiegehts.txt
< prev
Wrap
Text File
|
1995-08-09
|
33KB
|
676 lines
MagiC 3.0x auf dem Falcon030, vierter Anlauf - Stand: 09.08.1995
----------------------------------------------------------------
1. Vorwort
----------
1.1. ... zum ersten Release
---------------------------
Die Version dieses "Hacks" für MagiC 2 dürfte ja inzwischen einigen
bekannt sein, da jedoch mittlerweile viele nur noch ein Interesse an
der Benutzung von MagiC 3 auf dem Falcon haben, habe ich den Hack jetzt
auch daran angepaßt. Die Vorgehensweise ist dabei fast identisch,
ebenso wie dieser Text. Ich habe mich jedoch entschlossen, ein
separates Archiv zu nehmen, um umständliche Satzkonstruktionen wie
"Wenn man MagiC 2 hat, muß man jetzt... Aber nicht mit MagiC 3, da muß
man..." zu vermeiden und Verwechslungen vorzubeugen.
Gleich vorweg: ich kann keinerlei Garantie für die korrekte Funktion
dieses "Hacks" geben, deshalb sollte jedem klar sein, daß er dies alles
auf *eigene Gefahr* durchführt (dies gilt insbesondere für die
beschriebenen Patches für MAGIC.RAM). Ich übernehme also auch keine
Haftung für Schäden, die direkt oder indirekt durch die Ausführung des
hier Beschriebenen oder die Benutzung der im Archiv enthaltenen
Programme entstanden sind ("indirekt" schließt hier ausdrücklich auch
Auswirkungen ein, die durch spätere Benutzung des "gehackten" MagiC
aufgetreten sind).
Die Veröffentlichung dieses Hacks für MagiC 3 ist nicht direkt mit ASH
abgesprochen, aber da man nichts gegen die Veröffentlichung der Version
für MagiC 2 einzuwenden hat, gehe ich davon aus, daß auch hier keine
Einwände bestehen. Letzlich gäbe es auch nichts, weswegen man es mir
verbieten könnte, da alle in diesem Archiv enthaltenen Programme mein
Copyright tragen...
Bevor man sich in übergroßer Erwartung auf den Durchführungsteil
stürzt, sollte man sich zunächst Abschnitt 5 über die Einschränkungen
durchlesen und danach gut überlegen, ob man es trotzdem versuchen will.
Ach ja, falls es jemand noch nicht gemerkt haben sollte: Dieser Hack
ist für MagiC _3.0x_ gedacht, für MagiC 2 existiert ein separates
Archiv mit dem Namen MGX2FCR3.LZH.
Außerdem bitte ich darum, meine Mühe durch Geld- oder Sachspenden zu
honorieren (Details in Abschnitt 8). Für die Arbeit, die in diesem Hack
für MagiC 3 steckt (es ist natürlich in weiten Teilen die Arbeit, die
für den Hack für MagiC 2 nötig war), hätte ein professioneller
Programmierer sicherlich gut kassiert, und deswegen wäre es nur fair,
mir wenigstens eine kleine Anerkennung zukommen zu lassen, zumal ich
von ASH sicherlich nichts zu erwarten habe...
1.2. ... zum zweiten Release
----------------------------
Oh, oh, da hat sich doch ein böses Versäumnis eingeschlichen: Bei der
zweiten Patchvariante zur Vorbereitung höherer Auflösungen (kurz:
Videopatch) wird nach einer Bytefolge gesucht, die eine Systemvariable
von MagiC beinhaltet. Dummerweise hatte ich vergessen, daß sie bei
MagiC 3 an einer anderen Adresse liegt und daher natürlich auch nach
einer anderen Bytefolge gesucht werden muß. Also ist dieser
Patchversuch bei jedem, der ihn an einer MAGIC.RAM von MagiC 3
durchführen wollte, zwangsweise fehlgeschlagen. Sorry, das hatte ich
ganz einfach übersehen... Wer den Patch jetzt nachholen will, sollte
unter 3.2.1. nachschauen, da ist jetzt die richtige zu suchende
Bytefolge angegeben.
1.3. ... zum dritten Release
----------------------------
Leider mußte ich feststellen, daß ein bsr.w-Befehl in MAGIC.RAM, der in
der für den Patch aus Abschnitt 3.2.4. zu suchenden Bytefolge enthalten
ist, je nach Version von MagiC 3 einen anderen Offset hat. Daher war
die bisher angegebene Folge nur in einer bestimmten MagiC-3-Version (es
müßte die vom 03.04.1995 gewesen sein) zu finden. Vielen Dank an dieser
Stelle an Stefan Marion, der mich durch seine Anfrage mit
anschließendem Test auf dieses Versäumnis aufmerksam gemacht hat.
Glücklicherweise ist der betroffene bsr.w-Befehl zur eindeutigen
Lokalisierung der zu patchenden Stelle nicht nötig, daher ist er jetzt
nicht mehr in der zu suchenden Folge vorhanden.
1.4. ... zum vierten Release
----------------------------
Da mancher Schwierigkeiten hatte, die nötigen Patches an der Datei
MAGIC.RAM selbst durchzuführen, habe ich für diesen neuen Release ein
kleines Programm geschrieben, das diese Aufgabe übernimmt. Trotzdem
sind die Patches weiterhin genau beschrieben, damit jeder, der dem
Patchprogramm nicht traut, sie von Hand durchführen kann.
Außerdem wurde der FixMe-Booter ein wenig verbessert (längere Wartezeit
nach SCSI-Reset, mehrfache Zugriffsversuche auf die Rootsektoren der
Platten), weil jemand Probleme beim Booten von SCSI hatte. Ich weiß
zwar nicht, ob ihm die neue Variante geholfen hat (etwas ärgerlich,
wenn man keine Antwort bekommt), ich hoffe aber, daß solche Probleme
jetzt nicht mehr auftreten. Ich selbst habe das Booten erfolgreich von
IDE und SCSI getestet, und zwar mit einer Seagate ST9080A an IDE und
einer Quantum LP105S am SCSI-Bus, unabhängig vom Treiber (ich konnte es
mit AHDI, HDDriver und HuSHI probieren).
2. Unterschiede zum Hack für MagiC 2
------------------------------------
Für den Interessierten hier eine kurze Beschreibung, was die Version
für MagiC 3 von der für MagiC 2 unterscheidet:
- In MGFPATCH.PRG mußte die zu ändernde MagiC-interne Systemvariable,
die die Erkennung von DD-Disketten ermöglicht, angepaßt werden
- Ein weiterer Patch an MAGIC.RAM ist nötig geworden, da der Kernel,
wenn sich nach dem Ausführen des Bootsektors der Vektor hdv_rw
geändert hat (und genau das ist ja beim FixMe-Bootsektor der Fall, da
er den Plattentreiber startet), eine Routine _nicht_ ausführt, die,
soweit ich das beim ersten Überfliegen gemerkt habe, wichtig für das
weitere Speichermanagement ist. Das führt leider dazu, daß MagiC 3
nach dem Bootsektor sofort abstürzt. Der neue Patch verhindert das.
- MagiC 3 stellt zwar den GEMDOS-Call Srealloc zur Verfügung, den
BlowUP bzw. Screenblaster benötigen, um Speicher für den Bildschirm
anzufordern, aber leider hat sich gezeigt, daß dies zumindest mit
BlowUP irgendwie nicht klappt (Srealloc liefert 0 zurück, obwohl
eigentlich genug Speicher frei ist). Daher habe ich MGFVIDEO.PRG
unverändert gelassen, was zwar unter Umständen zu einem gewissen
Speicherverlust führt, der sich aber in der Regel verkraften lassen
sollte.
- Für die zweite Variante des "Videopatchs" (siehe 3.2.1.) muß nach
einer geringfügig anderen Bytefolge gesucht werden, die jedoch mit
den gleichen neuen Werten überschrieben werden muß.
3. Was ist zu tun?
-------------------
Ich erkläre hier das Vorgehen schrittweise: Die Installation von MagiC
und der Zusatzprogramme auf Festplatte, die nötigen Patches für
MAGIC.RAM, Vorbereitungen für höhere Auflösungen, Erzeugen des FixMe-
Bootsektors und eventuelle zusätzliche Schritte.
3.1. Installation von MagiC und den Zusatzprogrammen
----------------------------------------------------
Der erste Schritt ist es, den Falcon in ST-Mittel booten zu lassen, was
sich leicht mit einem der vielen NV-Ram-Konfigurationstools erreichen
läßt. Dabei darauf achten, daß man wirklich den Kompatibilitätsmodus
mit 640x200 in 4 Farben gewählt hat und nicht versehentlich 640x240 in
4 Farben. Wer den Falcon nur am SM124 betreibt, braucht sich hierüber
natürlich keine Sorgen zu machen... Wer das nicht möchte, weil ST-
Mittel auf einem VGA-Monitor einfach nur grausam aussieht, kann
alternativ dazu das Miniprogramm STMED.PRG in den Auto-Ordner kopieren,
dazu gleich.
Man installiert MagiC ganz einfach mit dem Installationsprogramm auf
der Bootpartition (also in der Regel C:), wobei als Bootauflösung
"Default" zu wählen ist. Anschließend sollte man MAGXBOOT.PRG mit einem
geeigneten Utility (z.B. XBoot oder DirSort) möglichst weit an den
physikalischen Anfang des Auto-Ordners verschieben (am besten direkt
hinter den eventuell vorhandenen Bootwähler). Wer, wie oben
beschrieben, STMED.PRG statt der Umkonfiguration des Falcons benutzen
möchte, muß es jetzt direkt vor MAGXBOOT.PRG schieben, sonst wird beim
Booten von MagiC in einen unsinnigen (u.U. sogar für den Monitor
gefährlichen) Videomodus geschaltet.
Als nächstes wird das Programm MGFPATCH.PRG aus diesem Archiv in den
Auto-Ordner der Bootpartition kopiert, und zwar möglichst direkt
hinter MAGXBOOT.PRG.
Wer nicht nur in ST-Mittel arbeiten möchte, muß als nächsten Schritt
das Programm MGFVIDEO.PRG in den Auto-Ordner kopieren, und zwar
physikalisch _vor_ ein vorhandenes NVDI. Weitere Ausführungen dazu
unter Abschnitt 3.3.
Als letztes Zusatzprogramm muß noch MGFSNDFX.PRG in den Auto-Ordner
kopiert werden, wobei hier die Position innerhalb des Ordners
unerheblich ist.
3.2. Nötige Patches für MAGIC.RAM
---------------------------------
Für den Betrieb am Falcon sind ein paar Änderungen an der Datei
MAGIC.RAM nötig. Da es verschiedene Versionen dieser Datei gibt, muß
die Änderung über Suchen und Ersetzen von Bytefolgen geschehen, da die
Offsets von Version zu Version unterschiedlich sind. Sollte eine der
Bytefolgen nicht zu finden sein (unwahrscheinlich), läßt sich der
jeweilige Patch nicht durchführen, was leider dazu führt, daß dieses
MagiC nicht oder nur eingeschränkt auf dem Falcon benutzt werden kann.
Ebenso gilt: Ist die angegebene zu suchende Bytefolge in MAGIC.RAM mehr
als einmal vorhanden, kann nicht eindeutig gepatcht werden, womit ein
Betrieb am Falcon auch unmöglich oder zumindest stark eingeschränkt
wird. Allerdings ist dies ebenfalls sehr unwahrscheinlich, sei aber
sicherheitshalber erwähnt.
Zum Patchen nimmt man am besten ein Disktool, das in einer Datei nach
Bytefolgen suchen kann und dann auch Änderungen zuläßt, oder einen
Debugger. Als Disktool sei Diskus genannt, als Debugger eignen sich
Peacebug oder Bugaboo (wobei man MAGIC.RAM per LOAD und nicht mit
LEXECUTE laden muß!)
Die prinzipielle Vorgehensweise ist einfach: Es muß eine gegebene Byte-
bzw. Wortfolge gesucht und danach ganz oder teilweise geändert werden.
Beim Patch aus 3.2.2. muß dabei aufgepaßt werden, denn es muß nach 4
Worten gesucht, ab der Fundstelle aber 24 Worte ersetzt werden. In
diesem Fall müssen also nicht nur die 4 gefundenen, sondern auch die 20
nach der gesuchten Folge stehenden Wörter durch neue ersetzt werden.
Bevor man munter drauflospatcht sollte man erstmal eine Kopie der Datei
MAGIC.RAM anlegen, damit man, falls etwas schiefläuft, nicht gleich neu
installieren muß.
Wer sich die Patcherei von Hand ersparen möchte, kann alternativ auch
das Programm PATCHRAM.PRG aus diesem Archiv benutzen. Nach dem Start
muß man per Fileselector die zu patchende MAGIC.RAM auswählen. Dann muß
man festlegen, welche Auflösungspatchvariante man haben möchte (siehe
3.2.1). Nach erfolgreichem Abschluß des Patchens wird man gefragt, ob
die neue Datei geschrieben werden soll. Wenn ja, wird zunächst die alte
MAGIC.RAM in MAGIC.BAK umbenannt und danach eine neue MAGIC.RAM
geschrieben. PatchRAM merkt übrigens selbsttätig, wenn eine Bytefolge
nicht gefunden werden kann oder nicht eindeutig ist und bricht dann mit
einer entsprechenden Meldung ab.
Selbstverständlich darf die so gepatchte MAGIC.RAM auch nur noch am
Falcon betrieben werden!
3.2.1. Vorbereitung höherer Auflösungen und des Betriebs am SM124
-----------------------------------------------------------------
Diese beiden Patches werden nur dann benötigt, wenn man MagiC mit dem
SM124 oder, bei den anderen Monitortypen, nicht nur in ST-Mittel
benutzen will. Es gibt dafür zwei verschiedene Möglichkeiten, man muß
sich für eine entscheiden, da beide zusammen unsinnig sind (Variante 2
beinhaltet praktisch Variante 1).
Variante 1:
-----------
Dieser einfache Patch sorgt dafür, daß beim Erkennen eines
Auflösungswechsels kein Reset mehr durchgeführt wird. Am SM124 werden
wegen eines Unterschieds in einem Hardwareregister ständig
Auflösungswechsel erkannt, bei den restlichen Monitortypen dann, wenn
auf eine andere Auflösung als ST-Niedrig oder ST-Mittel umgeschaltet
wird. Nachteil: STE-DMA-Sound kann mit diesem Patch nur am SM124
benutzt werden (auch hier wegen eines Unterschieds in einem
Hardwareregister), da sonst beim ersten gespielten Samplewert direkt
auf ST-Hoch (und zwar mit den echten ST-Synchronisationswerten!)
umgeschaltet wird.
In MAGIC.RAM die Bytefolge 0x6010, 0x4a01, 0x6a1a suchen und 0x6a1a
durch 0x601a ersetzen.
Variante 2:
-----------
Dieser etwas umfangreichere (und auch riskantere) Patch entfernt die
komplette Auflösungserkennung aus der VBL-Routine von MagiC und sorgt
so dafür, daß kein Reset mehr durchgeführt wird _und_ DMA-Sounds mit
allen Monitortypen gespielt werden können. Nachteil: Es wird ein
Sprungbefehl neu erzeugt, und es ist nicht garantiert, daß dieser bei
allen Versionen von MAGIC.RAM auch das richtige Ziel trifft.
In MAGIC.RAM die Bytefolge 0x4a38, 0x0c6a, 0x676a suchen und die ersten
beiden Werte durch 0x6000, 0x00a6 ersetzen.
3.2.2. Anpassung der Disk-Schreibroutinen
-----------------------------------------
Die Steuerung des Diskettenlaufwerks erfolgt beim Falcon geringfügig
anders als beim TT, daher stürzen Programme, die direkt die Hardware
ansprechen, beim Schreiben mit zwei Bomben ab, also auch der MagiC-
Kernel. Der folgende Patch quetscht die beim Falcon nötige Bittest-
Schleife in die MagiC-Diskroutinen, wobei eine Abfrage auf >= 68030
herausfällt, was beim Falcon aber nicht von Bedeutung ist. Vielen Dank
an dieser Stelle an Uwe Seimet, der mir den genannten Unterschied
zwischen TT und Falcon erklärt hat.
Für diesen Patch folgende Bytefolge suchen: 0x611e, 0x31c6, 0x8604,
0x4e75. Ab der Fundposition (inklusive!) folgende Werte einsetzen
(nicht einfügen, auch wenn es mehr Bytes sind, nur überschreiben!):
0x6126, 0x31c6, 0x8604, 0x6018, 0x611e, 0x31c7, 0x8604, 0x6010,
0x6116, 0x3e38, 0x8604, 0x4e75, 0x610e, 0x3038, 0x8604, 0x4e75,
0x0838, 0x0003, 0x860f, 0x66f8, 0x48e7, 0xc000, 0x4e7a, 0x0002.
3.2.3. Vorbereitung für Warmstarts per Tastatur
-----------------------------------------------
Normalerweise stürzt MagiC beim Versuch, mit CTRL-ALT-DEL einen
Warmstart auszulösen, wunderschön ab. Gleiches gilt für
Auflösungswechsel aus Thing oder Ease heraus. Da sich das Problem nicht
alleine durch eine zusätzlich eingehängte Resetroutine lösen läßt (was
von MGFPATCH.PRG gemacht wird, dazu später), muß die Warmstartroutine
von MagiC durch einen Aufruf der "echten" Warmstartroutine des TOS
ersetzt werden (MagiC geht dabei nicht verloren, weil es sich ja im
Resetvektor eingenistet hat).
In MAGIC.RAM die Bytefolge 0x4238, 0x0426, 0x46fc, 0x2700, 0x0c78
suchen und die letzten drei Werte durch 0x2078, 0x0004, 0x4ed0 ersetzen.
3.2.4. Ermöglichen des Bootens von Festplatte
---------------------------------------------
Wie ich schon ich Abschnitt 2 beschrieben habe, ist bei MagiC 3 neben
dem FixMe-Bootsektor noch ein Patch an MAGIC.RAM nötig, um von
Festplatte booten zu können. Dazu die Bytefolge 0x205f, 0xb1f8, 0x0476,
0x660a suchen und 0x660a durch 0x6604 ersetzen.
3.3. Benutzung höherer Auflösungen
----------------------------------
Wer MagiC 3 am Falcon nicht nur in ST-Mittel betreiben will, muß
weitere Vorbereitungen treffen. Eines ist dabei ganz wichtig: Die
beschriebene Datei MGFVIDEO.INF muß immer mit einem CR/LF oder LF
beendet werden, darf also nicht direkt mit einer Zahl enden!
Darüberhinaus ist zu beachten, daß man immer XControl mit Farb-CPX
geladen haben sollte, da sonst die Standardfarben nicht stimmen.
3.3.1. Ohne NVDI
----------------
Wer kein NVDI hat, kann leider nur 640x400x2 (ST-Hoch) realisieren,
aber das ist ja auch besser als nichts... Hierzu im Wurzelverzeichnis
des Bootlaufwerks oder im Auto-Ordner die Datei MGFVIDEO.INF anlegen
und ihr folgenden Inhalt geben:
1:32768
Mehr ist nicht zu tun.
3.3.2. Mit NVDI und Screenblaster/BlowUP
----------------------------------------
Mit dem Screenblaster I/II lassen sich in den Farbtiefen 2, 4 und 16
höhere Auflösungen benutzen, mit BlowUP nur in 2 und 16 Farben. Die
Benutzung der Screenblaster-III-Software ist leider nicht möglich.
Vielleicht geht es, wenn man in der MAGX.INF #_DEV 5 einträgt, das
konnte ich aber bisher nicht testen. Zur Not einfach mal ausprobieren...
Zunächst muß berechnet werden, wieviel Speicher der Bildschirm in der
maximal genutzten Auflösung und Farbtiefe benötigt (MagiC 3 kennt
Srealloc zwar, aber zumindest mit BlowUP klappt es irgendwie nicht,
deswegen muß MGFVideo den Speicher statisch im Voraus reservieren und
Srealloc dann simulieren). Die Formel lautet:
(X-Auflösung * Y-Auflösung) / Farbfaktor + 512
Farbfaktor ist dabei für 16 Farben 2, für 4 Farben 4 und für 2 Farben
8. Möchte man also höchstens 800x608x16 verwenden, ergibt sich der Wert
243712.
Als nächstes muß man im Wurzelverzeichnis des Bootlaufwerks oder im
Auto-Ordner die Datei MGFVIDEO.INF anlegen und ihr folgenden Inhalt
geben:
Für BlowUP mit 2 Farben:
1:<Berechneter Wert>
Für BlowUP mit 16 Farben:
2:<Berechneter Wert>
Für Screenblaster:
0:<Berechneter Wert>
Selbstverständlich muß für <Berechneter Wert> die Zahl eingetragen
werden, die vorhin für die maximal gewünschte Auflösung bestimmt
wurde, also 243712 für 800x608x16.
Für Screenblaster I/II muß noch in der Datei MAGX.INF im
Wurzelverzeichnis des Bootlaufwerks die 1 der Zeile #_DEV 1 durch den
Wert für die gewünschte Default-Farbtiefe ersetzt werden: 2 für 16
Farben, 3 für 4 Farben und 4 für 2 Farben. Eventuell klappt es mit
Screenblaster III, wenn hier eine 5 eingetragen ist, aber das ist nur
spekulativ. Wichtig: Dies gilt wirklich nur für Screenblaster! Bei
BlowUP und ohne Auflösungserweiterung muß hier die 1 stehenbleiben!
Es kann übrigens passieren, daß der Screenblaster-Screen zur
Auflösungswahl etwas eigenartig aussieht, aber das sollte niemanden
ernsthaft stören...
3.3.3. Mit NVDI ohne Auflösungserweiterung
------------------------------------------
Auch das ist möglich, allerdings ist man dann auf 640x400x2 (ST-Hoch)
oder 640x480x16 (TT-Mittel) beschränkt. Für ersteres muß die Datei
MGFVIDEO.INF im Wurzelverzeichnis des Bootlaufwerks oder im Auto-
Ordner folgenden Inhalt haben:
1:32768
Für TT-Mittel muß sie wie folgt aussehen:
2:154112
3.4. Erzeugung des FixMe-Bootsektors
------------------------------------
Damit MagiC richtig booten kann muß eine HD-Diskette mit einem
speziellen Bootsektor präpariert werden, der folgende Dinge erledigt
(natürlich nur, wenn MagiC bereits aktiv ist):
- Auslesen der Echtzeituhr und Übertragung in die GEMDOS/XBIOS-Uhr
- Korrektur der System-Cookies (dabei wird _SND auf 3 gesetzt, weil ja
die neuen XBIOS-Aufrufe für das Soundsubsystem nicht vorhanden sind)
- Reset am SCSI-Bus (dies kann nicht in der von MGFPatch installierten
Reset-Routine geschehen, weil hier die Systemtimer noch nicht aktiv
sind)
- Bootversuch von dem/den gewünschten Device(s)
Zur Installation des Bootsektors dient FIXINST.PRG. Nach dem Start wird
man zunächst gefragt, welchen Typ von Bootsektor man haben möchte.
Dabei bedeutet:
IDE: Der Bootversuch erfolgt zunächst von IDE-Einheit 0, dann von den
SCSI-Geräten 0 bis 7.
SCSI: Der Bootversuch erfolgt zunächst von den SCSI-Geräten 0 bis 7,
dann von IDE-Einheit 0 (dies ist besonders für die Leute gedacht, die
keine interne Platte haben, um so den Timeout umgehen zu können).
Disk: Es wird kein Bootversuch vorgenommen, stattdessen wird von
Diskette gebootet. Für diesen Fall ist auf der gleichen Diskette ein
Auto-Ordner anzulegen, in den zuerst der Harddisk-Treiber und danach
das Programm AUTOX.PRG (aus dem Ordner AUTOX dieses Archivs) kopiert
werden muß. Das X von AUTOX.PRG ist dabei durch den Buchstaben der
Bootpartition zu ersetzen, also in den meisten Fällen durch C. Dadurch
wird auch der Auto-Ordner der Festplatte ausgeführt.
Als nächstes muß gewählt werden, ob der _VDO-Cookie eine STE- oder eine
Falcon-Videohardware anzeigen soll. STE ist dabei nur zu wählen, wenn
man kein NVDI hat oder NVDI ohne MGFVideo betreiben will.
Jetzt wird der Bootsektor, nach einer Abfrage, auf die Diskette
geschrieben. Dabei wird auch eine Datei mit dem Namen FIXME.OVL im
Wurzelverzeichnis der Diskette angelegt, sie darf _auf keinen Fall_
gelöscht werden, weil sonst nicht richtig gebootet wird!
3.5. Restliche Schritte
-----------------------
Die Vorbereitung von MagiC 3 für den Falcon ist damit abgeschlossen,
eine wichtige Sache ist noch zu beachten: Benutzt man XBOOT, sollte man
STMED.PRG physikalisch zwischen XBOOT und MAGXBOOT plazieren, auch wenn
man den Falcon in ST-Mittel booten läßt (sonst wird nach dem Verlassen
von XBOOT nicht auf ST-Mittel zurückschaltet). Außerdem darf XBOOT
unter MagiC selbst nicht aufgerufen werden, weil es nämlich versucht,
eine höhere Auflösung einzustellen, was zu dem frühen Zeitpunkt aber
noch nicht möglich ist.
Hat man alles fertig, kann man jetzt einen Reset auslösen und schauen,
ob alles so funktioniert, wie es soll (die Diskette mit dem FixMe-
Bootsektor muß selbstverständlich eingelegt sein). Dabei sollte man
zunächst möglichst wenig zusätzliche Auto-Ordner-Programme (außer
natürlich den für MagiC zwingend nötigen) oder Accessories aktiv haben,
weil einige nicht richtig mit MagiC laufen. Vor allem darf man keine
Falcon-spezifischen Sachen aktiv haben, sonst gibt's Müll...
Sollte nach dem Reset MagiC nicht wie gewünscht booten oder laufen,
sollte man sich Abschnitt 7 ansehen und, wenn das nichts hilft, mit mir
Kontakt aufnehmen.
4. Kurzbeschreibung der Auto-Ordner-Programme
---------------------------------------------
MGFPATCH.PRG:
Dieses residente Programm installiert eine Reset-Routine, die dafür
sorgt, daß die Video- und die Soundhardware zurückgesetzt wird, da
sonst der Warmstart hängenbleibt. Darüberhinaus klinkt es sich in den
BIOS- und den XBIOS-Trap ein und sorgt dort durch kurzzeitiges Ändern
einer MagiC-internen Systemvariablen dafür, daß DD-Disketten korrekt
erkannt werden.
MGFVIDEO.PRG:
Dieses ebenfalls residente Programm klinkt sich in GEMDOS und XBIOS ein
und fingiert dort, dem Inhalt von MGFVIDEO.INF entsprechend, den GEMDOS-
Call Srealloc sowie einige XBIOS-Calls des Falcons. Sie sind dadurch
aber nicht korrekt vorhanden, sondern lediglich so implementiert, daß
NVDI und Screenblaster/BlowUP darauf hereinfallen.
MGFSNDFX.PRG:
Setzt das Soundsubsystem in den STE-kompatiblen Modus. Da es nicht
resident ist, kann es auch nachträglich erneut gestartet werden, was
unter Umständen nötig ist, wenn ein Programm mit STE-DMA-Sound 0xff8900
überschreibt und somit die Frame-Ende-Interrupts abschaltet.
STMED.PRG:
Miniprogramm, das auf ST-Mittel umschaltet.
AUTOX.PRG:
Programm zum Abarbeiten eines Auto-Ordners auf einem beliebigen anderen
GEMDOS-Laufwerk, siehe separate Anleitung im Ordner AUTOX dieses
Archivs.
5. Einschränkungen von MagiC 3 auf dem Falcon
---------------------------------------------
- Die Ansteuerung der seriellen Schnittstelle scheint nicht zu
funktionieren (kann ich nicht selbst testen). Ach ja, mit HSMODEM
klappt es jedenfalls einwandfrei.
- Es sind nur bedingt höhere Auflösungen möglich (siehe Abschnitt 3.3)
- Hintergrund-DMA dürfte weder mit Platten am IDE- noch mit solchen am
SCSI-Bus funktionieren, daher sollte man diese Option abschalten und
nur das Programm FLOCK_OK.PRG aus der MagiC-3-Distribution benutzen,
um den Floppy-Hintergrundbetrieb nutzen zu können (habe ich aber
selbst nicht probiert!)
- Natürlich hat auch MagiC 3.0x keine der neuen Systemfunktionen des
Falcon, daher können 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). MGFSNDFX.PRG sorgt dann dafür, daß das Soundsubsystem
in den STE-kompatiblen Modus geschaltet wird.
- Es gibt einen guten Grund, warum SndFix nicht in den FixMe-Bootsektor
integriert ist: manche Programme mit STE-DMA-Sound überschreiben
0xff8900, so daß alle Frame-Ende-Interrupts abgeschaltet sind. In
diesem Fall muß MGSNDFX.PRG einfach nochmals gestartet werden, dann
sollte das Abspielen von Samples wieder möglich sein.
- Man sollte Programme mit STE-DMA-Sound nur dann benutzen, wenn man
MagiC am SM124 betreibt oder den zweiten Video-Patch vorgenommen hat,
da an allen anderen Monitoren sonst versucht wird, auf ST-Hoch
umzuschalten (mit 71Hz, und das geht nie gut...)
- Beim Booten von MagiC *muß* die Diskette mit dem FixMe-Bootsektor
eingelegt sein, sonst klappt's nicht!
- Wenn man alle diese Einschränkungen berücksichtigt, ist ein Betrieb
von MagiC 3.0x auf dem Falcon möglich. 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.
Allerdings ist es in meinen Augen durchaus sinnvoll einsetzbar,
solange man auf Falcon-spezifische Software verzichten kann.
6. Darf der Hack weitergegeben werden?
--------------------------------------
Klar doch. Aber nur kostenlos (PD-Versender dürfen es auch, solange der
Diskettenpreis <= 10 DM ist) und nur das Originalarchiv, auch nicht
ausgepackt. Das soll keine Schikane sein, es soll nur (halbwegs)
sicherstellen, daß keine Datei fehlt und dieser Text unverändert
vorhanden ist.
AutoX (im entsprechenden Ordner des Archivs) darf übrigens separat
weitergegeben werden, näheres dazu findet sich in der dazugehörigen
Beschreibung.
7. 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 und TOS 4.04 (wobei die TOS-Version eigentlich
keine Rolle spielen dürfte) den Hack erfolgreich getestet. Sollte es
dennoch nicht klappen, hier eine kleine Liste mit Problemen und ihren
möglichen Lösungen.
Problem:
Beim Ausführen von MAGXBOOT.PRG schaltet der Falcon in einen unsinnigen
Videomodus (sprich: es flimmert wie der Weltmeister) und nix weiter
passiert.
Mögliche Lösungen:
Es wurde vergessen, den Falcon so zu konfigurieren, daß er in ST-Mittel
bootet, oder STMED.PRG direkt vor MAGXBOOT.PRG zu plazieren. Im ersten
Fall die Konfiguration ändern (und zwar wirklich auf den
_Kompatibilitätsmodus_ mit 640x200x4!), im zweiten das Miniprogramm
STMED.PRG aus diesem Archiv physikalisch direkt vor MAGXBOOT.PRG
plazieren.
Problem:
Der Festplattentreiber erkennt, von Festplatte gebootet, keine oder
nicht alle Platten.
Mögliche Lösung:
Testweise den FixMe-Bootsektor für Diskettenbetrieb benutzen (dabei den
Auto-Ordner auf der Diskette nicht vergessen, siehe 3.4.) oder einen
anderen Treiber versuchen (beispielsweise AHDI).
Problem:
Der Festplattentreiber erkennt, von Diskette geladen, die Platten nicht.
Mögliche Lösung:
Leider nur die: Anderen Treiber, beispielsweise HDDriver oder AHDI,
benutzen, da der momentane Treiber wohl auch beim Booten von Diskette
per DMAread auf die Platten zuzugreifen versucht.
Problem:
Nach dem Starten von MagiC oder nach einem Reset wird nicht von
Festplatte gebootet und es erscheint sofort der Desktop mit einem
Fileselector, der nach einer auszuführenden Datei fragt.
Mögliche Lösung:
Mit an Sicherheit grenzender Wahrscheinlichkeit wurde vergessen, die
Diskette mit dem FixMe-Bootsektor einzulegen, denn dann kann MagiC
nicht richtig booten und findet natürlich auch den Desktop nicht.
Dummerweise ist jetzt aber die Resetroutine von MGFPatch nicht mehr
aktiv, also muß man einen Kaltstart durchführen.
Problem:
Die höhere Auflösung erscheint wie gewünscht, aber die Farben sind
völlig falsch eingestellt.
Mögliche Lösung:
Es wurde vergessen, XControl mit Farb-CPX zu aktivieren, da nur so
gewährleistet ist, daß die Standardfarben korrekt gesetzt werden.
So, das waren die wichtigsten Sachen, die mir so auf Anhieb einfallen.
Wer ein Problem hat, MagiC auf seinem Falcon wie beschrieben zum Laufen
zu bringen, das nicht in der obigen Liste auftaucht oder mit den
genannten möglichen Lösungen nicht zu beheben ist, sollte sich an mich
wenden; ich versuche dann zu helfen, soweit das möglich ist.
8. Meine Adresse und Bankverbindung
-----------------------------------
Zu erreichen bin ich unter folgender Adresse:
Thomas Binder
Johann-Valentin-May-Straße 7
64665 Alsbach-Hähnlein
Deutschland
Telefon: 0 62 57 / 6 43 04
InterNet: binder@rbg.informatik.th-darmstadt.de
IRC: Gryf
Meine Bankverbindung:
Dresdner Bank AG Frankfurt am Main
Konto-Nr. 9 024 050 00
BLZ 500 800 00
Ich wäre wirklich froh, wenn jemand bereit wäre, mir meine Mühe zu
honorieren. Es muß wirklich nicht viel sein, ich freue mich auch über
Disketten, CD-ROMs, Briefe, Postkarten, etc. Auch eine Übersetzung
dieses Textes in andere Sprachen wäre eine prima Sache!
9. Das "Bonbon" ;)
------------------
Nicht jeder will dauerhaft mit MagiC arbeiten, und unter Umständen ist
es dann nervig oder unerwünscht, einen Kaltstart durchzuführen bzw. den
Rechner auszuschalten. Das Miniprogramm KILLMAGX.PRG löst dieses
Problem: Einfach aufrufen, und schon bootet der Rechner ohne MagiC. Das
Programm ist übrigens so geschrieben, daß es auf allen Rechnertypen,
auf denen MagiC benutzt werden kann, laufen sollte.
10. Schlußworte
---------------
Ich hoffe, daß mit dem vorliegende Hacks für MagiC 3 viele etwas
anfangen und von den neuen Möglichkeiten profitieren können.
Kleiner Tip noch: Wer auf MOD-Files im Hintergrund steht, sollte mal
FalcPlay 1.6 im VT52-Fenster probieren, läuft einwandfrei, weil es nur
mit direkten Hardwarezugriffen arbeitet. Das ist zwar eigentlich nicht
so fein, hier aber natürlich sehr von Nutzen...
Ich wünsche allen viel Erfolg mit MagiC 3 auf dem Falcon!