5

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.

  • What do you mean asking 'how does controller interpret' register bits? It's a matter of simple logic circuits to set or clear bits in a register when it is written. It is also a rather simple matter to either issue or not DMA transactions depending on 'enable' signal, coming from this register. – lvd Jul 24 at 13:24
  • The headers you mention in your "Addendum" are the same as on the standard Amiga 1200 and used for "clock port" peripherals, right? I don't think the ReAmiga 1200 added anything here, and I am not aware of those headers ever being utilized other than as a peripheral port for simple I/O devices, like RTC, Ethernet, etc. – Brian H Jul 26 at 19:04
  • "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." - a better way might be to redesign the PCB to take an FPGA in place of Alice/Denise. That way we could directly create the AGA chipset people say it should have had, rather having to add a separate board. – Bruce Abbott Jul 27 at 19:59
  • @Brian H: Yes you are right, Mr Hertell didn't add anything to the board in that case, the PB8/PB9 are the original ports. But like the clock port that is a sub part of those connectors (actually the name of the connectors are P8B/P9B my bad :/ ) wasn't intended for anything else but for the RTC. As you point out people found out that it could be used for other things I/O.ports etc. But since the rest of the connectors doesn't even have any pinlist installed and it is said to be used for memory expansion only nobody cared to think about using it in other ways like chip-register expansion. – Marko L Jul 28 at 5:24
  • @Bruce Abbott: You could redesign the whole board but I think that has been done with the Vampire 4 card all ready. With Vampire 4 rest of the Amiga is reduced to a hardware docking station that utilize the physical connectors. Not necessary a bad thing but it has been done I think. – Marko L Jul 28 at 5:36
3

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.

| improve this answer | |

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.