DisassembleComFindInstr:
	move.l	a0,$98(a6)
	lea	AssemblerCodes(pc),a1
	jsr	_ReadMemWord(a6)
	move.w	d0,d1
	rol.w	#5,d1
	and.w	#$001e,d1
	move.w	0(a1,d1.w),d1
	lea	0(a1,d1.w),a1
	bra.s	DisassembleComFindInstr1a
DisassembleComFindInstrError:
	move.l	a2,a1
DisassembleComFindInstr1:
	move.l	$98(a6),a0
	jsr	_ReadMemWord(a6)
DisassembleComFindInstr1a:
	move.w	#$ffff,$a6(a6)		;Enable all EA modes
	move.w	#$ffff,$ac(a6)
DisassembleComFindInstr2:
	move.w	d0,d1
	and.w	(a1),d1
	cmp.w	2(a1),d1
	beq.s	DisassembleComFindInstr4
	addq.l	#8,a1
	move.b	(a1)+,d1
	ext.w	d1
	add.w	d1,a1
	bra.s	DisassembleComFindInstr2
DisassembleComFindInstr4:
	move.w	d0,d1
	move.w	(a1)+,d2
	addq.l	#2,a1
	move.l	(a1)+,d3
	move.b	(a1)+,d0
	ext.w	d0
	move.l	a1,a2
	add.w	d0,a2
	move.l	a1,$a0(a6)		;Name of instr
DisassembleComFindInstr5:
	move.l	a1,$b4(a6)
	cmp.l	a1,a2
	beq.s	DisassembleComFindInstr7
	tst.b	(a1)+
	bmi.s	DisassembleComFindInstr6
	bne.s	DisassembleComFindInstr5
DisassembleComFindInstr6:
	subq.l	#1,a1
DisassembleComFindInstr7:
	cmp.l	a1,a2
	beq	DisassembleComFindInstr40
	move.b	(a1)+,d0
	beq	DisassembleComFindInstr40
	cmp.b	#$8c,d0
	beq	DisassembleComFindInstr29
	cmp.b	#$8d,d0
	beq	DisassembleComFindInstr30
	cmp.b	#$8e,d0
	beq	DisassembleComFindInstr31
	cmp.b	#$8f,d0
	beq	DisassembleComFindInstr32
	cmp.b	#$90,d0
	beq	DisassembleComFindInstr33
	cmp.b	#$9a,d0
	beq	DisassembleComFindInstr34
	cmp.b	#$9b,d0
	beq	DisassembleComFindInstr35
	tst.w	d2
	bpl.s	DisassembleComFindInstr8a
DisassembleComFindInstr8:
	rol.w	#1,d1
	rol.w	#1,d2
	bmi.s	DisassembleComFindInstr8
DisassembleComFindInstr8a:
	cmp.b	#$80,d0
	beq	DisassembleComFindInstr9
	cmp.b	#$81,d0
	beq	DisassembleComFindInstr10
	cmp.b	#$82,d0
	beq	DisassembleComFindInstr11
	cmp.b	#$83,d0
	beq	DisassembleComFindInstr12
	cmp.b	#$84,d0
	beq	DisassembleComFindInstr14
	cmp.b	#$85,d0
	beq	DisassembleComFindInstr16
	cmp.b	#$86,d0
	beq	DisassembleComFindInstr18
	cmp.b	#$87,d0
	beq	DisassembleComFindInstr19
	cmp.b	#$88,d0
	beq	DisassembleComFindInstr18
	cmp.b	#$89,d0
	beq	DisassembleComFindInstr19
	cmp.b	#$8a,d0
	beq	DisassembleComFindInstr20
	cmp.b	#$8b,d0
	beq	DisassembleComFindInstr21
	cmp.b	#$94,d0
	beq	DisassembleComFindInstr22
	cmp.b	#$95,d0
	beq	DisassembleComFindInstr24
	cmp.b	#$96,d0
	beq	DisassembleComFindInstr25
	cmp.b	#$99,d0
	beq	DisassembleComFindInstr27
	cmp.b	#$9d,d0
	beq	DisassembleComFindInstr28
	bra	ComError
	
DisassembleComFindInstr9:		;Sz
	rol.w	#2,d1
	rol.w	#2,d2
	move.w	d1,d4
	and.w	#$0003,d4
	cmp.w	#$0003,d4
	beq	DisassembleComFindInstrError
	moveq	#$08,d0
	lsl.w	d4,d0
	move.w	d0,$a4(a6)		;SIZE OR COND
	bra	DisassembleComFindInstr7

DisassembleComFindInstr10:		;S
	rol.w	#1,d1
	rol.w	#1,d2
	move.w	d1,d4
	and.w	#$0001,d4
	moveq	#$10,d0
	lsl.w	d4,d0
	move.w	d0,$a4(a6)		;SIZE
	bra	DisassembleComFindInstr7

DisassembleComFindInstr11:		;Inv. S
	rol.w	#1,d1
	rol.w	#1,d2
	move.w	d1,d4
	and.w	#$0001,d4
	moveq	#$20,d0
	lsr.w	d4,d0
	move.w	d0,$a4(a6)		;SIZE
	bra	DisassembleComFindInstr7
DisassembleComFindInstr12:		;Source
	rol.w	#3,d1
	rol.w	#3,d2
	move.w	d1,d4
	and.w	#$0007,d4
	rol.w	#3,d1
	rol.w	#3,d2
	move.w	d1,d5
	and.w	#$0007,d5
	cmp.w	#$0007,d4
	bne.s	DisassembleComFindInstr13
	add.w	d5,d4
DisassembleComFindInstr13:
	move.w	d5,$a8(a6)		;Register nr
	move.w	#$0001,d5
	lsl.w	d4,d5
	move.w	d5,$a6(a6)
	bra	DisassembleComFindInstr7

DisassembleComFindInstr14:		;Destin
	rol.w	#3,d1
	rol.w	#3,d2
	move.w	d1,d4
	and.w	#$0007,d4
	rol.w	#3,d1
	rol.w	#3,d2
	move.w	d1,d5
	and.w	#$0007,d5
	cmp.w	#$0007,d4
	bne.s	DisassembleComFindInstr15
	add.w	d5,d4
DisassembleComFindInstr15:
	move.w	d5,$ae(a6)		;Register nr
	move.w	#$0001,d5
	lsl.w	d4,d5
	move.w	d5,$ac(a6)
	bra	DisassembleComFindInstr7

DisassembleComFindInstr16:		;Tindes
	rol.w	#3,d1
	rol.w	#3,d2
	move.w	d1,d5
	and.w	#$0007,d5
	rol.w	#3,d1
	rol.w	#3,d2
	move.w	d1,d4
	and.w	#$0007,d4
	cmp.w	#$0007,d4
	bne.s	DisassembleComFindInstr17
	add.w	d5,d4
DisassembleComFindInstr17:
	move.w	d5,$ae(a6)		;Register nr
	move.w	#$0001,d5
	lsl.w	d4,d5
	move.w	d5,$ac(a6)
	bra	DisassembleComFindInstr7

DisassembleComFindInstr18:		;Sar,Sdr
	rol.w	#3,d1
	rol.w	#3,d2
	move.w	d1,d4
	and.w	#$0007,d4
	move.w	d4,$a8(a6)
	bra	DisassembleComFindInstr7

DisassembleComFindInstr19:		;Dar,Ddr
	rol.w	#3,d1
	rol.w	#3,d2
	move.w	d1,d4
	and.w	#$0007,d4
	move.w	d4,$ae(a6)
	bra	DisassembleComFindInstr7

DisassembleComFindInstr20:		;Sdar
	rol.w	#1,d1
	rol.w	#1,d2
	move.w	d1,d4
	and.w	#$0001,d4
	move.w	#$0002,d5
	lsr.w	d4,d5
	move.w	d5,$a6(a6)
	bra.s	DisassembleComFindInstr18

DisassembleComFindInstr21:		;Ddar
	rol.w	#1,d1
	rol.w	#1,d2
	move.w	d1,d4
	and.w	#$0001,d4
	move.w	#$0002,d5
	lsr.w	d4,d5
	move.w	d5,$ac(a6)
	bra.s	DisassembleComFindInstr19

DisassembleComFindInstr22:		;Imm
	rol.w	#3,d1
	rol.w	#3,d2
	move.w	d1,d4
	and.w	#$0007,d4
	bne.s	DisassembleComFindInstr23
	move.w	#$0008,d4
DisassembleComFindInstr23:
	ext.l	d4
	move.l	d4,$a8(a6)
	move.w	#$0004,$b2(a6)		;Size
	bra	DisassembleComFindInstr7

DisassembleComFindInstr24:		;Immediate
	rol.w	#8,d1
	rol.w	#8,d2
	move.w	d1,d4
	and.w	#$00ff,d4
	ext.w	d4
	ext.l	d4
	move.l	d4,$a8(a6)
	move.w	#$0020,$b2(a6)		;Size
	bra	DisassembleComFindInstr7

DisassembleComFindInstr25:		;Displace
	rol.w	#8,d1
	rol.w	#8,d2
	move.w	d1,d4
	and.w	#$00ff,d4
	ext.w	d4
	bne.s	DisassembleComFindInstr26
	jsr	_ReadMemWord(a6)
	move.w	d0,d4
DisassembleComFindInstr26:
	ext.l	d4
	move.l	d4,$a8(a6)
	bra	DisassembleComFindInstr7

DisassembleComFindInstr27:		;Vect
	rol.w	#4,d1
	rol.w	#4,d2
	move.w	d1,d4
	and.w	#$000f,d4
	ext.l	d4
	move.l	d4,$a8(a6)
	move.w	#$0004,$b2(a6)
	bra	DisassembleComFindInstr7

DisassembleComFindInstr28:		;Cond
	rol.w	#4,d1
	rol.w	#4,d2
	move.w	d1,d4
	and.w	#$000f,d4
	move.w	d4,$b2(a6)
	bra	DisassembleComFindInstr7

DisassembleComFindInstr29:		;Imm Byte
	move.w	#$0008,$a4(a6)
	bra	DisassembleComFindInstr7

DisassembleComFindInstr30:		;Imm Word
	move.w	#$0010,$a4(a6)
	bra	DisassembleComFindInstr7

DisassembleComFindInstr31:		;Displace word
	jsr	_ReadMemWord(a6)
	ext.l	d0
	move.l	d0,$ae(a6)
	bra	DisassembleComFindInstr7

DisassembleComFindInstr32:		;Imm Long
	move.w	#$0020,$a4(a6)
	bra	DisassembleComFindInstr7

DisassembleComFindInstr33:		;Imm 5bits
	move.w	#$0005,$a4(a6)
	bra	DisassembleComFindInstr7

DisassembleComFindInstr34:		;Reglistmask source
	jsr	_ReadMemWord(a6)
	move.w	d0,$a8(a6)
	bra	DisassembleComFindInstr7

DisassembleComFindInstr35:		;Reglistmask dest
	jsr	_ReadMemWord(a6)
	move.w	d0,$ae(a6)
	bra	DisassembleComFindInstr7

DisassembleComFindInstr40:
	and.w	d3,$ac(a6)
	swap	d3
	and.w	d3,$a6(a6)
	tst.w	d3
	beq.s	DisassembleComFindInstr41
	tst.w	$a6(a6)
	beq	DisassembleComFindInstrError
DisassembleComFindInstr41:
	swap	d3
	tst.w	d3
	beq.s	DisassembleComFindInstr42
	tst.w	$ac(a6)
	beq	DisassembleComFindInstrError
DisassembleComFindInstr42:		;Read Source Operand
	move.w	$a6(a6),d0
	cmp.w	#$0020,d0
	beq.s	DisassembleComFindInstr45
	cmp.w	#$0040,d0
	beq.s	DisassembleComFindInstr45
	cmp.w	#$0080,d0
	beq.s	DisassembleComFindInstr46
	cmp.w	#$0100,d0
	beq.s	DisassembleComFindInstr47
	cmp.w	#$0200,d0
	beq.s	DisassembleComFindInstr45
	cmp.w	#$0400,d0
	beq.s	DisassembleComFindInstr45
	cmp.w	#$0800,d0
	beq.s	DisassembleComFindInstr48
DisassembleComFindInstr43:
	move.w	$ac(a6),d0
	cmp.w	#$0020,d0
	beq	DisassembleComFindInstr53
	cmp.w	#$0040,d0
	beq	DisassembleComFindInstr53
	cmp.w	#$0080,d0
	beq	DisassembleComFindInstr54
	cmp.w	#$0100,d0
	beq	DisassembleComFindInstr55
	cmp.w	#$0200,d0
	beq.s	DisassembleComFindInstr53
	cmp.w	#$0400,d0
	beq.s	DisassembleComFindInstr53
	cmp.w	#$0800,d0
	beq	DisassembleComFindInstr56
DisassembleComFindInstr44:
	move.l	a0,$9c(a6)
	rts

DisassembleComFindInstr45:	;d(An),d(An,Xi),d(PC),d(PC,Xi)
	jsr	_ReadMemWord(a6)
	move.w	d0,$aa(a6)
	bra.s	DisassembleComFindInstr43

DisassembleComFindInstr46:			;Abs.W
	move.l	a0,$b8(a6)	;Address of adress
	jsr	_ReadMemWord(a6)
	ext.l	d0
	move.l	d0,$a8(a6)
	bra.s	DisassembleComFindInstr43

DisassembleComFindInstr47:			;Abs.L
	move.l	a0,$b8(a6)	;Address of adress
	jsr	_ReadMemWord(a6)
	swap	d0
	jsr	_ReadMemWord(a6)
	move.l	d0,$a8(a6)
	bra.s	DisassembleComFindInstr43

DisassembleComFindInstr48:			;Immediate
	jsr	_ReadMemWord(a6)
	move.w	$a4(a6),d1
	cmp.w	#$0005,d1
	beq.s	DisassembleComFindInstr50
	cmp.w	#$0008,d1
	beq.s	DisassembleComFindInstr51
	cmp.w	#$0010,d1
	beq.s	DisassembleComFindInstr52
	swap	d0
	jsr	_ReadMemWord(a6)
DisassembleComFindInstr49:		
	move.l	d0,$a8(a6)
	bra	DisassembleComFindInstr43
DisassembleComFindInstr50:
	and.w	#$001f,d0
DisassembleComFindInstr51:
	and.w	#$00ff,d0
DisassembleComFindInstr52:
	ext.l	d0
	bra.s	DisassembleComFindInstr49

DisassembleComFindInstr53:	;d(An),d(An,Xi),d(PC),d(PC,Xi)
	jsr	_ReadMemWord(a6)
	move.w	d0,$b0(a6)
	bra.s	DisassembleComFindInstr44

DisassembleComFindInstr54:			;Abs.W
	move.l	a0,$bc(a6)	;Address of adress
	jsr	_ReadMemWord(a6)
	ext.l	d0
	move.l	d0,$ae(a6)
	bra	DisassembleComFindInstr44

DisassembleComFindInstr55:			;Abs.L
	move.l	a0,$bc(a6)	;Address of adress
	jsr	_ReadMemWord(a6)
	swap	d0
	jsr	_ReadMemWord(a6)
	move.l	d0,$ae(a6)
	bra	DisassembleComFindInstr44

DisassembleComFindInstr56:			;Immediate
	jsr	_ReadMemWord(a6)
	move.w	$a4(a6),d1
	cmp.w	#$0005,d1
	beq.s	DisassembleComFindInstr58	
	cmp.w	#$0008,d1
	beq.s	DisassembleComFindInstr59
	cmp.w	#$0010,d1
	beq.s	DisassembleComFindInstr60
	swap	d0
	jsr	_ReadMemWord(a6)
DisassembleComFindInstr57:		
	move.l	d0,$ae(a6)
	bra	DisassembleComFindInstr44
DisassembleComFindInstr58:
	and.w	#$001f,d0
DisassembleComFindInstr59:
	and.w	#$00ff,d0
DisassembleComFindInstr60:
	ext.l	d0
	bra.s	DisassembleComFindInstr57

