Home Documentation Products History Screenshots Forum

 MiNT mailing list

The Unofficial XaAES Page
Index Introduction Input devices Menus Scroll lists GEM windows System interface Appendix

Chapter 1 - The Unofficial XaAES Documentation 1. Introduction

1.1 Background
Since the early days of the Atari ST, the operating system has included a graphical user interface, a GUI. In short, a GUI allows the user to interact with the computer by letting icons and other images represent metaphors for the different functions and hardware. ”GUIs were introduced in reaction to the steep learning curve of Command Line Interfaces (CLI), text-based user interfaces requiring commands to be typed on the keyboard. This leads to high levels of efficiency once the many commands are learned, but reaching this level can take some time, because the command words are not easily discoverable.” (Wikipedia.org, on Graphical User Interface)
1.1.1 The Atari AES history
The Atari GUI is most commonly referred to as the AES, an Application Environment System. In early versions of TOS the AES was an embedded part of the operating system. The operating system was hosted on chip except for the very first ST:s that included the OS on floppy disk, bootstrapped from a very small core boot ROM. When Atari introduced true multitasking through the release of MultiTOS in 1993, the situation had however changed. MultiTOS was now loaded from disk and consisted of two separate parts, the OS kernel (MiNT) and the GUI (AES 4.0). Since the operating system was now disk based it meant that updates could be distributed on floppy disks or via the internet. The approach with having the OS components separated also made it possible to let them evolve individually.
MultiTOS was released in early 1993 and it sadly turned out to be the very last TOS version to ever come from Atari. Work on MiNT (the kernel of MultiTOS) was already open to independent, volunteering developers and after Atari discontinued all work on it the original MiNT author, Eric R. Smith, arranged for the Atari version of MiNT to be released as open source. This made it possible for MiNT to be developed by dedicated programmers from the Atari community – the problem instead lie with the GUI. Despite repeated requests Atari however never released the AES 4.0 source code. In essence this meant that any further progress to the GUI portion of the operating system would have to come from a total remake of the AES. A number of projects to fill this void have been initiated through the years (e.g. Geneva, oAESis, N.AES), and this is where XaAES entered the stage.
1.1.2 What is XaAES?
The short answer is that XaAES is a modern and compatible replacement for the AES in MultiTOS. It is now also the official AES for FreeMiNT, so if you are looking for the MultiTOS of today you are indeed looking for FreeMiNT + XaAES.
Initiated by British programmer Craig Graham, XaAES had its first development in 1995. The goal was to provide a fast and compatible GUI that could take advantage of the pre-emptive multitasking capabilities of MiNT. Craig worked actively on the project and released three beta versions until he abandoned the project in 1997. In 1998 Swedish programmer Johan Klockars fixed a few bugs, but it wasn’t until Henk Robbers took over maintainership in November 1999 that XaAES once again saw some real progress. Henk mainly managed to increase the overall stability and compatibility. When he stopped his work on XaAES in 2003 the idea came to mind to include the sources into the FreeMiNT CVS. MiNT (which after going open source now was named “FreeMiNT”) had been maintained via CVS for a good while already, and many in the community found it only natural to adopt XaAES as the official AES for FreeMiNT. This has since turned out to be the best thing that could possibly have happened – XaAES has evolved tremendously in both terms of speed, compatibility and number of new features. Responsible for this transition is Norwegian programmer Odd Skancke, who to date keeps on maintaining the project very actively.
1.1.3 XaAES development strategy
As the official AES for FreeMiNT, XaAES sets out to be the de facto standard for Atari compatible systems. The aim is to offer current FreeMiNT users a fast, stable, modern and compatible user interface.
Since XaAES is now a FreeMiNT kernel module, it means that it runs in the same context as the operating system. This significantly reduces the time required for the AES and OS to communicate. The old AES 4.0 (from Atari’s MultiTOS back in 1993) was horrifically sluggish and while third party solutions such as Geneva and N.AES offered largely increased performance, XaAES is even faster.
XaAES should not only have support for pretty graphics and nice visual effects – in addition to such things, XaAES will also be equipped with new features and functions even in the future. Instead of relying on heavy GEM libraries to supply GEM applications with various features, the idea is that extending the AES is the way to go when new functionality is desired. It will make the life of the programmer easier at the same time as it also helps reducing the size of compiled binaries.
XaAES developers always make efforts to allow existing GEM software to run flawlessly. There are unfortunately a number of examples where applications are relying on dirty hacks to carry out their tasks. Such software should be considered unsupported by XaAES. When it comes to hardware compatibility, the wish is that every Atari compatible system should be able to run XaAES. A setup with >4mb RAM and a 68030 or better is however recommended. (See
XaAES should be a robust and reliable OS component. The key to a stable system is to make sure that any new function or feature in the OS/AES is cleanly implemented. When an application needs to interact with the operating system, it should do so via proper system calls. If there is a conflict between compatibility and stability during XaAES development, the priority will always be to maintain stability. External file selectors will for example hook into a system vector to install themselves, as there are currently no legal system calls at hand for this purpose. Until a clean API has been defined and implemented to handle this situation correctly, the XaAES internal file selector remains the only option. In some cases you might stumble upon software that is written cautiously in that it tries to access memory locations belonging to either the operating system or other processes. Such programs will never work with the memory protection of FreeMiNT, which is why it may be better to look into finding alternative software if system stability is a high priority. If a particular program is crucially needed, try temporarily disabling memory protection.
1.2 Compatibility
1.2.1 Hardware compatibility
Today FreeMiNT/XaAES is being developed on systems such as Atari TT, Milan, Hades or CT60 powered Falcons, all of which are equipped with a 68030 or better CPU. Hence, while the XaAES distributions will always contain binaries for 68000, they are distributed without being testing at all. The following setups are tested regularly and known to allow XaAES to run without problems:
  • Atari Falcon (68030)
  • Atari Falcon/CT60 (68060)
  • TT030 (68030)
  • Hades (68040/68060)
  • Milan (68040/68060)
1.2.2 Software compatibility
Today XaAES has reached a high degree of compatibility with existing Atari software. Many of the programs that have problems under XaAES are badly coded or might be written specifically with TOS or MagiC in mind. In general there are very few compatibility issues though. The following applications have been reported to work nicely together with XaAES:
Address 2.2
Address Book 2.0
Aniplayer 2.22
Arcview 0.83
Arjshell 0.10
ArthurXP 2.08
Atari Works
Bubbles (screensaver)
CAB 2.8
Calamus SL 2003
CDPlayer 1.4
Currency Converter 1.0.6
Draconis Pro
Everest 3.6
Find it 2.06
GBE (GFA Basic Editor)
Gemview 3.18
Gewicht 2.0
GFA Compiler/Linker
Guitar 0.5 beta
Icon Extract
Idealist 3.961
Imagecopy 4
Joe 1.48 R3
Juliadress 0.89w
Kobold 3.51
Look'n See
Luna 2.10

M_player 2.90
Marijuana Mail 0.1.67
Mint Setter
M-player 2.90
Okami (with some minor redraw probs)
Organizer (Demo version)
Parafin 1.37
PhotoLine 2.30
SpareTime 1.10
Sysinfo 5.02
Tempus texteditor 2.25
Tempus Word
Texel 2.20 (demo version)
Two-In-One 1.51
Wensuite 3.30C
Zcontrol 0.25a


The Unofficial XaAES Page © Joakim Högberg 2003-2015