bs-d(a5)
		
	
		bsr	jump
		
		bsr	testxborders
		bsr	testyborders
		bsr	scrollx
		bsr	scrolly
		tst.w	testflag-d(a5)
		bne.s	.c1
		bsr	testmancoll;
.c1		bsr	updstatus
		
;		move.w	#$777,$dff180
		bsr	clrbobs
		bsr	fganim
		bsr	blitbobs

		bsr	getnewstartpos		
		bsr	chgplanes

		bsr	geta5
		clr.w	intensity-d(a5)

.chkkeys	bsr	chkkeys
		tst.w	testbarflag-d(a5)
		beq.s	.endmain
		move.w	#$555,$dff180
.endmain	rts
		
.pause		btst	#7,$bfe001
		bne.s	.chkkeys
		move.w	#0,pauseflag
		bra.s	.chkkeys


statrout	statrout_m

textprint	textprint_m

turnback	turnback_m
		
dofade		dofade_m

fadein		fadein_m
;------------------------------------------------
;------------------------------------------------
;---------------  Ingame-Debugger  --------------
;------------------------------------------------
;------------------------------------------------
monrout		monrout_m
;------------------------------------------------
;------------------------------------------------
;------------------------------------------------
;------------------------------------------------
getnewstartpos	bsr	geta5
		move.l	absmanxpos-d(a5),d0
		cmp.l	absmanxold-d(a5),d0
		bne.s	.end2
		move.l	absmanypos-d(a5),d0
		cmp.l	absmanyold-d(a5),d0
		bne.s	.end2
		cmp.w	#$d0,manypos-d(a5)
		bpl.s	.end2

		tst.w	bstandflag-d(a5)
		bne.s	.dosave		
		addq.w	#1,standcount-d(a5)
		cmp.w	#5,standcount-d(a5)
		bne.s	.end
.dosave		clr.w	standcount-d(a5)
		lea	saveto-d(a5),a1
		lea	savestart-d(a5),a0
		move.w	#(saveend-savestart)/2-1,d7
.l1		move.w	(a0)+,(a1)+
		dbra	d7,.l1
.end		move.l	absmanxpos-d(a5),absmanxold-d(a5)
		move.l	absmanypos-d(a5),absmanyold-d(a5)
		rts
.end2		clr.w	standcount-d(a5)
		bra.s	.end
;------------------------------------------------
getstick	getstick_m
;------------------------------------------------
boring		boring_m
;------------------------------------------------
chkkeys		chkkeys_m
;------------------------------------------------
cleartext	cleartext_m
;------------------------------------------------
printinit	printinit_m

printchar	printchar_m

printstatline	printstatline_m
;------------------------------------------------
clrstatline	clrstatline_m
;------------------------------------------------
moveacticon	moveacticon_m

writemsg	writemsg_m

turninit	turninit_m
;------------------------------------------------
remfrominv	remfrominv_m
;------------------------------------------------
chginventory	chginventory_m
;------------------------------------------------
geta5		lea	d(pc),a5
		rts
;------------------------------------------------
doobjrout	move.w	objectno-d(a5),d0
		subq.w	#1,d0
		bmi.s	.ret
		add.w	d0,d0
		add.w	d0,d0
		lea	.bratab(pc),a0
		jsr	(a0,d0.w)
.ret		rts
		
.bratab		bra	obj1	; Teerfaß
		bra	obj2	; Kübel
		bra	obj3	; Boot
		bra	obj4	; Teerkübel
		bra	obj5	; Gondel
		bra	obj6	; Kurbel
		bra	obj7	; Holz
		bra	obj8	; Feuersteine
		bra	obj9	; Hammer
		bra	obj10	; Kerzen
		bra	obj11	; Schlüssel
		bra	obj12	; Kristall
		bra	obj13	; Paddel
		bra	obj14	; kaputte Winde
		bra	obj15	; Winde
		bra	obj16	; Feuerstelle
		bra	obj17	; Brunnen
		bra	obj18	; Nägel
		bra	obj19	; Seil
		bra	obj20	; Schlucht
		bra	obj21	; Herunterhängendes Seil
		bra	obj22	; Repariertes Boot
				
obj1		rts

obj2		cmp.w	#1,touchtext2-d(a5)
		bne.s	.c2
		moveq	#2,d1
		moveq	#4,d2
		bsr	chginventory
		tst.w	d7
		bmi.s	.end		
		move.w	d2,touchtext-d(a5)
		move.w	d2,objectno-d(a5)
		move.w	#1,touchflag-d(a5)
		bsr	turninit
.end		rts
.c2		moveq	#-1,d1
		rts

obj3		rts

obj4		cmp.w	#16,touchtext2-d(a5)
		beq.s	.c1
		cmp.w	#3,touchtext2-d(a5)
		beq.s	.c4
		moveq	#-1,d1
		rts
		
.c4		move.l	nm-d(a5),a0
		moveq	#_nmeno-1,d7
.l2		tst.w	nmenable(a0)
		beq.s	.c5
		cmp.w	#3,nmobj(a0)
		beq.s	.c6
.c5		addq.l	#4,a0
		dbra	d7,.l2
		rts
.c6		moveq	#31,d0
		move.l	d0,nmmove(a0)
		move.w	#22,nmobj(a0)
		move.w	#(30<<10),nmstartno(a0)
		move.w	#80,nmxsize(a0)
		bsr	turninit
		rts
		
.c1		cmp.w	#2,fpstatusflag-d(a5)
		bne.s	.c7
		tst.w	tbstatusflag-d(a5)
		bne.s	.c2
		move.w	#1,tbstatusflag-d(a5)
		lea	tbgtab-d(a5),a0
		move.w	#_language,d0
		tst.w	d0
		beq.s	.c3
		lea	tbetab-d(a5),a0
.c3		move.w	tbstatusflag-d(a5),d0
		add.w	d0,d0
		add.w	d0,d0
		move.l	(a0,d0.w),(actiontab+3*16+12)-d(a5)
		moveq	#56,d2
		bra	writemsg
		
.c2		moveq	#52,d2
		bra	writemsg
		
.c7		moveq	#72,d2
		bra	writemsg


obj5		move.w	#1,basketflag-d(a5)
		rts

obj6		cmp.w	#14,touchtext2-d(a5)
		bne.s	.c2
		moveq	#6,d1
		bsr	remfrominv
		tst.w	d7
		bmi.s	.end
		move.l	nm-d(a5),a0
		moveq	#_nmeno-1,d7
.l2		tst.w	nmenable(a0)
		beq.s	.c4
		cmp.w	#14,nmobj(a0)
		beq.s	.c3
.c4		addq.l	#4,a0
		dbra	d7,.l2
.end		rts
.c3		addq.l	#1,nmmove(a0)
		addq.w	#1,nmobj(a0)
		add.w	#$400,nmstartno(a0)
		bsr	turninit
		rts
.c2		moveq	#-1,d1
		rts

obj7		cmp.w	#16,touchtext2-d(a5)
		bne.s	.c2
		cmp.w	#1,fpstatusflag-d(a5)
		bpl.s	.c3
		moveq	#7,d1
		bsr	remfrominv
		tst.w	d7
		bmi.s	.end
		move.w	#1,fpstatusflag-d(a5)
		bsr	turninit
.end		rts
.c2		moveq	#-1,d1
		rts
		
.c3		moveq	#24,d2
		bra	writemsg
		
obj8		cmp.w	#7,touchtext2-d(a5)
		beq.s	.c1
		cmp.w	#16,touchtext2-d(a5)
		bne.s	.c2
		tst.w	fpstatusflag-d(a5)
		beq.s	.c4
		cmp.w	#2,fpstatusflag-d(a5)
		beq.s	.c3
		move.w	#2,fpstatusflag-d(a5)
		bsr	turninit
		rts
.c2		moveq	#-1,d1
		rts
		
.c1		moveq	#44,d2
		bra	writemsg
.c3		moveq	#28,d2
		bra	writemsg
.c4		moveq	#32,d2
		bra	writemsg

obj9		rts
obj10		rts
obj11		rts
obj12		rts

obj13		cmp.w	#3,touchtext2-d(a5)
		beq.s	.c2
		cmp.w	#22,touchtext2-d(a5)
		bne.s	.c1
		move.w	#1,boatflag-d(a5)
		moveq	#68,d2
		bra	writemsg
.c1		moveq	#60,d2
		bra	writemsg
.c2		moveq	#64,d2
		bra	writemsg

obj14		rts

obj15		move.w	#1,winchflag-d(a5)
		move.w	#10,turnflag-d(a5)
		move.w	#2,turncount-d(a5)
		move.w	#1,turned-d(a5)
		rts
		
obj16		rts
obj17		rts
obj18		rts

obj19		cmp.w	#20,touchtext2-d(a5)
		bne.s	.c1
		move.w	#1,ropedownflag-d(a5)
		clr.w	ropedowncount-d(a5)
		rts
.c1		moveq	#48,d2
		bra	writemsg

obj20		rts

obj21		move.w	#1,ropeflag-d(a5)
		move.w	#1,basketflag-d(a5)
		move.l	touchpos-d(a5),a0
		move.w	nmxpos(a0),d0
		sub.w	#72,d0
		tst.w	animdir-d(a5)
		beq.s	.c1
		subq.w	#2,d0
.c1		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	d0,d1
		sub.w	d1,agamanxpos-d(a5)
		and.w	#$fffc,agamanxpos-d(a5)
		and.l	#$fffffffc,agaabsmanxpos-d(a5)
		and.l	#$fffffffc,agaxsoftabs-d(a5) 
		and.w	#$fffc,xsoft-d(a5)

		moveq	#0,d1
		rts

obj22		rts
;------------------------------------------------
dispinventory	dispinventory_m
;------------------------------------------------
dispacticon	dispacticon_m
;------------------------------------------------
dispicontext	dispicontext_m
;------------------------------------------------
updstatus	updstatus_m
;------------------------------------------------
updcounters	updcounters_m
;------------------------------------------------
printbig	printbig_m
;------------------------------------------------
copyanim	copyanim_m
;------------------------------------------------
setmananim	move.l	(_nmem).w,d0
		lea	manpos,a0
		add.l	d0,a0
		lea	manpos2,a2
		add.l	d0,a2
		tst.w	fallflag-d(a5)
		bne	.c4
		tst.w	jumpflag2-d(a5)
		beq.s	.c6
		tst.w	janimcount-d(a5)
		beq	.c5

.c6		tst.w	jumpflag-d(a5)
		bne.s	.c21
		clr.w	jumppunchflag-d(a5)
		tst.l	punchcount-d(a5)
		bne.s	.c10
		tst.w	punchflag-d(a5)
		beq.s	.nopunch
.c10		move.w	manxpos-d(a5),d0
		cmp.w	#8,duckpos-d(a5)
		beq.s	.dc01
		lea	punchofsr-d(a5),a3
		tst.w	animdir-d(a5)
		beq.s	.punchr
		lea	punchofsl-d(a5),a3
		bra.s	.punchr		
.dc01		lea	punchofsdr-d(a5),a3
		tst.w	animdir-d(a5)
		beq.s	.punchr
		lea	punchofsdl-d(a5),a3
.punchr		move.w	punchpos-d(a5),d1
		lsr.w	#1,d1
		add.w	(a3,d1.w),d0
		bra	.c3
		
.nopunch	tst.w	button-d(a5)
		beq.s	.c25
		move.w	#4,punchflag-d(a5)
		move.w	#4,punchcount-d(a5)
		bra.s	.c25

.c21		bsr	.testpunch
.c25		moveq	#1,d3
		lea	animlofs-d(a5),a1
		tst.w	animdir-d(a5)
		beq.s	.c1
		lea	animrofs-d(a5),a1
		moveq	#3,d3
		bra.s	.c1
		
.c4		bsr	.testpunch
		moveq	#1,d3
		lea	animlofs-d(a5),a1
		tst.w	animdir-d(a5)
		beq.s	.c1
		lea	animrofs-d(a5),a1
		moveq	#3,d3
		bra.s	.c1

.c5		bsr	.testpunch
		moveq	#3,d3
		lea	animlofs-d(a5),a1
		tst.w	animdir-d(a5)
		beq.s	.c1
		lea	animrofs-d(a5),a1
		moveq	#1,d3

.c1		move.w	animphase-d(a5),d2
		add.w	d2,d2
		move.w	manxpos-d(a5),d0
		tst.w	animstand-d(a5)
		bne.s	.c2
		add.w	(a1,d2.w),d0
		bra.s	.c3
.c2		add.w	d3,d0
.c3		clr.w	collpointen-d(a5)
		tst.w	jumppunchflag-d(a5)
		beq.s	.c22
		
		moveq	#10,d1
		sub.w	jumppunchflag-d(a5),d1
		add.w	d1,d1
		add.w	d1,d1
		lea	.pltab(pc),a1
		lea	.plofs(pc),a3
		lea	.colll(pc),a4
		tst.w	animdir-d(a5)
		beq.s	.c23
		lea	.prtab(pc),a1
		lea	.profs(pc),a3
		lea	.jcollr(pc),a4
.c23		move.l	(a1,d1.w),animadr-d(a5)
		add.l	(a3,d1.w),d0
		move.w	#1,collpointen-d(a5)
		move.l	absmanxpos-d(a5),d2
		sub.w	#20,d2
		add.w	(a4,d1.w),d2
		move.w	d2,collpointx-d(a5)
		move.l	absmanypos-d(a5),d2
		add.w	2(a4,d1.w),d2
		move.w	d2,collpointy-d(a5)
		subq.w	#1,jumppunchflag-d(a5)

.c22		move.w	d0,d1
		lsr.w	#1,d0
		add.w	#$40,d0	
		tst.w	ouchflag-d(a5)
		bpl.s	.c32
		eor.w	#1,invinccount-d(a5)
		beq.s	.c32
		tst.w	statusflag-d(a5)
		bne.s	.c32
		tst.w	textflag-d(a5)
		bne.s	.c32
		moveq	#0,d0
.c32		move.b	d0,3(a0)
		move.b	d0,11(a0)
		move.b	d0,3(a2)
		move.b	d0,11(a2)
		addq.w	#8,d0
		move.b	d0,19(a0)
		move.b	d0,27(a0)
		move.b	d0,19(a2)
		move.b	d0,27(a2)
		and.w	#$1,d1
		or.b	#$80,d1
		move.b	d1,7(a0)
		move.b	d1,15(a0)
		move.b	d1,23(a0)
		move.b	d1,31(a0)
		move.b	d1,7(a2)
		move.b	d1,15(a2)
		move.b	d1,23(a2)
		move.b	d1,31(a2)
		move.w	manypos-d(a5),d0
		add.w	#$2c,d0
		cmp.w	#252,d0
		bmi.s	.c7
		moveq	#0,d0
.c7		move.b	d0,2(a0)
		move.b	d0,10(a0)
		move.b	d0,18(a0)
		move.b	d0,26(a0)

		tst.w	d0
		beq.s	.c8
		add.w	#56,d0			; Höhe des Protagonisten
		cmp.w	#252,d0
		bmi.s	.c8
		move.w	#252,d0
.c8		move.b	d0,6(a0)
		move.b	d0,14(a0)
		move.b	d0,22(a0)
		move.b	d0,30(a0)
		move.b	d0,6(a2)
		move.b	d0,14(a2)
		move.b	d0,22(a2)
		move.b	d0,30(a2)

		move.w	ouchflag2-d(a5),d0
		move.w	ouchflag-d(a5),ouchflag2-d(a5)
		tst.w	d0
		bmi.s	.c31
		bne.s	.ouch
.c31		tst.w	boatrideflag-d(a5)
		bne	.boatride
		tst.w	turnflag-d(a5)
		bne	.turnanim
		tst.w	winchflag-d(a5)
		bne.s	.end
		tst.w	ropedownflag-d(a5)
		bne.s	.end
		tst.w	ropeflag-d(