.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	wcol3,a2
		add.l	(_nmem).w,a2
		moveq	#4,d0
.m3		move.w	(a0)+,d1
		move.w	(a1)+,d6
		bsr	fade
		move.w	d6,(a2,d1.w)
		dbra	d0,.m3

		lea	wcol4,a2
		add.l	(_nmem).w,a2
		moveq	#6,d0
.m4		move.w	(a0)+,d1
		move.w	(a1)+,d6
		bsr	fade
		move.w	d6,(a2,d1.w)
		dbra	d0,.m4


		lea	wcol5,a2
		add.l	(_nmem).w,a2
		move.w	(a0)+,d1
		move.w	(a1)+,d6
		bsr	fade
		move.w	d6,(a2,d1.w)

		lea	wcol6,a2
		add.l	(_nmem).w,a2
		move.w	(a0)+,d1
		move.w	(a1)+,d6
		bsr	fade
		move.w	d6,(a2,d1.w)

		lea	watertab+22,a0
		add.l	(_nmem).w,a0
		moveq	#63,d0
.m5		move.w	#$008,d6
		bsr	fade
		move.w	d6,(a0)
		lea	32(a0),a0
		dbra	d0,.m5

		rts




fade		move.w	d6,d4
		lsr.w	#8,d4
		sub.w	d7,d4
		bpl.s	.c1
		moveq	#0,d4	
.c1		move.w	d6,d3
		lsr.w	#4,d3
		and.w	#$f,d3
		sub.w	d7,d3
		bpl.s	.c2
		moveq	#0,d3
.c2		and.w	#$f,d6
		sub.w	d7,d6
		bpl.s	.c3
		moveq	#0,d6
.c3		lsl.w	#4,d3
		or.w	d3,d6
		lsl.w	#8,d4
		or.w	d4,d6
		rts

setbgcols2	lea	d(pc),a5
		move.w	#64*64+1,d5
		waitblt
		move.l	#$ffffffff,$44(a6)
		move.l	#$0000003a,$64(a6)
		move.w	#$01b2,$74(a6)
		move.l	#$01f00000,$40(a6)
		move.l	#linejmptab+56,$54(a6)
		move.w	#64*140+1,$58(a6)
		waitblt
		move.l	#linejmptab+60*140+204*64+56,$54(a6)
		move.w	#64*144+1,$58(a6)
		waitblt
		move.w	#$00ca,$66(a6)
		move.l	#linejmptab+60*140+200,$54(a6)
		move.w	d5,$58(a6)
		waitblt

		move.l	ysoftabs-d(a5),d4
		move.l	d4,d1
		and.w	#$7,d4
		move.w	absypos-d(a5),d0
		addq.w	#8,d0
		move.w	d0,d6
		sub.w	d4,d0
		move.l	fgcoltab-d(a5),a0
		lea	normpalette+192-d(a5),a2
		lsr.l	#3,d1
		add.w	d1,d1
		move.w	#$019f,d3
		lea	(a2,d1.w),a2
		and.w	#$1f,d1
		add.w	#$0180,d1

		move.l	a2,a4
		sub.l	#$20,a4
		move.w	d1,d5
		lea	colors1,a3
		add.l	(_nmem).w,a3
		moveq	#15,d7
.l2		move.w	d5,(a3)+
		move.w	(a4)+,(a3)+
		addq.w	#2,d5
		and.w	d3,d5
		dbra	d7,.l2

		add.w	d6,d6
		add.w	d6,d6
		move.l	(a0,d6.w),a1
		move.w	d1,(a1)+
		move.w	(a2)+,(a1)+
		addq.w	#2,d1
		and.w	d3,d1
		
		addq.w	#8,d0
		add.w	d0,d0
		add.w	d0,d0
		lea	(a0,d0.w),a0
		moveq	#24,d7
.l1		move.l	(a0),a1
		move.w	d1,(a1)+
		move.w	(a2)+,(a1)+
		addq.w	#2,d1
		and.w	d3,d1
		lea	8*4(a0),a0
		dbra	d7,.l1
		
		rts
;------------------------------------------------
testbgpri	testbgpri_m
;------------------------------------------------
testfall	lea	d(pc),a5
		tst.w	deathflag-d(a5)
		bne	.fall
		tst.w	stepflag-d(a5)
		bne	.end
		tst.w	bobstand-d(a5)
		bne	.nofall3
		clr.w	crstandflag-d(a5)
		move.w	#-1,blktype-d(a5)
		tst.w	jumpflag-d(a5)
		bne	.end
		move.l	_xmem,a0
		add.l	ldatofs-d(a5),a0
		move.l	absmanxpos-d(a5),d0
		add.l	#15,d0
		move.l	d0,d1
		move.l	d0,d2
		lsr.l	#4,d0
		add.l	d0,d0
		add.l	#6,d1
		lsr.l	#4,d1
		add.l	d1,d1
		move.l	d2,d4
		addq.l	#3,d2
		lsr.l	#4,d2
		add.l	d2,d2
		lea	(a0,d2.l),a3
		lea	(a0,d1.l),a2
		lea	(a0,d0.l),a0
		move.l	absmanypos-d(a5),d0
		add.l	#64,d0
		move.l	d0,d1
		lsr.l	#4,d0
		mulu	#_levwidth,d0
		addq.l	#8,d1
		lsr.l	#4,d1
		mulu	#_levwidth,d1
		move.l	d1,d5
		lea	blocktab-d(a5),a4
;		move.l	d0,d2
;		add.l	#_levwidth,d2

		move.w	(a0,d0.l),d2
		and.w	#$3ff,d2
		cmp.b	#9,(a4,d2.w)
		beq	.halfstair
		cmp.b	#7,(a4,d2.w)
		beq	.halfstair

.testagain	move.w	(a2,d0.l),d2
		and.w	#$3ff,d2
		cmp.b	#9,(a4,d2.w)
		beq	.halfstair2
		cmp.b	#7,(a4,d2.w)
		beq	.halfstair2

.testagain2	move.w	(a0,d1.l),d2
		and.w	#$3ff,d2
		cmp.b	#8,(a4,d2.w)
		beq	.fullstair
		cmp.b	#6,(a4,d2.w)
		beq	.fullstair

.testagain3	move.w	(a2,d1.l),d2
		and.w	#$3ff,d2
		cmp.b	#8,(a4,d2.w)
		beq	.fullstair2
		cmp.b	#6,(a4,d2.w)
		beq	.fullstair2

.testagain4	tst.w	ouchflag-d(a5)
		bne	.contfall
		lea	(a3,d1.l),a3
		move.w	(a3),d2
		and.w	#$3ff,d2
		cmp.b	#4,(a4,d2.w)
		beq	.auer

.contfall	cmp.b	#3,(a4,d2.w)
		beq	.rough
		lea	(a0,d1.l),a3
		move.w	(a3),d2
		and.w	#$3ff,d2
		cmp.b	#19,(a4,d2.w)
		bpl.s	.ta2
		cmp.b	#13,(a4,d2.w)
		bpl	.rough2
.ta2		lea	(a2,d1.l),a3
		move.w	(a3),d2
		and.w	#$3ff,d2
		cmp.b	#19,(a4,d2.w)
		bpl.s	.ta1
		cmp.b	#13,(a4,d2.w)
		bpl	.rough2
.ta1		lea	(a0,d1.l),a1
		lea	(a0,d0.l),a0
		lea	(a2,d1.l),a3
		lea	(a2,d0.l),a2
		move.w	(a0),d2
		move.w	d2,d6
		and.w	#$fc00,d6
		and.w	#$3ff,d2
		move.w	(a1),d1
		move.w	d1,d5
		and.w	#$fc00,d5
		and.w	#$3ff,d1
		cmp.b	#1,(a