That piece of code will fail on any machine which has fastmem. So unless you are using an unexpanded A500 or A1200, you need to change it a bit.
First thing you need to do, is to place the copperlist in chip memory. The copperlist is a sequence of instructions which will get read by the copper (graphics coprocessor). The copper can only read from chip memory.
Split your program into two sections, by putting a
section code,code
at the top of the file, and a
section data_c,data_c
just before the "Copperliste:" label.
The resulting executable file will have its contents split into two sections. The entire "data_c" section will have a flag set which indicates to the OS's program loader that it should get loaded into chip memory.
After this change, there are still several reasons why it might not woirk. The setup code you're using is omitting several steps which a well-behaved program would go through.
Couple off the top of my mind:
* before you activate your own copperlist, do the following to "reset" the display registers to a known-good state:
sub.l a1, a1
jsr LoadView(a6) ; Blank the screen
jsr WaitTOF(a6)
jsr WaitTOF(a6)
* if you are going to use the blitter, you should perform OwnBlitter() / DisownBlitter() at the start/end of your program. Also, just because you just did OwnBlitter() doesn't mean that it is idle -- follow the OwnBlitter() with a WaitBlit() to ensure that is the case.
etc. See
http://www.amiga.org/forums/showpost.php?s=a95a68d d42be987d255f705ed5bd74ae&p=83619&postcount=3 for a list of things to do for a "full" system teardown/setup.