;*******************************************************
;*
;*	WAVE-INTRO by HAEGAR / THRUST
;*
;*	startdate: 07/19/88		>ri
;*					>DATCR
;*	enddate:   07/19/88		>CRUNCH
;*
;*	SUNSETGLOW  1988 THRUST
;*
;*******************************************************

sound = $57800
fontram = $6d000
copperram = $7eb00
pic = $7a000
picr =	pic+1600
scrollfield = pic - 5000
scrollfieldend = scrollfield+4224
haus = $73000
trap:
	move.l #start,$80
	trap #0
	rts

start:
	move.w #$2700,sr
	movem.l d0-d7/a0-a6,-(sp)

;-------floppystop-------

	ori.b #$80,$bfd100
	ori.b #$8,$bfd100
	andi.b #$f7,$bfd100
	ori.b #$10,$bfd100
	andi.b #$ef,$bfd100

	jsr	s
	move.l	#sintab,a0
	move.l	#sintab_end,a1
	sub.l	a0,a1
	move.l	a1,d0
	move.w	d0,sintab_save
;------init haus
	move.l	#copperram,a0
	move.l	#newcopper,a1
	move.l	#bitplanes1,a2
	sub.l	a1,a2
	add.l	a2,a0
	move.l	a0,haus_copper_ram
	move.l	#copperram,a0
	move.l	#newcopper,a1
	move.l	#bitplanes,a2
	sub.l	a1,a2
	add.l	a2,a0
	move.l	a0,bitplanes_ram
	bsr copy_copper
	bsr	init_copperlist

move.l	#$73000+18,d0
move.w	#3,d1
move.l	haus_copper_ram,a0
loop_f:
swap	d0
	move.w	d0,2(a0)
swap	d0
	move.w	d0,6(a0)
add.l	#40,d0
add.l	#8,a0
dbra	d1,loop_f
	
	move.l	#copperram,a0
	move.l	#newcopper,a1
	move.l	#bitscroll,a2
	sub.l	a1,a2
	add.l	a2,a0
	move.l	a0,scroll_copper_ram

move.l	#scrollfield,d0
move.w	#2,d1
move.l	scroll_copper_ram,a0
loop_e:
swap	d0
	move.w	d0,2(a0)
swap	d0
	move.w	d0,6(a0)
add.l	#44,d0
add.l	#8,a0
dbra	d1,loop_e
	
	move.w #$80,$dff096
	move.l #copperram,$dff080
	clr.w $dff088
	move.w #$8080,$dff096


	bsr	mt_init
wait:
	cmp.b #$30,$dff006
	bne wait
	bsr	mt_newirq
	btst	#10,$dff016
	beq	mouse
	bsr	scroll_rout
mouse:
	bsr	write_line
	bsr	asr_init
	
	btst #6,$bfe001
	bne wait

end:
	move.w #15,$dff096	;sound aus
copperinit:
	move.l	4,a6
	move.l	#gfxname,a1
	jsr	-408(a6)
	move.l	d0,a1
	move.w #$80,$dff096
	move.l	38(a1),$dff080
	clr.w $dff088
	move.w #$8080,$dff096
	
	jsr	-414(a6)

	move.w #$8020,$dff096	;mouse an
	movem.l (a7)+,d0-d7/a0-a6
	move.w #$2000,sr
	rte

gfxname:	dc.b	"graphics.library",0
even
;********************************************************
;* waverout
;********************************************************

write_line:
	move.l	bitplanes_ram,a0
	move.l	#sintab,a1	;sintabelle
	add.w	#4,sintab_pointer	;erhoehe pointer
	move.w	sintab_save,d1
	move.w	sintab_pointer,d2	
	cmp.w	d1,d2
	ble	sintab_weiter
	move.w	#0,sintab_pointer
sintab_weiter:
	move.w	sintab_pointer,d0	;zeiger auf sintab
	
	move.l	#pic,d1		;bildadd
	move.w	#80,d4		;schleifen_zaehler
write_loop:
	moveq	#0,d2
	move.w	0(a1,d0.w),d2	;sin_nach d2
	tst.w	asr_
	bne	no_0
	moveq	#0,d2
no_0:
	move.w	#100,d6
	muls	asr_,d6
	add.w	#1000,d6
	divs	d6,d2
	mulu	#160,d2		;= zeile
	move.l	d1,d3	
	add.l	d2,d3		;zeile
	and.l	#$fffff,d3
	add.l	#4,a0		;offset copperlist to adresse bplpoin
move.w	#3,d7		;little_loop
l_loop:
	swap	d3
	move.w	d3,2(a0)
	swap	d3
	move.w	d3,6(a0)
	add.l	#40,d3
	add.l	#8,a0
	dbra	d7,l_loop
	add.w	#6,d0
	sub.l	a3,a3
	move.w	d0,a3
	add.l	#sintab,a3
	move.l	#sintab_end,a4
	cmp.l	a3,a4
	bge	weiter_d0
	moveq	#0,d0
	weiter_d0:

	add.l	#160,d1
	dbra	d4,write_loop
rts

;------copy_copper---------------------
clear_copper:
move.l #copperram,a0
clr_loop:
clr.l	(a0)+
cmp.l	#$7fff0,a0
ble	clr_loop
rts
copy_copper:
move.l #copperram,a0
move.l #newcopper,a1
move.l #copper_end,a2
copper_schleife:
move.l (a1)+,(a0)+
cmp.l a1,a2
bge copper_schleife
rts




;**************************************************
;*	asr_
;**************************************************

asr_init:
sub.w	#1,asr_time
tst.w	asr_time
beq	asr_weiter
rts
asr_weiter:
move.w	asr_time_save,asr_time
move.l	#asr_data,a0
add.l	asr_pointer,a0
move.w	(a0),asr_
add.l	#2,asr_pointer
move.l	#asr_dataend,d1
move.l	#asr_data,d0
add.l	asr_pointer,d0
cmp.l	d0,d1
ble	gleich
rts
gleich:
clr.l	asr_pointer
rts

;**************************************************
;*	init copperliste
;**************************************************

init_copperlist:
move.w	#80,d0		;schleifenzaehler
move.l	bitplanes_ram,a0
move.w	#$00e0,d1	;first bitplane
move.l	#pic,d3		;picadd
move.w	#$5307,d2	;wait_copper
init_copper_list:
	move.w	d1,d4		;save bitplaneadressedesti	

	move.w	d2,(a0)+	;write waitline
	move.w	#$fffe,(a0)+	;write waitmask
	move.w	d4,(a0)+	;first bitplane hi add
swap	d3
	move.w	d3,(a0)+	;and write high
add.w	#2,d4			;next adresse for bitplane
	move.w	d4,(a0)+	;and write
swap	d3
	move.w	d3,(a0)+	;write low

add.l	#40,d3			;next bitplane

add.w	#2,d4

	move.w	d4,(a0)+	;first bitplane hi add
swap	d3
	move.w	d3,(a0)+	;and write high
add.w	#2,d4			;next adresse for bitplane
	move.w	d4,(a0)+	;and write
swap	d3
	move.w	d3,(a0)+	;write low

add.l	#40,d3			;next bitplane

add.w	#2,d4

	move.w	d4,(a0)+	;first bitplane hi add
swap	d3
	move.w	d3,(a0)+	;and write high
add.w	#2,d4			;next adresse for bitplane
	move.w	d4,(a0)+	;and write
swap	d3
	mov&/ h

FV!BG W/>1!>\},AHqEAa <1$pn5\ө-  uW@"ou].r'R>8R_}
:`T3ur
  $`@G 5?Wqü0HH !W. pPY
[z_ x@H¿+W?-V~d"Hŋ@=B }? cϢ0
FX_!b`WB?I/}|@}CH:\]P̽	 @T?
TaGTGhB8w&/p.)B<<@m?*< "uU`PVxK9rGX DgH(H _<_H
 !:T{ *"(|4p?pD FB	U?*\=SXt#?`Ua
5<}"4ƾFEy C@؉ЇhW@}@C-fW ?yW,[>	Y:	8 ( Pj PU t70!h\_	 .~CFH .'GBAN%P>]#
#E 0?/?@ XB(uA\P<}+2\	xF
=E?DH~&

FnU:zCPR;O\I`
oq<Dŀ
AP #hmJ PB PGQuk0Jd@	HCQkXh:|_E_/$L񤀠t $_Qx ~tphz.WUAc P|r?_zPF4I	X'"+Wz1x1W@EB_AeT?\y@1?>
SQ8!AD T,`?ЎO.Ad`L(  X ɅZ\I> ]&U @ AX8
@ `ڀeQB5`/az@ T :Ճ~6=PyP-XpP#*Lhv
(X,(AV#2`f@  A5=  58$*T. \h:p@Bskp( 8+
pX@;تsp; ~CD0epD	? J?0g ;pP0;l & +upt˸(?\/PP;aQ 8*Kp@aD@!E(s
DȈx.>E8P0` 

 >4"06z~4d7l cz7 P= m?X,` 1`d.z \(uA\ k b60=kc_ }`ej  PO
L4X:x[: u5i"zLbx(d5YiA(Eih  !l x:j `H1TB@EWlr0 HP̔=%0 dwL.D_< *4ajS@~* \
( AAB|R :ӸӠ d
iq;@~B- P27JP?x8A
pW@ŀHx@ NޠqHWHÿ0J P=Y P- 1*̂$@.B @l zt@(Fd @OTB_ ,߂
^ŢxP@ PWB#`Q0z 
 9(`P@-21i8?@PW`{5p5 x 
  /⨺	#(dG>L@_OTd[#H>TiQA`0/Ƞp:o 1@v
RP= aE@DB͔'$_%# PP?jRe+RP7`a0+B파(<bU7[8B"Dh( 

_D?	xh(VN`o@(
  ҁ~@(0= V] Y#p	.T q @܉"$$<7
pR
-Ю
.@oz.(zK ʟ(®h {AB 	 qs T}A䨐g@Ëy2Q]@@. rVUP;`m@Za"i7  aV6P;`m*|2&~ 5
+X2C'2G E-@Nd (7(*  AAP0:x\,"D(($m8A@BA@APom-  ~W$6  01, P0;jP= mhB)x@(P:@? P5p@ -P8J  u pD8  /%c=O P
@P= RG	  }^
a d@$ @/@P@X! WHZAn5pP= Be b@ r``  %X   G%D  [     xNw$Gt,6&5<]\?@23ӑ"!"00b 	[9pKKPB |?l.Mwd$gU4,]>!cSCPBA]_LNDK	ﶦ`e,!nr`%eU-]Ss+WX>yx@e``fbV0vG=</}eIQQyuSg`<d9x9iHqAn֖j"{gc;7o_^>~Qʨqpz11 #3YʃJYAB@Muvtw-!6*:.5/<iwrF!Zpb[bW{[{GwP8r۳6и4T4삲Z.>fZr$h`o+Jn!qHYyy8Yh>O+#㓊{n>pi虙+H"th_b)`ʩq
+*ȉp1`!}>\l,Lu5WD%5t/m<̞RQM[@G]ADEdcsz;=t}qnfb||bbrjzv~qesghm{>K[O $Dd4,M\<=tE9h	_N7{+rrKgW(RZV.^.6F*b<tD0@׻w-gu._|@#Q1rrpq1PPb<^?JhI1ӍɀRFJXK zw9<45䴬w)o|aPs
K*jYXX˰c?.`6VΜL-WH޶<T$d|
f>#K;k3}u9ap/ۃx6tM/n T!>e5$o|{{a	Ɉ nC~M!<;+4&	##<p{CUiANffVvAYMKox8hY$յM,lLUΟ`hnv 01P!~_)En-M%%,ރb}~à1c@+29U[jj:fx@.^~Aa!NfRx K;rF6n>~"s\tp/'2;FW )yx鰠حMOGCAHE
y|{7m}D"fQ545TG#;>x'		!6*,(/Se^bHB=dNs|4"5 :;Q>wVFGǧR!))!*(%NpicD SÇ0Zs
r1PBV׷RS\^߽  acac!B~?_n.NWb~mwlFI]G_PS^PYMIOJD$͎V?/#=;W`(̜<||<dx@/';;{'W@8$Tl<bRҒb,d Ws˧_]ؽ~ A#eccbM)>1홾ʖѝװpy#@>,@AA~~=^ooH
U+#%%,>u)`A 1HɈ0  ?w:1&1[{3uy%5_`HĔt,,̌$舰  d JT\\T@C/ <P[۠}D%%!$#G=]ﬨڽzyo@(8<!@A ?_n-s{pcB#!g`0;Ni5m)N
Lh(8dHt"2,8?kU~rxPd<B{FkRbۇPpɩ蘙)Hq)ϥ	&##L_e1b CCSpJˊ<l޽	AFDC|8ۙH/6qq~|w7X79}txx8hhH zȃ )x`R1rJHI	ÿYX84uԤ(p@!an	ty;_XֶƚҜQYu]cK{Lĸ	,L](ba78q2Ӑb#""S+(Q"_#Swx ` ?O7g{ks=}3KkkS#퍵5  Ph	bba3# ~,|d+-RQCKY\C ezhs-5=' 9:,$$2>=?*z}xT\BRBB\TTXH@O9 4$gQQб8TEY	An X8{oOw'a4:9<_iѡ|4wn_=}C¡cP @55-Q5W///7?/]>MKMFO qb`c RX_W^+lb)9%U5uR*J2Ғ<l,L0ccc0K+ɀ?憚ʚƶ($L|J:F6TsAP';+#=8y̪3>\\\J{xzy<:^lkT2+JJrbb;7o?a)9d5	 ]mMuE9	1APtTdD8XX@$f-Gq2?172|vwsN\?5u#3{HXt,"bH)!.&*"$$ /V&z:*JrT4l]$AoND\>?_.Nvw47WI?%&o[ؾ{A#c~Dj+ˇde?qpIXD$AA
|;>;8|rr|ttpz ?`wZ`;Zj++[Wv>`Qp
J)(TTeExXh@o&%'&gg8[YXG"Q,.=}yٙɉcӲ{ƖwΞ~Hh!ߧI*6574566!""?a" #%!c*;><K}uUx=`^ =@w_ۄTVV7N.oݼC#`гq*i#߉t(*J	@"BB#~T%h1"?mNO,nC7ח'GsScC(@Ʀdf&%$ewϭ߾ Q1q	J+YZYYAZT@KxdL|@0.7ƺ*lRY_Z9?:~uswx7zG+WAS]SWX32pKJ'-[WH`@H3!(@˕D$T9I/:'g6O/ooώv7W[{;ۛ
*6`1 J2У$?BFICHGz3J[Y>?|?>  ӃwU%!3T98J^Y]KOBQ=Muyqa~. t#HIQ3@1$'kP?[:vN^>!,@Un=
EumcGׯHX$tl|J&V527?J lZRlx`7wdU5uN,o^=} ~<ߟcE#}-.X@"&H++j@'+%8< JA,"th?őΆʲᩥË0(8x8hيr ˋsrKGf/aoIH!'"ljf "'--#+,;\dp/-UE232J	minj|yv  x 	Jzz@VPQfdc3+(VFjb,p1??CBDF~;]jo,+,'[_X,88ET4uMߋdŅx8U~Qc^WgeV4vN-#	{uqzbx`gvOn0)yAk(?OOWGKDA!( caffaacgdH_cu9YY嵭{gt\"RR"<L$P?íɸtw5a&޾ҳqI)jhj@~@CLMHlc-%95=78zjB#'#&'Ey><?_Qzits
	58Q  MCSKDa_^P'@計Ov4UgkVwۼA!bQRL bp =-D*ˊh,TzF'?)#(@@#).",
~AHL-wՕggd?uxT 	%-59108,synbd,?_R>:@޽R3	I(C@Uf%<<\&1
^j-(m<yG%cggG+  >W&$4V¶vuwtLZVQEU]CMj%W>,1;ɞƊҚw@`ЊP100Ӓbenrd5UU5-]c3[`D<R&v^ xH+4 !(Qp _5)*l^9{ D 77'+%'8v槆O4IyU}IAXTl"
:>AQ	Xt))RRTPWbtGAN;+
rrZzFgWv!IOBF@A+}qzt`{|ne{h b&!$@4 "%DEy9+N@Iw;^TPPXZUP?>xCB( +O*"LDH@ũΖ⢢⒊ӛ8lB2V^aQqIi&x
NrDe%%DBK pz "@$9@pujd9kL%\\jHp! L*hmع'<T%yٙIPѻ]U Рꢖ|ÐQ;hjj;X8*hi)pУW
lqll^/`/?`.yq?rwYwssa|ihiej.g/ ,J
7Lƞ"tʺ\|$ xԬ,HHTdH0py:xy}|jnoii/iͮ()iXnY\Z?{z> =8yzGEUSSS԰4036QPPUa7ֻ66>0'(?>.nnǆ''Fjj:sۚzz[F7FiܠG .MMIz
ZnV:2"tR6A:8dARLf
b&9IV6n1aZ6&V*l,X4T:y =}{;$puQp /pk'3kKuyE5yYE]#}sgǏϟH(xx@ĄȰ$$HbVfr^>F:
22|\dH@ / [PP?0DDaP!AFB}}{Zؾ7inVMQ|~^BMM~pRhHwf1 =,.7$26 'ĸH%L;1
srrhCSұ2H#1# ] ?\/OA`?>#C'd%Dd`@>|Ay;@|yB[!:#g*:))uorf}cpe
(* .2&*/' 8373+yQqhx1pPon{&k_JMOBD,!ď
B}zpy]Sٜ^0_5:ٰ򾼇|J,GC"aύiϥe $'('KBDIEX$ _'ȀʖꎪܦǭhX
\$ZmNDv)&>y*<f8Dj"0{z(ώ L57w/m~#H_VFZIANK
muqodq|xafdt|r	rgd|woq~syj}NMA ?CFdGwn7F<>abᱰ!arp*32Rӓ3P  ¿}<vn766U-WWLlw7.W^xLxltpRp/44 ?w wg##+]/w>{x$#b b`eQ!dE'$CAE' ;!pA`a !! ppsyشv>#F4pp)x QI1_A?n.Ʈ?f6w/ׯly@alRZtBbfdTl88pg$ 7{<o}ޗN onuBDOFǈGCCKGE	 tsrOrOo踐 0䴤8,lttD2!9Yj(*+)+//lY][=z C$'p7#77%51=TQ   at_`4 2:6"8PU	J0:>.	&"&!1>)
,<<:80:wVֶ6֦n@!AQQpp0QHȐAPA~_ϮRAA؁ `y@Y?<	!S*X__1  O`rpȧo 嬵Tx  j  r J
@AA0Dr4?z>7,_`X<,8kA{8 f#   P@y8?\_8!Fv@.B ^]5N/כ.|oHp`X4)¸w́X\`4X#S-HP ϿX,H/؀X`!x[Te R}@_<J-Pp`{89p"6P~@~=?O py
wuz9zttH?<A~@kg_=8xhq08O~ ? 7e'U
*T(-4 R@9ev,|Y)HAĨT"  @ARQ\>{DGBD|..@`JB#k@ra> -	 "QG:P?w0|&|쒒?C(cCB^PxtQxrCzb@,T"UC -	n ;ۿۛ 'k(hGVVB0A ? 4v  @_r/2~	zv|s]VF@{tq@Nuwp@ F8?v& :8*
"?~ aʆOP`= Рx	w~77;''kN9wo|$☪`@>]B#a#|zc}fT̬'c񗦠&Т?? n.吢x^ǇuE~w	㉂Wy]|ȵ'(?| ,OL^CSГ0!\| ?#c@b	
  yHEEД
72R2q\Tt{ @5xx=x>(/r|F! ޾H/߄d  s8!@|&x@ЋxS*?:0:UV0V0
t~s|o@7pǷzjC=?xA@z| 