This articleneeds additional citations forverification. Please helpimprove this article byadding citations to reliable sources. Unsourced material may be challenged and removed. Find sources: "Amiga Original Chip Set" – news ·newspapers ·books ·scholar ·JSTOR(April 2016) (Learn how and when to remove this message) |

TheOriginal Chip Set (OCS) is achipset used in the earliestCommodoreAmiga computers and defined the Amiga's graphics and sound capabilities. It was succeeded by the slightly improvedEnhanced Chip Set (ECS) and the greatly improvedAdvanced Graphics Architecture (AGA).
The original chipset appeared in Amiga models built between 1985 and 1990: theAmiga 1000,Amiga 2000,Amiga CDTV, andAmiga 500.
The chipset which gave the Amiga its unique graphics features consists of three main "custom" chips:Agnus,Denise, andPaula. Both the original chipset and the enhanced chipset were manufactured usingNMOS logic technology byCommodore'schip manufacturing subsidiary,MOS Technology. According toJay Miner, the OCS chipset was fabricated in 5 μm manufacturing process whileAGA Lisa was implemented in 1.5 μm process. All three custom chips were originally packaged in 48-pinDIPs; later versions of Agnus, known as Fat Agnus, were packaged in an 84-pinPLCC.
Agnus is the central chip in the design. It controls all access tochip RAM from both the central68000 processor and the other custom chips, using a complicated priority system. Agnus includes sub-components known as theblitter (fast transfer of data in memory without the intervention of the processor) and theCopper (video-synchronized co-processor). The original Agnus can address512KB of chip RAM. Later revisions, dubbed 'Fat Agnus', added512 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 usingoverscan, the Amiga's graphics display is 320 or 640pixels wide by 200 (NTSC) or 256 (PAL) pixels tall. Denise also supportsinterlacing, which doubles the vertical resolution, at the cost of intrusive flickering on typical monitors of that era. (Variousflicker fixer solutions appeared.)Planarbitmap graphics are used, which splits the individualbits per pixel into separate areas of memory, calledbitplanes. In normal operation, Denise allows between one and five bitplanes, giving two to 32 unique colors. These colors are selected from apalette of 4096 colors (four bits perRGB component). A 6th bitplane is available for two special video modes:Halfbrite mode andHold-And-Modify (HAM) mode. Denise also supports eightsprites, single pixel scrolling, and a "dual-playfield" mode. Denise also handles mouse and digital joystick input.
Paula is primarily the audio chip, with four independent hardware-mixed8-bitPCM sound channels, each of which supports 65 volume levels (no sound to maximum volume) and waveform output rates from roughly 20 samples per second to almost 29,000 samples per second. Paula also handlesinterrupts and variousI/O functions including thefloppy disk drive, theserial port, andanalog 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 theAtari 8-bit computers, consisting of theANTIC,GTIA andPOKEY chips; both chipsets were conceptually designed byJay Miner, which explains the similarity.

The Agnus chip is in overall control of the entire chipset's operation. All operations are synchronised to the position of the video beam. This includes access to the built-inRAM, known aschip RAM because the chipset has access to it. Both the central68000 processor and other members of the chipset have to arbitrate for access to chip RAM viaAgnus. In computing architecture terms, this isDirect Memory Access (DMA), where Agnus is the DMA Controller (DMAC).
Agnus has a complex and priority-based memory access policy that attempts to best coordinate requests for memory access among competing resources. For example, bitplane data fetches are prioritized over blitter transfers as the immediate display of frame buffer data is considered more important than the processing of memory by the blitter. Agnus also attempts to order accesses in such a way so as to overlap CPU bus cycles with DMA cycles. As the original 68000 processor in Amigas tended only to access memory on every second available memory cycle, Agnus operates a system where "odd" memory access cycles are allocated first and as needed to time-critical custom chip DMA while any remaining cycles are available to the CPU, thus the CPU does not generally get locked out of memory access and does not appear to slow down. However, non-time-critical custom chip access, such asblitter 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 theCPU in deference to theblitter.
Agnus's timings are measured in "color 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 householdTVs, and can be synchronized to an external clock source.
Theblitter is a sub-component of Agnus. "Blit" is shorthand for "block image transfer" orbit 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 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 programmableBoolean 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. This type of operation is known today as aBitwise ternary logic instruction.
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 video resolution up to 1,024×1,024 pixels.[1] The copy automatically performs a per-pixel logical operation. These operations are described generically usingminterms. 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 usingBresenham's line algorithm. It can also apply a16-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. Later Amigas tended to use a combination of a faster CPU and blitter for many operations.
TheCopper is another sub-component of Agnus; The name is short for "co-processor". The Copper is a programmablefinite-state machine 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 theCopper list in parallel with the mainCPU. 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 initiate blits, 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.
Under normal circumstances, the Amiga generates its own video timings, but Agnus also supports synchronising the system to an external signal so as to achievegenlocking with external video hardware. There is also a 1-bit output on this connector that indicates whether the Amiga is outputting background color 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 ofA/B roll andchroma key 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.

Denise is programmed to fetchplanar video data from one to five bitplanes and translate that into acolor lookup. The number of bitplanes is arbitrary, thus if 32 colors 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, and balancing of CPU processing speed vs graphical sophistication when executing from Chip RAM (as modes beyond 4bpp in low resolution, or 2bpp in high resolution, use extra DMA channels that can slow or temporarily halt the CPU in addition to the usual non-conflicting channels). There can also be a sixth bitplane, which can be used in three special graphics modes:
There are two horizontal graphics resolutions, "lowres" with 140 ns pixels and "hires" with 70 ns pixels, with a default of 320 or 640 horizontal pixels wide without using overscan. As the pixel output is regulated by the main system clock, which is based directly on the NTSC colorburst clock, these sizes very nearly fill the width of a standard television with only a thin "underscan" border between the graphics and the screen border when compared to many other contemporary home computers, for an appearance closer to a games console but with finer detail. On top of this, Denise supports reasonably extensive overscan. Technically modes with enough data for up to 400 or 800 pixels (+25%) may be specified. Although this is only actually useful for scrolling and special effects that involve partial display of large graphics as a separate hardware limit is met at 368 or 736 pixels. This is the maximum that will fit between the end of one blanking period and the start of the next. Still it is unlikely that even this many pixels will be visible on any display other than a dedicated monitor that allows adjusting the horizontal scan width. On a standard CRT, much of the image will disappear behind the screen bezel, and LCDs will crop off the image at the edge of the panel.[4][5] Because of the highly regular structure of the Amiga's timing in relation to scanlines and allocation of DMA resources to various uses besides normal "playfield" graphics, increased horizontal resolution is also a tradeoff between number of pixels and how many hardware sprites are available, as increasing the DMA slots dedicated to playfield video ends up stealing some (from 1 to 7 of the total 8) the sprite engine.[1].
Vertical resolution, without overscan, is 200 pixels for a 60 Hz NTSC Amiga or 256 for a 50 Hz PAL Amiga. This can be doubled using aninterlaced display, and, as with horizontal resolution, increased using overscan, to a maximum of 241 (or 483) for NTSC, and 283 (or 567) for PAL (interlaced modes gaining one extra line as the maximum is determined by how many lines are taken from the available total by blanking and sync, and the total scanlines in non-interlaced modes are half the original, broadcast-spec odd-numbered interlaced counts, rounded down).
Starting with ECS, Denise was upgraded to support "Productivity" mode which allowed for 640x400 non-interlaced albeit with only 4 colors.
Denise can composite up to eight 16-pixel-widesprites per scan line (in automatic mode) on top, underneath, or between playfields, and detect collisions between sprites and the playfields or between sprites. These sprites have three visible colors and one transparent color. Optionally, adjacent pairs of sprites can be "attached" to make a single 15-color sprite. The Sprite DMA reads data to form a sprite channel as controlled by its registers, enabling the vertical reuse of sprites. There has to be one empty scanline in between two successive list entries to allow for updating sprite data. Using Copper or CPU register manipulations, each spritechannel can be reused multiple times in a single frame to increase the total sprites per frame. Spriteposition registers may also be changed during a scanline, increasing the total number of sprites on a single scanline. However, the spritedata, or shape, is only fetched a single time per scanline and can't change. The first Amiga game to utilize the sprite re-position registers during a scanline wasHybris released in 1988.
The Denise chip does not support a dedicated text mode.[6]
Finally, Denise next to the CIAs is responsible for handling mouse/joystick X/Y inputs.
The notion that Denise fetches bit plane and sprite data is a simplification. It is Agnus who is maintaining horizontal and vertical screen position counters and initiating the DRAM read operations. Denise has a number of bit plane registers which hold 16 bits of data each, enough to draw 16 pixels. When Agnus issues a write to register 1, all registers are then transferred into separate shift registers from which pixels are generated (at the same time new values are loaded from DRAM). Denise is not aware of any memory addresses either.


The Paula chip, designed by Glenn Keller, fromMOS Technology, is theinterrupt controller, but also includes logic for audio playback, floppy disk drive control, serial portinput/output and mouse/joystick buttons two and three signals. The logic remained functionally identical across all Amiga models from Commodore.
Paula has fourDMA-driven 8-bitPCM sound channels. Two sound channels are mixed into the left audio output, and the other two are mixed into the right output, producingstereo audio output. The only supported hardware sample format is signed linear 8-bittwo'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 oftremolo andvibrato, and even rudimentaryFM synthesis effects.
Audio may be output using two methods. Most often, DMA-driven audio is used. As explained in the discussion of Agnus, memory access is prioritized and one DMA slot per scan line is available for each of the four sound channels. On a regular NTSC or PAL display, DMA audio playback is limited to a maximum output rate of 28,867 values per channel (PAL: 28837) per second totaling 57674 (PAL: 57734) values per second on each stereo output. This rate can be increased with the ECS and AGA chipsets by using a video mode with higherhorizontal scan rate.
Alternately, Paula may signal the CPU to load a new sample into any of the four audio output buffers by generating an interrupt when a new sample is needed. This allows for output rates that exceed 57 kHz per channel and increases the number of possible voices (simultaneous sounds) through software mixing.
The Amiga contains an analoglow-pass filter (reconstruction filter) which is external to Paula. The filter is a 12 dB/octButterworth 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 (excluding the very first revision of the Amiga 500), 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 or blitter overhead, whereas conventional 8-bit playback is almost entirely DMA driven. This technique was incorporated into the retargetable audio subsystemAHI, allowing compatible applications to use this mode transparently.
The floppy controller is unusually flexible. It can read and write raw bit sequences directly from and to the disk via DMA or programmed I/O at 500 (double density) or 250 kbit/s (single density or GCR).MFM orGCR were the two most commonly used formats though in theory anyrun-length limited code could be used. It also provides a number of convenient features, such as sync-on-word (in MFM coding, $4489 is usually used as thesync 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; this made it possible to get rid of most of the inter-sector gaps that most floppy disk formats need to safely prevent the "bleeding" of a written sector into the previously-existing header of the next sector due to speed variations of the drive. If all sectors and their headers are always written in one go, such bleeding is only an issue at the end of the track (which still must not bleed back into its beginning), so that only one gap per track is needed. This way, for the native Amiga disk format, the raw storage capacity of 3.5 inch DD disks was increased from the typical 720 KB to 880 KB, although the less-than-idealfile system of the earlier Amiga models reduced this again to approximately 830 KB of actual payload data.
In addition to the native 880 KB 3.5-inch disk format, the controller can handle many foreign formats, such as:
TheAmiga 3000 introduced a special, dual-speed floppy drive that also allowed use of high density disks with double capacity without any change to Paula's floppy controller.
The serial port is rudimentary, usingprogrammed input/output only and lacking aFIFO buffer. However, virtually any bit rate can be selected, including all standard rates,MIDI rate, as well as extremely high custom rates.
| Released | Acronym | Models that used it |
|---|---|---|
| 1985 | OCS with DIP Agnus | A1000,initial version of A2000 |
| 1987 | OCS with PLCC Fat Agnus | A500,later versions of A2000 |
| 1989 | Ranger | Canceled by Commodore and replaced by ECS due to its high cost |
| 1990 | ECS | A3000,A500 (only 1MB "fatter" Agnus, but still OCS Denise),A500+,A600,A2000,CDTV |
| 1992 | AGA | A1200,A4000,CD32 |
| - | AAA | Canceled by Commodore in 1993 for its high cost and replaced by Hombre |
| - | Commodore AA+ Chipset | Planned on paper for low-end Amigas but it was never designed |
| - | Hombre | Never released due to Commodore bankruptcy in 1994 |