The
Copper location registers contain the two indirect jump addresses used by the
Copper.
The
Copper fetches its instructions by using its program counter and incre-
ments the program counter after each fetch. When a jump address strobe
is
written, the
corresponding location register is loaded into the Copper program counter. This causes
the Copper
to
jump
to
a
new
location, from which its next instruction will be fetched.
Instruction fetch continues sequentially until the Copper
is
interrupted by another jump
address strobe.
NOTE
At
the
start
of each vertical blanking interval, COPILC
is
automatically used
to
start
the program counter.
That
is,
no matter what the Copper
is
doing,
when the end of vertical blanking occurs, the Copper
is
automatically forced
to
restart its operations
at
the address contained
in
COPILC.
JUMP STROBE ADDRESS
When you write
to
a Copper strobe address, the Copper reloads its program counter
from the corresponding location register. The Copper can write its own location regis-
ters and strobe addresses
to
perform programmed jumps. For instance, you might
MOVE an indirect address into the COP2LC location register. Then, any MOVE
instruction
that
addresses COPJMP2 strobes this indirect address into the program
counter.
There are two jump strobe addresses:
COP
JMPI
Restart Copper from address contained
in
COPILC.
COPJMP2 Restart Copper from address contained
in
COP2LC.
CONTROL
REGISTER
The
Copper can access some special-purpose registers all of the time, some registers only
when a special control bit
is
set
to
a
1,
some registers not
at
all. The registers
that
the
Copper can always affect are numbered $20 through $FF inclusive. Those
it
cannot
affect
at
all are numbered $00
to
$OF
inclusive.
(See
appendix B for a list of registers
in.
address order.)
The
Copper control register
is
within the third, always protected, group.
Thus
it
takes deliberate action on the
part
of the 68000
to
allow the Copper to write
into a specific range of the special-purpose registers.
14 Coprocessor Hardware