Atari ST

Note: When downloading files, click the circled icon at the top of the new page to retrieve the file.

Tools and Resources

I developed and compiled all the software for the ST using Mark Williams C from a version I purchased in 1986. Code for the PC was written with Visual Studio 6.0. The screen shots of the software are from Steem SSE unless I just took a picture of my ST mono monitor.

Some links:

ST Forum:

Steem SSE:

My Machine (1986 vintage 1040ST)

Click on the images for larger views.

The image on the left is the main board with a few modifications for TOS and memory upgrades. My machine had been flakey and then dead for about 15 years until I opened it up again in the summer of 2014 and found that the 68000 socket I added for an external bus was the cause of the failures. I pulled the socket and re-soldered the processor and the picture on the right shows that it is now up and running again. Not bad for a 28 years old machine.

Hardware Projects

Cartridge Port to RS-232

Schematic: AtariST_RS232.pdf (8-03-2014)

PIC Project: CBLib CBAtariRS232 (CBAtariRS232.c) (Version 0.3 10-07-2014) For my other PIC projects see here.

Device: 18F2620

PC code (source and executable): (V1.0 10-07-2014)

AtariST code (source and executable):

File Transfer Protocol to move files between PC and ST: (10-07-2014)

Combo RAM drive D: and serial port drive: (10-07-2014)

This project uses a FTDI USB to 5V TTL RS-232 cable along with a PIC microcontroller and some TTL parts to get a 50 KByte/second link to a PC. I created software for the PC (Windows) to implement a 32 Mbyte disk as well as an FTP server. I also created software on the AtariST side under TOS to access the 32 Mbyte disk (drive_z) and to access the FTP server (FTPPC) to copy files between the two machines.

Note that when using the FTDI USB to serial cable with a windows machine, change the Latency Timer under Advanced Settings under Port Settings of the COM port from 16ms to 1ms to improve transfer rates.

TOS 2.06 Upgrade

Click on images above for larger versions.

Schematic and description: tos206.txt (Version 1.0 about 1992)

This is an upgrade I did shortly after TOS2.06 came out. The instructions are in the text file above. The two photos above show the changes I made The one on the left shows the old ROMs removed and the new ones installed while the photo on the right shows the three TTL chips I added above the RAMS (which is another modification I made somewhat later).

Memory Upgrade

Click on image above for a larger version

This is a memory upgrade to convert from 1 Mbyte of memory to 4 Mbytes. This was done around 1993 and was very ugly and tedious but I found some surplus DRAMs (TC511000) and the datasheets looked like they would work so I tried to replace one chip with the extra address line tied low and it worked so I did all 32. The original chips were 256 Kbit parts while the new ones are 1 Mbit parts. Both are organized as 1 bit wide parts.

I had two types of parts. The TC511000P-10 parts are through hole parts and the recommended parts to get. As of 2014, I see them on ebay for $29 for a pack of 18. The TC511000J-12 parts are surface mount (J leads) and are a bit slower but work fine. The surface mount parts are a lot more work to cram onto the board. Both parts have more pins for the extra address line (one more column bit and one more row bit for 4 times the memory). Zooming in on U30 (next to C104) will allow this to be seen a bit clearer. The blue wire coming from a hole in the board is the extra multiplexed address line from the MMU (MA9). I have a 330 Ohm resistor on the back of the board in series with the MMU MA9 pin for a series terminator just like the other MA[8:0] signals (orange-orange-brown resistors to the right of C104).

The modification starts by removing all 32 RAM chips using a solder sucker and then bending the pins on the new chips and soldering them in. The bent pins are rewired for some pin swizzling. I used the data sheets of the two parts for a guide. You have to be a nut to attempt this but back then I never worried about what could go wrong as I did not destroy the old parts when I removed them and I could still buy them if needed.

Software Graphics


Source and executable: (1-03-1993)

Another version of the classic self running animation of bouncing sticks with trails. Move the slider on the right to change the maximum step size. The window can be resized and moved.


Source and executable: (9-11-1989)

Interactive drawing of rotated boxes within boxes. The slider on the right controls the step size while the slider on the bottom controls the number of boxes. The window can be resized and moved.

Lunar Lander

Source and executable: (2-03-1990)

Start of a lunar lander game. Works with and without a joystick. Use the down, left and right arrow buttons without a joystick to control the thrust. New landscapes can be created with a tool included in the zip file. It is a very manual process of entering line coordinates. I drew the first landscape on paper and entered the points by hand.


Source and executable: (5-21-1989)

Start of a breakout game. Uses the mouse to control the paddle. Click the left mouse button to launch the ball.

Software Utilities

File Transfer Protocol to PC

Source and executable: (10-07-2014)

Required hardware: cartridge port to RS-232

This program implements most of the ftp commands which allow files to be moved between the ST and a PC using the cartridge port The following commands are supported:

Remote commands:

      get file
      mget file [file2 file3 ...]
      put file
      mput file [file2 file3 ...]
      rm file [file2 file3 ...]
      ls wildcards
      cd path
      mkdir path
      rmdir path

Local commands

      lls wildcards
      lcd path
      lrm file [file2 file3 ...]
      lrmdir directory
      lmkdir directory

Serial Disk plus RAM Disk

Source and executable: (10-07-2014)

Required hardware: cartridge port to RS-232

A serial port disk and RAM disk program in C and assembler which will make two disk drives. The drive letter D will be the RAM disk and drive letter E will become the serial port disk.

RAM Disk

Source: (9-16-2014)

A little RAM disk program in C and assembler which will make a disk based on the size requested. The drive letter will be F. Based on the address of the source (writes) or destination (reads) will attempt to do 32-bit transfers. The sector transfer loop is unwound by a factor of 8 to improve performance.