This is a dummy address that is generated by the coprocessor whenever
it is loading instructions into its own instruction register.
This actually occurs every coprocessor cycle except for the second
(IR2) cycle of the MOVE instruction. The three types of instructions
are shown below.
MOVE: Move immediate to dest
WAIT: Wait until beam counter is equal to, or greater than.
(Keeps coprocessor out of bus until beam position has
SKIP: Skip if beam counter is equal to, or greater than.
(Skips following MOVE inst. unless beam position has been
| MOVE | WAIT UNTIL| SKIP IF |
| BIT# | IR1 | IR2 | IR1 | IR2 | IR1 | IR2 |
| 15 | x | RD15 | VP7 | BFD | VP7 | BFD |
| 14 | x | RD14 | VP6 | VE6 | VP6 | VE6 |
| 13 | x | RD13 | VP5 | VE5 | VP5 | VE5 |
| 12 | x | RD12 | VP4 | VE4 | VP4 | VE4 |
| 11 | x | RD11 | VP3 | VE3 | VP3 | VE3 |
| 10 | x | RD10 | VP2 | VE2 | VP2 | VE2 |
| 09 | x | RD09 | VP1 | VE1 | VP1 | VE1 |
| 08 | DA8 | RD08 | VP0 | VE0 | VP0 | VE0 |
| 07 | DA7 | RD07 | HP8 | HE8 | HP8 | HE8 |
| 06 | DA6 | RD06 | HP7 | HE7 | HP7 | HE7 |
| 05 | DA5 | RD05 | HP6 | HE6 | HP6 | HE6 |
| 04 | DA4 | RD04 | HP5 | HE5 | HP5 | HE5 |
| 03 | DA3 | RD03 | HP4 | HE4 | HP4 | HE4 |
| 02 | DA2 | RD02 | HP3 | HE3 | HP3 | HE3 |
| 01 | DA1 | RD01 | HP2 | HE2 | HP2 | HE2 |
| 00 | 0 | RD00 | 1 | 0 | 1 | 1 |
IR1=First instruction register
IR2=Second insturction register
DA =Destination address for MOVE instruction.Fetched during
IR1 time,used during IR2 time on RGA bus.
RD =RAM Data moved by MOVE instruction at IR2 time
directly from RAM to the address given by the DA field.
VP =Vertical beam position comparison bit.
HP =Horizontal beam position comparison bit.
VE =Enable comparison (mask bit)
HE =Enable comparison (mask bit)
* Note: BFD = Blitter finished disable. When this bit is true, the blitter
finished flag will have no effect on the coprocessor. When this
bit is zero the blitter finished flag must be true (in addition
to the rest of the bit comparisons) before the coprocessor can
exit from it`s wait state, or skip over an instruction. Note
that the V7 comparison cannot be masked.
The coprocessor is basically a 2 cycle machine that requests
the bus only during odd memory cycles. (4 memory cycles per in)
It has priority over the blitter and micro.
There are only three types of instructions, MOVE immediate,
WAIT until, and SKIP if. All instructions require 2 bus cycles
(and two instruction words).Since only the odd bus cycles are
requested, 4 memory cycle times are required per instruction.
(memory cycles are 280 ns)
There are two indirect jump registers COP1LC and COP2LC.
These are 20 bit pointer registers whose contents are used to modify
program counter for initalization or jumps.
They are transfered to the program counter whenever strobe address
COPJMP1 or COPJMP2 are written.In addition COP1LC is automatically
used at the beginning of each vertical blank time.
It is important that one of the jump registers be initalized and it`s
jump strobe address hit, after power up but before coprocessor DMA is
initalized.T his insures a determined startup address, and state.