Atari ST Disk System - Generics

4 November 2004

The DMAC code we put into WinSTon is now hopefully complete and working. Remember this is just the interface plus a system DMA channel whose purpose is to allow communication with the “real” (emulated) FDC.

This is designed so the real FDC (the WDC1772) is completely separated and the DMAC and the FDC only communicate with each other through signalling - just like the real components. This means that since the WDC1772 is not directly related to Atari emulation (in fact it is a very common IC in its various incarnations so useful for many other systems), and once the emulation of it is working, we might put it completely into the IPF library. This should have the benefit of improving FDC emulation in WinSTon without changing the code too much. Let’s hope it will be fast enough, since once something like this is emulated properly, it usually costs...

In a more general sense, this is a good technique for the emulation of computer systems. We are separating the various emulated components and emulating the signals that occur between them on the real hardware. This helps us to create a very accurate representation of the real hardware since we are describing how components communicate with one another rather than simply simulating the effects of their combined operation and producing a result where it is required, as is with more common forms of emulation. Everything has its place however, the downside to emulation at this level of detail is that it will be more processor intensive. That aside, another benefit of this technique is that we will be able to wire emulated components together in a similar manner to wiring them physically, which will give us huge advantages when creating disk system emulation for computer hardware supported in the future.

Requesting the IRQ line is the only thing that our emulation of the WDC1772 does right now, but finally the WinSTon emulated ST boots again though it complains about the dead drives.