# MagiC

MagiC is a third party and now open-sourced multitasking-capable TOS-compatible operating system for Atari computers, including some newer clone systems manufactured later. There are also variants that run as part of Mac and PC emulation environments, as well as on macOS Intel-Mac computers.

## Features

The kernel of MagiC is largely written in hand-coded assembly language for Motorola 68000, and offers:
* Extensive Atari TOS compatibility, the developer also created an improved variant (KAOS)
* Restricted MiNT/MultiTOS compatibility
* Preemptive multitasking
* Loadable file systems and long file names
* Significant performance advantages over both the original TOS and MiNT/MultiTOS platform on the same hardware

## Disadvantages

* MagiC was originally a commercial product and not freely available, like MiNT
* MagiC is not 100% compatible with the original TOS
* Drivers and file systems from MiNT are not compatible with MagiC
* Magic-Mac and Magic-PC variants only run under Mac OS and Microsoft Windows respectively, not e.g. Linux distributions
* Some Atari ST programs assume they alone control the machine, are troublesome when multitasked (mostly graphics glitches)

## History and variants
### Atari platform

MagiC was originally released as Mag!X (or MagiX) in 1992. At that time, TOS featured only limited Context switching in the form of desk accessory programs, simple programs accessed from the "Desk" menu and used context switching. In contrast, MagiC offered preemptive multitasking, giving the ability to run multiple (well-behaved) GEM applications as well as other non-graphical software on the Atari ST series the Atari STE and Atari TT.
The name changed from Mag!X to MagiC with the release of version 3.0, which added many improvements and a significant amount of MiNT compatibility. Version 4.0 added support for the Atari Falcon, and finally in 1995 version 5.0 brought the significant addition of loadable file system support, along with an implementation of VFAT with long file names, and a number of other improvements to the GEMDOS layer including threads and signals.

### Clone machines

MagiC versions 6.0 through 6.2 were released also for use with Atari clone machines of the late 1990s (e.g. Milan manufactured by MILAN Computersystems, Hades by Medusa Computer Systems). They include significant enhancements, such as support for FAT32, increased MiNT compatibility, and support for newer processors and hardware found in the clone systems. Version 6.2 is the latest for Atari machines.

### Apple Macintosh

Atari was slow to improve the hardware of its systems, and in the mid- to late 1990s it was apparent that the Apple Macintosh systems, and some clones by other manufacturers, were a superior hardware platform. Given that Ataris and Macs shared a very similar user interface, the latter were a logical upgrade path for many Atari users. So in 1994 a variant of MagiC known as MagiCMac was released, allowing Atari ST users to run their software on modern Mac hardware.
At first MagiCMac was offered for Macs with Motorola 680x0 CPU, a version for PPC CPUs followed. Later releases offered improved integration with the classic Mac OS, and allowed well-behaved Atari software to access the native graphics modes offered by the host machine, in addition to emulations of the standard Atari screen modes. Version 6.2 is the latest for machines with Mac OS classic (up to version 9.2).

### PowerPC and Mac OS X

With introduction of Mac OS X on newer PowerMacs, the original MagiC-Mac would no longer run as it operated at a low level within the former Mac OS classic in order to function. Newer OS X versions have no system-wide emulation layer for Motorola 680x0 code included, as was the case before. So in 2002 a reworked variant MagiC-Mac X for OS X was released.
The program itself is a "Carbon" program; it did run under Mac OS X only, not with Mac OS 9.x or in the "Classic Environment". To maximise effectiveness it contained improved code, and integrated parts of the Asgard68k emulator written in hand-optimised PPC assembler (also used in MESS and MAME projects), to reach high emulation speeds on machines with PowerPC processors (typically PowerPC G4 and G5 Macs). MagiC-Mac X was updated in 2004 and 2009, becoming a "Universal Binary" and running natively on both older PowerPC Macs and newer Macs with Intel processors under Mac OS X (version 10.4 "Tiger" to 10.6 "Snow Leopard"). Version 2.0 is the latest for PowerPC machines.

### IBM PC and older Windows

In summer 1996 the version MagiC-PC was released, now allowing Atari ST users to run their software on top of MS-DOS based Windows 9x to ME, as well as under more modern Windows NT 4 to XP. Atari files and directories were organised in drive containers, which represented bigger file archives for Windows. Windows' own directories were mapped as partitions to access them. Networking access and printing via Windows and Novell NetWare was provided for the Atari environment.
System requirements for emulating an Atari ST or STE system were:
* A PC with minimum of 16 megabytes of RAM
* An Intel 80486 processor, or those comparable in performance by other manufacturers
For speed similar to an Atari Falcon system (with Motorola 68030):
* An Intel Pentium (P5/80586) at 100 MHz and higher, or comparable processors of other manufacturers
To achieve faster program execution than on original Atari environments, higher clocked CPUs and more usable system memory were good upgrades for PCs.

### Modern Windows

MagiC-PC is fast but unsupported on newer versions of Windows. It does still work but may cause problems (hangs) when trying to shut down the Atari session itself (pausing the emulation and then closing it is possible as work-around). It can help to change the original "Shutdown" program that comes with MagiC (and is ending an Atari session) for a different one. Restarting a session is then done using the "MagiC" menu bar under Windows. Installing Magic-PC on a USB flash drive is also possible, so the emulation environment can be used on computers under Windows 7 and higher.
An alternative to MagiC-PC is Hatari, especially under other free operating systems like Linux. Because the program is written in plain C, using SDL libs and in part UAE (emulator) for multimedia and hardware, it requires quite performant processors (over 1 GHz for Atari ST/STE emulation, over 2 GHz for Atari Falcon emulation). For faster program execution the machine should be at least of the Pentium 4 or Athlon XP class respectively.

## AtariX for macOS Intel-Macs

The successor to MagiC-Mac X on the Apple platform is AtariX, also coded by Andreas Kromke. It has also been released under GPL v3 lately. The software integrates in part the Musashi 68k emulator written in plain C. AtariX is not as optimised as its predecessor once was, but the code written in C makes it more portable. Thus it will not reach the emulation speeds the former software had, but AtariX is aimed to run under more modern macOS (up to version 10.13 "High Sierra" at least), and Intel-only Mac systems with more performant processors.

## NVDI for MagiC

Another third party system enhancement for the Atari platform was NVDI originally developed by Sven und Wilfried Behne. It implemented advanced and accelerated graphics functions, improved driver functionality, and productivity utilities with Atari programs. The last stand-alone version 5.02/5.03 of NVDI, released in the early 2000s, worked with standard Atari TOS, MagiC for Atari, MagiC-PC, MagiC-Mac, and extra graphics cards for Ataris (ET 4000, Matrix MatGraph, Computerinsel NOVA). As bundle with MagiC it was renamed to MVDI.
NVDI offered highly optimised graphics routines in Atari environment (TOS or MagiC), emulation speed is raised under Windows and Mac OS via Magic-PC and Magic-Mac by mapping most of the Atari VDI calls to those of the host operating system. In Windows this is done using GDI calls, using native PC code for these functions. Similar functionality and higher speed for graphics was provided with MagiC-Mac, using QuickDraw calls in the classic Mac OS environment. NVDI allows for the use of up to millions of colours, for text on screen it supports Bitstream Speedo Fonts, TrueType and PostScript fonts installed on Windows and classic Mac OS, and features modernised printing capabilities via GDOS for programs, run natively on the Atari and in emulation on PC and Mac.

## MagiC Desk

MagiC's implementation of the GEM Desktop was greatly enhanced over the version included in the original TOS systems. Initially named Mag!X Desk, but changing to MagiC Desk with the release of MagiC 3.0, it offered features missing from the original Desktop, including:
* Parallel (i.e. in the background) copy/move/delete/format operations
* Long file names
* Aliases (symbolic links)
* Colour icon support
Unlike the GEM Desktop, MagiC Desk was not built into MagiC but instead could be launched as an application at startup. It is possible to start MagiC with another shell when wished (popular alternative shells including Jinnee and Thing). Diverse software can expand the usability of MagiC, extra network support e.g. is provided by MagiC Net.

## GPL Release

In 2018 MagiC developer Andreas Kromke released the sources of MagiC variants and MagiC Desk and other software under the GPL version 3, including the extra NVDI/MVDI enhancement which came with MagiC.
Provided as open source are:
* TOS, and KAOS (an improved TOS variant with many bugs removed)
* MagiX / MagiC for Atari computers, MagiC-Mac for classic Mac OS (Motorola 68000 variants)
* Magic-Mac X for older Mac OS X on PowerPCs, and AtariX for newer macOS on Apple–Intel architecture
* NVDI/MVDI for MagiC, as enhancement to the MagiC environment