a5)
		bne.s	.end
		tst.w	textflag-d(a5)
		bne	.talkanim
		tst.w	boringflag-d(a5)
		beq.s	.c40
		move.l	boringanim-d(a5),d1
		bra.s	.c30
.c40		move.l	animadr-d(a5),d1
.c30		bsr	doanim
		
		tst.w	janimcount-d(a5)
		beq.s	.end
		subq.w	#1,janimcount-d(a5)
.end		rts

.ouch		tst.w	stauchflag-d(a5)
		bne.s	.stauch
		move.l	#83*928,d1
		tst.w	animdir-d(a5)
		beq.s	.c30
		move.l	#82*928,d1
		bra.s	.c30
		
.stauch		move.l	#26*928,d1
		tst.w	animdir-d(a5)
		beq.s	.c0001
		move.l	#27*928,d1
.c0001		cmp.w	#4,d0
		bmi.s	.c30
		cmp.w	#28,d0
		bpl.s	.c30
		add.l	#928*2,d1
		bra.s	.c30
		

.boatride	lea	.boattab(pc),a2
		move.w	boatanimpos-d(a5),d0
		move.l	(a2,d0.w),d1
		bsr	doanim
		move.w	#$10,priority-d(a5)
		rts
		
.boattab	dc.l	102*928,103*928,104*928,105*928,106*928,107*928

.turnanim	move.w	turncount-d(a5),d0
		add.w	d0,d0
		add.w	d0,d0
		lea	.turnanimtabl(pc),a0
		tst.w	animdir-d(a5)
		beq.s	.tc1
		lea	.turnanimtabr(pc),a0
.tc1		move.l	(a0,d0.w),d1
		bsr	doanim
		subq.w	#1,turnflag-d(a5)
		addq.w	#1,turncount-d(a5)
		rts

.talkanim	tst.w	basketflag-d(a5)
		beq.s	.abc1
		clr.w	priority-d(a5)
		lea	sprpri+2,a0
		add.l	(_nmem).w,a0
		clr.w	(a0)
.abc1		tst.w	turned-d(a5)
		bne	.end
		cmp.w	#1,textflag-d(a5)
		bne	.end
		move.l	#30*928,d1
		tst.w	talkflag-d(a5)
		beq.s	.end2
		addq.w	#1,talkcount-d(a5)
		cmp.w	#3,talkcount-d(a5)
		bne	.end
		clr.w	talkcount-d(a5)
		lea	rndtab-d(a5),a2
		move.w	rndseed-d(a5),d0
		addq.w	#1,rndseed-d(a5)
		and.w	#$ff,rndseed-d(a5)
		move.b	(a2,d0.w),d1
		and.w	#7,d1
		add.w	d1,d1
		add.w	d1,d1
		lea	.talktab(pc),a1
		move.l	(a1,d1.w),d1
.end2		bsr	doanim
		rts
		

.testpunch	tst.w	jumppunchflag-d(a5)
		bne.s	.c20
		tst.w	button-d(a5)
		beq.s	.c24
		tst.w	tboldbutt-d(a5)
		bne.s	.c20
		move.w	#1,tboldbutt-d(a5)
		move.w	#10,jumppunchflag-d(a5)
.c20		rts
.c24		clr.w	tboldbutt-d(a5)
		rts


.turnanimtabr	dc.l	25*928,73*928,73*928,74*928,74*928,75*928,75*928,76*928,76*928
		dcb.l	20,77*928
		dc.l	76*928,76*928,75*928,75*928,74*928,74*928,73*928,73*928,25*928

.turnanimtabl	dc.l	24*928,81*928,81*928,80*928,80*928,79*928,79*928,78*928,78*928
		dcb.l	20,77*928
		dc.l	78*928,78*928,79*928,79*928,80*928,80*928,81*928,81*928,24*928

.talktab	dc.l	30*928,70*928,71*928,72*928
		dc.l	30*928,70*928,71*928,30*928

.prtab		dc.l	928*66,928*66
		dc.l	928*68,928*68,928*68,928*68
		dc.l	928*66,928*66,928*66,928*66
.profs		dc.l	0,0,8,8,8,8,0,0,0,0
.pltab		dc.l	928*67,928*67
		dc.l	928*69,928*69,928*69,928*69
		dc.l	928*67,928*67,928*67,928*67
.plofs		dc.l	0,0,-8,-8,-8,-8,0,0,0,0
.collr		dc.w	80+20,18,80+20,18
		dc.w	80+32,16,80+32,16,80+32,16,80+32,16
		dc.w	80+20,18,80+20,18,80+20,18,80+20,18
.jcollr		dc.w	96+20,18,96+20,18
		dc.w	96+32,16,96+32,16,96+32,16,96+32,16
		dc.w	96+20,18,96+20,18,96+20,18,96+20,18
.colll		dc.w	112-20,18,112-20,18
		dc.w	112-32,16,112-32,16,112-32,16,112-32,16
		dc.w	112-20,18,112-20,18,112-20,18,112-20,18
;------------------------------------------------
doanim		move.l	_xmem,a0		;mananim
		add.l	#_manofs,a0
		add.l	d1,a0
		lea	_sprite,a1
		add.l	(_nmem).w,a1
		bsr	copyanim
		lea	d(pc),a5
		rts
;------------------------------------------------
setsun		move.w	#204+$2c,d1
		sub.w	absypos-d(a5),d1
		lea	sunpos,a0
		add.l	(_nmem).w,a0
		moveq	#0,d0
		move.w	d0,2(a0)
		move.w	d0,6(a0)
		move.w	d0,10(a0)
		move.w	d0,14(a0)
		move.w	sunxpos-d(a5),d0
		move.b	d0,3(a0)
		addq.w	#8,d0
		move.b	d0,11(a0)
		move.w	sunypos-d(a5),d0
		cmp.w	d1,d0
		bpl.s	.e1
		move.b	d0,2(a0)
		move.b	d0,10(a0)
		add.w	#31,d0
		cmp.w	d1,d0
		bmi.s	.c1
		move.w	d1,d0
.c1		move.b	d0,6(a0)
		move.b	d0,14(a0)
.e1		rts
;------------------------------------------------
setwaveanim	setwaveanim_m
;------------------------------------------------
setwaveanim2	setwaveanim2_m
;------------------------------------------------
setwavespr	setwavespr_m

setwaves	setwaves_m
;------------------------------------------------
setwater	setwater_m
;------------------------------------------------
getbutton	getbutton_m
;------------------------------------------------
setybgnd	moveq	#0,d6
		move.l	oldwavepos-d(a5),d2
		beq.s	.c3
		move.l	d2,a1
		move.l	oldwavedata-d(a5),(a1)+
		move.l	oldwavedata+4-d(a5),(a1)+
		move.l	oldwavedata+8-d(a5),(a1)
		move.l	d6,oldwavepos-d(a5)
.c3		move.l	oldwaterpos-d(a5),d2
		beq.s	.c2
		move.l	d2,a1
		move.l	oldwaterdata-d(a5),(a1)+
		move.l	oldwaterdata+4-d(a5),(a1)+
		move.l	oldwaterdata+8-d(a5),(a1)
		move.l	d6,oldwaterpos-d(a5)
.c2		move.l	oldpos-d(a5),a1
		move.l	oldval-d(a5),(a1)+
		move.l	oldval+4-d(a5),(a1)+
		move.l	oldval+8-d(a5),(a1)
		moveq	#0,d0
		move.w	ysoftabs+2-d(a5),d0
		lsr.w	#3,d0
		sub.w	#64,d0
		bpl.s	.c01
		moveq	#0,d0
.c01		cmp.w	#132,d0
		bmi.s	.c1
		move.w	#132,d0
.c1		move.w	d0,absypos-d(a5)
		move.l	multab60-d(a5),a1
		move.w	d0,d2
		add.w	d2,d2
		add.w	d2,d2
		move.l	(a1,d2.w),d2
		move.l	d2,a0
		move.l	(_nmem).w,d5
		add.l	#linejmptab,d2
		add.l	d5,d2
		lea	linejmppos+2,a4
		add.l	d5,a4
		move.w	d2,4(a4)
		swap	d2
		move.w	d2,(a4)
		swap	d2
		lea	linejmptab+140*60+64*204+1*60(a0),a0
		add.l	d5,a0
		move.l	a0,oldpos-d(a5)
		lea	3*60(a0),a0
		
		move.w	#140,d1
		sub.w	d0,d1
		lsl.w	#6,d1
		addq.w	#1,d1
		moveq	#-1,d4
		waitblt
		move.l	#$ffffffff,$44(a6)
		move.l	#$09f00000,$40(a6)
		move.l	#$0000003a,$64(a6)
		move.l	ce1tab-d(a5),$50(a6)
		move.l	d2,$54(a6)
		move.w	d1,$58(a6)
		add.l	#40,d2

		moveq	#4,d4
		add.w	d0,d4
		lsl.w	#6,d4
		addq.w	#1,d4

		waitblt
		move.l	c49tab-d(a5),$50(a6)
		move.l	d2,$54(a6)
		move.w	d1,$58(a6)
		addq.l	#8,d2
		waitblt
		move.l	cd5tab-d(a5),$50(a6)
		move.l	d2,$54(a6)
		move.w	d1,$58(a6)
		
		move.l	#204,d1
		sub.l	d0,d1
		add.l	d1,d1
		move.l	d1,d3
		add.l	ce1tab-d(a5),d1
		waitblt
		move.l	d1,$50(a6)
		move.l	#linejmptab+140*60+64*204,d2
		add.l	d5,d2
		move.l	d2,$54(a6)
		move.w	d4,$58(a6)
		move.l	d3,d1
		add.l	c49tab-d(a5),d1
		waitblt
		move.l	d1,$50(a6)
		move.l	#linejmptab+140*60+64*204+40,d2
		add.l	d5,d2
		move.l	d2,$54(a6)
		move.w	d4,$58(a6)
		add.l	cd5tab-d(a5),d3
		waitblt
		move.l	d3,$50(a6)
		move.l	#linejmptab+140*60+64*204+48,d2
		add.l	d5,d2
		move.l	d2,$54(a6)
		move.w	d4,$58(a6)
		
		move.l	#140,d1
		sub.l	d0,d1
		add.l	d1,d1
		move.l	d1,d3
		add.l	ce1tab-d(a5),d1
		waitblt
		move.w	#$00ca,$66(a6)
		move.l	d1,$50(a6)
		move.l	#linejmptab+140*60,d2
		add.l	d5,d2
		move.l	d2,$54(a6)
		move.w	#64*64+1,$58(a6)
		add.l	c45tab-d(a5),d3
		waitblt
		move.l	d3,$50(a6)
		move.l	#linejmptab+140*60+48,d2
		add.l	d5,d2
		move.l	d2,$54(a6)
		move.w	#64*64+1,$58(a6)
		
		tst.w	nocopflag-d(a5)
		beq	.end
		
		move.l	(_nmem).w,d5
		lea	linejmppos+2,a0
		add.l	d5,a0
		move.l	#nobgcopper,d0
		add.l	d5,d0
		move.w	d0,4(a0)
		swap	d0
		move.w	d0,(a0)
		
		lea	nobgjmp+2,a0
		add.l	d5,a0
		move.l	#linejmpcont,d0
		add.l	d5,d0
		move.w	d0,4(a0)
		swap	d0
		move.w	d0,(a0)
.end		rts

setybgnd2	lea	oldval-d(a5),a4
		move.l	oldpos-d(a5),a0
		movem.l	(a0),d0-d2
		movem.l	d0-d2,(a4)
		move.l	#linejmpcont,d1
		add.l	(_nmem).w,d1
		swap	d1
		move.w	#$0084,(a0)+
		move.w	d1,(a0)+
		swap	d1
		move.w	#$0086,(a0)+
		move.w	d1,(a0)+
		move.l	#$008a0000,(a0)+
		rts
;------------------------------------------------
setplanes	setplanes_m
;------------------------------------------------
chgplanes	chgplanes_m
;------------------------------------------------
setbgcols	lea	d(pc),a5
		lea	_skycols1,a0
		tst.w	colintflag-d(a5)
		bne.s	.c1
		tst.w	scolcount-d(a5)
		beq.s	.c1
		lea	_skycols2,a0
.c1		move.w	#64*64+1,d5
		add.l	(_nmem).w,a0
		
		moveq	#0,d0
		move.w	absypos-d(a5),d0
		move.w	d0,d1
		move.l	multab60-d(a5),a1
		add.w	d1,d1
		add.w	d1,d1
		move.l	(a1,d1.w),d1
		add.l	colpos-d(a5),d1
		move.w	#140,d2
		sub.w	d0,d2
		lsl.w	#6,d2
		addq.w	#1,d2
		move.w	absypos-d(a5),d4
		and.w	#$fffe,d4
		lea	(a0,d4.w),a2
		waitblt
		move.l	#$ffffffff,$44(a6)
		move.l	#$0000003a,$64(a6)
		move.l	#$09f00000,$40(a6)
		move.l	a2,$50(a6)
		move.l	d1,$54(a6)
		move.w	d2,$58(a6)
		
		move.w	#140,d3
		sub.w	d0,d3
		add.w	d3,d3
		lea	(a2,d3.w),a1
		waitblt
		move.w	#$00ca,$66(a6)
		move.l	a1,$50(a6)
		move.l	colpos+4-d(a5),$54(a6)
		move.w	d5,$58(a6)
		lea	408(a0),a1
		waitblt
		move.l	a1,$50(a6)
		move.l	colpos+8-d(a5),$54(a6)
		move.w	d5,$58(a6)

		moveq	#4,d2
		add.w	d0,d2
		lsl.w	#6,d2
		addq.w	#1,d2
		lea	536(a0),a1
		waitblt
		move.w	#$003a,$66(a6)
		move.l	a1,$50(a6)
		move.l	colpos+12-d(a5),$54(a6)
		move.w	d2,$58(a6)

		eor.w	#1,scolcount-d(a5)
		rts

setbgcolsii	lea	d(pc),a5
		lea	_skycols1,a0
		tst.w	colintflag-d(a5)
		bne.s	.c1
		tst.w	scolcount-d(a5)
		beq.s	.c1
		lea	_skycols2,a0
.c1		add.l	(_nmem).w,a0
;		move.w	#64*64+1,d5
		
		move.w	intensity-d(a5),d7
		moveq	#0,d0
		move.w	absypos-d(a5),d0
		move.w	d0,d1
		move.l	multab60-d(a5),a1
		add.w	d1,d1
		add.w	d1,d1
		move.l	(a1,d1.w),d1
		add.l	colpos-d(a5),d1
		move.w	#140,d2
		sub.w	d0,d2
		subq.w	#1,d2
		move.w	absypos-d(a5),d4
		and.w	#$fffe,d4
		lea	(a0,d4.w),a2
		
		movem.l	d2/a2,-(a7)
		move.l	d1,a3
.al1		move.w	(a2)+,d6
		bsr	fade
		move.w	d6,(a3)+
		lea	$3a(a3),a3
		dbra	d2,.al1
		movem.l	(a7)+,d2/a2
		
		move.w	#140,d3
		sub.w	d0,d3
		add.w	d3,d3
		lea	(a2,d3.w),a1
		
		moveq	#63,d5
		move.l	colpos+4-d(a5),a3
.al2		move.w	(a1)+,d6
		bsr	fade
		move.w	d6,(a3)+
		lea	$ca(a3),a3
		dbra	d5,.al2
		
		lea	408(a0),a1
		moveq	#63,d5
		move.l	colpos+8-d(a5),a3
.al3		move.w	(a1)+,d6
		bsr	fade
		move.w	d6,(a3)+
		lea	$ca(a3),a3
		dbra	d5,.al3

		moveq	#4,d2
		add.w	d0,d2
		subq.w	#1,d2
		lea	536(a0),a1

		move.l	colpos+12-d(a5),a3
.al4		move.w	(a1)+,d6
		bsr	fade
		move.w	d6,(a3)+
		lea	$3a(a3),a3
		dbra	d2,.al4

		lea	colors1+2,a0
		add.l	(_nmem).w,a0
		lea	lgraph+2,a1
		add.l	(_nmem).w,a1
		moveq	#30,d0
.l3		move.w	(a1)+,d6
		bsr	fade
		move.w	d6,(a0)+
		addq.w	#2,a0
		dbra	d0,.l3

		lea	sprcoltab-d(a5),a0
		lea	sprcols+2,a1
		add.l	(_nmem).w,a1
		moveq	#14,d0
.l1		move.w	(a0)+,d6
		bsr	fade
		move.w	d6,(a1)+
		addq.w	#2,a1
		dbra	d0,.l1

		eor.w	#1,scolcount-d(a5)
		rts


cols3		lea	d(pc),a5
		move.w	intensity-d(a5),d7
		lea	watercoltab-d(a5),a1
		lea	waterofstab-d(a5),a0
		lea	wcol1,a2
		add.l	(_nmem).w,a2
		moveq	#11,d0
.m1		move.w	(a0)+,d1
		move.w	(a1)+,d6
		bsr	fade
		move.w	d6,(a2,d1.w)
		dbra	d0,.m1

		lea	wcol2,a2
		add.l	(_nmem).w,a2
		moveq	#3,d0
.m2		move.w	(a0)+,d1
		move.w	(a1)+,d6
		bsr	fade
		move.w	d6,(a2,d1.w)
		dbra	d0,.m2

		lea	wco