
***
*** AUTHOR:	Razmo of Kefrens/Genozide
*** RESOURCING:	[·M·n·O·] (Lasse Jari Hansen)
*** E-MAIL:	ljh@sigma.ou.dk
***

DO_MY_DMA	=	1	;0=assemble orig. code /
DO_MY_VOL	=	1	; 1=assemble deli-comp. code

hen_myvol	dc	0

lb_0000		lea	bin(pc),a0		;lb_02e4
		bsr	lb_0044
		lea	bin+($30a-$2e4)(pc),a0
		bsr	lb_0044
		lea	bin+($330-$2e4)(pc),a0
		bsr	lb_0044
		lea	bin+($356-$2e4)(pc),a0
		bsr	lb_0044
		moveq	#$00,d0
		move	d0,$dff0a8
		move	d0,$dff0b8
		move	d0,$dff0c8
		move	d0,$dff0d8
		move	#$000f,$dff096
		rts

lb_0044		lea	(a0),a1
		moveq	#$10,d0
lb_0048		clr	(a1)+
		dbf	d0,lb_0048
		move.l	#$00000005,$000c(a0)
		move.l	#$00000001,$0014(a0)
lb_005e		rts

lb_0060		lea	$dff000,a1
		lea	bin(pc),a6
		lea	bin+($37c-$2e4)(pc),a5
		lea	$00a0(a1),a4
		bsr	lb_00b2
		lea	bin+($30a-$2e4)(pc),a6
		lea	bin+($37d-$2e4)(pc),a5
		lea	$00b0(a1),a4
		bsr	lb_00b2
		lea	bin+($330-$2e4)(pc),a6
		lea	bin+($37e-$2e4)(pc),a5
		lea	$00c0(a1),a4
		bsr	lb_00b2
		lea	bin+($356-$2e4)(pc),a6
		lea	bin+($37f-$2e4)(pc),a5
		lea	$00d0(a1),a4
		bsr	lb_00b2
		bsr	lb_0110
		lea	lb_0292(pc),a2
		clr	(a2)
		rts

lb_00b2		subq.l	#1,$0008(a6)
		tst.l	$0008(a6)
		bpl	lb_005e
		move.l	$000c(a6),$0008(a6)
		move.l	(a6),d0
		tst.b	$00(a5,d0.l)
		bmi	lb_005e
		bsr	lb_017e
		bsr	lb_01cc
		bsr	lb_0252
		bsr	lb_0272
		bsr	lb_0234
		bsr	lb_00e8
		rts

lb_00e8		move	lb_0292(pc),d0
		move	$0022(a6),d1
		and	d1,d0
		tst	d0
		beq	lb_005e
		move.l	$0018(a6),(a4)
		move	$001c(a6),$0004(a4)
		move	#$0071,$0006(a4)

		IFEQ	DO_MY_VOL
		move	$0020(a6),$0008(a4)
		ELSE
		move.l	d0,-(sp)		;;********
		move	$0020(a6),d0
		mulu	hen_myvol(pc),d0
		divu	#64,d0
		move	d0,$0008(a4)
		move.l	(sp)+,d0		;********
		ENDC

		rts

lb_0110		lea	lb_0292(pc),a2
		move	(a2),$0096(a1)

		IFEQ	DO_MY_DMA
		move	#$00ff,d7
lb_011c		dbf	d7,lb_011c
		ELSE
		bsr	wait_dma		;********
		ENDC

		move	#$820f,$0096(a1)

		IFEQ	DO_MY_DMA
		moveq	#$10,d7
lb_0128		dbf	d7,lb_0128
		ELSE
		bsr	wait_dma		;********
		ENDC

		btst	#$00,$0001(a2)
		beq.b	lb_0140
		move	#$0001,$00a4(a1)
		move	bin+($302-$2e4)(pc),$00a6(a1)
lb_0140		btst	#$01,$0001(a2)
		beq.b	lb_0154
		move	#$0001,$00b4(a1)
		move	bin+($328-$2e4)(pc),$00b6(a1)
lb_0154		btst	#$02,$0001(a2)
		beq.b	lb_0168
		move	#$0001,$00c4(a1)
		move	bin+($34e-$2e4)(pc),$00c6(a1)
lb_0168		btst	#$03,$0001(a2)
		beq.b	lb_017c
		move	#$0001,$00d4(a1)
		move	bin+($374-$2e4)(pc),$00d6(a1)
lb_017c		rts

lb_017e		tst.l	$0014(a6)
		beq	lb_005e
		clr.l	$0014(a6)
		lea	bin+($37c-$2e4)(pc),a3
		clr.l	d0
		move.b	$0024(a6),d0
		adda.l	d0,a3
		move.l	(a6),d0
		move.l	d0,d3
		adda.l	d0,a3
		clr.l	d6
		move.b	$0025(a6),d6
		move.l	#$00000009,d7
		clr.l	d1
		move.l	(a6),d0
		move.b	$00(a5,d0.l),d1
		lsl	#8,d1
		lea	bin+($77c-$2e4)(pc),a2
		add.l	a2,d1
		move.l	d1,$0010(a6)
		addq.l	#4,(a6)
		move.l	(a6),d0
		tst.b	$00(a5,d0.l)
		bpl	lb_005e
		clr.l	(a6)
		rts

lb_01cc		cmpi	#$0001,$0022(a6)
		bne	lb_01d6
lb_01d6		clr.l	d1
		clr.l	d2
		move.l	$0010(a6),a0
		move.l	$0004(a6),d0
		tst.b	$00(a0,d0.l)
		beq	lb_005e
		move.b	$00(a0,d0.l),d1
		move.b	$01(a0,d0.l),d2
		lsl	#1,d1
		lea	lb_0294(pc),a2
		add.l	a2,d1
		move.l	d1,a0
		move	(a0),$001e(a6)
		mulu	#$0020,d2
		lea	bin+($1a7c-$2e4)(pc),a2
		adda.l	d2,a2
		lea	(a2),a0
		move.l	(a0),d2
		lea	bin+($337c-$2e4)(pc),a2
		add.l	a2,d2
		move.l	d2,$0018(a6)
		move.l	$0004(a0),d2
		lsr.l	#1,d2
		move	d2,$001c(a6)
		move	$0008(a0),$0020(a6)
		move	$0022(a6),d2
		lea	lb_0292(pc),a2
		or	d2,(a2)
		rts

lb_0234		addq.l	#4,$0004(a6)
		cmpi.l	#$00000100,$0004(a6)
		bne	lb_005e
		clr.l	$0004(a6)
		move.l	#$00000001,$0014(a6)
		rts

lb_0252		move.l	$0010(a6),a0
		move.l	$0004(a6),d0
		cmpi.b	#$0f,$02(a0,d0.l)
		bne	lb_005e
		move.b	$03(a0,d0.l),$000b(a6)
		move.b	$03(a0,d0.l),$000f(a6)
		rts

lb_0272		move.l	$0010(a6),a0
		move.l	$0004(a6),d0
		cmpi.b	#$0c,$02(a0,d0.l)
		bne	lb_005e
		move.b	$03(a0,d0.l),$0021(a6)

		IFEQ	DO_MY_DMA
		move	$0020(a6),$0008(a4)
		ELSE
		move.l	d0,-(sp)		;********
		move	$0020(a6),d0
		mulu	hen_myvol(pc),d0
		divu	#64,d0
		move	d0,$0008(a4)
		move.l	(sp)+,d0		;********
		ENDC
		rts
	
lb_0292		dc	$0000
lb_0294		dc	$0000
lb_0296		dc	$0358,$0328,$02fa,$02d0,$02a6,$0280
		dc	$025c,$023a,$021a,$01fc,$01e0,$01c5,$01ac,$0194
		dc	$017d,$0168,$0153,$0140,$012e,$011d,$010d,$00fe
		dc	$00f0,$00e2,$00d6,$00ca,$00be,$00b4,$00aa,$00a0
		dc	$0097,$008f,$0087,$007f,$0078,$0071,$0071,$0071
		dc	$0071

bin		incbin	HenryInPanic_rep.bin


