Original Amiga chipset
Encyclopedia
The Original Chip Set was a chipset
used in the earliest Commodore
Amiga
computers and defined the Amiga's graphics and sound capabilities. It was succeeded by the slightly improved Enhanced Chip Set
(ECS) and greatly improved Advanced Graphics Architecture
(AGA).
The original chipset appeared in Amiga models built between 1985 and 1990: the Amiga 1000
, Amiga 2000
, Amiga CDTV, and Amiga 500
.
technology by Commodore
's chip manufacturing
subsidiary, MOS Technology
. All three custom chips were originally packaged in 48-pin DIP
s; later versions of Agnus, known as Fat Agnus, were packaged in an 84-pin PLCC
.
Agnus is the central chip in the design. It controls all access to chip RAM
from both the central 68000 processor and the other custom chips, using a complicated priority system. Agnus includes sub-components known as the blitter (fast transfer of data in memory without the intervention of the processor) and the copper (management of the monitor signal). The original Agnus can address 512 KB
of chip RAM
. Later revisions, dubbed 'Fat Agnus', added 512 KB pseudo-fast RAM, which for ECS was changed to 1 MB (sometimes called 'Fatter Agnus') and subsequently to 2 MB chip RAM.
Denise is the main video processor. Without using overscan
, the Amiga's graphics display is 320 or 640 pixel
s wide by 200 (NTSC
) or 256 (PAL
) pixels tall. Denise also supports interlacing, which doubles the vertical resolution. Planar bitmap graphics are used, which splits the individual bits per pixel into separate areas of memory, called bitplanes. In normal operation, Denise allows between 1 and 5 bitplanes, giving 2 to 32 unique colours. These colours are selected from palette of 4096 colours. A 6th bitplane is available for two special video modes: Halfbrite mode
and Hold And Modify mode. Denise also supports eight sprites
, sub-pixel scrolling, and a "dual playfield" mode. Denise also handles mouse and digital joystick input.
Paula is primarily the audio chip, with 4 independent hardware-mixed 8-bit PCM
sound channels, each of which supports 64 volume levels (no sound to maximum volume) and sample rates from roughly 20 Hz
to almost 29 kHz. Paula also handles interrupts and various I/O functions including the floppy disk drive, the serial port
, and analog joysticks.
There are many similarities - both in overall functionality and in the division of functionality into the three component chips - between the OCS chipset and the much earlier and simpler chipset of the Atari 8-bit family
of home computers, consisting of the ANTIC
, GTIA and POKEY
chips; both chipsets were conceptually designed by Jay Miner
, which explains the similarity.
because the chipset has access to it. Both the central 68000 processor and other members of the chipset have to arbitrate for access to RAM via Agnus. In computing architecture terms, this is Direct Memory Access
(DMA), where Agnus is the DMA Controller (DMAC).
Agnus has a complex priority-based memory access policy. For example, bitplane data fetches are more important than blitter transfers. As the original 68000 processor in Amigas could only access memory on every second clock cycle, Agnus operated a system where the time-critical custom chips access got the "odd" clock cycle and the CPU got the "even" cycle, thus the CPU did not get locked out of memory access and did not appear to slow down. However, non-time-critical custom chip access, such as blitter transfers, can use up any spare odd or even cycles and, if the "BLITHOG" (blitter hog) flag is set, Agnus can lock out the even cycles from the CPU in deference to the blitter.
Agnus's timings are measured in "colour clocks" of 280 ns
. This is equivalent to two low resolution (140 ns) pixels or four high resolution (70 ns) pixels. Like Denise, these timings were designed for display on household TV
s, and can be synchronised to an external clock source.
is a sub-component of Agnus. "Blit" is shorthand for "block image transfer" or bit blit
. The blitter is a highly parallel memory transfer and logic operation unit. It has three modes of operation: copying blocks of memory, filling blocks (e.g. polygon filling) and line drawing.
The blitter allows the rapid copying of video memory, meaning that the CPU can be freed for other tasks. The blitter was primarily used for drawing and redrawing graphics images on the screen, called "bobs", short for "blitter objects".
The blitter's block copying mode takes zero to three data sources in memory, called A, B and C, performs a programmable boolean function on the data sources and writes the result to a destination area, D. Any of these four areas can overlap. The blitter runs either from the start of the block to the end, known as "ascending" mode, or in reverse, "descending" mode.
Blocks are "rectangular"; they have a "width" in multiples of 16 bits, a height measured in "lines", and a "stride" distance to move from the end of one line to the next. This allows the blitter to operate on any conceivable video resolution. The copy automatically performs a per-pixel logical operation. These operations are described generically using minterms. This is most commonly used to do direct copies (D = A), or apply a pixel mask around blitted objects (D = (C AND B) OR A). The copy can also barrel shift each line by 0 to 15 pixels. This allows the blitter to draw at pixel offsets that are not exactly multiples of 16.
These functions allow the Amiga to move GUI windows around the screen rapidly as each is represented in graphical memory space as a rectangular block of memory which may be shifted to any required screen memory location at will.
The blitter's line mode draws single-pixel thick lines using the Bresenham's line algorithm
. It can also apply a 16-bit repeating pattern to the line. The line mode can also be used to draw rotated bobs: each line of bob data is used as line pattern while the line mode draws the tilted bob line by line. The blitter's filling mode is used to fill per-line horizontal spans. On each span, it reads each pixel in turn from right to left. Whenever it reads a set pixel, it toggles filling mode on or off. When filling mode is on, it sets every pixel until filling mode is turned off or the line ends. Together, these modes allow the blitter to draw individual flat-shaded polygons, albeit very slowly in comparison to modern 3D graphics chipsets or the CPU of a moderately fast Amiga.
that executes a programmed instruction stream, synchronized with the video hardware.
When it is turned on, the copper has three states; either reading an instruction, executing it, or waiting for a specific video beam position. The copper runs a program called the copper list in parallel with the main CPU
. The copper runs in sync with the video beam, and it can be used to perform various operations which require video synchronization. Most commonly it is used to control video output, but it can write to most of the chipset registers and thus can be used to set audio registers or interrupt the CPU.
The copper list has three kinds of instructions, each one being a pair of two bytes, four bytes in total:
The length of the copper list program is limited by execution time. The copper restarts executing the copper list at the start of each new video frame. There is no explicit "end" instruction; instead, the WAIT instruction is used to wait for a location which is never reached.
In Extra-HalfBrite (EHB), if a pixel is set on the sixth bitplane, the brightness of the regular 32 colour pixel is halved. Early versions of the Amiga 1000
sold in the United States
did not have the Extra-HalfBrite mode.
In Hold-and-Modify
mode (HAM), each 6-bit pixel is interpreted as 2 control bits and 4 data bits. The 4 possible permutations of control bits are "set", "modify red", "modify green" and "modify blue". With "set", the 4 data bits act like a regular 16-colour display look up. With one of the "modify"s, the red, green or blue component of the previous pixel is modified to the data value, and the other two components are held from the previous pixel. This allows all 4096 colours on screen at once.
In Dual Playfield mode, instead of acting as a single screen, two "playfields" of 8 colours each (3 bitplanes each) are drawn on top of each other. They are independently scrollable and the background colour of the top playfield "shines through" to the underlying playfield.
There are two horizontal graphics resolutions, "lowres" with 140 ns pixels and "hires" with 70 ns pixels. This makes the display 320 or 640 pixels wide without using overscan. Denise supports very wide overscan; there is no need for a border around the graphics as other computers suffered from. Vertical resolution, without overscan, is 200 pixels for an 60 Hz NTSC Amiga or 256 for a 50 Hz PAL Amiga. This can be doubled using an interlaced display.
Denise can also lay up to 8 sprites
on top of the graphics, and detect collisions between sprites and the background, or between sprites. These sprites have 3 visible colours and one transparent colour, however two sprites can be "attached" to make a single 15 colour sprite. Using Copper in-frame register manipulations, each sprite 'channel' can be reused multiple times in a single frame.
ing with external video hardware. There is also an 1 bit output on this connector that indicates whether the Amiga is outputting background colour or not, permitting easy overlaying of Amiga video onto external video. This made the Amiga particularly attractive as a character generator for titling videos and broadcast work, as it avoided the use and expense of AB roll and chromakey units that would be required without the genlock support. The support of overscan, interlacing and genlocking capabilities, and the fact that the display timing was very close to broadcast standards (NTSC or PAL), made the Amiga the first ideal computer for video purposes, and indeed, it was used in many studios for digitizing video data (sometimes called frame-grabbing), subtitling and interactive video news.
. The logic remained functionally identical across all Amiga models from Commodore.
-driven 8-bit PCM sample sound channels. Two sound channels are mixed into the left audio output, and the other two are mixed into the right output, producing stereo
audio output. The only supported hardware sample format is signed linear 8-bit two's complement
. Each sound channel has an independent frequency and a 6-bit volume control (64 levels). Internally, the audio hardware is implemented by four state machines, each having eight different states.
Additionally the hardware allows one channel in a channel pair to modulate the other channel's period or amplitude. It is rarely used on the Amiga due to both frequency and volume being controllable in better ways, but could be used to achieve different kinds of tremolo
and vibrato
, and even rudimentary FM synthesis effects.
DMA-driven audio is synchronized with the video mode in use. On a regular NTSC or PAL display, DMA audio playback is limited to a maximum sampling rate
of 28867 Hz (PAL: 28837 Hz), due to the amount of data that can be fetched from memory (2 bytes per scan line) in the time allocated to Paula. As explained in the discussion of Agnus, memory access is prioritized and only a few slots for memory access are available to Paula's sound channels. This limit can be overcome with the ECS and AGA chipsets either by using a video mode with higher horizontal scan rate
or by using the CPU to drive audio output directly.
The Amiga contains an analog low-pass filter
(reconstruction filter
) which is external to Paula. The filter is a 12 dB/oct Butterworth
low-pass filter at approximately 3.3 kHz. The filter can only be applied globally to all four channels. In models after the Amiga 1000, the brightness of the power LED is used to indicate the status of the filter. The filter is active when the LED is at normal brightness, and deactivated when dimmed (on early Amiga 500 models the LED went completely off). Models released before Amiga 1200 also have a static "tone knob" type low-pass filter that is enabled regardless of the optional "LED filter". This filter is a 6 dB/oct low-pass filter with cutoff frequency at 4.5 or 5 kHz.
A software technique was later developed which can play back 14-bit audio by combining two channels set at different volumes. This results in two 14-bit channels instead of four 8-bit channels. This is achieved by playing the high byte of a 16-bit sample at maximum volume, and the low byte at minimum volume (both ranges overlap, so the low byte needs to be shifted right two bits). The bit shift operation requires a small amount of CPU overhead, whereas conventional 8-bit playback is almost entirely DMA driven. This technique was incorporated into the retargetable audio subsystem AHI
, allowing compatible applications to use this mode transparently.
or GCR
data in any format via DMA or programmed I/O. It also provides a number of convenient features, such as sync-on-word (in MFM coding, $4489 is usually used as the sync word). MFM encoding/decoding is usually done with the blitter — one pass for decode, three passes for encode. Normally the entire track is read or written in one shot, rather than sector-by-sector.
In addition to the native 880 kB
3.5-inch disk format, the controller can handle many foreign formats, such as:
only and lacking a FIFO
buffer. However, virtually any bit rate can be selected, including all standard rates, MIDI rate, as well as extremely high custom rates.
Chipset
A chipset, PC chipset, or chip set refers to a group of integrated circuits, or chips, that are designed to work together. They are usually marketed as a single product.- Computers :...
used in the earliest Commodore
Commodore International
Commodore is the commonly used name for Commodore Business Machines , the U.S.-based home computer manufacturer and electronics manufacturer headquartered in West Chester, Pennsylvania, which also housed Commodore's corporate parent company, Commodore International Limited...
Amiga
Amiga
The Amiga is a family of personal computers that was sold by Commodore in the 1980s and 1990s. The first model was launched in 1985 as a high-end home computer and became popular for its graphical, audio and multi-tasking abilities...
computers and defined the Amiga's graphics and sound capabilities. It was succeeded by the slightly improved Enhanced Chip Set
Enhanced Chip Set
The Enhanced Chip Set is the second generation of the Amiga computer's chipset, offering minor improvements over the original chipset design. ECS was introduced in 1990 with the launch of the Amiga 3000. Amigas produced from 1990 onwards featured a mix of OCS and ECS chips, such as later versions...
(ECS) and greatly improved Advanced Graphics Architecture
Advanced Graphics Architecture
Advanced Graphics Architecture is the third generation Amiga graphic chip set, first used in the Amiga 4000 in 1992. AGA was codenamed the Pandora chipset by Commodore International internally....
(AGA).
The original chipset appeared in Amiga models built between 1985 and 1990: the Amiga 1000
Amiga 1000
The A1000, or Commodore Amiga 1000, was Commodore's initial Amiga personal computer, introduced on July 23, 1985 at the Lincoln Center in New York City....
, Amiga 2000
Amiga 2000
The Amiga 2000, or A2000, is a personal computer released by Commodore in 1986. It is the successor to the Amiga 1000.-Features:Aimed at the high-end market, the original Europe-only model adds a Zorro II backplane, implemented in programmable logic, to the custom Amiga chipset used in the Amiga 1000...
, Amiga CDTV, and Amiga 500
Amiga 500
The Amiga 500 - also known as the A500 - was the first “low-end” Commodore Amiga 16/32-bit multimedia home/personal computer. It was announced at the winter Consumer Electronics Show in January 1987 - at the same time as the high-end Amiga 2000 - and competed directly against the Atari 520ST...
.
Overview of chips
The chipset which gave the Amiga its unique graphics features consists of three main "custom" chips; Agnus, Denise, and Paula. Both the original chipset and the enhanced chipset were manufactured using NMOS logicNMOS logic
N-type metal-oxide-semiconductor logic uses n-type metal-oxide-semiconductor field effect transistors to implement logic gates and other digital circuits...
technology by Commodore
Commodore International
Commodore is the commonly used name for Commodore Business Machines , the U.S.-based home computer manufacturer and electronics manufacturer headquartered in West Chester, Pennsylvania, which also housed Commodore's corporate parent company, Commodore International Limited...
's chip manufacturing
Semiconductor fabrication
Semiconductor device fabrication is the process used to create the integrated circuits that are present in everyday electrical and electronic devices. It is a multiple-step sequence of photolithographic and chemical processing steps during which electronic circuits are gradually created on a wafer...
subsidiary, MOS Technology
MOS Technology
MOS Technology, Inc., also known as CSG , was a semiconductor design and fabrication company based in Norristown, Pennsylvania, in the United States. It is most famous for its 6502 microprocessor, and various designs for Commodore International's range of home computers.-History:MOS Technology, Inc...
. All three custom chips were originally packaged in 48-pin DIP
Dual in-line package
In microelectronics, a dual in-line package is an electronic device package with a rectangular housing and two parallel rows of electrical connecting pins. The package may be through-hole mounted to a printed circuit board or inserted in a socket.A DIP is usually referred to as a DIPn, where n is...
s; later versions of Agnus, known as Fat Agnus, were packaged in an 84-pin PLCC
Plastic leaded chip carrier
A plastic leaded chip carrier is a chip carrier with a equiangular plastic housing. It is a reduced cost evolution of the ceramic leadless chip carrier ....
.
Agnus is the central chip in the design. It controls all access to chip RAM
Chip RAM
Chip RAM is a commonly used term for the integrated RAM used in Commodore's line of Amiga computers. Chip RAM is shared between the central processing unit and the Amiga's dedicated chipset...
from both the central 68000 processor and the other custom chips, using a complicated priority system. Agnus includes sub-components known as the blitter (fast transfer of data in memory without the intervention of the processor) and the copper (management of the monitor signal). The original Agnus can address 512 KB
Kilobyte
The kilobyte is a multiple of the unit byte for digital information. Although the prefix kilo- means 1000, the term kilobyte and symbol KB have historically been used to refer to either 1024 bytes or 1000 bytes, dependent upon context, in the fields of computer science and information...
of chip RAM
Chip RAM
Chip RAM is a commonly used term for the integrated RAM used in Commodore's line of Amiga computers. Chip RAM is shared between the central processing unit and the Amiga's dedicated chipset...
. Later revisions, dubbed 'Fat Agnus', added 512 KB pseudo-fast RAM, which for ECS was changed to 1 MB (sometimes called 'Fatter Agnus') and subsequently to 2 MB chip RAM.
Denise is the main video processor. Without using overscan
Overscan
Overscan is extra image area around the four edges of a video image that may not be seen reliably by the viewer. It exists because television sets in the 1930s through 1970s were highly variable in how the video image was framed within the cathode ray tube .-Origins of overscan:Early televisions...
, the Amiga's graphics display is 320 or 640 pixel
Pixel
In digital imaging, a pixel, or pel, is a single point in a raster image, or the smallest addressable screen element in a display device; it is the smallest unit of picture that can be represented or controlled....
s wide by 200 (NTSC
NTSC
NTSC, named for the National Television System Committee, is the analog television system that is used in most of North America, most of South America , Burma, South Korea, Taiwan, Japan, the Philippines, and some Pacific island nations and territories .Most countries using the NTSC standard, as...
) or 256 (PAL
PAL
PAL, short for Phase Alternating Line, is an analogue television colour encoding system used in broadcast television systems in many countries. Other common analogue television systems are NTSC and SECAM. This page primarily discusses the PAL colour encoding system...
) pixels tall. Denise also supports interlacing, which doubles the vertical resolution. Planar bitmap graphics are used, which splits the individual bits per pixel into separate areas of memory, called bitplanes. In normal operation, Denise allows between 1 and 5 bitplanes, giving 2 to 32 unique colours. These colours are selected from palette of 4096 colours. A 6th bitplane is available for two special video modes: Halfbrite mode
Halfbrite mode
Extra Half-Brite mode is a planar display mode of the Commodore Amiga computer. It uses six bitplanes . The first five bitplanes index 32 colors selected from a 12-bit color space . If the bit on the sixth bitplane is set the display hardware halves the brightness of the corresponding color...
and Hold And Modify mode. Denise also supports eight sprites
Sprite (computer graphics)
In computer graphics, a sprite is a two-dimensional image or animation that is integrated into a larger scene...
, sub-pixel scrolling, and a "dual playfield" mode. Denise also handles mouse and digital joystick input.
Paula is primarily the audio chip, with 4 independent hardware-mixed 8-bit PCM
Pulse-code modulation
Pulse-code modulation is a method used to digitally represent sampled analog signals. It is the standard form for digital audio in computers and various Blu-ray, Compact Disc and DVD formats, as well as other uses such as digital telephone systems...
sound channels, each of which supports 64 volume levels (no sound to maximum volume) and sample rates from roughly 20 Hz
Hertz
The hertz is the SI unit of frequency defined as the number of cycles per second of a periodic phenomenon. One of its most common uses is the description of the sine wave, particularly those used in radio and audio applications....
to almost 29 kHz. Paula also handles interrupts and various I/O functions including the floppy disk drive, the serial port
Serial port
In computing, a serial port is a serial communication physical interface through which information transfers in or out one bit at a time...
, and analog joysticks.
There are many similarities - both in overall functionality and in the division of functionality into the three component chips - between the OCS chipset and the much earlier and simpler chipset of the Atari 8-bit family
Atari 8-bit family
The Atari 8-bit family is a series of 8-bit home computers manufactured from 1979 to 1992. All are based on the MOS Technology 6502 CPU and were the first home computers designed with custom coprocessor chips...
of home computers, consisting of the ANTIC
ANTIC
Alphanumeric Television Interface Controller is an early video system chip used in the Atari 8-bit family of microcomputers as well as the Atari 5200 in the 1980s. The chip was patented by Atari, Inc. in 1981...
, GTIA and POKEY
Pokey
Pokey may refer to:* Pokey the Penguin, a surrealistic online comic strip* Pokey , a character from the Gumby television series...
chips; both chipsets were conceptually designed by Jay Miner
Jay Miner
Jay Glenn Miner , was a famous integrated circuit designer, known primarily for his work in multimedia chips and as the "father of the Amiga"...
, which explains the similarity.
Agnus
The Agnus chip is in overall control of the entire chipset's operation. All operations are synchronised with the output of the video beam. This includes access to the built-in RAM, known as chip RAMChip RAM
Chip RAM is a commonly used term for the integrated RAM used in Commodore's line of Amiga computers. Chip RAM is shared between the central processing unit and the Amiga's dedicated chipset...
because the chipset has access to it. Both the central 68000 processor and other members of the chipset have to arbitrate for access to RAM via Agnus. In computing architecture terms, this is Direct Memory Access
Direct memory access
Direct memory access is a feature of modern computers that allows certain hardware subsystems within the computer to access system memory independently of the central processing unit ....
(DMA), where Agnus is the DMA Controller (DMAC).
Agnus has a complex priority-based memory access policy. For example, bitplane data fetches are more important than blitter transfers. As the original 68000 processor in Amigas could only access memory on every second clock cycle, Agnus operated a system where the time-critical custom chips access got the "odd" clock cycle and the CPU got the "even" cycle, thus the CPU did not get locked out of memory access and did not appear to slow down. However, non-time-critical custom chip access, such as blitter transfers, can use up any spare odd or even cycles and, if the "BLITHOG" (blitter hog) flag is set, Agnus can lock out the even cycles from the CPU in deference to the blitter.
Agnus's timings are measured in "colour clocks" of 280 ns
Nanosecond
A nanosecond is one billionth of a second . One nanosecond is to one second as one second is to 31.7 years.The word nanosecond is formed by the prefix nano and the unit second. Its symbol is ns....
. This is equivalent to two low resolution (140 ns) pixels or four high resolution (70 ns) pixels. Like Denise, these timings were designed for display on household TV
Television
Television is a telecommunication medium for transmitting and receiving moving images that can be monochrome or colored, with accompanying sound...
s, and can be synchronised to an external clock source.
Blitter
The blitterBlitter
In a computer system, a blitter is a circuit, sometimes as a coprocessor or a logic block on a microprocessor, that is dedicated to the rapid movement and modification of data within that computer's memory...
is a sub-component of Agnus. "Blit" is shorthand for "block image transfer" or bit blit
Bit blit
Bit BLIT is a computer graphics operation in which several bitmaps are combined into one using a raster operator....
. The blitter is a highly parallel memory transfer and logic operation unit. It has three modes of operation: copying blocks of memory, filling blocks (e.g. polygon filling) and line drawing.
The blitter allows the rapid copying of video memory, meaning that the CPU can be freed for other tasks. The blitter was primarily used for drawing and redrawing graphics images on the screen, called "bobs", short for "blitter objects".
The blitter's block copying mode takes zero to three data sources in memory, called A, B and C, performs a programmable boolean function on the data sources and writes the result to a destination area, D. Any of these four areas can overlap. The blitter runs either from the start of the block to the end, known as "ascending" mode, or in reverse, "descending" mode.
Blocks are "rectangular"; they have a "width" in multiples of 16 bits, a height measured in "lines", and a "stride" distance to move from the end of one line to the next. This allows the blitter to operate on any conceivable video resolution. The copy automatically performs a per-pixel logical operation. These operations are described generically using minterms. This is most commonly used to do direct copies (D = A), or apply a pixel mask around blitted objects (D = (C AND B) OR A). The copy can also barrel shift each line by 0 to 15 pixels. This allows the blitter to draw at pixel offsets that are not exactly multiples of 16.
These functions allow the Amiga to move GUI windows around the screen rapidly as each is represented in graphical memory space as a rectangular block of memory which may be shifted to any required screen memory location at will.
The blitter's line mode draws single-pixel thick lines using the Bresenham's line algorithm
Bresenham's line algorithm
The Bresenham line algorithm is an algorithm which determines which points in an n-dimensional raster should be plotted in order to form a close approximation to a straight line between two given points...
. It can also apply a 16-bit repeating pattern to the line. The line mode can also be used to draw rotated bobs: each line of bob data is used as line pattern while the line mode draws the tilted bob line by line. The blitter's filling mode is used to fill per-line horizontal spans. On each span, it reads each pixel in turn from right to left. Whenever it reads a set pixel, it toggles filling mode on or off. When filling mode is on, it sets every pixel until filling mode is turned off or the line ends. Together, these modes allow the blitter to draw individual flat-shaded polygons, albeit very slowly in comparison to modern 3D graphics chipsets or the CPU of a moderately fast Amiga.
Copper
The copper is another sub-component of Agnus; The name is short for "co-processor". The copper is a programmable finite state machineFinite state machine
A finite-state machine or finite-state automaton , or simply a state machine, is a mathematical model used to design computer programs and digital logic circuits. It is conceived as an abstract machine that can be in one of a finite number of states...
that executes a programmed instruction stream, synchronized with the video hardware.
When it is turned on, the copper has three states; either reading an instruction, executing it, or waiting for a specific video beam position. The copper runs a program called the copper list in parallel with the main CPU
Central processing unit
The central processing unit is the portion of a computer system that carries out the instructions of a computer program, to perform the basic arithmetical, logical, and input/output operations of the system. The CPU plays a role somewhat analogous to the brain in the computer. The term has been in...
. The copper runs in sync with the video beam, and it can be used to perform various operations which require video synchronization. Most commonly it is used to control video output, but it can write to most of the chipset registers and thus can be used to set audio registers or interrupt the CPU.
The copper list has three kinds of instructions, each one being a pair of two bytes, four bytes in total:
- The MOVE instruction writes a 16-bit value into one of the chipset's hardware registers.
- The WAIT instruction halts copper execution until a given beam position is reached, thus making possible to synchronize other instructions with respect to screen drawing. It can also wait for a blitter operation to finish.
- The SKIP instruction will skip the following copper instruction if a given beam position has already been reached. This can be used to create copper list loops.
The length of the copper list program is limited by execution time. The copper restarts executing the copper list at the start of each new video frame. There is no explicit "end" instruction; instead, the WAIT instruction is used to wait for a location which is never reached.
Uses of the copper
- The copper is most commonly used to set and reset the video hardware registers at the beginning of each frame.
- It can be used to change video hardware mid-frame. This allows the Amiga to change video configuration, including resolution, between scanlines. This allows the Amiga to display different horizontal resolutions, different colour depths, and entirely different frame buffers on the same screen. The AmigaOSAmigaOSAmigaOS is the default native operating system of the Amiga personal computer. It was developed first by Commodore International, and initially introduced in 1985 with the Amiga 1000...
graphical user interface allows two or more programs to operate at different resolutions in different buffers, while all are visible on the screen simultaneously. A paint program might use this feature to allow users to draw directly on a low resolution Hold And Modify screen, while offering a high resolution toolbar at the top or bottom of the screen. - The copper can also change colour registers once per scanline, creating the "raster barRaster barThe raster bar is an effect used in demos that displays animated horizontal bars of colour that extend into the overscan area of the display...
s" effect seen commonly in Amiga games. The copper can go further than this and change the background colour often enough to make a blocky graphics display without using any bitmap graphics at all. - The copper allows "re-use" of sprites; after a sprite has been drawn at its programmed location, the copper can then immediately move it to a new location and it will be drawn again, even on the same scanline.
- The copper can also be used to program and operate the blitter. This is useful for doing several blitter operations in sequence, as the copper can wait for the blitter to finish and then immediately reprogram it for the next operation.
- The copper can be used to produce "sliced HAM", or S-HAM, this consists of building a copper list that switches the palette on every scanline, improving the choice of base colours in Hold And Modify mode graphics.
Denise
Denise controls the video timings, but can also synchronise to an external video signal. Denise is programmed to fetch planar video data from 1 to 5 bitplanes and translate that into a colour lookup. The number of bitplanes is arbitrary, thus if 32 colours are not needed, 2, 4, 8 or 16 can be used instead. The number of bitplanes (and resolution) can be changed on the fly, usually by the copper. This allows for very economical use of RAM. There is also a sixth bitplane, which can be used in three special graphics modes:In Extra-HalfBrite (EHB), if a pixel is set on the sixth bitplane, the brightness of the regular 32 colour pixel is halved. Early versions of the Amiga 1000
Amiga 1000
The A1000, or Commodore Amiga 1000, was Commodore's initial Amiga personal computer, introduced on July 23, 1985 at the Lincoln Center in New York City....
sold in the United States
United States
The United States of America is a federal constitutional republic comprising fifty states and a federal district...
did not have the Extra-HalfBrite mode.
In Hold-and-Modify
Hold-and-Modify
Hold-And-Modify, usually abbreviated as HAM, is a display mode of the Commodore Amiga computer. It uses a highly unusual technique to express the color of pixels, allowing many more colors to appear on screen than would otherwise be possible....
mode (HAM), each 6-bit pixel is interpreted as 2 control bits and 4 data bits. The 4 possible permutations of control bits are "set", "modify red", "modify green" and "modify blue". With "set", the 4 data bits act like a regular 16-colour display look up. With one of the "modify"s, the red, green or blue component of the previous pixel is modified to the data value, and the other two components are held from the previous pixel. This allows all 4096 colours on screen at once.
In Dual Playfield mode, instead of acting as a single screen, two "playfields" of 8 colours each (3 bitplanes each) are drawn on top of each other. They are independently scrollable and the background colour of the top playfield "shines through" to the underlying playfield.
There are two horizontal graphics resolutions, "lowres" with 140 ns pixels and "hires" with 70 ns pixels. This makes the display 320 or 640 pixels wide without using overscan. Denise supports very wide overscan; there is no need for a border around the graphics as other computers suffered from. Vertical resolution, without overscan, is 200 pixels for an 60 Hz NTSC Amiga or 256 for a 50 Hz PAL Amiga. This can be doubled using an interlaced display.
Denise can also lay up to 8 sprites
Sprite (computer graphics)
In computer graphics, a sprite is a two-dimensional image or animation that is integrated into a larger scene...
on top of the graphics, and detect collisions between sprites and the background, or between sprites. These sprites have 3 visible colours and one transparent colour, however two sprites can be "attached" to make a single 15 colour sprite. Using Copper in-frame register manipulations, each sprite 'channel' can be reused multiple times in a single frame.
External video timing
Under normal circumstances, the Amiga generates its own video timings, but the chipset also supports synchronising itself to an external signal so as to achieve genlockGenlock
Genlock is a common technique where the video output of one source, or a specific reference signal from a signal generator, is used to synchronize other television picture sources together. The aim in video and digital audio applications is to ensure the coincidence of signals in time at a...
ing with external video hardware. There is also an 1 bit output on this connector that indicates whether the Amiga is outputting background colour or not, permitting easy overlaying of Amiga video onto external video. This made the Amiga particularly attractive as a character generator for titling videos and broadcast work, as it avoided the use and expense of AB roll and chromakey units that would be required without the genlock support. The support of overscan, interlacing and genlocking capabilities, and the fact that the display timing was very close to broadcast standards (NTSC or PAL), made the Amiga the first ideal computer for video purposes, and indeed, it was used in many studios for digitizing video data (sometimes called frame-grabbing), subtitling and interactive video news.
Paula
The Paula chip includes logic for audio playback, floppy disk drive control and serial port input/outputInput/output
In computing, input/output, or I/O, refers to the communication between an information processing system , and the outside world, possibly a human, or another information processing system. Inputs are the signals or data received by the system, and outputs are the signals or data sent from it...
. The logic remained functionally identical across all Amiga models from Commodore.
Audio
Paula has four DMADirect memory access
Direct memory access is a feature of modern computers that allows certain hardware subsystems within the computer to access system memory independently of the central processing unit ....
-driven 8-bit PCM sample sound channels. Two sound channels are mixed into the left audio output, and the other two are mixed into the right output, producing stereo
Stereophonic sound
The term Stereophonic, commonly called stereo, sound refers to any method of sound reproduction in which an attempt is made to create an illusion of directionality and audible perspective...
audio output. The only supported hardware sample format is signed linear 8-bit two's complement
Two's complement
The two's complement of a binary number is defined as the value obtained by subtracting the number from a large power of two...
. Each sound channel has an independent frequency and a 6-bit volume control (64 levels). Internally, the audio hardware is implemented by four state machines, each having eight different states.
Additionally the hardware allows one channel in a channel pair to modulate the other channel's period or amplitude. It is rarely used on the Amiga due to both frequency and volume being controllable in better ways, but could be used to achieve different kinds of tremolo
Tremolo
Tremolo, or tremolando, is a musical term that describes various trembling effects, falling roughly into two types. The first is a rapid reiteration...
and vibrato
Vibrato
Vibrato is a musical effect consisting of a regular, pulsating change of pitch. It is used to add expression to vocal and instrumental music. Vibrato is typically characterised in terms of two factors: the amount of pitch variation and the speed with which the pitch is varied .-Vibrato and...
, and even rudimentary FM synthesis effects.
DMA-driven audio is synchronized with the video mode in use. On a regular NTSC or PAL display, DMA audio playback is limited to a maximum sampling rate
Sampling rate
The sampling rate, sample rate, or sampling frequency defines the number of samples per unit of time taken from a continuous signal to make a discrete signal. For time-domain signals, the unit for sampling rate is hertz , sometimes noted as Sa/s...
of 28867 Hz (PAL: 28837 Hz), due to the amount of data that can be fetched from memory (2 bytes per scan line) in the time allocated to Paula. As explained in the discussion of Agnus, memory access is prioritized and only a few slots for memory access are available to Paula's sound channels. This limit can be overcome with the ECS and AGA chipsets either by using a video mode with higher horizontal scan rate
Horizontal scan rate
Horizontal scan rate, or horizontal frequency, usually expressed in kilohertz, is the frequency at which a CRT moves the electron beam from the left side of the display to the right and back, and therefore describes the number of horizontal lines displayed per second...
or by using the CPU to drive audio output directly.
The Amiga contains an analog low-pass filter
Low-pass filter
A low-pass filter is an electronic filter that passes low-frequency signals but attenuates signals with frequencies higher than the cutoff frequency. The actual amount of attenuation for each frequency varies from filter to filter. It is sometimes called a high-cut filter, or treble cut filter...
(reconstruction filter
Reconstruction filter
In a mixed-signal system , a reconstruction filter is used to construct a smooth analogue signal from a digital input, as in the case of a digital to analogue converter or other sampled data output device....
) which is external to Paula. The filter is a 12 dB/oct Butterworth
Butterworth filter
The Butterworth filter is a type of signal processing filter designed to have as flat a frequency response as possible in the passband so that it is also termed a maximally flat magnitude filter...
low-pass filter at approximately 3.3 kHz. The filter can only be applied globally to all four channels. In models after the Amiga 1000, the brightness of the power LED is used to indicate the status of the filter. The filter is active when the LED is at normal brightness, and deactivated when dimmed (on early Amiga 500 models the LED went completely off). Models released before Amiga 1200 also have a static "tone knob" type low-pass filter that is enabled regardless of the optional "LED filter". This filter is a 6 dB/oct low-pass filter with cutoff frequency at 4.5 or 5 kHz.
A software technique was later developed which can play back 14-bit audio by combining two channels set at different volumes. This results in two 14-bit channels instead of four 8-bit channels. This is achieved by playing the high byte of a 16-bit sample at maximum volume, and the low byte at minimum volume (both ranges overlap, so the low byte needs to be shifted right two bits). The bit shift operation requires a small amount of CPU overhead, whereas conventional 8-bit playback is almost entirely DMA driven. This technique was incorporated into the retargetable audio subsystem AHI
AHI (Amiga)
AHI is a retargetable audio subsystem for AmigaOS, MorphOS and AROS. It was created by Martin Blom in the mid 1990s to allow standardized operating system support for audio hardware other than just the native Amiga sound chip, for example, 16-bit sound cards.AHI offers improved functionality not...
, allowing compatible applications to use this mode transparently.
Floppy disk controller
The floppy controller is unusually flexible. It can read and write raw MFMModified Frequency Modulation
Modified Frequency Modulation, commonly MFM, is a line coding scheme used to encode the actual data-bits on most floppy disk formats, hardware examples include Amiga, most CP/M machines as well as IBM PC compatibles. Early hard disk drives also used this coding.MFM is a modification to the original...
or GCR
Group Code Recording
In computer science, group code recording refers to several distinct but related encoding methods for magnetic media. The first, used in 6250 cpi magnetic tape, is an error-correcting code combined with a run length limited encoding scheme...
data in any format via DMA or programmed I/O. It also provides a number of convenient features, such as sync-on-word (in MFM coding, $4489 is usually used as the sync word). MFM encoding/decoding is usually done with the blitter — one pass for decode, three passes for encode. Normally the entire track is read or written in one shot, rather than sector-by-sector.
In addition to the native 880 kB
Kilobyte
The kilobyte is a multiple of the unit byte for digital information. Although the prefix kilo- means 1000, the term kilobyte and symbol KB have historically been used to refer to either 1024 bytes or 1000 bytes, dependent upon context, in the fields of computer science and information...
3.5-inch disk format, the controller can handle many foreign formats, such as:
- IBM PCIBM PCThe IBM Personal Computer, commonly known as the IBM PC, is the original version and progenitor of the IBM PC compatible hardware platform. It is IBM model number 5150, and was introduced on August 12, 1981...
- Apple IIApple IIThe Apple II is an 8-bit home computer, one of the first highly successful mass-produced microcomputer products, designed primarily by Steve Wozniak, manufactured by Apple Computer and introduced in 1977...
- MacMacintoshThe Macintosh , or Mac, is a series of several lines of personal computers designed, developed, and marketed by Apple Inc. The first Macintosh was introduced by Apple's then-chairman Steve Jobs on January 24, 1984; it was the first commercially successful personal computer to feature a mouse and a...
800 kB (requires a Mac drive) - AMAX Mac emulator (A special floppy of only 200 kB to exchange data between Amiga and Macintosh could be formatted by Amiga, and it could be read and written by floppy drives of both systems)
- Commodore 1541Commodore 1541The Commodore 1541 , made by Commodore International, was the best-known floppy disk drive for the Commodore 64 home computer. The 1541 was a single-sided 170 kilobyte drive for 5¼" disks...
(requires 5¼" inch drive slowed to 280 rpm) - Commodore 1581Commodore 1581The Commodore 1581 is a 3½ inch double sided double density floppy disk drive made by Commodore Business Machines primarily for its C64 and C128 home/personal computers. The drive stores 800 kilobytes using an MFM encoding but format different from both MS-DOS , and the Amiga formats. With...
formatted 3½" floppy for C64 and C128
Serial port
The serial port is rudimentary, using programmed input/outputProgrammed input/output
Programmed input/output is a method of transferring data between the CPU and a peripheral such as a network adapter or an ATA storage device....
only and lacking a FIFO
FIFO
FIFO is an acronym for First In, First Out, an abstraction related to ways of organizing and manipulation of data relative to time and prioritization...
buffer. However, virtually any bit rate can be selected, including all standard rates, MIDI rate, as well as extremely high custom rates.
Origin of the chip names
- The name Agnus is derived from 'Address GeNerator UnitS' since it houses all address registers and controls memory access of the custom chips.
- Denise was called "Daphne" in an early phase.
- Paula was named after the girlfriend of the chip designer.
Amiga graphics chipset roadmap
Released | Acronym | Models that used it |
---|---|---|
1985 | OCS | A1000 Amiga 1000 The A1000, or Commodore Amiga 1000, was Commodore's initial Amiga personal computer, introduced on July 23, 1985 at the Lincoln Center in New York City.... , A2000 Amiga 2000 The Amiga 2000, or A2000, is a personal computer released by Commodore in 1986. It is the successor to the Amiga 1000.-Features:Aimed at the high-end market, the original Europe-only model adds a Zorro II backplane, implemented in programmable logic, to the custom Amiga chipset used in the Amiga 1000... , A500 Amiga 500 The Amiga 500 - also known as the A500 - was the first “low-end” Commodore Amiga 16/32-bit multimedia home/personal computer. It was announced at the winter Consumer Electronics Show in January 1987 - at the same time as the high-end Amiga 2000 - and competed directly against the Atari 520ST... |
1989 | Ranger Amiga Ranger Chipset Amiga Ranger was a prototype computer that was supposed to be the second generation Amiga chipset prior to ECS. It was designed by the original Los Gatos Amiga team including Jay Miner. However Commodore International didn't release this chipset due to its high cost-History:After the release of... |
Canceled by Commodore and replaced by ECS due to its high price |
1990 | ECS | A3000 Amiga 3000 The Commodore Amiga 3000, or A3000, was the third major release in the Amiga computer family. Released in June 1990, it features improved processing speed, improved rendering of graphics, and a new revision of the operating system... , A500+, A600 Amiga 600 The Amiga 600, also known as the A600 , is a home computer that was introduced at the CeBIT show in March 1992. The A600 was Commodore International's final model based on the Motorola 68000 CPU and the ECS chipset. It is essentially a redesign of the Amiga 500 Plus, with the option of an internal... , A2000 Amiga 2000 The Amiga 2000, or A2000, is a personal computer released by Commodore in 1986. It is the successor to the Amiga 1000.-Features:Aimed at the high-end market, the original Europe-only model adds a Zorro II backplane, implemented in programmable logic, to the custom Amiga chipset used in the Amiga 1000... |
1992 | AGA | A1200 Amiga 1200 The Amiga 1200, or A1200 , was Commodore International's third-generation Amiga computer, aimed at the home market... , A4000 Amiga 4000 The Commodore Amiga 4000, or A4000, is the successor of the A2000 and A3000 computers. There are two models, the A4000/040 released in October 1992 with a Motorola 68040 CPU, and the A4000/030 released in April 1993 with a Motorola 68EC030.... , CD32 Amiga CD32 The Amiga CD32, styled "CD32" , was the first 32-bit CD-ROM based video game console released in western Europe, Australia, Canada and Brazil. It was first announced at the Science Museum in London, United Kingdom on 16 July 1993, and was released in September of the same year... |
1994 | AAA | Canceled by Commodore and replaced by Hombre due to its high price |
1994 | Commodore AA+ Chipset Commodore AA+ Chipset This was the last classic Amiga compatible chipset that Commodore announced in 1992. They planned to release it in 1994 for low end Amiga computers along with AAA.-History:... |
Planned but never designed due to lack of financing |
1995 | Hombre | Never released due to Commodore bankruptcy |
See also
- Amiga Ranger ChipsetAmiga Ranger ChipsetAmiga Ranger was a prototype computer that was supposed to be the second generation Amiga chipset prior to ECS. It was designed by the original Los Gatos Amiga team including Jay Miner. However Commodore International didn't release this chipset due to its high cost-History:After the release of...
- Enhanced Chip SetEnhanced Chip SetThe Enhanced Chip Set is the second generation of the Amiga computer's chipset, offering minor improvements over the original chipset design. ECS was introduced in 1990 with the launch of the Amiga 3000. Amigas produced from 1990 onwards featured a mix of OCS and ECS chips, such as later versions...
(ECS) - Advanced Graphics ArchitectureAdvanced Graphics ArchitectureAdvanced Graphics Architecture is the third generation Amiga graphic chip set, first used in the Amiga 4000 in 1992. AGA was codenamed the Pandora chipset by Commodore International internally....
(AGA) - Amiga custom chipsAmiga custom chipsIn addition to the Amiga chipsets, various specially designed chips have been used in Commodore Amiga computers that do not belong to the 'Amiga chipset' in a tight sense.- Gary :...
- AAA chipsetAAA chipsetThe AAA chipset was intended to be the next-generation Amiga multimedia system designed by Commodore International. Initially began as a secret project, the first design discussions were started in 1988, and after many revisions and redesigns the first silicon versions were fabricated in 1992-1993...
- AA+Commodore AA+ ChipsetThis was the last classic Amiga compatible chipset that Commodore announced in 1992. They planned to release it in 1994 for low end Amiga computers along with AAA.-History:...
- Hombre chipsetHombre chipsetThe Hombre chipset was to be a chipset for use in game machine hardware. However, because of Commodore International's bankruptcy, the Hombre chipset was never released.-History:...
- ReTargetable GraphicsReTargetable GraphicsReTargetable Graphics is device driver API mainly used by 3rd party graphics hardware to interface with AmigaOS via a set of libraries. The software libraries may include software tools to adjust resolution, screen colors, pointers and screenmodes...
- device driver API for graphics adapters (CyberGraphX, EGS, Picasso 96) - List of home computers by video hardware