ÿþÿ#&(),,%þûûý	 "" !#$"îÜÎÆÂÁÃÆÇÄ¿º¶µ·»ÂÉÑ×Üßäéíïïïïïò÷ý
"$$!øîçãâãæìóùÿÿýýýþ 
 &)+-./+" þ !$%&$"%&&%ùäÓÈÂ¿¾¼¹´±¯¯±µ¼ÅÍÔÚÞáåèëìííîðôù 
!#%#ÿòèâàßáåìóúþ þüûûüýþ	#'+,-.,$þþ"%%# #%&&%#íÙËÀº³­©§§©¬°·¿ÈÐÖÛÞáãåæèëìïñöü"#$"	ûïçâßßãèïöü ÿýüûûûûü !&*,./.(
 ÿ	 $&%!"%'('(( öàÎÀ²¨¡Ÿ¡¤¨¬³ºÃËÑØÜßàáâåèëîòöû
"$
	adda.l d1,a2
	move.l a2,(a1)
	move.w 300(a0),4(a1)
	clr.w 30(a0)
sr4:
	adda.l #length_voicedata,a0
	adda.l #$10,a1
	dbra d7,po8

	move.w #3,d7
	move.l voicedata_adr-data(a6),a0
pox:
	tst.b 20(a0)
	beq pox2
	move.l 4(a0),a1
	clr.w d0
	move.b 34(a1),d0
	lsr.b #1,d0
	beq pox4
	subq.b #1,d0
pox4
	lea 38(a0),a1
pox3
	move.l 128(a1),(a1)+
	dbra d0,pox3
pox2
	adda.l #length_voicedata,a0
	dbra d7,pox

	rts


effects:
	tst.b 20(a0)
	bmi eff5

	move.l 4(a0),a1			;Lautstärke ausrechnen
	move.
	bmi me2

	move.l 4(a0),a1

	move.w 18(a0),d0		;mega-effect ausrechnen
	move.l 18(a1),a2
	clr.l d1
	move.b (a2,d0),d1
	clr.w d4
	move.b 34(a1),d4
	lsl.b #1,d4
	subq.b #1,d4
	lea 166(a0),a2
	move.l 26(a1),a3
	move.l 30(a1),a4
	tst.b 35(a1)
	bne calc2
calc1:					;Effect 0 ( "Mega-effect" )
	move.b (a4)+,d2
	sub.b (a3),d2
	ext.w d2
	muls d1,d2
	asr.w #7,d2
	add.b (a3)+,d2

	move.b d2,(a2)+
	dbra d4,calc1
	bra me2


calc2:					;Effect 1 ( Audiomaster-Filter )
	cmpi.b #1,35(a1)
	bne calc7
	btst.b #1,20(a0)
	beq calc4
	movea.l a2,a3
calc4:
	bset.b #1,20(a0)
	cmpi.b #-1,d1
	beq calc5
	move.b (a3,d4.w),d3
	ext.w d3
	move.w #128,d0
	sub.b d1,d0
calc3:
	move.b (a3)+,d2
	sub.b d3,d2
	ext.w d2
	muls d0,d2
	asr.w #7,d2
	add.b d2,d3

	move.b d3,(a2)+
	dbra d4,calc3
	bra me2

calc5:					;Effect 1a ( Rauschen )
	move.w counter3(pc),d0
	lsl.w #4,d0
	add.b counter2(pc),d0
	lsl.w #3,d0
	add.b counter1(pc),d0
	move.w d0,d1
	rol.w #4,d1
	eor.w d1,d0
	rol.w #4,d1
	eor.w d1,d0
	rol.w #4,d1
	eor.w d1,d0
	eori.w #$f417,d0
	lsr.w #1,d4
calc6:
	mulu d0,d0
	lsr.l #8,d0
	eor.w #$ac91,d0
	move.w d0,(a2)+
	dbra d4,calc6
	bra.s me2

calc7:					;Effect 2 ( "C64-Effect" )
	cmpi.b #2,35(a1)
	bne calc10
	sub.w d1,d4
	adda.l d1,a3
	subq.w #1,d1
	bmi calc9
calc8:
	move.b (a4)+,(a2)+
	dbra d1,calc8

	tst.w d4
	bmi.s me2
calc9:
	move.b (a3)+,(a2)+
	dbra d4,calc9
	bra.s me2

calc10:					;Effect 3 ( Sonix-Phase )
	move.l #64*256,d0
*failsave:
	add.w #64,d1
*	beq.s failsave
	divu d1,d0			;d0=Steigung im ersten Abschnitt
	swap d0
	clr.w d0
	swap d0
	lsl.l #8,d0
	move.w d1,d2			;d2=Länge des ersten Abschnitts
	mulu d4,d2			;d3=Länge des zweiten Abschnitts
	lsr.w #7,d2			;d4=counter
	move.w d4,d3
	sub.w d2,d3
	clr.l d4
calc11:
	swap d4
	move.b (a3,d4.w),(a2)+
	swap d4
	add.l d0,d4
	dbra d2,calc11

	subq.w #1,d3
	bmi.s me2
	move.w #128,d0
	sub.w d1,d0
	move.l #64*256,d1
	divu d0,d1			;d1=Steigung im zweiten Abschnitt
	swap d1
	clr.w d1
	swap d1
	lsl.l #8,d1
calc12:
	swap d4
	move.b (a3,d4.w),(a2)+
	swap d4
	add.l d1,d4
	dbra d3,calc12
	bra.s me2

me2:
	addq.w #1,18(a0)		;Mega-effect-Zähler
	move.w 18(a0),d0
	cmp.w 22(a1),d0
	bne.s me3
	move.w 24(a1),18(a0)
me3:
	adda.l #length_voicedata,a0
	dbra d7,me1


	rts

c1 equ -72
cs1 equ -71
d1 equ -70
ds1 equ -69
e1 equ -68
f1 equ -67
fs1 equ -66
g1 equ -65
gs1 equ -64
a1 equ -63
as1 equ -62
h1 equ -61
c2 equ -60
cs2 equ -59
d2 equ -58
ds2 equ -57
e2 equ -56
f2 equ -55
fs2 equ -54
g2 equ -53
gs2 equ -52
a2 equ -51
as2 equ -50
h2 equ -49
c3 equ -48
cs3 equ -47
d3 equ -46
ds3 equ -45
e3 equ -44
f3 equ -43
fs3 equ -42
g3 equ -41
gs3 equ -40
a3 equ -39
as3 equ -38
h3 equ -37
c4 equ -36
cs4 equ -35
d4 equ -34
ds4 equ -33
e4 equ -32
f4 equ -31
fs4 equ -30
g4 equ -29
gs4 equ -28
a4 equ -27
as4 equ -26
h4 equ -25
c5 equ -24
cs5 equ -23
d5 equ -22
ds5 equ -21
e5 equ -20
f5 equ -19
fs5 equ -18
g5 equ -17
gs5 equ -16
a5 equ -15
as5 equ -14
h5 equ -13
c6 equ -12
cs6 equ -11
d6 equ -10
ds6 equ -9
e6 equ -8
f6 equ -7
fs6 equ -6
g6 equ -5
gs6 equ -4
a6 equ -3
as6 equ -2
h6 equ -1

data

noten_pro_pattern equ 16
length_voicedata equ 304

waittime equ $10
arp equ -100
freq equ -101
vol equ -102
vol2 equ -103
spd equ -104

dosname dc.b 'dos.library',0
 even
oldint ds.l 1
counter1 dc.b 5
counter2 dc.b -1				;Noten
speed dc.b 6
attack_zs ds.b 1
 even
counter3 dc.w 0				;Pat
voicedata_adr ds.l 1
rndnumber ds.w 1
rndnumber2 ds.w 1

	opt p-
******
instnames 
*	dc.b 'ram:bass2',0
*	dc.b 'ram:hihat2.x',0
 even
instlengths
*	dc.l 5506,2036
	dc.l 0
instadrs ds.l 10

noten
	dc.w 62,71,75,80,85,90,95,101,107,113,120,127
	dc.w 135,143,151,160,170,180,190,202,214,226,240,254
	dc.w 269,285,302,320,339,360,381,404,428,453,480,508
	dc.w 538,570,604,640,678,720,762,808,856,906,960,1016
	dc.w 1076,1140,1208,1280,1356,1440,1524,1616,1712,1812,1920,2032
	dc.w 2152,2280,2416,2560,2712,2880,3048,3232,3424,3624,3840,4064

instruments1
	dc.l huell5
	dc.w 4,3
	dc.l vib2
	dc.w 2,1,8000
	dc.l mega6
	dc.w 6,5
	dc.l instr6
	dc.l 0
	dc.b 16,1

	dc.l huell1
	dc.w 1,0
	dc.l vib2
	dc.w 2,1,8000
	dc.l mega5
	dc.w 3,2
	dc.l instr4
	dc.l 0
	dc.b 16,1

	dc.l huell1
	dc.w 1,0
	dc.l vib2
	dc.w 2,1,8000
	dc.l mega4
	dc.w 3,2
	dc.l instr4
	dc.l 0
	dc.b 16,1

	dc.l huell4
	dc.w 6,5
	dc.l vib2
	dc.w 3,2,8000
	dc.l mega3
	dc.w 4,2
	dc.l instr6
	dc.l 0
	dc.b 16,2

	dc.l huell1
	dc.w 6,5
	dc.l vib2
	dc.w 3,2,8000
	dc.l mega4
	dc.w 3,2
	dc.l instr4
	dc.l instr7
	dc.b 16,1

	dc.l huell3
	dc.w 6,5
	dc.l vib2
	dc.w 3,2,8000
	dc.l mega4
	dc.w 3,2
	dc.l instr6
	dc.l 0
	dc.b 16,1


	dc.l huell5
	dc.w 4,3
	dc.l vib2
	dc.w 2,1,8000
	dc.l mega7
	dc.w 6,5
	dc.l instr7
	dc.l 0
	dc.b 16,1

	dc.l huell5
	dc.w 4,3
	dc.l vib2
	dc.w 2,1,8000
	dc.l mega8
	dc.w 6,5
	dc.l instr7
	dc.l 0
	dc.b 16,1

	dc.l huell5
	dc.w 4,3
	dc.l vib2
	dc.w 2,1,8000
	dc.l mega9
	dc.w 6,5
	dc.l instr7
	dc.l 0
	dc.b 16,1

	dc.l huell5
	dc.w 4,3
	dc.l vib2
	dc.w 2,1,8000
	dc.l mega10
	dc.w 6,5
	dc.l instr7
	dc.l 0
	dc.b 16,1

instruments2
*	dc.l huell1
*	dc.w 1,0
*	dc.l vib1
*	dc.w 1,0,0
*	dc.l 0
*	dc.w 2753,0,1
*

	dc.l 0

patterns: 
	dc.l x2,x3,x6,x19
	dc.b 3,3,3,3
	dc.l x2,x4,x7,x20
	dc.b 3,3,3,3
	dc.l x2,x5,x1,x1
	dc.b 3,3,3,3
	dc.l x28,x1,x8,x21
	dc.b 3,3,3,3

	dc.l x2,x3,x1,x1
	dc.b 3,3,3,3
	dc.l x2,x4,x16,x26
	dc.b 3,3,3,3
	dc.l x2,x5,x17,x27
	dc.b 3,3,3,3
	dc.l x28,x1,x1,x1
	dc.b 3,3,3,3

	dc.l x2,x9,x12,x22
	dc.b -4,3,-9,-9
	dc.l x2,x10,x13,x23
	dc.b -1,3,-9,-9
	dc.l x2,x11,x12,x22
	dc.b 1,3,-9,-9
	dc.l x28,x1,x13,x23
	dc.b 3,3,-9,-9

	dc.l x2,x9,x12,x22
	dc.b -4,3,3,3
	dc.l x2,x10,x13,x23
	dc.b -1,3,3,3
	dc.l x2,x11,x14,x24
	dc.b 1,3,3,3
	dc.l x28,x1,x15,x25
	dc.b 3,3,3,3

	dc.l x2,x29,x33,x37
	dc.b 8,3,3,3
	dc.l x2,x30,x34,x38
	dc.b 8,3,3,3
	dc.l x2,x31,x35,x39
	dc.b 8,3,3,3
	dc.l x28,x32,x36,x40
	dc.b 8,3,3,3

	dc.l x2,x29,x33,x37
	dc.b 8,3,3,3
	dc.l x2,x30,x34,x38
	dc.b 8,3,3,3
	dc.l x2,x31,x35,x39
	dc.b 8,3,3,3
	dc.l x28,x32,x41,x42
	dc.b 8