TransWikia.com

How does DMACON/R registers on Commodore Amiga platform work?

Retrocomputing Asked by Marko L on December 25, 2021

I have a specific question about the DMACON/R registers found in Commodore Amiga range of computers.
As you may know they are the DMA control registers that controls all the DMA channels used by the Amiga chipset – one for read and one for write. Now, does anyone have an insight in detail how those two registers works? I know that you use the bit #15 to set or clear the different bits in the write register (DMACON), but how does the DMA controller interpreter the different register bits?
Also, you have two bits that are unused on those registers: #11, and #12; is it possible to take advantage of them and use those two bits if you can extend the existing chip register set?
As far as I know the official hardware reference manual doesn’t tell anything about it.

It would be very interesting to know because it "might" be possible to enhance the chipset with external blitter and copper processors.

ADDENDUM:

First off: thanks to both hippietrail/lvd? and Brian H for your good answers.

To give you more ‘flesh’ (information) and background to my question:
I’ve been toying with John "Chucky" Hertell’s ReAmiga 1200 pcb files and were wondering if there is a possibility to enhance the chipset in anyway.
The PB8 and PB9 connectors that were designed to give the A1200 additional 1mb of chipram before the Amiga developers decided to go for the full two megabyte, could be a possible gateway to enhance the chipset. Those two connectors contains full data- and memory address bus (plus other signals) to chipram and such. I know that you also need the Register Address Bus (RGA) which you can find present at TestPoint3 (TP3) right below the Alice chip. If one could build a piggyback board containing chips in form of CPLD or FPGA of some sort and those chips could contain enhanced 16-bit copper running at higher synchronus speed (i.e. faster than the original ~3.58MHz) and a faster blitter – maybe 32-bit as long as it doesn’t need access to 16-bit chip registers.
Imagine that this is possible; you would need to deactivate the original blitter and copper and then activate the ‘new’ blitter and copper by using the DMACON/R registers (bit #11, and #12).
Maybe it is possible to just turn off the original blitter and copper and then call the new ones in software by reading and writing directly to the new registers that controls the new co-processors.
If you study the Amiga Hardware Reference Manual and look at all the chip registers, you can see that there are several registers that is unused (17 of them in AGA chipset, if I remember correctly).
Taking advantage of those unused registers you could enhance the functionallity of the Amiga chipset.

Well, those are my two cents about it.

One Answer

From the question, I think you already understand the basic function of the DMACON registers. In a nutshell, any form of DMA has to be enabled under software control by the programmer. This because the DMA transfers are meaningless until the programmer has first setup the buffers of data, and associated pointer registers, that will be used by the DMA controller to transfer memory. So, DMACON is a critical register touched by most Amiga software as the "trigger" for starting to draw a sprite, or playback an audio sample, or make use of the Blitter/Copper, all of which rely on DMA channels to do their actual work.

As far as this register being some form of "key" to unlock the potential extension of the Amiga architecture, I don't see that as being the case. Fundamentally, the Amiga's DMA controller is one sub-system of the larger memory control/access system comprised of the DMA controller, the custom chip peripherals, and the CHIP RAM memory, specifically. The 3 are designed to work together as a system, and this leaves us two fundamental ways to extend the Amiga's capabilities. Either:

  1. Add an enhanced processor that is superior to the Amiga's own DMA at transferring data buffers into, out of, or around CHIP RAM memory. This augments what the custom chip peripherals can then do with the data buffers.

  2. Add an external whole system that brings its own memory and peripherals, plus processing capabilities, that are superior to those provided by the Amiga's whole system of DMA+peripherals+CHIP RAM.

A simple example of number #1 is any good 68K accelerator. Something like a 50 MHz 68030 can out-perform the Amiga's Blitter, plus it can do blit operations between FAST and CHIP RAM buffers, which the Amiga's own Blitter could never do. It is common practice on accelerated Amiga's to supplant Intuition's use of the Amiga Blitter, and just use the CPU to move bitmaps around in memory for better performance.

An example of number #2 is an RTG (Re-targetable Graphics) card, like the CyberVision 3D. The card is comprised of a full system with its own S3 Virge graphics processor, its own video output peripheral, and its own VRAM. Being a newer/faster/more specialized piece of hardware, it can out-perform the Amiga graphics system in a number of key metrics. Most notably, it has the memory bandwidth for high-resolution, high-color displays exceeding the Amiga chipset.

Since DMACON is really just a small aspect of controlling the overall chipset "system", it has no key role to play when extending the Amiga in the ways described above.

Is there a third way which involves updating the chipset to make the whole system better? Sure, as that is what Ranger/ECS/AGA/Hombre all endeavored to do. The point is these are system-wide approaches and the big key is more/faster CHIP RAM and enhanced peripherals. Without those, there is really nothing new for the DMA controller to do on its own.

Answered by Brian H on December 25, 2021

Add your own answers!

Ask a Question

Get help from others!

© 2024 TransWikia.com. All rights reserved. Sites we Love: PCI Database, UKBizDB, Menu Kuliner, Sharing RPP