Amiga Original chipset

Amiga Original chipset

The Original Chip Set (OCS) 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 created between 1985 and 1990: the Amiga 1000, Amiga 2000 and Amiga 500.

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 logic technology by Commodore's chip manufacturing subsidiary, MOS Technology. All three custom chips were originally packaged in 48-pin DIPs; 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" and the "copper". The original Agnus and subsequent "Fat Agnus" can address 512 KB of chip RAM. Later revisions of Fat Agnus, known as "Fatter Agnus" can address 1 MB of chip RAM.

Denise is the main video processor. Without using overscan, the Amiga's graphics display is 320 or 640 pixels 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 colors. These colors are selected from palette of 4096 colors. 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 65 volume levels and any sample rate from roughly 20 Hz to 29 kHz. Paula also handles interrupts and various I/O functions including the floppy disk drive, the serial port, and analog joysticks.

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 RAM 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 TVs, and can be synchronised to an external clock source.

Blitter

The "blitter" 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) + 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 bock 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 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 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 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 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 color depths, and entirely different frame buffers on the same screen. The AmigaOS graphical user interface allows two programs to operate at different resolutions in different buffers, while both 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 color registers once per scanline, creating the "raster bars" effect seen commonly in Amiga games. The copper can go further than this and change the background color 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 [Invented in 1989 by Rhett Anderson http://www.islandnet.com/~kpolsson/amigahis/amig1989.htm] , 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 sold in the United States did not have the Extra-HalfBrite mode [ [http://www.old-computers.com/museum/computer.asp?st=1&c=28 OLD-COMPUTERS.COM : The Museum ] ] .

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 color, however two sprites can be "attached" to make a single 15 color sprite.

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 genlocking 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 is mainly used to produce audio output. The chip has 4 DMA-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 volume and frequency. 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.

With some special programming tricks it is possible to produce 14-bit audio by combining two channels set at different volumes, giving two 14-bit channels instead of four 8-bit channels.

On a regular NTSC or PAL screen display, audio playback is limited to a maximum sampling rate of 28867 Hz, due to the amount of data that can be fetched from memory in the time allocated to Paula. As explained in the discussion of Agnus, memory access is prioritised and only a few slots for memory access are available to Paula's sound channels. This limit can be overcome in the Enhanced Chip Set by using a higher frequency screen mode, or by using the CPU directly to drive audio output.

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 4 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 lowpass filter that is enabled regardless of the optional "LED filter". This filter is a 6 dB/oct lowpass filter with cutoff frequency at 4.5 or 5 kHz.

Floppy disk controller

The floppy controller is unusually flexible. It can read and write raw MFM 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:
* IBM PC
* Apple II
* Mac 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 drivers of both systems)
* Commodore 1541 (requires 5.25 inch drive slowed to 280 rpm)
* Commodore 1581 formatted 3.5" floppy for C64 and C128

erial port

The serial port is rudimentary; programmed I/O only and lacking a FIFO buffer. It does have one positive attribute, which is that virtually any bit rate can be selected, including all the 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.
* Paula was named after the girlfriend of the chip designer.

ee also

* Enhanced Chip Set
* Advanced Graphics Architecture
* AAA chipset
* Hombre chipset
* List of home computers by video hardware

References

* Miner, Jay et al (1991). "Amiga Hardware Reference Manual: Third Edition". Addison-Wesley Publishing Company, Inc. ISBN 0-201-56776-8.

External links

*


Wikimedia Foundation. 2010.

Игры ⚽ Поможем решить контрольную работу

Look at other dictionaries:

  • Amiga — 500 Amiga  семейство домашних персональных компьютеров и операционных систем к ним, разработанные Amiga Corporation …   Википедия

  • Amiga 500+ — L A500+, aussi appelé Amiga 500+, est un ordinateur Amiga, principalement une version étendue de l A500. Commodore International créa l Amiga 500+ pour deux raisons. La première était la réduction des coûts ; des modifications mineures… …   Wikipédia en Français

  • Amiga 500plus — Amiga 500+ L A500+, aussi appelé Amiga 500+, est un ordinateur Amiga, principalement une version étendue de l A500. Commodore International créa l Amiga 500+ pour deux raisons. La première était la réduction des coût ; des modifications… …   Wikipédia en Français

  • Original Chip Set — The Original Chip Set (OCS) 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… …   Wikipedia

  • Amiga-Computer — Letztes offizielles Logo Der Commodore Amiga (spanisch amiga: Freundin) war ein von Mitte der 1980er bis Anfang/Mitte der 1990er weit verbreiteter Computer, der besonders in seinen Einsteigermodellen (A500 und A1200) als Heimcomputer beliebt war …   Deutsch Wikipedia

  • Amiga productivity software — This article is a split of main article Amiga software and refers to any productivity software that run on Amiga line of computers.See also related articles Amiga Internet and communications software and Amiga support and maintenance software for …   Wikipedia

  • Amiga 1000 — Infobox computer Photo = Name = Commodore Amiga 1000 Type = Personal computer Released = 24 July 1985 Discontinued = 1987 Processor = Motorola 68000 @ 7.16 MHz 7.09 MHz (PAL) Memory = 256–512 KB (8 MB Maximum) OS = Amiga OS 1.0The A1000, or… …   Wikipedia

  • Amiga 2000 — Infobox computer Photo= Name=Commodore Amiga 2000 Type = Personal computer Released = 1986 Discontinued = 1991 Processor = Motorola 68000 @ 7.16 MHz 7.09 MHz (PAL) Memory = 512 KB (9 MB maximum) OS = Amiga OS 1.2/1.3 2.0The A2000, also known as… …   Wikipedia

  • Amiga Enhanced Chip Set — Enhanced Chip Set (ECS) is the name used for the enhanced version of the Amiga computer s original chipset (OCS). ECS was introduced in 1990 debuting in the Amiga 3000. Amigas produced from 1990 onwards featured a mix of OCS and ECS chips, or… …   Wikipedia

  • Chipset — Un chipset (de l anglais, signifiant littéralement ensemble de puces (électroniques)) est un jeu de composants électroniques intégré dans un circuit intégré préprogrammé permettant de gérer les flux de données numériques entre le ou les… …   Wikipédia en Français

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”