Copper (Amiga)

from Wikipedia, the free encyclopedia

The Copper is one of the coprocessors in the chipset of the Amiga computer from Commodore . Its most basic task is to initialize the video logic of the chipset at the beginning of a picture build-up so that the same memory areas (for a still picture) are displayed with each picture build-up. The Copper is designed in such a way that dynamic reconfiguration of the video logic can be carried out at certain points on the screen and the display can thus be designed more flexibly.

The operating system uses these possibilities intensively for the management of so-called screens  - the Copper enables different screens of the Amiga graphics to be displayed at the same time, offset in height. Each screen can work in a completely different display mode. This is achieved by completely changing the configuration of the video logic in a certain line of the screen so that a different display mode becomes effective and the display data is also fetched from other areas of the video memory (in the chip RAM). In other computer systems, this is also called a split screen .

Other effects that can be traced back to reconfigurations of the video logic at a certain screen coordinate are used in game programs.

functionality

The Copper runs its own programs, the so-called copper lists, synchronously with the electron beam of the connected monitor. These programs are made up of just three different basic commands:

  • a WAIT command that lets the Copper wait passively for a certain screen coordinate to be reached (if the values ​​of and are specified ); you can still wait for the completion of a blit ;
  • a MOVE command that sets a selectable register in the chipset to a new, predeterminable 16-bit value;
  • a SKIP command that skips the following command if the electron beam has already passed a certain position. This can be used to program loops in copper lists.

Jumps can be implemented by manipulating special address registers. Furthermore, the copper can be allowed to control the blitter and thus indirectly manipulate any addresses in the chip RAM . It is also possible to send frame-synchronous interrupt requests to the CPU .

The resolution of the horizontal waiting position with the original chip set is four low-resolution or eight high-resolution pixels . When the video electronics in the Amiga chipset start outputting a new image in the top left, the copper list is also started, usually with a wait command. If the screen coordinate specified in the wait command is reached, the following command can be processed, usually a move command with which one of the configuration registers is changed. Typically, changing a single register content will not be enough, so that several such move commands will follow one another without further waiting commands.

However, only one copper command can be processed per pixel, so that a reconfiguration can take a whole series of pixels. The operating system therefore inserts a black line in its own copper lists in the original chip set between two vertically consecutive screens; with the AGA chipset it even has to be three. Easier reconfiguration than screen switching can of course also be done directly without switching to black.

If more than two screens are to be displayed at the same time, a corresponding number of waiting commands with the following move commands must be arranged in the copper list for reconfiguration. Only at the very end of all of these parts is there a wait command for a position that will never be reached. This is the end of the program, whereby the copper waits until the copper list is restarted with a new screen layout.

The operating system provides functions for mixing copper lists and for generating a final copper list from the copper lists belonging to the individual screens , which is transferred to the copper for processing.

Copper tricks

The programmability through the Copper allowed various tricks in the display:

  • "Reuse" of sprites : The Amiga hardware only offers 8 sprites, but with the support of the Copper it can give the impression of a lot more. Each sprite is displayed in a specific position until the raster beam has passed it; the copper can then instantly change its position and appearance before the raster beam reaches this new position. A single hardware sprite can thus cover several objects that are visible on the screen. It takes CPU time to update the copper lists, but the actual relocation of the sprites to the correct positions at the right time is done entirely by the chipset.
  • Change display resolutions and color palettes in the middle of the picture: One of the most unusual features of the Amiga - the computer can change the resolution from one line to the next, i.e. display different horizontal resolutions on the same screen at the same time. This is somewhat similar to Windows' ability to use the Alt-Tab keys to toggle between different full-screen programs, but on the Amiga the user simply pulls the front screen down like a blind to see what's behind it - both are visible at the same time . Painting programs use this to let the user draw directly on a HAM screen (in low resolution), but at the same time to display a high-resolution, detailed toolbar at the top or bottom of the screen. With game programs, you often have a moving scene in low resolution in the upper part of the display and a high-resolution bar with data and action buttons at the bottom.
  • So-called. "Sliced ​​HAM", or S-HAM. This was invented by Rhett Anderson in 1989; it consists of a copper list that changes the color palette in front of each line of a HAM display in order to bypass almost all of the color restrictions in this mode.
  • Graphics with 12 bit color depth without using the HAM mode: the graphics mode is switched to 0 bit color depth - i.e. only background - but the color is varied so quickly by the copper that a lower resolution "high color" image is created.

Especially in the programmer demo scene , such tricks were increased to ever more remarkable effects. There were e.g. In France, for example, there was a group of programmers called Wild Copper , whose products gained a certain fame.

Hardware organization

The copper is contained in the chipset's Agnus chip . The copper list must be in the chip RAM , because the chipset only has access to this. The Agnus chip accesses it using its DMA machine. The Copper receives the current screen position from the Denise chip, which controls the video output. The video configuration registers, which are usually modified via the copper list, are also located in the Denise chip.

See also: Commodore product overview

literature

  • Commodore Business Machines, Inc .: Amiga Hardware Reference Manual . 4. Print. Addison-Wesley Publishing Company Inc., Reading MA et al. 1987, ISBN 0-201-11077-6 ( Amiga technical reference series ).

Individual evidence

  1. The Copper in the Agnus 8370 on cbmmuseum.kuto.de
  2. General purpose of coprocessor Copper on amigadev.elowar.com