STonC - ST emulator on Curses

[ EN | FR ]

STonC is a variant of STonX, the Atari ST emulator for Unix/X.

Unlike other emulators intended to run either modern GEM programs, or old ST games, STonC is indended to run operating systems like Minix which do not run on other emulators.

Changes were made in two directions:

  • expanding the accuracy of emulation at the hardware level
  • making it easier to port to anything other than Unix/X

this last goal led to the paradoxal choice of the text-only library Curses in lieu of graphical toolset. Despite of this, STonC is surprisingly usable for:

  • run MiNT, Minix, and text-only TOS progs (like nethack)
  • develop free TOS replacements like NullTOS or EmuTOS

STonC is covered by the GPL version 2 or later.


  • emulate an Atari MegaST (same as STonX)
  • detailed implementation of low-level hardware MFP, FDC, DMA and ACIA
  • floppy and hard disk emulation works with no native extension (no cartridge, no ROM patch)
  • can also support the STonX cartridge for native filesystem or huge floppy images.
  • emulates a vt100 terminal connected to the Atari ST through the serial port
  • written in a priori portable C, with no library except curses
  • configurable (reset, manage floppies, ...) using an embedded shell - configurations can be written in stonc scripts to easily maintain a set of test configurations


  • no graphics - STonC can recognise the Atari system fonts and convert the screen bitmap to text; colors are not managed yet (all is printed in black and white)
  • no mouse, no joystick
  • no sound
  • no direct access to host devices - floppy and hard disk emulation is done through images

What is it useful for?

It can be used to:

  • run MiNT, minix, and text-only TOS progs
  • play nethack
  • test and develop EmuTOS
  • One can also take code for some features and add it to STonX or other emulators.

It cannot be used to

  • run GEM programs
  • run graphical games and demos


Latest version is version 0.8.1 dated 2004-01-07. This interim version fixes some bugs since 0.8.0 and also comes with a ready-to-use emutos image.

Previous versions:

The source code archive comes with a Makefile ready to use on Linux x86 and Cygwin.

It should not be too difficult to have it run on other machines, and I would appreciate any report about successful or unsuccessful attempt.


STonC comes with a readme in doc/README and a manual in doc/MANUAL. Additionnally there is a kind of online help available by typing help from the stonc shell. Last but not least, example configuration scripts are found in the Samples directory.

I also gathered some documentation about running Minix with STonC.

Finally you can mail me.


I had done some extensive work on a private copy of STonX to add enough hardware functionality to let Minix run (Minix, unlike TOS, is fully interrupt-driven, so an accurate MFP was absolutely needed, and a ASCI hard disk was useful too).

One day I realised that for a long period of time I had never used the GEM, only the Minix text console and the xterm tty attached to the atari serial port.

At the same time I was occasionally travelling and using a laptop under MS Windows. I wanted to continue working on minix on this laptop, and didn't want to port the whole X stuff that I wasn't really using anyway. So I removed all parts of my heavily hacked STonX that couldn't compile on cygwin, added some code to manage different virtual terminals on top of curses, added a small embedded shell for configuration, and this became STonC.

Then in the beginning of 2001 people on the internet started again to develop on STonX; eventually features added to STonC could be reported to STonX as well. But as I hardly need the graphic STonX presently, and due to lack of time, I will probably not do this anytime soon.


  • STonX, The ST emulator for Unix/X and the origin of more than 80% of STonC;
  • EmuTOS a project aiming at providing a free TOS replacement for emulators;
  • Minix, a small educational Unix-like operating system once ported to Atari ST and other 68k machines;
  • Cygwin, a UNIX environment for Windows;
  • pdcurses, an implementation of the Curses library;
  • ncurses, another implementation of the Curses library;
  • Nethack, a popular single player dungeon exploration game, and one of the biggest text-only TOS program I know of;
  • Atari ST documentation: A guy once started to port STonX to Java. The project seems stopped, but a lot of technical documentation on the Atari can be found there.






Valid HTML 4.01! (C) 2003 - Laurent VOGEL