HomeKonzeptDie BildschirmausgabeDrucken mit MagicMacX
  MagicMacX > Konzept Index

Unterschiede zu MagicMac

MagicMacX arbeitet ähnlich wie sein Pendant für Mac OS 8 und 9, MagicMac; es ergeben sich aber einige wichtige Unterschiede.

Leider konnte das bewährte Konzept von MagicMac aufgrund der völlig anderen Systemarchitektur von Mac OS X nicht beibehalten oder angepaßt werden, selbst die Lauffähigkeit unter Classic war nicht möglich (wegen der Nicht-Umblendbarkeit des unteren 68k-Adreßraums). Aus diesem Grund ist das vorliegende Programmeine vollständige Neuentwicklung und enthält keinen Code von MagicMac.

Dies sind die wesentlichen Vorteile im Vergleich zu MagicMac:

  1. Da der 68k-Interpreter vollständig in MagicMacX integriert ist, konnte eine höhere Kompatibilität zum Atari realisiert werden. So funktioniert z.B. das Trace-Bit richtig, wodurch, im Gegensatz zu MagicMac, Debugging problemlos möglich ist(PureDebugger, BUG.TTP usw.).

  2. Der 68k-Emulator emuliert auch in gewissen Grenzen Atari-Hardware, zumindest werden teilweise Zugriffe ignoriert (z.B. auf die Bildschirm-Register), andererseits jedoch Busfehler erzeugt (Zugriff auf nicht vorhandene FPU). So ist ein FPUPATCH nicht mehr notwendig.

  3. Statt der Atari-Bomben gibt es einen Mac-Dialog, der eine genaue Fehlerbeschreibung liefert. Für genauere Informationen kann der Dialog aufgeklapptwerden.

  4. MagicMacX verwendet, im Gegensatz zu MagicMac, nur sogenannte Highlevel-Schnittstellen zu Mac OS X. Dadurch ergeben sich viel weniger Probleme beim Einsatz unterschiedlicher Mac-Hardware wie Tastaturen/Mäusen usw. Probleme wie z.B. beim Umstieg von Mac OS 9 auf 9.1 sollten mit MagicMacX nicht auftreten.

  5. MagicMacX unterstützt jede Mehrtastenmaus, die vom Betriebssystem unterstützt wird.

  6. Das Programm arbeitet im Prinzip wesentlich stabiler als MagicMac. So ist es für ein Atari-Programm unmöglich, dem Betriebssystem irgendwelche Schäden zuzufügen. Auch die Wahrscheinlichkeit, daß MagicMacX selbst durch ein amoklaufendes Atari-Programm instabil wird, sind wesentlich geringer.

  7. MagicMacX erlaubt, die Mac-Menüleiste eingeschaltet zu lassen, während der Atari emuliert wird.

  8. MagicMacX hat einen Pseudo-Fenstermodus. Der emulierte Atari schreibt zwar immer noch direkt in den Mac-Bildschirm, jedoch auch optional innerhalb eines Fensterrahmens. Das Fenster läßt sich sogar minimieren und ins Dock legen. Unabhängig vom Fenster kann der Emulator mit [Cmd][R] angehalten und wieder gestartet werden, falls er z.B. im Dock keine Rechenzeit verbrauchen soll. Das Icon im Dock wird sogar regelmäßig aktualisiert.

  9. Im Gegensatz zu MagicMac reagiert MagicMacX auf die Nachricht, daß das Emulatorfenster in den Hintergrund tritt, mit einer Zeichenmodus-Änderung: Im Hintergrund (d.h. auch dann, wenn ein Mac-Menü heruntergeklappt wurde) schreibt der emulierte Atari sauber, d.h. betriebssystemkonform, in den Hintergrundspeicher des Fensters, und dieser wird zyklisch unter Berücksichtigung aller Verdeckungen in das Fenster kopiert (wie unter MagicPC, jedoch ist der Hintergrundspeicher Bestandteil von Mac OS X, nicht jedoch von Windows). Vorder- und Hintergrundmodus sind am Fenstertitel erkennbar. Die Aktualisierungsfrequenz ist konfigurierbar.

  10. Auf der Atari-Seite ist Laufwerk M: das gesamte Mac-Dateisystem, wie es von Carbon-Programmen gesehen wird. Als freier Platz auf M: werden dem Atari immer 2 GB vorgespiegelt.

  11. Das Atari-Multitasking ist stets präemptiv und braucht nicht gesondert abgeschaltet zu werden, außer ggf. wie beim Atari in der Konfigurationsdatei MAGX.INF.

  12. Diverse HSModem-Fcntl-Kommandos werden für die serielle Schnittstelle unterstützt. Es empfiehlt sich, den Gerätetreiber DEV_SER auf dem simulierten Atari zu installieren, um eine optimale Geschwindigkeit zu erhalten (dabei wird das Atari-BIOS umgangen). Dieser installiert die Gerätedatei U:\DEV\SERIAL. Gerätetreiber *.dev gehören nach C:\GEMSYS\MAGIC\XTENSION.

  13. Die Tastaturtabellen im Atari-Kernel können mit dead keys konfiguriert werden. Beispieldateien für Englisch und Tschechisch werden mitgeliefert. Die alten Tastaturtabellen von MagiC funktionieren nicht mehr, weil mindestens zwei Nullbytes für eine leere dead key table enthalten sein müssen.

  14. Die Emulator-Erweiterungen (XCMDs) können in den Ordner Preload-XCMDs gelegt werden, wenn sie direkt bei Programmstart geladen werden sollen.


Durch den neuen, von Mac OS X unabhängigen Emulatorkern ergeben sich systembedingt auch einige Einschränkungen gegenüber MagicMac:

  1. Aufgrund des interpretierenden 68k-Emulators ergibt sich eine geringere Ausführungs-Geschwindigkeit für Atari-Programmem – MagicMacX verwendet einen compilierenden Emulator.

  2. Der direkte Zugriff auf Disketten oder Festplatten unter Verwendung des MagiC-eigenen VFAT-Dateisystems ist unter Mac OS X nicht mehr möglich. Theoretisch wäre es denkbar, Laufwerk-Container wie in MagicPC zu verwenden, diese sind jedoch noch nicht implementiert.

  3. Aufgrund des völlig anderen Konzepts sind alle Programme für MagicMac, die auf die Mac-OS-Seite zugreifen, nicht mehr kompatibel. Grund dafür ist, daß es in Carbon keine Mac-OS-68k-Seite mehr gibt. Dennoch können Atari-Programme über shared libraries direkt auf Mac-OS-Funktionen zugreifen (siehe Programmier-Dokumentation).

  4. Die Bildschirmtreiber von NVDI 5 funktionieren aus dem genannten Grund nicht. Sie greifen direkt auf Quickdraw zu und müßten angepaßt werden. Jedoch kann (und sollte!) NVDI als GDOS verwendet werden.

  5. Der MACPRN-Druckertreiber von NVDI 5 funktioniert ebenfalls nicht. Nur diejenigen Drucker können angesprochen werden, für die Atari-Druckertreiber existieren. Für den Zugriff auf Mac-Drucker müßte MACPRN an MagicMacX angepaßt werden.

  6. Es gibt offenbar einen Fehler ab Mac OS X 10.2 im File Manager, der dazu führt, daß das Durchsuchen eines Verzeichnisses in umgekehrter Reihenfolge (war Standard bei MagicMac) nicht richtig funktioniert. Der Fehler wird sichtbar, wenn man in MagxDesk einen neuen Ordner erstellt, dann noch einen usw. Irgendwie kommt Mac OS X nicht mit und man sieht den neu erstellten Ordner nicht, sondern erst bei Druck auf [Esc].

    Es sieht so aus, als wenn zunächst die Größe des Verzeichnisses höher gesetzt wird (Anzahl++) und erst dann die Datei/der Ordner tatsächlich eingetragen wird. Dazwischen ruft MagiC aber die Anzahl ab und findet ein Objekt weniger, als angegeben wurde. Daher ist für die aktuelle Version die umgekehrte Reihenfolge abgeschaltet für alle Laufwerke außer C: und M:. Damit gibt es natürlich Probleme beim rekursiven Löschen von Dateien. Der Fehler ist leider in Mac OS X enthalten und kann daher durch MagicMacX nicht behoben werden. Der Fehler ist an Apple gemeldet worden, jedoch anscheinend noch nicht behoben worden.

  7. Achtung: Wenn MagicMacX mit einer alten MAGX.INF gestartet wird, kann das AES abstürzen. Der Gerätetreiber #_DEV muß immer 1 0 sein.


Zur Zeit bestehen folgende weiteren Einschränkungen gegenüber MagicMac:

  1. 68k-Bus- und -Adreßfehler sind in dem verwendeten 68k-Emulator nicht vollständig implementiert. So lesen einige Zugriffe von einem ungültigen Speicherbereich zur Zeit einfach Nullen; Schreibzugriffe werden teilweise ignoriert. Außer beim Debuggen von Atari-Programmen oder in sehr speziellen Atari-Programmen birgt dieses Verhalten aber keinerlei Nachteile.

  2. Der Atari-Adreßraum ist stets zusammenhängend, d.h. TT-RAM wird nicht unterstützt. Auch diese Einschränkungen dürfte für alle voll korrekt programmierten Atari-Programme bedeutungslos sein.

  3. Die rechte [Shift]-Taste kann mit Apples Carbon-Programmierschnittstelle leider nicht gesondert abgefragt werden.

  4. Es wird stets möglichst viel Zeit an die anderen Mac-Applikationen abgegeben; d.h. MagicMacX benötigt einen Prozessor nur dann, wenn ein Atari-Programm etwas zu rechnen hat.

    Für die Rechenzeit-Verteilung sorgt Mac OS X; sie kann nicht beeinflußt werden. Möglicherweise lassen sich mit UNIX-Kommandos (wie nice) aber Prioritäten festlegen. In den allermeisten Fällen dürfte dies aber nicht nötig sein.

  5. Die Dateioperationen sind zur Zeit ausschließlich synchron. Angesichts der Transfergeschwindigkeit heutiger Festplatten ist diese Einschränkung wahrscheinlich ohne irgendeinen merklichen Einfluß auf die Emulation.

  6. Eine unmittelbare Dateisicherung ist unter Mac OS X nicht mehr nötig.

  7. Gestartet wird stets von Laufwerk C:. Laufwerk C: ist immer der Ordner MAGIC_C im selben Verzeichnis wie das MagicMacX-Programm.

  8. Eine Konfiguration von Dateitypen wird nicht unterstützt. Nur die Dateitypen PRG, TOS und TTP (also alle Atari-Programme) erhalten einen MagicMacX-Type/Creator und damit ein entsprechendes Icon. Alle anderen Dateitypen erhalten einen leeren Type/Creator, d.h., es wird dem Finder überlassen, welches Mac-Programm dem Dateisuffix zugeordnet ist. Damit erhalten Dateien vom Typ *.TXT automatisch das TextEdit-Icon usw. (Für Calamus-Dokumente mit dem Suffix .CDK ist allerdings ebenfalls eine Unterstützung vorgesehen. Das entsprechende Icon existiert jedoch noch nicht.)

  9. Mac OS X fängt offenbar einige Tastenkombinationen ab, zumindest auf meinem alten G3. Von der Standard-Einstellung abweichende Tasten-Zuweisungen sind z.Zt. nicht möglich. Jedoch werden unterstützt:

    Tastenkombination Funktion Taste
    [Cmd][U] [Undo] [Pause]
    [Cmd][L] [Help] [Druck]
    [Cmd][D] [Delete] [Entf])
    [Cmd][E] [Insert] [Einfg]
    [Cmd][M] [Clr/Home] [Pos1]

  10. Bisher ist kein Kompatibilitätsmodus für die Atari-Grafik (z.B. 640*400*2) implementiert. MagicMacX verwendet nur die Auflösungen, die Mac OS X unterstützt.

  11. Bisher hat MagicMacX nicht die Fähigkeit, die Bildschirmauflösung oder Farbtiefe umzuschalten. MagiC läuft daher immer in der Farbe und Auflösung, die unter Mac OS X eingestellt wurden.

  12. Ist die Mac-Menüleiste sichtbar, funktioniert (im Gegensatz zu OS 9.x) die Vollbild-Anzeige in Mac OS X nicht. Apple bezeichnet das als beabsichtigt und es führt dazu, daß das Dock immer noch im Vordergrund liegt und MagicMacX stört. Notfalls kann man das Dock abschalten: Prozeß Dock über Terminal-Fenster abschießen. Dazu z.B.kill -STOP und später kill -CONT eingeben.

Die letztgenannten Einschränkungen können möglicherweise in späteren Versionen beseitigt werden.


Copyright © ASH (Kontakt)
Letzte Aktualisierung am 22. Juni 2015

HomeKonzeptDie BildschirmausgabeDrucken mit MagicMacX