Recent Articles



































Original Amiga chipset



         


Amiga Chipset. It was followed by the ECS (Enhanced chipset).

It came bundled with A1000, as well with older A500 and A2000. Newer A500 and A2000 came with ECS, or a mix of OCS and ECS.

The chipset which gave the Amiga its unique graphics features consisted of three so-called custom chips, Agnus, Denise, and Paula. The two CIA chips are not considered part of either the old or enhanced chipsets, having first been used with the later model Commodore 64 and all Commodore 128 systems, and thus, predating the Amiga.

Denise was a non-programmable chip responsible for transferring the raw bit data through a hybrid IC to the RGB port.

Agnus was in fact the master of the multimedia capabilities:

The video timings were deliberately chosen to make it possible to use the Amiga with common household TV sets, but this also required an additional item called the TV modulator as there were only output ports for monochrome video signal, and separate RGB monitor connection through a custom 23 pin D connector rich with digital and analogue inputs and outputs and power.

A newer version of Agnus was used in most of the A500, and A2000 versions, called Fat Agnus, that could handle 1 MBytes of CHIP RAM on the mainboard. Super Agnus, an even more recent version was able to support 2 MBytes of CHIP RAM, and was able to change between PAL and NTSC video signal timing.

[Top]

Video

The basic resolution of an Amiga display (sometimes called LoRes for low resolution) is 320x200 (by 60 Hz, NTSC timing), or 320x256 (by 50 Hz, PAL timing). In these resolutions, it was able to display 2, 4, 8, 16 or 32 colors in a palette based manner simultaneously from 4096 colors (4 bit for each of the RGB components). The resolution can also be increased horizontally (HiRes or high resolution modes), from 320 to 640, but this limited the maximum number of usable colors to 16. To achieve the flexibility in color depths, the display memory buffers were operated in planar mode.

The number of colors on screen could also be increased by two methods:

A special mode existed (mainly used for games) called dual playfield mode, where there are two screens of maximum 8 colors behind each other. One of the colors in the front most screen is disabled and changed to transparent (so for pixels having this color the other screen is visible). Due to the flexible addressing of the bitplanes the screens can be moved and resized independently from each other.

(describe other special video modes here)


The vertical resolution was 200/256 and could be doubled to 400/512 with the use of video interlace technology.

An Amiga is also able to extend the display by a few more pixels in every direction, effectively using the area outside of the 320x200 frames, thus making all of the display accessible to programs. This feature is called overscan.

Under normal circumstances, The Amiga generates its own video timings, but the chipset also supports external sync from the RGB monitor connector so as to achieve genlocking with external video. There is also an 1 bit output on this connector that indicated whether the Amiga was outputting an image (as opposed to background colour), 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.

Other features of the chipsets:

[Top]

Audio

[Top]

Audio Features in General

Paula the sound chip has 4 DMA driven 8-bit PCM sample channels. Two DMA channels are mixed into the left audio output, and the other two are mixed into the right output. Hardware mixing means multiplying each channel by its volume register value and adding the two PCM channels together. The only supported hardware sample format is linear 8-bit two's complement.

Audio hardware assisted instrument playback can go up to approximately 28867 Hz sampling rate. Audio hardware functionality is closely related to video hardware timing, and as a result it is possible to double the maximum sampling rate on ECS/AGA machines by choosing a suitable video mode. CPU driven audio output is also possible, and it is not limited to sampling rate 28867 Hz or any video mode timing, but it consumes CPU time proportionally to the sampling rate.

Additionally the hardware allows the other channel in a channel pair to modulate the other channel's period or amplitude. It is rarely used on Amiga, but could be used to achieve tremolo and vibrato like effects.

The hardware has an analog low-pass filter whose exact characteristics are unknown. At 7kHz the filter dampens the volume by at least 15 dB. The filter can be enabled for all channels, or disabled for all channels. Hardware channels do not have separate filters.

[Top]

Paula features as Bullets

[Top]

Hardware registers

Each channel has a set of hardware registers. The registers are audxlch, audxlen, audxper, audxvol and audxdat, where x is the channel number from 0 to 3. In addition there is adkcon register which controls period and amplitude modulation of channels.

audxlch is the pointer into beginning of sample data in memory from which the DMA will start playback. Playback has length of 2*audxlen samples.

audxper specifies the amount of sound chip cycles (operating at half the A500 CPU frequency depending on NTSC and PAL) to wait before loading a new sample value into audio output, and hence this specifies the sampling rate for instrument playback. It the audxper register value is too low the audio hardware can't keep up to date providing sample data by DMA, and as a result the maximum DMA sampling rate is approximately 28867 Hz.

auxvol register contains the volume in range 0-64. The volume value is a multiplier for PCM samples.

audxdat register is a write-only register for doing sample playback with the CPU. CPU can write sample data into the register directly. Theoretically this allows very high sampling rates, but it consumes CPU time directly proportional to the sampling rate.

[Top]

Audio State Machines

Internally the audio hardware is implemented by 4 state machines each having 8 different states. The state machines operate on half the A500 CPU frequency. Amiga Hardware Reference Manual contains the state machine description in detail. The state machine allows two methods for instrument playback regardless if DMA is used or not. Interrupt driven playback is CPU time efficient but non-trivial. CPU polling driven playback is simple but consumes more CPU time. In demos and games both methods are commonly used. For example, the original Protracker replay routine waits DMA (state machine transitions) with a CPU poll loop, but many demos an optimized interrupt driven player system (such as The Player 5.0 and newer made by Jarno Paananen).

[Top]

Blitter

Blitter is a hardware acceleration unit in Amiga chipset. Blitter means Block Image Transferer. It has three operating modes: copying blocks, filling blocks and drawing lines.

[Top]

Block Copying Mode

Block copying mode takes zero to three data sources, and writes to a destination area. Blitter either goes from beginning to the end of area, or the reverse direction. These are called ascending and descending modes respectively. The source and destination areas can overlap, and often do, but complications with some operations can happen if used without care.

Areas are rectangular, and they must be located in the chip memory. Specifically an area can be defined as a set of memory bytes: {p |s <= p < e and ((p-s) % linestride) < linewidth}, where % depicts division reminder between (p-s) and linestride. s is the start of the memory area, and e is the end of the memory area (the first byte not belonging to it). Hence the area consists of lines. Each line has linewidth bytes, and the distance between line starts is linestride. For the original chipset following must be satisfied : Linewidth must be in the range [2,128] bytes, but only even numbers are allowed. linestride can be negative or non-negative, but it must be in the range [-32768,32766] bytes. Only even linestride values are allowed. The amount of lines in an area must be in the range [1, 1024]. ECS increased maximum linewidth to 4096 bytes, and maximum number of lines to 32768.

Blitter can do per-pixel logical operations between the three data sources, and write the result of that logical operation into destination. These logical operations include boolean and, or, not and xor.

Blitter can do a barrel shift for each line in the area. This means to shift each line 0-15 bits right. This is useful for scrolling an image horizontally. It should be noted that even if blitter only shifts bits right it can scroll images left.

[Top]

Filling Mode

Filling mode is used to fill per line horizontal spans.

[Top]

Line Mode

Line mode can be used to draw lines.

[Top]

Copper

Copper is a co-processor that runs a special program called the copper list in parallel with the main CPU. Copper runs in sync with the video beam, and it can be used to perform various operations in sync to the video beam. Most commonly it is used to control video output, but it can also be used to interrupt cpu on a given video beam position.

The copper list has 3 kinds of instructions:

Length of copper list program is limited by it's execution time. Copper restarts executing the copper list on each hardware drawn frame (usually 50 frames per second). The copper list must execute completely before hardware stops drawing the frame.

Common functions of copper are:

Not so common functions of copper are:





  View Live Article   This article is from Wikipedia. All text is available under the terms of the GNU Free Documentation License