Atariscne.org

Back in the late 80's and early 90's the first versions of the Atari STe machines carried the same DMA-chip as the previous ST computers. However, changes in the new machines made timings extremely close. Sometimes so close that the DMA-chip would fail writing data correctly. Atari recognized the issue and made an updated DMA-chip with larger toleranses for timing, which fixed the issue.  Still there were a lot of previously sold machines with the old DMA-chip out there.

In modern times when you buy a used Atari STe, it's a gamble. Sometimes you get the new DMA-chip which works well. But more often than not, you get the old chip. Sometimes the old chip will work, sometimes not.  The error might not show up directly, but the machine need to warm up for 15-30 minutes. To test the problem, simply save desktop settings, the partition will be screwed up after if the chip is bad. Remember to always use a spare drive that has no data!

 

Over 30 years later, after countless of speculation and various fixes; all from heatsinks, fans, patching of the DMA-chip and even replacing the processor, Christian Zietz of CHZ-Soft had enough and started a comprehensive investgation. In 2023 he presented the results and finally we knew what was wrong. There's no magic, no noise, no bad processors, just borderline timing that can differ from machine to machine. Atari knew the cause already back in the day and made the updated chip accordingly.

More amazingly, Christian dug even deeper and found out that Ataris programming recommendations for the DMA-chip might be another culprit that trigger the error. Atari recommends that two DMA-chip registers should be set with a single move.l instruction (for the pre-production ST DMA-chips). However, by setting these two registers separately with two move.w, the timings get slightly less tight and thus could perhaps help the bad STe DMA? Christian tested the theory on the open source EmuTOS that contains it's own harddisk driver with positive results. 

From there, it's been sort of silent for a couple of years, no official EmuTOS with the software fix and no word from the best and most common driver (Hddriver) about implementing the improvement.

Until Sommarhack 2025 that is. Nerve of Ephidrena released the dmapatch.ttp program together with the DMA Bliss intro/cracktro. What the dmapatch.ttp does is reading the Hddriver binary, patching the move.l DMA-register access with two move.w instead and writes out a new driver.

Atariscne.Org was intrigued and made our own tests with Nerves patch program.

Check out the quite lengthy video below where we take an Atari STe with a bad DMA-chip, partition a disk with Hddriver 12 and see it fail!

Then run Nerves patch and try again, will it work?

Atariscne.Org fiddling with bad-DMA and dangerous demoscene patch programs

 

🔗 CHZ-Soft bad DMA research

🔗 Nerve/Ephidrena Hddriver patch sourcecode

🔗 DMA Bliss cracktro (featuring dmapatch.ttp)

🔗 YMSE by Ephidrena (music from the video)

 

Comments powered by CComment

© 2025 The Atariscne Collective | info@atariscne.org