Amiga computers have
- a main processor (MC68000 or higher),
- a bit blitter, which can perform memory various operations in memory (using 3x source and 1x target, it can AND, OR etc. them),
- and a Copper, which have own "program", it can interpret 2 type of instructions: WAIT for a scanline position (4-pixel precision), and COPY value to a specified regsiter.
It was the name, which made me think: "Copper" is coming from "coprocessor". Well, it can run WAIT and COPY instructions, but the program's time-scope is somewhat restricted, the program is running every screen refresh cycle only once. Is it possible to write a program for Copper, which is doing some more, like animation?
I've generated several color bar frames for Copper, which adds up as a bouncing bar, and as the last instructions, I've added a COPY instruction, which sets the address of the Copper List to the next frame (the last one pointed to first frame).
So, it worked, the bar was bouncing without any support from the processor (besides initial generation and setting of the Copper List address first time).
Blitter and audio DMA is fantastic, it's a big help that the processor just puts an order to a hardware and it executes, but Copper is a degree more bigger magic, it can make things autonomously, which I was demonstrated.