	#$1c,d0
		lea	statsprpos,a0
		add.l	(_nmem).w,a0
		move.b	d0,2(a0)
		move.b	d0,10(a0)
		add.w	d1,d1
		add.w	d1,d1
		move.l	#statusspr-4,d0
		add.l	(_nmem).w,d0
		add.w	d1,d0
		lea	statsprdata,a0
		add.l	(_nmem).w,a0
		move.w	d0,6(a0)
		swap	d0
		move.w	d0,2(a0)
		swap	d0
		add.l	#(objectspr-statusspr)/2,d0
		move.w	d0,14(a0)
		swap	d0
		move.w	d0,10(a0)

.end		clr.w	defmancoll-d(a5)
		rts

.c1		tst.w	stauchflag-d(a5)
		bne	.nomove	
		lea	.tab(pc),a0
		moveq	#20,d1
		sub.w	ouchflag-d(a5),d1
		add.w	d1,d1
		move.w	(a0,d1.w),d3
		ext.l	d3
		move.l	#83*928,d0
		tst.w	animdir-d(a5)
		beq.s	.left
		move.l	#82*928,d0

		moveq	#12,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	.c4
		move.w	-_levwidth(a0),d2
		and.w	d6,d2
		cmp.w	d5,d2
		beq	.c4
		move.w	-_levwidth*2(a0),d2
		and.w	d6,d2
		cmp.w	d5,d2
		beq	.c4

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

		sub.l	d3,agaabsmanxpos-d(a5)
		sub.w	d3,agamanxpos-d(a5)
		subq.w	#1,ouchflag-d(a5)
		beq	.c4
		bra.s	.c3
.left		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	.c4
		move.w	-_levwidth(a0),d2
		and.w	d6,d2
		cmp.w	d5,d2
		beq	.c4
		move.w	-_levwidth*2(a0),d2
		and.w	d6,d2
		cmp.w	d5,d2
		beq	.c4

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

		add.l	d3,agaabsmanxpos-d(a5)
		add.w	d3,agamanxpos-d(a5)
.nomove2	subq.w	#1,ouchflag-d(a5)
		beq.s	.c4
		bra.s	.c3

.nomove		move.l	#26*928,d0
		tst.w	animdir-d(a5)
		beq.s	.c001
		move.l	#27*928,d0
.c001		cmp.w	#8,ouchflag-d(a5)
		bmi.s	.nomove2
		cmp.w	#24,ouchflag-d(a5)
		bpl.s	.nomove2
		add.l	#928*2,d0
		bra.s	.nomove2


.c3		move.l	d0,animadr-d(a5)
		clr.w	defmancoll-d(a5)
		bra	.show
		
.c4		move.w	#-100,ouchflag-d(a5)
		clr.w	stauchflag-d(a5)
		bra.s	.c3
		
.c2		clr.w	defmancoll-d(a5)
		addq.w	#1,ouchflag-d(a5)
		bra	.show
		
		
.death		lea	.tab(pc),a0
		moveq	#20,d1
		sub.w	ouchflag-d(a5),d1
		add.w	d1,d1
		move.w	(a0,d1.w),d3
		ext.l	d3
		tst.w	animdir-d(a5)
		beq.s	.left2
		sub.l	d3,agaabsmanxpos-d(a5)
		sub.w	d3,agamanxpos-d(a5)
		bra.s	.c03
		
.left2		add.l	d3,agaabsmanxpos-d(a5)
		add.w	d3,agamanxpos-d(a5)

.c03		subq.w	#1,ouchflag-d(a5)
		cmp.w	#9,ouchflag-d(a5)
		bpl.s	.c04
		addq.w	#1,ouchflag-d(a5)
.c04


		bra	.show
		
.tab		dc.w	16,15,14,13,12,11,10,9,8,7,6,5,4,3,2,1,0,0,0,0,0,0,0,0
;------------------------------------------------
fganim		lea	d(pc),a5

		clr.w	fireflag-d(a5)
		
		addq.w	#2,fgaanimpos-d(a5)
		moveq	#0,d2
		move.w	fgaanimpos-d(a5),d2
		
		move.l	#lgraph+32+36,d3
		move.l	#lgraph+32+38+2560,d4
		add.l	(_nmem).w,d3
		add.l	(_nmem).w,d4
		
		moveq	#$10,d6
		and.w	#$f,d5
		sub.w	d5,d6
		tst.w	d5
		beq.s	.c4
		lsl.w	#8,d5
		addq.w	#1,d5
.c4		tst.w	d6
		beq.s	.c5
		lsl.w	#8,d6
		addq.w	#1,d6
.c5		waitblt
		move.l	#$ffffffff,$44(a6)
		clr.w	$42(a6)
		move.w	#(_scrwidth*3)-2,$60(a6)
		move.w	#38,$62(a6)
		move.w	#38,$64(a6)
		move.w	#(_scrwidth*3)-2,$66(a6)
		
		lea	d(pc),a5
		move.l	fg(pc),a0
		moveq	#_fgblkno-1,d7
.l1		tst.w	(a0)
		beq	.c1
		tst.w	2(a0)
		bne	.alt
		
		move.l	xsoftabs-d(a5),d0
		cmp.w	fgxbd(a0),d0
		bmi	.reset
		cmp.w	fgxbd+2(a0),d0
		bpl	.reset

		move.l	ysoftabs-d(a5),d0
		cmp.w	fgybd(a0),d0
		bmi	.reset
		cmp.w	fgybd+2(a0),d0
		bpl	.reset


		move.w	d2,d0
		move.w	fganimcnt+2(a0),d1
		lsr.w	d1,d0
		add.w	fganimpos+2(a0),d0
		and.w	fganimmsk+2(a0),d0
		move.l	fganimno(a0),a2
		
		cmp.l	a2,d3
		beq.s	.c2
		cmp.l	a2,d4
		beq.s	.c2
		
.c3		lea	(a2,d0.w),a2

		move.l	fgpos(a0),d0
		add.l	draw-d(a5),d0
		waitblt
		move.w	#$09f0,$40(a6)
		move.l	a2,$50(a6)
		move.l	d0,$54(a6)
		move.w	#64*4*16+1,$58(a6)

.c1		addq.l	#4,a0
		dbra	d7,.l1
		rts

.c2		move.w	#1,fireflag-d(a5)
		bra.s	.c3
		
.reset		move.w	#0,(a0)
		move.l	fgstartblk(a0),a1
		move.w	fgstartdata(a0),d0
		or.w	d0,(a1)
		bra.s	.c1

.reset2		lea	diamonds-d(a5),a4
		bsr	incnumber
		bra	.fgreset

.reset3		lea	coins-d(a5),a4
		bsr	incnumber
		bra	.fgreset
		
.doreset2	waitblt
		move.w	#$03aa,$40(a6)
		move.l	fgpos(a0),a4
		move.l	a4,d0
		add.l	show-d(a5),a4
		move.l	a4,$54(a6)
		add.l	orig-d(a5),d0
		move.l	d0,$48(a6)
		move.w	#64*4*16+1,$58(a6)
		clr.w	(a0)
		bra	.c1
		
.alt		tst.w	fgstartdata+2(a0)
		bne	.fgreset
		cmp.w	#2,2(a0)
		beq	.alt2
		waitblt
		move.w	#$03aa,$40(a6)
		move.l	fgpos(a0),a4
		add.l	#_scrwidth*_scrdepth*3*6,a4
		move.l	a4,d0
		add.l	draw-d(a5),a4
		move.l	a4,$54(a6)
		add.l	orig-d(a5),d0
		move.l	d0,$48(a6)
		move.w	#64*4*10+1,$58(a6)
		
		move.l	absmanxpos-d(a5),d0
		lsr.w	#4,d0
		addq.w	#4,d0
		move.w	fgpixpos(a0),d1
		lsr.w	#4,d1
		cmp.w	d0,d1
		bne.s	.ac1
		move.l	absmanypos-d(a5),d0
;		subq.w	#8,d0
		lsr.w	#4,d0
		addq.w	#2,d0
		move.w	fgpixpos+2(a0),d1
		lsr.w	#4,d1
		cmp.w	d0,d1
		beq	.reset2
		addq.w	#1,d0
		cmp.w	d0,d1
		beq	.reset2
		addq.w	#1,d0
		cmp.w	d0,d1
		beq	.reset2
		
.ac1		move.l	xsoftabs-d(a5),d0
		cmp.w	fgxbd(a0),d0
		bmi	.reset
		cmp.w	fgxbd+2(a0),d0
		bpl	.reset

		move.l	ysoftabs-d(a5),d0
		cmp.w	fgybd(a0),d0
		bmi	.reset
		cmp.w	fgybd+2(a0),d0
		bpl	.reset
		
		waitblt
		move.w	#$0fca,$40(a6)
		move.l	a4,$54(a6)
		move.l	a4,$48(a6)
		moveq	#0,d0
		move.w	fganimpos(a0),d0
		lsr.w	#2,d0
		add.w	d0,d0
		add.l	#20+16*160,d0
		move.l	d0,d1
		add.l	#bobs,d0
		add.l	(_nmem).w,d0
		move.l	d0,$4c(a6)
		add.l	#_masks,d1
		add.l	(_nmem).w,d1
		move.l	d1,$50(a6)
		move.w	#64*4*10+1,$58(a6)
		addq.w	#1,fganimpos(a0)
		and.w	#$f,fganimpos(a0)
		bra	.c1

.alt2		waitblt
		move.w	#$03aa,$40(a6)
		move.l	fgpos(a0),a4
		add.l	#_scrwidth*_scrdepth*3*8,a4
		move.l	a4,d0
		add.l	draw-d(a5),a4
		move.l	a4,$54(a6)
		add.l	orig-d(a5),d0
		move.l	d0,$48(a6)
		move.w	#64*4*8+1,$58(a6)
		
		move.l	absmanxpos-d(a5),d0
		lsr.w	#4,d0
		addq.w	#4,d0
		move.w	fgpixpos(a0),d1
		lsr.w	#4,d1
		cmp.w	d0,d1
		bne.s	.ac2
		move.l	absmanypos-d(a5),d0
;		subq.w	#8,d0
		lsr.w	#4,d0
		addq.w	#2,d0
		move.w	fgpixpos+2(a0),d1
		lsr.w	#4,d1
		cmp.w	d0,d1
		beq	.reset3
		addq.w	#1,d0
		cmp.w	d0,d1
		beq	.reset3
		addq.w	#1,d0
		cmp.w	d0,d1
		beq	.reset3
		
.ac2		move.l	xsoftabs-d(a5),d0
		cmp.w	fgxbd(a0),d0
		bmi	.reset
		cmp.w	fgxbd+2(a0),d0
		bpl	.reset

		move.l	ysoftabs-d(a5),d0
		cmp.w	fgybd(a0),d0
		bmi	.reset
		cmp.w	fgybd+2(a0),d0
		bpl	.reset
		
		waitblt
		move.w	#$0fca,$40(a6)
		move.l	a4,$54(a6)
		move.l	a4,$48(a6)
		moveq	#0,d0
		move.w	fganimpos(a0),d0
		lea	.animtab2(pc),a3
		and.w	#$fffe,d0
		move.w	(a3,d0.w),d0
		add.l	#20+26*160,d0
		move.l	d0,d1
		add.l	#bobs,d0
		add.l	(_nmem).w,d0
		move.l	d0,$4c(a6)
		add.l	#_masks,d1
		add.l	(_nmem).w,d1
		move.l	d1,$50(a6)
		move.w	#64*4*8+1,$58(a6)
		addq.w	#1,fganimpos(a0)
		cmp.w	#20,fganimpos(a0)
		bmi	.c1
		clr.w	fganimpos(a0)
		bra	.c1
		
.fgreset	waitblt
		move.w	#$03aa,$40(a6)
		move.l	fgpos(a0),a4
		move.l	a4,d0
		add.l	draw-d(a5),a4
		move.l	a4,$54(a6)
		add.l	orig-d(a5),d0
		move.l	d0,$48(a6)
		move.w	#64*4*16+1,$58(a6)
		
		move.l	xsoftabs-d(a5),d0
		cmp.w	fgxbd(a0),d0
		bmi	.reset
		cmp.w	fgxbd+2(a0),d0
		bpl	.reset

		move.l	ysoftabs-d(a5),d0
		cmp.w	fgybd(a0),d0
		bmi	.reset
		cmp.w	fgybd+2(a0),d0
		bpl	.reset

		addq.w	#1,fgstartdata+2(a0)
		cmp.w	#36,fgstartdata+2(a0)
		bpl	.doreset2
		
		waitblt
		move.w	#$0fca,$40(a6)
		move.l	a4,$54(a6)
		move.l	a4,$48(a6)
		
		lea	.animtabcr(pc),a4
		move.w	fgstartdata+2(a0),d0
		and.w	#$fffc,d0
		move.l	(a4,d0.w),d0
		move.l	d0,d1
		add.l	#bobs,d0
		add.l	(_nmem).w,d0
		move.l	d0,$4c(a6)
		add.l	#_masks,d1
		add.l	(_nmem).w,d1
		move.l	d1,$50(a6)
		move.w	#64*4*16+1,$58(a6)
		addq.w	#1,fganimpos(a0)
		and.w	#$f,fganimpos(a0)
		bra	.c1

.animtabcr	dc.l	90*160+8,106*160+8,122*160+8,138*160+8
		dc.l	154*160+8,170*160+8,186*160+8,202*160+8
		
.animtab2	dc.w	0,0,0,2,2,4,6,8,10,10
;------------------------------------------------
clrbobs		clrbobs_m
;------------------------------------------------
wheelanim	wheelanim_m #160*224
;------------------------------------------------
blitbobs	clr.w	touchflag-d(a5)
		clr.w	touchtext-d(a5)
		clr.w	lorryflag-d(a5)
		move.w	bobstand-d(a5),bobstand2-d(a5)
		clr.w	bobstand-d(a5)
		clr.w	bobno-d(a5)
		clr.w	nocopflag-d(a5)
		move.l	absmanxpos-d(a5),d0
		add.w	#74,d0
		move.w	d0,manxstrt-d(a5)
		add.w	#16,d0
		move.w	d0,manxstop-d(a5)
		move.l	absmanypos-d(a5),d0
		add.w	#24,d0
		move.w	d0,manystrt-d(a5)
		add.w	#44,d0
		move.w	d0,manystop-d(a5)
		tst.w	duckpos-d(a5)
		beq.s	.c1
		sub.w	#24,d0
		move.w	d0,manystrt-d(a5)
.c1		move.l	nm-d(a5),a0
		move.l	multab-d(a5),a1
		move.l	bmultab-d(a5),a2
		move.l	smultab-d(a5),a3
		move.w	xsoft-d(a5),d6
		lsr.w	#2,d6
		and.w	#$f,d6
		waitblt
		move.l	#$ffff0000,$44(a6)
		moveq	#_nmeno-1,d7
bl1		moveq	#0,d1
		move.l	d1,nmsize1(a0)
		tst.w	nmenable(a0)
		beq	blit1
		
		lea	movjmptab(pc),a4
		move.l	nmmove(a0),d0
		add.w	d0,d0
		add.w	d0,d0
		jsr	(a4,d0.w)
		
blit1		addq.l	#4,a0
		addq.w	#2,bobno-d(a5)
		dbra	d7,bl1
		rts

		bra	wheelanim		
movjmptab	bra	move1
		bra	move1
		bra	move2
		bra	move3
		bra	move4
		bra	move5
		bra	move6
		bra	move7
		bra	move8
;------------------------------------------------
;------------------------------------------------
lorrycoll	moveq	#3,d1		
		move.l	nm-d(a5),a0
		lea	_nmeno*4(a0),a2
		moveq	#_nmeno-1,d0
.ml001		tst.w	nmenable(a0)
		beq	.mc010
		cmp.w	nmmove+2(a0),d1
		bne	.mc010
		clr.l	nmanimpos2(a0)
		
		lea	4(a0),a1
.ml002		cmp.l	a1,a2
		beq	.mc010
		
		tst.w	nmenable(a1)
		beq	.mc001
		cmp.w	nmmove+2(a1),d1
		bne	.mc001
;		tst.w	nmanimpos2(a1)
;		bne.s	.mc001
		
		move.w	nmypos(a1),d2
		sub.w	#24,d2
		cmp.w	nmypos(a0),d2
		bpl	.mc001
		add.w	#80,d2
		cmp.w	nmypos(a0),d2
		bmi	.mc001
		
		move.w	nmxpos(a1),d2
		add.w	#40,d2
		cmp.w	nmxpos(a0),d2
		bmi.s	.mc001
		sub.w	#80,d2
		cmp.w	nmxpos(a0),d2
		bpl.s	.mc001
		
		move.w	nmxspeed(a1),d2
		move.w	d2,d3
		asr.w	#3,d3
		move.w	d2,d5
		bpl.s	.mc012
		neg.w	d5
.mc012		cmp.w	#128,d5
		bpl.s	.mc002
		moveq	#0,d2
		moveq	#0,d3
.mc002		sub.w	d3,d2
		move.w	nmxspeed(a0),d3
		move.w	d3,d4
		a