
EXECBASE=4
DMACON=$DFF096
OLDOPENLIBRARY=-408
INICIALIZACIONES:

        MOVE.L  EXECBASE,A6           ;Puntero base de Exec
        LEA     NOMBRE_GFX,A1         ;Puntero a graphics.library
        MOVE.L  #0,D0                 ;Limpio D0=0
        JSR     OLDOPENLIBRARY(A6)    ;Si al ejecutarse la función sigue
        TST     D0                    ;valiendo cero es que han habido 
        BEQ     ERROR                 ;problemas
        MOVE.L  D0,GFXBASE            ;Si no hay problemas la función deja
                                      ;en D0 la dirección base de la libreria
        MOVE.L  D0,A0                 ;y se copia en A0
        ADD.L   #$32,A0               ;le sumanos el offset de la actual
                                      ;lista de copper 
        MOVE.W  #$0080,DMACON         ;Detenemos el copper
        MOVE.L  (A0),SALVA_COPPER     ;y almacenamos la direcc. en la variable
        MOVE.L  #MI_COPPER,(A0)       ;dirección de nuestra lista de copper
        MOVE.W  #$8080,DMACON         ;y activamos el canal DMA del copper

ESPERA: BTST    #$6,$BFE001           ;Se ha pulsado el boton izq del ratón?

        BNE     ESPERA 

        MOVE.L  GFXBASE,A0            ;Puntero base de graphics.library
        ADD.L   #$32,A0               ;y le sumamos el offset
        MOVE.W  #$0080,DMACON         ;Desactivamos el canal del copper
        MOVE.L  SALVA_COPPER,(A0)     ;y dejamos la antigua dirección
        MOVE.W  #$8080,DMACON         ;antivamos de nuevo el canal DMA del 
                                      ;copper

ERROR:
        RTS                           ;Si no ha conseguido abrir la/s
                                      ;librerias finaliza la rutina

NOMBRE_GFX:
        DC.B    'graphics.library',0
        EVEN                          ;alinea con el PC para evitar un error
                                      ;del tipo dirección impar en la etiqueta
                                      ;de GFXBASE
GFXBASE:
        DC.L    0
SALVA_COPPER:
        DC.L    0

MI_COPPER:
        DC.W    $0100,$0000
        DC.W    $3011,$FFFE,$0180,$0333,$3211,$FFFE,$0180,$0444
        DC.W    $3411,$FFFE,$0180,$0555,$3611,$FFFE,$0180,$0666
        DC.W    $FFFF,$FFFE
