This page is for ST and PC programmers, here you can download the debug build of Steem so you can help us track down the causes of bugs. You can also download some of the things that have helped us while writing Steem.

Steem on Github

Steem's source code is on Github:

If you would like to be a committer to the project, send us your github username and we will add you.

Developer forum

There is a dedicated discussion forum where you can talk about ideas for further development, ports, forks, etc.

Steem dev forum at Atari Forum

Debug Build

Steem's debug build features a disassembler and monitor, it has many features to help you work out what those crazy programs are doing. It doesn't have any instructions - apart from lots of warnings in debug.txt which you should read - and we don't want to spend time explaining or improving it when we could be making Steem work better, so you're on your own a bit. If you do find an emulation error, please tell us right away, we will give you full credit for finding it and will get straight on trying to fix it.

Download Steem Debug Build
Windows 95/98/ME/NT/2000/XP

Since v3 Steem's debug build will run on Linux using WINE. Just use the command line "noints nodd nods" and don't open the shortcuts dialog too much!

If you are trying to debug Steem we would suggest you join the Steem discussion list. On that list are many people with extensive knowledge of various parts of the ST who may be able to work out what is going on. Of course we, Steem's programmers, are there too. To join, use the button on the home page.

Here's a list of all the people who have found CPU errors so far, we are eternally grateful to them:

  • Jorge Cwik: Too many to count!
  • Stephen Ware: Trace exception bugs, lots of other exception bugs, and MIDI bugs.
  • Tomi Kivelä: Move.l instruction timing and lots of STE help.
  • Sébastien Molines: Prefetch and absolute mouse button flag bugs.
  • Hans Härröd: Blitter bugs (fixing Obsession).
  • Kimmo Hakala: Asr.b flag bug, movem dest high byte clearing bug and many other CPU and FDC bugs.
  • Xavier Joubert: Illegal instruction exception PC stacking (fixed MonST).
  • Sengan Baring-Gould: Hard drive Pexec mode 3 and 4 bug (fixed Turbo Assembler).

Here's some of the documentation about the ST and associated things that we've amassed while writing Steem. Some of it is quite hard to find, so we hope this list will come in useful for people interested in the ST and emulation.

How to detect emulation
EMUDTECT.S - Program provided with Pacifist to detect emulation, updated to detect Steem. Also explains how emulators should reveal themselves to running programs.

Motorola 68000 chip docs
Programmer's Reference Manual - guide to instructions.
User Manual - guide to instruction timings & general operation.

MFP manual

Hardware & IO
Some memory maps & block diagrams

Floppy Disk Controller
Docs on the 1772 FDC

Keyboard Controller
6301 IKBD chip

Atari Compendium
Lots of docs, including AES

STE specific features

History & calls

Border removal

Programmable Sound Generator
See also STE docs above for DMA sound.

Cartridge Port
Details on the cartridge port

Steem is written in C++ and compiled using Borland's free command line compiler; click here to get a copy for yourself.

Steem's highly optimised scanline drawing routines are written in assembler and compiled using the Netwide Assembler (NASM). Get your copy here:

SteemUpdate was written using the free C compiler LCC-Win32, it's a must have for anyone who wants to write small 32-bit programs. Click here to go to LCC's home page.

XSteem uses the PortAudio library to output sound, it's a great cross-platform solution for any program needing decent sound output. Go to the PortAudio home page for more details.

The DLL Steem uses to unzip compressed files under Windows was written in Borland's Delphi by Christian Ghisler. It is very easy to use from any language and extremely quick. Click here to download the 16 and 32 bit DLLs, the source and the documentation (84.1Kb). I also wrote a small console command line program that uses the unzip DLL, click here to download it (7.67Kb).

XSteem uses the zlib library and minizip to decompress zip files, click here to go to the zlib homepage.

Steem uses the FreeImage library to save screenshots in many different formats click here to go to the FreeImage homepage.