
; This sourcecode was written on the ASM-One V1.02 assembler (the best!)
; I think if you`re using this source you`ll be able to modify it for your
; prefered assembler...

;				Synthetic/The Incal Inc.


 *****************************************************************************
 * FAST V2.1d 			(c) by Synthetic & Errox/The Incal Inc.	     *
 * FAST V2.1d Decruncher	[V1.1]	(c) by Synthetic/The Incal Inc.	     *
 *****************************************************************************

;==============================================================================

Crunch_beg=$a0000			; Startadress of crunched prog

Crunch_lenght=7187			; Lenght of crunched prog

Crunch_end=Crunch_beg+Crunch_lenght

DeCrunch_to=$b0000			; Decrunchadress

** used regs: a0-a2(a3) , d0-d3

>extern	"dh0:synthetic.fpkd",Crunch_Beg

;==============================================================================

	lea	Crunch_beg+4,a0
	move.b	(a0)+,d0
	lea	Crunch_end,a1		; Crunch_end-Crunch_beg-5(a0)
	lea	DeCrunch_to,a2
	lea	$dff180,a3
	moveq	#-1,d3
	bra.b	lab1
lab4:
	move.b	d2,(a2)+
lab1:
	move.w	d2,(a3)
	cmp.l	a0,a1
	ble.b	End
	move.b	(a0)+,d2
	cmp.b	d0,d2
	bne.b	lab4
	moveq	#0,d1
	move.b	(a0)+,d1
	beq.b	lab4
	cmp.b	d3,d1
	bne.b	lab6
	moveq	#0,d2
	move.b	(a0)+,d1
	move.b	(a0)+,d2
	sub.w	d1,d2
	lsl.w	#8,d1
	add.w	d2,d1
lab6:
	move.b	(a0)+,d2
loop:
	move.b	d2,(a2)+
	dbf	d1,loop
	bra.b	lab1
End:
	illegal

