home *** CD-ROM | disk | FTP | other *** search
- ALLOCMEM: EQU -198
- FREEMEM: EQU -210
- OPENLIB: EQU -408
- MEMF_CHIP: EQU $10002
-
- START: MOVEM.L D0-D7/A0-A6,-(SP)
-
- INIT: MOVE.L $4.W,A6
- MOVE.L #COPSIZE,D0
- MOVE.L #MEMF_CHIP,D1
- JSR ALLOCMEM(A6)
- MOVE.L D0,NEWCOPPER
- BEQ.L ALLOCERROR ; Fel vid allokering?
-
- LEA.L GFXNAME(PC),A1
- JSR OPENLIB(A6) ; Öppna gfx.library
- TST.L D0 ; Error?
- BEQ.L GFXERROR
-
- MOVE.L D0,A0
- MOVE.L $26(A0),COPLOC1 ; Spar copper1
- MOVE.L $32(A0),COPLOC2 ; Spar copper2
- MOVE.W #$4000,$DFF09A ; Stäng av all irq
- MOVE.L NEWCOPPER(PC),A0
-
- MOVE.L A0,D0
- ADD.L #LOOP1OFFS,D0
- SWAP D0
- MOVE.W D0,LOOP1HI ; Ställ in copper-
- SWAP D0 ; pekare till LOOP1
- MOVE.W D0,LOOP1LO
- MOVE.L A0,D0
- ADD.L #LOOP2OFFS,D0
- SWAP D0
- MOVE.W D0,LOOP2HI ; Ställ in copper-
- SWAP D0 ; pekare till LOOP2
- MOVE.W D0,LOOP2LO
-
- LEA.L COPPERLIST(PC),A1
- MOVE.W #COPSIZE-1,D7
- MOVECOPPER: MOVE.B (A1)+,(A0)+ ; Flytta copper till
- DBF D7,MOVECOPPER ; ChipMem
-
- MOVE.L NEWCOPPER(PC),$DFF080 ; Vår copper
-
- MAIN: BTST #6,$BFE001 ; Musknapp?
- BNE.S MAIN
-
- EXIT: MOVE.L COPLOC1,$DFF080 ; Återstall copper1
- MOVE.L COPLOC2,$DFF084 ; Återstall copper2
- MOVE.W #$C000,$DFF09A ; Sätt på irq
-
- GFXERROR: MOVE.L NEWCOPPER(PC),A1
- MOVE.L #COPSIZE,D0
- JSR FREEMEM(A6)
- ALLOCERROR: MOVEM.L (SP)+,D0-D7/A0-A6
- RTS
-
- COPPERLIST: DC.W $0100,$0000 ; Inga bitplan på
-
- DC.W $0084 ; Ställ in
- LOOP1HI: DC.W $0000 ; copperpekare 2
- DC.W $0086 ; till LOOP1
- LOOP1LO: DC.W $0000
-
- LOOP1: DC.W $0007,$80FE ; Vänta till kolumn 07
- DC.W $0180,$0000 ; Svart bakgrund
- DC.W $0091,$80FE ; Vänta till kolumn 91
- DC.W $0180,$0F00 ; Röd bakgrund
- DC.W $00CD,$80FE ; Vänta till kolumn CD
- DC.W $7FD1,$FFFF ; SKIP om pos. 7FD1
- DC.W $008A,$0000 ; Hoppa till LOOP1
-
- DC.W $0084 ; Ställ in
- LOOP2HI: DC.W $0000 ; copperpekare 2
- DC.W $0086 ; till LOOP2
- LOOP2LO: DC.W $0000
-
- LOOP2: DC.W $8007,$80FE ; Vänta till kolumn 07
- DC.W $0180,$0000 ; Svart bakgrund
- DC.W $8091,$80FE ; Vänta till kolumn 91
- DC.W $0180,$0F00 ; Röd bakgrund
- DC.W $80CD,$80FE ; Vänta till kolumn CD
- DC.W $FFD1,$FFFF ; SKIP om pos. FFD1
- DC.W $008A,$0000 ; Hoppa till LOOP2
-
- DC.W $FFDF,$FFFE ; Vänta till FFDF
-
- DC.W $0088,$0000 ; Hoppa till början
- COPEND:
- COPSIZE: EQU COPEND-COPPERLIST
- LOOP1OFFS: EQU LOOP1-COPPERLIST
- LOOP2OFFS: EQU LOOP2-COPPERLIST
-
- GFXNAME: DC.B 'graphics.library',0
- EVEN
- COPLOC1: DC.L 0
- COPLOC2: DC.L 0
- NEWCOPPER: DC.L 0