Ready to execute
Hardware Heritage
The "Copper" (Coprocessor) was a specialized stream processor within the Amiga OCS/AGA chipset. It operated independently of the CPU, synchronized directly to the video beam's position to manipulate hardware registers in real-time.
Amiga Heritage
The Copper is the defining chip of the Amiga. It allowed for "impossible" color counts by changing the background register on every scanline with zero CPU overhead.
PC Simulation
PC VGA hardware lacked a Copper. Programmers had to "race the beam" by polling the VGA status register in a tight loop—consuming 100% CPU cycles.
Modern Logic
Modern GPUs compute the entire frame in parallel. This demo simulates the "beam" using the pixel's Y coordinate as a time-offset variable in shader math.
Copper Bars
Racing the beam for the ultimate gradient.
Legacy M68k ASM
COPPER_LIST:
; Wait for line $80
DC.W $8001,$FFFE
; Set BG to White
DC.W $0180,$0FFF
; Wait for line $81
DC.W $8101,$FFFE
; Set BG to Red
DC.W $0180,$0F00
DC.W $FFFF,$FFFE ; END
Modern GLSL
void main() {
float y = gl_FragCoord.y / res.y;
float t = iTime;
// Wave movement
float pos = 0.5 + 0.4 * sin(t);
float dist = abs(y - pos);
// Gradient falloff
float i = pow(1.0 - dist/0.1, 4.0);
gl_FragColor = vec4(vec3(1,0,0) * i, 1.0);
}