a5)
		rts
		
.ccyrcheck	moveq	#24,d0
		moveq	#64,d1
		bsr	calcblockno
		
		move.w	(a0),d2
		move.w	#$fc00,d6
		move.w	#$e800,d5
		and.w	d6,d2
		cmp.w	d5,d2
		beq	.ccyend
		move.w	-_levwidth(a0),d2
		and.w	d6,d2
		cmp.w	d5,d2
		beq	.ccyend
		move.w	-_levwidth*2(a0),d2
		and.w	d6,d2
		cmp.w	d5,d2
		beq	.ccyend

;		cmp.b	#10,d0
;		beq	.ccyend
;		move.w	-_levwidth(a0),d2
;		and.w	#$3ff,d2
;		move.b	(a4,d2.w),d0
;		cmp.b	#10,d0
;		beq	.ccyend
;		move.w	-_levwidth*2(a0),d2
;		and.w	#$3ff,d2
;		move.b	(a4,d2.w),d0
;		cmp.b	#10,d0
;		beq	.ccyend

		bra	.ccydo

.ccyend		clr.l	manxspeed-d(a5)
.end		rts

.ccy2		move.w	#48,sxruncount-d(a5)
		rts
		
.ccyr		clr.w	sxruncount-d(a5)
		bra	.ccy

.spd		move.w	blktype-d(a5),d0
		tst.l	manxspeed-d(a5)
		beq.s	.ccy2
		bpl.s	.spdr
		cmp.w	#2,d0
		beq.s	.lslow
		cmp.w	#3,d0
		bne.s	.ccyr
		lea	sxruntab2-d(a5),a0
		move.w	sxruncount-d(a5),d0
		addq.w	#1,sxruncount-d(a5)
		cmp.w	#48,sxruncount-d(a5)
		bmi.s	.lcont
		move.w	#46,sxruncount-d(a5)
		bra.s	.lcont
		
.lslow		lea	sxruntab-d(a5),a0
		move.w	sxruncount-d(a5),d0
		addq.w	#1,sxruncount-d(a5)
		cmp.w	#48,sxruncount-d(a5)
		bmi.s	.lcont
		move.w	#46,sxruncount-d(a5)

.lcont		tst.w	stepstandflag-d(a5)
		bne	.end
		moveq	#0,d1
		move.b	(a0,d0.w),d1
		sub.w	d1,agamanxpos-d(a5)
		sub.l	d1,agaabsmanxpos-d(a5)
		rts

.spdr		cmp.w	#0,d0
		beq.s	.rslow
		cmp.w	#1,d0
		bne	.ccyr
		lea	sxruntab2-d(a5),a0
		move.w	sxruncount-d(a5),d0
		addq.w	#1,sxruncount-d(a5)
		cmp.w	#48,sxruncount-d(a5)
		bmi.s	.rcont
		move.w	#46,sxruncount-d(a5)
		bra.s	.rcont

.rslow		lea	sxruntab-d(a5),a0
		move.w	sxruncount-d(a5),d0
		addq.w	#1,sxruncount-d(a5)
		cmp.w	#48,sxruncount-d(a5)
		bmi.s	.rcont
		move.w	#46,sxruncount-d(a5)

.rcont		tst.w	stepstandflag-d(a5)
		bne	.end
		moveq	#0,d1
		move.b	(a0,d0.w),d1
		add.w	d1,agamanxpos-d(a5)
		add.l	d1,agaabsmanxpos-d(a5)
		rts

.mid		tst.w	duckpos-d(a5)
		bne.s	.mid2
		move.l	#42*928,d0
		tst.w	animdir-d(a5)
		bne.s	.mc1
		move.l	#43*928,d0
.mc1		move.l	d0,animadr-d(a5)
		subq.w	#1,punchcount2-d(a5)
		rts

.mid2		move.l	#52*928,d0
		tst.w	animdir-d(a5)
		bne.s	.mc2
		move.l	#53*928,d0
.mc2		move.l	d0,animadr-d(a5)
		subq.w	#1,punchcount2-d(a5)
		rts

.sxca2		moveq	#1,d1
		bra	.sxc4

.left		tst.w	jumpflag-d(a5)
		bne.s	.leftcont1
		tst.w	fallflag-d(a5)
		beq	.stepleft
.leftcont1	clr.w	stepstandflag-d(a5)
		moveq	#8,d0
		moveq	#64,d1
		bsr	calcblockno
		move.w	(a0),d2
		move.w	#$fc00,d6
		move.w	#$e800,d5
		and.w	d6,d2
		cmp.w	d5,d2
		beq	.sxca2
		move.w	-_levwidth(a0),d2
		and.w	d6,d2
		cmp.w	d5,d2
		beq	.sxca2
		move.w	-_levwidth*2(a0),d2
		and.w	d6,d2
		cmp.w	d5,d2
		beq	.sxca2
		
;		cmp.b	#10,d0
;		beq	.sxca2
;		move.w	-_levwidth(a0),d2
;		and.w	#$3ff,d2
;		move.b	(a4,d2.w),d0
;		cmp.b	#10,d0
;		beq	.sxca2
;		move.w	-_levwidth*2(a0),d2
;		and.w	#$3ff,d2
;		move.b	(a4,d2.w),d0
;		cmp.b	#10,d0
;		beq	.sxca2


		clr.w	animdir-d(a5)
		tst.w	jumpflag-d(a5)
		bne.s	.lc3
		tst.w	fallflag-d(a5)
		beq	.lc2
		cmp.l	#-8,manxspeed-d(a5)
		beq.s	.lc9
		subq.l	#1,manxspeed-d(a5)

.lc9		move.l	animposs+44-d(a5),animadr-d(a5)
		move.w	#1,animstand-d(a5)
		bra	.checky

.lc3		cmp.l	#-8,manxspeed-d(a5)
		beq.s	.lc7
		subq.l	#1,manxspeed-d(a5)

.lc7		move.w	#1,animstand-d(a5)
		tst.w	janimcount-d(a5)
		bne.s	.lc10
		move.l	animposs+40-d(a5),animadr-d(a5)
		bra	.checky
.lc10		move.l	animposs+36-d(a5),animadr-d(a5)
		bra	.checky

.lc2		cmp.l	#-8,manxspeed-d(a5)
		beq.s	.lc4
		subq.l	#1,manxspeed-d(a5)
		cmp.l	#-8,manxspeed-d(a5)
		beq.s	.lc4
		subq.l	#1,manxspeed-d(a5)

.lc4		move.w	#1,animstand-d(a5)
		cmp.w	#3,lrphase-d(a5)
		beq.s	.lc11
		cmp.w	#2,lrphase-d(a5)
		beq.s	.lc12
		cmp.w	#1,lrphase-d(a5)
		beq.s	.lc22
		move.l	animadr-d(a5),d0
		cmp.l	animposs-d(a5),d0
		beq.s	.lc23
		cmp.l	animposrs-d(a5),d0
		bne.s	.lc22
.lc23		move.l	animposfrnt-d(a5),animadr-d(a5)
		bra.s	.lc13
.lc22		move.l	animposs+12-d(a5),animadr-d(a5)
		bra.s	.lc13
.lc24		addq.w	#1,lrphase-d(a5)
.lc12		move.l	animposrs+4-d(a5),animadr-d(a5)
.lc13		subq.w	#1,lrcount-d(a5)
		bne	.checky
		move.w	#2,lrcount-d(a5)
		addq.w	#1,lrphase-d(a5)
		bra	.checky

.lc11		lea	animposl-d(a5),a0
		bsr	.domananim
		bra	.checky
		
.stepleft	move.w	d0,d7
		moveq	#18,d0
		moveq	#72,d1
		bsr	calcblockno
		move.w	d0,d6
		tst.b	d0
		beq	.leftcont1
		cmp.b	#13,d0
		bpl	.leftcont1
;		cmp.b	#6,d0
;		bmi	.leftcont1
;		cmp.b	#10,d0
;		bpl	.leftcont1
		
		cmp.b	#1,d0
		beq.s	.slc2
		
		cmp.b	#4,d0
		beq	.leftcont1
		
		cmp.b	#8,d0
		beq.s	.slc1
		cmp.b	#6,d0
		beq.s	.slc1

		moveq	#2,d0
		moveq	#64,d1
		bsr	calcblockno
		cmp.b	#8,d0
		beq	.slup2
		cmp.b	#1,d0
		beq	.slup2
		bsr	.teststeps
		move.w	#1,stepstandflag-d(a5)
		move.w	#1,stepdir-d(a5)
		move.w	#-8,stepflag-d(a5)
		clr.w	animcount-d(a5)
		bsr	.setstepl
		bra	.dostepl

.slup2		move.w	#-1,stepdir-d(a5)
		bsr	.teststeps
		move.w	#1,stepstandflag-d(a5)
		move.w	#-8,stepflag-d(a5)
		clr.w	animcount-d(a5)
		bsr	.setstepl
		bra	.dostepl
		
.slc2		cmp.w	#$0200,d7
		bne	.leftcont1

.slc1		moveq	#2,d0
		moveq	#56,d1
		bsr	calcblockno
		cmp.b	#9,d0
		beq	.slup
		
		move.w	_levwidth(a0),d2
		and.w	#$3ff,d2
		cmp.b	#7,(a4,d2.w)
		beq.s	.slc3
		cmp.b	#9,(a4,d2.w)
		bne	.leftcont1
		
.slc3		bsr	.teststeps
		move.w	#1,stepstandflag-d(a5)
		move.w	#1,stepdir-d(a5)
		move.w	#-8,stepflag-d(a5)
		clr.w	animcount-d(a5)
		bsr	.setstepl
		bra	.dostepl

.slup		cmp.b	#1,d6
		bne.s	.slup3
		move.w	#1,novertmove-d(a5)
.slup3		move.w	#-1,stepdir-d(a5)
		bsr	.teststeps
		move.w	#1,stepstandflag-d(a5)
		move.w	#-8,stepflag-d(a5)
		clr.w	animcount-d(a5)
		bsr	.setstepl
		bra	.dostepl

		
		
.right		tst.w	jumpflag-d(a5)
		bne.s	.rightcont1
		tst.w	fallflag-d(a5)
		beq	.stepright
.rightcont1	clr.w	stepstandflag-d(a5)
		moveq	#32,d0
		moveq	#64,d1
		bsr	calcblockno
		move.w	(a0),d2
		move.w	#$fc00,d6
		move.w	#$e800,d5
		and.w	d6,d2
		cmp.w	d5,d2
		beq	.sxca2
		move.w	-_levwidth(a0),d2
		and.w	d6,d2
		cmp.w	d5,d2
		beq	.sxca2
		move.w	-_levwidth*2(a0),d2
		and.w	d6,d2
		cmp.w	d5,d2
		beq	.sxca2

;		cmp.b	#10,d0
;		beq	.sxca2
;		move.w	-_levwidth(a0),d2
;		and.w	#$3ff,d2
;		move.b	(a4,d2.w),d0
;		cmp.b	#10,d0
;		beq	.sxca2
;		move.w	-_levwidth*2(a0),d2
;		and.w	#$3ff,d2
;		move.b	(a4,d2.w),d0
;		cmp.b	#10,d0
;		beq	.sxca2

		move.w	#1,animdir-d(a5)
		tst.w	jumpflag-d(a5)
		bne.s	.rc3
		tst.w	fallflag-d(a5)
		beq	.rc2
		cmp.l	#8,manxspeed-d(a5)
		beq.s	.rc9
		addq.l	#1,manxspeed-d(a5)

.rc9		move.l	animposs+32-d(a5),animadr-d(a5)
		move.w	#1,animstand-d(a5)
		bra	.checky

.rc3		cmp.l	#8,manxspeed-d(a5)
		beq.s	.rc7
		addq.l	#1,manxspeed-d(a5)

.rc7		move.w	#1,animstand-d(a5)
		tst.w	janimcount-d(a5)
		bne.s	.rc10
		move.l	animposs+28-d(a5),animadr-d(a5)
		bra	.checky
.rc10		move.l	animposs+24-d(a5),animadr-d(a5)
		bra	.checky

.rc2		cmp.l	#8,manxspeed-d(a5)
		beq.s	.rc4
		addq.l	#1,manxspeed-d(a5)
		cmp.l	#8,manxspeed-d(a5)
		beq.s	.rc4
		addq.l	#1,manxspeed-d(a5)

.rc4		move.w	#1,animstand-d(a5)
		cmp.w	#3,lrphase-d(a5)
		beq.s	.rc11
		cmp.w	#2,lrphase-d(a5)
		beq.s	.rc12
		cmp.w	#1,lrphase-d(a5)
		beq.s	.rc22
		move.l	animadr-d(a5),d0
	 	cmp.l	animposs+12-d(a5),d0
		beq.s	.rc23
		cmp.l	animposrs+4-d(a5),d0
		bne.s	.rc22
.rc23		move.l	animposfrnt-d(a5),animadr-d(a5)
		bra.s	.rc13
.rc22		move.l	animposs-d(a5),animadr-d(a5)
		bra.s	.rc13
.rc24		addq.w	#1,lrphase-d(a5)
.rc12		move.l	animposrs-d(a5),animadr-d(a5)
.rc13		subq.w	#1,lrcount-d(a5)
		bne	.checky
		move.w	#2,lrcount-d(a5)
		addq.w	#1,lrphase-d(a5)
		bra	.checky

.rc11		lea	animposr-d(a5),a0
		bsr	.domananim
		bra	.checky
		
.stepright	move.w	d0,d7
		moveq	#18,d0
		moveq	#72,d1
		bsr	calcblockno
		move.w	d0,d6
		tst.b	d0
		beq	.rightcont1
		cmp.b	#13,d0
		bpl	.rightcont1
;		cmp.b	#6,d0
;		bmi	.rightcont1
;		cmp.b	#10,d0
;		bpl	.rightcont1

		cmp.b	#1,d0
		beq.s	.src2

		cmp.b	#4,d0
		beq	.rightcont1

		cmp.b	#8,d0
		beq.s	.src1
		cmp.b	#6,d0
		beq.s	.src1

;		tst.w	stepstandflag-d(a5)
;		beq.s	.src1
;		cmp.w	#6,stepstandflag-d(a5)
;		beq.s	.src1

		moveq	#34,d0
		moveq	#64,d1
		bsr	calcblockno
		cmp.b	#6,d0
		beq	.srup2
		cmp.b	#1,d0
		beq	.srup2
		bsr	.teststeps
		move.w	#1,stepstandflag-d(a5)
		move.w	#1,stepdir-d(a5)
		move.w	#8,stepflag-d(a5)
		bsr	.setstepr
		bra	.dostepr

.srup2		move.w	#-1,stepdir-d(a5)
		bsr	.teststeps
		move.w	#1,stepstandflag-d(a5)
		move.w	#8,stepflag-d(a5)
		bsr	.setstepr
		bra	.dostepr

.src2		cmp.w	#$0103,d7
		bne	.rightcont1

.src1		moveq	#34,d0
		moveq	#56,d1
		bsr	calcblockno
		cmp.b	#7,d0
		beq	.srup
		move.w	_levwidth(a0),d2
		and.w	#$3ff,d2
		cmp.b	#9,(a4,d2.w)
		beq.s	.src3
		cmp.b	#7,(a4,d2.w)
		bne	.rightcont1
.src3		bsr	.teststeps
		move.w	#1,stepstandflag-d(a5)
		move.w	#1,stepdir-d(a5)
		move.w	#8,stepflag-d(a5)
		bsr	.setstepr
		bra	.dostepr

.srup		cmp.b	#1,d6
		bne.s	.srup3
		move.w	#1,novertmove-d(a5)
.srup3		move.w	#-1,stepdir-d(a5)
		bsr	.teststeps
		move.w	#1,stepstandflag-d(a5)
		move.w	#8,stepflag-d(a5)
		bsr	.setstepr
		bra	.dostepr

.setstepl	moveq	#0,d2
		move.l	agaabsmanxpos-d(a5),d0
		addq.l	#8,d0
		and.w	#$3f,d0
		sub.w	#$20,d0
		bmi.s	.sslend
		lsr.w	#3,d0
		move.w	d0,d2
.sslend		move.w	d2,stepcount-d(a5)
		rts

.teststeps	tst.w	stepstandflag-d(a5)
		bne.s	.tsend
		clr.w	animcount-d(a5)
.tsend		rts
		
.dostepl	tst.w	stepcount-d(a5)
		beq.s	.dostepl2
		subq.w	#1,stepcount-d(a5)
		bra.s	.dostepl3
		
.dostepl2	move.w	stepdir-d(a5),d0
		ext.l	d0
		add.l	d0,absmanypos-d(a5)
		add.w	d0,manypos-d(a5)
		addq.w	#1,stepflag-d(a5)
.dostepl3	subq.w	#8,agamanxpos-d(a5)
		subq.l	#8,agaabsmanxpos-d(a5)
		move.l	#-8,manxspeed-d(a5)
		clr.w	animdir-d(a5)
		move.w	#3,lrphase-d(a5)
		lea	animposl-d(a5),a0
		bsr	.domananim
		rts
		
.setstepr	moveq	#0,d2
		move.l	agaabsmanxpos-d(a5),d0
		addq.l	#8,d0
		and.w	#$3f,d0
		moveq	#$20,d1
		sub.w	d0,d1
		bmi.s	.ssrend
		lsr.w	#3,d1
		move.w	d1,d2
.ssrend		move.w	d2,stepcount-d(a5)
		rts
		
.dostepr	tst.w	stepcount-d(a5)
		beq.s	.dostepr2
		subq.w	#1,stepcount-d(a5)
		bra.s	.dostepr3
		
.dostepr2	move.w	stepdir-d(a5),d0
		ext.l	d0
		add.l	d0,absmanypos-d(a5)
		add.w	d0,manypos-d(a5)
		subq.w	#1,stepflag-d(a5)
.dostepr3	addq.w	#8,agamanxpos-d(a5)
		addq.l	#8,agaabsmanxpos-d(a5)
		move.l	#8,manxspeed-d(a5)
		move.w	#1,animdir-d(a5)
		move.w	#3,lrphase-d(a5)
		lea	animposr-d(a5),a0
		bsr	.domananim
		rts

.domananim	addq.w	#1,animcount-d(a5)
		cmp.w	#4,animcount-d(a5)