Amos Professional Manual  Contents  Index

Copper Lists


However, multiple screens and Sprites are only supported by the standard AMOS Professional copper system, so you cannot use SCREEN OPEN, SCREEN DISPLAY, RAINBOWS or any of the SPRITE commands. If you need to generate such effects, you will have to program them for yourself! For those of you who wish to give up now, the following command may be useful.

COPPER ON
instruction: re-start automatic copper generation
Copper On

The COPPER ON command re-starts all standard copper calculations, and returns AMOS Professional back to normal. The experts (and foolhardy) may now continue.

COP MOVE
instruction: write a MOVE instruction to current copper list
Cop Move address,value

MOVE is an internal instruction used by the copper, and it is very similar to the AMOS Professional DOKE command. It inserts a MOVE command into the current logical copper list, by copying a value from 0 to 65535 into the selected register address. The address refers to a copper register from $7F to $1BE.

COP MOVEL
instruction: write a long MOVE instruction to copper list
Cop Movel address,value

This is a special option from AMOS Professional Basic, which generates a matched pair of MOVE commands in the new copper list. These load a 32-bit (long word) value into the selected address, exactly like a normal LOKE instruction.

COP WAIT
instruction: insert a WAIT instruction into copper list
Cop Wait x,y
Cop Wait x,y,xmask,ymask

The COP WAIT command enters a WAIT instruction at the current position in the copper list. WAIT forces the copper to stop in its tracks until the screen has been drawn at the specified hardware coordinates x,y. The copper then continues from the next instruction in the copper list.

WAIT is usually called immediately before a MOVE command, creating a pause until the display reaches a specific screen line. The MOVE instruction is then used to change the attributes of the screen area below this line. Rainbows are an excellent example of this technique, with each line of the rainbow generated with a pair of commands like this:

X> Cop Wait 0,Y : Rem Y is starting coordinate of next colour shift
   Cop Move $180,$777 : Rem $180 is address of colour 0 and $777 is new colour
Back    Next
14.F.03