0)
		
		subq.w	#8,nmxspeed(a0)
		bra.s	.uc1
.uc2		tst.w	nmxspeed(a0)
		bpl.s	.uc1
		clr.w	nmxspeed(a0) 
.uc1		move.w	nmxdir+2(a0),d1
		move.w	nmxpos(a0),d0

		move.w	d0,d2
		not.w	d0
		and.w	#$f,d0
		lsr.w	#1,d0

.uc4		lsr.w	#4,d2
		lsr.w	#4,d1
		cmp.w	d2,d1
		beq.s	.uc3
		sub.w	#16,nmactypos(a0)
		
.uc3		move.w	nmactypos(a0),d1
		and.w	#$fff0,d1
		lsr.w	#1,d1
		add.w	d1,d0
		add.w	nmypos+2(a0),d0
		subq.w	#6,d0
		move.w	nmypos(a0),nmydir+2(a0)
		move.w	d0,nmypos(a0)
		bra	.ret01

.tfall		tst.w	nmyspeed(a0)
		beq	.m3r
		bra	.hz10

.horiz		lea	blocktab-d(a5),a2
		
		moveq	#6,d0
		add.w	nmxpos(a0),d0
		moveq	#32*2,d1
		add.w	nmactypos(a0),d1
		asr.w	#1,d1
		bsr	calcnmblock
		cmp.b	#1,d0
		bpl	.hz3

		move.w	4(a1),d1
		and.w	#$3ff,d1
		cmp.b	#1,(a2,d1.w)
		bmi	.hz11
		
		move.w	2(a1),d1
		and.w	#$3ff,d1
		cmp.b	#1,(a2,d1.w)
		bmi.s	.hz12
		
		move.l	#36*160+22,nmdata(a0)
		move.w	#33,nmysize(a0)
		move.w	#14,nmypos+2(a0)
		
		bra.s	.hzc03
		
.hz12		move.l	#35*160+16,nmdata(a0)
		move.w	#35,nmysize(a0)
		move.w	#16,nmypos+2(a0)
.hzc03		tst.w	nmxspeed(a0)
		bmi.s	.hzc02
		beq.s	.hzc02
		neg.w	nmxspeed(a0)
		clr.w	animdir-d(a5)
		clr.w	duckpos-d(a5)
		move.w	#2,nmyspeed(a0)
;		sub.w	#96,energy-d(a5)

		tst.w	nmanimpos(a0)
		beq.s	.hzc02

		move.w	#20,ouchflag-d(a5)
		cmp.w	#17,energy-d(a5)
		bpl.s	.hzc04
		move.w	#1,deathflag-d(a5)
		move.w	#$10,priority-d(a5)
		bra.s	.hzc02
.hzc04		move.w	#16,energy-d(a5)
.hzc02		subq.w	#4,nmxspeed(a0)
		bra	.hz2

.hz11		cmp.w	#16,nmypos+2(a0)
		bne.s	.hz5
		add.w	#22,nmactypos(a0)
.hz5		move.l	#0*160+22,nmdata(a0)
		move.w	#36,nmysize(a0)
		move.w	#7,nmypos+2(a0)
.hz10		addq.w	#1,nmyspeed(a0)
		move.w	nmyspeed(a0),d0
		lsr.w	#1,d0
		add.w	d0,nmactypos(a0)
		bra.s	.hz2
		
.hz3		move.w	4(a1),d1
		and.w	#$3ff,d1
		cmp.b	#1,(a2,d1.w)
		bpl.s	.hz1
		
		move.w	2(a1),d1
		and.w	#$3ff,d1
		cmp.b	#1,(a2,d1.w)
		bmi.s	.hz4
		move.l	#0*160+10,nmdata(a0)
		move.w	#33,nmysize(a0)
		move.w	#14,nmypos+2(a0)
		addq.w	#4,nmxspeed(a0)
		bra.s	.hz2
		
.hz4		move.l	#0*160+16,nmdata(a0)
		move.w	#35,nmysize(a0)
		move.w	#16,nmypos+2(a0)
		addq.w	#4,nmxspeed(a0)
		bra.s	.hz2

.hz1		clr.w	nmyspeed(a0)
		addq.w	#8,nmactypos(a0)
		and.w	#$ffe0,nmactypos(a0)
		move.l	#0*160+4,nmdata(a0)
		move.w	#31,nmysize(a0)
		move.w	#12,nmypos+2(a0)

.hz2		moveq	#44,d0
		add.w	nmxpos(a0),d0
		moveq	#32*2,d1
		add.w	nmactypos(a0),d1
		asr.w	#1,d1
		bsr	calcnmblock
		move.w	(a1),d1
		and.w	#$fc00,d1
		cmp.w	#$0c00,d1
		bne.s	.hc2
		clr.w	nmxspeed(a0)
		bra.s	.c2

.hc2		cmp.w	#$e800,d1
		bne.s	.hc1
		move.w	nmxspeed(a0),d0
		asr.w	#2,d0
		neg.w	d0
		move.w	d0,nmxspeed(a0)
		bra.s	.c2
		
.hc1		tst.w	nmyspeed(a0)
		bne.s	.c2
		subq.w	#4,nmxspeed(a0)
		bpl.s	.c2
		clr.w	nmxspeed(a0)

.c2		move.w	nmxpos(a0),d0

.ret		move.w	nmactypos(a0),d0
		lsr.w	#1,d0
		add.w	nmypos+2(a0),d0
		move.w	nmypos(a0),nmydir+2(a0)
		move.w	d0,nmypos(a0)

.ret01		tst.w	nmactypos+2(a0)
		beq.s	.ret02
		move.w	nmypos(a0),lorrypos-d(a5)

.ret02		tst.w	nmanimpos(a0)
		beq.s	.ret2

		move.w	nmypos(a0),d0
		sub.w	#56,d0
		ext.l	d0
		move.l	absmanypos-d(a5),d1
		move.l	d0,absmanypos-d(a5)
		sub.l	d1,d0
		add.w	d0,manypos-d(a5)
		
		move.w	nmxpos(a0),d0
		sub.w	#56,d0
		ext.l	d0
		add.l	d0,d0
		add.l	d0,d0
		move.l	agaabsmanxpos-d(a5),d1
		move.l	d0,agaabsmanxpos-d(a5)
		sub.l	d1,d0
		add.w	d0,agamanxpos-d(a5)

.ret2		movem.l	(a7)+,a1/a2
		bsr	maskblitxy
		rts

m3left		move.w	nmxspeed(a0),d0
		ext.l	d0
		add.l	d0,nmactxpos(a0)
		move.l	nmactxpos(a0),d0
		asr.l	#8,d0
;		add.w	nmstartxpos(a0),d0
		move.w	nmxpos(a0),nmxdir+2(a0)
		move.w	d0,nmxpos(a0)

		lea	m3ofs4(pc),a1
		moveq	#20,d0
		add.w	nmxpos(a0),d0
		moveq	#56*2,d1
		add.w	nmactypos(a0),d1
		asr.w	#1,d1
		bsr	calcnmblock
		move.w	(a1),d1
		and.w	#$3ff,d1

		sub.w	#27*20,d1
		beq	.faster3
		subq.w	#1,d1
		beq	.faster4
		subq.w	#1,d1
		beq	.faster1
		subq.w	#1,d1
		beq	.faster2
		sub.w	#17,d1
		beq	.faster3
		subq.w	#1,d1
		beq	.faster4
		subq.w	#1,d1
		beq	.faster1
		subq.w	#1,d1
		beq	.faster2
		cmp.b	#16,d0
		beq	.up
		
		moveq	#28,d0
		add.w	nmxpos(a0),d0
		moveq	#56*2,d1
		add.w	nmactypos(a0),d1
		asr.w	#1,d1
		bsr	calcnmblock
		move.w	(a1),d1
		and.w	#$3ff,d1
		sub.w	#27*20+4,d1
		beq	.slower1
		subq.w	#1,d1
		beq	.slower2
		subq.w	#1,d1
		beq	.slower3
		subq.w	#1,d1
		beq	.slower4
		sub.w	#17,d1
		beq	.slower1
		subq.w	#1,d1
		beq	.slower2
		subq.w	#1,d1
		beq	.slower3
		subq.w	#1,d1
		beq	.slower4
		cmp.b	#14,d0
		beq	.down
		bra	.horiz

.slower3	subq.w	#2,nmxspeed(a0)
		cmp.w	#-_lorrymaxspeed,nmxspeed(a0)
		bpl.s	.s3c1
		move.w	#-_lorrymaxspeed,nmxspeed(a0)

.s3c1		move.w	nmxdir+2(a0),d1
		move.w	nmxpos(a0),d0
		subq.w	#4,d0
		and.w	#$f,d0
		add.w	d0,d0
		lea	m3ofs4(pc),a1
		move.w	(a1,d0.w),nmypos+2(a0)
		
		lea	m3phase4(pc),a1
		move.w	(a1,d0.w),d2
		lea	m3phasetab(pc),a1
		move.l	(a1,d2.w),nmdata(a0)
		move.w	6(a1,d2.w),nmysize(a0)

		moveq	#0,d0
		move.w	nmxpos(a0),d2
		bra	.dc4
		
.slower4	subq.w	#4,nmxspeed(a0)
		cmp.w	#-_lorrymaxspeed,nmxspeed(a0)
		bpl.s	.s4c1
		move.w	#-_lorrymaxspeed,nmxspeed(a0)

.s4c1		move.w	nmxdir+2(a0),d1
		move.w	nmxpos(a0),d0
		subq.w	#4,d0
		and.w	#$f,d0
		add.w	d0,d0
		lea	m3ofs4+32(pc),a1
		move.w	(a1,d0.w),nmypos+2(a0)
		
		lea	m3phase4+32(pc),a1
		move.w	(a1,d0.w),d2
		lea	m3phasetab(pc),a1
		move.l	(a1,d2.w),nmdata(a0)
		move.w	6(a1,d2.w),nmysize(a0)
		
		moveq	#0,d0
		move.w	nmxpos(a0),d2
		bra	.dc4

.slower1	move.w	nmxpos(a0),d0
		subq.w	#4,d0
		and.w	#$f,d0
		add.w	d0,d0
		lea	m3ofs3(pc),a1
		move.w	(a1,d0.w),nmypos+2(a0)
		
		lea	m3phase3(pc),a1
		move.w	(a1,d0.w),d1
		lea	m3phasetab(pc),a1
		move.l	(a1,d1.w),nmdata(a0)
		move.w	6(a1,d1.w),nmysize(a0)
		subq.w	#4,nmxspeed(a0)
		bra	.c2
		
.slower2	move.w	nmxpos(a0),d0
		subq.w	#4,d0
		and.w	#$f,d0
		add.w	d0,d0
		lea	m3ofs3+32(pc),a1
		move.w	(a1,d0.w),nmypos+2(a0)
		
		lea	m3phase3+32(pc),a1
		move.w	(a1,d0.w),d1
		lea	m3phasetab(pc),a1
		move.l	(a1,d1.w),nmdata(a0)
		move.w	6(a1,d1.w),nmysize(a0)
		subq.w	#2,nmxspeed(a0)
		bra	.c2

		
.faster3	addq.w	#4,nmxspeed(a0)

		move.w	nmxdir+2(a0),d1

		move.w	nmxpos(a0),d0
		addq.w	#4,d0
		and.w	#$f,d0
		add.w	d0,d0
		lea	m3ofs2(pc),a1
		move.w	(a1,d0.w),nmypos+2(a0)
		
		lea	m3phase2(pc),a1
		move.w	(a1,d0.w),d2
		lea	m3phasetab(pc),a1
		move.l	(a1,d2.w),nmdata(a0)
		move.w	6(a1,d2.w),nmysize(a0)

		moveq	#0,d0
		move.w	nmxpos(a0),d2
		bra	.uc4
		
.faster4	addq.w	#2,nmxspeed(a0)
		
		move.w	nmxdir+2(a0),d1
		move.w	nmxpos(a0),d0
		addq.w	#4,d0
		and.w	#$f,d0
		add.w	d0,d0
		lea	m3ofs2+32(pc),a1
		move.w	(a1,d0.w),nmypos+2(a0)
		
		lea	m3phase2+32(pc),a1
		move.w	(a1,d0.w),d2
		lea	m3phasetab(pc),a1
		move.l	(a1,d2.w),nmdata(a0)
		move.w	6(a1,d2.w),nmysize(a0)
		
		moveq	#0,d0
		move.w	nmxpos(a0),d2
		bra	.uc4

.faster1	move.w	nmxpos(a0),d0
		addq.w	#4,d0
		and.w	#$f,d0
		add.w	d0,d0
		lea	m3ofs(pc),a1
		move.w	(a1,d0.w),nmypos+2(a0)
		
		lea	m3phase(pc),a1
		move.w	(a1,d0.w),d1
		lea	m3phasetab(pc),a1
		move.l	(a1,d1.w),nmdata(a0)
		move.w	6(a1,d1.w),nmysize(a0)
		addq.w	#2,nmxspeed(a0)
		bra	.c2
		
.faster2	move.w	nmxpos(a0),d0
		addq.w	#4,d0
		and.w	#$f,d0
		add.w	d0,d0
		lea	m3ofs+32(pc),a1
		move.w	(a1,d0.w),nmypos+2(a0)
		
		lea	m3phase+32(pc),a1
		move.w	(a1,d0.w),d1
		lea	m3phasetab(pc),a1
		move.l	(a1,d1.w),nmdata(a0)
		move.w	6(a1,d1.w),nmysize(a0)
		addq.w	#4,nmxspeed(a0)
		bra	.c2

		
.down		move.l	#33*160+10,nmdata(a0)
		move.w	#36,nmysize(a0)
		move.w	#19,nmypos+2(a0)
		subq.w	#8,nmxspeed(a0)
.dc2		cmp.w	#-_lorrymaxspeed,nmxspeed(a0)
		bpl.s	.dc1
		move.w	#-_lorrymaxspeed,nmxspeed(a0)
.dc1		move.w	nmxdir+2(a0),d1
		move.w	nmxpos(a0),d0
		
		move.w	d0,d2
		not.w	d0
		and.w	#$f,d0
		lsr.w	#1,d0

.dc4		lsr.w	#4,d2
		lsr.w	#4,d1
		cmp.w	d2,d1
		beq.s	.dc3
		add.w	#16,nmactypos(a0)
		
.dc3		move.w	nmactypos(a0),d1
		and.w	#$fff0,d1
		lsr.w	#1,d1
		add.w	d1,d0
		add.w	nmypos+2(a0),d0
		subq.w	#6,d0
		move.w	nmypos(a0),nmydir+2(a0)
		move.w	d0,nmypos(a0)
		bra	.ret01

.up		move.l	#0*160+22,nmdata(a0)
		move.w	#36,nmysize(a0)
		move.w	#19,nmypos+2(a0)
		
		addq.w	#8,nmxspeed(a0)
		bra.s	.uc1
.uc2		tst.w	nmxspeed(a0)
		bmi.s	.uc1
		clr.w	nmxspeed(a0)
.uc1		move.w	nmxdir+2(a0),d1
		move.w	nmxpos(a0),d0

		move.w	d0,d2
		and.w	#$f,d0
		lsr.w	#1,d0

.uc4		lsr.w	#4,d2
		lsr.w	#4,d1
		cmp.w	d2,d1
		beq.s	.uc3
		sub.w	#16,nmactypos(a0)
		
.uc3		move.w	nmactypos(a0),d1
		and.w	#$fff0,d1
		lsr.w	#1,d1
		add.w	d1,d0
		add.w	nmypos+2(a0),d0
		subq.w	#6,d0
		move.w	nmypos(a0),nmydir+2(a0)
		move.w	d0,nmypos(a0)
		bra	.ret01

				
.horiz		lea	blocktab-d(a5),a2
		
		moveq	#44,d0
		add.w	nmxpos(a0),d0
		moveq	#32*2,d1
		add.w	nmactypos(a0),d1
		asr.w	#1,d1
		bsr	calcnmblock
		cmp.b	#1,d0
		bpl	.hz3

		move.w	-4(a1),d1
		and.w	#$3ff,d1
		cmp.b	#1,(a2,d1.w)
		bmi	.hz11
		
		move.w	-2(a1),d1
		and.w	#$3ff,d1
		cmp.b	#1,(a2,d1.w)
		bmi.s	.hz12
		
		move.l	#0*160+10,nmdata(a0)
		move.w	#33,nmysize(a0)
		move.w	#14,nmypos+2(a0)
		bra.s	.hzc03
		
.hz12		move.l	#0*160+16,nmdata(a0)
		move.w	#35,nmysize(a0)
		move.w	#16,nmypos+2(a0)
.hzc03		tst.w	nmxspeed(a0)
		bpl.s	.hzc02
		neg.w	nmxspeed(a0)
		move.w	#1,animdir-d(a5)
		clr.w	duckpos-d(a5)
		move.w	#2,nmyspeed(a0)
;		sub.w	#96,energy-d(a5)

		tst.w	nmanimpos(a0)
		beq.s	.hzc02

		move.w	#20,ouchflag-d(a5)
		cmp.w	#17,energy-d(a5)
		bpl.s	.hzc04
		move.w	#1,deathflag-d(a5)
		move.w	#$10,priority-d(a5)
		bra.s	.hzc02
.hzc04		move.w	#16,energy-d(a5)
.hzc02		addq.w	#4,nmxspeed(a0)
		bra	.hz2

.hz11		cmp.w	#16,nmypos+2(a0)
		bne.s	.hz5
		add.w	#22,nmactypos(a0)
.hz5		move.l	#33*160+10,nmdata(a0)
		move.w	#36,nmysize(a0)
		move.w	#7,nmypos+2(a0)
		addq.w	#1,nmyspeed(a0)
		move.w	nmyspeed(a0),d0
		lsr.w	#1,d0
		add.w	d0,nmactypos(a0)
		bra.s	.hz2
		
.hz3		move.w	-4(a1),d1
		and.w	#$3ff,d1
		cmp.b	#1,(a2,d1.w)
		bpl.s	.hz1
		
		move.w	-2(a1),d1
		and.w	#$3ff,d1
		cmp.b	#1,(a2,d1.w)
		bmi.s	.hz4
		
		move.l	#36*160+22,nmdata(a0)
		move.w	#33,nmysize(a0)
		move.w	#14,nmypos+2(a0)
		subq.w	#4,nmxspeed(a0)
		bra.s	.hz2
		
.hz4		move.l	#35*160+16,nmdata(a0)
		move.w	#35,nmysize(a0)
		move.w	#16,nmypos+2(a0)
		subq.w	#4,nmxspeed(a0)
		bra.s	.hz2

.hz1		clr.w	nmyspeed(a0)
		addq.w	#8,nmactypos(a0)
		and.w	#$ffe0,nmactypos(a0)
		move.l	#0*160+4,nmdata(a0)
		move.w	#31,nmysize(a0)
		move.w	#12,nmypos+2(a0)
		
.hz2		moveq	#4,d0
		add.w	nmxpos(a0),d0
		moveq	#16*2,d1
		add