One of the features of the Copper is its ability
to
WAIT for a specific video beam posi-
tion, then MOVE
data
into a system register. During the WAIT period, the Copper
examines
the
contents of the video beam position counter directly. This means
that
while the Copper is waiting for the beam
to
reach a specific position,
it
does not use the
memory bus
at
all. Therefore, the bus is
free~
for use by the other DMA channels or by
the 68000.
When the WAIT condition has been satisfied, the Copper steals memory cycles from
either the blitter
or
the
68000
to
move
the
specified
data
into the selected special-
purpose register.
The Copper is a two-cycle processor
that
requests
the
bus only during odd-numbered
memory cycles. This prevents collision with audio, disk, refresh, sprites, and most
low-
resolution display DMA access, all of which use only the even-numbered memory cycles.
The
Copper, therefore, needs priority over only the 68000 and the blitter (the DMA
channel
that
handles animation, line drawing, and polygon filling).
As with all the other DMA channels in the Amiga system, the Copper can retrieve its
instructions only from the lowest 512K bytes of system memory.
ABOUT
THIS
CHAPTER
In this chapter, you will learn how
to
use the special Copper instruction set
to
organize
mid-screen register value modifications and pointer register set-up during the vertical
blanking interval. The chapter shows how
to
organize Copper instructions into Copper
lists, how
to
use Copper lists
in
interlaced mode, and how
to
use the Copper with the
blitter.
The
Copper
is
discussed in this chapter in a general fashion. The chapters
that
deal with playfields, sprites, audio, and the blitter contain more specific suggestions for
using the Copper.
What
is
a
Copper
Instruction?
As a coprocessor, the Copper adds its own instruction set
to
the
instructions already
provided by the 68000. The Copper has only three instructions,
but
you.
can do a lot
with them:
8 Coprocessor Hardware