One of the most interesting aspects of the DMA chip, is perhaps the implementation of the FIFO buffers. Below is a small document describing the FIFO control logic that is much more complex than one would expect.
Note that the complex control logic and the very unusual shifting sequence described on the document might be considered mostly a curiosity. It doesn’t seem to be relevant externally to the chip, and it doesn’t seem to be something that can be exploited by software in anyway. This is mainly because the DMA chip doesn’t flush a FIFO buffer until it’s completely filled, and also because changing the DMA direction performs a complete reset of the buffers.
ST DMA chip FIFO buffers
-
ijor
- Posts: 825
- Joined: 30 Nov 2018 20:45
ST DMA chip FIFO buffers
You do not have the required permissions to view the files attached to this post.
http://github.com/ijor/fx68k 68000 cycle exact FPGA core
FX CAST Cycle Accurate Atari ST core
http://pasti.fxatari.com
FX CAST Cycle Accurate Atari ST core
http://pasti.fxatari.com
-
sporniket
- Site sponsor

- Posts: 1164
- Joined: 26 Sep 2020 21:12
- Location: France
Re: ST DMA chip FIFO buffers
Great work, thank you for the explaination :)
-
12-MHz
- Posts: 6
- Joined: 27 Jul 2020 07:41
Re: ST DMA chip FIFO buffers
Ijor, what you're describing about the internal structure is a guess, right?
Or did you really measure it on the chip?
Best regards
Robert
-
ijor
- Posts: 825
- Joined: 30 Nov 2018 20:45
Re: ST DMA chip FIFO buffers
It's not a guess. I'm not sure what exactly do you mean by "measure". But yes, I looked inside the chip using die micro photographs to analyze the internal logic.12-MHz wrote: 26 Feb 2025 08:53 Ijor, what you're describing about the internal structure is a guess, right?
Or did you really measure it on the chip?
The only thing that it's a rough estimate is the asynchronous timing. As described in the note the logic is based on internal delays. I don't know for sure how much is the exact delays produced by internal gates, such as an inverter propagation delay. That means that the simulation waveforms are probably not to scale. But it doesn't matter too much here. What matters is that some signals have much more delay than other signals and this creates pulses. What is the exact width of those pulses, I don't know. But again, it doesn't matter too much.
http://github.com/ijor/fx68k 68000 cycle exact FPGA core
FX CAST Cycle Accurate Atari ST core
http://pasti.fxatari.com
FX CAST Cycle Accurate Atari ST core
http://pasti.fxatari.com
Who is online
Users browsing this forum: Baidu [Spider], ClaudeBot, trendiction [bot] and 5 guests