
; Listing5n.s	KOMBINATIE VAN 3 COPPER-EFFECTEN + BEELD IN 8 KLEUREN MET
;		$dff102 EN Bitplanepointer-EFFECTEN


	SECTION	CIPenCOP,CODE

Begin:
	move.l	4.w,a6		; Execbase in a6
	jsr	-$78(a6)	; Disable - stopt Multitasking
	lea	GfxName(PC),a1	; Adres van te openen Library in a1.
	jsr	-$198(a6)	; OpenLibrary
	move.l	d0,GfxBase	; Sla adres op in GfxBase
	move.l	d0,a6
	move.l	$26(a6),OldCop	; Opslaan oude Copperlist

;	POINTEN naar onze Bitplanes

	MOVE.L	#PIC,d0		; In d0 komt het adres van het plaatje
	LEA	BPLPOINTERS,A1	; in a1 komt het adres van de BitPlane-
				; Pointer van de Copperlist
	MOVEQ	#2,D1		; Aantal Bitplanes -1 (voor de DBRA-Lus!)

POINTBP:
	move.w	d0,6(a1)	
				
	swap	d0		

	move.w	d0,2(a1)	
				
	swap	d0		
	ADD.L	#40*256,d0	

	addq.w	#8,a1		
	dbra	d1,POINTBP	

	move.l	#COPPERLIST,$dff080	; COP1LC-Pointer naar Onze Cop.
	move.w	d0,$dff088		; COPJMP1 - Start 'm
	move.w	#0,$dff1fc		; FMODE - Deactiveert AGA
	move.w	#$c00,$dff106		; BPLCON3 - Deactiveert AGA

	bsr.w	mt_init	 ; Initialiseert Muziek-routine.

mouse:
	cmpi.b	#$ff,$dff006	; Zijn we op lijn 255?
	bne.s	mouse		; Zo niet, ga niet verder.

	bsr.w	BeweegCopper	; Rode Balk onder $FF
	bsr.s	CopperLinkRech	; Routine voor links-rechts Scroll
	BSR.w	scrollcolors	; Groene balk roteren
	bsr.w	ScrollPlanes	; Op en Neer bewegen van Plaatje
	bsr.w	Golven		; Golven d.m.v. $dff102
	bsr.w	mt_music	; Speelt de Muziek

Wacht:
	cmpi.b	#$ff,$dff006	; Zijn we op lijn 255?
	beq.s	Wacht		; Zo niet, ga niet verder.

	btst	#6,$bfe001	; Linker muisknop gedrukt?
	bne.s	mouse		; Zo niet, terug naar mouse.

	bsr.w	mt_end		; Stop Muziekroutine.

	move.l	OldCop(PC),$dff080	; COP1LC - Pointer naar Originele
					; Copperlist
	move.w	d0,$dff088		; COPJMP1 - Start 'm

	move.l	4.w,a6
	jsr	-$7e(a6)	; Enable - Multitasking aan.
	move.l	GfxBase(PC),a1	
	jsr	-$19e(a6)	; Closelibrary 
	rts

; DATEN

GfxName:
	dc.b	"graphics.library",0,0	

GfxBase:		
	dc.l	0	

OldCop:		 
	dc.l	0	

; **************************************************************************
; *		HORIZONTAAL LOPENDE BALK	(Listing3h.s)		   *
; **************************************************************************

CopperLinkRech:
	CMPI.W	#85,FlagRechts	; GaRechts 85 Maal uitgevoerd?
	BNE.S	GaRechts	; Zo niet herhaal.

	CMPI.W	#85,FlagLinks	; GaLinks 85 Maal uitgevoerd?
	BNE.S	GaLinks		; Zo niet herhaal.

	CLR.W	FlagRechts	
	CLR.W	FlagLinks	
	RTS			

GaRechts:			
	lea	CopBar+1,A0	
				
				

	move.w	#29-1,D2    	; 29 Wait's veranderen 
RechtsLoop:
	addq.b	#2,(a0)		
	ADD.W	#16,a0		
	dbra	D2,RechtsLoop	
	addq.w	#1,FlagRechts	
				
	RTS			

GaLinks:			
	lea	CopBar+1,A0
	move.w	#29-1,D2	; 29 Wait's veranderen
LinksLoop:
	subq.b	#2,(a0)	   
	ADD.W	#16,a0	   
	dbra	D2,LinksLoop 
	addq.w	#1,FlagLinks 
			
	RTS		

FlagRechts:		
	dc.w	0	

FlagLinks:		
	dc.w	0	

; **************************************************************************
; *		RODE BALK ONDER LIJN $FF 	(LISTING3f.s)		   *
; **************************************************************************

BeweegCopper:
	LEA	BALK,a0   ; in a0 komt het Adres van Balk
	TST.B	OmhoogBeneden2 ; OmHoog Of OmLaag?
			    
	beq.w	GaBeneden2  
			    

	cmpi.b	#$0a,(a0)
	beq.s	ZetBeneden2	
	subq.b	#1,(a0)		
	subq.b	#1,8(a0)
	subq.b	#1,8*2(a0) 
	subq.b	#1,8*3(a0) 
	subq.b	#1,8*4(a0) 
	subq.b	#1,8*5(a0)
	subq.b	#1,8*6(a0)
	subq.b	#1,8*7(a0) 
	subq.b	#1,8*8(a0) 
	subq.b	#1,8*9(a0) 
	rts


ZetBeneden2:
	clr.b	OmhoogBeneden2	
	rts			

GaBeneden2:
	cmpi.b	#$2c,8*9(a0)	
	beq.s	ZetOmhoog2	
	addq.b	#1,(a0)		
	addq.b	#1,8(a0)
	addq.b	#1,8*2(a0) 
	addq.b	#1,8*3(a0) 
	addq.b	#1,8*4(a0) 
	addq.b	#1,8*5(a0)
	addq.b	#1,8*6(a0)
	addq.b	#1,8*7(a0) 
	addq.b	#1,8*8(a0) 
	addq.b	#1,8*9(a0) 
	rts

ZetOmhoog2:
	move.b	#$ff,OmhoogBeneden2
	rts			

OmhoogBeneden2:
	dc.b	0,0

; **************************************************************************
; *		ROTEREN V.D. KLEUREN 		 (LISTING3E.s)		   *
; **************************************************************************

Scrollcolors:
	move.w	col2,col1	; col2 komt in col1
	move.w	col3,col2	; col3 komt in col2
	move.w	col4,col3	; col4 komt in col3
	move.w	col5,col4	; col5 komt in col4
	move.w	col6,col5	; col6 komt in col5
	move.w	col7,col6	; col7 komt in col6
	move.w	col8,col7	; col8 komt in col7
	move.w	col9,col8	; col9 komt in col8
	move.w	col10,col9	; col10 komt in col9
	move.w	col11,col10	; col11 komt in col10
	move.w	col12,col11	; col12 komt in col11
	move.w	col13,col12	; col13 komt in col12
	move.w	col14,col13	; col14 komt in col13
	move.w	col1,col14	; col1 komt in col14
	rts

; **************************************************************************
; *	SCROLL NAAR BOVEN EN BENEDEN V.H. BEELD	(UIT Listing5g.s)	   *
; **************************************************************************

ScrollPlanes:
	LEA	BPLPOINTERS,A1	
	move.w	2(a1),d0	
	swap	d0		
	move.w	6(a1),d0	

	TST.B	OmhoogBeneden3	

	beq.w	GaBeneden3
	cmp.l	#PIC-(40*18),d0 
	beq.s	ZetBeneden3	
	sub.l	#40,d0		
				
	bra.s	Einde3


ZetBeneden3:
	clr.b	OmhoogBeneden3	
	bra.s	Einde3

GaBeneden3:
	cmpi.l	#PIC+(40*130),d0
	beq.s	ZetOmhoog3	
				
	add.l	#40,d0		
				
	bra.s	Einde3

ZetOmhoog3:
	move.b	#$ff,OmhoogBeneden3
	rts			
	
Einde3:				
	LEA	BPLPOINTERS,A1	
	MOVEQ	#2,D1		

POINTBP2:
	move.w	d0,6(a1)	
	swap	d0		
	move.w	d0,2(a1)	
	swap	d0		
	ADD.L	#40*256,d0	
	addq.w	#8,a1		
	dbra	d1,POINTBP2	
	rts

OmhoogBeneden3:
	dc.b	0,0

; **************************************************************************
; *	GOLFEFFECT D.M.V DE MODULO $dff102 (LISTING5H.S)		   *
; **************************************************************************

Golven:
	LEA	Con1Effect+8,A0 
	LEA	Con1Effect,A1	
	MOVEQ	#19,D2		
Vertausche:
	MOVE.W	(A0),(A1)	
	ADDQ.W	#8,A0		
	ADDQ.W	#8,A1		
	DBRA	D2,Vertausche 

	MOVE.W	Con1Effect,LaatsteWaarde	
	RTS				

; **************************************************************************
; *		ROUTINE VOOR AFSPELEN VAN SOUNDTRACKER/PROTRACKER	   *
; **************************************************************************

	include "music.s" ; Routine, die voor 100% op alle Amiga's 
			  ; functioneert

; **************************************************************************
; *				SUPER COPPERLIST			   *
; **************************************************************************

	SECTION GRAPHIC,DATA_C

COPPERLIST:
	; Sprites uit...
	dc.w	$120,$0000,$122,$0000,$124,$0000,$126,$0000,$128,$0000 
	dc.w	$12a,$0000,$12c,$0000,$12e,$0000,$130,$0000,$132,$0000
	dc.w	$134,$0000,$136,$0000,$138,$0000,$13a,$0000,$13c,$0000
	dc.w	$13e,$0000

	dc.w	$8e,$2c81	; DiwStrt   (Registers met Standaardwaarden)
	dc.w	$90,$2cc1	; DiwStop
	dc.w	$92,$0038	; DdfStart
	dc.w	$94,$00d0	; DdfStop
	dc.w	$102,0		; BplCon1
	dc.w	$104,0		; BplCon2
	dc.w	$108,0		; Bpl1Mod
	dc.w	$10a,0		; Bpl2Mod

; BPLCON0 ($dff100) Voor een scherm met 3 bitplanes (8 Kleuren)

		    ; 5432109876543210
	dc.w	$100,%0011001000000000	; bits 13 en 12 aan!! (3 = %011)


BPLPOINTERS:
	dc.w $e0,$0000,$e2,$0000	; 1e Bitplane - BPL0PT
	dc.w $e4,$0000,$e6,$0000	; 2e Bitplane - BPL1PT
	dc.w $e8,$0000,$ea,$0000	; 3e Bitplane - BPL2PT

;	Kleuren definieëren:

	dc.w	$0180,$000	; color0
	dc.w	$0182,$070	; color1
	dc.w	$0184,$0f0	; color2
	dc.w	$0186,$0c0	; color3
	dc.w	$0188,$090	; color4
	dc.w	$018a,$030	; color5
	dc.w	$018c,$070	; color6
	dc.w	$018e,$040	; color7

;	Het effect uit Listing3e.s, maar dan verder naar boven geschoven.

	dc.w	$2c07,$fffe	; wachten op lijn 154 ($9a in hexadecimaal)
	dc.w	$180		; Register COLOR0
col1:
	dc.w	$0f0		
	dc.w	$2d07,$fffe	
	dc.w	$180		
col2:
	dc.w	$0d0		
	dc.w	$2e07,$fffe	
	dc.w	$180		
col3:
	dc.w	$0b0		
	dc.w	$2f07,$fffe	
	dc.w	$180		
col4:
	dc.w	$090		
	dc.w	$3007,$fffe	
	dc.w	$180		
col5:
	dc.w	$070		
	dc.w	$3107,$fffe	
	dc.w	$180		
col6:
	dc.w	$050		
	dc.w	$3207,$fffe	
	dc.w	$180		
col7:
	dc.w	$030		
	dc.w	$3307,$fffe	
	dc.w	$180		
col8:				
	dc.w	$030
	dc.w	$3407,$fffe	
	dc.w	$180
col9:
	dc.w	$050
	dc.w	$3507,$fffe	
	dc.w	$180
col10:
	dc.w	$070
	dc.w	$3607,$fffe	
	dc.w	$180
col11:
	dc.w	$090
	dc.w	$3707,$fffe	
	dc.w	$180
col12:
	dc.w	$0b0
	dc.w	$3807,$fffe	
	dc.w	$180
col13:
	dc.w	$0d0
	dc.w	$3907,$fffe	
	dc.w	$180
col14:
	dc.w	$0f0
	dc.w	$3a07,$fffe	

	dc.w	$0180,$000	; color0	; Echte kleuren van het 
						; plaatje
	dc.w	$0182,$475	; color1
	dc.w	$0184,$fff	; color2
	dc.w	$0186,$ccc	; color3
	dc.w	$0188,$999	; color4
	dc.w	$018a,$232	; color5
	dc.w	$018c,$777	; color6
	dc.w	$018e,$444	; color7

;	CopperEffect 'Golven' met $dff102 uit Listing5h.s.

	DC.W	$102
CON1Effect:
	dc.w	$000
	DC.W	$4007,$FFFE,$102,$00
	DC.W	$4407,$FFFE,$102,$11
	DC.W	$4807,$FFFE,$102,$11
	DC.W	$4C07,$FFFE,$102,$22
	DC.W	$5007,$FFFE,$102,$33
	DC.W	$5407,$FFFE,$102,$44
	DC.W	$5807,$FFFE,$102,$66
	DC.W	$5C07,$FFFE,$102,$66
	DC.W	$6007,$FFFE,$102,$77
	DC.W	$6407,$FFFE,$102,$77
	DC.W	$6807,$FFFE,$102,$77
	DC.W	$6C07,$FFFE,$102,$66
	DC.W	$7007,$FFFE,$102,$66
	DC.W	$7407,$FFFE,$102,$55
	DC.W	$7807,$FFFE,$102,$33
	DC.W	$7C07,$FFFE,$102,$22
	DC.W	$8007,$FFFE,$102,$11
	DC.W	$8407,$FFFE,$102,$11
	DC.W	$8807,$FFFE,$102,$00
	DC.W	$8C07,$FFFE,$102
LaatsteWaarde:
	DC.W	$00

;	EFFECT uit Listing3h.s

	dc.w	$9007,$fffe	
	dc.w	$180,$000	
CopBar:
	dc.w	$9031,$fffe	
	dc.w	$180,$100	
	dc.w	$9107,$fffe	
	dc.w	$180,$111	
	dc.w	$9131,$fffe	
	dc.w	$180,$200	

	dc.w	$9207,$fffe,$180,$120,$9231,$fffe,$180,$301 ; Lijn 3
	dc.w	$9307,$fffe,$180,$230,$9331,$fffe,$180,$401 ; Lijn 4
	dc.w	$9407,$fffe,$180,$240,$9431,$fffe,$180,$502 ; Lijn 5
	dc.w	$9507,$fffe,$180,$350,$9531,$fffe,$180,$603 ; ....
	dc.w	$9607,$fffe,$180,$360,$9631,$fffe,$180,$703
	dc.w	$9707,$fffe,$180,$470,$9731,$fffe,$180,$803
	dc.w	$9807,$fffe,$180,$580,$9831,$fffe,$180,$904
	dc.w	$9907,$fffe,$180,$690,$9931,$fffe,$180,$a04
	dc.w	$9a07,$fffe,$180,$7a0,$9a31,$fffe,$180,$b04
	dc.w	$9b07,$fffe,$180,$8b0,$9b31,$fffe,$180,$c05
	dc.w	$9c07,$fffe,$180,$9c0,$9c31,$fffe,$180,$d05
	dc.w	$9d07,$fffe,$180,$ad0,$9d31,$fffe,$180,$e05
	dc.w	$9e07,$fffe,$180,$be0,$9e31,$fffe,$180,$f05
	dc.w	$9f07,$fffe,$180,$cf0,$9f31,$fffe,$180,$e05
	dc.w	$a007,$fffe,$180,$be0,$a031,$fffe,$180,$d05
	dc.w	$a107,$fffe,$180,$ad0,$a131,$fffe,$180,$c05
	dc.w	$a207,$fffe,$180,$9c0,$a231,$fffe,$180,$b04
	dc.w	$a307,$fffe,$180,$8b0,$a331,$fffe,$180,$a04
	dc.w	$a407,$fffe,$180,$7a0,$a431,$fffe,$180,$904
	dc.w	$a507,$fffe,$180,$690,$a531,$fffe,$180,$803
	dc.w	$a607,$fffe,$180,$580,$a631,$fffe,$180,$703
	dc.w	$a707,$fffe,$180,$470,$a731,$fffe,$180,$603
	dc.w	$a807,$fffe,$180,$360,$a831,$fffe,$180,$502
	dc.w	$a907,$fffe,$180,$250,$a931,$fffe,$180,$402
	dc.w	$aa07,$fffe,$180,$140,$aa31,$fffe,$180,$301
	dc.w	$ab07,$fffe,$180,$130,$ab31,$fffe,$180,$202
	dc.w	$ac07,$fffe,$180,$120,$ac31,$fffe,$180,$103
	dc.w	$ad07,$fffe,$180,$111,$ad31,$fffe,$180,$004

	dc.w	$ae07,$fffe
	dc.w	$180,$002
	dc.w	$af07,$fffe
	dc.w	$180,$003

;	Cylinder-Spiegel-Effect uit Listing3g.s (+nieuwe kleuren)

	dc.w	$0182,$235	; color1
	dc.w	$0184,$99e	; color2
	dc.w	$0186,$88c	; color3
	dc.w	$0188,$659	; color4
	dc.w	$018a,$122	; color5
	dc.w	$018c,$337	; color6
	dc.w	$018e,$224	; color7

	dc.w	$b007,$fffe
	
	dc.w	$180,$004	; Color0
	dc.w	$102,$011	; bplcon1
	dc.w	$108,-40*7	; Bpl1Mod - Spiegel 5 Maal gehalveerd
	dc.w	$10a,-40*7	; Bpl2Mod
	
	dc.w	$b307,$fffe

	dc.w	$180,$006	; Color0
	dc.w	$102,$022	; bplcon1
	dc.w	$108,-40*6	; Bpl1Mod - Spiegel 4 Maal gehalveerd
	dc.w	$10a,-40*6	; Bpl2Mod

	dc.w	$b607,$fffe

	dc.w	$0182,$245	; color1
	dc.w	$0184,$9cf	; color2
	dc.w	$0186,$89c	; color3
	dc.w	$0188,$669	; color4
	dc.w	$018a,$132	; color5
	dc.w	$018c,$347	; color6
	dc.w	$018e,$234	; color7

	dc.w	$180,$008	; Color0
	dc.w	$102,$033	; bplcon1
	dc.w	$108,-40*5	; Bpl1Mod - Spiegel 3 Maal
	dc.w	$10a,-40*5	; Bpl2Mod

	dc.w	$bb07,$fffe

	dc.w	$180,$00a	; Color0
	dc.w	$102,$044	; bplcon1
	dc.w	$108,-40*4	; Bpl1Mod - Spiegel 2 Maal
	dc.w	$10a,-40*4	; Bpl2Mod

	dc.w	$c307,$fffe

	dc.w	$0182,$355	; color1
	dc.w	$0184,$abf	; color2
	dc.w	$0186,$9ac	; color3
	dc.w	$0188,$779	; color4
	dc.w	$018a,$232	; color5
	dc.w	$018c,$457	; color6
	dc.w	$018e,$344	; color7
	dc.w	$180,$00c	; Color0
	dc.w	$102,$055	; bplcon1
	dc.w	$108,-40*3	; Bpl1Mod - Spiegel half
	dc.w	$10a,-40*3	; Bpl2Mod

	dc.w	$d007,$fffe

	dc.w	$180,$00e	; Color0
	dc.w	$102,$066	; bplcon1
	dc.w	$108,-40*2	; Bpl1Mod - Spiegel normaal
	dc.w	$10a,-40*2	; Bpl2Mod

	dc.w	$d607,$fffe
	
	dc.w	$0182,$465	; color1
	dc.w	$0184,$bbf	; color2
	dc.w	$0186,$bbc	; color3
	dc.w	$0188,$889	; color4
	dc.w	$018a,$232	; color5
	dc.w	$018c,$557	; color6
	dc.w	$018e,$444	; color7

	dc.w	$180,$00f	; Color0
	dc.w	$102,$077	; bplcon1
	dc.w	$108,-40	; Bpl1Mod - FLOOD
	dc.w	$10a,-40	; Bpl2Mod 

	dc.w	$da07,$fffe

	dc.w	$0182,$355	; color1
	dc.w	$0184,$abf	; color2
	dc.w	$0186,$9ac	; color3
	dc.w	$0188,$779	; color4
	dc.w	$018a,$232	; color5
	dc.w	$018c,$457	; color6
	dc.w	$018e,$344	; color7
	dc.w	$180,$00e	; Color0
	dc.w	$102,$066	; bplcon1
	dc.w	$108,-40*2	; Bpl1Mod - Spiegel normaal
	dc.w	$10a,-40*2	; Bpl2Mod

	dc.w	$e007,$fffe

	dc.w	$0182,$245	; color1
	dc.w	$0184,$9cf	; color2
	dc.w	$0186,$89c	; color3
	dc.w	$0188,$669	; color4
	dc.w	$018a,$132	; color5
	dc.w	$018c,$347	; color6
	dc.w	$018e,$234	; color7
	dc.w	$180,$00c	; Color0
	dc.w	$102,$055	; bplcon1
	dc.w	$108,-40*3	; Bpl1Mod - Spiegel half
	dc.w	$10a,-40*3	; Bpl2Mod

	dc.w	$ed07,$fffe

	dc.w	$180,$00a	; Color0
	dc.w	$102,$044	; bplcon1
	dc.w	$108,-40*4	; Bpl1Mod - Spiegel 2 Maal
	dc.w	$10a,-40*4	; Bpl2Mod

	dc.w	$f507,$fffe

	dc.w	$0182,$235	; color1
	dc.w	$0184,$99e	; color2
	dc.w	$0186,$88c	; color3
	dc.w	$0188,$659	; color4
	dc.w	$018a,$122	; color5
	dc.w	$018c,$337	; color6
	dc.w	$018e,$224	; color7
	dc.w	$180,$008	; Color0
	dc.w	$102,$033	; bplcon1
	dc.w	$108,-40*5	; Bpl1Mod - Spiegel 3 Maal
	dc.w	$10a,-40*5	; Bpl2Mod

	dc.w	$fa07,$fffe

	dc.w	$180,$006	; Color0
	dc.w	$102,$022	; bplcon1
	dc.w	$108,-40*6	; Bpl1Mod - Spiegel 4 Maal
	dc.w	$10a,-40*6	; Bpl2Mod

	dc.w	$fd07,$fffe

	dc.w	$180,$004	; Color0
	dc.w	$102,$011	; bplcon1
	dc.w	$108,-40*7	; Bpl1Mod - Spiegel 5 Maal
	dc.w	$10a,-40*7	; Bpl2Mod

	dc.w	$ff07,$fffe

	dc.w	$180,$002	; Color0
	dc.w	$102,$000	; bplcon1
	dc.w	$108,-40	
	dc.w	$10a,-40	

;	Effect uit Listing3f.s

	dc.w	$ffdf,$fffe	

	dc.w	$0107,$FFFE	
	dc.w	$180,$010
	dc.w	$0207,$FFFE
	dc.w	$180,$020
	dc.w	$0307,$FFFE
	dc.w	$180,$030
	dc.w	$0407,$FFFE
	dc.w	$180,$040
	dc.w	$0507,$FFFE
	dc.w	$180,$030
	dc.w	$0607,$FFFE
	dc.w	$180,$020
	dc.w	$0707,$FFFE
	dc.w	$180,$010
	dc.w	$0807,$FFFE
	dc.w	$180,$000

BALK:
	dc.w	$0907,$FFFE	
	dc.w	$180,$300	
	dc.w	$0a07,$FFFE	
	dc.w	$180,$600	
	dc.w	$0b07,$FFFE
	dc.w	$180,$900	
	dc.w	$0c07,$FFFE
	dc.w	$180,$c00	
	dc.w	$0d07,$FFFE
	dc.w	$180,$f00	
	dc.w	$0e07,$FFFE
	dc.w	$180,$c00	
	dc.w	$0f07,$FFFE
	dc.w	$180,$900	
	dc.w	$1007,$FFFE
	dc.w	$180,$600	
	dc.w	$1107,$FFFE
	dc.w	$180,$300	
	dc.w	$1207,$FFFE
	dc.w	$180,$000	

	dc.w	$FFFF,$FFFE	; EINDE VAN DE COPPERLIST


; **************************************************************************
; *			BEELD IN 8 KLEUREN 320x256			   *
; **************************************************************************

	dcb.b	40*98,0	 ; Leeg stuk

PIC:
	incbin	"amiga.320*256*3"	; RAW - Formaat

	dcb.b	40*8,0		; Leeg stuk

; **************************************************************************
; *				PROTRACKER-MUZIEK			   *
; **************************************************************************

mt_data:
	incbin	"mod.purple-shades"

	end

; **************************************************************************

Deze Listing is niets anders dan een samenvatting van enkele Listings
zoals u ze al kent. Er zijn 2 verschillen:

1) Ik heb het golf-effect van 45 Wait's naar 20 moeten verkorten om 'm 
   tussen de andere effecten te krijgen,

2) Ik heb het Palette boven aan het beeld veranderd, zodat het uitziet 
   alsof het Plaatje in ScrollColors van kleurveranderd. Verder heb ik hier
   en daar de kleuren veranderd om de copperlist mooier te maken, en ...
   te VERLLENGEN... he he he...

De echte nieuwigheid is het invoegen van een Muziek-routine! Eerst even
het volgende: Ik heb het 'toevoegen' van deze muziekroutine gedaan met een
"INCLUDE" die ervoor zorgt dat deze routine in de listing wordt ingeladen
bij het assembleren, en dan meteen wordt mee- geassembleerd. De listing is
ook te vinden tussen alle anderen, en heet "Music.s". U kunt hem gewoon 
lezen en gebruiken in uw eigen programma's.
Laten we nu eens kijken hoe we de muziek hoorbaar maken:
Als eerste moet ik opmerken dat het muziekstuk in PROTRACKER-FORMAAT staat,
en dat alleen DAT het mogelijke formaat is dat deze routine kan afspelen.
Heeft u Protracker V2.1 of hoger, dan kunt u uw eigen muziek componeren,
en hiervoor in de plaats zetten.
Ik heb in deze cursus deze routine meegegeven omdat ze Protracker-muziek
probleemloos afspeelt en Protracker een bekend formaat is. Verder is
het Protracker-formaat zelf compatible met NoiseTracker en SoundTracker.
Deze kunnen dus ook afgespeeld worden. Geen Octamed e.d. helaas!
Ik heb de source van deze routine een beetje aan moeten passen omdat ze op 
68020 en hogere processoren een probleem had met ingeschakelde Cache, en
daardoor hier en daar wel eens een nootje oversloeg.

Eenmaal ingevoegd (Include vereist een Path als Music.s niet in dezelfde
directory staat als uw source!) hoeven we maar weinig te doen.
Alleen met mt_init de routine initialiseren, voordat we in onze Mouse:-lus
springen, en dan ieder FRAME mt_music aanroepen. Na onze lus nog mt_end
aanroepen en klaar is kees:

	bsr.w	mt_init		; Initialiseert Muziek-Routine

mouse:
	cmpi.b	#$ff,$dff006	; Zijn we op lijn 255?
	bne.s	mouse		; Zo niet, ga niet verder.

	bsr.w	MijnEigenRoutine
	bsr.w	mt_music	; Speelt de Muziek
 
	btst	#6,$bfe001	; Linker muiknop gedrukt?
	bne.s	mouse		; Zo niet, terug naar mouse.

	bsr.s	mt_end		; Beëindig de muziekroutine
 
Het Muziekstuk moet natuurlijk wel geladen worden: Gewoon met INCBIN onder
het Label "mt_data":

mt_data:
	incbin	"mod.purple-shades"

De muziek die bij deze cursus zit is van HI-LITE van VISION FACTORY. Dit
is een stuk dat al enige jaren achter de rug heeft, maar ik heb het gekozen
omdat het maar 13kb lang is. Als u uw eigen muziek wilt afspelen, dan moet
u gewoon uw eigen invullen:

mt_data:
	incbin	"df1:modules/mod.MyMusic"	; Bijvoorbeeld!

Let er wel op dat uw muziekstuk niet met PowerPacker o.i.d. is 'gecrunched'!
Dit kan de routine niet voor u De-Crunchen!

Tot ziens in les 6!