
	MACHINE 68020

	SECTION	Z80,CODE

	XDEF	_JUMPTBL
	XDEF	_START00
	XDEF	_RESET00
	XDEF	_PAUSE00
	XREF	_SIGMASK
	XREF	_PROGCOUNT
	XREF	_CINST
	XREF	_READY
	XREF	_TRACE
	XREF	_CASSPTR
	XREF	_CHL
	XREF	_CBC
	XREF	_CDE
	XREF	_CIX
	XREF	_CIY
	XREF	_CAF
	XREF	_CSP
	XREF	_rom
	XREF	_scrn
	XREF	_chars
	XDEF	_screenwrite

DEEBUG	EQU	0	; MAKE 0 TO DISABLE DEBUG CODE

*	A0 = amiga address of Z80 $0000
*	A1 = ACTUAL ADDRESS THAT IX POINTS TO
*	A2 = amiga address of current Z80 PC (not the actual Z80 PC)
*	A3 = base address of instruction vector table
*	A4 = AMIGA address of SP
*	A5 = ACTUAL ADDRESS THAT IY POINTS AT
*	A6 = BASE ADDRESS OF LOOKUP TABLES FOR FLAGS,H FLAG,PARITY.


*	D1.W = current opcode + following single byte operand
*	(ALSO AVAILABLE FOR TEMPORARY USE WITHIN AN EMULATED INSTRUCTION) 
*	D0.B = current A  value
*	D2.W = current HL value
*	D3.W = current BC value
* top 	D3.W = CURRENT DE value
*	D4   = FLAGS (680X0 FLAGS NOT Z-80)
*	D5   = FLAGS H AND N FROM Z-80
*	D7.L = TEMPORARY WORK REGISTER
*	D6.L = TEMPORARY WORK REGISTER 2


*	Z80 flags :	7	6	5	4	3	2	1	0

*			S	Z	-	H	-	P/V	N	C


*	680x0 flags	-	-	-	X	S	Z	V	C



_START00:	MOVEM.L	D0-D7/A0-A6,-(SP)
	MOVEA.L	(4).W,A6
	MOVE.B	#$FF,D0
	JSR	(-$14A,A6)
	MOVEQ	#0,D1
	BSET	D0,D1
	MOVE.L	D1,_SIGMASK	; SAVE IN _SIGMASK IN MAIN PROG
	BSR.W	RESTRT
	MOVEA.L	_JUMPTBL,A3
	ADDA.L	#$20000,A3
	MOVEA.L	#_rom,A2
	MOVEA.L	#_rom,A0
	MOVEA.L	#PARITY,A6
	MOVEA.L	A0,A4
	MOVEA.L	A0,A1
	MOVEA.L	A0,A5
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

NMI:
	BSR.B	RESTRT
	MOVEA.L	_JUMPTBL,A3
	ADDA.L	#$20000,A3
	MOVEA.L	#_rom,A2
	MOVEA.L	#_rom,A0
	MOVEA.L	#PARITY,A6
	MOVEA.L	A0,A4
	MOVEA.L	A0,A1
	MOVEA.L	A0,A5
	LEA	($66,A2),A2
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

PAUSE:
	MOVEM.L	D0-D7/A0-A6,-(SP)
	SUBQ.L	#2,A2
	SUBA.L	A0,A2
	MOVE.W	A2,_PROGCOUNT
	BSR.B	RESTRT
	MOVEA.L	(4).W,A6
	MOVE.L	_SIGMASK,D0
	JSR	(-$13E,A6)
	MOVEM.L	(SP)+,D0-D7/A0-A6
	MOVEQ	#0,D7
	MOVE.W	_PROGCOUNT,D7
	MOVEA.L	A0,A2
	ADDA.L	D7,A2
	MOVE.W	(A2)+,D1
	JMP	([A3,D1.W*4])

DEBUG:	MOVEM.L	D0-D7/A0-A6,-(SP)
	SUBQ.L	#2,A2
	MOVE.L	(A2),_CINST
	SUBA.L	A0,A2
	MOVE.W	A2,_PROGCOUNT
	MOVE.W	D2,_CHL
	MOVE.W	D3,_CBC
	SWAP	D3
	MOVE.W	D3,_CDE
	SWAP	D3
	SUBA.L	A0,A1
	MOVE.W	A1,_CIX
	SUBA.L	A0,A4
	MOVE.W	A4,_CSP
	SUBA.L	A0,A5
	MOVE.W	A5,_CIY
	ANDI.W	#$1F,D4
	MOVE.B	($200,A6,D4.W),D7
	OR.B	D5,D7
	ROL.W	#8,D7
	MOVE.B	D0,D7
	ROL.W	#8,D7
	MOVE.W	D7,_CAF
	MOVEQ	#1,D7
	MOVE.W	D7,_READY
	MOVE.W	_TRACE,D7
	BEQ.B	.L1
	MOVEA.L	(4).W,A6
	MOVE.L	_SIGMASK,D0
	JSR	(-$13E,A6)
.L1:	MOVEM.L	(SP)+,D0-D7/A0-A6
	JMP	([A3,D1.W*4])


RESTRT:
	MOVEA.L	(4).W,A6
	JSR	(-$84,A6)
	MOVEA.L	#MNTBL,A0
	MOVEA.L	_JUMPTBL,A1
	MOVE.W	#$FF,D1
.L1:	MOVE.W	#$FF,D0
	MOVEA.L	(A0)+,A5
.L2:	MOVE.L	A5,(A1)+
	DBRA	D0,.L2
	DBRA	D1,.L1

	MOVEA.L	#CBTABLE,A0
	MOVEA.L	_JUMPTBL,A1
	ADDA.L	#$12C00,A1
	MOVE.W	#$FF,D1
.L4:	MOVE.L	(A0)+,(A1)+
	DBRA	D1,.L4

	MOVEA.L	#DDTABLE,A0
	MOVEA.L	_JUMPTBL,A1
	ADDA.L	#$17400,A1
	MOVE.W	#$FF,D1
.L5:	MOVE.L	(A0)+,(A1)+
	DBRA	D1,.L5

	MOVEA.L	#FDTABLE,A0
	MOVEA.L	_JUMPTBL,A1
	ADDA.L	#$1F400,A1
	MOVE.W	#$FF,D1
.L6:	MOVE.L	(A0)+,(A1)+
	DBRA	D1,.L6

	MOVEA.L	#EDTABLE,A0
	MOVEA.L	_JUMPTBL,A1
	ADDA.L	#$1B400,A1
	MOVE.W	#$FF,D1
.L7:	MOVE.L	(A0)+,(A1)+
	DBRA	D1,.L7
	MOVEA.L	(4).W,A6
	JSR	(-$8A,A6)
	RTS

_RESET00:	; RESETS THE Z-80 TO 0000 AFTER THE CURRENT INSTRUCTION

	MOVEM.L	A0-A6/D0-D7,-(SP)	
	MOVE.L	4,A6
	JSR	-$0084(A6)	; Forbid()
	MOVE.L	_JUMPTBL,A1
	MOVE.W	#$00FF,D1
.L1:	MOVE.W	#$00FF,D0
	MOVE.L	#NMI,A5
.L2:	MOVE.L	A5,(A1)+
	DBRA	D0,.L2
	DBRA	D1,.L1
	MOVE.L	4,A6
	JSR	-$008A(A6)	; Permit()
	MOVEM.L	(SP)+,A0-A6/D0-D7
	RTS	

_PAUSE00:	; PAUSES THE Z80 AFTER THE CURRENT INSTRUCTION (CALLED FROM MAIN PROCESS)

	MOVEM.L	D0-D7/A0-A6,-(SP)
	MOVEA.L	(4).W,A6
	JSR	(-$84,A6)
	MOVEA.L	_JUMPTBL,A1
	MOVE.W	#$FF,D1
.L1:	MOVE.W	#$FF,D0
	MOVEA.L	#PAUSE,A5
.L2:	MOVE.L	A5,(A1)+
	DBRA	D0,.L2
	DBRA	D1,.L1
	MOVEA.L	(4).W,A6
	JSR	(-$8A,A6)
	MOVEM.L	(SP)+,D0-D7/A0-A6
	RTS

_screenwrite:

*	ON ENTRY D1.W	HOLDS #$XXXX (3C00-3FFF)
*		 D6.B	HOLDS ASCII CHAR 00-FF

	MOVEM.L	D1/D2/A0/A2,-(SP)

	ANDI.W	#$3FF,D1
	LEA	_scrn,A0
	MOVEA.L	(A0,D1.L*4),A0
	MOVEQ	#0,D1
	MOVE.B	D6,D1
	EXT.L	D1
	MOVE.L	D1,D2
	ASL.L	#3,D2
	ADD.L	D1,D2
	LEA	_chars,A2
	ADDA.L	D2,A2
	MOVE.W	#$40,D2
	MOVE.B	(A2)+,(A0)
	ADD.W	D2,A0                  
	MOVE.B	(A2)+,(A0)
	ADD.W	D2,A0                  
	MOVE.B	(A2)+,(A0)
	ADD.W	D2,A0                  
	MOVE.B	(A2)+,(A0)
	ADD.W	D2,A0                  
	MOVE.B	(A2)+,(A0)
	ADD.W	D2,A0                  
	MOVE.B	(A2)+,(A0)
	ADD.W	D2,A0                  
	MOVE.B	(A2)+,(A0)
	ADD.W	D2,A0                  
	MOVE.B	(A2)+,(A0)
	ADD.W	D2,A0                  
	MOVE.B	(A2)+,(A0)

	MOVEM.L	(SP)+,D1/D2/A0/A2
	RTS

ILLEGAL:
	MOVEM.L	(SP)+,D0-D7/A0-A6
	RTS

MAIN00:	SUBQ.L	#1,A2		; NOP
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MAIN01:	ROL.W	#8,D1		; LD BC,XXXX
	MOVE.B	(A2)+,D1
	ROL.W	#8,D1
	MOVE.W	D1,D3
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MAIN02:	MOVEQ	#0,D1		; LD (BC),A
	MOVE.W	D3,D1
	CMPI.W	#$4000,D1
	BCS.B	.L1
	MOVE.B	D0,(A0,D1.L)
	SUBQ.L	#1,A2
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

.L1	CMPI.W	#$3BFF,D1
	BHI.B	.L2
	SUBQ.L	#1,A2
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

.L2	MOVE.B	D0,D6
	MOVE.B	D0,(A0,D1.L)
	BSR.W	_screenwrite
	SUBQ.L	#1,A2
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MAIN03:				; INC BC
	ADDQ.W	#1,D3
	SUBQ.L	#1,A2
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MAIN04:				; INC B
	MOVE.B	D4,D6
	ROL.W	#8,D3
	MOVE.W	D4,CCR
	ADDQ.B	#1,D3
	MOVE.W	CCR,D4
	ANDI.W	#$EE,D4
	ANDI.W	#$11,D6
	OR.B	D6,D4
	MOVE.B	D3,D7
	ROL.W	#8,D3
	ANDI.W	#$FF,D7
	MOVE.B	($220,A6,D7.W),D5
	SUBQ.L	#1,A2
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MAIN05:				; DEC B
	MOVE.W	D4,D6
	ROL.W	#8,D3
	MOVE.W	D4,CCR
	SUBQ.B	#1,D3
	MOVE.W	CCR,D4
	ANDI.W	#$EE,D4
	ANDI.W	#$11,D6
	OR.B	D6,D4
	MOVE.B	D3,D7
	ROL.W	#8,D3
	ANDI.W	#$FF,D7
	MOVE.B	($320,A6,D7.W),D5
	SUBQ.L	#1,A2
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MAIN06:				; LD B,X
	ROL.W	#8,D3
	MOVE.B	D1,D3
	ROL.W	#8,D3
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MAIN07:				; RLCA
	ROL.B	#1,D0
	SCS	D7
	ANDI.W	#$EE,D4
	ANDI.W	#$11,D7
	OR.B	D7,D4
	MOVEQ	#0,D5
	SUBQ.L	#1,A2
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MAIN08:				; EX AF,AF'
	MOVE.W	D0,REGA
	MOVE.W	D4,FLAGS
	MOVE.W	D5,XFLAGS
	MOVE.W	AREGA,D0
	MOVE.W	AFLAGS,D4
	MOVE.W	XAFLAGS,D5
	MOVE.W	REGA,AREGA
	MOVE.W	FLAGS,AFLAGS
	MOVE.W	XFLAGS,XAFLAGS
	SUBQ.L	#1,A2
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MAIN09:				; ADD HL,BC
	ANDI.B	#$EE,D4		; MASK X,C
	ADD.W	D3,D2
	SCS.B	D7
	ANDI.B	#$11,D7
	OR.B	D7,D4
	MOVEQ	#0,D5		; SET H=0 N=0
	SUBQ.L	#1,A2
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MAIN0A:				; LD A,(BC)
	MOVEQ	#0,D1
	MOVE.W	D3,D1
	MOVE.B	(A0,D1.L),D0
	SUBQ.L	#1,A2
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MAIN0B:				; DEC BC
	SUBQ.W	#1,D3
	SUBQ.L	#1,A2
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MAIN0C:				; INC C
	MOVE.W	D4,D6
	MOVE.W	D4,CCR
	ADDQ.B	#1,D3
	MOVE.W	CCR,D4
	ANDI.W	#$EE,D4		; CLEAR X,C
	ANDI.W	#$11,D6
	OR.B	D6,D4		; SET X,C IF PREVIUOSLY SET
	MOVE.B	D3,D7
	ANDI.W	#$00FF,D7	; EXT D7 FOR INDEX INTO ADD TABLE
	MOVE.B	$220(A6,D7.W),D5; SET EXTENDED Z80 FLG TO N=0 H=HALF
	SUBQ.L	#1,A2
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MAIN0D:				; DEC C
	MOVE.W	D4,D6
	MOVE.W	D4,CCR
	SUBQ.B	#1,D3
	MOVE.W	CCR,D4
	ANDI.W	#$EE,D4		; CLEAR X,C
	ANDI.W	#$11,D6
	OR.B	D6,D4		; SET X,C IF PREVIUOSLY SET
	MOVE.B	D3,D7
	ANDI.W	#$00FF,D7	; EXT D7 FOR INDEX INTO SUB TABLE
	MOVE.B	$320(A6,D7.W),D5; SET EXTENDED Z80 FLG TO N=1 H=HALF
	SUBQ.L	#1,A2
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MAIN0E:				; LD C,X
	MOVE.B	D1,D3
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MAIN0F:				; RRCA
	ROR.B	#1,D0
	SCS	D7
	ANDI.W	#$EE,D4		; ONLY AFFECTS X,C
	ANDI.W	#$11,D7
	OR.B	D7,D4
	MOVEQ.B	#0,D5		; SET EXTENDED Z80 FLG TO N=0 H=0
	SUBQ.L	#1,A2
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MAIN10:				; DJNZ	X
	ROL.W	#8,D3
	SUBQ.B	#1,D3
	BEQ.B	.L1
	ROL.W	#8,D3
	EXT.W	D1
	ADDA.W	D1,A2
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

.L1	ROL.W	#8,D3
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF


MAIN11:				; LD DE,XXXX
	ROL.W	#8,D1
	MOVE.B	(A2)+,D1
	ROL.W	#8,D1
	SWAP	D3
	MOVE.W	D1,D3
	SWAP	D3
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF


MAIN12:				; LD (DE),A
	MOVEQ	#0,D1
	SWAP	D3
	MOVE.W	D3,D1
	SWAP	D3
	CMPI.W	#$4000,D1	; if DE >= 4000 do the instruction
	BCS.B	.L1
	MOVE.B	D0,(A0,D1.L)
	SUBQ.L	#1,A2
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

.L1
	CMPI.W	#$3BFF,D1	; if DE <= 3C00 we are in ROM so do nothing
	BHI.B	.L2
	SUBQ.L	#1,A2
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF
.L2
	MOVE.B	D0,D6		; DE is pointing at the screen so update the
	MOVE.B	D0,(A0,D1.L)	; screen with A
	BSR	_screenwrite
	SUBQ.L	#1,A2
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MAIN13:				; INC DE
	SWAP	D3
	ADDQ.W	#1,D3
	SWAP	D3
	SUBQ.L	#1,A2
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MAIN14:				; INC D
	MOVE.W	D4,D6
	ROL.L	#8,D3
	MOVE.W	D4,CCR
	ADDQ.B	#1,D3
	MOVE.W	CCR,D4
	ANDI.W	#$EE,D4		; CLEAR X,C
	ANDI.W	#$11,D6
	OR.B	D6,D4		; SET X,C IF PREVIUOSLY SET
	MOVE.B	D3,D7
	ROR.L	#8,D3
	ANDI.W	#$00FF,D7	; EXT D7 FOR INDEX INTO ADD TABLE
	MOVE.B	$220(A6,D7.W),D5; SET EXTENDED Z80 FLG TO N=0 H=HALF
	SUBQ.L	#1,A2
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MAIN15:				; DEC D
	MOVE.W	D4,D6
	ROL.L	#8,D3
	MOVE.W	D4,CCR
	SUBQ.B	#1,D3
	MOVE.W	CCR,D4
	ANDI.W	#$EE,D4		; CLEAR X,C
	ANDI.W	#$11,D6
	OR.B	D6,D4		; SET X,C IF PREVIUOSLY SET
	MOVE.B	D3,D7
	ROR.L	#8,D3
	ANDI.W	#$00FF,D7	; EXT D7 FOR INDEX INTO SUB TABLE
	MOVE.B	$320(A6,D7.W),D5; SET EXTENDED Z80 FLG TO N=1 H=HALF
	SUBQ.L	#1,A2
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MAIN16:				; LD D,X
	ROL.L	#8,D3
	MOVE.B	D1,D3
	ROR.L	#8,D3
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MAIN17:				; RLA
	MOVE.W	D4,CCR
	ROXL.B	#1,D0
	SCS	D7
	ANDI.W	#$EE,D4		; ONLY AFFECTS X,C
	ANDI.W	#$11,D7
	OR.B	D7,D4
	MOVEQ.B	#0,D5		; SET EXTENDED Z80 FLG TO N=0 H=0
	SUBQ.L	#1,A2
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MAIN18:				; JR X
	EXT.W	D1
	ADDA.W	D1,A2
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MAIN19:				; ADD HL,DE
	ANDI.B	#$EE,D4		; MASK X,C
	MOVE.L	D3,D1
	SWAP	D1
	ADD.W	D1,D2
	SCS.B	D7
	ANDI.B	#$11,D7
	OR.B	D7,D4
	MOVEQ	#0,D5		; SET H=0 N=0
	SUBQ.L	#1,A2
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MAIN1A:				; LD A,(DE)
	MOVEQ	#0,D1
	SWAP	D3
	MOVE.W	D3,D1
	SWAP	D3
	MOVE.B	(A0,D1.L),D0
	SUBQ.L	#1,A2
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MAIN1B:				; DEC DE
	SWAP	D3
	SUBQ.W	#1,D3
	SWAP	D3
	SUBQ.L	#1,A2
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MAIN1C:				; INC E
	MOVE.W	D4,D6
	SWAP	D3
	MOVE.W	D4,CCR
	ADDQ.B	#1,D3
	MOVE.W	CCR,D4
	ANDI.W	#$EE,D4		; CLEAR X,C
	ANDI.W	#$11,D6
	OR.B	D6,D4		; SET X,C IF PREVIUOSLY SET
	MOVE.B	D3,D7
	SWAP	D3
	ANDI.W	#$00FF,D7	; EXT D7 FOR INDEX INTO ADD TABLE
	MOVE.B	$220(A6,D7.W),D5; SET EXTENDED Z80 FLG TO N=0 H=HALF
	SUBQ.L	#1,A2
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MAIN1D:				; DEC E
	MOVE.W	D4,D6
	SWAP	D3
	MOVE.W	D4,CCR
	SUBQ.B	#1,D3
	MOVE.W	CCR,D4
	ANDI.W	#$EE,D4		; CLEAR X,C
	ANDI.W	#$11,D6
	OR.B	D6,D4		; SET X,C IF PREVIUOSLY SET
	MOVE.B	D3,D7
	SWAP	D3
	ANDI.W	#$00FF,D7	; EXT D7 FOR INDEX INTO SUB TABLE
	MOVE.B	$320(A6,D7.W),D5; SET EXTENDED Z80 FLG TO N=1 H=HALF
	SUBQ.L	#1,A2
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MAIN1E:				; LD E,X
	SWAP	D3
	MOVE.B	D1,D3
	SWAP	D3
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MAIN1F:				; RRA
	MOVE.W	D4,CCR
	ROXR.B	#1,D0
	SCS	D7
	ANDI.W	#$EE,D4		; ONLY AFFECTS X,C
	ANDI.W	#$11,D7
	OR.B	D7,D4
	MOVEQ.B	#0,D5		; SET EXTENDED Z80 FLG TO N=0 H=0
	SUBQ.L	#1,A2
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MAIN20:				; JR NZ,X
	EXT.W	D1
	MOVE.W	D4,CCR
	BEQ.B	M201
	ADDA.W	D1,A2
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

M201:	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MAIN21:				; LD HL,XXXX
	ROL.W	#8,D1
	MOVE.B	(A2)+,D1
	ROL.W	#8,D1
	MOVE.W	D1,D2
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MAIN22:				; LD (XXXX),HL
	ROL.W	#8,D1
	MOVE.B	(A2)+,D1
	ROL.W	#8,D1
	MOVEQ	#0,D7
	MOVE.W	D1,D7
	ROL.W	#8,D2
	MOVE.W	D2,(A0,D7.L)
	ROL.W	#8,D2
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MAIN23:				; INC HL
	ADDQ.W	#1,D2
	SUBQ.L	#1,A2
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MAIN24:				; INC H
	MOVE.W	D4,D6
	ROL.W	#8,D2
	MOVE.W	D4,CCR
	ADDQ.B	#1,D2
	MOVE.W	CCR,D4
	ANDI.W	#$EE,D4		; CLEAR X,C
	ANDI.W	#$11,D6
	OR.B	D6,D4		; SET X,C IF PREVIUOSLY SET
	MOVE.B	D2,D7
	ROL.W	#8,D2
	ANDI.W	#$00FF,D7	; EXT D7 FOR INDEX INTO ADD TABLE
	MOVE.B	$220(A6,D7.W),D5; SET EXTENDED Z80 FLG TO N=0 H=HALF
	SUBQ.L	#1,A2
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MAIN25:				; DEC H
	MOVE.W	D4,D6
	ROL.W	#8,D2
	MOVE.W	D4,CCR
	SUBQ.B	#1,D2
	MOVE.W	CCR,D4
	ANDI.W	#$EE,D4		; CLEAR X,C
	ANDI.W	#$11,D6
	OR.B	D6,D4		; SET X,C IF PREVIUOSLY SET
	MOVE.B	D2,D7
	ROL.W	#8,D2
	ANDI.W	#$00FF,D7	; EXT D7 FOR INDEX INTO SUB TABLE
	MOVE.B	$320(A6,D7.W),D5; SET EXTENDED Z80 FLG TO N=1 H=HALF
	SUBQ.L	#1,A2
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MAIN26:				; LD H,X
	ROL.W	#8,D2
	MOVE.B	D1,D2
	ROL.W	#8,D2
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MAIN27:
	SUBQ.L	#1,A2
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MAIN28:				; JR Z,X
	EXT.W	D1
	MOVE.W	D4,CCR
	BNE.B	M281
	ADDA.W	D1,A2
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

M281:	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MAIN29:				; ADD HL,HL
	ANDI.B	#$EE,D4		; MASK X,C
	ADD.W	D2,D2
	SCS.B	D7
	ANDI.B	#$11,D7
	OR.B	D7,D4
	MOVEQ	#0,D5		; SET H=0 N=0
	SUBQ.L	#1,A2
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MAIN2A:				; LD HL,(XXXX)
	ROL.W	#8,D1
	MOVE.B	(A2)+,D1
	ROL.W	#8,D1
	MOVEQ	#0,D7
	MOVE.W	D1,D7
	MOVE.W	(A0,D7.L),D2
	ROL.W	#8,D2
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MAIN2B:				; DEC HL
	SUBQ.W	#1,D2
	SUBQ.L	#1,A2
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MAIN2C:				; INC L
	MOVE.W	D4,D6
	MOVE.W	D4,CCR
	ADDQ.B	#1,D2
	MOVE.W	CCR,D4
	ANDI.W	#$EE,D4		; CLEAR X,C
	ANDI.W	#$11,D6
	OR.B	D6,D4		; SET X,C IF PREVIUOSLY SET
	MOVE.B	D2,D7
	ANDI.W	#$00FF,D7	; EXT D7 FOR INDEX INTO ADD TABLE
	MOVE.B	$220(A6,D7.W),D5; SET EXTENDED Z80 FLG TO N=0 H=HALF
	SUBQ.L	#1,A2
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MAIN2D:				; DEC L
	MOVE.W	D4,D6
	MOVE.W	D4,CCR
	SUBQ.B	#1,D2
	MOVE.W	CCR,D4
	ANDI.W	#$EE,D4		; CLEAR X,C
	ANDI.W	#$11,D6
	OR.B	D6,D4		; SET X,C IF PREVIUOSLY SET
	MOVE.B	D2,D7
	ANDI.W	#$00FF,D7	; EXT D7 FOR INDEX INTO SUB TABLE
	MOVE.B	$320(A6,D7.W),D5; SET EXTENDED Z80 FLG TO N=1 H=HALF
	SUBQ.L	#1,A2
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MAIN2E:				; LD L,X
	MOVE.B	D1,D2
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MAIN2F:				; CPL
	NOT.B	D0
	MOVE.B	#$12,D5
	SUBQ.L	#1,A2	
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MAIN30:				; JR NC,X
	EXT.W	D1
	MOVE.W	D4,CCR
	BCS.B	M301
	ADDA.W	D1,A2
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

M301:	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MAIN31:				; LD SP,XXXX
	ROL.W	#8,D1
	MOVE.B	(A2)+,D1
	ROL.W	#8,D1
	MOVEQ	#0,D7
	MOVE.W	D1,D7
	MOVE.L	A0,A4
	ADDA.L	D7,A4
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MAIN32:				; LD (XXXX),A
	MOVEQ	#0,D7
	ROL.W	#8,D1
	MOVE.B	(A2)+,D1
	ROL.W	#8,D1
	MOVE.W	D1,D7
	CMPI.W	#$4000,D7	; if XXXX >= 4000 do the instruction
	BCS.B	.L1
	MOVE.B	D0,(A0,D7.L)
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

.L1
	CMPI.W	#$3BFF,D7	; if XXXX <= 3C00 we are in ROM so do nothing
	BHI.B	.L2
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF
.L2
	MOVE.B	D0,D6		; XXXX is pointing at the screen so update the
	MOVE.B	D0,(A0,D7.L)	; screen with A
	MOVE.L	D7,D1
	BSR	_screenwrite
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF


MAIN33:				; INC SP
	ADDQ.L	#1,A4
	SUBQ.L	#1,A2
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MAIN34:				; INC (HL)
	MOVE.W	D4,D7
	MOVEQ	#0,D1
	MOVE.W	D2,D1
	CMPI.W	#$4000,D1	; if HL >= 4000 do the instruction
	BCS.B	.L1
	MOVE.B	(A0,D1.L),D6
	MOVE.W	D4,CCR
	ADDQ.B	#1,D6
	MOVE.W	CCR,D4
	ANDI.W	#$EE,D4		; CLEAR X,C
	ANDI.W	#$11,D7
	OR.B	D7,D4		; SET X,C IF PREVIUOSLY SET
	MOVE.B	D6,(A0,D1.L)
	ANDI.W	#$00FF,D6	; EXT D7 FOR INDEX INTO ADD TABLE
	MOVE.B	$220(A6,D6.W),D5; SET EXTENDED Z80 FLG TO N=0 H=HALF
	SUBQ.L	#1,A2
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF
.L1
	CMPI.W	#$3BFF,D1	; if HL <= 3C00 we are in ROM so do nothing
	BHI.B	.L2
	MOVE.B	(A0,D1.L),D6	; CONDITION THE FLAGS BUT DONT ALTER
	MOVE.W	D4,CCR		; ANY MEMORY
	ADDQ.B	#1,D6
	MOVE.W	CCR,D4
	ANDI.W	#$EE,D4		; CLEAR X,C
	ANDI.W	#$11,D7
	OR.B	D7,D4		; SET X,C IF PREVIUOSLY SET
	ANDI.W	#$00FF,D6	; EXT D7 FOR INDEX INTO ADD TABLE
	MOVE.B	$220(A6,D6.W),D5; SET EXTENDED Z80 FLG TO N=0 H=HALF
	SUBQ.L	#1,A2
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF
.L2
	MOVE.B	(A0,D1.L),D6
	MOVE.W	D4,CCR
	ADDQ.B	#1,D6
	MOVE.W	CCR,D4
	ANDI.W	#$EE,D4		; CLEAR X,C
	ANDI.W	#$11,D7
	OR.B	D7,D4		; SET X,C IF PREVIUOSLY SET
	MOVE.B	D6,(A0,D1.L)
	ANDI.W	#$00FF,D6	; EXT D7 FOR INDEX INTO ADD TABLE
	MOVE.B	$220(A6,D6.W),D5; SET EXTENDED Z80 FLG TO N=0 H=HALF
	BSR	_screenwrite	; HL -> SCREENLOC D6=BYTE
	SUBQ.L	#1,A2
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MAIN35:				; DEC (HL)
	MOVE.W	D4,D7
	MOVEQ	#0,D1
	MOVE.W	D2,D1
	CMPI.W	#$4000,D1	; if HL >= 4000 do the instruction
	BCS.B	.L1
	MOVE.B	(A0,D1.L),D6
	MOVE.W	D4,CCR
	SUBQ.B	#1,D6
	MOVE.W	CCR,D4
	ANDI.W	#$EE,D4		; CLEAR X,C
	ANDI.W	#$11,D7
	OR.B	D7,D4		; SET X,C IF PREVIUOSLY SET
	MOVE.B	D6,(A0,D1.L)
	ANDI.W	#$00FF,D6	; EXT D7 FOR INDEX INTO SUB TABLE
	MOVE.B	$320(A6,D6.W),D5; SET EXTENDED Z80 FLG TO N=1 H=HALF
	SUBQ.L	#1,A2
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF
.L1
	CMPI.W	#$3BFF,D1	; if HL <= 3C00 we are in ROM so do nothing
	BHI.B	.L2
	MOVE.B	(A0,D1.L),D6	; CONDITION THE FLAGS BUT DONT ALTER
	MOVE.W	D4,CCR		; ANY MEMORY
	SUBQ.B	#1,D6
	MOVE.W	CCR,D4
	ANDI.W	#$EE,D4		; CLEAR X,C
	ANDI.W	#$11,D7
	OR.B	D7,D4		; SET X,C IF PREVIUOSLY SET
	ANDI.W	#$00FF,D6	; EXT D7 FOR INDEX INTO SUB TABLE
	MOVE.B	$320(A6,D6.W),D5; SET EXTENDED Z80 FLG TO N=1 H=HALF
	SUBQ.L	#1,A2
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF
.L2
	MOVE.B	(A0,D1.L),D6
	MOVE.W	D4,CCR
	SUBQ.B	#1,D6
	MOVE.W	CCR,D4
	ANDI.W	#$EE,D4		; CLEAR X,C
	ANDI.W	#$11,D7
	OR.B	D7,D4		; SET X,C IF PREVIUOSLY SET
	MOVE.B	D6,(A0,D1.L)
	ANDI.W	#$00FF,D6	; EXT D7 FOR INDEX INTO SUB TABLE
	MOVE.B	$320(A6,D6.W),D5; SET EXTENDED Z80 FLG TO N=1 H=HALF
	BSR	_screenwrite	; HL -> SCREENLOC D6=BYTE
	SUBQ.L	#1,A2
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MAIN36:				; LD (HL),X
	MOVEQ	#0,D7
	MOVE.W	D2,D7
	CMPI.W	#$4000,D7	; if HL >= 4000 do the instruction
	BCS.B	.L1
	MOVE.B	D1,(A0,D7.L)
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF
.L1
	CMPI.W	#$3BFF,D7	; if HL <= 3C00 we are in ROM so do nothing
	BHI.B	.L2
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF
.L2
	MOVE.B	D1,D6		; HL is pointing at the screen so update the
	MOVE.B	D1,(A0,D7.L)	; screen with A
	MOVE.L	D7,D1
	BSR	_screenwrite
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF


MAIN37:				; SCF
	ORI.B	#$11,D4
	SUBQ.L	#1,A2
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MAIN38:				; JR C,X
	EXT.W	D1
	MOVE.W	D4,CCR
	BCC.B	M381
	ADDA.W	D1,A2
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

M381:	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MAIN39:				; ADD HL,SP
	ANDI.B	#$EE,D4		; MASK X,C
	SUBA.L	A0,A4
	MOVE.L	A4,D7
	ADD.W	D7,D2
	SCS.B	D7
	ANDI.B	#$11,D7
	OR.B	D7,D4
	ADDA.L	A0,A4
	MOVEQ	#0,D5		; SET H=0 N=0
	SUBQ.L	#1,A2
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MAIN3A:				; LD A,(XXXX)
	ROL.W	#8,D1
	MOVE.B	(A2)+,D1
	ROL.W	#8,D1
	MOVEQ	#0,D7
	MOVE.W	D1,D7
	MOVE.B	(A0,D7.L),D0
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MAIN3B:				; DEC SP
	SUBQ.L	#1,A4
	SUBQ.L	#1,A2
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MAIN3C:				; INC A
	MOVE.W	D4,D6
	MOVE.W	D4,CCR
	ADDQ.B	#1,D0
	MOVE.W	CCR,D4
	ANDI.W	#$EE,D4		; CLEAR X,C
	ANDI.W	#$11,D6
	OR.B	D6,D4		; SET X,C IF PREVIUOSLY SET
	ANDI.W	#$00FF,D0	; EXT D7 FOR INDEX INTO ADD TABLE
	MOVE.B	$220(A6,D0.W),D5; SET EXTENDED Z80 FLG TO N=0 H=HALF
	SUBQ.L	#1,A2
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MAIN3D:				; DEC A
	MOVE.W	D4,D6
	MOVE.W	D4,CCR
	SUBQ.B	#1,D0
	MOVE.W	CCR,D4
	ANDI.W	#$EE,D4		; CLEAR X,C
	ANDI.W	#$11,D6
	OR.B	D6,D4		; SET X,C IF PREVIUOSLY SET
	ANDI.W	#$00FF,D0	; EXT D7 FOR INDEX INTO SUB TABLE
	MOVE.B	$320(A6,D0.W),D5; SET EXTENDED Z80 FLG TO N=1 H=HALF
	SUBQ.L	#1,A2
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MAIN3E:				; LD A,X
	MOVE.B	D1,D0
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MAIN3F:				; CCF
	MOVE.W	D4,CCR
	SCC.B	D7
	ANDI.B	#$EE,D4
	ANDI.B	#$11,D7
	OR.B	D7,D4
	SUBQ.L	#1,A2
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MAIN40:				; LD B,B (NOP)
	SUBQ.L	#1,A2
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MAIN41:				; LD B,C
	MOVE.B	D3,D1
	ROL.W	#8,D3
	MOVE.B	D1,D3
	SUBQ.L	#1,A2
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MAIN42:				; LD B,D
	ROL.L	#8,D3
	MOVE.B	D3,D1
	ROR.L	#8,D3
	ROL.W	#8,D3
	MOVE.B	D1,D3
	ROL.W	#8,D3
	SUBQ.L	#1,A2
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MAIN43:				; LD B,E
	SWAP	D3
	MOVE.B	D3,D1
	SWAP	D3
	ROL.W	#8,D3
	MOVE.B	D1,D3
	ROL.W	#8,D3
	SUBQ.L	#1,A2
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MAIN44:				; LD B,H
	MOVE.W	D2,D1
	ROL.W	#8,D1
	ROL.W	#8,D3
	MOVE.B	D1,D3
	ROL.W	#8,D3
	SUBQ.L	#1,A2
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MAIN45:				; LD B,L
	ROL.W	#8,D3
	MOVE.B	D2,D3
	ROL.W	#8,D3
	SUBQ.L	#1,A2
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MAIN46:				; LD B,(HL)
	MOVEQ	#0,D1
	MOVE.W	D2,D1
	ROL.W	#8,D3
	MOVE.B	(A0,D1.L),D3
	ROL.W	#8,D3
	SUBQ.L	#1,A2
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MAIN47:				; LD B,A
	ROL.W	#8,D3
	MOVE.B	D0,D3
	ROL.W	#8,D3
	SUBQ.L	#1,A2
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MAIN48:				; LD C,B
	MOVE.W	D3,D1
	ROL.W	#8,D1
	MOVE.B	D1,D3
	SUBQ.L	#1,A2
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MAIN49:				; LD C,C (NOP)
	SUBQ.L	#1,A2
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MAIN4A:				; LD C,D
	ROL.L	#8,D3
	MOVE.B	D3,D1
	ROR.L	#8,D3
	MOVE.B	D1,D3
	SUBQ.L	#1,A2
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MAIN4B:				; LD C,E
	SWAP	D3
	MOVE.B	D3,D1
	SWAP	D3
	MOVE.B	D1,D3
	SUBQ.L	#1,A2
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MAIN4C:				; LD C,H
	MOVE.L	D2,D1
	ROL.W	#8,D1
	MOVE.B	D1,D3
	SUBQ.L	#1,A2
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MAIN4D:				; LD C,L
	MOVE.B	D2,D3
	SUBQ.L	#1,A2
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MAIN4E:				; LD C,(HL)
	MOVEQ	#0,D1
	MOVE.W	D2,D1
	MOVE.B	(A0,D1.L),D3
	SUBQ.L	#1,A2
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MAIN4F:				; LD C,A
	MOVE.B	D0,D3
	SUBQ.L	#1,A2
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MAIN50:				; LD D,B
	MOVE.W	D3,D1
	ROR.W	#8,D1
	ROL.L	#8,D3
	MOVE.B	D1,D3
	ROR.L	#8,D3
	SUBQ.L	#1,A2
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MAIN51:				; LD D,C
	MOVE.W	D3,D1
	ROL.L	#8,D3
	MOVE.B	D1,D3
	ROR.L	#8,D3
	SUBQ.L	#1,A2	
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MAIN52:				; LD D,D (NOP)
	SUBQ.L	#1,A2
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MAIN53:				; LD D,E
	SWAP	D3
	MOVE.W	D3,D1
	ROL.W	#8,D3
	MOVE.B	D1,D3
	SWAP	D3
	SUBQ.L	#1,A2
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MAIN54:				; LD D,H
	MOVE.W	D2,D1
	ROL.W	#8,D1
	ROL.L	#8,D3
	MOVE.B	D1,D3
	ROR.L	#8,D3
	SUBQ.L	#1,A2	
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MAIN55:				; LD D,L
	ROL.L	#8,D3
	MOVE.B	D2,D3
	ROR.L	#8,D3
	SUBQ.L	#1,A2
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MAIN56:				; LD D,(HL)
	MOVEQ	#0,D1
	MOVE.W	D2,D1
	ROL.L	#8,D3
	MOVE.B	(A0,D1.L),D3
	ROR.L	#8,D3
	SUBQ.L	#1,A2
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MAIN57:				; LD D,A
	ROL.L	#8,D3
	MOVE.B	D0,D3
	ROR.L	#8,D3
	SUBQ.L	#1,A2
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MAIN58:				; LD E,B
	MOVE.W	D3,D1
	ROL.W	#8,D1
	SWAP	D3
	MOVE.B	D1,D3
	SWAP	D3
	SUBQ.L	#1,A2
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MAIN59:				; LD E,C
	MOVE.W	D3,D1
	SWAP	D3
	MOVE.B	D1,D3
	SWAP	D3
	SUBQ.L	#1,A2
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MAIN5A:				; LD E,D
	MOVE.L	D3,D1
	ROL.L	#8,D1
	SWAP	D3
	MOVE.B	D1,D3
	SWAP	D3
	SUBQ.L	#1,A2
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MAIN5B:				; LD E,E (NOP)
	SUBQ.L	#1,A2
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MAIN5C:				; LD E,H
	MOVE.W	D2,D1
	ROL.W	#8,D1
	SWAP	D3
	MOVE.B	D1,D3
	SWAP	D3
	SUBQ.L	#1,A2
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MAIN5D:				; LD E,L
	SWAP	D3
	MOVE.B	D2,D3
	SWAP	D3
	SUBQ.L	#1,A2
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MAIN5E:				; LD E,(HL)
	MOVEQ	#0,D1
	MOVE.W	D2,D1
	SWAP	D3
	MOVE.B	(A0,D1.L),D3
	SWAP	D3
	SUBQ.L	#1,A2
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MAIN5F:				; LD E,A
	SWAP	D3
	MOVE.B	D0,D3
	SWAP	D3
	SUBQ.L	#1,A2
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MAIN60:				; LD H,B
	ROL.W	#8,D2
	ROL.W	#8,D3
	MOVE.B	D3,D2
	ROL.W	#8,D3
	ROL.W	#8,D2
	SUBQ.L	#1,A2
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MAIN61:				; LD H,C
	ROL.W	#8,D2
	MOVE.B	D3,D2
	ROL.W	#8,D2
	SUBQ.L	#1,A2
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MAIN62:				; LD H,D
	ROL.W	#8,D2
	ROL.L	#8,D3
	MOVE.B	D3,D2
	ROR.L	#8,D3
	ROL.W	#8,D2
	SUBQ.L	#1,A2
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MAIN63:				; LD H,E
	ROL.W	#8,D2
	SWAP	D3
	MOVE.B	D3,D2
	SWAP	D3
	ROL.W	#8,D2
	SUBQ.L	#1,A2
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MAIN64:				; LD H,H (NOP)
	SUBQ.L	#1,A2
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MAIN65:				; LD H,L
	MOVE.W	D2,D1
	ROL.W	#8,D2
	MOVE.B	D1,D2
	SUBQ.L	#1,A2
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MAIN66:				; LD H,(HL)
	MOVEQ	#0,D1
	MOVE.W	D2,D1
	ROL.W	#8,D2
	MOVE.B	(A0,D1.L),D2
	ROL.W	#8,D2
	SUBQ.L	#1,A2
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MAIN67:				; LD H,A
	ROL.W	#8,D2
	MOVE.B	D0,D2
	ROL.W	#8,D2
	SUBQ.L	#1,A2
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MAIN68:				; LD L,B
	ROL.W	#8,D3
	MOVE.B	D3,D2
	ROL.W	#8,D3
	SUBQ.L	#1,A2
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MAIN69:				; LD L,C
	MOVE.B	D3,D2
	SUBQ.L	#1,A2
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MAIN6A:				; LD L,D
	ROL.L	#8,D3
	MOVE.B	D3,D2
	ROR.L	#8,D3
	SUBQ.L	#1,A2
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MAIN6B:				; LD L,E
	SWAP	D3
	MOVE.B	D3,D2
	SWAP	D3
	SUBQ.L	#1,A2
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MAIN6C:				; LD L,H
	MOVE.W	D2,D1
	ROL.W	#8,D1
	MOVE.B	D2,D2
	SUBQ.L	#1,A2
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MAIN6D:				; LD L,L (NOP)
	SUBQ.L	#1,A2
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MAIN6E:				; LD L,(HL)
	MOVEQ	#0,D1
	MOVE.W	D2,D1
	MOVE.B	(A0,D1.L),D2
	SUBQ.L	#1,A2
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MAIN6F:				; LD L,A
	MOVE.B	D0,D2
	SUBQ.L	#1,A2
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MAIN70:				; LD (HL),B
	MOVEQ	#0,D1
	MOVE.W	D2,D1
	CMPI.W	#$4000,D1	; if HL >= 4000 do the instruction
	BCS.B	.L1
	ROL.W	#8,D3
	MOVE.B	D3,(A0,D1.L)
	ROL.W	#8,D3
	SUBQ.L	#1,A2
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF
.L1
	CMPI.W	#$3BFF,D1	; if HL <= 3C00 we are in ROM so do nothing
	BHI.B	.L2
	SUBQ.L	#1,A2
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF
.L2
	ROL.W	#8,D3
	MOVE.B	D3,D6		; HL is pointing at the screen so update the
	MOVE.B	D3,(A0,D1.L)	; screen with L
	ROL.W	#8,D3
	BSR	_screenwrite
	SUBQ.L	#1,A2
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MAIN71:				; LD (HL),C
	MOVEQ	#0,D1
	MOVE.W	D2,D1
	CMPI.W	#$4000,D1	; if HL >= 4000 do the instruction
	BCS.B	.L1
	MOVE.B	D3,(A0,D1.L)
	SUBQ.L	#1,A2
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF
.L1
	CMPI.W	#$3BFF,D1	; if HL <= 3C00 we are in ROM so do nothing
	BHI.B	.L2
	SUBQ.L	#1,A2
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF
.L2
	MOVE.B	D3,D6		; HL is pointing at the screen so update the
	MOVE.B	D3,(A0,D1.L)	; screen with A
	BSR	_screenwrite
	SUBQ.L	#1,A2
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MAIN72:				; LD (HL),D
	MOVEQ	#0,D1
	MOVE.W	D2,D1
	CMPI.W	#$4000,D1	; if HL >= 4000 do the instruction
	BCS.B	.L1
	ROL.L	#8,D3
	MOVE.B	D3,(A0,D1.L)
	ROR.L	#8,D3
	SUBQ.L	#1,A2
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF
.L1
	CMPI.W	#$3BFF,D1	; if HL <= 3C00 we are in ROM so do nothing
	BHI.B	.L2
	SUBQ.L	#1,A2
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF
.L2
	ROL.L	#8,D3
	MOVE.B	D3,D6		; HL is pointing at the screen so update the
	MOVE.B	D3,(A0,D1.L)	; screen with L
	ROR.L	#8,D3
	BSR	_screenwrite
	SUBQ.L	#1,A2
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MAIN73:				; LD (HL),E
	MOVEQ	#0,D1
	MOVE.W	D2,D1
	CMPI.W	#$4000,D1	; if HL >= 4000 do the instruction
	BCS.B	.L1
	SWAP	D3
	MOVE.B	D3,(A0,D1.L)
	SWAP	D3
	SUBQ.L	#1,A2
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF
.L1
	CMPI.W	#$3BFF,D1	; if HL <= 3C00 we are in ROM so do nothing
	BHI.B	.L2
	SUBQ.L	#1,A2
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF
.L2
	SWAP	D3
	MOVE.B	D3,D6		; HL is pointing at the screen so update the
	MOVE.B	D3,(A0,D1.L)	; screen with L
	SWAP	D3
	BSR	_screenwrite
	SUBQ.L	#1,A2
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MAIN74:				; LD (HL),H
	MOVEQ	#0,D1
	MOVE.W	D2,D1
	CMPI.W	#$4000,D1	; if HL >= 4000 do the instruction
	BCS.B	.L1
	ROL.W	#8,D2
	MOVE.B	D2,(A0,D1.L)
	ROL.W	#8,D2
	SUBQ.L	#1,A2
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF
.L1
	CMPI.W	#$3BFF,D1	; if HL <= 3C00 we are in ROM so do nothing
	BHI.B	.L2
	SUBQ.L	#1,A2
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF
.L2
	ROL.W	#8,D2
	MOVE.B	D2,D6		; HL is pointing at the screen so update the
	MOVE.B	D2,(A0,D1.L)	; screen with L
	ROL.W	#8,D2
	BSR	_screenwrite
	SUBQ.L	#1,A2
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MAIN75:				; LD (HL),L
	MOVEQ	#0,D1
	MOVE.W	D2,D1
	CMPI.W	#$4000,D1	; if HL >= 4000 do the instruction
	BCS.B	.L1
	MOVE.B	D2,(A0,D1.L)
	SUBQ.L	#1,A2
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF
.L1
	CMPI.W	#$3BFF,D1	; if HL <= 3C00 we are in ROM so do nothing
	BHI.B	.L2
	SUBQ.L	#1,A2
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF
.L2
	MOVE.B	D2,D6		; HL is pointing at the screen so update the
	MOVE.B	D2,(A0,D1.L)	; screen with L
	BSR	_screenwrite
	SUBQ.L	#1,A2
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MAIN76:				; HALT (RETURN TO MAIN TASK)

	MOVEM.L	(SP)+,A0-A6/D0-D7	
	RTS


MAIN77:				; LD (HL),A
	MOVEQ	#0,D1
	MOVE.W	D2,D1
	CMPI.W	#$4000,D1	; if HL >= 4000 do the instruction
	BCS.B	.L1
	MOVE.B	D0,(A0,D1.L)
	SUBQ.L	#1,A2
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF
.L1
	CMPI.W	#$3BFF,D1	; if HL <= 3C00 we are in ROM so do nothing
	BHI.B	.L2
	SUBQ.L	#1,A2
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF
.L2
	MOVE.B	D0,D6		; HL is pointing at the screen so update the
	MOVE.B	D0,(A0,D1.L)	; screen with A
	BSR	_screenwrite
	SUBQ.L	#1,A2
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MAIN78:				; LD A,B
	MOVE.W	D3,D1
	ROL.W	#8,D1
	MOVE.B	D1,D0
	SUBQ.L	#1,A2
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MAIN79:				; LD A,C
	MOVE.B	D3,D0
	SUBQ.L	#1,A2
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MAIN7A:				; LD A,D
	MOVE.L	D3,D1
	ROL.L	#8,D1
	MOVE.B	D1,D0
	SUBQ.L	#1,A2
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MAIN7B:				; LD A,E
	MOVE.L	D3,D1
	SWAP	D1
	MOVE.B	D1,D0
	SUBQ.L	#1,A2
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MAIN7C:				; LD A,H
	MOVE.W	D2,D1
	ROL.W	#8,D1
	MOVE.B	D1,D0
	SUBQ.L	#1,A2
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MAIN7D:				; LD A,L
	MOVE.B	D2,D0
	SUBQ.L	#1,A2
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MAIN7E:				; LD A,(HL)
	MOVEQ	#0,D1
	MOVE.W	D2,D1
	MOVE.B	(A0,D1.L),D0
	SUBQ.L	#1,A2
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MAIN7F:				; LD A,A (NOP)
	SUBQ.L	#1,A2
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF


MAIN80:				; ADD A,B
	MOVE.W	D3,D1
	ROL.W	#8,D1
	MOVE.W	D4,CCR
	ADD.B	D1,D0
	MOVE.W	CCR,D4
	ANDI.W	#$00FF,D0	; EXT D0 FOR INDEX INTO ADD TABLE
	MOVE.B	$220(A6,D0.W),D5; SET EXTENDED Z80 FLG TO N=0 H=HALF
	SUBQ.L	#1,A2
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MAIN81:				; ADD A,C
	MOVE.W	D4,CCR
	ADD.B	D3,D0
	MOVE.W	CCR,D4
	ANDI.W	#$00FF,D0	; EXT D0 FOR INDEX INTO ADD TABLE
	MOVE.B	$220(A6,D0.W),D5; SET EXTENDED Z80 FLG TO N=0 H=HALF
	SUBQ.L	#1,A2
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MAIN82:				; ADD A,D
	MOVE.L	D3,D1
	ROL.L	#8,D1
	MOVE.W	D4,CCR
	ADD.B	D1,D0
	MOVE.W	CCR,D4
	ANDI.W	#$00FF,D0	; EXT D0 FOR INDEX INTO ADD TABLE
	MOVE.B	$220(A6,D0.W),D5; SET EXTENDED Z80 FLG TO N=0 H=HALF
	SUBQ.L	#1,A2
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MAIN83:				; ADD A,E
	MOVE.L	D3,D1
	SWAP	D1
	MOVE.W	D4,CCR
	ADD.B	D1,D0
	MOVE.W	CCR,D4
	ANDI.W	#$00FF,D0	; EXT D0 FOR INDEX INTO ADD TABLE
	MOVE.B	$220(A6,D0.W),D5; SET EXTENDED Z80 FLG TO N=0 H=HALF
	SUBQ.L	#1,A2
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MAIN84:				; ADD A,H
	MOVE.W	D2,D1
	ROL.W	#8,D1
	MOVE.W	D4,CCR
	ADD.B	D1,D0
	MOVE.W	CCR,D4
	ANDI.W	#$00FF,D0	; EXT D0 FOR INDEX INTO ADD TABLE
	MOVE.B	$220(A6,D0.W),D5; SET EXTENDED Z80 FLG TO N=0 H=HALF
	SUBQ.L	#1,A2
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MAIN85:				; ADD A,L
	MOVE.W	D4,CCR
	ADD.B	D2,D0
	MOVE.W	CCR,D4
	ANDI.W	#$00FF,D0	; EXT D0 FOR INDEX INTO ADD TABLE
	MOVE.B	$220(A6,D0.W),D5; SET EXTENDED Z80 FLG TO N=0 H=HALF
	SUBQ.L	#1,A2
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MAIN86:				; ADD A,(HL)
	MOVEQ	#0,D1
	MOVE.W	D2,D1
	MOVE.W	D4,CCR
	ADD.B	(A0,D1.L),D0
	MOVE.W	CCR,D4
	ANDI.W	#$00FF,D0	; EXT D0 FOR INDEX INTO ADD TABLE
	MOVE.B	$220(A6,D0.W),D5; SET EXTENDED Z80 FLG TO N=0 H=HALF
	SUBQ.L	#1,A2
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MAIN87:				; ADD A,A
	MOVE.W	D4,CCR
	ADD.B	D0,D0
	MOVE.W	CCR,D4
	ANDI.W	#$00FF,D0	; EXT D0 FOR INDEX INTO ADD TABLE
	MOVE.B	$220(A6,D0.W),D5; SET EXTENDED Z80 FLG TO N=0 H=HALF
	SUBQ.L	#1,A2
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MAIN88:				; ADC A,B
	MOVE.W	D3,D1
	ROL.W	#8,D1
	ORI.B	#4,D4
	MOVE.W	D4,CCR
	ADDX.B	D1,D0
	MOVE.W	CCR,D4
	ANDI.W	#$00FF,D0	; EXT D0 FOR INDEX INTO ADD TABLE
	MOVE.B	$220(A6,D0.W),D5; SET EXTENDED Z80 FLG TO N=0 H=HALF
	SUBQ.L	#1,A2
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MAIN89:				; ADC A,C
	ORI.B	#4,D4
	MOVE.W	D4,CCR
	ADDX.B	D3,D0
	MOVE.W	CCR,D4
	ANDI.W	#$00FF,D0	; EXT D0 FOR INDEX INTO ADD TABLE
	MOVE.B	$220(A6,D0.W),D5; SET EXTENDED Z80 FLG TO N=0 H=HALF
	SUBQ.L	#1,A2
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MAIN8A:				; ADC A,D
	MOVE.L	D3,D1
	ROL.L	#8,D1
	ORI.B	#4,D4
	MOVE.W	D4,CCR
	ADDX.B	D1,D0
	MOVE.W	CCR,D4
	ANDI.W	#$00FF,D0	; EXT D0 FOR INDEX INTO ADD TABLE
	MOVE.B	$220(A6,D0.W),D5; SET EXTENDED Z80 FLG TO N=0 H=HALF
	SUBQ.L	#1,A2
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MAIN8B:				; ADC A,E
	MOVE.L	D3,D1
	SWAP	D1
	ORI.B	#4,D4
	MOVE.W	D4,CCR
	ADDX.B	D1,D0
	MOVE.W	CCR,D4
	ANDI.W	#$00FF,D0	; EXT D0 FOR INDEX INTO ADD TABLE
	MOVE.B	$220(A6,D0.W),D5; SET EXTENDED Z80 FLG TO N=0 H=HALF
	SUBQ.L	#1,A2
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MAIN8C:				; ADC A,H
	MOVE.W	D2,D1
	ROL.W	#8,D1
	ORI.B	#4,D4
	MOVE.W	D4,CCR
	ADDX.B	D1,D0
	MOVE.W	CCR,D4
	ANDI.W	#$00FF,D0	; EXT D0 FOR INDEX INTO ADD TABLE
	MOVE.B	$220(A6,D0.W),D5; SET EXTENDED Z80 FLG TO N=0 H=HALF
	SUBQ.L	#1,A2
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MAIN8D:				; ADC A,L
	ORI.B	#4,D4
	MOVE.W	D4,CCR
	ADDX.B	D2,D0
	MOVE.W	CCR,D4
	ANDI.W	#$00FF,D0	; EXT D0 FOR INDEX INTO ADD TABLE
	MOVE.B	$220(A6,D0.W),D5; SET EXTENDED Z80 FLG TO N=0 H=HALF
	SUBQ.L	#1,A2
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MAIN8E:				; ADC A,(HL)
	MOVEQ	#0,D1
	MOVE.W	D2,D1
	MOVE.B	(A0,D1.L),D7
	ORI.B	#4,D4
	MOVE.W	D4,CCR
	ADDX.B	D7,D0
	MOVE.W	CCR,D4
	ANDI.W	#$00FF,D0	; EXT D0 FOR INDEX INTO ADD TABLE
	MOVE.B	$220(A6,D0.W),D5; SET EXTENDED Z80 FLG TO N=0 H=HALF
	SUBQ.L	#1,A2
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MAIN8F:				; ADC A,A
	ORI.B	#4,D4
	MOVE.W	D4,CCR
	ADDX.B	D0,D0
	MOVE.W	CCR,D4
	ANDI.W	#$00FF,D0	; EXT D0 FOR INDEX INTO ADD TABLE
	MOVE.B	$220(A6,D0.W),D5; SET EXTENDED Z80 FLG TO N=0 H=HALF
	SUBQ.L	#1,A2
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MAIN90:				; SUB B
	MOVE.W	D3,D1
	ROL.W	#8,D1
	MOVE.W	D4,CCR
	SUB.B	D1,D0
	MOVE.W	CCR,D4
	ANDI.W	#$00FF,D0	; EXT D0 FOR INDEX INTO SUB TABLE
	MOVE.B	$320(A6,D0.W),D5; SET EXTENDED Z80 FLG TO N=1 H=HALF
	SUBQ.L	#1,A2
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MAIN91:				; SUB C
	MOVE.W	D4,CCR
	SUB.B	D3,D0
	MOVE.W	CCR,D4
	ANDI.W	#$00FF,D0	; EXT D0 FOR INDEX INTO SUB TABLE
	MOVE.B	$320(A6,D0.W),D5; SET EXTENDED Z80 FLG TO N=1 H=HALF
	SUBQ.L	#1,A2
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MAIN92:				; SUB D
	MOVE.L	D3,D1
	ROL.L	#8,D1
	MOVE.W	D4,CCR
	SUB.B	D1,D0
	MOVE.W	CCR,D4
	ANDI.W	#$00FF,D0	; EXT D0 FOR INDEX INTO SUB TABLE
	MOVE.B	$320(A6,D0.W),D5; SET EXTENDED Z80 FLG TO N=1 H=HALF
	SUBQ.L	#1,A2
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MAIN93:				; SUB E
	MOVE.L	D3,D1
	SWAP	D1
	MOVE.W	D4,CCR
	SUB.B	D1,D0
	MOVE.W	CCR,D4
	ANDI.W	#$00FF,D0	; EXT D0 FOR INDEX INTO SUB TABLE
	MOVE.B	$320(A6,D0.W),D5; SET EXTENDED Z80 FLG TO N=1 H=HALF
	SUBQ.L	#1,A2
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MAIN94:				; SUB H
	MOVE.W	D2,D1
	ROL.W	#8,D1
	MOVE.W	D4,CCR
	SUB.B	D1,D0
	MOVE.W	CCR,D4
	ANDI.W	#$00FF,D0	; EXT D0 FOR INDEX INTO SUB TABLE
	MOVE.B	$320(A6,D0.W),D5; SET EXTENDED Z80 FLG TO N=1 H=HALF
	SUBQ.L	#1,A2
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MAIN95:				; SUB L
	MOVE.W	D4,CCR
	SUB.B	D2,D0
	MOVE.W	CCR,D4
	ANDI.W	#$00FF,D0	; EXT D0 FOR INDEX INTO SUB TABLE
	MOVE.B	$320(A6,D0.W),D5; SET EXTENDED Z80 FLG TO N=1 H=HALF
	SUBQ.L	#1,A2
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MAIN96:				; SUB (HL)
	MOVEQ	#0,D1
	MOVE.W	D2,D1
	MOVE.W	D4,CCR
	SUB.B	(A0,D1.L),D0
	MOVE.W	CCR,D4
	ANDI.W	#$00FF,D0	; EXT D0 FOR INDEX INTO SUB TABLE
	MOVE.B	$320(A6,D0.W),D5; SET EXTENDED Z80 FLG TO N=1 H=HALF
	SUBQ.L	#1,A2
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MAIN97:				; SUB A
	MOVE.W	D4,CCR
	SUB.B	D0,D0
	MOVE.W	CCR,D4
	ANDI.W	#$00FF,D0	; EXT D0 FOR INDEX INTO SUB TABLE
	MOVE.B	$320(A6,D0.W),D5; SET EXTENDED Z80 FLG TO N=1 H=HALF
	SUBQ.L	#1,A2
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MAIN98:				; SBC A,B
	ORI.B	#$04,D4		; SET Z FLG
	MOVE.W	D3,D1
	ROL.W	#8,D1
	MOVE.W	D4,CCR
	SUBX.B	D1,D0
	MOVE.W	CCR,D4
	ANDI.W	#$00FF,D0	; EXT D0 FOR INDEX INTO SUB TABLE
	MOVE.B	$320(A6,D0.W),D5; SET EXTENDED Z80 FLG TO N=1 H=HALF
	SUBQ.L	#1,A2
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MAIN99:				; SBC A,C
	ORI.B	#$04,D4		; SET Z FLG
	MOVE.W	D4,CCR
	SUBX.B	D3,D0
	MOVE.W	CCR,D4
	ANDI.W	#$00FF,D0	; EXT D0 FOR INDEX INTO SUB TABLE
	MOVE.B	$320(A6,D0.W),D5; SET EXTENDED Z80 FLG TO N=1 H=HALF
	SUBQ.L	#1,A2
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MAIN9A:				; SBC A,D
	ORI.B	#$04,D4		; SET Z FLG
	MOVE.L	D3,D1
	ROL.L	#8,D1
	MOVE.W	D4,CCR
	SUBX.B	D1,D0
	MOVE.W	CCR,D4
	ANDI.W	#$00FF,D0	; EXT D0 FOR INDEX INTO SUB TABLE
	MOVE.B	$320(A6,D0.W),D5; SET EXTENDED Z80 FLG TO N=1 H=HALF
	SUBQ.L	#1,A2
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MAIN9B:				; SBC A,E
	ORI.B	#$04,D4		; SET Z FLG
	MOVE.L	D3,D1
	SWAP	D1
	MOVE.W	D4,CCR
	SUBX.B	D1,D0
	MOVE.W	CCR,D4
	ANDI.W	#$00FF,D0	; EXT D0 FOR INDEX INTO SUB TABLE
	MOVE.B	$320(A6,D0.W),D5; SET EXTENDED Z80 FLG TO N=1 H=HALF
	SUBQ.L	#1,A2
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MAIN9C:				; SBC A,H
	ORI.B	#$04,D4		; SET Z FLG
	MOVE.W	D2,D1
	ROL.W	#8,D1
	MOVE.W	D4,CCR
	SUBX.B	D1,D0
	MOVE.W	CCR,D4
	ANDI.W	#$00FF,D0	; EXT D0 FOR INDEX INTO SUB TABLE
	MOVE.B	$320(A6,D0.W),D5; SET EXTENDED Z80 FLG TO N=1 H=HALF
	SUBQ.L	#1,A2
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MAIN9D:				; SBC A,L
	ORI.B	#$04,D4		; SET Z FLG
	MOVE.W	D4,CCR
	SUBX.B	D2,D0
	MOVE.W	CCR,D4
	ANDI.W	#$00FF,D0	; EXT D0 FOR INDEX INTO SUB TABLE
	MOVE.B	$320(A6,D0.W),D5; SET EXTENDED Z80 FLG TO N=1 H=HALF
	SUBQ.L	#1,A2
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MAIN9E:				; SBC A,(HL)
	ORI.B	#$04,D4		; SET Z FLG
	MOVEQ	#0,D1
	MOVE.W	D2,D1
	MOVE.B	(A0,D1.L),D7
	MOVE.W	D4,CCR
	SUBX.B	D7,D0
	MOVE.W	CCR,D4
	ANDI.W	#$00FF,D0	; EXT D0 FOR INDEX INTO SUB TABLE
	MOVE.B	$320(A6,D0.W),D5; SET EXTENDED Z80 FLG TO N=1 H=HALF
	SUBQ.L	#1,A2
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MAIN9F:				; SBC A,A
	ORI.B	#$04,D4		; SET Z FLG
	MOVE.W	D4,CCR
	SUBX.B	D0,D0		
	MOVE.W	CCR,D4
	ANDI.W	#$00FF,D0	; EXT D0 FOR INDEX INTO SUB TABLE
	MOVE.B	$320(A6,D0.W),D5; SET EXTENDED Z80 FLG TO N=1 H=HALF
	SUBQ.L	#1,A2
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MAINA0:				; AND B
	MOVE.W	D3,D1
	ROL.W	#8,D1
	MOVE.W	D4,CCR
	AND.B	D1,D0
	ANDI	#$0F,CCR	; CLEAR X
	MOVE.W	CCR,D4
	ANDI.W	#$00FF,D0	; EXT D0 FOR INDEX INTO PARITY TABLE
	OR.B	(A6,D0.W),D4	; SET V FLG TO PARITY TABLE VALUE
	MOVE.B	#$10,D5		; SET EXTENDED Z80 FLG TO N=0 H=1
	SUBQ.L	#1,A2
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MAINA1:				; AND C
	MOVE.W	D4,CCR
	AND.B	D3,D0
	ANDI	#$0F,CCR	
	MOVE.W	CCR,D4
	ANDI.W	#$00FF,D0	
	OR.B	(A6,D0.W),D4	
	MOVE.B	#$10,D5		
	SUBQ.L	#1,A2
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MAINA2:				; AND D
	MOVE.L	D3,D1
	ROL.L	#8,D1
	MOVE.W	D4,CCR
	AND.B	D1,D0
	ANDI	#$0F,CCR	
	MOVE.W	CCR,D4
	ANDI.W	#$00FF,D0	
	OR.B	(A6,D0.W),D4	
	MOVE.B	#$10,D5		
	SUBQ.L	#1,A2
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MAINA3:				; AND E
	MOVE.L	D3,D1
	SWAP	D1
	MOVE.W	D4,CCR
	AND.B	D1,D0
	ANDI	#$0F,CCR	
	MOVE.W	CCR,D4
	ANDI.W	#$00FF,D0	
	OR.B	(A6,D0.W),D4	
	MOVE.B	#$10,D5		
	SUBQ.L	#1,A2
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MAINA4:				; AND H
	MOVE.W	D2,D1
	ROL.W	#8,D1
	MOVE.W	D4,CCR
	AND.B	D1,D0
	ANDI	#$0F,CCR	
	MOVE.W	CCR,D4
	ANDI.W	#$00FF,D0	
	OR.B	(A6,D0.W),D4	
	MOVE.B	#$10,D5		
	SUBQ.L	#1,A2
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MAINA5:				; AND L
	MOVE.W	D4,CCR
	AND.B	D2,D0
	ANDI	#$0F,CCR	
	MOVE.W	CCR,D4
	ANDI.W	#$00FF,D0	
	OR.B	(A6,D0.W),D4	
	MOVE.B	#$10,D5		
	SUBQ.L	#1,A2
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MAINA6:				; AND (HL)
	MOVEQ	#0,D1
	MOVE.W	D2,D1
	MOVE.W	D4,CCR
	AND.B	(A0,D1.L),D0
	ANDI	#$0F,CCR	
	MOVE.W	CCR,D4
	ANDI.W	#$00FF,D0	
	OR.B	(A6,D0.W),D4	
	MOVE.B	#$10,D5		
	SUBQ.L	#1,A2
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MAINA7:				; AND A
	MOVE.W	D4,CCR
	AND.B	D0,D0
	ANDI	#$0F,CCR	
	MOVE.W	CCR,D4
	ANDI.W	#$00FF,D0	
	OR.B	(A6,D0.W),D4	
	MOVE.B	#$10,D5		
	SUBQ.L	#1,A2
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MAINA8:				; XOR B
	MOVE.W	D3,D1
	ROL.W	#8,D1
	MOVE.W	D4,CCR
	EOR.B	D1,D0
	ANDI	#$0F,CCR	; CLEAR X
	MOVE.W	CCR,D4
	ANDI.W	#$00FF,D0	; EXT D0 FOR INDEX INTO PARITY TABLE
	OR.B	(A6,D0.W),D4	; SET V FLG TO PARITY TABLE VALUE
	MOVEQ.B	#0,D5		; SET EXTENDED Z80 FLG TO N=0 H=0
	SUBQ.L	#1,A2
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MAINA9:				; XOR C
	MOVE.W	D4,CCR
	EOR.B	D3,D0
	ANDI	#$0F,CCR	
	MOVE.W	CCR,D4
	ANDI.W	#$00FF,D0
	OR.B	(A6,D0.W),D4
	MOVEQ.B	#0,D5
	SUBQ.L	#1,A2
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MAINAA:				; XOR D
	MOVE.L	D3,D1
	ROL.L	#8,D1
	MOVE.W	D4,CCR
	EOR.B	D1,D0
	ANDI	#$0F,CCR	
	MOVE.W	CCR,D4
	ANDI.W	#$00FF,D0
	OR.B	(A6,D0.W),D4
	MOVEQ.B	#0,D5
	SUBQ.L	#1,A2
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MAINAB:				; XOR E
	MOVE.L	D3,D1
	SWAP	D1
	MOVE.W	D4,CCR
	EOR.B	D1,D0
	ANDI	#$0F,CCR	
	MOVE.W	CCR,D4
	ANDI.W	#$00FF,D0
	OR.B	(A6,D0.W),D4
	MOVEQ.B	#0,D5
	SUBQ.L	#1,A2
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MAINAC:				; XOR H
	MOVE.W	D2,D1
	ROL.W	#8,D1
	MOVE.W	D4,CCR
	EOR.B	D1,D0
	ANDI	#$0F,CCR	
	MOVE.W	CCR,D4
	ANDI.W	#$00FF,D0
	OR.B	(A6,D0.W),D4
	MOVEQ.B	#0,D5
	SUBQ.L	#1,A2
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MAINAD:				; XOR L
	MOVE.W	D4,CCR
	EOR.B	D2,D0
	ANDI	#$0F,CCR	
	MOVE.W	CCR,D4
	ANDI.W	#$00FF,D0
	OR.B	(A6,D0.W),D4
	MOVEQ.B	#0,D5
	SUBQ.L	#1,A2
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MAINAE:				; XOR (HL)
	MOVEQ	#0,D1
	MOVE.W	D2,D1
	MOVE.B	(A0,D1.L),D7
	MOVE.W	D4,CCR
	EOR.B	D7,D0
	ANDI	#$0F,CCR	
	MOVE.W	CCR,D4
	ANDI.W	#$00FF,D0
	OR.B	(A6,D0.W),D4
	MOVEQ.B	#0,D5
	SUBQ.L	#1,A2
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MAINAF:				; XOR A
	MOVE.W	D4,CCR
	EOR.B	D0,D0
	ANDI	#$0F,CCR	
	MOVE.W	CCR,D4
	ANDI.W	#$00FF,D0
	OR.B	(A6,D0.W),D4
	MOVEQ.B	#0,D5
	SUBQ.L	#1,A2
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MAINB0:				; OR B
	MOVE.W	D3,D1
	ROL.W	#8,D1		; CONDITION FLAGS SAME AS XOR
	MOVE.W	D4,CCR
	OR.B	D1,D0
	ANDI	#$0F,CCR	
	MOVE.W	CCR,D4
	ANDI.W	#$00FF,D0
	OR.B	(A6,D0.W),D4
	MOVEQ.B	#0,D5
	SUBQ.L	#1,A2
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MAINB1:				; OR C
	MOVE.W	D4,CCR
	OR.B	D3,D0
	ANDI	#$0F,CCR	
	MOVE.W	CCR,D4
	ANDI.W	#$00FF,D0
	OR.B	(A6,D0.W),D4
	MOVEQ.B	#0,D5
	SUBQ.L	#1,A2
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MAINB2:				; OR D
	MOVE.L	D3,D1
	ROL.L	#8,D1
	MOVE.W	D4,CCR
	OR.B	D1,D0
	ANDI	#$0F,CCR	
	MOVE.W	CCR,D4
	ANDI.W	#$00FF,D0
	OR.B	(A6,D0.W),D4
	MOVEQ.B	#0,D5
	SUBQ.L	#1,A2
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MAINB3:				; OR E
	MOVE.L	D3,D1
	SWAP	D1
	MOVE.W	D4,CCR
	OR.B	D1,D0
	ANDI	#$0F,CCR	
	MOVE.W	CCR,D4
	ANDI.W	#$00FF,D0
	OR.B	(A6,D0.W),D4
	MOVEQ.B	#0,D5
	SUBQ.L	#1,A2
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MAINB4:				; OR H
	MOVE.W	D2,D1
	ROL.W	#8,D1
	MOVE.W	D4,CCR
	OR.B	D1,D0
	ANDI	#$0F,CCR	
	MOVE.W	CCR,D4
	ANDI.W	#$00FF,D0
	OR.B	(A6,D0.W),D4
	MOVEQ.B	#0,D5
	SUBQ.L	#1,A2
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MAINB5:				; OR L
	MOVE.W	D4,CCR
	OR.B	D2,D0
	ANDI	#$0F,CCR	
	MOVE.W	CCR,D4
	ANDI.W	#$00FF,D0
	OR.B	(A6,D0.W),D4
	MOVEQ.B	#0,D5
	SUBQ.L	#1,A2
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MAINB6:				; OR (HL)
	MOVEQ	#0,D1
	MOVE.W	D2,D1
	MOVE.W	D4,CCR
	OR.B	(A0,D1.L),D0
	ANDI	#$0F,CCR	
	MOVE.W	CCR,D4
	ANDI.W	#$00FF,D0
	OR.B	(A6,D0.W),D4
	MOVEQ.B	#0,D5
	SUBQ.L	#1,A2
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MAINB7:				; OR A
	MOVE.W	D4,CCR
	OR.B	D0,D0
	ANDI	#$0F,CCR	
	MOVE.W	CCR,D4
	ANDI.W	#$00FF,D0
	OR.B	(A6,D0.W),D4
	MOVEQ.B	#0,D5
	SUBQ.L	#1,A2
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MAINB8:				; CP B
	MOVE.B	D0,D6
	MOVE.W	D3,D1
	ROL.W	#8,D1
	MOVE.W	D4,CCR
	SUB.B	D1,D6
	MOVE.W	CCR,D4
	ANDI.W	#$00FF,D6	; EXT D6 FOR INDEX INTO SUB TABLE
	MOVE.B	$320(A6,D6.W),D5; SET EXTENDED Z80 FLG TO N=1 H=HALF
	SUBQ.L	#1,A2
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MAINB9:				; CP C
	MOVE.B	D0,D6
	MOVE.W	D4,CCR
	SUB.B	D3,D6
	MOVE.W	CCR,D4
	ANDI.W	#$00FF,D6	; EXT D6 FOR INDEX INTO SUB TABLE
	MOVE.B	$320(A6,D6.W),D5; SET EXTENDED Z80 FLG TO N=1 H=HALF
	SUBQ.L	#1,A2
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MAINBA:				; CP D
	MOVE.B	D0,D6
	MOVE.L	D3,D1
	ROL.L	#8,D1
	MOVE.W	D4,CCR
	SUB.B	D1,D6
	MOVE.W	CCR,D4
	ANDI.W	#$00FF,D6	; EXT D6 FOR INDEX INTO SUB TABLE
	MOVE.B	$320(A6,D6.W),D5; SET EXTENDED Z80 FLG TO N=1 H=HALF
	SUBQ.L	#1,A2
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MAINBB:				; CP E
	MOVE.B	D0,D6
	MOVE.L	D3,D1
	SWAP	D1
	MOVE.W	D4,CCR
	SUB.B	D1,D6
	MOVE.W	CCR,D4
	ANDI.W	#$00FF,D6	; EXT D6 FOR INDEX INTO SUB TABLE
	MOVE.B	$320(A6,D6.W),D5; SET EXTENDED Z80 FLG TO N=1 H=HALF
	SUBQ.L	#1,A2
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MAINBC:				; CP H
	MOVE.B	D0,D6
	MOVE.W	D2,D1
	ROL.W	#8,D1
	MOVE.W	D4,CCR
	SUB.B	D1,D6
	MOVE.W	CCR,D4
	ANDI.W	#$00FF,D6	; EXT D0 FOR INDEX INTO SUB TABLE
	MOVE.B	$320(A6,D6.W),D5; SET EXTENDED Z80 FLG TO N=1 H=HALF
	SUBQ.L	#1,A2
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MAINBD:				; CP L
	MOVE.B	D0,D6
	MOVE.W	D4,CCR
	SUB.B	D2,D6
	MOVE.W	CCR,D4
	ANDI.W	#$00FF,D6	; EXT D0 FOR INDEX INTO SUB TABLE
	MOVE.B	$320(A6,D6.W),D5; SET EXTENDED Z80 FLG TO N=1 H=HALF
	SUBQ.L	#1,A2
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MAINBE:				; CP (HL)
	MOVE.B	D0,D6
	MOVEQ	#0,D1
	MOVE.W	D2,D1
	MOVE.W	D4,CCR
	SUB.B	(A0,D1.L),D6
	MOVE.W	CCR,D4
	ANDI.W	#$00FF,D6	; EXT D6 FOR INDEX INTO SUB TABLE
	MOVE.B	$320(A6,D6.W),D5; SET EXTENDED Z80 FLG TO N=1 H=HALF
	SUBQ.L	#1,A2
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MAINBF:				; CP A
	MOVE.B	D0,D6
	MOVE.W	D4,CCR
	SUB.B	D0,D6
	MOVE.W	CCR,D4
	ANDI.W	#$00FF,D6	; EXT D6 FOR INDEX INTO SUB TABLE
	MOVE.B	$320(A6,D6.W),D5; SET EXTENDED Z80 FLG TO N=1 H=HALF
	SUBQ.L	#1,A2
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MAINC0:				; RET NZ
	MOVE.W	D4,CCR
	BEQ.B	C01
	MOVEQ	#0,D7
	MOVE.W	(A4)+,D7
	ROL.W	#8,D7
	MOVE.L	A0,A2
	ADDA.L	D7,A2
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

C01:	SUBQ.L	#1,A2
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MAINC1:				; POP BC
	ROL.W	#8,D3
	MOVE.W	(A4)+,D3
	ROL.W	#8,D3
	SUBQ.L	#1,A2
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MAINC2:				; JP NZ,XXXX
	ROL.W	#8,D1
	MOVE.B	(A2)+,D1
	ROL.W	#8,D1
	MOVE.W	D4,CCR
	BEQ.B	C21
	MOVEQ	#0,D7
	MOVE.W	D1,D7
	MOVE.L	A0,A2
	ADDA.L	D7,A2
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

C21:	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MAINC3:				; JP XXXX
	ROL.W	#8,D1
	MOVE.B	(A2)+,D1
	ROL.W	#8,D1
	MOVEQ	#0,D7
	MOVE.W	D1,D7
	MOVE.L	A0,A2
	ADDA.L	D7,A2
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MAINC4:				; CALL NZ,XXXX
	ROL.W	#8,D1
	MOVE.B	(A2)+,D1
	ROL.W	#8,D1
	MOVE.W	D4,CCR
	BEQ.B	C41
	SUBA.L	A0,A2
	MOVE.L	A2,D7
	ROL.W	#8,D7
	MOVE.W	D7,-(A4)
	MOVE.L	A0,A2
	MOVE.W	D1,D7
	ADDA.L	D7,A2
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

C41:	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MAINC5:				; PUSH BC
	ROL.W	#8,D3
	MOVE.W	D3,-(A4)
	ROL.W	#8,D3
	SUBQ.L	#1,A2
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MAINC6:				; ADD A,X
	MOVE.W	D4,CCR
	ADD.B	D1,D0
	MOVE.W	CCR,D4
	ANDI.W	#$00FF,D0	; EXT D0 FOR INDEX INTO ADD TABLE
	MOVE.B	$220(A6,D0.W),D5; SET EXTENDED Z80 FLG TO N=0 H=HALF
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MAINC7:				; RST 00
	SUBQ.L	#1,A2
	SUBA.L	A0,A2
	MOVE.W	A2,D7
	ROL.W	#8,D7
	MOVE.W	D7,-(A4)
	MOVE.L	A0,A2
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MAINC8:				; RET Z
	MOVE.W	D4,CCR
	BNE.B	C81
	MOVEQ	#0,D7
	MOVE.W	(A4)+,D7
	ROL.W	#8,D7
	MOVE.L	A0,A2
	ADDA.L	D7,A2
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

C81:	SUBQ.L	#1,A2
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MAINC9:				; RET
	MOVEQ	#0,D7
	MOVE.W	(A4)+,D7
	ROL.W	#8,D7
	MOVE.L	A0,A2
	ADDA.L	D7,A2
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MAINCA:				; JP Z,XXXX
	ROL.W	#8,D1
	MOVE.B	(A2)+,D1
	ROL.W	#8,D1
	MOVE.W	D4,CCR
	BNE.B	CA1
	MOVEQ	#0,D7
	MOVE.W	D1,D7
	MOVE.L	A0,A2
	ADDA.L	D7,A2
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

CA1:	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MAINCC:				; CALL Z,XXXX
	ROL.W	#8,D1
	MOVE.B	(A2)+,D1
	ROL.W	#8,D1
	MOVE.W	D4,CCR
	BNE.B	CC1
	SUBA.L	A0,A2
	MOVE.L	A2,D7
	ROL.W	#8,D7
	MOVE.W	D7,-(A4)
	MOVE.L	A0,A2
	MOVE.W	D1,D7
	ADDA.L	D7,A2
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

CC1:	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MAINCD:				; CALL XXXX
	ROL.W	#8,D1
	MOVE.B	(A2)+,D1
	ROL.W	#8,D1
	SUBA.L	A0,A2
	MOVE.L	A2,D7
	ROL.W	#8,D7
	MOVE.W	D7,-(A4)
	MOVE.L	A0,A2
	MOVE.W	D1,D7
	ADDA.L	D7,A2
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MAINCE:				; ADC A,X
	ORI.B	#4,D4
	MOVE.W	D4,CCR
	ADDX.B	D1,D0
	MOVE.W	CCR,D4
	ANDI.W	#$00FF,D0	; EXT D7 FOR INDEX INTO ADD TABLE
	MOVE.B	$220(A6,D0.W),D5; SET EXTENDED Z80 FLG TO N=0 H=HALF
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MAINCF:				; RST 08
	SUBQ.L	#1,A2
	SUBA.L	A0,A2
	MOVE.W	A2,D7
	ROL.W	#8,D7
	MOVE.W	D7,-(A4)
	MOVE.L	A0,A2
	ADDA.L	#8,A2
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MAIND0:				; RET NC
	MOVE.W	D4,CCR
	BCS.B	D01
	MOVEQ	#0,D7
	MOVE.W	(A4)+,D7
	ROL.W	#8,D7
	MOVE.L	A0,A2
	ADDA.L	D7,A2
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

D01:	SUBQ.L	#1,A2
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MAIND1:				; POP DE
	SWAP	D3
	ROL.W	#8,D3
	MOVE.W	(A4)+,D3
	ROL.W	#8,D3
	SWAP	D3
	SUBQ.L	#1,A2
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MAIND2:				; JP NC,XXXX
	ROL.W	#8,D1
	MOVE.B	(A2)+,D1
	ROL.W	#8,D1
	MOVE.W	D4,CCR
	BCS.B	D21
	MOVEQ	#0,D7
	MOVE.W	D1,D7
	MOVE.L	A0,A2
	ADDA.L	D7,A2
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

D21:	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MAIND3:				; OUT (N),A  (NOP)
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MAIND4:				; CALL NC,XXXX
	ROL.W	#8,D1
	MOVE.B	(A2)+,D1
	ROL.W	#8,D1
	MOVE.W	D4,CCR
	BCS.B	D41
	SUBA.L	A0,A2
	MOVE.L	A2,D7
	ROL.W	#8,D7
	MOVE.W	D7,-(A4)
	MOVE.L	A0,A2
	MOVE.W	D1,D7
	ADDA.L	D7,A2
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

D41:	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MAIND5:				; PUSH DE
	SWAP	D3
	ROL.W	#8,D3
	MOVE.W	D3,-(A4)
	ROL.W	#8,D3
	SWAP	D3
	SUBQ.L	#1,A2
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MAIND6:				; SUB X
	MOVE.W	D4,CCR
	SUB.B	D1,D0
	MOVE.W	CCR,D4
	ANDI.W	#$00FF,D0	; EXT D7 FOR INDEX INTO SUB TABLE
	MOVE.B	$320(A6,D0.W),D5; SET EXTENDED Z80 FLG TO N=1 H=HALF
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MAIND7:				; RST 10
	SUBQ.L	#1,A2
	SUBA.L	A0,A2
	MOVE.W	A2,D7
	ROL.W	#8,D7
	MOVE.W	D7,-(A4)
	MOVE.L	A0,A2
	ADDA.L	#$10,A2
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MAIND8:				; RET C
	MOVE.W	D4,CCR
	BCC.B	D81
	MOVEQ	#0,D7
	MOVE.W	(A4)+,D7
	ROL.W	#8,D7
	MOVE.L	A0,A2
	ADDA.L	D7,A2
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

D81:	SUBQ.L	#1,A2
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MAIND9:				; EXX
	MOVE.W	D2,HL
	MOVE.W	D3,BC
	SWAP	D3
	MOVE.W	D3,DE
	MOVE.W	ADE,D3
	SWAP	D3
	MOVE.W	ABC,D3
	MOVE.W	AHL,D2
	MOVE.W	HL,AHL
	MOVE.W	BC,ABC
	MOVE.W	DE,ADE
	SUBQ.L	#1,A2
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MAINDA:				; JP C,XXXX
	ROL.W	#8,D1
	MOVE.B	(A2)+,D1
	ROL.W	#8,D1
	MOVE.W	D4,CCR
	BCC.B	DA1
	MOVEQ	#0,D7
	MOVE.W	D1,D7
	MOVE.L	A0,A2
	ADDA.L	D7,A2
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

DA1:	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MAINDB:				; IN A,(N)  (NOP)
	MOVE.B	#$FF,D0
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MAINDC:				; CALL C,XXXX
	ROL.W	#8,D1
	MOVE.B	(A2)+,D1
	ROL.W	#8,D1
	MOVE.W	D4,CCR
	BCC.B	DC1
	SUBA.L	A0,A2
	MOVE.L	A2,D7
	ROL.W	#8,D7
	MOVE.W	D7,-(A4)
	MOVE.L	A0,A2
	MOVE.W	D1,D7
	ADDA.L	D7,A2
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

DC1:	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MAINDE:				; SBC A,X
	ORI.B	#4,D4		; SET Z FLAG FOR SUBX INSTRUCT.
	MOVE.W	D4,CCR
	SUBX.B	D1,D0
	MOVE.W	CCR,D4
	ANDI.W	#$00FF,D0	; EXT D7 FOR INDEX INTO SUB TABLE
	MOVE.B	$320(A6,D0.W),D5; SET EXTENDED Z80 FLG TO N=1 H=HALF
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MAINDF:				; RST 18
	SUBQ.L	#1,A2
	SUBA.L	A0,A2
	MOVE.W	A2,D7
	ROL.W	#8,D7
	MOVE.W	D7,-(A4)
	MOVE.L	A0,A2
	ADDA.L	#$18,A2
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MAINE0:				; RET PO
	MOVE.W	D4,CCR
	BVS.B	E01
	MOVEQ	#0,D7
	MOVE.W	(A4)+,D7
	ROL.W	#8,D7
	MOVE.L	A0,A2
	ADDA.L	D7,A2
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

E01:	SUBQ.L	#1,A2
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MAINE1:				; POP HL
	ROL.W	#8,D2
	MOVE.W	(A4)+,D2
	ROL.W	#8,D2
	SUBQ.L	#1,A2
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MAINE2:				; JP PO,XXXX
	ROL.W	#8,D1
	MOVE.B	(A2)+,D1
	ROL.W	#8,D1
	MOVE.W	D4,CCR
	BVS.B	E21
	MOVEQ	#0,D7
	MOVE.W	D1,D7
	MOVE.L	A0,A2
	ADDA.L	D7,A2
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

E21:	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MAINE3:				; EX (SP),HL
	MOVE.W	D2,D7
	MOVE.W	(A4),D2
	ROL.W	#8,D2
	ROL.W	#8,D7
	MOVE.W	D7,(A4)
	SUBQ.L	#1,A2
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MAINE4:				; CALL PO,XXXX
	ROL.W	#8,D1
	MOVE.B	(A2)+,D1
	ROL.W	#8,D1
	MOVE.W	D4,CCR
	BVS.B	E41
	SUBA.L	A0,A2
	MOVE.L	A2,D7
	ROL.W	#8,D7
	MOVE.W	D7,-(A4)
	MOVE.L	A0,A2
	MOVE.W	D1,D7
	ADDA.L	D7,A2
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

E41:	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MAINE5:				; PUSH HL
	ROL.W	#8,D2
	MOVE.W	D2,-(A4)
	ROL.W	#8,D2
	SUBQ.L	#1,A2
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MAINE6:				; AND X
	MOVE.W	D4,CCR
	AND.B	D1,D0
	MOVE.W	CCR,D4
	ANDI.W	#$00FF,D0	; EXT D0 FOR INDEX INTO PARITY TABLE
	OR.B	(A6,D0.W),D4	; SET V FLG TO PARITY TABLE VALUE
	ANDI.W	#$EE,D4		; CLEAR C AND X
	MOVE.B	#$10,D5		; SET EXTENDED Z80 FLG TO N=0 H=1
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MAINE7:				; RST 20
	SUBQ.L	#1,A2
	SUBA.L	A0,A2
	MOVE.W	A2,D7
	ROL.W	#8,D7
	MOVE.W	D7,-(A4)
	MOVE.L	A0,A2
	ADDA.L	#$20,A2
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MAINE8:				; RET PE
	MOVE.W	D4,CCR
	BVC.B	E81
	MOVEQ	#0,D7
	MOVE.W	(A4)+,D7
	ROL.W	#8,D7
	MOVE.L	A0,A2
	ADDA.L	D7,A2
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

E81:	SUBQ.L	#1,A2
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MAINE9:				; JP (HL)
	MOVE.L	A0,A2
	MOVEQ	#0,D1
	MOVE.W	D2,D1
	ADDA.L	D1,A2
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MAINEA:				; JP PE,XXXX
	ROL.W	#8,D1
	MOVE.B	(A2)+,D1
	ROL.W	#8,D1
	MOVE.W	D4,CCR
	BVC.B	EA1
	MOVEQ	#0,D7
	MOVE.W	D1,D7
	MOVE.L	A0,A2
	ADDA.L	D7,A2
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

EA1:	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MAINEB:				; EX DE,HL
	MOVE.W	D2,D1
	SWAP	D3
	MOVE.W	D3,D2
	MOVE.W	D1,D3
	SWAP	D3
	SUBQ.L	#1,A2
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MAINEC:				; CALL PE,XXXX
	ROL.W	#8,D1
	MOVE.B	(A2)+,D1
	ROL.W	#8,D1
	MOVE.W	D4,CCR
	BVC.B	EC1
	SUBA.L	A0,A2
	MOVE.L	A2,D7
	ROL.W	#8,D7
	MOVE.W	D7,-(A4)
	MOVE.L	A0,A2
	MOVE.W	D1,D7
	ADDA.L	D7,A2
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

EC1:	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MAINEE:				; XOR X
	MOVE.W	D4,CCR
	EOR.B	D1,D0
	MOVE.W	CCR,D4
	ANDI.W	#$00FF,D0	; EXT D0 FOR INDEX INTO PARITY TABLE
	OR.B	(A6,D0.W),D4	; SET V FLG TO PARITY TABLE VALUE
	ANDI.W	#$EE,D4		; CLEAR C AND X
	MOVEQ.B	#0,D5		; SET EXTENDED Z80 FLG TO N=0 H=0
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MAINEF:				; RST 28
	SUBQ.L	#1,A2
	SUBA.L	A0,A2
	MOVE.W	A2,D7
	ROL.W	#8,D7
	MOVE.W	D7,-(A4)
	MOVE.L	A0,A2
	ADDA.L	#$28,A2
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MAINF0:				; RET P
	MOVE.W	D4,CCR
	BMI.B	F01
	MOVEQ	#0,D7
	MOVE.W	(A4)+,D7
	ROL.W	#8,D7
	MOVE.L	A0,A2
	ADDA.L	D7,A2
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

F01:	SUBQ.L	#1,A2
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MAINF1:				; POP AF
	MOVE.W	(A4)+,D7
	MOVE.B	D7,D0		; -> A REG
	ROL.W	#8,D7
	ANDI.W	#$00FF,D7	; MASK FOR LOOKUP TABLE
	MOVE.B	$100(A6,D7.W),D4	; GET 680X0 EQUIV FROM TABLE
	MOVE.W	D7,D5
	ANDI.W	#$0012,D5	; SET H AND N FLAGS
	SUBQ.L	#1,A2
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MAINF2:				; JP P,XXXX
	ROL.W	#8,D1
	MOVE.B	(A2)+,D1
	ROL.W	#8,D1
	MOVE.W	D4,CCR
	BMI.B	F21
	MOVEQ	#0,D7
	MOVE.W	D1,D7
	MOVE.L	A0,A2
	ADDA.L	D7,A2
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

F21:	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MAINF3:				; DI (NOP)
	SUBQ.L	#1,A2
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MAINF4:				; CALL P,XXXX
	ROL.W	#8,D1
	MOVE.B	(A2)+,D1
	ROL.W	#8,D1
	MOVE.W	D4,CCR
	BMI.B	F41
	SUBA.L	A0,A2
	MOVE.L	A2,D7
	ROL.W	#8,D7
	MOVE.W	D7,-(A4)
	MOVE.L	A0,A2
	MOVE.W	D1,D7
	ADDA.L	D7,A2
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

F41:	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MAINF5:				; PUSH AF
	ANDI.W	#$001F,D4	; INDEX INTO FLG TABLE
	MOVE.B	$200(A6,D4.W),D7; GET Z80 FLAGS FROM LOOKUP TABLE
	OR.B	D5,D7		; SET H AND N IN FLAGS
	ROL.W	#8,D7
	MOVE.B	D0,D7		; GET A REG
	MOVE.W	D7,-(A4)	; SAVE ON STACK
	SUBQ.L	#1,A2
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MAINF6:				; OR X
	MOVE.W	D4,CCR
	OR.B	D1,D0
	MOVE.W	CCR,D4
	ANDI.W	#$00FF,D0	; EXT D0 FOR INDEX INTO PARITY TABLE
	OR.B	(A6,D0.W),D4	; SET V FLG TO PARITY TABLE VALUE
	ANDI.W	#$EE,D4		; CLEAR C AND X
	MOVEQ.B	#0,D5		; SET EXTENDED Z80 FLG TO N=0 H=0
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MAINF7:				; RST 30
	SUBQ.L	#1,A2
	SUBA.L	A0,A2
	MOVE.W	A2,D7
	ROL.W	#8,D7
	MOVE.W	D7,-(A4)
	MOVE.L	A0,A2
	ADDA.L	#$30,A2
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MAINF8:				; RET M
	MOVE.W	D4,CCR
	BPL.B	F81
	MOVEQ	#0,D7
	MOVE.W	(A4)+,D7
	ROL.W	#8,D7
	MOVE.L	A0,A2
	ADDA.L	D7,A2
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

F81:	SUBQ.L	#1,A2
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MAINF9:				; LD SP,HL
	MOVE.L	A0,A4
	MOVEQ	#0,D7
	MOVE.W	D2,D7
	ADDA.L	D7,A4
	SUBQ.L	#1,A2
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MAINFA:				; JP M,XXXX
	ROL.W	#8,D1
	MOVE.B	(A2)+,D1
	ROL.W	#8,D1
	MOVE.W	D4,CCR
	BPL.B	FA1
	MOVEQ	#0,D7
	MOVE.W	D1,D7
	MOVE.L	A0,A2
	ADDA.L	D7,A2
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

FA1:	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MAINFB:				; EI (NOP)
	SUBQ.L	#1,A2
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MAINFC:				; CALL M,XXXX
	ROL.W	#8,D1
	MOVE.B	(A2)+,D1
	ROL.W	#8,D1
	MOVE.W	D4,CCR
	BPL.B	FC1
	SUBA.L	A0,A2
	MOVE.L	A2,D7
	ROL.W	#8,D7
	MOVE.W	D7,-(A4)
	MOVE.L	A0,A2
	MOVE.W	D1,D7
	ADDA.L	D7,A2
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

FC1:	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MAINFE:				; CP X
	MOVE.B	D0,D6
	MOVE.W	D4,CCR
	SUB.B	D1,D6
	MOVE.W	CCR,D4
	ANDI.W	#$00FF,D6	; EXT D6 FOR INDEX INTO SUB TABLE
	MOVE.B	$320(A6,D6.W),D5; SET EXTENDED Z80 FLG TO N=1 H=HALF
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MAINFF:				; RST 38
	SUBQ.L	#1,A2
	SUBA.L	A0,A2
	MOVE.W	A2,D7
	ROL.W	#8,D7
	MOVE.W	D7,-(A4)
	MOVE.L	A0,A2
	ADDA.L	#$38,A2
	MOVE.W	(A2)+,D1
	JMP	([A3,D1.W*4])
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

* CB INSTRUCTIONS

MCB00:				; RLC B
	ROL.W	#8,D3
	MOVE.W	D4,CCR
	ROL.B	#1,D3
	MOVE.W	CCR,D4
	SCS	D7
	ANDI.B	#$11,D7		; SET X = C BIT
	OR.B	D7,D4
	MOVE.B	D3,D6
	ANDI.W	#$00FF,D6	; EXT D0 FOR INDEX INTO PARITY TABLE
	OR.B	(A6,D6.W),D4	; SET V FLG TO PARITY TABLE VALUE
	MOVEQ.B	#0,D5		; SET EXTENDED Z80 FLG TO N=0 H=0
	ROL.W	#8,D3
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MCB01:				; RLC C
	MOVE.W	D4,CCR
	ROL.B	#1,D3
	MOVE.W	CCR,D4
	SCS	D7
	ANDI.B	#$11,D7
	OR.B	D7,D4
	MOVE.B	D3,D6
	ANDI.W	#$00FF,D6
	OR.B	(A6,D6.W),D4
	MOVEQ.B	#0,D5
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MCB02:				; RLC D
	ROL.L	#8,D3
	MOVE.W	D4,CCR
	ROL.B	#1,D3
	MOVE.W	CCR,D4
	SCS	D7
	ANDI.B	#$01,D7
	ROL.B	#4,D7
	OR.B	D7,D4
	MOVE.B	D3,D6
	ANDI.W	#$00FF,D6
	OR.B	(A6,D6.W),D4
	MOVEQ.B	#0,D5
	ROR.L	#8,D3
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MCB03:				; RLC E
	SWAP	D3
	MOVE.W	D4,CCR
	ROL.B	#1,D3
	MOVE.W	CCR,D4
	SCS	D7
	ANDI.B	#$01,D7
	ROL.B	#4,D7
	OR.B	D7,D4
	MOVE.B	D3,D6
	ANDI.W	#$00FF,D6
	OR.B	(A6,D6.W),D4
	MOVEQ.B	#0,D5
	SWAP	D3
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MCB04:				; RLC H
	ROL.W	#8,D2
	MOVE.W	D4,CCR
	ROL.B	#1,D2
	MOVE.W	CCR,D4
	SCS	D7
	ANDI.B	#$01,D7
	ROL.B	#4,D7
	OR.B	D7,D4
	MOVE.B	D2,D6
	ANDI.W	#$00FF,D6
	OR.B	(A6,D6.W),D4
	MOVEQ.B	#0,D5
	ROL.W	#8,D2
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MCB05:				; RLC L
	MOVE.W	D4,CCR
	ROL.B	#1,D2
	MOVE.W	CCR,D4
	SCS	D7
	ANDI.B	#$01,D7
	ROL.B	#4,D7
	OR.B	D7,D4
	MOVE.B	D2,D6
	ANDI.W	#$00FF,D6
	OR.B	(A6,D6.W),D4
	MOVEQ.B	#0,D5
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MCB06:				; RLC (HL)
	MOVEQ	#0,D1
	MOVE.W	D2,D1
	CMPI.W	#$4000,D1	; if HL >= 4000 do the instruction
	BCS.B	.L1
	MOVE.B	(A0,D1.L),D6
	MOVE.W	D4,CCR
	ROL.B	#1,D6
	MOVE.W	CCR,D4
	SCS	D7
	ANDI.B	#$01,D7
	ROL.B	#4,D7
	OR.B	D7,D4
	ANDI.W	#$00FF,D6
	OR.B	(A6,D6.W),D4
	MOVEQ.B	#0,D5
	MOVE.B	D6,(A0,D1.L)
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF
.L1
	CMPI.W	#$3BFF,D1	; if HL <= 3C00 we are in ROM so do nothing
	BHI.B	.L2
	MOVE.B	(A0,D1.L),D6	; CONDITION THE FLAGS BUT DONT ALTER (HL)
	ROL.B	#1,D6
	MOVE.W	CCR,D4
	SCS	D7
	ANDI.B	#$01,D7
	ROL.B	#4,D7
	OR.B	D7,D4
	ANDI.W	#$00FF,D6
	OR.B	(A6,D6.W),D4
	MOVEQ.B	#0,D5
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF
.L2
	MOVE.B	(A0,D1.L),D6
	MOVE.W	D4,CCR
	ROL.B	#1,D6
	MOVE.W	CCR,D4
	SCS	D7
	ANDI.B	#$01,D7
	ROL.B	#4,D7
	OR.B	D7,D4
	ANDI.W	#$00FF,D6
	OR.B	(A6,D6.W),D4
	MOVEQ.B	#0,D5
	MOVE.B	D6,(A0,D1.L)
	BSR	_screenwrite	; HL -> SCREENLOC D6=BYTE
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MCB07:				; RLC A
	MOVE.W	D4,CCR
	ROL.B	#1,D0
	MOVE.W	CCR,D4
	SCS	D7
	ANDI.B	#$01,D7
	ROL.B	#4,D7
	OR.B	D7,D4
	ANDI.W	#$00FF,D0
	OR.B	(A6,D0.W),D4
	MOVEQ.B	#0,D5
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MCB08:				; RRC B
	ROL.W	#8,D3
	MOVE.W	D4,CCR
	ROR.B	#1,D3
	MOVE.W	CCR,D4
	SCS	D7
	ANDI.B	#$01,D7
	ROL.B	#4,D7
	OR.B	D7,D4
	MOVE.B	D3,D6
	ANDI.W	#$00FF,D6
	OR.B	(A6,D6.W),D4
	MOVEQ.B	#0,D5
	ROL.W	#8,D3
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MCB09:				; RRC C
	MOVE.W	D4,CCR
	ROR.B	#1,D3
	MOVE.W	CCR,D4
	SCS	D7
	ANDI.B	#$01,D7
	ROL.B	#4,D7
	OR.B	D7,D4
	MOVE.B	D3,D6
	ANDI.W	#$00FF,D6
	OR.B	(A6,D6.W),D4
	MOVEQ.B	#0,D5
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MCB0A:				; RRC D
	ROL.L	#8,D3
	MOVE.W	D4,CCR
	ROR.B	#1,D3
	MOVE.W	CCR,D4
	SCS	D7
	ANDI.B	#$01,D7
	ROL.B	#4,D7
	OR.B	D7,D4
	MOVE.B	D3,D6
	ANDI.W	#$00FF,D6
	OR.B	(A6,D6.W),D4
	MOVEQ.B	#0,D5
	ROR.L	#8,D3
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MCB0B:				; RRC E
	SWAP	D3
	MOVE.W	D4,CCR
	ROR.B	#1,D3
	MOVE.W	CCR,D4
	SCS	D7
	ANDI.B	#$01,D7
	ROL.B	#4,D7
	OR.B	D7,D4
	MOVE.B	D3,D6
	ANDI.W	#$00FF,D6
	OR.B	(A6,D6.W),D4
	MOVEQ.B	#0,D5
	SWAP	D3
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MCB0C:				; RRC H
	ROL.W	#8,D2
	MOVE.W	D4,CCR
	ROR.B	#1,D2
	MOVE.W	CCR,D4
	SCS	D7
	ANDI.B	#$01,D7
	ROL.B	#4,D7
	OR.B	D7,D4
	MOVE.B	D2,D6
	ANDI.W	#$00FF,D6
	OR.B	(A6,D6.W),D4
	MOVEQ.B	#0,D5
	ROL.W	#8,D2
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MCB0D:				; RRC L
	MOVE.W	D4,CCR
	ROR.B	#1,D2
	MOVE.W	CCR,D4
	SCS	D7
	ANDI.B	#$01,D7
	ROL.B	#4,D7
	OR.B	D7,D4
	MOVE.B	D2,D6
	ANDI.W	#$00FF,D6
	OR.B	(A6,D6.W),D4
	MOVEQ.B	#0,D5
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MCB0E:				; RRC (HL)
	MOVEQ	#0,D1
	MOVE.W	D2,D1
	CMPI.W	#$4000,D1	; if HL >= 4000 do the instruction
	BCS.B	.L1
	MOVE.B	(A0,D1.L),D6
	MOVE.W	D4,CCR
	ROR.B	#1,D6
	MOVE.W	CCR,D4
	SCS	D7
	ANDI.B	#$01,D7
	ROL.B	#4,D7
	OR.B	D7,D4
	ANDI.W	#$00FF,D6
	OR.B	(A6,D6.W),D4
	MOVEQ.B	#0,D5
	MOVE.B	D6,(A0,D1.L)
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF
.L1
	CMPI.W	#$3BFF,D1	; if HL <= 3C00 we are in ROM so do nothing
	BHI.B	.L2
	MOVE.B	(A0,D1.L),D6	; CONDITION THE FLAGS BUT DONT ALTER (HL)
	ROR.B	#1,D6
	MOVE.W	CCR,D4
	SCS	D7
	ANDI.B	#$01,D7
	ROL.B	#4,D7
	OR.B	D7,D4
	ANDI.W	#$00FF,D6
	OR.B	(A6,D6.W),D4
	MOVEQ.B	#0,D5
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF
.L2
	MOVE.B	(A0,D1.L),D6
	MOVE.W	D4,CCR
	ROR.B	#1,D6
	MOVE.W	CCR,D4
	SCS	D7
	ANDI.B	#$01,D7
	ROL.B	#4,D7
	OR.B	D7,D4
	ANDI.W	#$00FF,D6
	OR.B	(A6,D6.W),D4
	MOVEQ.B	#0,D5
	MOVE.B	D6,(A0,D1.L)
	BSR	_screenwrite	; HL -> SCREENLOC D6=BYTE
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MCB0F:				; RRC A
	MOVE.W	D4,CCR
	ROR.B	#1,D0
	MOVE.W	CCR,D4
	SCS	D7
	ANDI.B	#$01,D7
	ROL.B	#4,D7
	OR.B	D7,D4
	ANDI.W	#$00FF,D0
	OR.B	(A6,D0.W),D4
	MOVEQ.B	#0,D5
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MCB10:				; RL B
	ROL.W	#8,D3
	MOVE.W	D4,CCR
	ROXL.B	#1,D3
	MOVE.W	CCR,D4
	SCS	D7
	ANDI.B	#$01,D7
	ROL.B	#4,D7
	OR.B	D7,D4
	MOVE.B	D3,D6
	ANDI.W	#$00FF,D6
	OR.B	(A6,D6.W),D4
	MOVEQ.B	#0,D5
	ROL.W	#8,D3
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MCB11:				; RL C
	MOVE.W	D4,CCR
	ROXL.B	#1,D3
	MOVE.W	CCR,D4
	SCS	D7
	ANDI.B	#$01,D7
	ROL.B	#4,D7
	OR.B	D7,D4
	MOVE.B	D3,D6
	ANDI.W	#$00FF,D6
	OR.B	(A6,D6.W),D4
	MOVEQ.B	#0,D5
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MCB12:				; RL D
	ROL.L	#8,D3
	MOVE.W	D4,CCR
	ROXL.B	#1,D3
	MOVE.W	CCR,D4
	SCS	D7
	ANDI.B	#$01,D7
	ROL.B	#4,D7
	OR.B	D7,D4
	MOVE.B	D3,D6
	ANDI.W	#$00FF,D6
	OR.B	(A6,D6.W),D4
	MOVEQ.B	#0,D5
	ROR.L	#8,D3
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MCB13:				; RL E
	SWAP	D3
	MOVE.W	D4,CCR
	ROXL.B	#1,D3
	MOVE.W	CCR,D4
	SCS	D7
	ANDI.B	#$01,D7
	ROL.B	#4,D7
	OR.B	D7,D4
	MOVE.B	D3,D6
	ANDI.W	#$00FF,D6
	OR.B	(A6,D6.W),D4
	MOVEQ.B	#0,D5
	SWAP	D3
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MCB14:				; RL H
	ROL.W	#8,D2
	MOVE.W	D4,CCR
	ROXL.B	#1,D2
	MOVE.W	CCR,D4
	SCS	D7
	ANDI.B	#$01,D7
	ROL.B	#4,D7
	OR.B	D7,D4
	MOVE.B	D2,D6
	ANDI.W	#$00FF,D6
	OR.B	(A6,D6.W),D4
	MOVEQ.B	#0,D5
	ROL.W	#8,D2
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MCB15:				; RL L
	MOVE.W	D4,CCR
	ROXL.B	#1,D2
	MOVE.W	CCR,D4
	SCS	D7
	ANDI.B	#$01,D7
	ROL.B	#4,D7
	OR.B	D7,D4
	MOVE.B	D2,D6
	ANDI.W	#$00FF,D6
	OR.B	(A6,D6.W),D4
	MOVEQ.B	#0,D5
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MCB16:				; RL (HL)
	MOVEQ	#0,D1
	MOVE.W	D2,D1
	CMPI.W	#$4000,D1	; if HL >= 4000 do the instruction
	BCS.B	.L1
	MOVE.B	(A0,D1.L),D6
	MOVE.W	D4,CCR
	ROXL.B	#1,D6
	MOVE.W	CCR,D4
	SCS	D7
	ANDI.B	#$01,D7
	ROL.B	#4,D7
	OR.B	D7,D4
	ANDI.W	#$00FF,D6
	OR.B	(A6,D6.W),D4
	MOVEQ.B	#0,D5
	MOVE.B	D6,(A0,D1.L)
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF
.L1
	CMPI.W	#$3BFF,D1	; if HL <= 3C00 we are in ROM so do nothing
	BHI.B	.L2
	MOVE.B	(A0,D1.L),D6	; CONDITION THE FLAGS BUT DONT ALTER (HL)
	ROXL.B	#1,D6
	MOVE.W	CCR,D4
	SCS	D7
	ANDI.B	#$01,D7
	ROL.B	#4,D7
	OR.B	D7,D4
	ANDI.W	#$00FF,D6
	OR.B	(A6,D6.W),D4
	MOVEQ.B	#0,D5
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF
.L2
	MOVE.B	(A0,D1.L),D6
	MOVE.W	D4,CCR
	ROXL.B	#1,D6
	MOVE.W	CCR,D4
	SCS	D7
	ANDI.B	#$01,D7
	ROL.B	#4,D7
	OR.B	D7,D4
	ANDI.W	#$00FF,D6
	OR.B	(A6,D6.W),D4
	MOVEQ.B	#0,D5
	MOVE.B	D6,(A0,D1.L)
	BSR	_screenwrite	; HL -> SCREENLOC D6=BYTE
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MCB17:				; RL A
	MOVE.W	D4,CCR
	ROXL.B	#1,D0
	MOVE.W	CCR,D4
	SCS	D7
	ANDI.B	#$01,D7
	ROL.B	#4,D7
	OR.B	D7,D4
	ANDI.W	#$00FF,D0
	OR.B	(A6,D0.W),D4
	MOVEQ.B	#0,D5
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MCB18:				; RR B
	ROL.W	#8,D3
	MOVE.W	D4,CCR
	ROXR.B	#1,D3
	MOVE.W	CCR,D4
	SCS	D7
	ANDI.B	#$01,D7
	ROL.B	#4,D7
	OR.B	D7,D4
	MOVE.B	D3,D6
	ANDI.W	#$00FF,D6
	OR.B	(A6,D6.W),D4
	MOVEQ.B	#0,D5
	ROL.W	#8,D3
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MCB19:				; RR C
	MOVE.W	D4,CCR
	ROXR.B	#1,D3
	MOVE.W	CCR,D4
	SCS	D7
	ANDI.B	#$01,D7
	ROL.B	#4,D7
	OR.B	D7,D4
	MOVE.B	D3,D6
	ANDI.W	#$00FF,D6
	OR.B	(A6,D6.W),D4
	MOVEQ.B	#0,D5
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MCB1A:				; RR D
	ROL.L	#8,D3
	MOVE.W	D4,CCR
	ROXR.B	#1,D3
	MOVE.W	CCR,D4
	SCS	D7
	ANDI.B	#$01,D7
	ROL.B	#4,D7
	OR.B	D7,D4
	MOVE.B	D3,D6
	ANDI.W	#$00FF,D6
	OR.B	(A6,D6.W),D4
	MOVEQ.B	#0,D5
	ROR.L	#8,D3
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MCB1B:				; RR E
	SWAP	D3
	MOVE.W	D4,CCR
	ROXR.B	#1,D3
	MOVE.W	CCR,D4
	SCS	D7
	ANDI.B	#$01,D7
	ROL.B	#4,D7
	OR.B	D7,D4
	MOVE.B	D3,D6
	ANDI.W	#$00FF,D6
	OR.B	(A6,D6.W),D4
	MOVEQ.B	#0,D5
	SWAP	D3
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MCB1C:				; RR H
	ROL.W	#8,D2
	MOVE.W	D4,CCR
	ROXR.B	#1,D2
	MOVE.W	CCR,D4
	SCS	D7
	ANDI.B	#$01,D7
	ROL.B	#4,D7
	OR.B	D7,D4
	MOVE.B	D2,D6
	ANDI.W	#$00FF,D6
	OR.B	(A6,D6.W),D4
	MOVEQ.B	#0,D5
	ROL.W	#8,D2
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MCB1D:				; RR L
	MOVE.W	D4,CCR
	ROXR.B	#1,D2
	MOVE.W	CCR,D4
	SCS	D7
	ANDI.B	#$01,D7
	ROL.B	#4,D7
	OR.B	D7,D4
	MOVE.B	D2,D6
	ANDI.W	#$00FF,D6
	OR.B	(A6,D6.W),D4
	MOVEQ.B	#0,D5
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MCB1E:				; RR (HL)
	MOVEQ	#0,D1
	MOVE.W	D2,D1
	CMPI.W	#$4000,D1	; if HL >= 4000 do the instruction
	BCS.B	.L1
	MOVE.B	(A0,D1.L),D6
	MOVE.W	D4,CCR
	ROXR.B	#1,D6
	MOVE.W	CCR,D4
	SCS	D7
	ANDI.B	#$01,D7
	ROL.B	#4,D7
	OR.B	D7,D4
	ANDI.W	#$00FF,D6
	OR.B	(A6,D6.W),D4
	MOVEQ.B	#0,D5
	MOVE.B	D6,(A0,D1.L)
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF
.L1
	CMPI.W	#$3BFF,D1	; if HL <= 3C00 we are in ROM so do nothing
	BHI.B	.L2
	MOVE.B	(A0,D1.L),D6	; CONDITION THE FLAGS BUT DONT ALTER (HL)
	ROXR.B	#1,D6
	MOVE.W	CCR,D4
	SCS	D7
	ANDI.B	#$01,D7
	ROL.B	#4,D7
	OR.B	D7,D4
	ANDI.W	#$00FF,D6
	OR.B	(A6,D6.W),D4
	MOVEQ.B	#0,D5
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF
.L2
	MOVE.B	(A0,D1.L),D6
	MOVE.W	D4,CCR
	ROXR.B	#1,D6
	MOVE.W	CCR,D4
	SCS	D7
	ANDI.B	#$01,D7
	ROL.B	#4,D7
	OR.B	D7,D4
	ANDI.W	#$00FF,D6
	OR.B	(A6,D6.W),D4
	MOVEQ.B	#0,D5
	MOVE.B	D6,(A0,D1.L)
	BSR	_screenwrite	; HL -> SCREENLOC D6=BYTE
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MCB1F:				; RR A
	MOVE.W	D4,CCR
	ROXR.B	#1,D0
	MOVE.W	CCR,D4
	SCS	D7
	ANDI.B	#$01,D7
	ROL.B	#4,D7
	OR.B	D7,D4
	ANDI.W	#$00FF,D0
	OR.B	(A6,D0.W),D4
	MOVEQ.B	#0,D5
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MCB20:				; SLA B
	ROL.W	#8,D3
	MOVE.W	D4,CCR
	LSL.B	#1,D3
	MOVE.W	CCR,D4
	SCS	D7
	ANDI.B	#$01,D7
	ROL.B	#4,D7
	OR.B	D7,D4
	MOVE.B	D3,D6
	ANDI.W	#$00FF,D6
	OR.B	(A6,D6.W),D4
	MOVEQ.B	#0,D5
	ROL.W	#8,D3
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MCB21:				; SLA C
	MOVE.W	D4,CCR
	LSL.B	#1,D3
	MOVE.W	CCR,D4
	SCS	D7
	ANDI.B	#$01,D7
	ROL.B	#4,D7
	OR.B	D7,D4
	MOVE.B	D3,D6
	ANDI.W	#$00FF,D6
	OR.B	(A6,D6.W),D4
	MOVEQ.B	#0,D5
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MCB22:				; SLA D
	ROL.L	#8,D3
	MOVE.W	D4,CCR
	LSL.B	#1,D3
	MOVE.W	CCR,D4
	SCS	D7
	ANDI.B	#$01,D7
	ROL.B	#4,D7
	OR.B	D7,D4
	MOVE.B	D3,D6
	ANDI.W	#$00FF,D6
	OR.B	(A6,D6.W),D4
	MOVEQ.B	#0,D5
	ROR.L	#8,D3
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MCB23:				; SLA E
	SWAP	D3
	MOVE.W	D4,CCR
	LSL.B	#1,D3
	MOVE.W	CCR,D4
	SCS	D7
	ANDI.B	#$01,D7
	ROL.B	#4,D7
	OR.B	D7,D4
	MOVE.B	D3,D6
	ANDI.W	#$00FF,D6
	OR.B	(A6,D6.W),D4
	MOVEQ.B	#0,D5
	SWAP	D3
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MCB24:				; SLA H
	ROL.W	#8,D2
	MOVE.W	D4,CCR
	LSL.B	#1,D2
	MOVE.W	CCR,D4
	SCS	D7
	ANDI.B	#$01,D7
	ROL.B	#4,D7
	OR.B	D7,D4
	MOVE.B	D2,D6
	ANDI.W	#$00FF,D6
	OR.B	(A6,D6.W),D4
	MOVEQ.B	#0,D5
	ROL.W	#8,D2
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MCB25:				; SLA L
	MOVE.W	D4,CCR
	LSL.B	#1,D2
	MOVE.W	CCR,D4
	SCS	D7
	ANDI.B	#$01,D7
	ROL.B	#4,D7
	OR.B	D7,D4
	MOVE.B	D2,D6
	ANDI.W	#$00FF,D6
	OR.B	(A6,D6.W),D4
	MOVEQ.B	#0,D5
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MCB26:				; SLA (HL)
	MOVEQ	#0,D1
	MOVE.W	D2,D1
	CMPI.W	#$4000,D1	; if HL >= 4000 do the instruction
	BCS.B	.L1
	MOVE.B	(A0,D1.L),D6
	MOVE.W	D4,CCR
	LSL.B	#1,D6
	MOVE.W	CCR,D4
	SCS	D7
	ANDI.B	#$01,D7
	ROL.B	#4,D7
	OR.B	D7,D4
	ANDI.W	#$00FF,D6
	OR.B	(A6,D6.W),D4
	MOVEQ.B	#0,D5
	MOVE.B	D6,(A0,D1.L)
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF
.L1
	CMPI.W	#$3BFF,D1	; if HL <= 3C00 we are in ROM so do nothing
	BHI.B	.L2
	MOVE.B	(A0,D1.L),D6	; CONDITION THE FLAGS BUT DONT ALTER (HL)
	LSL.B	#1,D6
	MOVE.W	CCR,D4
	SCS	D7
	ANDI.B	#$01,D7
	ROL.B	#4,D7
	OR.B	D7,D4
	ANDI.W	#$00FF,D6
	OR.B	(A6,D6.W),D4
	MOVEQ.B	#0,D5
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF
.L2
	MOVE.B	(A0,D1.L),D6
	MOVE.W	D4,CCR
	LSL.B	#1,D6
	MOVE.W	CCR,D4
	SCS	D7
	ANDI.B	#$01,D7
	ROL.B	#4,D7
	OR.B	D7,D4
	ANDI.W	#$00FF,D6
	OR.B	(A6,D6.W),D4
	MOVEQ.B	#0,D5
	MOVE.B	D6,(A0,D1.L)
	BSR	_screenwrite	; HL -> SCREENLOC D6=BYTE
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MCB27:				; SLA A
	MOVE.W	D4,CCR
	LSL.B	#1,D0
	MOVE.W	CCR,D4
	SCS	D7
	ANDI.B	#$01,D7
	ROL.B	#4,D7
	OR.B	D7,D4
	ANDI.W	#$00FF,D0
	OR.B	(A6,D0.W),D4
	MOVEQ.B	#0,D5
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MCB28:				; SRA B
	ROL.W	#8,D3
	MOVE.W	D4,CCR
	ASR.B	#1,D3
	MOVE.W	CCR,D4
	SCS	D7
	ANDI.B	#$01,D7
	ROL.B	#4,D7
	OR.B	D7,D4
	MOVE.B	D3,D6
	ANDI.W	#$00FF,D6
	OR.B	(A6,D6.W),D4
	MOVEQ.B	#0,D5
	ROL.W	#8,D3
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MCB29:				; SRA C
	MOVE.W	D4,CCR
	ASR.B	#1,D3
	MOVE.W	CCR,D4
	SCS	D7
	ANDI.B	#$01,D7
	ROL.B	#4,D7
	OR.B	D7,D4
	MOVE.B	D3,D6
	ANDI.W	#$00FF,D6
	OR.B	(A6,D6.W),D4
	MOVEQ.B	#0,D5
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MCB2A:				; SRA D
	ROL.L	#8,D3
	MOVE.W	D4,CCR
	ASR.B	#1,D3
	MOVE.W	CCR,D4
	SCS	D7
	ANDI.B	#$01,D7
	ROL.B	#4,D7
	OR.B	D7,D4
	MOVE.B	D3,D6
	ANDI.W	#$00FF,D6
	OR.B	(A6,D6.W),D4
	MOVEQ.B	#0,D5
	ROR.L	#8,D3
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MCB2B:				; SRA E
	SWAP	D3
	MOVE.W	D4,CCR
	ASR.B	#1,D3
	MOVE.W	CCR,D4
	SCS	D7
	ANDI.B	#$01,D7
	ROL.B	#4,D7
	OR.B	D7,D4
	MOVE.B	D3,D6
	ANDI.W	#$00FF,D6
	OR.B	(A6,D6.W),D4
	MOVEQ.B	#0,D5
	SWAP	D3
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MCB2C:				; SRA H
	ROL.W	#8,D2
	MOVE.W	D4,CCR
	ASR.B	#1,D2
	MOVE.W	CCR,D4
	SCS	D7
	ANDI.B	#$01,D7
	ROL.B	#4,D7
	OR.B	D7,D4
	MOVE.B	D2,D6
	ANDI.W	#$00FF,D6
	OR.B	(A6,D6.W),D4
	MOVEQ.B	#0,D5
	ROL.W	#8,D2
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MCB2D:				; SRA L
	MOVE.W	D4,CCR
	ASR.B	#1,D2
	MOVE.W	CCR,D4
	SCS	D7
	ANDI.B	#$01,D7
	ROL.B	#4,D7
	OR.B	D7,D4
	MOVE.B	D2,D6
	ANDI.W	#$00FF,D6
	OR.B	(A6,D6.W),D4
	MOVEQ.B	#0,D5
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MCB2E:				; SRA (HL)
	MOVEQ	#0,D1
	MOVE.W	D2,D1
	CMPI.W	#$4000,D1	; if HL >= 4000 do the instruction
	BCS.B	.L1
	MOVE.B	(A0,D1.L),D6
	MOVE.W	D4,CCR
	ASR.B	#1,D6
	MOVE.W	CCR,D4
	SCS	D7
	ANDI.B	#$01,D7
	ROL.B	#4,D7
	OR.B	D7,D4
	ANDI.W	#$00FF,D6
	OR.B	(A6,D6.W),D4
	MOVEQ.B	#0,D5
	MOVE.B	D6,(A0,D1.L)
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF
.L1
	CMPI.W	#$3BFF,D1	; if HL <= 3C00 we are in ROM so do nothing
	BHI.B	.L2
	MOVE.B	(A0,D1.L),D6	; CONDITION THE FLAGS BUT DONT ALTER (HL)
	ASR.B	#1,D6
	MOVE.W	CCR,D4
	SCS	D7
	ANDI.B	#$01,D7
	ROL.B	#4,D7
	OR.B	D7,D4
	ANDI.W	#$00FF,D6
	OR.B	(A6,D6.W),D4
	MOVEQ.B	#0,D5
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF
.L2
	MOVE.B	(A0,D1.L),D6
	MOVE.W	D4,CCR
	ASR.B	#1,D6
	MOVE.W	CCR,D4
	SCS	D7
	ANDI.B	#$01,D7
	ROL.B	#4,D7
	OR.B	D7,D4
	ANDI.W	#$00FF,D6
	OR.B	(A6,D6.W),D4
	MOVEQ.B	#0,D5
	MOVE.B	D6,(A0,D1.L)
	BSR	_screenwrite	; HL -> SCREENLOC D6=BYTE
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MCB2F:				; SRA A
	MOVE.W	D4,CCR
	ASR.B	#1,D0
	MOVE.W	CCR,D4
	SCS	D7
	ANDI.B	#$01,D7
	ROL.B	#4,D7
	OR.B	D7,D4
	ANDI.W	#$00FF,D0
	OR.B	(A6,D0.W),D4
	MOVEQ.B	#0,D5
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MCB38:				; SRL B
	ROL.W	#8,D3
	MOVE.W	D4,CCR
	LSR.B	#1,D3
	MOVE.W	CCR,D4
	SCS	D7
	ANDI.B	#$01,D7
	ROL.B	#4,D7
	OR.B	D7,D4
	MOVE.B	D3,D6
	ANDI.W	#$00FF,D6
	OR.B	(A6,D6.W),D4
	MOVEQ.B	#0,D5
	ROL.W	#8,D3
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MCB39:				; SRL C
	MOVE.W	D4,CCR
	LSR.B	#1,D3
	MOVE.W	CCR,D4
	SCS	D7
	ANDI.B	#$01,D7
	ROL.B	#4,D7
	OR.B	D7,D4
	MOVE.B	D3,D6
	ANDI.W	#$00FF,D6
	OR.B	(A6,D6.W),D4
	MOVEQ.B	#0,D5
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MCB3A:				; SRL D
	ROL.L	#8,D3
	MOVE.W	D4,CCR
	LSR.B	#1,D3
	MOVE.W	CCR,D4
	SCS	D7
	ANDI.B	#$01,D7
	ROL.B	#4,D7
	OR.B	D7,D4
	MOVE.B	D3,D6
	ANDI.W	#$00FF,D6
	OR.B	(A6,D6.W),D4
	MOVEQ.B	#0,D5
	ROR.L	#8,D3
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MCB3B:				; SRL E
	SWAP	D3
	MOVE.W	D4,CCR
	LSR.B	#1,D3
	MOVE.W	CCR,D4
	SCS	D7
	ANDI.B	#$01,D7
	ROL.B	#4,D7
	OR.B	D7,D4
	MOVE.B	D3,D6
	ANDI.W	#$00FF,D6
	OR.B	(A6,D6.W),D4
	MOVEQ.B	#0,D5
	SWAP	D3
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MCB3C:				; SRL H
	ROL.W	#8,D2
	MOVE.W	D4,CCR
	LSR.B	#1,D2
	MOVE.W	CCR,D4
	SCS	D7
	ANDI.B	#$01,D7
	ROL.B	#4,D7
	OR.B	D7,D4
	MOVE.B	D2,D6
	ANDI.W	#$00FF,D6
	OR.B	(A6,D6.W),D4
	MOVEQ.B	#0,D5
	ROL.W	#8,D2
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MCB3D:				; SRL L
	MOVE.W	D4,CCR
	LSR.B	#1,D2
	MOVE.W	CCR,D4
	SCS	D7
	ANDI.B	#$01,D7
	ROL.B	#4,D7
	OR.B	D7,D4
	MOVE.B	D2,D6
	ANDI.W	#$00FF,D6
	OR.B	(A6,D6.W),D4
	MOVEQ.B	#0,D5
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MCB3E:				; SRL (HL)
	MOVEQ	#0,D1
	MOVE.W	D2,D1
	CMPI.W	#$4000,D1	; if HL >= 4000 do the instruction
	BCS.B	.L1
	MOVE.B	(A0,D1.L),D6
	MOVE.W	D4,CCR
	LSR.B	#1,D6
	MOVE.W	CCR,D4
	SCS	D7
	ANDI.B	#$01,D7
	ROL.B	#4,D7
	OR.B	D7,D4
	ANDI.W	#$00FF,D6
	OR.B	(A6,D6.W),D4
	MOVEQ.B	#0,D5
	MOVE.B	D6,(A0,D1.L)
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF
.L1
	CMPI.W	#$3BFF,D1	; if HL <= 3C00 we are in ROM so do nothing
	BHI.B	.L2
	MOVE.B	(A0,D1.L),D6	; CONDITION THE FLAGS BUT DONT ALTER (HL)
	LSR.B	#1,D6
	MOVE.W	CCR,D4
	SCS	D7
	ANDI.B	#$01,D7
	ROL.B	#4,D7
	OR.B	D7,D4
	ANDI.W	#$00FF,D6
	OR.B	(A6,D6.W),D4
	MOVEQ.B	#0,D5
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF
.L2
	MOVE.B	(A0,D1.L),D6
	MOVE.W	D4,CCR
	LSR.B	#1,D6
	MOVE.W	CCR,D4
	SCS	D7
	ANDI.B	#$01,D7
	ROL.B	#4,D7
	OR.B	D7,D4
	ANDI.W	#$00FF,D6
	OR.B	(A6,D6.W),D4
	MOVEQ.B	#0,D5
	MOVE.B	D6,(A0,D1.L)
	BSR	_screenwrite	; HL -> SCREENLOC D6=BYTE
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MCB3F:				; SRL A
	MOVE.W	D4,CCR
	LSR.B	#1,D0
	MOVE.W	CCR,D4
	SCS	D7
	ANDI.B	#$01,D7
	ROL.B	#4,D7
	OR.B	D7,D4
	ANDI.W	#$00FF,D0
	OR.B	(A6,D0.W),D4
	MOVEQ.B	#0,D5
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF


MCB40:				; BIT 0,B
	MOVE.W	D4,CCR
	BTST	#8,D3
	MOVE.W	CCR,D4
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MCB41:				; BIT 0,C
	MOVE.W	D4,CCR
	BTST	#0,D3
	MOVE.W	CCR,D4
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MCB42:				; BIT 0,D
	MOVE.W	D4,CCR
	BTST	#24,D3
	MOVE.W	CCR,D4
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MCB43:				; BIT 0,E
	MOVE.W	D4,CCR
	BTST	#16,D3
	MOVE.W	CCR,D4
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MCB44:				; BIT 0,H
	MOVE.W	D4,CCR
	BTST	#8,D2
	MOVE.W	CCR,D4
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MCB45:				; BIT 0,L
	MOVE.W	D4,CCR
	BTST	#0,D2
	MOVE.W	CCR,D4
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MCB46:				; BIT 0,(HL)
	MOVEQ	#0,D1
	MOVE.W	D2,D1
	MOVE.B	(A0,D1.L),D7
	MOVE.W	D4,CCR
	BTST	#0,D7
	MOVE.W	CCR,D4
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MCB47:				; BIT 0,A
	MOVE.W	D4,CCR
	BTST	#0,D0
	MOVE.W	CCR,D4
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MCB48:				; BIT 1,B
	MOVE.W	D4,CCR
	BTST	#9,D3
	MOVE.W	CCR,D4
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MCB49:				; BIT 1,C
	MOVE.W	D4,CCR
	BTST	#1,D3
	MOVE.W	CCR,D4
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MCB4A:				; BIT 1,D
	MOVE.W	D4,CCR
	BTST	#25,D3
	MOVE.W	CCR,D4
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MCB4B:				; BIT 1,E
	MOVE.W	D4,CCR
	BTST	#17,D3
	MOVE.W	CCR,D4
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MCB4C:				; BIT 1,H
	MOVE.W	D4,CCR
	BTST	#9,D2
	MOVE.W	CCR,D4
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MCB4D:				; BIT 1,L
	MOVE.W	D4,CCR
	BTST	#1,D2
	MOVE.W	CCR,D4
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MCB4E:				; BIT 1,(HL)
	MOVEQ	#0,D1
	MOVE.W	D2,D1
	MOVE.B	(A0,D1.L),D7
	MOVE.W	D4,CCR
	BTST	#1,D7
	MOVE.W	CCR,D4
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MCB4F:				; BIT 1,A
	MOVE.W	D4,CCR
	BTST	#1,D0
	MOVE.W	CCR,D4
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MCB50:				; BIT 2,B
	MOVE.W	D4,CCR
	BTST	#10,D3
	MOVE.W	CCR,D4
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MCB51:				; BIT 2,C
	MOVE.W	D4,CCR
	BTST	#2,D3
	MOVE.W	CCR,D4
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MCB52:				; BIT 2,D
	MOVE.W	D4,CCR
	BTST	#26,D3
	MOVE.W	CCR,D4
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MCB53:				; BIT 2,E
	MOVE.W	D4,CCR
	BTST	#18,D3
	MOVE.W	CCR,D4
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MCB54:				; BIT 2,H
	MOVE.W	D4,CCR
	BTST	#10,D2
	MOVE.W	CCR,D4
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MCB55:				; BIT 2,L
	MOVE.W	D4,CCR
	BTST	#2,D2
	MOVE.W	CCR,D4
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MCB56:				; BIT 2,(HL)
	MOVEQ	#0,D1
	MOVE.W	D2,D1
	MOVE.B	(A0,D1.L),D7
	MOVE.W	D4,CCR
	BTST	#2,D7
	MOVE.W	CCR,D4
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MCB57:				; BIT 2,A
	MOVE.W	D4,CCR
	BTST	#2,D0
	MOVE.W	CCR,D4
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MCB58:				; BIT 3,B
	MOVE.W	D4,CCR
	BTST	#11,D3
	MOVE.W	CCR,D4
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MCB59:				; BIT 3,C
	MOVE.W	D4,CCR
	BTST	#3,D3
	MOVE.W	CCR,D4
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MCB5A:				; BIT 3,D
	MOVE.W	D4,CCR
	BTST	#27,D3
	MOVE.W	CCR,D4
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MCB5B:				; BIT 3,E
	MOVE.W	D4,CCR
	BTST	#19,D3
	MOVE.W	CCR,D4
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MCB5C:				; BIT 3,H
	MOVE.W	D4,CCR
	BTST	#11,D2
	MOVE.W	CCR,D4
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MCB5D:				; BIT 3,L
	MOVE.W	D4,CCR
	BTST	#3,D2
	MOVE.W	CCR,D4
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MCB5E:				; BIT 3,(HL)
	MOVEQ	#0,D1
	MOVE.W	D2,D1
	MOVE.B	(A0,D1.L),D7
	MOVE.W	D4,CCR
	BTST	#3,D7
	MOVE.W	CCR,D4
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MCB5F:				; BIT 3,A
	MOVE.W	D4,CCR
	BTST	#3,D0
	MOVE.W	CCR,D4
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MCB60:				; BIT 4,B
	MOVE.W	D4,CCR
	BTST	#12,D3
	MOVE.W	CCR,D4
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MCB61:				; BIT 4,C
	MOVE.W	D4,CCR
	BTST	#4,D3
	MOVE.W	CCR,D4
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MCB62:				; BIT 4,D
	MOVE.W	D4,CCR
	BTST	#28,D3
	MOVE.W	CCR,D4
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MCB63:				; BIT 4,E
	MOVE.W	D4,CCR
	BTST	#20,D3
	MOVE.W	CCR,D4
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MCB64:				; BIT 4,H
	MOVE.W	D4,CCR
	BTST	#12,D2
	MOVE.W	CCR,D4
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MCB65:				; BIT 4,L
	MOVE.W	D4,CCR
	BTST	#4,D2
	MOVE.W	CCR,D4
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MCB66:				; BIT 4,(HL)
	MOVEQ	#0,D1
	MOVE.W	D2,D1
	MOVE.B	(A0,D1.L),D7
	MOVE.W	D4,CCR
	BTST	#4,D7
	MOVE.W	CCR,D4
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MCB67:				; BIT 4,A
	MOVE.W	D4,CCR
	BTST	#4,D0
	MOVE.W	CCR,D4
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MCB68:				; BIT 5,B
	MOVE.W	D4,CCR
	BTST	#13,D3
	MOVE.W	CCR,D4
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MCB69:				; BIT 5,C
	MOVE.W	D4,CCR
	BTST	#5,D3
	MOVE.W	CCR,D4
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MCB6A:				; BIT 5,D
	MOVE.W	D4,CCR
	BTST	#29,D3
	MOVE.W	CCR,D4
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MCB6B:				; BIT 5,E
	MOVE.W	D4,CCR
	BTST	#21,D3
	MOVE.W	CCR,D4
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MCB6C:				; BIT 5,H
	MOVE.W	D4,CCR
	BTST	#13,D2
	MOVE.W	CCR,D4
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MCB6D:				; BIT 5,L
	MOVE.W	D4,CCR
	BTST	#5,D2
	MOVE.W	CCR,D4
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MCB6E:				; BIT 5,(HL)
	MOVEQ	#0,D1
	MOVE.W	D2,D1
	MOVE.B	(A0,D1.L),D7
	MOVE.W	D4,CCR
	BTST	#5,D7
	MOVE.W	CCR,D4
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MCB6F:				; BIT 5,A
	MOVE.W	D4,CCR
	BTST	#5,D0
	MOVE.W	CCR,D4
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MCB70:				; BIT 6,B
	MOVE.W	D4,CCR
	BTST	#14,D3
	MOVE.W	CCR,D4
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MCB71:				; BIT 6,C
	MOVE.W	D4,CCR
	BTST	#6,D3
	MOVE.W	CCR,D4
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MCB72:				; BIT 6,D
	MOVE.W	D4,CCR
	BTST	#30,D3
	MOVE.W	CCR,D4
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MCB73:				; BIT 6,E
	MOVE.W	D4,CCR
	BTST	#22,D3
	MOVE.W	CCR,D4
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MCB74:				; BIT 6,H
	MOVE.W	D4,CCR
	BTST	#14,D2
	MOVE.W	CCR,D4
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MCB75:				; BIT 6,L
	MOVE.W	D4,CCR
	BTST	#6,D2
	MOVE.W	CCR,D4
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MCB76:				; BIT 6,(HL)
	MOVEQ	#0,D1
	MOVE.W	D2,D1
	MOVE.B	(A0,D1.L),D7
	MOVE.W	D4,CCR
	BTST	#6,D7
	MOVE.W	CCR,D4
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MCB77:				; BIT 6,A
	MOVE.W	D4,CCR
	BTST	#6,D0
	MOVE.W	CCR,D4
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MCB78:				; BIT 7,B
	MOVE.W	D4,CCR
	BTST	#15,D3
	MOVE.W	CCR,D4
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MCB79:				; BIT 7,C
	MOVE.W	D4,CCR
	BTST	#7,D3
	MOVE.W	CCR,D4
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MCB7A:				; BIT 7,D
	MOVE.W	D4,CCR
	BTST	#31,D3
	MOVE.W	CCR,D4
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MCB7B:				; BIT 7,E
	MOVE.W	D4,CCR
	BTST	#23,D3
	MOVE.W	CCR,D4
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MCB7C:				; BIT 7,H
	MOVE.W	D4,CCR
	BTST	#15,D2
	MOVE.W	CCR,D4
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MCB7D:				; BIT 7,L
	MOVE.W	D4,CCR
	BTST	#7,D2
	MOVE.W	CCR,D4
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MCB7E:				; BIT 7,(HL)
	MOVEQ	#0,D1
	MOVE.W	D2,D1
	MOVE.B	(A0,D1.L),D7
	MOVE.W	D4,CCR
	BTST	#7,D7
	MOVE.W	CCR,D4
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MCB7F:				; BIT 7,A
	MOVE.W	D4,CCR
	BTST	#7,D0
	MOVE.W	CCR,D4
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MCB80:				; RES 0,B
	BCLR	#8,D3
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MCB81:				; RES 0,C
	BCLR	#0,D3
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MCB82:				; RES 0,D
	BCLR	#24,D3
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MCB83:				; RES 0,E
	BCLR	#16,D3
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MCB84:				; RES 0,H
	BCLR	#8,D2
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MCB85:				; RES 0,L
	BCLR	#0,D2
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MCB86:				; RES 0,(HL)
	MOVEQ	#0,D1
	MOVE.W	D2,D1
	CMPI.W	#$4000,D1	
	BCS.B	.L1
	BCLR	#0,(A0,D1.L)
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF
.L1
	CMPI.W	#$3BFF,D1	
	BHI.B	.L2
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF
.L2
	BCLR	#0,(A0,D1.L)
	MOVE.B	(A0,D1.L),D6	
	BSR	_screenwrite
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MCB87:				; RES 0,A
	BCLR	#0,D0
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MCB88:				; RES 1,B
	BCLR	#9,D3
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MCB89:				; RES 1,C
	BCLR	#1,D3
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MCB8A:				; RES 1,D
	BCLR	#25,D3
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MCB8B:				; RES 1,E
	BCLR	#17,D3
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MCB8C:				; RES 1,H
	BCLR	#9,D2
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MCB8D:				; RES 1,L
	BCLR	#1,D2
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MCB8E:				; RES 1,(HL)
	MOVEQ	#0,D1
	MOVE.W	D2,D1
	CMPI.W	#$4000,D1	
	BCS.B	.L1
	BCLR	#1,(A0,D1.L)
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF
.L1
	CMPI.W	#$3BFF,D1	
	BHI.B	.L2
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF
.L2
	BCLR	#1,(A0,D1.L)
	MOVE.B	(A0,D1.L),D6	
	BSR	_screenwrite
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MCB8F:				; RES 1,A
	BCLR	#1,D0
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MCB90:				; RES 2,B
	BCLR	#10,D3
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MCB91:				; RES 2,C
	BCLR	#2,D3
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MCB92:				; RES 2,D
	BCLR	#26,D3
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MCB93:				; RES 2,E
	BCLR	#18,D3
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MCB94:				; RES 2,H
	BCLR	#10,D2
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MCB95:				; RES 2,L
	BCLR	#2,D2
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MCB96:				; RES 2,(HL)
	MOVEQ	#0,D1
	MOVE.W	D2,D1
	CMPI.W	#$4000,D1	
	BCS.B	.L1
	BCLR	#2,(A0,D1.L)
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF
.L1
	CMPI.W	#$3BFF,D1	
	BHI.B	.L2
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF
.L2
	BCLR	#2,(A0,D1.L)
	MOVE.B	(A0,D1.L),D6	
	BSR	_screenwrite
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MCB97:				; RES 2,A
	BCLR	#2,D0
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MCB98:				; RES 3,B
	BCLR	#11,D3
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MCB99:				; RES 3,C
	BCLR	#3,D3
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MCB9A:				; RES 3,D
	BCLR	#27,D3
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MCB9B:				; RES 3,E
	BCLR	#19,D3
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MCB9C:				; RES 3,H
	BCLR	#11,D2
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MCB9D:				; RES 3,L
	BCLR	#3,D2
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MCB9E:				; RES 3,(HL)
	MOVEQ	#0,D1
	MOVE.W	D2,D1
	CMPI.W	#$4000,D1	
	BCS.B	.L1
	BCLR	#3,(A0,D1.L)
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF
.L1
	CMPI.W	#$3BFF,D1	
	BHI.B	.L2
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF
.L2
	BCLR	#3,(A0,D1.L)
	MOVE.B	(A0,D1.L),D6	
	BSR	_screenwrite
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MCB9F:				; RES 3,A
	BCLR	#3,D0
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MCBA0:				; RES 4,B
	BCLR	#12,D3
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MCBA1:				; RES 4,C
	BCLR	#4,D3
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MCBA2:				; RES 4,D
	BCLR	#28,D3
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MCBA3:				; RES 4,E
	BCLR	#20,D3
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MCBA4:				; RES 4,H
	BCLR	#12,D2
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MCBA5:				; RES 4,L
	BCLR	#4,D2
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MCBA6:				; RES 4,(HL)
	MOVEQ	#0,D1
	MOVE.W	D2,D1
	CMPI.W	#$4000,D1	
	BCS.B	.L1
	BCLR	#4,(A0,D1.L)
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF
.L1
	CMPI.W	#$3BFF,D1	
	BHI.B	.L2
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF
.L2
	BCLR	#4,(A0,D1.L)
	MOVE.B	(A0,D1.L),D6	
	BSR	_screenwrite
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MCBA7:				; RES 4,A
	BCLR	#4,D0
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MCBA8:				; RES 5,B
	BCLR	#13,D3
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MCBA9:				; RES 5,C
	BCLR	#5,D3
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MCBAA:				; RES 5,D
	BCLR	#29,D3
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MCBAB:				; RES 5,E
	BCLR	#21,D3
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MCBAC:				; RES 5,H
	BCLR	#13,D2
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MCBAD:				; RES 5,L
	BCLR	#5,D2
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MCBAE:				; RES 5,(HL)
	MOVEQ	#0,D1
	MOVE.W	D2,D1
	CMPI.W	#$4000,D1	
	BCS.B	.L1
	BCLR	#5,(A0,D1.L)
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF
.L1
	CMPI.W	#$3BFF,D1	
	BHI.B	.L2
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF
.L2
	BCLR	#5,(A0,D1.L)
	MOVE.B	(A0,D1.L),D6	
	BSR	_screenwrite
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MCBAF:				; RES 5,A
	BCLR	#5,D0
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MCBB0:				; RES 6,B
	BCLR	#14,D3
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MCBB1:				; RES 6,C
	BCLR	#6,D3
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MCBB2:				; RES 6,D
	BCLR	#30,D3
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MCBB3:				; RES 6,E
	BCLR	#22,D3
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MCBB4:				; RES 6,H
	BCLR	#14,D2
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MCBB5:				; RES 6,L
	BCLR	#6,D2
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MCBB6:				; RES 6,(HL)
	MOVEQ	#0,D1
	MOVE.W	D2,D1
	CMPI.W	#$4000,D1	
	BCS.B	.L1
	BCLR	#6,(A0,D1.L)
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF
.L1
	CMPI.W	#$3BFF,D1	
	BHI.B	.L2
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF
.L2
	BCLR	#6,(A0,D1.L)
	MOVE.B	(A0,D1.L),D6	
	BSR	_screenwrite
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MCBB7:				; RES 6,A
	BCLR	#6,D0
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MCBB8:				; RES 7,B
	BCLR	#15,D3
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MCBB9:				; RES 7,C
	BCLR	#7,D3
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MCBBA:				; RES 7,D
	BCLR	#31,D3
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MCBBB:				; RES 7,E
	BCLR	#23,D3
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MCBBC:				; RES 7,H
	BCLR	#15,D2
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MCBBD:				; RES 7,L
	BCLR	#7,D2
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MCBBE:				; RES 7,(HL)
	MOVEQ	#0,D1
	MOVE.W	D2,D1
	CMPI.W	#$4000,D1	
	BCS.B	.L1
	BCLR	#7,(A0,D1.L)
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF
.L1
	CMPI.W	#$3BFF,D1	
	BHI.B	.L2
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF
.L2
	BCLR	#7,(A0,D1.L)
	MOVE.B	(A0,D1.L),D6	
	BSR	_screenwrite
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MCBBF:				; RES 7,A
	BCLR	#7,D0
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MCBC0:				; SET 0,B
	BSET	#8,D3
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MCBC1:				; SET 0,C
	BSET	#0,D3
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MCBC2:				; SET 0,D
	BSET	#24,D3
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MCBC3:				; SET 0,E
	BSET	#16,D3
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MCBC4:				; SET 0,H
	BSET	#8,D2
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MCBC5:				; SET 0,L
	BSET	#0,D2
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MCBC6:				; SET 0,(HL)
	MOVEQ	#0,D1
	MOVE.W	D2,D1
	CMPI.W	#$4000,D1	
	BCS.B	.L1
	BSET	#0,(A0,D1.L)
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF
.L1
	CMPI.W	#$3BFF,D1	
	BHI.B	.L2
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF
.L2
	BSET	#0,(A0,D1.L)
	MOVE.B	(A0,D1.L),D6	
	BSR	_screenwrite
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MCBC7:				; SET 0,A
	BSET	#0,D0
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MCBC8:				; SET 1,B
	BSET	#9,D3
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MCBC9:				; SET 1,C
	BSET	#1,D3
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MCBCA:				; SET 1,D
	BSET	#25,D3
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MCBCB:				; SET 1,E
	BSET	#17,D3
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MCBCC:				; SET 1,H
	BSET	#9,D2
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MCBCD:				; SET 1,L
	BSET	#1,D2
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MCBCE:				; SET 1,(HL)
	MOVEQ	#0,D1
	MOVE.W	D2,D1
	CMPI.W	#$4000,D1	
	BCS.B	.L1
	BSET	#1,(A0,D1.L)
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF
.L1
	CMPI.W	#$3BFF,D1	
	BHI.B	.L2
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF
.L2
	BSET	#1,(A0,D1.L)
	MOVE.B	(A0,D1.L),D6	
	BSR	_screenwrite
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MCBCF:				; SET 1,A
	BSET	#1,D0
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MCBD0:				; SET 2,B
	BSET	#10,D3
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MCBD1:				; SET 2,C
	BSET	#2,D3
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MCBD2:				; SET 2,D
	BSET	#26,D3
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MCBD3:				; SET 2,E
	BSET	#18,D3
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MCBD4:				; SET 2,H
	BSET	#10,D2
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MCBD5:				; SET 2,L
	BSET	#2,D2
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MCBD6:				; SET 2,(HL)
	MOVEQ	#0,D1
	MOVE.W	D2,D1
	CMPI.W	#$4000,D1	
	BCS.B	.L1
	BSET	#2,(A0,D1.L)
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF
.L1
	CMPI.W	#$3BFF,D1	
	BHI.B	.L2
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF
.L2
	BSET	#2,(A0,D1.L)
	MOVE.B	(A0,D1.L),D6	
	BSR	_screenwrite
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MCBD7:				; SET 2,A
	BSET	#2,D0
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MCBD8:				; SET 3,B
	BSET	#11,D3
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MCBD9:				; SET 3,C
	BSET	#3,D3
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MCBDA:				; SET 3,D
	BSET	#27,D3
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MCBDB:				; SET 3,E
	BSET	#19,D3
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MCBDC:				; SET 3,H
	BSET	#11,D2
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MCBDD:				; SET 3,L
	BSET	#3,D2
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MCBDE:				; SET 3,(HL)
	MOVEQ	#0,D1
	MOVE.W	D2,D1
	CMPI.W	#$4000,D1	
	BCS.B	.L1
	BSET	#3,(A0,D1.L)
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF
.L1
	CMPI.W	#$3BFF,D1	
	BHI.B	.L2
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF
.L2
	BSET	#3,(A0,D1.L)
	MOVE.B	(A0,D1.L),D6	
	BSR	_screenwrite
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MCBDF:				; SET 3,A
	BSET	#3,D0
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MCBE0:				; SET 4,B
	BSET	#12,D3
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MCBE1:				; SET 4,C
	BSET	#4,D3
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MCBE2:				; SET 4,D
	BSET	#28,D3
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MCBE3:				; SET 4,E
	BSET	#20,D3
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MCBE4:				; SET 4,H
	BSET	#12,D2
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MCBE5:				; SET 4,L
	BSET	#4,D2
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MCBE6:				; SET 4,(HL)
	MOVEQ	#0,D1
	MOVE.W	D2,D1
	CMPI.W	#$4000,D1	
	BCS.B	.L1
	BSET	#4,(A0,D1.L)
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF
.L1
	CMPI.W	#$3BFF,D1	
	BHI.B	.L2
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF
.L2
	BSET	#4,(A0,D1.L)
	MOVE.B	(A0,D1.L),D6	
	BSR	_screenwrite
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MCBE7:				; SET 4,A
	BSET	#4,D0
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MCBE8:				; SET 5,B
	BSET	#13,D3
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MCBE9:				; SET 5,C
	BSET	#5,D3
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MCBEA:				; SET 5,D
	BSET	#29,D3
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MCBEB:				; SET 5,E
	BSET	#21,D3
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MCBEC:				; SET 5,H
	BSET	#13,D2
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MCBED:				; SET 5,L
	BSET	#5,D2
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MCBEE:				; SET 5,(HL)
	MOVEQ	#0,D1
	MOVE.W	D2,D1
	CMPI.W	#$4000,D1	
	BCS.B	.L1
	BSET	#5,(A0,D1.L)
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF
.L1
	CMPI.W	#$3BFF,D1	
	BHI.B	.L2
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF
.L2
	BSET	#5,(A0,D1.L)
	MOVE.B	(A0,D1.L),D6	
	BSR	_screenwrite
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MCBEF:				; SET 5,A
	BSET	#5,D0
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MCBF0:				; SET 6,B
	BSET	#14,D3
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MCBF1:				; SET 6,C
	BSET	#6,D3
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MCBF2:				; SET 6,D
	BSET	#30,D3
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MCBF3:				; SET 6,E
	BSET	#22,D3
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MCBF4:				; SET 6,H
	BSET	#14,D2
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MCBF5:				; SET 6,L
	BSET	#6,D2
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MCBF6:				; SET 6,(HL)
	MOVEQ	#0,D1
	MOVE.W	D2,D1
	CMPI.W	#$4000,D1	
	BCS.B	.L1
	BSET	#6,(A0,D1.L)
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF
.L1
	CMPI.W	#$3BFF,D1	
	BHI.B	.L2
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF
.L2
	BSET	#6,(A0,D1.L)
	MOVE.B	(A0,D1.L),D6	
	BSR	_screenwrite
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MCBF7:				; SET 6,A
	BSET	#6,D0
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MCBF8:				; SET 7,B
	BSET	#15,D3
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MCBF9:				; SET 7,C
	BSET	#7,D3
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MCBFA:				; SET 7,D
	BSET	#31,D3
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MCBFB:				; SET 7,E
	BSET	#23,D3
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MCBFC:				; SET 7,H
	BSET	#15,D2
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MCBFD:				; SET 7,L
	BSET	#7,D2
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MCBFE:				; SET 7,(HL)
	MOVEQ	#0,D1
	MOVE.W	D2,D1
	CMPI.W	#$4000,D1	
	BCS.B	.L1
	BSET	#7,(A0,D1.L)
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF
.L1
	CMPI.W	#$3BFF,D1	
	BHI.B	.L2
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF
.L2
	BSET	#7,(A0,D1.L)
	MOVE.B	(A0,D1.L),D6	
	BSR	_screenwrite
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MCBFF:				; SET 7,A
	BSET	#7,D0
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF


* DD INSTRUCTIONS

MDD09:				; ADD IX,BC
	SUBA.L	A0,A1
	MOVE.L	A1,D7
	ADD.W	D3,D7
	SCS.W	D6
	ANDI.W	#$EE,D4		; CLEAR X,C
	ANDI.W	#$11,D6
	OR.B	D6,D4		; SET X,C IF CARRY
	MOVEQ	#0,D5		; SET H,N=0
	MOVE.L	A0,A1
	ADDA.L	D7,A1
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MDD19:				; ADD IX,DE
	SUBA.L	A0,A1
	MOVE.L	A1,D7
	SWAP	D3
	ADD.W	D3,D7
	SCS.W	D6
	ANDI.W	#$EE,D4		; CLEAR X,C
	ANDI.W	#$11,D6
	OR.B	D6,D4		; SET X,C IF CARRY
	MOVEQ	#0,D5		; SET H,N=0
	SWAP	D3
	MOVE.L	A0,A1
	ADDA.L	D7,A1
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF


MDD21:				; LD IX,XXXX
	MOVE.W	(A2)+,D1
	ROL.W	#8,D1
	MOVEQ	#0,D7
	MOVE.W	D1,D7
	MOVE.L	A0,A1
	ADDA.L	D7,A1
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MDD22:				; LD (XXXX),IX
	MOVE.W	(A2)+,D1
	ROL.W	#8,D1
	MOVEQ	#0,D7
	MOVE.W	D1,D7
	SUBA.L	A0,A1
	MOVE.L	A1,D6
	ROL.W	#8,D6
	MOVE.W	D6,(A0,D7.L)
	ADDA.L	A0,A1
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MDD23:				; INC IX
	SUBA.L	A0,A1
	MOVE.L	A1,D7
	ADDQ.W	#1,D7
	MOVE.L	A0,A1
	ADDA.L	D7,A1
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MDD29:				; ADD IX,IX
	SUBA.L	A0,A1
	MOVE.L	A1,D7
	ADD.W	D7,D7
	SCS.W	D6
	ANDI.W	#$EE,D4		; CLEAR X,C
	ANDI.W	#$11,D6
	OR.B	D6,D4		; SET X,C IF CARRY
	MOVEQ	#0,D5		; SET H,N=0
	MOVE.L	A0,A1
	ADDA.L	D7,A1
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MDD2A:				; LD IX,(XXXX)
	MOVE.W	(A2)+,D1
	ROL.W	#8,D1
	MOVEQ	#0,D7
	MOVE.W	D1,D7
	MOVE.W	(A0,D7.L),D7
	ROL.W	#8,D7
	MOVE.L	A0,A1
	ADDA.L	D7,A1
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MDD2B:				; DEC IX
	SUBA.L	A0,A1
	MOVE.L	A1,D7
	SUBQ.W	#1,D7
	MOVE.L	A0,A1
	ADDA.L	D7,A1
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MDD34:				; INC (IX+D)
	MOVE.W	D4,-(SP)	; SAVE X,C AS NOT AFFECTED
	SUBA.L	A0,A1
	MOVE.L	A1,D1		; CONVENIENTLY MASK D1.L WITH 0000FFFF
	MOVE.B	(A2)+,D7
	EXT.W	D7
	ADD.W	D7,D1
	CMPI.W	#$4000,D1	; if HL >= 4000 do the instruction
	BCS.B	.L1
	ADDA.L	A0,A1
	MOVE.B	(A1,D7.L),D6
	MOVE.W	D4,CCR
	ADDQ.B	#1,D6
	MOVE.W	CCR,D4
	MOVE.W	(SP)+,D1	; GET OLD FLAGS
	ANDI.W	#$EE,D4		; CLEAR X,C
	ANDI.W	#$11,D1
	OR.B	D1,D4		; SET X,C IF PREVIUOSLY SET
	MOVE.B	D6,(A1,D7.L)
	ANDI.W	#$00FF,D6	; EXT D6 FOR INDEX INTO ADD TABLE
	MOVE.B	$220(A6,D6.W),D5; SET EXTENDED Z80 FLG TO N=0 H=HALF
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF
.L1
	CMPI.W	#$3BFF,D1	; if HL <= 3C00 we are in ROM so do nothing
	BHI.B	.L2
	ADDA.L	A0,A1
	MOVE.B	(A1,D7.L),D6	; CONDITION THE FLAGS BUT DONT ALTER
	MOVE.W	D4,CCR		; ANY MEMORY
	ADDQ.B	#1,D6
	MOVE.W	CCR,D4
	MOVE.W	(SP)+,D1	; GET OLD FLAGS
	ANDI.W	#$EE,D4		; CLEAR X,C
	ANDI.W	#$11,D1
	OR.B	D1,D4		; SET X,C IF PREVIUOSLY SET
	ANDI.W	#$00FF,D6	; EXT D7 FOR INDEX INTO ADD TABLE
	MOVE.B	$220(A6,D6.W),D5; SET EXTENDED Z80 FLG TO N=0 H=HALF
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF
.L2
	ADDA.L	A0,A1
	MOVE.B	(A1,D7.L),D6
	MOVE.W	D4,CCR
	ADDQ.B	#1,D6
	MOVE.W	CCR,D4
	MOVE.B	D6,(A1,D7.L)
	ANDI.W	#$00FF,D6	; EXT D7 FOR INDEX INTO ADD TABLE
	MOVE.B	$220(A6,D6.W),D5; SET EXTENDED Z80 FLG TO N=0 H=HALF
	BSR	_screenwrite	; HL -> SCREENLOC D6=BYTE
	MOVE.W	(SP)+,D1	; GET OLD FLAGS
	ANDI.W	#$EE,D4		; CLEAR X,C
	ANDI.W	#$11,D1
	OR.B	D1,D4		; SET X,C IF PREVIUOSLY SET
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MDD35:				; DEC (IX+D)
	MOVE.W	D4,-(SP)	; SAVE X,C AS NOT AFFECTED
	SUBA.L	A0,A1
	MOVE.L	A1,D1		; CONVENIENTLY MASK D1.L WITH 0000FFFF
	MOVE.B	(A2)+,D7
	EXT.W	D7
	ADD.W	D7,D1
	CMPI.W	#$4000,D1	; if HL >= 4000 do the instruction
	BCS.B	.L1
	ADDA.L	A0,A1
	MOVE.B	(A1,D7.L),D6
	MOVE.W	D4,CCR
	SUBQ.B	#1,D6
	MOVE.W	CCR,D4
	MOVE.W	(SP)+,D1	; GET OLD FLAGS
	ANDI.W	#$EE,D4		; CLEAR X,C
	ANDI.W	#$11,D1
	OR.B	D1,D4		; SET X,C IF PREVIUOSLY SET
	MOVE.B	D6,(A1,D7.L)
	ANDI.W	#$00FF,D6	; EXT D6 FOR INDEX INTO SUB TABLE
	MOVE.B	$320(A6,D6.W),D5; SET EXTENDED Z80 FLG TO N=1 H=HALF
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF
.L1
	CMPI.W	#$3BFF,D1	; if HL <= 3C00 we are in ROM so do nothing
	BHI.B	.L2
	ADDA.L	A0,A1
	MOVE.B	(A1,D7.L),D6	; CONDITION THE FLAGS BUT DONT ALTER
	MOVE.W	D4,CCR		; ANY MEMORY
	SUBQ.B	#1,D6
	MOVE.W	CCR,D4
	MOVE.W	(SP)+,D1	; GET OLD FLAGS
	ANDI.W	#$EE,D4		; CLEAR X,C
	ANDI.W	#$11,D1
	OR.B	D1,D4		; SET X,C IF PREVIUOSLY SET
	ANDI.W	#$00FF,D6	; EXT D7 FOR INDEX INTO SUB TABLE
	MOVE.B	$220(A6,D6.W),D5; SET EXTENDED Z80 FLG TO N=1 H=HALF
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF
.L2
	ADDA.L	A0,A1
	MOVE.B	(A1,D7.L),D6
	MOVE.W	D4,CCR
	SUBQ.B	#1,D6
	MOVE.W	CCR,D4
	MOVE.B	D6,(A1,D7.L)
	ANDI.W	#$00FF,D6	; EXT D7 FOR INDEX INTO SUB TABLE
	MOVE.B	$220(A6,D6.W),D5; SET EXTENDED Z80 FLG TO N=1 H=HALF
	BSR	_screenwrite	; HL -> SCREENLOC D6=BYTE
	MOVE.W	(SP)+,D1	; GET OLD FLAGS
	ANDI.W	#$EE,D4		; CLEAR X,C
	ANDI.W	#$11,D1
	OR.B	D1,D4		; SET X,C IF PREVIUOSLY SET
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MDD36:				; LD (IX+D),N
	SUBA.L	A0,A1
	MOVE.L	A1,D1		; CONVENIENTLY MASK D1.L WITH 0000FFFF
	MOVE.B	(A2)+,D7
	EXT.W	D7
	ADD.W	D7,D1
	CMPI.W	#$4000,D1	; if (IX+D) >= 4000 do the instruction
	BCS.B	.L1
	MOVE.B	(A2)+,D1
	ADDA.L	A0,A1
	MOVE.B	D1,(A1,D7.W)
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

.L1
	CMPI.W	#$3BFF,D1	; if (IX+D) < 3C00 we are in ROM so do nothing
	BHI.B	.L2
	ADDA.L	A0,A1
	ADDQ.L	#1,A2		; will catch (IX+d)>FFFF aswell 
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF
.L2
	MOVE.B	(A2)+,D6
	ADDA.L	A0,A1
	MOVE.B	D6,(A1,D7.W)	; (IX+D) is pointing at the screen so update the
	BSR	_screenwrite	; screen with N
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MDD39:				; ADD IX,SP
	SUBA.L	A0,A4
	MOVE.L	A4,D7
	SUBA.L	A0,A1
	MOVE.L	A1,D6
	ADD.W	D7,D6
	SCS.B	D7
	ANDI.W	#$EE,D4		; CLEAR X,C
	ANDI.W	#$11,D7
	OR.B	D7,D4		; SET X,C IF CARRY
	MOVEQ	#0,D5		; SET H,N=0
	ADDA.L	A0,A4
	MOVE.L	D6,A1
	ADDA.L	A0,A1
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MDD46:				; LD B,(IX+D)
	MOVE.B	(A2)+,D1
	EXT.W	D1
	ROL.W	#8,D3
	MOVE.B	(A1,D1.W),D3
	ROL.W	#8,D3
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MDD4E:				; LD C,(IX+D)
	MOVE.B	(A2)+,D1
	EXT.W	D1
	MOVE.B	(A1,D1.W),D3
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MDD56:				; LD D,(IX+D)
	MOVE.B	(A2)+,D1
	EXT.W	D1
	ROL.L	#8,D3
	MOVE.B	(A1,D1.W),D3
	ROR.L	#8,D3
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MDD5E:				; LD E,(IX+D)
	MOVE.B	(A2)+,D1
	EXT.W	D1
	SWAP	D3
	MOVE.B	(A1,D1.W),D3
	SWAP	D3
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MDD66:				; LD H,(IX+D)
	MOVE.B	(A2)+,D1
	EXT.W	D1
	ROL.W	#8,D2
	MOVE.B	(A1,D1.W),D2
	ROL.W	#8,D2
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MDD6E:				; LD L,(IX+D)
	MOVE.B	(A2)+,D1
	EXT.W	D1
	MOVE.B	(A1,D1.W),D2
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MDD70:				; LD (IX+D),B
	SUBA.L	A0,A1
	MOVE.L	A1,D1		
	MOVE.B	(A2)+,D7
	EXT.W	D7
	ADD.W	D7,D1
	CMPI.W	#$4000,D1	
	BCS.B	.L1
	ADDA.L	A0,A1
	ROL.W	#8,D3
	MOVE.B	D3,(A1,D7.W)
	ROL.W	#8,D3
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

.L1
	CMPI.W	#$3BFF,D1	
	BHI.B	.L2
	ADDA.L	A0,A1		 
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF
.L2
	MOVE.W	D3,D6
	ADDA.L	A0,A1
	ROL.W	#8,D6
	MOVE.B	D6,(A1,D7.W)	
	BSR	_screenwrite	
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MDD71:				; LD (IX+D),C
	SUBA.L	A0,A1
	MOVE.L	A1,D1		
	MOVE.B	(A2)+,D7
	EXT.W	D7
	ADD.W	D7,D1
	CMPI.W	#$4000,D1	
	BCS.B	.L1
	ADDA.L	A0,A1
	MOVE.B	D3,(A1,D7.W)
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

.L1
	CMPI.W	#$3BFF,D1	
	BHI.B	.L2
	ADDA.L	A0,A1		 
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF
.L2
	MOVE.B	D3,D6
	ADDA.L	A0,A1
	MOVE.B	D6,(A1,D7.W)	
	BSR	_screenwrite	
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MDD72:				; LD (IX+D),D
	SUBA.L	A0,A1
	MOVE.L	A1,D1		
	MOVE.B	(A2)+,D7
	EXT.W	D7
	ADD.W	D7,D1
	CMPI.W	#$4000,D1	
	BCS.B	.L1
	ADDA.L	A0,A1
	ROL.L	#8,D3
	MOVE.B	D3,(A1,D7.W)
	ROR.L	#8,D3
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

.L1
	CMPI.W	#$3BFF,D1	
	BHI.B	.L2
	ADDA.L	A0,A1		 
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF
.L2
	MOVE.L	D3,D6
	ADDA.L	A0,A1
	ROL.L	#8,D6
	MOVE.B	D6,(A1,D7.W)	
	BSR	_screenwrite	
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MDD73:				; LD (IX+D),E
	SUBA.L	A0,A1
	MOVE.L	A1,D1		
	MOVE.B	(A2)+,D7
	EXT.W	D7
	ADD.W	D7,D1
	CMPI.W	#$4000,D1	
	BCS.B	.L1
	ADDA.L	A0,A1
	SWAP	D3
	MOVE.B	D3,(A1,D7.W)
	SWAP	D3
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

.L1
	CMPI.W	#$3BFF,D1	
	BHI.B	.L2
	ADDA.L	A0,A1		 
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF
.L2
	MOVE.L	D3,D6
	ADDA.L	A0,A1
	SWAP	D6
	MOVE.B	D6,(A1,D7.W)	
	BSR	_screenwrite	
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MDD74:				; LD (IX+D),H
	SUBA.L	A0,A1
	MOVE.L	A1,D1		
	MOVE.B	(A2)+,D7
	EXT.W	D7
	ADD.W	D7,D1
	CMPI.W	#$4000,D1	
	BCS.B	.L1
	ADDA.L	A0,A1
	ROL.W	#8,D2
	MOVE.B	D2,(A1,D7.W)
	ROL.W	#8,D2
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

.L1
	CMPI.W	#$3BFF,D1	
	BHI.B	.L2
	ADDA.L	A0,A1		 
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF
.L2
	MOVE.W	D2,D6
	ADDA.L	A0,A1
	ROL.W	#8,D6
	MOVE.B	D6,(A1,D7.W)	
	BSR	_screenwrite	
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MDD75:				; LD (IX+D),L
	SUBA.L	A0,A1
	MOVE.L	A1,D1		
	MOVE.B	(A2)+,D7
	EXT.W	D7
	ADD.W	D7,D1
	CMPI.W	#$4000,D1	
	BCS.B	.L1
	ADDA.L	A0,A1
	MOVE.B	D2,(A1,D7.W)
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

.L1
	CMPI.W	#$3BFF,D1	
	BHI.B	.L2
	ADDA.L	A0,A1		 
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF
.L2
	MOVE.B	D2,D6
	ADDA.L	A0,A1
	MOVE.B	D6,(A1,D7.W)	
	BSR	_screenwrite	
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MDD77:				; LD (IX+D),A
	SUBA.L	A0,A1
	MOVE.L	A1,D1		
	MOVE.B	(A2)+,D7
	EXT.W	D7
	ADD.W	D7,D1
	CMPI.W	#$4000,D1	
	BCS.B	.L1
	ADDA.L	A0,A1
	MOVE.B	D0,(A1,D7.W)
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

.L1
	CMPI.W	#$3BFF,D1	
	BHI.B	.L2
	ADDA.L	A0,A1		 
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF
.L2
	MOVE.B	D0,D6
	ADDA.L	A0,A1
	MOVE.B	D6,(A1,D7.W)	
	BSR	_screenwrite	
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MDD7E:				; LD A,(IX+D)
	MOVE.B	(A2)+,D1
	EXT.W	D1
	MOVE.B	(A1,D1.W),D0
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MDD86:				; ADD A,(IX+D)
	MOVE.B	(A2)+,D1
	EXT.W	D1
	MOVE.W	D4,CCR
	ADD.B	(A1,D1.W),D0
	MOVE.W	CCR,D4
	ANDI.W	#$00FF,D0	; EXT D0 FOR INDEX INTO ADD TABLE
	MOVE.B	$220(A6,D0.W),D5; SET EXTENDED Z80 FLG TO N=0 H=HALF
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MDD8E:				; ADC A,(IX+D)
	MOVE.B	(A2)+,D1
	EXT.W	D1
	MOVE.B	(A1,D1.W),D7
	ORI.B	#4,D4		; SET Z FOR ADDX INSTR
	MOVE.W	D4,CCR
	ADDX.B	D7,D0
	MOVE.W	CCR,D4
	ANDI.W	#$00FF,D0	; EXT D0 FOR INDEX INTO ADD TABLE
	MOVE.B	$220(A6,D0.W),D5; SET EXTENDED Z80 FLG TO N=0 H=HALF
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MDD96:				; SUB (IX+D)
	MOVE.B	(A2)+,D1
	EXT.W	D1
	MOVE.W	D4,CCR
	SUB.B	(A1,D1.W),D0
	MOVE.W	CCR,D4
	ANDI.W	#$00FF,D0	; EXT D0 FOR INDEX INTO SUB TABLE
	MOVE.B	$320(A6,D0.W),D5; SET EXTENDED Z80 FLG TO N=1 H=HALF
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MDD9E:				; SBC A,(IX+D)
	MOVE.B	(A2)+,D1
	EXT.W	D1
	MOVE.B	(A1,D1.W),D7
	ORI.B	#4,D4		; SET Z FOR ADDX INSTR
	MOVE.W	D4,CCR
	SUBX.B	D7,D0
	MOVE.W	CCR,D4
	ANDI.W	#$00FF,D0	; EXT D0 FOR INDEX INTO SUB TABLE
	MOVE.B	$320(A6,D0.W),D5; SET EXTENDED Z80 FLG TO N=1 H=HALF
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MDDA6:				; AND (IX+D)
	MOVE.B	(A2)+,D1
	EXT.W	D1
	MOVE.W	D4,CCR
	AND.B	(A1,D1.W),D0
	MOVE.W	CCR,D4
	ANDI.W	#$00FF,D0	; EXT D0 FOR INDEX INTO PARITY TABLE
	OR.B	(A6,D0.W),D4	; SET V FLG TO PARITY TABLE VALUE
	ANDI.W	#$EE,D4		; CLEAR C AND X
	MOVE.B	#$10,D5		; SET EXTENDED Z80 FLG TO N=0 H=1
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MDDAE:				; XOR (IX+D)
	MOVE.B	(A2)+,D1
	EXT.W	D1
	MOVE.B	(A1,D1.W),D7
	MOVE.W	D4,CCR
	EOR.B	D7,D0
	MOVE.W	CCR,D4
	ANDI.W	#$00FF,D0	; EXT D0 FOR INDEX INTO PARITY TABLE
	OR.B	(A6,D0.W),D4	; SET V FLG TO PARITY TABLE VALUE
	ANDI.W	#$EE,D4		; CLEAR C AND X
	MOVE.B	#$10,D5		; SET EXTENDED Z80 FLG TO N=0 H=1
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MDDB6:				; OR (IX+D)
	MOVE.B	(A2)+,D1
	EXT.W	D1
	MOVE.W	D4,CCR
	OR.B	(A1,D1.W),D0
	MOVE.W	CCR,D4
	ANDI.W	#$00FF,D0	; EXT D0 FOR INDEX INTO PARITY TABLE
	OR.B	(A6,D0.W),D4	; SET V FLG TO PARITY TABLE VALUE
	ANDI.W	#$EE,D4		; CLEAR C AND X
	MOVE.B	#$10,D5		; SET EXTENDED Z80 FLG TO N=0 H=1
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MDDBE:				; CP (IX+D)
	MOVE.B	D0,D6
	MOVE.B	(A2)+,D1
	EXT.W	D1
	MOVE.W	D4,CCR
	SUB.B	(A1,D1.W),D6
	MOVE.W	CCR,D4
	ANDI.W	#$00FF,D6	; EXT D6 FOR INDEX INTO SUB TABLE
	MOVE.B	$320(A6,D6.W),D5; SET EXTENDED Z80 FLG TO N=1 H=HALF
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MDDCB:				; various (IX+d) instructions	DD CB d X
	SUBA.L	A0,A1		; get real IX val
	MOVE.L	A1,D1
	ADDA.L	A0,A1		
	MOVE.B	(A2)+,D7	; get d offset
	EXT.W	D7		; sign extend
	ADD.W	D7,D1		; D1 now has (IX+d) for later use by screenwrite()
	MOVE.B	(A2)+,D7	; get X to decide function to perform

	CMPI.B	#6,D7
	BEQ.W	DDRLC
	CMPI.B	#14,D7
	BEQ.W	DDRRC
	CMPI.B	#$16,D7
	BEQ.W	DDRL
	CMPI.B	#$1E,D7
	BEQ.W	DDRR
	CMPI.B	#$26,D7
	BEQ.W	DDSLA
	CMPI.B	#$2E,D7
	BEQ.W	DDSRA
	CMPI.B	#$3E,D7
	BEQ.W	DDSRL
	CMPI.B	#$46,D7
	BEQ.W	DDBT0
	CMPI.B	#$4E,D7
	BEQ.W	DDBT1
	CMPI.B	#$56,D7
	BEQ.W	DDBT2
	CMPI.B	#$5E,D7
	BEQ.W	DDBT3
	CMPI.B	#$66,D7
	BEQ.W	DDBT4
	CMPI.B	#$6E,D7
	BEQ.W	DDBT5
	CMPI.B	#$76,D7
	BEQ.W	DDBT6
	CMPI.B	#$7E,D7
	BEQ.W	DDBT7
	CMPI.B	#$86,D7
	BEQ.W	DDRS0
	CMPI.B	#$8E,D7
	BEQ.W	DDRS1
	CMPI.B	#$96,D7
	BEQ.W	DDRS2
	CMPI.B	#$9E,D7
	BEQ.W	DDRS3
	CMPI.B	#$A6,D7
	BEQ.W	DDRS4
	CMPI.B	#$AE,D7
	BEQ.W	DDRS5
	CMPI.B	#$B6,D7
	BEQ.W	DDRS6
	CMPI.B	#$BE,D7
	BEQ.W	DDRS7
	CMPI.B	#$C6,D7
	BEQ.W	DDST0
	CMPI.B	#$CE,D7
	BEQ.W	DDST1
	CMPI.B	#$D6,D7
	BEQ.W	DDST2
	CMPI.B	#$DE,D7
	BEQ.W	DDST3
	CMPI.B	#$E6,D7
	BEQ.W	DDST4
	CMPI.B	#$EE,D7
	BEQ.W	DDST5
	CMPI.B	#$F6,D7
	BEQ.W	DDST6
	CMPI.B	#$FE,D7
	BEQ.W	DDST7

	BRA	ILLEGAL		; ILLEGAL IF NO MATCH IN TABLE

DDRLC:				; RLC (IX+D)

	CMPI.W	#$4000,D1	; if HL >= 4000 do the instruction
	BCS.B	.L1
	MOVE.B	(A0,D1.L),D6
	MOVE.W	D4,CCR
	ROL.B	#1,D6
	MOVE.W	CCR,D4
	SCS	D7
	ANDI.B	#$01,D7
	ROL.B	#4,D7
	OR.B	D7,D4
	ANDI.W	#$00FF,D6
	OR.B	(A6,D6.W),D4
	MOVEQ.B	#0,D5
	MOVE.B	D6,(A0,D1.L)
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF
.L1
	CMPI.W	#$3BFF,D1	; if HL <= 3C00 we are in ROM so do nothing
	BHI.B	.L2
	MOVE.B	(A0,D1.L),D6	; CONDITION THE FLAGS BUT DONT ALTER (HL)
	ROL.B	#1,D6
	MOVE.W	CCR,D4
	SCS	D7
	ANDI.B	#$01,D7
	ROL.B	#4,D7
	OR.B	D7,D4
	ANDI.W	#$00FF,D6
	OR.B	(A6,D6.W),D4
	MOVEQ.B	#0,D5
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF
.L2
	MOVE.B	(A0,D1.L),D6
	MOVE.W	D4,CCR
	ROL.B	#1,D6
	MOVE.W	CCR,D4
	SCS	D7
	ANDI.B	#$01,D7
	ROL.B	#4,D7
	OR.B	D7,D4
	ANDI.W	#$00FF,D6
	OR.B	(A6,D6.W),D4
	MOVEQ.B	#0,D5
	MOVE.B	D6,(A0,D1.L)
	BSR	_screenwrite	; HL -> SCREENLOC D6=BYTE
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

DDRRC:				; RRC (IX+D)

	CMPI.W	#$4000,D1	; if HL >= 4000 do the instruction
	BCS.B	.L1
	MOVE.B	(A0,D1.L),D6
	MOVE.W	D4,CCR
	ROR.B	#1,D6
	MOVE.W	CCR,D4
	SCS	D7
	ANDI.B	#$01,D7
	ROL.B	#4,D7
	OR.B	D7,D4
	ANDI.W	#$00FF,D6
	OR.B	(A6,D6.W),D4
	MOVEQ.B	#0,D5
	MOVE.B	D6,(A0,D1.L)
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF
.L1
	CMPI.W	#$3BFF,D1	; if HL <= 3C00 we are in ROM so do nothing
	BHI.B	.L2
	MOVE.B	(A0,D1.L),D6	; CONDITION THE FLAGS BUT DONT ALTER (HL)
	ROR.B	#1,D6
	MOVE.W	CCR,D4
	SCS	D7
	ANDI.B	#$01,D7
	ROL.B	#4,D7
	OR.B	D7,D4
	ANDI.W	#$00FF,D6
	OR.B	(A6,D6.W),D4
	MOVEQ.B	#0,D5
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF
.L2
	MOVE.B	(A0,D1.L),D6
	MOVE.W	D4,CCR
	ROR.B	#1,D6
	MOVE.W	CCR,D4
	SCS	D7
	ANDI.B	#$01,D7
	ROL.B	#4,D7
	OR.B	D7,D4
	ANDI.W	#$00FF,D6
	OR.B	(A6,D6.W),D4
	MOVEQ.B	#0,D5
	MOVE.B	D6,(A0,D1.L)
	BSR	_screenwrite	; HL -> SCREENLOC D6=BYTE
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

DDRL:				; RL (IX+D)

	CMPI.W	#$4000,D1	; if HL >= 4000 do the instruction
	BCS.B	.L1
	MOVE.B	(A0,D1.L),D6
	MOVE.W	D4,CCR
	ROXL.B	#1,D6
	MOVE.W	CCR,D4
	SCS	D7
	ANDI.B	#$01,D7
	ROL.B	#4,D7
	OR.B	D7,D4
	ANDI.W	#$00FF,D6
	OR.B	(A6,D6.W),D4
	MOVEQ.B	#0,D5
	MOVE.B	D6,(A0,D1.L)
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF
.L1
	CMPI.W	#$3BFF,D1	; if HL <= 3C00 we are in ROM so do nothing
	BHI.B	.L2
	MOVE.B	(A0,D1.L),D6	; CONDITION THE FLAGS BUT DONT ALTER (HL)
	ROXL.B	#1,D6
	MOVE.W	CCR,D4
	SCS	D7
	ANDI.B	#$01,D7
	ROL.B	#4,D7
	OR.B	D7,D4
	ANDI.W	#$00FF,D6
	OR.B	(A6,D6.W),D4
	MOVEQ.B	#0,D5
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF
.L2
	MOVE.B	(A0,D1.L),D6
	MOVE.W	D4,CCR
	ROXL.B	#1,D6
	MOVE.W	CCR,D4
	SCS	D7
	ANDI.B	#$01,D7
	ROL.B	#4,D7
	OR.B	D7,D4
	ANDI.W	#$00FF,D6
	OR.B	(A6,D6.W),D4
	MOVEQ.B	#0,D5
	MOVE.B	D6,(A0,D1.L)
	BSR	_screenwrite	; HL -> SCREENLOC D6=BYTE
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

DDRR:				; RR (IX+D)

	CMPI.W	#$4000,D1	; if HL >= 4000 do the instruction
	BCS.B	.L1
	MOVE.B	(A0,D1.L),D6
	MOVE.W	D4,CCR
	ROXR.B	#1,D6
	MOVE.W	CCR,D4
	SCS	D7
	ANDI.B	#$01,D7
	ROL.B	#4,D7
	OR.B	D7,D4
	ANDI.W	#$00FF,D6
	OR.B	(A6,D6.W),D4
	MOVEQ.B	#0,D5
	MOVE.B	D6,(A0,D1.L)
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF
.L1
	CMPI.W	#$3BFF,D1	; if HL <= 3C00 we are in ROM so do nothing
	BHI.B	.L2
	MOVE.B	(A0,D1.L),D6	; CONDITION THE FLAGS BUT DONT ALTER (HL)
	ROXR.B	#1,D6
	MOVE.W	CCR,D4
	SCS	D7
	ANDI.B	#$01,D7
	ROL.B	#4,D7
	OR.B	D7,D4
	ANDI.W	#$00FF,D6
	OR.B	(A6,D6.W),D4
	MOVEQ.B	#0,D5
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF
.L2
	MOVE.B	(A0,D1.L),D6
	MOVE.W	D4,CCR
	ROXR.B	#1,D6
	MOVE.W	CCR,D4
	SCS	D7
	ANDI.B	#$01,D7
	ROL.B	#4,D7
	OR.B	D7,D4
	ANDI.W	#$00FF,D6
	OR.B	(A6,D6.W),D4
	MOVEQ.B	#0,D5
	MOVE.B	D6,(A0,D1.L)
	BSR	_screenwrite	; HL -> SCREENLOC D6=BYTE
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

DDSLA:				; SLA (IX+D)

	CMPI.W	#$4000,D1	; if HL >= 4000 do the instruction
	BCS.B	.L1
	MOVE.B	(A0,D1.L),D6
	MOVE.W	D4,CCR
	LSL.B	#1,D6
	MOVE.W	CCR,D4
	SCS	D7
	ANDI.B	#$01,D7
	ROL.B	#4,D7
	OR.B	D7,D4
	ANDI.W	#$00FF,D6
	OR.B	(A6,D6.W),D4
	MOVEQ.B	#0,D5
	MOVE.B	D6,(A0,D1.L)
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF
.L1
	CMPI.W	#$3BFF,D1	; if HL <= 3C00 we are in ROM so do nothing
	BHI.B	.L2
	MOVE.B	(A0,D1.L),D6	; CONDITION THE FLAGS BUT DONT ALTER (HL)
	LSL.B	#1,D6
	MOVE.W	CCR,D4
	SCS	D7
	ANDI.B	#$01,D7
	ROL.B	#4,D7
	OR.B	D7,D4
	ANDI.W	#$00FF,D6
	OR.B	(A6,D6.W),D4
	MOVEQ.B	#0,D5
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF
.L2
	MOVE.B	(A0,D1.L),D6
	MOVE.W	D4,CCR
	LSL.B	#1,D6
	MOVE.W	CCR,D4
	SCS	D7
	ANDI.B	#$01,D7
	ROL.B	#4,D7
	OR.B	D7,D4
	ANDI.W	#$00FF,D6
	OR.B	(A6,D6.W),D4
	MOVEQ.B	#0,D5
	MOVE.B	D6,(A0,D1.L)
	BSR	_screenwrite	; HL -> SCREENLOC D6=BYTE
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

DDSRA:				; SRA (IX+D)

	CMPI.W	#$4000,D1	; if HL >= 4000 do the instruction
	BCS.B	.L1
	MOVE.B	(A0,D1.L),D6
	MOVE.W	D4,CCR
	ASR.B	#1,D6
	MOVE.W	CCR,D4
	SCS	D7
	ANDI.B	#$01,D7
	ROL.B	#4,D7
	OR.B	D7,D4
	ANDI.W	#$00FF,D6
	OR.B	(A6,D6.W),D4
	MOVEQ.B	#0,D5
	MOVE.B	D6,(A0,D1.L)
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF
.L1
	CMPI.W	#$3BFF,D1	; if HL <= 3C00 we are in ROM so do nothing
	BHI.B	.L2
	MOVE.B	(A0,D1.L),D6	; CONDITION THE FLAGS BUT DONT ALTER (HL)
	ASR.B	#1,D6
	MOVE.W	CCR,D4
	SCS	D7
	ANDI.B	#$01,D7
	ROL.B	#4,D7
	OR.B	D7,D4
	ANDI.W	#$00FF,D6
	OR.B	(A6,D6.W),D4
	MOVEQ.B	#0,D5
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF
.L2
	MOVE.B	(A0,D1.L),D6
	MOVE.W	D4,CCR
	ASR.B	#1,D6
	MOVE.W	CCR,D4
	SCS	D7
	ANDI.B	#$01,D7
	ROL.B	#4,D7
	OR.B	D7,D4
	ANDI.W	#$00FF,D6
	OR.B	(A6,D6.W),D4
	MOVEQ.B	#0,D5
	MOVE.B	D6,(A0,D1.L)
	BSR	_screenwrite	; HL -> SCREENLOC D6=BYTE
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

DDSRL:				; SRL (IX+D)

	CMPI.W	#$4000,D1	; if HL >= 4000 do the instruction
	BCS.B	.L1
	MOVE.B	(A0,D1.L),D6
	MOVE.W	D4,CCR
	LSR.B	#1,D6
	MOVE.W	CCR,D4
	SCS	D7
	ANDI.B	#$01,D7
	ROL.B	#4,D7
	OR.B	D7,D4
	ANDI.W	#$00FF,D6
	OR.B	(A6,D6.W),D4
	MOVEQ.B	#0,D5
	MOVE.B	D6,(A0,D1.L)
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF
.L1
	CMPI.W	#$3BFF,D1	; if HL <= 3C00 we are in ROM so do nothing
	BHI.B	.L2
	MOVE.B	(A0,D1.L),D6	; CONDITION THE FLAGS BUT DONT ALTER (HL)
	LSR.B	#1,D6
	MOVE.W	CCR,D4
	SCS	D7
	ANDI.B	#$01,D7
	ROL.B	#4,D7
	OR.B	D7,D4
	ANDI.W	#$00FF,D6
	OR.B	(A6,D6.W),D4
	MOVEQ.B	#0,D5
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF
.L2
	MOVE.B	(A0,D1.L),D6
	MOVE.W	D4,CCR
	LSR.B	#1,D6
	MOVE.W	CCR,D4
	SCS	D7
	ANDI.B	#$01,D7
	ROL.B	#4,D7
	OR.B	D7,D4
	ANDI.W	#$00FF,D6
	OR.B	(A6,D6.W),D4
	MOVEQ.B	#0,D5
	MOVE.B	D6,(A0,D1.L)
	BSR	_screenwrite	; HL -> SCREENLOC D6=BYTE
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

DDBT0:	MOVE.B	(A0,D1.L),D7		; BTST 0 IXD
	MOVE.W	D4,CCR
	BTST	#0,D7
	MOVE.W	CCR,D4
	MOVEQ	#$10,D5		; SET H=1,N=0
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

DDBT1:	MOVE.B	(A0,D1.L),D7
	MOVE.W	D4,CCR
	BTST	#1,D7
	MOVE.W	CCR,D4
	MOVEQ	#$10,D5		; SET H=1,N=0
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

DDBT2:	MOVE.B	(A0,D1.L),D7
	MOVE.W	D4,CCR
	BTST	#2,D7
	MOVE.W	CCR,D4
	MOVEQ	#$10,D5		; SET H=1,N=0
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

DDBT3:	MOVE.B	(A0,D1.L),D7
	MOVE.W	D4,CCR
	BTST	#3,D7
	MOVE.W	CCR,D4
	MOVEQ	#$10,D5		; SET H=1,N=0
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

DDBT4:	MOVE.B	(A0,D1.L),D7
	MOVE.W	D4,CCR
	BTST	#4,D7
	MOVE.W	CCR,D4
	MOVEQ	#$10,D5		; SET H=1,N=0
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

DDBT5:	MOVE.B	(A0,D1.L),D7
	MOVE.W	D4,CCR
	BTST	#5,D7
	MOVE.W	CCR,D4
	MOVEQ	#$10,D5		; SET H=1,N=0
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

DDBT6:	MOVE.B	(A0,D1.L),D7
	MOVE.W	D4,CCR
	BTST	#6,D7
	MOVE.W	CCR,D4
	MOVEQ	#$10,D5		; SET H=1,N=0
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

DDBT7:	MOVE.B	(A0,D1.L),D7
	MOVE.W	D4,CCR
	BTST	#7,D7
	MOVE.W	CCR,D4
	MOVEQ	#$10,D5		; SET H=1,N=0
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

DDRS0:	CMPI.W	#$4000,D1	; RES 0 IXD
	BCS.B	.L1
	BCLR	#0,(A0,D1.L)
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF
.L1
	CMPI.W	#$3BFF,D1	
	BHI.B	.L2
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF
.L2
	BCLR	#0,(A0,D1.L)
	MOVE.B	(A0,D1.L),D6	
	BSR	_screenwrite
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

DDRS1:	CMPI.W	#$4000,D1	
	BCS.B	.L1
	BCLR	#1,(A0,D1.L)
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF
.L1
	CMPI.W	#$3BFF,D1	
	BHI.B	.L2
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF
.L2
	BCLR	#1,(A0,D1.L)
	MOVE.B	(A0,D1.L),D6	
	BSR	_screenwrite
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

DDRS2:	CMPI.W	#$4000,D1	
	BCS.B	.L1
	BCLR	#2,(A0,D1.L)
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF
.L1
	CMPI.W	#$3BFF,D1	
	BHI.B	.L2
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF
.L2
	BCLR	#2,(A0,D1.L)
	MOVE.B	(A0,D1.L),D6	
	BSR	_screenwrite
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

DDRS3:	CMPI.W	#$4000,D1	
	BCS.B	.L1
	BCLR	#3,(A0,D1.L)
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF
.L1
	CMPI.W	#$3BFF,D1	
	BHI.B	.L2
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF
.L2
	BCLR	#3,(A0,D1.L)
	MOVE.B	(A0,D1.L),D6	
	BSR	_screenwrite
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

DDRS4:	CMPI.W	#$4000,D1	
	BCS.B	.L1
	BCLR	#4,(A0,D1.L)
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF
.L1
	CMPI.W	#$3BFF,D1	
	BHI.B	.L2
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF
.L2
	BCLR	#4,(A0,D1.L)
	MOVE.B	(A0,D1.L),D6	
	BSR	_screenwrite
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

DDRS5:	CMPI.W	#$4000,D1	
	BCS.B	.L1
	BCLR	#5,(A0,D1.L)
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF
.L1
	CMPI.W	#$3BFF,D1	
	BHI.B	.L2
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF
.L2
	BCLR	#5,(A0,D1.L)
	MOVE.B	(A0,D1.L),D6	
	BSR	_screenwrite
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

DDRS6:	CMPI.W	#$4000,D1	
	BCS.B	.L1
	BCLR	#6,(A0,D1.L)
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF
.L1
	CMPI.W	#$3BFF,D1	
	BHI.B	.L2
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF
.L2
	BCLR	#6,(A0,D1.L)
	MOVE.B	(A0,D1.L),D6	
	BSR	_screenwrite
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

DDRS7:	CMPI.W	#$4000,D1	
	BCS.B	.L1
	BCLR	#7,(A0,D1.L)
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF
.L1
	CMPI.W	#$3BFF,D1	
	BHI.B	.L2
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF
.L2
	BCLR	#7,(A0,D1.L)
	MOVE.B	(A0,D1.L),D6	
	BSR	_screenwrite
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

DDST0:	CMPI.W	#$4000,D1	;	SET 0 IXD (D1 HOLDS IX+D)
	BCS.B	.L1
	BSET	#0,(A0,D1.L)
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF
.L1
	CMPI.W	#$3BFF,D1	
	BHI.B	.L2
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF
.L2
	BSET	#0,(A0,D1.L)
	MOVE.B	(A0,D1.L),D6	
	BSR	_screenwrite
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

DDST1:	CMPI.W	#$4000,D1	;	SET 1 IXD
	BCS.B	.L1
	BSET	#1,(A0,D1.L)
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF
.L1
	CMPI.W	#$3BFF,D1	
	BHI.B	.L2
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF
.L2
	BSET	#1,(A0,D1.L)
	MOVE.B	(A0,D1.L),D6	
	BSR	_screenwrite
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

DDST2:	CMPI.W	#$4000,D1	; SET 2 IXD
	BCS.B	.L1
	BSET	#2,(A0,D1.L)
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF
.L1
	CMPI.W	#$3BFF,D1	
	BHI.B	.L2
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF
.L2
	BSET	#2,(A0,D1.L)
	MOVE.B	(A0,D1.L),D6	
	BSR	_screenwrite
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

DDST3:	CMPI.W	#$4000,D1	; SET 3 IXD 
	BCS.B	.L1
	BSET	#3,(A0,D1.L)
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF
.L1
	CMPI.W	#$3BFF,D1	
	BHI.B	.L2
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF
.L2
	BSET	#3,(A0,D1.L)
	MOVE.B	(A0,D1.L),D6	
	BSR	_screenwrite
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

DDST4:	CMPI.W	#$4000,D1	
	BCS.B	.L1
	BSET	#4,(A0,D1.L)
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF
.L1
	CMPI.W	#$3BFF,D1	
	BHI.B	.L2
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF
.L2
	BSET	#4,(A0,D1.L)
	MOVE.B	(A0,D1.L),D6	
	BSR	_screenwrite
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

DDST5:	CMPI.W	#$4000,D1	
	BCS.B	.L1
	BSET	#5,(A0,D1.L)
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF
.L1
	CMPI.W	#$3BFF,D1	
	BHI.B	.L2
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF
.L2
	BSET	#5,(A0,D1.L)
	MOVE.B	(A0,D1.L),D6	
	BSR	_screenwrite
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

DDST6:	CMPI.W	#$4000,D1	
	BCS.B	.L1
	BSET	#6,(A0,D1.L)
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF
.L1
	CMPI.W	#$3BFF,D1	
	BHI.B	.L2
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF
.L2
	BSET	#6,(A0,D1.L)
	MOVE.B	(A0,D1.L),D6	
	BSR	_screenwrite
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

DDST7:	CMPI.W	#$4000,D1	
	BCS.B	.L1
	BSET	#7,(A0,D1.L)
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF
.L1
	CMPI.W	#$3BFF,D1	
	BHI.B	.L2
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF
.L2
	BSET	#7,(A0,D1.L)
	MOVE.B	(A0,D1.L),D6	
	BSR	_screenwrite
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF


MDDE1:				; POP IX
	MOVEQ	#0,D7
	MOVE.W	(A4)+,D7
	ROL.W	#8,D7
	MOVE.L	D7,A1
	ADDA.L	A0,A1
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MDDE3:				; EX (SP),IX
	SUBA.L	A0,A1
	MOVE.L	A1,D7
	MOVE.W	(A4),D6
	ROL.W	#8,D6
	MOVE.W	D6,A1
	ADDA.L	A0,A1
	ROL.W	#8,D7
	MOVE.W	D7,(A4)
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MDDE5:				; PUSH IX
	MOVE.L	A1,D6
	SUB.L	A0,D6
	ROL.W	#8,D6
	MOVE.W	D6,-(A4)
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MDDE9:				; JP (IX)
	MOVE.L	A1,A2
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MDDF9:				; LD SP,IX
	MOVE.L	A1,A4
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

* ED INSTRUCTIONS


MED01:	MOVEQ	#0,D7
	MOVE.W	_CASSPTR,D7
	MOVE.B	D0,($10000,A0,D7.L)
	ADDQ.W	#1,D7
	MOVE.W	D7,_CASSPTR
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MED02:	MOVEQ	#0,D7
	MOVE.W	_CASSPTR,D7
	MOVE.B	($10000,A0,D7.L),D0
	ADDQ.W	#1,D7
	MOVE.W	D7,_CASSPTR
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MED03:	MOVEQ	#0,D7
	MOVE.W	D7,_CASSPTR
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF


MED40:				; IN B,(C)	(MOVE FF TO B, SIMULATE NO DEVICE CONNECTED AT PORT (C))
	ORI.W	#$FF00,D3
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MED41:				; OUT (C),B	(NOP)
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MED42:				; SBC HL,BC
	ORI.B	#4,D4
	MOVE.W	D4,CCR
	SUBX.W	D3,D2
	MOVE.W	CCR,D4
	MOVEQ	#2,D5
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MED43:				; LD (XXXX),BC
	MOVE.W	(A2)+,D1
	ROL.W	#8,D1
	MOVEQ	#0,D7
	MOVE.W	D1,D7
	ROL.W	#8,D3
	MOVE.W	D3,(A0,D7.L)
	ROL.W	#8,D3
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MED44:				; NEG	(NEGATE A)	*******************
	MOVE.W	D4,CCR
	NEG.B	D0
	MOVE.W	CCR,D4
	MOVEQ	#02,D5		; H=0,N=1
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MED45:
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MED46:
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MED47:
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MED48:				; IN C,(C)
	ORI.W	#$00FF,D3
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MED49:
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MED4A:				; ADC HL,BC
	ORI.B	#4,D4		; SET Z FOR ADDX INSTR
	MOVE.W	D4,CCR
	ADDX.W	D3,D2
	MOVE.W	CCR,D4
	MOVEQ	#0,D5
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MED4B:				; LD BC,(XXXX)
	MOVE.W	(A2)+,D1
	ROL.W	#8,D1
	MOVEQ	#0,D7
	MOVE.W	D1,D7
	MOVE.W	(A0,D7.L),D3
	ROL.W	#8,D3
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MED4D:
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MED4F:				; LD R,A (NOP)
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MED50:				; IN D,(C)
	ORI.L	#$FF000000,D3
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MED51:
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MED52:				; SBC HL,DE
	ORI.B	#4,D4
	SWAP	D3
	MOVE.W	D4,CCR
	SUBX.W	D3,D2
	MOVE.W	CCR,D4
	MOVEQ	#2,D5
	SWAP	D3
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MED53:				; LD (XXXX),DE
	MOVE.W	(A2)+,D1
	ROL.W	#8,D1
	MOVEQ	#0,D7
	MOVE.W	D1,D7
	SWAP	D3
	ROL.W	#8,D3
	MOVE.W	D3,(A0,D7.L)
	ROL.W	#8,D3
	SWAP	D3
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MED56:
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MED57:
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MED58:				; IN E,(C)
	ORI.L	#$00FF0000,D3
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MED59:
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MED5A:				; ADC HL,DE
	ORI.B	#4,D4		; SET Z FOR ADDX INSTR
	SWAP	D3
	MOVE.W	D4,CCR
	ADDX.W	D3,D2
	MOVE.W	CCR,D4
	SWAP	D3
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MED5B:				; LD DE,(XXXX)
	MOVE.W	(A2)+,D1
	ROL.W	#8,D1
	MOVEQ	#0,D7
	MOVE.W	D1,D7
	SWAP	D3
	MOVE.W	(A0,D7.L),D3
	ROL.W	#8,D3
	SWAP	D3
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MED5E:
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MED5F:				; LD A,R

	MOVE.B	$BFE801,D0	; GET RANDOM BYTE FROM SYSTEM TIMER
	MOVE.W	D4,CCR		; CONDITION S,Z FLAGS BY AN OR INSTRUCTION
	OR.B	D0,D0
	ANDI	#$0F,CCR	; CLEAR 680X0 X FLG (V,C ARE CLEARED BY THE OR)
	MOVE.W	CCR,D4
	MOVEQ.B	#0,D5		; H=N=0
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MED60:				; IN H,(C)
	ORI.W	#$FF00,D2
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MED61:
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MED62:				; SBC HL,HL
	ORI.B	#4,D4
	MOVE.W	D4,CCR
	SUBX.W	D2,D2
	MOVE.W	CCR,D4
	MOVEQ	#2,D5
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MED67:				; RRD			****** NO FLAGS SET ********
	MOVEQ	#0,D1
	MOVEQ	#0,D6
	MOVEQ	#0,D7
	MOVE.B	D0,D6
	LSL.B	#4,D6		; LOW NIBBLE OF D0-> HIGH NIB OF D6
	MOVE.W	D2,D1		; HL-> D1
	MOVE.B	(A0,D1.L),D7	; GET BYTE AT (HL)
	ROR.L	#4,D7
	OR.B	D7,D6		; D6 NOW HAS BYTE READY FOR SCREENWRITE()
	ROL.L	#4,D7
	ANDI.B	#$0F,D7
	ANDI.B	#$F0,D0
	OR.B	D7,D0

	CMPI.W	#$4000,D1	; if HL >= 4000 do the instruction
	BCS.B	.L1
	MOVE.B	D6,(A0,D1.L)
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF
.L1
	CMPI.W	#$3BFF,D1	; if HL <= 3C00 we are in ROM so do nothing
	BHI.B	.L2
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF
.L2
	MOVE.B	D6,(A0,D1.L)	; HL is pointing at the screen so update the
	BSR	_screenwrite	; screen with D6
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MED68:				; IN L,(C)
	ORI.W	#$00FF,D2
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MED69:
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MED6A:				; ADC HL,HL
	ORI.B	#4,D4		; SET Z FOR ADDX INSTR
	MOVE.W	D4,CCR
	ADDX.W	D2,D2
	MOVE.W	CCR,D4
	MOVEQ	#0,D5
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MED6F:				; RLD			****** NO FLAGS SET ********
	MOVEQ	#0,D1
	MOVEQ	#0,D6
	MOVEQ	#0,D7
	MOVE.W	D2,D1		; HL-> D1
	MOVE.B	D0,D6
	ANDI.B	#$0F,D6		; LOW NIBBLE OF D0 IN D6
	MOVE.B	(A0,D1.L),D7	; GET BYTE AT (HL)
	LSL.W	#4,D7
	OR.B	D7,D6		; D6 NOW HAS BYTE READY FOR SCREENWRITE()
	ANDI.B	#$F0,D0
	ROL.W	#8,D7		; HIGH NIBBLE OF (HL) BACK TO LOW NIBBLE OF D7
	OR.B	D7,D0		; FINISHED!

	CMPI.W	#$4000,D1	; if HL >= 4000 do the instruction
	BCS.B	.L1
	MOVE.B	D6,(A0,D1.L)
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF
.L1
	CMPI.W	#$3BFF,D1	; if HL <= 3C00 we are in ROM so do nothing
	BHI.B	.L2
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF
.L2
	MOVE.B	D6,(A0,D1.L)	; HL is pointing at the screen so update the
	BSR	_screenwrite	; screen with D6
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MED72:				; SBC HL,SP
	MOVE.L	A4,D6
	SUB.L	A0,D6
	ORI.B	#4,D4
	MOVE.W	D4,CCR
	SUBX.W	D6,D2
	MOVE.W	CCR,D4
	MOVEQ	#2,D5
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MED73:				; LD (XXXX),SP
	MOVE.W	(A2)+,D1
	ROL.W	#8,D1
	MOVEQ	#0,D7
	MOVE.W	D1,D7
	MOVE.L	A4,D6
	SUB.L	A0,D6
	ROL.W	#8,D6
	MOVE.W	D6,(A0,D7.L)
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MED78:				; IN A,(C)
	ORI.B	#$FF,D0
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MED79:
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MED7A:				; ADC HL,SP
	ORI.B	#4,D4		; SET Z FOR ADDX INSTR
	MOVE.L	A4,D6
	SUB.L	A0,D6
	MOVE.W	D4,CCR
	ADDX.W	D6,D2
	MOVE.W	CCR,D4
	MOVEQ	#0,D5
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MED7B:				; LD SP,(XXXX)
	MOVE.W	(A2)+,D1
	ROL.W	#8,D1
	MOVEQ	#0,D7
	MOVE.W	D1,D7
	MOVE.W	(A0,D7.L),D7
	ROL.W	#8,D7
	MOVE.L	A0,A4
	ADDA.L	D7,A4
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MEDA0:				; LDI
	ORI.B	#$02,D4		; V=1
	SWAP	D3
	MOVEQ	#0,D7
	MOVE.W	D3,D7
.HERE:	CMPI.W	#$4000,D3	; if BC >= 4000 do the instruction
	BCS.B	.L1
.L3	MOVE.B	(A0,D2.L),(A0,D7.L)
.L2	ADDQ.W	#1,D2
	ADDQ.W	#1,D3
	SWAP	D3
	SUBQ.W	#1,D3
	BNE.S	.L4
	ANDI.B	#$1D,D4		; V FLG = 0 IF BC=0
.L4	MOVEQ	#$0,D5		; SET H,N=0
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF
.L1
	CMPI.W	#$3C00,D3	; if BC < 3C00 we are in ROM so do nothing
	BCS.B	.L2
	MOVE.W	D3,D1
	MOVE.B	(A0,D2.L),D6	; BC is pointing at the screen so update the
	BSR	_screenwrite	; screen with A
	BRA.B	.L3

MEDA1:				; CPI
	MOVE.B	D4,D7
	ANDI.B	#$11,D7		; SAVE X,C
	MOVE.B	D0,D6
	MOVEQ	#0,D1
	MOVE.W	D2,D1
	SUB.B	(A0,D1.L),D6	; DO 
	MOVE.W	CCR,D4
	ANDI.B	#$0E,D4		; X,C=0
	ORI.B	#$02,D4		; V=1
	OR.B	D7,D4		; RESTORE OLD X,C
	ADDQ.W	#1,D2
	SUBQ.W	#1,D3
	BNE.S	.L4
	ANDI.B	#$1D,D7		; V FLG = 0 IF BC=0
.L4	MOVEQ	#$2,D5		; SET N=1
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MEDA2:
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MEDA3:
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MEDA8:				; LDD
	ORI.B	#$02,D4		; V=1
	SWAP	D3
	MOVEQ	#0,D7
	MOVE.W	D3,D7
.HERE:	CMPI.W	#$4000,D3	; if DE >= 4000 do the instruction
	BCS.B	.L1
.L3	MOVE.B	(A0,D2.L),(A0,D7.L)
.L2	SUBQ.W	#1,D2
	SUBQ.W	#1,D3
	SWAP	D3
	SUBQ.W	#1,D3		; DEC BC
	BNE.S	.L4
	ANDI.B	#$1D,D4		; V FLG = 0 IF BC=0
.L4	MOVEQ	#$0,D5		; SET H,N=0
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF
.L1
	CMPI.W	#$3C00,D3	; if DE < 3C00 we are in ROM so do nothing
	BCS.B	.L2
	MOVE.W	D3,D1
	MOVE.B	(A0,D2.L),D6	; BC is pointing at the screen so update the
	BSR	_screenwrite	; screen with A
	BRA.B	.L3

MEDA9:				; CPD
	MOVE.B	D4,D7
	ANDI.B	#$11,D7		; SAVE X,C
	MOVE.B	D0,D6
	MOVEQ	#0,D1
	MOVE.W	D2,D1
	SUB.B	(A0,D1.L),D6	; DO 
	MOVE.W	CCR,D4
	ANDI.B	#$0E,D4		; X,C=0
	ORI.B	#$02,D4		; V=1
	OR.B	D7,D4		; RESTORE OLD X,C
	SUBQ.W	#1,D2
	SUBQ.W	#1,D3
	BNE.S	.L4
	ANDI.B	#$1D,D4		; V FLG = 0 IF BC=0
.L4	MOVEQ	#$2,D5		; SET N=1
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MEDAA:
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MEDAB:
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MEDB0:				; LDIR
	MOVE.L	D3,D7
	MOVEQ	#0,D1
	SWAP	D7
	MOVE.W	D7,D1
	ANDI.W	#$FFFF,D2
	SUBQ.W	#1,D3
.HERE:	CMPI.W	#$4000,D1	; if BC >= 4000 do the instruction
	BCS.B	.L1
.L3	MOVE.B	(A0,D2.L),(A0,D1.L)
.L2	ADDQ.W	#1,D2
	ADDQ.W	#1,D1
	DBRA	D3,.HERE
	MOVEQ.W	#0,D3
	SWAP	D3
	MOVE.W	D1,D3
	SWAP	D3
	MOVEQ.L	#0,D5		; CLEAR H,N FLAGS
	ANDI.B	#$1D,D4		; CLEAR V FLAG
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF
.L1
	CMPI.W	#$3C00,D1	; if BC < 3C00 we are in ROM so do nothing
	BCS.B	.L2
	MOVE.B	(A0,D2.L),D6	; BC is pointing at the screen so update the
	BSR	_screenwrite	; screen with A
	BRA.B	.L3

MEDB1:				; CPIR
	MOVE.B	D4,D7
	ANDI.B	#$11,D7		; SAVE X,C
	MOVEQ	#0,D1
.L3	MOVE.B	D0,D6
	MOVE.W	D2,D1
	SUB.B	(A0,D1.L),D6	; DO 
	MOVE.W	CCR,D4
	BEQ.B	.L1
	ANDI.B	#$0C,D4		; X,C,V=0
	OR.B	D7,D4		; RESTORE OLD X,C
	ADDQ.W	#1,D2
	SUBQ.W	#1,D3
	BNE.B	.L3
	ANDI.B	#$1D,D4		; V FLG = 0 SINCE BC=0
	MOVEQ	#$2,D5		; SET N=1
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

.L1
	ANDI.B	#$0E,D4		; X,C=0
	ORI.B	#$02,D4		; V=1
	OR.B	D7,D4		; RESTORE OLD X,C
	ADDQ.W	#1,D2
	SUBQ.W	#1,D3
	BNE.S	.L4
	ANDI.B	#$1D,D4		; V FLG = 0 IF BC=0
.L4	MOVEQ	#$2,D5		; SET SUB FLG
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MEDB2:
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MEDB3:
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MEDB8:				; LDDR
	MOVE.L	D3,D7
	MOVEQ	#0,D1
	SWAP	D7
	MOVE.W	D7,D1
	ANDI.W	#$FFFF,D2
	SUBQ.W	#1,D3
.HERE:	CMPI.W	#$4000,D1	; if BC >= 4000 do the instruction
	BCS.B	.L1
.L3	MOVE.B	(A0,D2.L),(A0,D1.L)
.L2	SUBQ.W	#1,D2
	SUBQ.W	#1,D1
	DBRA	D3,.HERE
	MOVEQ.W	#0,D3
	SWAP	D3
	MOVE.W	D1,D3
	SWAP	D3
	MOVEQ.L	#0,D5		; CLEAR H,N FLAGS
	ANDI.B	#$1D,D4		; CLEAR V FLAG
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF
.L1
	CMPI.W	#$3C00,D1	; if BC <= 3C00 we are in ROM so do nothing
	BCS.B	.L2
	MOVE.B	(A0,D2.L),D6	; BC is pointing at the screen so update the
	BSR	_screenwrite	; screen with A
	BRA.B	.L3

MEDB9:				; CPDR
	MOVE.B	D4,D7
	ANDI.B	#$11,D7		; SAVE X,C
	MOVEQ	#0,D1
.L3	MOVE.B	D0,D6
	MOVE.W	D2,D1
	SUB.B	(A0,D1.L),D6	; DO 
	MOVE.W	CCR,D4
	BEQ.B	.L1
	ANDI.B	#$0C,D4		; X,C,V=0
	OR.B	D7,D4		; RESTORE OLD X,C
	SUBQ.W	#1,D2
	SUBQ.W	#1,D3
	BNE.B	.L3
	ANDI.B	#$1D,D4		; V FLG = 0 SINCE BC=0
	MOVEQ	#$2,D5		; SET N=1
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

.L1
	ANDI.B	#$0E,D4		; X,C=0
	ORI.B	#$02,D4		; V=1
	OR.B	D7,D4		; RESTORE OLD X,C
	SUBQ.W	#1,D2
	SUBQ.W	#1,D3
	BNE.S	.L4
	ANDI.B	#$1D,D4		; V FLG = 0 IF BC=0
.L4	MOVEQ	#$2,D5		; SET SUB FLG
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MEDBA:
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MEDBB:
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

* FD INSTRUCTIONS


MFD09:				; ADD IY,BC
	SUBA.L	A0,A5
	MOVE.L	A5,D7
	ADD.W	D3,D7
	SCS.W	D6
	ANDI.W	#$EE,D4		; CLEAR X,C
	ANDI.W	#$11,D6
	OR.B	D6,D4		; SET X,C IF CARRY
	MOVEQ	#0,D5		; SET H,N=0
	MOVE.L	A0,A5
	ADDA.L	D7,A5
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MFD19:				; ADD IY,DE
	SUBA.L	A0,A5
	MOVE.L	A5,D7
	SWAP	D3
	ADD.W	D3,D7
	SCS.W	D6
	ANDI.W	#$EE,D4		; CLEAR X,C
	ANDI.W	#$11,D6
	OR.B	D6,D4		; SET X,C IF CARRY
	MOVEQ	#0,D5		; SET H,N=0
	SWAP	D3
	MOVE.L	A0,A5
	ADDA.L	D7,A5
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF


MFD21:				; LD IY,XXXX
	MOVE.W	(A2)+,D1
	ROL.W	#8,D1
	MOVEQ	#0,D7
	MOVE.W	D1,D7
	MOVE.L	A0,A5
	ADDA.L	D7,A5
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF
 
MFD22:				; LD (XXXX),IY
	MOVE.W	(A2)+,D1
	ROL.W	#8,D1
	MOVEQ	#0,D7
	MOVE.W	D1,D7
	SUBA.L	A0,A5
	MOVE.L	A5,D6
	ROL.W	#8,D6
	MOVE.W	D6,(A0,D7.L)
	ADDA.L	A0,A5
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MFD23:				; INC IY
	SUBA.L	A0,A5
	MOVE.L	A5,D7
	ADDQ.W	#1,D7
	MOVE.L	A0,A5
	ADDA.L	D7,A5
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MFD29:				; ADD IY,IY
	SUBA.L	A0,A5
	MOVE.L	A5,D7
	ADD.W	D7,D7
	SCS.W	D6
	ANDI.W	#$EE,D4		; CLEAR X,C
	ANDI.W	#$11,D6
	OR.B	D6,D4		; SET X,C IF CARRY
	MOVEQ	#0,D5		; SET H,N=0
	MOVE.L	A0,A5
	ADDA.L	D7,A5
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MFD2A:				; LD IY,(XXXX)
	MOVE.W	(A2)+,D1
	ROL.W	#8,D1
	MOVEQ	#0,D7
	MOVE.W	D1,D7
	MOVE.W	(A0,D7.L),D7
	ROL.W	#8,D7
	MOVE.L	A0,A5
	ADDA.L	D7,A5
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MFD2B:				; DEC IY
	SUBA.L	A0,A5
	MOVE.L	A5,D7
	SUBQ.W	#1,D7
	MOVE.L	A0,A5
	ADDA.L	D7,A5
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MFD34:				; INC (IY+D)
	MOVE.W	D4,-(SP)	; SAVE X,C AS NOT AFFECTED
	SUBA.L	A0,A5
	MOVE.L	A5,D1		; CONVENIENTLY MASK D1.L WITH 0000FFFF
	MOVE.B	(A2)+,D7
	EXT.W	D7
	ADD.W	D7,D1
	CMPI.W	#$4000,D1	; if HL >= 4000 do the instruction
	BCS.B	.L1
	ADDA.L	A0,A5
	MOVE.B	(A5,D7.L),D6
	MOVE.W	D4,CCR
	ADDQ.B	#1,D6
	MOVE.W	CCR,D4
	MOVE.W	(SP)+,D1	; GET OLD FLAGS
	ANDI.W	#$EE,D4		; CLEAR X,C
	ANDI.W	#$11,D1
	OR.B	D1,D4		; SET X,C IF PREVIUOSLY SET
	MOVE.B	D6,(A5,D7.L)
	ANDI.W	#$00FF,D6	; EXT D6 FOR INDEX INTO ADD TABLE
	MOVE.B	$220(A6,D6.W),D5; SET EXTENDED Z80 FLG TO N=0 H=HALF
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF
.L1
	CMPI.W	#$3BFF,D1	; if HL <= 3C00 we are in ROM so do nothing
	BHI.B	.L2
	ADDA.L	A0,A5
	MOVE.B	(A5,D7.L),D6	; CONDITION THE FLAGS BUT DONT ALTER
	MOVE.W	D4,CCR		; ANY MEMORY
	ADDQ.B	#1,D6
	MOVE.W	CCR,D4
	MOVE.W	(SP)+,D1	; GET OLD FLAGS
	ANDI.W	#$EE,D4		; CLEAR X,C
	ANDI.W	#$11,D1
	OR.B	D1,D4		; SET X,C IF PREVIUOSLY SET
	ANDI.W	#$00FF,D6	; EXT D7 FOR INDEX INTO ADD TABLE
	MOVE.B	$220(A6,D6.W),D5; SET EXTENDED Z80 FLG TO N=0 H=HALF
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF
.L2
	ADDA.L	A0,A5
	MOVE.B	(A5,D7.L),D6
	MOVE.W	D4,CCR
	ADDQ.B	#1,D6
	MOVE.W	CCR,D4
	MOVE.B	D6,(A5,D7.L)
	ANDI.W	#$00FF,D6	; EXT D7 FOR INDEX INTO ADD TABLE
	MOVE.B	$220(A6,D6.W),D5; SET EXTENDED Z80 FLG TO N=0 H=HALF
	BSR	_screenwrite	; HL -> SCREENLOC D6=BYTE
	MOVE.W	(SP)+,D1	; GET OLD FLAGS
	ANDI.W	#$EE,D4		; CLEAR X,C
	ANDI.W	#$11,D1
	OR.B	D1,D4		; SET X,C IF PREVIUOSLY SET
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MFD35:				; DEC (IY+D)
	MOVE.W	D4,-(SP)	; SAVE X,C AS NOT AFFECTED
	SUBA.L	A0,A5
	MOVE.L	A5,D1		; CONVENIENTLY MASK D1.L WITH 0000FFFF
	MOVE.B	(A2)+,D7
	EXT.W	D7
	ADD.W	D7,D1
	CMPI.W	#$4000,D1	; if HL >= 4000 do the instruction
	BCS.B	.L1
	ADDA.L	A0,A5
	MOVE.B	(A5,D7.L),D6
	MOVE.W	D4,CCR
	SUBQ.B	#1,D6
	MOVE.W	CCR,D4
	MOVE.W	(SP)+,D1	; GET OLD FLAGS
	ANDI.W	#$EE,D4		; CLEAR X,C
	ANDI.W	#$11,D1
	OR.B	D1,D4		; SET X,C IF PREVIUOSLY SET
	MOVE.B	D6,(A5,D7.L)
	ANDI.W	#$00FF,D6	; EXT D6 FOR INDEX INTO SUB TABLE
	MOVE.B	$320(A6,D6.W),D5; SET EXTENDED Z80 FLG TO N=1 H=HALF
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF
.L1
	CMPI.W	#$3BFF,D1	; if HL <= 3C00 we are in ROM so do nothing
	BHI.B	.L2
	ADDA.L	A0,A5
	MOVE.B	(A5,D7.L),D6	; CONDITION THE FLAGS BUT DONT ALTER
	MOVE.W	D4,CCR		; ANY MEMORY
	SUBQ.B	#1,D6
	MOVE.W	CCR,D4
	MOVE.W	(SP)+,D1	; GET OLD FLAGS
	ANDI.W	#$EE,D4		; CLEAR X,C
	ANDI.W	#$11,D1
	OR.B	D1,D4		; SET X,C IF PREVIUOSLY SET
	ANDI.W	#$00FF,D6	; EXT D7 FOR INDEX INTO SUB TABLE
	MOVE.B	$220(A6,D6.W),D5; SET EXTENDED Z80 FLG TO N=1 H=HALF
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF
.L2
	ADDA.L	A0,A5
	MOVE.B	(A5,D7.L),D6
	MOVE.W	D4,CCR
	SUBQ.B	#1,D6
	MOVE.W	CCR,D4
	MOVE.B	D6,(A5,D7.L)
	ANDI.W	#$00FF,D6	; EXT D7 FOR INDEX INTO SUB TABLE
	MOVE.B	$220(A6,D6.W),D5; SET EXTENDED Z80 FLG TO N=1 H=HALF
	BSR	_screenwrite	; HL -> SCREENLOC D6=BYTE
	MOVE.W	(SP)+,D1	; GET OLD FLAGS
	ANDI.W	#$EE,D4		; CLEAR X,C
	ANDI.W	#$11,D1
	OR.B	D1,D4		; SET X,C IF PREVIUOSLY SET
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MFD36:				; LD (IY+D),N
	SUBA.L	A0,A5
	MOVE.L	A5,D1		; CONVENIENTLY MASK D1.L WITH 0000FFFF
	MOVE.B	(A2)+,D7
	EXT.W	D7
	ADD.W	D7,D1
	CMPI.W	#$4000,D1	; if (IX+D) >= 4000 do the instruction
	BCS.B	.L1
	MOVE.B	(A2)+,D1
	ADDA.L	A0,A5
	MOVE.B	D1,(A5,D7.W)
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

.L1
	CMPI.W	#$3BFF,D1	; if (IY+D) < 3C00 we are in ROM so do nothing
	BHI.B	.L2
	ADDA.L	A0,A5
	ADDQ.L	#1,A2		; will catch (IY+d)>FFFF aswell 
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF
.L2
	MOVE.B	(A2)+,D6
	ADDA.L	A0,A5
	MOVE.B	D6,(A5,D7.W)	; (IY+D) is pointing at the screen so update the
	BSR	_screenwrite	; screen with N
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MFD39:				; ADD IY,SP
	SUBA.L	A0,A4
	MOVE.L	A4,D7
	SUBA.L	A0,A5
	MOVE.L	A5,D6
	ADD.W	D7,D6
	SCS.B	D7
	ANDI.W	#$EE,D4		; CLEAR X,C
	ANDI.W	#$11,D7
	OR.B	D7,D4		; SET X,C IF CARRY
	MOVEQ	#0,D5		; SET H,N=0
	ADDA.L	A0,A4
	MOVE.L	D6,A5
	ADDA.L	A0,A5
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MFD46:				; LD B,(IY+D)
	MOVE.B	(A2)+,D1
	EXT.W	D1
	ROL.W	#8,D3
	MOVE.B	(A5,D1.W),D3
	ROL.W	#8,D3
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MFD4E:				; LD C,(IY+D)
	MOVE.B	(A2)+,D1
	EXT.W	D1
	MOVE.B	(A5,D1.W),D3
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MFD56:				; LD D,(IY+D)
	MOVE.B	(A2)+,D1
	EXT.W	D1
	ROL.L	#8,D3
	MOVE.B	(A5,D1.W),D3
	ROR.L	#8,D3
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MFD5E:				; LD E,(IY+D)
	MOVE.B	(A2)+,D1
	EXT.W	D1
	SWAP	D3
	MOVE.B	(A5,D1.W),D3
	SWAP	D3
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MFD66:				; LD H,(IY+D)
	MOVE.B	(A2)+,D1
	EXT.W	D1
	ROL.W	#8,D2
	MOVE.B	(A5,D1.W),D2
	ROL.W	#8,D2
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MFD6E:				; LD L,(IY+D)
	MOVE.B	(A2)+,D1
	EXT.W	D1
	MOVE.B	(A5,D1.W),D2
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MFD70:				; LD (IY+D),B
	SUBA.L	A0,A5
	MOVE.L	A5,D1		
	MOVE.B	(A2)+,D7
	EXT.W	D7
	ADD.W	D7,D1
	CMPI.W	#$4000,D1	
	BCS.B	.L1
	ADDA.L	A0,A5
	ROL.W	#8,D3
	MOVE.B	D3,(A5,D7.W)
	ROL.W	#8,D3
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

.L1
	CMPI.W	#$3BFF,D1	
	BHI.B	.L2
	ADDA.L	A0,A5		 
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF
.L2
	MOVE.W	D3,D6
	ADDA.L	A0,A5
	ROL.W	#8,D6
	MOVE.B	D6,(A5,D7.W)	
	BSR	_screenwrite	
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MFD71:				; LD (IY+D),C
	SUBA.L	A0,A5
	MOVE.L	A5,D1		
	MOVE.B	(A2)+,D7
	EXT.W	D7
	ADD.W	D7,D1
	CMPI.W	#$4000,D1	
	BCS.B	.L1
	ADDA.L	A0,A5
	MOVE.B	D3,(A5,D7.W)
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

.L1
	CMPI.W	#$3BFF,D1	
	BHI.B	.L2
	ADDA.L	A0,A5		 
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF
.L2
	MOVE.B	D3,D6
	ADDA.L	A0,A5
	MOVE.B	D6,(A5,D7.W)	
	BSR	_screenwrite	
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MFD72:				; LD (IY+D),D
	SUBA.L	A0,A5
	MOVE.L	A5,D1		
	MOVE.B	(A2)+,D7
	EXT.W	D7
	ADD.W	D7,D1
	CMPI.W	#$4000,D1	
	BCS.B	.L1
	ADDA.L	A0,A5
	ROL.L	#8,D3
	MOVE.B	D3,(A5,D7.W)
	ROR.L	#8,D3
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

.L1
	CMPI.W	#$3BFF,D1	
	BHI.B	.L2
	ADDA.L	A0,A5		 
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF
.L2
	MOVE.L	D3,D6
	ADDA.L	A0,A5
	ROL.L	#8,D6
	MOVE.B	D6,(A5,D7.W)	
	BSR	_screenwrite	
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MFD73:				; LD (IY+D),E
	SUBA.L	A0,A5
	MOVE.L	A5,D1		
	MOVE.B	(A2)+,D7
	EXT.W	D7
	ADD.W	D7,D1
	CMPI.W	#$4000,D1	
	BCS.B	.L1
	ADDA.L	A0,A5
	SWAP	D3
	MOVE.B	D3,(A5,D7.W)
	SWAP	D3
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

.L1
	CMPI.W	#$3BFF,D1	
	BHI.B	.L2
	ADDA.L	A0,A5		 
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF
.L2
	MOVE.L	D3,D6
	ADDA.L	A0,A5
	SWAP	D6
	MOVE.B	D6,(A5,D7.W)	
	BSR	_screenwrite	
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MFD74:				; LD (IY+D),H
	SUBA.L	A0,A5
	MOVE.L	A5,D1		
	MOVE.B	(A2)+,D7
	EXT.W	D7
	ADD.W	D7,D1
	CMPI.W	#$4000,D1	
	BCS.B	.L1
	ADDA.L	A0,A5
	ROL.W	#8,D2
	MOVE.B	D2,(A5,D7.W)
	ROL.W	#8,D2
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

.L1
	CMPI.W	#$3BFF,D1	
	BHI.B	.L2
	ADDA.L	A0,A5		 
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF
.L2
	MOVE.W	D2,D6
	ADDA.L	A0,A5
	ROL.W	#8,D6
	MOVE.B	D6,(A5,D7.W)	
	BSR	_screenwrite	
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MFD75:				; LD (IY+D),L
	SUBA.L	A0,A5
	MOVE.L	A5,D1		
	MOVE.B	(A2)+,D7
	EXT.W	D7
	ADD.W	D7,D1
	CMPI.W	#$4000,D1	
	BCS.B	.L1
	ADDA.L	A0,A5
	MOVE.B	D2,(A5,D7.W)
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

.L1
	CMPI.W	#$3BFF,D1	
	BHI.B	.L2
	ADDA.L	A0,A5		 
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF
.L2
	MOVE.B	D2,D6
	ADDA.L	A0,A5
	MOVE.B	D6,(A5,D7.W)	
	BSR	_screenwrite	
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MFD77:				; LD (IY+D),A
	SUBA.L	A0,A5
	MOVE.L	A5,D1		
	MOVE.B	(A2)+,D7
	EXT.W	D7
	ADD.W	D7,D1
	CMPI.W	#$4000,D1	
	BCS.B	.L1
	ADDA.L	A0,A5
	MOVE.B	D0,(A5,D7.W)
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

.L1
	CMPI.W	#$3BFF,D1	
	BHI.B	.L2
	ADDA.L	A0,A5		 
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF
.L2
	MOVE.B	D0,D6
	ADDA.L	A0,A5
	MOVE.B	D6,(A5,D7.W)	
	BSR	_screenwrite	
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MFD7E:				; LD A,(IY+D)
	MOVE.B	(A2)+,D1
	EXT.W	D1
	MOVE.B	(A5,D1.W),D0
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MFD86:				; ADD A,(IY+D)
	MOVE.B	(A2)+,D1
	EXT.W	D1
	MOVE.W	D4,CCR
	ADD.B	(A5,D1.W),D0
	MOVE.W	CCR,D4
	ANDI.W	#$00FF,D0	; EXT D0 FOR INDEX INTO ADD TABLE
	MOVE.B	$220(A6,D0.W),D5; SET EXTENDED Z80 FLG TO N=0 H=HALF
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MFD8E:				; ADC A,(IY+D)
	MOVE.B	(A2)+,D1
	EXT.W	D1
	MOVE.B	(A5,D1.W),D7
	ORI.B	#4,D4		; SET Z FOR ADDX INSTR
	MOVE.W	D4,CCR
	ADDX.B	D7,D0
	MOVE.W	CCR,D4
	ANDI.W	#$00FF,D0	; EXT D0 FOR INDEX INTO ADD TABLE
	MOVE.B	$220(A6,D0.W),D5; SET EXTENDED Z80 FLG TO N=0 H=HALF
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MFD96:				; SUB (IY+D)
	MOVE.B	(A2)+,D1
	EXT.W	D1
	MOVE.W	D4,CCR
	SUB.B	(A5,D1.W),D0
	MOVE.W	CCR,D4
	ANDI.W	#$00FF,D0	; EXT D0 FOR INDEX INTO SUB TABLE
	MOVE.B	$320(A6,D0.W),D5; SET EXTENDED Z80 FLG TO N=1 H=HALF
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MFD9E:				; SBC A,(IY+D)
	MOVE.B	(A2)+,D1
	EXT.W	D1
	MOVE.B	(A5,D1.W),D7
	ORI.B	#4,D4		; SET Z FOR SUBX INSTR
	MOVE.W	D4,CCR
	SUBX.B	D7,D0
	MOVE.W	CCR,D4
	ANDI.W	#$00FF,D0	; EXT D0 FOR INDEX INTO SUB TABLE
	MOVE.B	$320(A6,D0.W),D5; SET EXTENDED Z80 FLG TO N=1 H=HALF
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MFDA6:				; AND (IY+D)
	MOVE.B	(A2)+,D1
	EXT.W	D1
	MOVE.W	D4,CCR
	AND.B	(A5,D1.W),D0
	MOVE.W	CCR,D4
	ANDI.W	#$00FF,D0	; EXT D0 FOR INDEX INTO PARITY TABLE
	OR.B	(A6,D0.W),D4	; SET V FLG TO PARITY TABLE VALUE
	ANDI.W	#$EE,D4		; CLEAR C AND X
	MOVE.B	#$10,D5		; SET EXTENDED Z80 FLG TO N=0 H=1
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MFDAE:				; XOR (IY+D)
	MOVE.B	(A2)+,D1
	EXT.W	D1
	MOVE.B	(A5,D1.W),D7
	MOVE.W	D4,CCR
	EOR.B	D7,D0
	ANDI.W	#$00FF,D0	; EXT D0 FOR INDEX INTO PARITY TABLE
	OR.B	(A6,D0.W),D4	; SET V FLG TO PARITY TABLE VALUE
	ANDI.W	#$EE,D4		; CLEAR C AND X
	MOVE.B	#$10,D5		; SET EXTENDED Z80 FLG TO N=0 H=1
	MOVE.W	CCR,D4
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MFDB6:				; OR (IY+D)
	MOVE.B	(A2)+,D1
	EXT.W	D1
	MOVE.W	D4,CCR
	OR.B	(A5,D1.W),D0
	MOVE.W	CCR,D4
	ANDI.W	#$00FF,D0	; EXT D0 FOR INDEX INTO PARITY TABLE
	OR.B	(A6,D0.W),D4	; SET V FLG TO PARITY TABLE VALUE
	ANDI.W	#$EE,D4		; CLEAR C AND X
	MOVE.B	#$10,D5		; SET EXTENDED Z80 FLG TO N=0 H=1
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MFDBE:				; CP (IY+D)
	MOVE.B	D0,D6
	MOVE.B	(A2)+,D1
	EXT.W	D1
	MOVE.W	D4,CCR
	SUB.B	(A5,D1.W),D6
	MOVE.W	CCR,D4
	ANDI.W	#$00FF,D6	; EXT D6 FOR INDEX INTO SUB TABLE
	MOVE.B	$320(A6,D6.W),D5; SET EXTENDED Z80 FLG TO N=1 H=HALF
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MFDCB:				; various (IY+d) instructions	FD CB d X
	SUBA.L	A0,A5		; get real IY val
	MOVE.L	A5,D1
	ADDA.L	A0,A5		
	MOVE.B	(A2)+,D7	; get d offset
	EXT.W	D7		; sign extend
	ADD.W	D7,D1		; D1 now has (IY+d) for later use by screenwrite()
	MOVE.B	(A2)+,D7	; get X to decide function to perform

	CMPI.B	#6,D7
	BEQ.W	FDRLC
	CMPI.B	#14,D7
	BEQ.W	FDRRC
	CMPI.B	#$16,D7
	BEQ.W	FDRL
	CMPI.B	#$1E,D7
	BEQ.W	FDRR
	CMPI.B	#$26,D7
	BEQ.W	FDSLA
	CMPI.B	#$2E,D7
	BEQ.W	FDSRA
	CMPI.B	#$3E,D7
	BEQ.W	FDSRL
	CMPI.B	#$46,D7
	BEQ.W	FDBT0
	CMPI.B	#$4E,D7
	BEQ.W	FDBT1
	CMPI.B	#$56,D7
	BEQ.W	FDBT2
	CMPI.B	#$5E,D7
	BEQ.W	FDBT3
	CMPI.B	#$66,D7
	BEQ.W	FDBT4
	CMPI.B	#$6E,D7
	BEQ.W	FDBT5
	CMPI.B	#$76,D7
	BEQ.W	FDBT6
	CMPI.B	#$7E,D7
	BEQ.W	FDBT7
	CMPI.B	#$86,D7
	BEQ.W	FDRS0
	CMPI.B	#$8E,D7
	BEQ.W	FDRS1
	CMPI.B	#$96,D7
	BEQ.W	FDRS2
	CMPI.B	#$9E,D7
	BEQ.W	FDRS3
	CMPI.B	#$A6,D7
	BEQ.W	FDRS4
	CMPI.B	#$AE,D7
	BEQ.W	FDRS5
	CMPI.B	#$B6,D7
	BEQ.W	FDRS6
	CMPI.B	#$BE,D7
	BEQ.W	FDRS7
	CMPI.B	#$C6,D7
	BEQ.W	FDST0
	CMPI.B	#$CE,D7
	BEQ.W	FDST1
	CMPI.B	#$D6,D7
	BEQ.W	FDST2
	CMPI.B	#$DE,D7
	BEQ.W	FDST3
	CMPI.B	#$E6,D7
	BEQ.W	FDST4
	CMPI.B	#$EE,D7
	BEQ.W	FDST5
	CMPI.B	#$F6,D7
	BEQ.W	FDST6
	CMPI.B	#$FE,D7
	BEQ.W	FDST7

	BRA	ILLEGAL		; ILLEGAL IF NO MATCH IN TABLE

FDRLC:				; RLC (IY+D)

	CMPI.W	#$4000,D1	; if HL >= 4000 do the instruction
	BCS.B	.L1
	MOVE.B	(A0,D1.L),D6
	MOVE.W	D4,CCR
	ROL.B	#1,D6
	MOVE.W	CCR,D4
	SCS	D7
	ANDI.B	#$01,D7
	ROL.B	#4,D7
	OR.B	D7,D4
	ANDI.W	#$00FF,D6
	OR.B	(A6,D6.W),D4
	MOVEQ.B	#0,D5
	MOVE.B	D6,(A0,D1.L)
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF
.L1
	CMPI.W	#$3BFF,D1	; if HL <= 3C00 we are in ROM so do nothing
	BHI.B	.L2
	MOVE.B	(A0,D1.L),D6	; CONDITION THE FLAGS BUT DONT ALTER (HL)
	ROL.B	#1,D6
	MOVE.W	CCR,D4
	SCS	D7
	ANDI.B	#$01,D7
	ROL.B	#4,D7
	OR.B	D7,D4
	ANDI.W	#$00FF,D6
	OR.B	(A6,D6.W),D4
	MOVEQ.B	#0,D5
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF
.L2
	MOVE.B	(A0,D1.L),D6
	MOVE.W	D4,CCR
	ROL.B	#1,D6
	MOVE.W	CCR,D4
	SCS	D7
	ANDI.B	#$01,D7
	ROL.B	#4,D7
	OR.B	D7,D4
	ANDI.W	#$00FF,D6
	OR.B	(A6,D6.W),D4
	MOVEQ.B	#0,D5
	MOVE.B	D6,(A0,D1.L)
	BSR	_screenwrite	; HL -> SCREENLOC D6=BYTE
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

FDRRC:				; RRC (IY+D)

	CMPI.W	#$4000,D1	; if HL >= 4000 do the instruction
	BCS.B	.L1
	MOVE.B	(A0,D1.L),D6
	MOVE.W	D4,CCR
	ROR.B	#1,D6
	MOVE.W	CCR,D4
	SCS	D7
	ANDI.B	#$01,D7
	ROL.B	#4,D7
	OR.B	D7,D4
	ANDI.W	#$00FF,D6
	OR.B	(A6,D6.W),D4
	MOVEQ.B	#0,D5
	MOVE.B	D6,(A0,D1.L)
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF
.L1
	CMPI.W	#$3BFF,D1	; if HL <= 3C00 we are in ROM so do nothing
	BHI.B	.L2
	MOVE.B	(A0,D1.L),D6	; CONDITION THE FLAGS BUT DONT ALTER (HL)
	ROR.B	#1,D6
	MOVE.W	CCR,D4
	SCS	D7
	ANDI.B	#$01,D7
	ROL.B	#4,D7
	OR.B	D7,D4
	ANDI.W	#$00FF,D6
	OR.B	(A6,D6.W),D4
	MOVEQ.B	#0,D5
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF
.L2
	MOVE.B	(A0,D1.L),D6
	MOVE.W	D4,CCR
	ROR.B	#1,D6
	MOVE.W	CCR,D4
	SCS	D7
	ANDI.B	#$01,D7
	ROL.B	#4,D7
	OR.B	D7,D4
	ANDI.W	#$00FF,D6
	OR.B	(A6,D6.W),D4
	MOVEQ.B	#0,D5
	MOVE.B	D6,(A0,D1.L)
	BSR	_screenwrite	; HL -> SCREENLOC D6=BYTE
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

FDRL:				; RL (IY+D)

	CMPI.W	#$4000,D1	; if HL >= 4000 do the instruction
	BCS.B	.L1
	MOVE.B	(A0,D1.L),D6
	MOVE.W	D4,CCR
	ROXL.B	#1,D6
	MOVE.W	CCR,D4
	SCS	D7
	ANDI.B	#$01,D7
	ROL.B	#4,D7
	OR.B	D7,D4
	ANDI.W	#$00FF,D6
	OR.B	(A6,D6.W),D4
	MOVEQ.B	#0,D5
	MOVE.B	D6,(A0,D1.L)
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF
.L1
	CMPI.W	#$3BFF,D1	; if HL <= 3C00 we are in ROM so do nothing
	BHI.B	.L2
	MOVE.B	(A0,D1.L),D6	; CONDITION THE FLAGS BUT DONT ALTER (HL)
	ROXL.B	#1,D6
	MOVE.W	CCR,D4
	SCS	D7
	ANDI.B	#$01,D7
	ROL.B	#4,D7
	OR.B	D7,D4
	ANDI.W	#$00FF,D6
	OR.B	(A6,D6.W),D4
	MOVEQ.B	#0,D5
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF
.L2
	MOVE.B	(A0,D1.L),D6
	MOVE.W	D4,CCR
	ROXL.B	#1,D6
	MOVE.W	CCR,D4
	SCS	D7
	ANDI.B	#$01,D7
	ROL.B	#4,D7
	OR.B	D7,D4
	ANDI.W	#$00FF,D6
	OR.B	(A6,D6.W),D4
	MOVEQ.B	#0,D5
	MOVE.B	D6,(A0,D1.L)
	BSR	_screenwrite	; HL -> SCREENLOC D6=BYTE
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

FDRR:				; RR (IY+D)

	CMPI.W	#$4000,D1	; if HL >= 4000 do the instruction
	BCS.B	.L1
	MOVE.B	(A0,D1.L),D6
	MOVE.W	D4,CCR
	ROXR.B	#1,D6
	MOVE.W	CCR,D4
	SCS	D7
	ANDI.B	#$01,D7
	ROL.B	#4,D7
	OR.B	D7,D4
	ANDI.W	#$00FF,D6
	OR.B	(A6,D6.W),D4
	MOVEQ.B	#0,D5
	MOVE.B	D6,(A0,D1.L)
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF
.L1
	CMPI.W	#$3BFF,D1	; if HL <= 3C00 we are in ROM so do nothing
	BHI.B	.L2
	MOVE.B	(A0,D1.L),D6	; CONDITION THE FLAGS BUT DONT ALTER (HL)
	ROXR.B	#1,D6
	MOVE.W	CCR,D4
	SCS	D7
	ANDI.B	#$01,D7
	ROL.B	#4,D7
	OR.B	D7,D4
	ANDI.W	#$00FF,D6
	OR.B	(A6,D6.W),D4
	MOVEQ.B	#0,D5
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF
.L2
	MOVE.B	(A0,D1.L),D6
	MOVE.W	D4,CCR
	ROXR.B	#1,D6
	MOVE.W	CCR,D4
	SCS	D7
	ANDI.B	#$01,D7
	ROL.B	#4,D7
	OR.B	D7,D4
	ANDI.W	#$00FF,D6
	OR.B	(A6,D6.W),D4
	MOVEQ.B	#0,D5
	MOVE.B	D6,(A0,D1.L)
	BSR	_screenwrite	; HL -> SCREENLOC D6=BYTE
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

FDSLA:				; SLA (IY+D)

	CMPI.W	#$4000,D1	; if HL >= 4000 do the instruction
	BCS.B	.L1
	MOVE.B	(A0,D1.L),D6
	MOVE.W	D4,CCR
	LSL.B	#1,D6
	MOVE.W	CCR,D4
	SCS	D7
	ANDI.B	#$01,D7
	ROL.B	#4,D7
	OR.B	D7,D4
	ANDI.W	#$00FF,D6
	OR.B	(A6,D6.W),D4
	MOVEQ.B	#0,D5
	MOVE.B	D6,(A0,D1.L)
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF
.L1
	CMPI.W	#$3BFF,D1	; if HL <= 3C00 we are in ROM so do nothing
	BHI.B	.L2
	MOVE.B	(A0,D1.L),D6	; CONDITION THE FLAGS BUT DONT ALTER (HL)
	LSL.B	#1,D6
	MOVE.W	CCR,D4
	SCS	D7
	ANDI.B	#$01,D7
	ROL.B	#4,D7
	OR.B	D7,D4
	ANDI.W	#$00FF,D6
	OR.B	(A6,D6.W),D4
	MOVEQ.B	#0,D5
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF
.L2
	MOVE.B	(A0,D1.L),D6
	MOVE.W	D4,CCR
	LSL.B	#1,D6
	MOVE.W	CCR,D4
	SCS	D7
	ANDI.B	#$01,D7
	ROL.B	#4,D7
	OR.B	D7,D4
	ANDI.W	#$00FF,D6
	OR.B	(A6,D6.W),D4
	MOVEQ.B	#0,D5
	MOVE.B	D6,(A0,D1.L)
	BSR	_screenwrite	; HL -> SCREENLOC D6=BYTE
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

FDSRA:				; SRA (IY+D)

	CMPI.W	#$4000,D1	; if HL >= 4000 do the instruction
	BCS.B	.L1
	MOVE.B	(A0,D1.L),D6
	MOVE.W	D4,CCR
	ASR.B	#1,D6
	MOVE.W	CCR,D4
	SCS	D7
	ANDI.B	#$01,D7
	ROL.B	#4,D7
	OR.B	D7,D4
	ANDI.W	#$00FF,D6
	OR.B	(A6,D6.W),D4
	MOVEQ.B	#0,D5
	MOVE.B	D6,(A0,D1.L)
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF
.L1
	CMPI.W	#$3BFF,D1	; if HL <= 3C00 we are in ROM so do nothing
	BHI.B	.L2
	MOVE.B	(A0,D1.L),D6	; CONDITION THE FLAGS BUT DONT ALTER (HL)
	ASR.B	#1,D6
	MOVE.W	CCR,D4
	SCS	D7
	ANDI.B	#$01,D7
	ROL.B	#4,D7
	OR.B	D7,D4
	ANDI.W	#$00FF,D6
	OR.B	(A6,D6.W),D4
	MOVEQ.B	#0,D5
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF
.L2
	MOVE.B	(A0,D1.L),D6
	MOVE.W	D4,CCR
	ASR.B	#1,D6
	MOVE.W	CCR,D4
	SCS	D7
	ANDI.B	#$01,D7
	ROL.B	#4,D7
	OR.B	D7,D4
	ANDI.W	#$00FF,D6
	OR.B	(A6,D6.W),D4
	MOVEQ.B	#0,D5
	MOVE.B	D6,(A0,D1.L)
	BSR	_screenwrite	; HL -> SCREENLOC D6=BYTE
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

FDSRL:				; SRL (IY+D)

	CMPI.W	#$4000,D1	; if HL >= 4000 do the instruction
	BCS.B	.L1
	MOVE.B	(A0,D1.L),D6
	MOVE.W	D4,CCR
	LSR.B	#1,D6
	MOVE.W	CCR,D4
	SCS	D7
	ANDI.B	#$01,D7
	ROL.B	#4,D7
	OR.B	D7,D4
	ANDI.W	#$00FF,D6
	OR.B	(A6,D6.W),D4
	MOVEQ.B	#0,D5
	MOVE.B	D6,(A0,D1.L)
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF
.L1
	CMPI.W	#$3BFF,D1	; if HL <= 3C00 we are in ROM so do nothing
	BHI.B	.L2
	MOVE.B	(A0,D1.L),D6	; CONDITION THE FLAGS BUT DONT ALTER (HL)
	LSR.B	#1,D6
	MOVE.W	CCR,D4
	SCS	D7
	ANDI.B	#$01,D7
	ROL.B	#4,D7
	OR.B	D7,D4
	ANDI.W	#$00FF,D6
	OR.B	(A6,D6.W),D4
	MOVEQ.B	#0,D5
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF
.L2
	MOVE.B	(A0,D1.L),D6
	MOVE.W	D4,CCR
	LSR.B	#1,D6
	MOVE.W	CCR,D4
	SCS	D7
	ANDI.B	#$01,D7
	ROL.B	#4,D7
	OR.B	D7,D4
	ANDI.W	#$00FF,D6
	OR.B	(A6,D6.W),D4
	MOVEQ.B	#0,D5
	MOVE.B	D6,(A0,D1.L)
	BSR	_screenwrite	; HL -> SCREENLOC D6=BYTE
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

FDBT0:	MOVE.B	(A0,D1.L),D7		; BTST 0 IYD
	MOVE.W	D4,CCR
	BTST	#0,D7
	MOVE.W	CCR,D4
	MOVEQ	#$10,D5		; SET H=1,N=0
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

FDBT1:	MOVE.B	(A0,D1.L),D7
	MOVE.W	D4,CCR
	BTST	#1,D7
	MOVE.W	CCR,D4
	MOVEQ	#$10,D5		; SET H=1,N=0
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

FDBT2:	MOVE.B	(A0,D1.L),D7
	MOVE.W	D4,CCR
	BTST	#2,D7
	MOVE.W	CCR,D4
	MOVEQ	#$10,D5		; SET H=1,N=0
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

FDBT3:	MOVE.B	(A0,D1.L),D7
	MOVE.W	D4,CCR
	BTST	#3,D7
	MOVE.W	CCR,D4
	MOVEQ	#$10,D5		; SET H=1,N=0
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

FDBT4:	MOVE.B	(A0,D1.L),D7
	MOVE.W	D4,CCR
	BTST	#4,D7
	MOVE.W	CCR,D4
	MOVEQ	#$10,D5		; SET H=1,N=0
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

FDBT5:	MOVE.B	(A0,D1.L),D7
	MOVE.W	D4,CCR
	BTST	#5,D7
	MOVE.W	CCR,D4
	MOVEQ	#$10,D5		; SET H=1,N=0
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

FDBT6:	MOVE.B	(A0,D1.L),D7
	MOVE.W	D4,CCR
	BTST	#6,D7
	MOVE.W	CCR,D4
	MOVEQ	#$10,D5		; SET H=1,N=0
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

FDBT7:	MOVE.B	(A0,D1.L),D7
	MOVE.W	D4,CCR
	BTST	#7,D7
	MOVE.W	CCR,D4
	MOVEQ	#$10,D5		; SET H=1,N=0
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

FDRS0:	CMPI.W	#$4000,D1	; RES 0 IYD
	BCS.B	.L1
	BCLR	#0,(A0,D1.L)
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF
.L1
	CMPI.W	#$3BFF,D1	
	BHI.B	.L2
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF
.L2
	BCLR	#0,(A0,D1.L)
	MOVE.B	(A0,D1.L),D6	
	BSR	_screenwrite
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

FDRS1:	CMPI.W	#$4000,D1	
	BCS.B	.L1
	BCLR	#1,(A0,D1.L)
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF
.L1
	CMPI.W	#$3BFF,D1	
	BHI.B	.L2
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF
.L2
	BCLR	#1,(A0,D1.L)
	MOVE.B	(A0,D1.L),D6	
	BSR	_screenwrite
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

FDRS2:	CMPI.W	#$4000,D1	
	BCS.B	.L1
	BCLR	#2,(A0,D1.L)
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF
.L1
	CMPI.W	#$3BFF,D1	
	BHI.B	.L2
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF
.L2
	BCLR	#2,(A0,D1.L)
	MOVE.B	(A0,D1.L),D6	
	BSR	_screenwrite
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

FDRS3:	CMPI.W	#$4000,D1	
	BCS.B	.L1
	BCLR	#3,(A0,D1.L)
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF
.L1
	CMPI.W	#$3BFF,D1	
	BHI.B	.L2
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF
.L2
	BCLR	#3,(A0,D1.L)
	MOVE.B	(A0,D1.L),D6	
	BSR	_screenwrite
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

FDRS4:	CMPI.W	#$4000,D1	
	BCS.B	.L1
	BCLR	#4,(A0,D1.L)
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF
.L1
	CMPI.W	#$3BFF,D1	
	BHI.B	.L2
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF
.L2
	BCLR	#4,(A0,D1.L)
	MOVE.B	(A0,D1.L),D6	
	BSR	_screenwrite
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

FDRS5:	CMPI.W	#$4000,D1	
	BCS.B	.L1
	BCLR	#5,(A0,D1.L)
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF
.L1
	CMPI.W	#$3BFF,D1	
	BHI.B	.L2
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF
.L2
	BCLR	#5,(A0,D1.L)
	MOVE.B	(A0,D1.L),D6	
	BSR	_screenwrite
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

FDRS6:	CMPI.W	#$4000,D1	
	BCS.B	.L1
	BCLR	#6,(A0,D1.L)
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF
.L1
	CMPI.W	#$3BFF,D1	
	BHI.B	.L2
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF
.L2
	BCLR	#6,(A0,D1.L)
	MOVE.B	(A0,D1.L),D6	
	BSR	_screenwrite
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

FDRS7:	CMPI.W	#$4000,D1	
	BCS.B	.L1
	BCLR	#7,(A0,D1.L)
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF
.L1
	CMPI.W	#$3BFF,D1	
	BHI.B	.L2
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF
.L2
	BCLR	#7,(A0,D1.L)
	MOVE.B	(A0,D1.L),D6	
	BSR	_screenwrite
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

FDST0:	CMPI.W	#$4000,D1	;	SET 0 IYD (D1 HOLDS IY+D)
	BCS.B	.L1
	BSET	#0,(A0,D1.L)
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF
.L1
	CMPI.W	#$3BFF,D1	
	BHI.B	.L2
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF
.L2
	BSET	#0,(A0,D1.L)
	MOVE.B	(A0,D1.L),D6	
	BSR	_screenwrite
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

FDST1:	CMPI.W	#$4000,D1	;	SET 1 IYD
	BCS.B	.L1
	BSET	#1,(A0,D1.L)
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF
.L1
	CMPI.W	#$3BFF,D1	
	BHI.B	.L2
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF
.L2
	BSET	#1,(A0,D1.L)
	MOVE.B	(A0,D1.L),D6	
	BSR	_screenwrite
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

FDST2:	CMPI.W	#$4000,D1	; SET 2 IYD
	BCS.B	.L1
	BSET	#2,(A0,D1.L)
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF
.L1
	CMPI.W	#$3BFF,D1	
	BHI.B	.L2
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF
.L2
	BSET	#2,(A0,D1.L)
	MOVE.B	(A0,D1.L),D6	
	BSR	_screenwrite
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

FDST3:	CMPI.W	#$4000,D1	; SET 3 IYD 
	BCS.B	.L1
	BSET	#3,(A0,D1.L)
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF
.L1
	CMPI.W	#$3BFF,D1	
	BHI.B	.L2
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF
.L2
	BSET	#3,(A0,D1.L)
	MOVE.B	(A0,D1.L),D6	
	BSR	_screenwrite
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

FDST4:	CMPI.W	#$4000,D1	
	BCS.B	.L1
	BSET	#4,(A0,D1.L)
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF
.L1
	CMPI.W	#$3BFF,D1	
	BHI.B	.L2
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF
.L2
	BSET	#4,(A0,D1.L)
	MOVE.B	(A0,D1.L),D6	
	BSR	_screenwrite
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

FDST5:	CMPI.W	#$4000,D1	
	BCS.B	.L1
	BSET	#5,(A0,D1.L)
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF
.L1
	CMPI.W	#$3BFF,D1	
	BHI.B	.L2
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF
.L2
	BSET	#5,(A0,D1.L)
	MOVE.B	(A0,D1.L),D6	
	BSR	_screenwrite
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

FDST6:	CMPI.W	#$4000,D1	
	BCS.B	.L1
	BSET	#6,(A0,D1.L)
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF
.L1
	CMPI.W	#$3BFF,D1	
	BHI.B	.L2
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF
.L2
	BSET	#6,(A0,D1.L)
	MOVE.B	(A0,D1.L),D6	
	BSR	_screenwrite
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

FDST7:	CMPI.W	#$4000,D1	
	BCS.B	.L1
	BSET	#7,(A0,D1.L)
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF
.L1
	CMPI.W	#$3BFF,D1	
	BHI.B	.L2
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF
.L2
	BSET	#7,(A0,D1.L)
	MOVE.B	(A0,D1.L),D6	
	BSR	_screenwrite
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MFDE1:				; POP IY
	MOVEQ	#0,D7
	MOVE.W	(A4)+,D7
	ROL.W	#8,D7
	MOVE.L	D7,A5
	ADDA.L	A0,A5
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MFDE3:				; EX (SP),IY
	SUBA.L	A0,A5
	MOVE.L	A5,D7
	MOVE.W	(A4),D6
	ROL.W	#8,D6
	MOVE.W	D6,A5
	ADDA.L	A0,A5
	ROL.W	#8,D7
	MOVE.W	D7,(A4)
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MFDE5:				; PUSH IY
	MOVE.L	A5,D6
	SUB.L	A0,D6
	ROL.W	#8,D6
	MOVE.W	D6,-(A4)
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MFDE9:				; JP (IY)
	MOVE.L	A5,A2
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

MFDF9:				; LD SP,IY
	MOVE.L	A5,A4
	MOVE.W	(A2)+,D1
	IF	DEEBUG
	BRA	DEBUG
	ELSE
	JMP	([A3,D1.W*4])
	ENDIF

	SECTION	Z80DATA,DATA

MNTBL:
	DC.L	MAIN80
	DC.L	MAIN81
	DC.L	MAIN82
	DC.L	MAIN83
	DC.L	MAIN84
	DC.L	MAIN85
	DC.L	MAIN86
	DC.L	MAIN87
	DC.L	MAIN88
	DC.L	MAIN89
	DC.L	MAIN8A
	DC.L	MAIN8B
	DC.L	MAIN8C
	DC.L	MAIN8D
	DC.L	MAIN8E
	DC.L	MAIN8F
	DC.L	MAIN90
	DC.L	MAIN91
	DC.L	MAIN92
	DC.L	MAIN93
	DC.L	MAIN94
	DC.L	MAIN95
	DC.L	MAIN96
	DC.L	MAIN97
	DC.L	MAIN98
	DC.L	MAIN99
	DC.L	MAIN9A
	DC.L	MAIN9B
	DC.L	MAIN9C
	DC.L	MAIN9D
	DC.L	MAIN9E
	DC.L	MAIN9F
	DC.L	MAINA0
	DC.L	MAINA1
	DC.L	MAINA2
	DC.L	MAINA3
	DC.L	MAINA4
	DC.L	MAINA5
	DC.L	MAINA6
	DC.L	MAINA7
	DC.L	MAINA8
	DC.L	MAINA9
	DC.L	MAINAA
	DC.L	MAINAB
	DC.L	MAINAC
	DC.L	MAINAD
	DC.L	MAINAE
	DC.L	MAINAF
	DC.L	MAINB0
	DC.L	MAINB1
	DC.L	MAINB2
	DC.L	MAINB3
	DC.L	MAINB4
	DC.L	MAINB5
	DC.L	MAINB6
	DC.L	MAINB7
	DC.L	MAINB8
	DC.L	MAINB9
	DC.L	MAINBA
	DC.L	MAINBB
	DC.L	MAINBC
	DC.L	MAINBD
	DC.L	MAINBE
	DC.L	MAINBF
	DC.L	MAINC0
	DC.L	MAINC1
	DC.L	MAINC2
	DC.L	MAINC3
	DC.L	MAINC4
	DC.L	MAINC5
	DC.L	MAINC6
	DC.L	MAINC7
	DC.L	MAINC8
	DC.L	MAINC9
	DC.L	MAINCA
	DC.L	ILLEGAL
	DC.L	MAINCC
	DC.L	MAINCD
	DC.L	MAINCE
	DC.L	MAINCF
	DC.L	MAIND0
	DC.L	MAIND1
	DC.L	MAIND2
	DC.L	MAIND3
	DC.L	MAIND4
	DC.L	MAIND5
	DC.L	MAIND6
	DC.L	MAIND7
	DC.L	MAIND8
	DC.L	MAIND9
	DC.L	MAINDA
	DC.L	MAINDB
	DC.L	MAINDC
	DC.L	ILLEGAL
	DC.L	MAINDE
	DC.L	MAINDF
	DC.L	MAINE0
	DC.L	MAINE1
	DC.L	MAINE2
	DC.L	MAINE3
	DC.L	MAINE4
	DC.L	MAINE5
	DC.L	MAINE6
	DC.L	MAINE7
	DC.L	MAINE8
	DC.L	MAINE9
	DC.L	MAINEA
	DC.L	MAINEB
	DC.L	MAINEC
	DC.L	ILLEGAL
	DC.L	MAINEE
	DC.L	MAINEF
	DC.L	MAINF0
	DC.L	MAINF1
	DC.L	MAINF2
	DC.L	MAINF3
	DC.L	MAINF4
	DC.L	MAINF5
	DC.L	MAINF6
	DC.L	MAINF7
	DC.L	MAINF8
	DC.L	MAINF9
	DC.L	MAINFA
	DC.L	MAINFB
	DC.L	MAINFC
	DC.L	ILLEGAL
	DC.L	MAINFE
	DC.L	MAINFF
	DC.L	MAIN00
	DC.L	MAIN01
	DC.L	MAIN02
	DC.L	MAIN03
	DC.L	MAIN04
	DC.L	MAIN05
	DC.L	MAIN06
	DC.L	MAIN07
	DC.L	MAIN08
	DC.L	MAIN09
	DC.L	MAIN0A
	DC.L	MAIN0B
	DC.L	MAIN0C
	DC.L	MAIN0D
	DC.L	MAIN0E
	DC.L	MAIN0F
	DC.L	MAIN10
	DC.L	MAIN11
	DC.L	MAIN12
	DC.L	MAIN13
	DC.L	MAIN14
	DC.L	MAIN15
	DC.L	MAIN16
	DC.L	MAIN17
	DC.L	MAIN18
	DC.L	MAIN19
	DC.L	MAIN1A
	DC.L	MAIN1B
	DC.L	MAIN1C
	DC.L	MAIN1D
	DC.L	MAIN1E
	DC.L	MAIN1F
	DC.L	MAIN20
	DC.L	MAIN21
	DC.L	MAIN22
	DC.L	MAIN23
	DC.L	MAIN24
	DC.L	MAIN25
	DC.L	MAIN26
	DC.L	MAIN27
	DC.L	MAIN28
	DC.L	MAIN29
	DC.L	MAIN2A
	DC.L	MAIN2B
	DC.L	MAIN2C
	DC.L	MAIN2D
	DC.L	MAIN2E
	DC.L	MAIN2F
	DC.L	MAIN30
	DC.L	MAIN31
	DC.L	MAIN32
	DC.L	MAIN33
	DC.L	MAIN34
	DC.L	MAIN35
	DC.L	MAIN36
	DC.L	MAIN37
	DC.L	MAIN38
	DC.L	MAIN39
	DC.L	MAIN3A
	DC.L	MAIN3B
	DC.L	MAIN3C
	DC.L	MAIN3D
	DC.L	MAIN3E
	DC.L	MAIN3F
	DC.L	MAIN40
	DC.L	MAIN41
	DC.L	MAIN42
	DC.L	MAIN43
	DC.L	MAIN44
	DC.L	MAIN45
	DC.L	MAIN46
	DC.L	MAIN47
	DC.L	MAIN48
	DC.L	MAIN49
	DC.L	MAIN4A
	DC.L	MAIN4B
	DC.L	MAIN4C
	DC.L	MAIN4D
	DC.L	MAIN4E
	DC.L	MAIN4F
	DC.L	MAIN50
	DC.L	MAIN51
	DC.L	MAIN52
	DC.L	MAIN53
	DC.L	MAIN54
	DC.L	MAIN55
	DC.L	MAIN56
	DC.L	MAIN57
	DC.L	MAIN58
	DC.L	MAIN59
	DC.L	MAIN5A
	DC.L	MAIN5B
	DC.L	MAIN5C
	DC.L	MAIN5D
	DC.L	MAIN5E
	DC.L	MAIN5F
	DC.L	MAIN60
	DC.L	MAIN61
	DC.L	MAIN62
	DC.L	MAIN63
	DC.L	MAIN64
	DC.L	MAIN65
	DC.L	MAIN66
	DC.L	MAIN67
	DC.L	MAIN68
	DC.L	MAIN69
	DC.L	MAIN6A
	DC.L	MAIN6B
	DC.L	MAIN6C
	DC.L	MAIN6D
	DC.L	MAIN6E
	DC.L	MAIN6F
	DC.L	MAIN70
	DC.L	MAIN71
	DC.L	MAIN72
	DC.L	MAIN73
	DC.L	MAIN74
	DC.L	MAIN75
	DC.L	MAIN76
	DC.L	MAIN77
	DC.L	MAIN78
	DC.L	MAIN79
	DC.L	MAIN7A
	DC.L	MAIN7B
	DC.L	MAIN7C
	DC.L	MAIN7D
	DC.L	MAIN7E
	DC.L	MAIN7F

CBTABLE:
	DC.L	MCB00
	DC.L	MCB01
	DC.L	MCB02
	DC.L	MCB03
	DC.L	MCB04
	DC.L	MCB05
	DC.L	MCB06
	DC.L	MCB07
	DC.L	MCB08
	DC.L	MCB09
	DC.L	MCB0A
	DC.L	MCB0B
	DC.L	MCB0C
	DC.L	MCB0D
	DC.L	MCB0E
	DC.L	MCB0F
	DC.L	MCB10
	DC.L	MCB11
	DC.L	MCB12
	DC.L	MCB13
	DC.L	MCB14
	DC.L	MCB15
	DC.L	MCB16
	DC.L	MCB17
	DC.L	MCB18
	DC.L	MCB19
	DC.L	MCB1A
	DC.L	MCB1B
	DC.L	MCB1C
	DC.L	MCB1D
	DC.L	MCB1E
	DC.L	MCB1F
	DC.L	MCB20
	DC.L	MCB21
	DC.L	MCB22
	DC.L	MCB23
	DC.L	MCB24
	DC.L	MCB25
	DC.L	MCB26
	DC.L	MCB27
	DC.L	MCB28
	DC.L	MCB29
	DC.L	MCB2A
	DC.L	MCB2B
	DC.L	MCB2C
	DC.L	MCB2D
	DC.L	MCB2E
	DC.L	MCB2F
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	MCB38
	DC.L	MCB39
	DC.L	MCB3A
	DC.L	MCB3B
	DC.L	MCB3C
	DC.L	MCB3D
	DC.L	MCB3E
	DC.L	MCB3F
	DC.L	MCB40
	DC.L	MCB41
	DC.L	MCB42
	DC.L	MCB43
	DC.L	MCB44
	DC.L	MCB45
	DC.L	MCB46
	DC.L	MCB47
	DC.L	MCB48
	DC.L	MCB49
	DC.L	MCB4A
	DC.L	MCB4B
	DC.L	MCB4C
	DC.L	MCB4D
	DC.L	MCB4E
	DC.L	MCB4F
	DC.L	MCB50
	DC.L	MCB51
	DC.L	MCB52
	DC.L	MCB53
	DC.L	MCB54
	DC.L	MCB55
	DC.L	MCB56
	DC.L	MCB57
	DC.L	MCB58
	DC.L	MCB59
	DC.L	MCB5A
	DC.L	MCB5B
	DC.L	MCB5C
	DC.L	MCB5D
	DC.L	MCB5E
	DC.L	MCB5F
	DC.L	MCB60
	DC.L	MCB61
	DC.L	MCB62
	DC.L	MCB63
	DC.L	MCB64
	DC.L	MCB65
	DC.L	MCB66
	DC.L	MCB67
	DC.L	MCB68
	DC.L	MCB69
	DC.L	MCB6A
	DC.L	MCB6B
	DC.L	MCB6C
	DC.L	MCB6D
	DC.L	MCB6E
	DC.L	MCB6F
	DC.L	MCB70
	DC.L	MCB71
	DC.L	MCB72
	DC.L	MCB73
	DC.L	MCB74
	DC.L	MCB75
	DC.L	MCB76
	DC.L	MCB77
	DC.L	MCB78
	DC.L	MCB79
	DC.L	MCB7A
	DC.L	MCB7B
	DC.L	MCB7C
	DC.L	MCB7D
	DC.L	MCB7E
	DC.L	MCB7F
	DC.L	MCB80
	DC.L	MCB81
	DC.L	MCB82
	DC.L	MCB83
	DC.L	MCB84
	DC.L	MCB85
	DC.L	MCB86
	DC.L	MCB87
	DC.L	MCB88
	DC.L	MCB89
	DC.L	MCB8A
	DC.L	MCB8B
	DC.L	MCB8C
	DC.L	MCB8D
	DC.L	MCB8E
	DC.L	MCB8F
	DC.L	MCB90
	DC.L	MCB91
	DC.L	MCB92
	DC.L	MCB93
	DC.L	MCB94
	DC.L	MCB95
	DC.L	MCB96
	DC.L	MCB97
	DC.L	MCB98
	DC.L	MCB99
	DC.L	MCB9A
	DC.L	MCB9B
	DC.L	MCB9C
	DC.L	MCB9D
	DC.L	MCB9E
	DC.L	MCB9F
	DC.L	MCBA0
	DC.L	MCBA1
	DC.L	MCBA2
	DC.L	MCBA3
	DC.L	MCBA4
	DC.L	MCBA5
	DC.L	MCBA6
	DC.L	MCBA7
	DC.L	MCBA8
	DC.L	MCBA9
	DC.L	MCBAA
	DC.L	MCBAB
	DC.L	MCBAC
	DC.L	MCBAD
	DC.L	MCBAE
	DC.L	MCBAF
	DC.L	MCBB0
	DC.L	MCBB1
	DC.L	MCBB2
	DC.L	MCBB3
	DC.L	MCBB4
	DC.L	MCBB5
	DC.L	MCBB6
	DC.L	MCBB7
	DC.L	MCBB8
	DC.L	MCBB9
	DC.L	MCBBA
	DC.L	MCBBB
	DC.L	MCBBC
	DC.L	MCBBD
	DC.L	MCBBE
	DC.L	MCBBF
	DC.L	MCBC0
	DC.L	MCBC1
	DC.L	MCBC2
	DC.L	MCBC3
	DC.L	MCBC4
	DC.L	MCBC5
	DC.L	MCBC6
	DC.L	MCBC7
	DC.L	MCBC8
	DC.L	MCBC9
	DC.L	MCBCA
	DC.L	MCBCB
	DC.L	MCBCC
	DC.L	MCBCD
	DC.L	MCBCE
	DC.L	MCBCF
	DC.L	MCBD0
	DC.L	MCBD1
	DC.L	MCBD2
	DC.L	MCBD3
	DC.L	MCBD4
	DC.L	MCBD5
	DC.L	MCBD6
	DC.L	MCBD7
	DC.L	MCBD8
	DC.L	MCBD9
	DC.L	MCBDA
	DC.L	MCBDB
	DC.L	MCBDC
	DC.L	MCBDD
	DC.L	MCBDE
	DC.L	MCBDF
	DC.L	MCBE0
	DC.L	MCBE1
	DC.L	MCBE2
	DC.L	MCBE3
	DC.L	MCBE4
	DC.L	MCBE5
	DC.L	MCBE6
	DC.L	MCBE7
	DC.L	MCBE8
	DC.L	MCBE9
	DC.L	MCBEA
	DC.L	MCBEB
	DC.L	MCBEC
	DC.L	MCBED
	DC.L	MCBEE
	DC.L	MCBEF
	DC.L	MCBF0
	DC.L	MCBF1
	DC.L	MCBF2
	DC.L	MCBF3
	DC.L	MCBF4
	DC.L	MCBF5
	DC.L	MCBF6
	DC.L	MCBF7
	DC.L	MCBF8
	DC.L	MCBF9
	DC.L	MCBFA
	DC.L	MCBFB
	DC.L	MCBFC
	DC.L	MCBFD
	DC.L	MCBFE
	DC.L	MCBFF

DDTABLE:
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	MDD09
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	MDD19
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	MDD21
	DC.L	MDD22
	DC.L	MDD23
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	MDD29
	DC.L	MDD2A
	DC.L	MDD2B
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	MDD34
	DC.L	MDD35
	DC.L	MDD36
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	MDD39
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	MDD46
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	MDD4E
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	MDD56
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	MDD5E
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	MDD66
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	MDD6E
	DC.L	ILLEGAL
	DC.L	MDD70
	DC.L	MDD71
	DC.L	MDD72
	DC.L	MDD73
	DC.L	MDD74
	DC.L	MDD75
	DC.L	ILLEGAL
	DC.L	MDD77
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	MDD7E
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	MDD86
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	MDD8E
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	MDD96
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	MDD9E
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	MDDA6
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	MDDAE
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	MDDB6
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	MDDBE
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	MDDCB
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	MDDE1
	DC.L	ILLEGAL
	DC.L	MDDE3
	DC.L	ILLEGAL
	DC.L	MDDE5
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	MDDE9
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	MDDF9
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	ILLEGAL

EDTABLE:
	DC.L	ILLEGAL	;POINT THESE AT CASS INSTRUCTIONS
	DC.L	MED01
	DC.L	MED02
	DC.L	MED03
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	MED40
	DC.L	MED41
	DC.L	MED42
	DC.L	MED43
	DC.L	MED44
	DC.L	MED45
	DC.L	MED46
	DC.L	MED47
	DC.L	MED48
	DC.L	MED49
	DC.L	MED4A
	DC.L	MED4B
	DC.L	ILLEGAL
	DC.L	MED4D
	DC.L	ILLEGAL
	DC.L	MED4F
	DC.L	MED50
	DC.L	MED51
	DC.L	MED52
	DC.L	MED53
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	MED56
	DC.L	MED57
	DC.L	MED58
	DC.L	MED59
	DC.L	MED5A
	DC.L	MED5B
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	MED5E
	DC.L	MED5F
	DC.L	MED60
	DC.L	MED61
	DC.L	MED62
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	MED67
	DC.L	MED68
	DC.L	MED69
	DC.L	MED6A
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	MED6F
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	MED72
	DC.L	MED73
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	MED78
	DC.L	MED79
	DC.L	MED7A
	DC.L	MED7B
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	MEDA0
	DC.L	MEDA1
	DC.L	MEDA2
	DC.L	MEDA3
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	MEDA8
	DC.L	MEDA9
	DC.L	MEDAA
	DC.L	MEDAB
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	MEDB0
	DC.L	MEDB1
	DC.L	MEDB2
	DC.L	MEDB3
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	MEDB8
	DC.L	MEDB9
	DC.L	MEDBA
	DC.L	MEDBB
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	ILLEGAL

FDTABLE:
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	MFD09
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	MFD19
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	MFD21
	DC.L	MFD22
	DC.L	MFD23
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	MFD29
	DC.L	MFD2A
	DC.L	MFD2B
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	MFD34
	DC.L	MFD35
	DC.L	MFD36
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	MFD39
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	MFD46
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	MFD4E
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	MFD56
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	MFD5E
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	MFD66
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	MFD6E
	DC.L	ILLEGAL
	DC.L	MFD70
	DC.L	MFD71
	DC.L	MFD72
	DC.L	MFD73
	DC.L	MFD74
	DC.L	MFD75
	DC.L	ILLEGAL
	DC.L	MFD77
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	MFD7E
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	MFD86
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	MFD8E
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	MFD96
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	MFD9E
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	MFDA6
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	MFDAE
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	MFDB6
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	MFDBE
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	MFDCB
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	MFDE1
	DC.L	ILLEGAL
	DC.L	MFDE3
	DC.L	ILLEGAL
	DC.L	MFDE5
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	MFDE9
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	MFDF9
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	ILLEGAL
	DC.L	ILLEGAL

_JUMPTBL:	DS.L	1

* for parity flag, 1 = even parity, 0 = odd parity. */
* static char parity_table[256] =

PARITY:	DC.B	2, 0, 0, 2, 0, 2, 2, 0, 0, 2, 2, 0, 2, 0, 0, 2
	DC.B	0, 2, 2, 0, 2, 0, 0, 2, 2, 0, 0, 2, 0, 2, 2, 0
	DC.B	0, 2, 2, 0, 2, 0, 0, 2, 2, 0, 0, 2, 0, 2, 2, 0
	DC.B	2, 0, 0, 2, 0, 2, 2, 0, 0, 2, 2, 0, 2, 0, 0, 2
	DC.B	0, 2, 2, 0, 2, 0, 0, 2, 2, 0, 0, 2, 0, 2, 2, 0
	DC.B	2, 0, 0, 2, 0, 2, 2, 0, 0, 2, 2, 0, 2, 0, 0, 2
	DC.B	2, 0, 0, 2, 0, 2, 2, 0, 0, 2, 2, 0, 2, 0, 0, 2
	DC.B	0, 2, 2, 0, 2, 0, 0, 2, 2, 0, 0, 2, 0, 2, 2, 0
	DC.B	0, 2, 2, 0, 2, 0, 0, 2, 2, 0, 0, 2, 0, 2, 2, 0
	DC.B	2, 0, 0, 2, 0, 2, 2, 0, 0, 2, 2, 0, 2, 0, 0, 2
	DC.B	2, 0, 0, 2, 0, 2, 2, 0, 0, 2, 2, 0, 2, 0, 0, 2
	DC.B	0, 2, 2, 0, 2, 0, 0, 2, 2, 0, 0, 2, 0, 2, 2, 0
	DC.B	2, 0, 0, 2, 0, 2, 2, 0, 0, 2, 2, 0, 2, 0, 0, 2
	DC.B	0, 2, 2, 0, 2, 0, 0, 2, 2, 0, 0, 2, 0, 2, 2, 0
	DC.B	0, 2, 2, 0, 2, 0, 0, 2, 2, 0, 0, 2, 0, 2, 2, 0
	DC.B	2, 0, 0, 2, 0, 2, 2, 0, 0, 2, 2, 0, 2, 0, 0, 2

* Z-80 (0-FF) -> 680X0 FLAGS (0-1F) (PARITY+$100)

FALSF:	DC.B	0,$11,  0,$11,  2,$13,  2,$13,  0,$11,  0,$11,  2,$13,  2,$13  
	DC.B	0,$11,  0,$11,  2,$13,  2,$13,  0,$11,  0,$11,  2,$13,  2,$13  
	DC.B	0,$11,  0,$11,  2,$13,  2,$13,  0,$11,  0,$11,  2,$13,  2,$13  
	DC.B	0,$11,  0,$11,  2,$13,  2,$13,  0,$11,  0,$11,  2,$13,  2,$13  
	DC.B	4,$15,  4,$15,  6,$17,  6,$17,  4,$15,  4,$15,  6,$17,  6,$17  
	DC.B	4,$15,  4,$15,  6,$17,  6,$17,  4,$15,  4,$15,  6,$17,  6,$17  
	DC.B	4,$15,  4,$15,  6,$17,  6,$17,  4,$15,  4,$15,  6,$17,  6,$17  
	DC.B	4,$15,  4,$15,  6,$17,  6,$17,  4,$15,  4,$15,  6,$17,  6,$17  
	DC.B	8,$19,  8,$19, $A,$1B, $A,$1B,  8,$19,  8,$19, $A,$1B, $A,$1B  
	DC.B	8,$19,  8,$19, $A,$1B, $A,$1B,  8,$19,  8,$19, $A,$1B, $A,$1B  
	DC.B	8,$19,  8,$19, $A,$1B, $A,$1B,  8,$19,  8,$19, $A,$1B, $A,$1B  
	DC.B	8,$19,  8,$19, $A,$1B, $A,$1B,  8,$19,  8,$19, $A,$1B, $A,$1B  
	DC.B   $C,$1D, $C,$1D, $E,$1F, $E,$1F, $C,$1D, $C,$1D, $E,$1F, $E,$1F  
	DC.B   $C,$1D, $C,$1D, $E,$1F, $E,$1F, $C,$1D, $C,$1D, $E,$1F, $E,$1F  
	DC.B   $C,$1D, $C,$1D, $E,$1F, $E,$1F, $C,$1D, $C,$1D, $E,$1F, $E,$1F  
	DC.B   $C,$1D, $C,$1D, $E,$1F, $E,$1F, $C,$1D, $C,$1D, $E,$1F, $E,$1F  


* 680X0 FLAGS (0-$1F)-> Z-80 FLAG VALUES (PARITY+$200)

REALF:	DC.B	0,  1,  4,  5,$40,$41,$44,$45,$80,$81,$84,$85,$C0,$C1,$C4,$C5
	DC.B	0,  1,  4,  5,$40,$41,$44,$45,$80,$81,$84,$85,$C0,$C1,$C4,$C5

* ADD HALF CARRY FLAG BITS (INCLUDES ADD/SUB FLAG)(PARITY+$220)

ADDHALF:DC.B	$10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
	DC.B	$10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
	DC.B	$10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
	DC.B	$10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
	DC.B	$10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
	DC.B	$10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
	DC.B	$10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
	DC.B	$10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
	DC.B	$10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
	DC.B	$10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
	DC.B	$10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
	DC.B	$10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
	DC.B	$10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
	DC.B	$10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
	DC.B	$10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
	DC.B	$10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0

*SUB HALF CARRY FLAG BITS (INCLUDES ADD/SUB)(PARITY+$320)

SUBHALF:DC.B	2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, $12
	DC.B	2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, $12
	DC.B	2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, $12
	DC.B	2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, $12
	DC.B	2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, $12
	DC.B	2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, $12
	DC.B	2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, $12
	DC.B	2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, $12
	DC.B	2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, $12
	DC.B	2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, $12
	DC.B	2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, $12
	DC.B	2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, $12
	DC.B	2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, $12
	DC.B	2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, $12
	DC.B	2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, $12
	DC.B	2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, $12

FLAGS:	DS.W	1
XFLAGS:	DS.W	1
AFLAGS:	DS.W	1
XAFLAGS:DS.W	1
BC:	DS.W	1
ABC:	DS.W	1
DE:	DS.W	1
ADE:	DS.W	1
HL:	DS.W	1
AHL:	DS.W	1
REGA:	DS.W	1
AREGA:	DS.W	1

