English Amiga Board

English Amiga Board (https://eab.abime.net/index.php)
-   Nostalgia & memories (https://eab.abime.net/forumdisplay.php?f=18)
-   -   technical question about amigas (https://eab.abime.net/showthread.php?t=33072)

gimbal 09 November 2007 14:24

technical question about amigas
 
When I was playing with my Amiga I was only 7-14 years old, so I didn't know anything about programming or the technical details of an Amiga at that time (I knew the difference between fast and chip ram, that was about it). While reading through all the threads in this forum I often come across the mentioning of the "copper trick" to get more than 16 colors on the screen.

Can someone explain to me how this works? I have the idea that the copper is a piece of hardware, is it like programming it manually to make it do things it wasn't designed to do or something?

pbareges 09 November 2007 14:36

Quote:

Originally Posted by gimbal (Post 370208)
When I was playing with my Amiga I was only 7-14 years old, so I didn't know anything about programming or the technical details of an Amiga at that time (I knew the difference between fast and chip ram, that was about it). While reading through all the threads in this forum I often come across the mentioning of the "copper trick" to get more than 16 colors on the screen.

Can someone explain to me how this works? I have the idea that the copper is a piece of hardware, is it like programming it manually to make it do things it wasn't designed to do or something?

i think that basically it allows you to change video hardware registers between scanlines (meaning colors palette, screen resolution, color depth...) so that you can display different screens at different resolutions with different color palettes at once...hence the more than 32 COLOURS trick (not 16- half bright mode allows 64 colours also but with real choice among 32 colours)..

from wikipedia :

[edit] 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 any 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.

[edit] Uses of the copper
  • The copper is most commonly used to set and reset the video hardware registers on each frame. It can also be used to change video hardware mid-frame. This allows the Amiga to change video configuration, including resolution, between scanlines. The Amiga can display different horizontal resolutions and color depths on the same screen. The AmigaOS graphical user interface allows two programs to operate at different resolutions, 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[1], 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.


All times are GMT +2. The time now is 15:15.

Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2024, vBulletin Solutions Inc.

Page generated in 0.04731 seconds with 11 queries