# XaAES

XaAES is a graphical user interface for the OS kernel MiNT (now known as FreeMiNT), and is aimed at systems that are compatible with 16/32 bit (hence ST) Atari computers such as the ST, TT or Falcon. The combination of MiNT and XaAES is the natural successor to MultiTOS.

## History
### XaAES - The beginning

XaAES is a free AES (Application Environment Service) written with MiNT in mind, originally developed by Craig Graham (Data Uncertain Software) back in September 1995. Taken from the XaAES beta6, here is a snippet of the readme.txt in which Craig explains his motives for initiating XaAES:
   "After using MultiTOS, then AES4.1, I became frustrated at the lack of a decent GUI to use the real power of the MiNT kernel - X Windows is all very well, but I can't run GEM programs on it. MultiTOS (even AES 4.1) is too slow. Geneva didn't run with MiNT (and, having tried the new MiNT compatible version, I can say it wasn't very compatible - at least AES 4.1 is quite stable, if a little slow). MagiC lives in a very fast, very small world all its own, with no networking support, few programs written to exploit it."
NOTE: MagiC later became available on Mac OS (and still later on the x86 PC) with built-in networking, and network drivers also began to appear for the Atari ST. A lot of MagiC software was MiNT compatible, and vice versa, but that came later than the time period of the above quote.
Craig worked actively on XaAES until 1997 when he stopped the development, at that time a plethora of applications were already usable under XaAES.
In 1998 the project was taken up by Swedish programmer Johan Klockars. He had been involved already during Craig's maintainership and at this point he stepped forward after a period of inactivity.
Johan's work resulted in several bugfixes which eventually were released as Beta7+. Shortly after this beta Johan also made the decision to hand over the project to someone else. This time it really seemed like XaAES had hit the end of the road, with no one interested in taking up the project again.
After a period of complete standstill Dutch coder Henk Robbers took over the project in November 1999. During Henk's maintainer-ship loads of progress was made, and XaAES went from interesting to becoming rather usable and showing great potential. The visual appearance was made to look closer to that of N.AES, as this was the obvious reference target - the AES that at the time was the GUI for FreeMiNT. XaAES also become a lot more robust although the response for key and mouse input was still somewhat of a problem.
Odd Skancke (aka Ozk) continued the development of XaAES, and together with Frank Naumann (then FreeMiNT maintainer), XaAES graphical improvements (skinning) were released with FreeMiNT 1.16. Alan Hourihane, as then FreeMiNT maintainer, was left to do bug fixes until round 2009, when after a resurgence of interest in the FreeMiNT OS, XaAES was then maintained and extended considerably by Helmut Karlowski (who maintains his own branch), especially in the area of Atari TOS application compatibility.

### XaAES goes CVS

In early 2003 Henk Robbers (of AHCC fame, also makes XaAES beta6 source available) decided it was time to let someone else carry on his work, as he wanted to move on to other computing issues. When Henk went looking for someone who could take care of the continued development, the idea that XaAES should be part of the FreeMiNT project was suggested. After all, it was developed to be an AES for MiNT exclusively, and since FreeMiNT is being administrated via CVS, anyone could access the sources and contribute.
The move to CVS was made possible thanks to great efforts from the FreeMiNT maintainer Frank Naumann, who made the necessary changes to allow XaAES to compile under gcc. In earlier XaAES builds, one of the major problems has been the somewhat irregular response to mouse buttons. This was reworked by Odd Skancke (aka Ozk), something that also resulted in a complete rewrite of the XDD. The moose.xdd (mouse device driver) is now coded in C too, just like the rest of the XaAES code.
Development was later moved from AtariForge to an SVN repository at SourceForge, and from there to the publicly browsable FreeMiNT Git repository on GitHub.

### XaAES - A FreeMiNT kernel module

In order to get a clean and fast XaAES, the best solution turned out to be changing XaAES into a kernel module. To achieve this goal a completely new API was constructed, and it was quickly apparent that the new kernel module offered massively improved performance. Most noticeably, the response time was significantly improved, resulting in a much more snappy and responsive experience when trying to click a button to see live window redraws, etc. All in all, XaAES reached a whole new level after being integrated this tightly with FreeMiNT and as of the 1.16.1 FreeMiNT release it must be considered highly usable. With the implementation of window shading the list of missing features was getting short.
(This section is used on Wikipedia with permission from http://xaaes.atariforge.net Archived 2003-05-27 at the Wayback Machine)