THE WAIT INSTRUCTION The WAIT instruction causes the Copper to wait until the video beam counters are equal to (or greater than) the coordinates specified in the instruction. While waiting, the Copper is off the bus and not using memory cycles. The first instruction word contains the vertical and horizontal coordinates of the beam position. The second word contains enable bits that are used to form a "mask" that tells the system which bits of the beam position to use in making the comparison. FIRST INSTRUCTION WORD (IR1) Bit 0 Always set to 1. Bits 15 - 8 Vertical beam position (called VP). Bits 7 - 1 Horizontal beam position (called HP). SECOND INSTRUCTION WORD (IR2) Bit 0 Always set to 0.
Bit 15 The blitter-finished-disable bit. Normally, this bit is a 1. (See the "Advanced Topics" section below.) Bits 14 - 8 Vertical position compare enable bits (called VE). Bits 7 - 1 Horizontal position compare enable bits (called HE). The following example WAIT instruction waits for scan line 150 ($96) with the horizontal position masked off. DC.W $9601,$FF00 ; Wait for line 150, ; ignore horizontal counters. The following example WAIT instruction waits for scan line 255 and horizontal position 254. This event will never occur, so the Copper stops until the next vertical blanking interval begins. DC.W $FFFF,$FFFE ; Wait for line 255, ; H = 254 (ends Copper list).
To understand why position VP=$FF HP=$FE will never occur, you must look at the comparison operation of the Copper and the size restrictions of the position information. Line number 255 is a valid line to wait for, in fact it is the maximum value that will fit into this field. Since 255 is the maximum number, the next line will wrap to zero (line 256 will appear as a zero in the - Coprocessor Hardware 17 -