The most veteran of the place will be very fond of the Amiga de Commodore, a 16-bit computer belonging to the generation of the second half of the 80s and early 90s. It is remembered for its high capacities for vintage multimedia above the rest. Neither the IBM PC, nor the Apple Macintosh, nor the Atari ST could overshadow it.
The Commodore Amiga is one of the most mythical and remembered platforms in the history of computing and its hardware. Designed by a team led by Jay Miner, who had already designed the Atari VCS console and Atari 8-bit computers, the Atari 400 and 800, the Commodore Amiga was a 16-bit enhanced version of their previous designs. . It was a convulsive project in which it was first born as a video game console for Atari to later evolve as a computer for its rival Commodore and going along the way as a project of an independent company.
The Commodore Amiga was launched in 1985, in the form of the Amiga 1000, but the computer that many of us surely remember is the Commodore Amiga 500, a low-cost version of the first model that came out in 1987 with a reduced price and reduced form factor. Since it had all its hardware integrated into a keyboard like many similar computers of the time, its final appearance did not correspond to the enormous potential that it contained within.
As a reminder of this mythical computer, but especially for those who did not know it, we have decided to pay a small tribute to it.
Commodore Amiga architecture
Because in HardZone we are dedicated to talking about hardware that is what we are going to do when talking about the Amiga, since to understand what made it so special we have to talk about its architecture. Whose organization you can see in the diagram above, it is true that compared to the systems that exist today it is a relatively simple architecture.
What was it that made the Amiga special? The enormous power it had thanks to what eventually became called the Original ChipSet or OCS. A combination of three female name support processors named: AGNUS, DENISE, and PAULA. As for its core CPU this was the widely adopted Motorola 68K. As for the RAM, the Amiga was a NUMA configuration and therefore with two different RAM memory wells, these were the following:
- The RAM Chip was included as standard in the system, its access was made through the coprocessor or support chip AGNUS. Which served as a memory controller and allows all components to access this type of memory.
- Fast RAM was for the exclusive use of the CPU. A system could work without Fast RAM and there were even models that were sold without it, so it was possible to use the Amiga without this type of memory, but at the cost of losing a lot of performance.
Now, we are going to make a summary of the different components of the Commodore Amiga.
The CPU of the Amiga, the Motorola 68000
The main CPU of the Commodore Amiga was the mythical Motorola 68K, which was part of a family of processors with its own set of registers and instructions that was used in many systems. From several of the 16-bit computer families (Amiga, Atari ST, X68000, Apple Macintosh). In a great multitude of recreational boards from different companies and in video game consoles such as the Sega Mega Drive or the Neo-Geo from SNK. At a comparative level, it can be said that the 68K was in the 80s what ARM is today, the ISA and architecture for everything that was not Intel or, in other words, the PC.
It was a CISC-type CPU like x86, with 32-bit registers, an external 16-bit data bus and 24 pins for addressing. So the RAM limit supported by the systems was 16 MB. At the gross power level, it was a little above the original 8086 and below the 80286 of the AT PC, so in the 16-bit generation the PC had the most powerful CPU. Which was made worse by the fact that most of the 68K compilers were bad.
The clock speed of its NTSC version was 7.16 MHz, which corresponds to twice the value of the color salvo of the NTSC television format. This is because the Amiga was designed to be connected to a standard television and all system clock speeds were derived from the 3.58 MHz of that salvo of color. On the other hand, the PAL version was a little slower when operating at 7.09 MHz, we will comment on this difference later.
The first processor designed by Jay Miner and his team for the Commodore Amiga is AGNUS, which contains two different components inside. The first is the DMA controller that integrates a function called Blitter or Block Transfer and the other is called COPPER, which is combined with DENISE to generate the system graphics.
AGNUS was nothing more than a DMA controller, a type of device present in the hardware and that is responsible for communicating two types of memory with each other and making copies of the data without the CPU having to participate. They also serve to communicate data, but its greatest function was not only the ability to copy large volumes of memory with its Block Transfer function, but the ability to do so by manipulating the data, although in a very simple way compared to today by relying on instructions. simple booleans. To this day the Blitter is still used in GPUs, they are the ROPS of the graphics cards that are responsible for drawing the image buffer once the GPU has processed the color of each of the pixels on the screen.
The last of the components that was part of AGNUS was called COPPER, a shortening of the term coprocessor. It can be compared to current GPU command processors. Which was in charge of generating the image through a screen list and controlling for this function the Blitter located in the same AGNUS and DENISE, the true graphics chip of the system. How curious COPPER was an advanced version of ANTIC, one of the dedicated chips for the Atari 8-bit series of computers. Considered by architecture and by sharing the same designers as the true predecessor of the Amiga.
DENISE is the graphics chip of the Commodore Amiga, this is responsible for generating the graphics on the screen, and is the third design for graphics that Jay Miner’s team made with this function. So its origin can be traced back to the TIA chip of the Atari VCS, but contrary to this it was not responsible for generating the audio of the games.
Under the name of DENISE is the processor in charge of reading the image buffer and sending the data to the television. This was done through the composite video output and since there were two television formats at that time there were also two versions for DENISE. One for each of the most widely used television standards.
Internally DENISE are two different hardware, on the one hand it is a processor with the ability to generate the image buffer. Which he did during the VBlank period of drawing, in which nothing was shown on the screen. At that time for a good part of the time the CPUs were busy doing nothing, waiting for the graphics system to draw the image on the screen. Since the RAM that was used to use was a single channel. The use of Fast RAM alleviated this from a CPU perspective, but when DENISE was drawing the screen image no other system components could access the RAM, except in the HBlank and VBlank periods, in which the COPPER and the CPU through the Blitter could change
DENISE and the bit planes
Graphics on the Commodore Amiga like other graphics systems of the time such as the EGA on PC are created using bit planes. These are based on single bit image buffers that were combined with each other. Which differ from the current packed pixel system where all the color information of a pixel comes together. In total, it represented the image using a total of 6 bitplanes, but 1 was used to choose one level of brightness from the palette or another and the other 5 bits to define one of the 32 colors that could be displayed on the screen.
Since the Amiga’s RAMDAC was 12-bit, 4-bit per RGB component, giving it a palette of 4096 colors. Where it was possible to change the value of the registers that stored the 32 colors in each scan line. Which allowed to place the 4096 colors at the same time, but because the transfer speed was not fast enough this could only be done in static images or with low refresh rates, which was baptized as HAM mode.
Since the Amiga originated from a video game console, its resolution modes are designed to be playable at possible resolutions on a television. Regarding horizontal resolution, it had an image buffer of 320 or 64o “pixels” per scan line and 200 or 400 lines depending on whether the output was interlaced or progressive. In the first case, the refresh rate was 25 Hz in PAL and 30 Hz in NTSC, to double in interlaced mode.
Sprite generation on the Commodore Amiga
DENISE, like other graphics chips of the time, had a generator of sprites, which are patterns or bitmaps that change position in each frame, so their characteristics were defined in a series of registers in memory indicated by usually the following parameters:
- The position of the sprite’s on-screen bitmap, both horizontally and vertically.
- The orientation, that is, from where the bitmap was drawn and in which direction.
- The color palette used.
- The preference over the background and other sprites.
This information, both the registers where the position of the sprites is marked, as well as the bitmaps that compose them and their color palettes were in the RAM Chip. The Amiga could store the information of up to 8 sprites. But thanks to the speed to change the registers through the Blitter-COPPER duo, the number of sprites shown is much higher. Regarding their size, these could have sizes of 1, 2, 4, 8 or 16 pixels both horizontally and vertically.
The COPPER-Blitter-DENISE trinity
The graphic power of the Amiga was due to the use of these three support processors, which in combination with the 68K were responsible for generating the graphics on the screen. Although to understand the enormous potential of the Amiga we have to take into account the ability to move the graphics, we have to understand the way in which computers generated graphics at the time.
Currently the VRAM memories used are at least dual channel or fast enough so that there is no contention in memory access when rendering. At that time, when the graphics system read the video memory, it did not allow access by other processing units. Therefore, the dead times in which the electron beam of the CRT screen is repositioned had to be used to vary the values in memory that were used to draw the scene.
COPPER, on the other hand, being the command processor, was the one that gave DENISE instructions. For example, you could have the video information change mid-frame, you could also command the Blitter to change the memory addresses corresponding to the graphics values. Which allowed to display more elements on the screen than in theory allowed by the records. Moreover, when the COPPER stopped managing DENISE and the Blitter for drawing the scene as soon as it reached the Overscan period + VBlank returned control of the RAM Chip to the CPU without having to exist any software routine to it.
PAULA, audio and peripherals on the Commodore Amiga
The third chip that accompanies the 68K is called PAULA, which has two functions. The first of these is the generation of audio for applications, where it stands out over its contemporaries including the Commodore 64, which at that time had the most advanced sound chip of the time. Let’s not forget that most systems used to have a chip capable of generating audio through 3 fixed channels of square wave and a noise channel. The first PC sound cards that could play audio with FM modulation had not yet appeared on the market.
But what made PAULA so special? The fact that it was the first audio system capable of reproducing audio in PCM format and therefore samples. With this, the CPU did not have to waste time controlling the audio output. It only had to mark in memory where the samples were inside the RAM Chip, supporting up to 4 simultaneous channels so that they could be converted into 2 stereo channels, one for each side.
The other function of PAULA is what we have left to define a complete computer and that is that it was in charge of managing the peripherals that were connected to the Commodore Amiga, apart from acting as a controller for the 3.5 floppy drive that was integrated into the Commodore. Friend.