;--------------------------------------------------------------------
; CPU Equates
;--------------------------------------------------------------------

SizeOf_ADC_ABS		EQU	ADC_ABSX-ADC_ABS
SizeOf_ADC_ABSX		EQU	ADC_ABSY-ADC_ABSX
SizeOf_ADC_ABSY		EQU	ADC_IMM-ADC_ABSY
SizeOf_ADC_IMM		EQU	ADC_IND-ADC_IMM
SizeOf_ADC_IND		EQU	ADC_INDX-ADC_IND
SizeOf_ADC_INDX		EQU	ADC_INDY-ADC_INDX
SizeOf_ADC_INDY		EQU	ADC_ZP-ADC_INDY
SizeOf_ADC_ZP		EQU	ADC_ZPX-ADC_ZP
SizeOf_ADC_ZPX		EQU	alr_imm-ADC_ZPX
SizeOf_alr_imm		EQU	AND_ABS-alr_imm
SizeOf_AND_ABS		EQU	AND_ABSX-AND_ABS
SizeOf_AND_ABSX		EQU	AND_ABSY-AND_ABSX
SizeOf_AND_ABSY		EQU	AND_IMM-AND_ABSY
SizeOf_AND_IMM		EQU	AND_IND-AND_IMM
SizeOf_AND_IND		EQU	AND_INDX-AND_IND
SizeOf_AND_INDX		EQU	AND_INDY-AND_INDX
SizeOf_AND_INDY		EQU	AND_ZP-AND_INDY
SizeOf_AND_ZP		EQU	AND_ZPX-AND_ZP
SizeOf_AND_ZPX		EQU	arr_imm-AND_ZPX
SizeOf_arr_imm		EQU	ASL_A-arr_imm
SizeOf_ASL_A		EQU	ASL_ABS-ASL_A
SizeOf_ASL_ABS		EQU	ASL_ABSX-ASL_ABS
SizeOf_ASL_ABSX		EQU	ASL_ZP-ASL_ABSX
SizeOf_ASL_ZP		EQU	ASL_ZPX-ASL_ZP
SizeOf_ASL_ZPX		EQU	aso_abs-ASL_ZPX
SizeOf_aso_abs		EQU	aso_absx-aso_abs
SizeOf_aso_absx		EQU	aso_absy-aso_absx
SizeOf_aso_absy		EQU	aso_imm-aso_absy
SizeOf_aso_imm		EQU	aso_indx-aso_imm
SizeOf_aso_indx		EQU	aso_indy-aso_indx
SizeOf_aso_indy		EQU	aso_zp-aso_indy
SizeOf_aso_zp		EQU	aso_zpx-aso_zp
SizeOf_aso_zpx		EQU	axs_abs-aso_zpx
SizeOf_axs_abs		EQU	axs_indx-axs_abs
SizeOf_axs_indx		EQU	axs_zp-axs_indx
SizeOf_axs_zp		EQU	axs_zpy-axs_zp
SizeOf_axs_zpy		EQU	BBR0_ZP-axs_zpy
SizeOf_BBR0_ZP		EQU	BBR1_ZP-BBR0_ZP
SizeOf_BBR1_ZP		EQU	BBR2_ZP-BBR1_ZP
SizeOf_BBR2_ZP		EQU	BBR3_ZP-BBR2_ZP
SizeOf_BBR3_ZP		EQU	BBR4_ZP-BBR3_ZP
SizeOf_BBR4_ZP		EQU	BBR5_ZP-BBR4_ZP
SizeOf_BBR5_ZP		EQU	BBR6_ZP-BBR5_ZP
SizeOf_BBR6_ZP		EQU	BBR7_ZP-BBR6_ZP
SizeOf_BBR7_ZP		EQU	BBS0_ZP-BBR7_ZP
SizeOf_BBS0_ZP		EQU	BBS1_ZP-BBS0_ZP
SizeOf_BBS1_ZP		EQU	BBS2_ZP-BBS1_ZP
SizeOf_BBS2_ZP		EQU	BBS3_ZP-BBS2_ZP
SizeOf_BBS3_ZP		EQU	BBS4_ZP-BBS3_ZP
SizeOf_BBS4_ZP		EQU	BBS5_ZP-BBS4_ZP
SizeOf_BBS5_ZP		EQU	BBS6_ZP-BBS5_ZP
SizeOf_BBS6_ZP		EQU	BBS7_ZP-BBS6_ZP
SizeOf_BBS7_ZP		EQU	BCC-BBS7_ZP
SizeOf_BCC		EQU	BCS-BCC
SizeOf_BCS		EQU	BEQ-BCS
SizeOf_BEQ		EQU	BNE-BEQ
SizeOf_BNE		EQU	BMI-BNE
SizeOf_BMI		EQU	BPL-BMI
SizeOf_BPL		EQU	BRA-BPL
SizeOf_BRA		EQU	BVC-BRA
SizeOf_BVC		EQU	BVS-BVC
SizeOf_BVS		EQU	BIT_ABS-BVS
SizeOf_BIT_ABS		EQU	BIT_ABSX-BIT_ABS
SizeOf_BIT_ABSX		EQU	BIT_IMM-BIT_ABSX
SizeOf_BIT_IMM		EQU	BIT_ZP-BIT_IMM
SizeOf_BIT_ZP		EQU	BIT_ZPX-BIT_ZP
SizeOf_BIT_ZPX		EQU	BRK-BIT_ZPX
SizeOf_BRK		EQU	CLC-BRK
SizeOf_CLC		EQU	CLD-CLC
SizeOf_CLD		EQU	CLI-CLD
SizeOf_CLI		EQU	CLV-CLI
SizeOf_CLV		EQU	CMP_ABS-CLV
SizeOf_CMP_ABS		EQU	CMP_ABSX-CMP_ABS
SizeOf_CMP_ABSX		EQU	CMP_ABSY-CMP_ABSX
SizeOf_CMP_ABSY		EQU	CMP_IMM-CMP_ABSY
SizeOf_CMP_IMM		EQU	CMP_IND-CMP_IMM
SizeOf_CMP_IND		EQU	CMP_INDX-CMP_IND
SizeOf_CMP_INDX		EQU	CMP_INDY-CMP_INDX
SizeOf_CMP_INDY		EQU	CMP_ZP-CMP_INDY
SizeOf_CMP_ZP		EQU	CMP_ZPX-CMP_ZP
SizeOf_CMP_ZPX		EQU	CPX_ABS-CMP_ZPX
SizeOf_CPX_ABS		EQU	CPX_IMM-CPX_ABS
SizeOf_CPX_IMM		EQU	CPX_ZP-CPX_IMM
SizeOf_CPX_ZP		EQU	CPY_ABS-CPX_ZP
SizeOf_CPY_ABS		EQU	CPY_IMM-CPY_ABS
SizeOf_CPY_IMM		EQU	CPY_ZP-CPY_IMM
SizeOf_CPY_ZP		EQU	dcm_abs-CPY_ZP
SizeOf_dcm_abs		EQU	dcm_absx-dcm_abs
SizeOf_dcm_absx		EQU	dcm_absy-dcm_absx
SizeOf_dcm_absy		EQU	dcm_indx-dcm_absy
SizeOf_dcm_indx		EQU	dcm_indy-dcm_indx
SizeOf_dcm_indy		EQU	dcm_zp-dcm_indy
SizeOf_dcm_zp		EQU	dcm_zpx-dcm_zp
SizeOf_dcm_zpx		EQU	DEC_A-dcm_zpx
SizeOf_DEC_A		EQU	DEC_ABS-DEC_A
SizeOf_DEC_ABS		EQU	DEC_ABSX-DEC_ABS
SizeOf_DEC_ABSX		EQU	DEC_ZP-DEC_ABSX
SizeOf_DEC_ZP		EQU	DEC_ZPX-DEC_ZP
SizeOf_DEC_ZPX		EQU	DEX-DEC_ZPX
SizeOf_DEX		EQU	DEY-DEX
SizeOf_DEY		EQU	EOR_ABS-DEY
SizeOf_EOR_ABS		EQU	EOR_ABSX-EOR_ABS
SizeOf_EOR_ABSX		EQU	EOR_ABSY-EOR_ABSX
SizeOf_EOR_ABSY		EQU	EOR_IMM-EOR_ABSY
SizeOf_EOR_IMM		EQU	EOR_IND-EOR_IMM
SizeOf_EOR_IND		EQU	EOR_INDX-EOR_IND
SizeOf_EOR_INDX		EQU	EOR_INDY-EOR_INDX
SizeOf_EOR_INDY		EQU	EOR_ZP-EOR_INDY
SizeOf_EOR_ZP		EQU	EOR_ZPX-EOR_ZP
SizeOf_EOR_ZPX		EQU	ILL-EOR_ZPX
SizeOf_ILL		EQU	INC_A-ILL
SizeOf_INC_A		EQU	INC_ABS-INC_A
SizeOf_INC_ABS		EQU	INC_ABSX-INC_ABS
SizeOf_INC_ABSX		EQU	INC_ZP-INC_ABSX
SizeOf_INC_ZP		EQU	INC_ZPX-INC_ZP
SizeOf_INC_ZPX		EQU	INX-INC_ZPX
SizeOf_INX		EQU	INY-INX
SizeOf_INY		EQU	ins_abs-INY
SizeOf_ins_abs		EQU	ins_absx-ins_abs
SizeOf_ins_absx		EQU	ins_absy-ins_absx
SizeOf_ins_absy		EQU	ins_indx-ins_absy
SizeOf_ins_indx		EQU	ins_indy-ins_indx
SizeOf_ins_indy		EQU	ins_zp-ins_indy
SizeOf_ins_zp		EQU	ins_zpx-ins_zp
SizeOf_ins_zpx		EQU	JMP_ABS-ins_zpx
SizeOf_JMP_ABS		EQU	JMP_IABS-JMP_ABS
SizeOf_JMP_IABS		EQU	JMP_IABSX-JMP_IABS
SizeOf_JMP_IABSX 	EQU	JSR_ABS-JMP_IABSX
SizeOf_JSR_ABS		EQU	lax_abs-JSR_ABS
SizeOf_lax_abs		EQU	lax_absy-lax_abs
SizeOf_lax_absy		EQU	lax_indx-lax_absy
SizeOf_lax_indx		EQU	lax_indy-lax_indx
SizeOf_lax_indy		EQU	lax_zp-lax_indy
SizeOf_lax_zp		EQU	lax_zpx-lax_zp
SizeOf_lax_zpx		EQU	LDA_ABS-lax_zpx
SizeOf_LDA_ABS		EQU	LDA_ABSX-LDA_ABS
SizeOf_LDA_ABSX		EQU	LDA_ABSY-LDA_ABSX
SizeOf_LDA_ABSY		EQU	LDA_IMM-LDA_ABSY
SizeOf_LDA_IMM		EQU	LDA_INDX-LDA_IMM
SizeOf_LDA_INDX		EQU	LDA_INDY-LDA_INDX
SizeOf_LDA_INDY		EQU	LDA_ZP-LDA_INDY
SizeOf_LDA_ZP		EQU	LDA_ZPX-LDA_ZP
SizeOf_LDA_ZPX		EQU	LDX_ABS-LDA_ZPX
SizeOf_LDX_ABS		EQU	LDX_ABSY-LDX_ABS
SizeOf_LDX_ABSY		EQU	LDX_IMM-LDX_ABSY
SizeOf_LDX_IMM		EQU	LDX_ZP-LDX_IMM
SizeOf_LDX_ZP		EQU	LDX_ZPY-LDX_ZP
SizeOf_LDX_ZPY		EQU	LDY_ABS-LDX_ZPY
SizeOf_LDY_ABS		EQU	LDY_ABSX-LDY_ABS
SizeOf_LDY_ABSX		EQU	LDY_IMM-LDY_ABSX
SizeOf_LDY_IMM		EQU	LDY_ZP-LDY_IMM
SizeOf_LDY_ZP		EQU	LDY_ZPX-LDY_ZP
SizeOf_LDY_ZPX		EQU	lse_abs-LDY_ZPX
SizeOf_lse_abs		EQU	lse_absx-lse_abs
SizeOf_lse_absx		EQU	lse_absy-lse_absx
SizeOf_lse_absy		EQU	lse_indx-lse_absy
SizeOf_lse_indx		EQU	lse_indy-lse_indx
SizeOf_lse_indy		EQU	lse_zp-lse_indy
SizeOf_lse_zp		EQU	lse_zpx-lse_zp
SizeOf_lse_zpx		EQU	LSR_A-lse_zpx
SizeOf_LSR_A		EQU	LSR_ABS-LSR_A
SizeOf_LSR_ABS		EQU	LSR_ABSX-LSR_ABS
SizeOf_LSR_ABSX		EQU	LSR_ZP-LSR_ABSX
SizeOf_LSR_ZP		EQU	LSR_ZPX-LSR_ZP
SizeOf_LSR_ZPX		EQU	mka_abs-LSR_ZPX
SizeOf_mka_abs		EQU	mkx_abs-mka_abs
SizeOf_mkx_abs		EQU	NOP-mkx_abs
SizeOf_NOP		EQU	oal_imm-NOP
SizeOf_nop		EQU	SizeOf_NOP
SizeOf_oal_imm		EQU	ORA_ABS-oal_imm
SizeOf_ORA_ABS		EQU	ORA_ABSX-ORA_ABS
SizeOf_ORA_ABSX		EQU	ORA_ABSY-ORA_ABSX
SizeOf_ORA_ABSY		EQU	ORA_IMM-ORA_ABSY
SizeOf_ORA_IMM		EQU	ORA_IND-ORA_IMM
SizeOf_ORA_IND		EQU	ORA_INDX-ORA_IND
SizeOf_ORA_INDX		EQU	ORA_INDY-ORA_INDX
SizeOf_ORA_INDY		EQU	ORA_ZP-ORA_INDY
SizeOf_ORA_ZP		EQU	ORA_ZPX-ORA_ZP
SizeOf_ORA_ZPX		EQU	PHA-ORA_ZPX
SizeOf_PHA		EQU	PHP-PHA
SizeOf_PHP		EQU	PHX-PHP
SizeOf_PHX		EQU	PHY-PHX
SizeOf_PHY		EQU	PLA-PHY
SizeOf_PLA		EQU	PLP-PLA
SizeOf_PLP		EQU	PLX-PLP
SizeOf_PLX		EQU	PLY-PLX
SizeOf_PLY		EQU	rla_abs-PLY
SizeOf_rla_abs		EQU	rla_absx-rla_abs
SizeOf_rla_absx		EQU	rla_absy-rla_absx
SizeOf_rla_absy		EQU	rla_imm-rla_absy
SizeOf_rla_imm		EQU	rla_indx-rla_imm
SizeOf_rla_indx		EQU	rla_indy-rla_indx
SizeOf_rla_indy		EQU	rla_zp-rla_indy
SizeOf_rla_zp		EQU	rla_zpx-rla_zp
SizeOf_rla_zpx		EQU	RMB0_ZP-rla_zpx
SizeOf_RMB0_ZP		EQU	RMB1_ZP-RMB0_ZP
SizeOf_RMB1_ZP		EQU	RMB2_ZP-RMB1_ZP
SizeOf_RMB2_ZP		EQU	RMB3_ZP-RMB2_ZP
SizeOf_RMB3_ZP		EQU	RMB4_ZP-RMB3_ZP
SizeOf_RMB4_ZP		EQU	RMB5_ZP-RMB4_ZP
SizeOf_RMB5_ZP		EQU	RMB6_ZP-RMB5_ZP
SizeOf_RMB6_ZP		EQU	RMB7_ZP-RMB6_ZP
SizeOf_RMB7_ZP		EQU	SMB0_ZP-RMB7_ZP
SizeOf_SMB0_ZP		EQU	SMB1_ZP-SMB0_ZP
SizeOf_SMB1_ZP		EQU	SMB2_ZP-SMB1_ZP
SizeOf_SMB2_ZP		EQU	SMB3_ZP-SMB2_ZP
SizeOf_SMB3_ZP		EQU	SMB4_ZP-SMB3_ZP
SizeOf_SMB4_ZP		EQU	SMB5_ZP-SMB4_ZP
SizeOf_SMB5_ZP		EQU	SMB6_ZP-SMB5_ZP
SizeOf_SMB6_ZP		EQU	SMB7_ZP-SMB6_ZP
SizeOf_SMB7_ZP		EQU	ROL_A-SMB7_ZP
SizeOf_ROL_A		EQU	ROL_ABS-ROL_A
SizeOf_ROL_ABS		EQU	ROL_ABSX-ROL_ABS
SizeOf_ROL_ABSX		EQU	ROL_ZP-ROL_ABSX
SizeOf_ROL_ZP		EQU	ROL_ZPX-ROL_ZP
SizeOf_ROL_ZPX		EQU	ROR_A-ROL_ZPX
SizeOf_ROR_A		EQU	ROR_ABS-ROR_A
SizeOf_ROR_ABS		EQU	ROR_ABSX-ROR_ABS
SizeOf_ROR_ABSX		EQU	ROR_ZP-ROR_ABSX
SizeOf_ROR_ZP		EQU	ROR_ZPX-ROR_ZP
SizeOf_ROR_ZPX		EQU	rra_abs-ROR_ZPX
SizeOf_rra_abs		EQU	rra_absx-rra_abs
SizeOf_rra_absx		EQU	rra_absy-rra_absx
SizeOf_rra_absy		EQU	rra_indx-rra_absy
SizeOf_rra_indx		EQU	rra_indy-rra_indx
SizeOf_rra_indy		EQU	rra_zp-rra_indy
SizeOf_rra_zp		EQU	rra_zpx-rra_zp
SizeOf_rra_zpx		EQU	RTI-rra_zpx
SizeOf_RTI		EQU	RTS-RTI
SizeOf_RTS		EQU	sax_imm-RTS
SizeOf_sax_imm		EQU	SBC_ABS-sax_imm
SizeOf_SBC_ABS		EQU	SBC_ABSX-SBC_ABS
SizeOf_SBC_ABSX		EQU	SBC_ABSY-SBC_ABSX
SizeOf_SBC_ABSY		EQU	SBC_IMM-SBC_ABSY
SizeOf_SBC_IMM		EQU	SBC_IND-SBC_IMM
SizeOf_SBC_IND		EQU	SBC_INDX-SBC_IND
SizeOf_SBC_INDX		EQU	SBC_INDY-SBC_INDX
SizeOf_SBC_INDY		EQU	SBC_ZP-SBC_INDY
SizeOf_SBC_ZP		EQU	SBC_ZPX-SBC_ZP
SizeOf_SBC_ZPX		EQU	SEC-SBC_ZPX
SizeOf_SEC		EQU	SED-SEC
SizeOf_SED		EQU	SEI-SED
SizeOf_SEI		EQU	skb-SEI
SizeOf_skb		EQU	skw-skb
SizeOf_skw		EQU	STA_ABS-skw
SizeOf_STA_ABS		EQU	STA_ABSX-STA_ABS
SizeOf_STA_ABSX		EQU	STA_ABSY-STA_ABSX
SizeOf_STA_ABSY		EQU	STA_IND-STA_ABSY
SizeOf_STA_IND		EQU	STA_INDX-STA_IND
SizeOf_STA_INDX		EQU	STA_INDY-STA_INDX
SizeOf_STA_INDY		EQU	STA_ZP-STA_INDY
SizeOf_STA_ZP		EQU	STA_ZPX-STA_ZP
SizeOf_STA_ZPX		EQU	STX_ABS-STA_ZPX
SizeOf_STX_ABS		EQU	STX_ZP-STX_ABS
SizeOf_STX_ZP		EQU	STX_ZPY-STX_ZP
SizeOf_STX_ZPY		EQU	STY_ABS-STX_ZPY
SizeOf_STY_ABS		EQU	STY_ZP-STY_ABS
SizeOf_STY_ZP		EQU	STY_ZPX-STY_ZP
SizeOf_STY_ZPX		EQU	STZ_ABS-STY_ZPX
SizeOf_STZ_ABS		EQU	STZ_ABSX-STZ_ABS
SizeOf_STZ_ABSX		EQU	STZ_ZP-STZ_ABSX
SizeOf_STZ_ZP		EQU	STZ_ZPX-STZ_ZP
SizeOf_STZ_ZPX		EQU	TAX-STZ_ZPX
SizeOf_TAX		EQU	TAY-TAX
SizeOf_TAY		EQU	TSX-TAY
SizeOf_TSX		EQU	TXA-TSX
SizeOf_TXA		EQU	TXS-TXA
SizeOf_TXS		EQU	TYA-TXS
SizeOf_TYA		EQU	TRB_ABS-TYA
SizeOf_TRB_ABS		EQU	TRB_ZP-TRB_ABS
SizeOf_TRB_ZP		EQU	TSB_ABS-TRB_ZP
SizeOf_TSB_ABS		EQU	TSB_ZP-TSB_ABS
SizeOf_TSB_ZP		EQU	xaa_imm-TSB_ZP
SizeOf_xaa_imm		EQU	CodeEnd_020_1-xaa_imm

;--------------------------------------------------------------------
; NMOS 6502 CPU Table (with rogue instructions)
;--------------------------------------------------------------------
; mnemonics appearing in lower case are nonstandard (not documented)

		cnop	0,4

NMOS_Table	dc.l	BRK,ORA_INDX,ILL,aso_indx	; 0
		dc.l	skb,ORA_ZP,ASL_ZP,aso_zp
		dc.l	PHP,ORA_IMM,ASL_A,aso_imm
		dc.l	skw,ORA_ABS,ASL_ABS,aso_abs
		dc.l	BPL,ORA_INDY,ILL,aso_indy	; 1
		dc.l	skb,ORA_ZPX,ASL_ZPX,aso_zpx
		dc.l	CLC,ORA_ABSY,nop,aso_absy
		dc.l	skw,ORA_ABSX,ASL_ABSX,aso_absx
		dc.l	JSR_ABS,AND_INDX,ILL,rla_indx	; 2
		dc.l	BIT_ZP,AND_ZP,ROL_ZP,rla_zp
		dc.l	PLP,AND_IMM,ROL_A,rla_imm
		dc.l	BIT_ABS,AND_ABS,ROL_ABS,rla_abs
		dc.l	BMI,AND_INDY,ILL,rla_indy	; 3
		dc.l	skb,AND_ZPX,ROL_ZPX,rla_zpx
		dc.l	SEC,AND_ABSY,nop,rla_absy
		dc.l	skw,AND_ABSX,ROL_ABSX,rla_absx
		dc.l	RTI,EOR_INDX,ILL,lse_indx	; 4
		dc.l	skb,EOR_ZP,LSR_ZP,lse_zp
		dc.l	PHA,EOR_IMM,LSR_A,alr_imm
		dc.l	JMP_ABS,EOR_ABS,LSR_ABS,lse_abs
		dc.l	BVC,EOR_INDY,ILL,lse_indy	; 5
		dc.l	skb,EOR_ZPX,LSR_ZPX,lse_zpx
		dc.l	CLI,EOR_ABSY,nop,lse_absy
		dc.l	skw,EOR_ABSX,LSR_ABSX,lse_absx
		dc.l	RTS,ADC_INDX,ILL,rra_indx	; 6
		dc.l	skb,ADC_ZP,ROR_ZP,rra_zp
		dc.l	PLA,ADC_IMM,ROR_A,arr_imm
		dc.l	JMP_IABS,ADC_ABS,ROR_ABS,rra_abs
		dc.l	BVS,ADC_INDY,ILL,rra_indy	; 7
		dc.l	skb,ADC_ZPX,ROR_ZPX,rra_zpx
		dc.l	SEI,ADC_ABSY,nop,rra_absy
		dc.l	skw,ADC_ABSX,ROR_ABSX,rra_absx
		dc.l	skb,STA_INDX,skb,axs_indx	; 8
		dc.l	STY_ZP,STA_ZP,STX_ZP,axs_zp
		dc.l	DEY,ILL,TXA,xaa_imm
		dc.l	STY_ABS,STA_ABS,STX_ABS,axs_abs
		dc.l	BCC,STA_INDY,ILL,ILL		; 9
		dc.l	STY_ZPX,STA_ZPX,STX_ZPY,axs_zpy
		dc.l	TYA,STA_ABSY,TXS,ILL
		dc.l	ILL,STA_ABSX,mkx_abs,mka_abs
		dc.l	LDY_IMM,LDA_INDX,LDX_IMM,lax_indx	; A
		dc.l	LDY_ZP,LDA_ZP,LDX_ZP,lax_zp
		dc.l	TAY,LDA_IMM,TAX,oal_imm
		dc.l	LDY_ABS,LDA_ABS,LDX_ABS,lax_abs
		dc.l	BCS,LDA_INDY,ILL,lax_indy	; B
		dc.l	LDY_ZPX,LDA_ZPX,LDX_ZPY,lax_zpx
		dc.l	CLV,LDA_ABSY,TSX,ILL
		dc.l	LDY_ABSX,LDA_ABSX,LDX_ABSY,lax_absy
		dc.l	CPY_IMM,CMP_INDX,skb,dcm_indx	; C
		dc.l	CPY_ZP,CMP_ZP,DEC_ZP,dcm_zp
		dc.l	INY,CMP_IMM,DEX,sax_imm
		dc.l	CPY_ABS,CMP_ABS,DEC_ABS,dcm_abs
		dc.l	BNE,CMP_INDY,ILL,dcm_indy	; D
		dc.l	skb,CMP_ZPX,DEC_ZPX,dcm_zpx
		dc.l	CLD,CMP_ABSY,nop,dcm_absy
		dc.l	skw,CMP_ABSX,DEC_ABSX,dcm_absx
		dc.l	CPX_IMM,SBC_INDX,skb,ins_indx	; E
		dc.l	CPX_ZP,SBC_ZP,INC_ZP,ins_zp
		dc.l	INX,SBC_IMM,NOP,ILL
		dc.l	CPX_ABS,SBC_ABS,INC_ABS,ins_abs
		dc.l	BEQ,SBC_INDY,ILL,ins_indy	; F
		dc.l	skb,SBC_ZPX,INC_ZPX,ins_zpx
		dc.l	SED,SBC_ABSY,nop,ins_absy
		dc.l	skw,SBC_ABSX,INC_ABSX,ins_absx

;--------------------------------------------------------------------
; CMOS R65C02 CPU Table
;--------------------------------------------------------------------

CMOS_Table	dc.l	BRK,ORA_INDX,NOP,NOP
		dc.l	TSB_ZP,ORA_ZP,ASL_ZP,RMB0_ZP
		dc.l	PHP,ORA_IMM,ASL_A,NOP
		dc.l	TSB_ABS,ORA_ABS,ASL_ABS,BBR0_ZP
		dc.l	BPL,ORA_INDY,ORA_IND,NOP
		dc.l	TRB_ZP,ORA_ZPX,ASL_ZPX,RMB1_ZP
		dc.l	CLC,ORA_ABSY,INC_A,NOP
		dc.l	TRB_ABS,ORA_ABSX,ASL_ABSX,BBR1_ZP
		dc.l	JSR_ABS,AND_INDX,NOP,NOP
		dc.l	BIT_ZP,AND_ZP,ROL_ZP,RMB2_ZP
		dc.l	PLP,AND_IMM,ROL_A,NOP
		dc.l	BIT_ABS,AND_ABS,ROL_ABS,BBR2_ZP
		dc.l	BMI,AND_INDY,AND_IND,NOP
		dc.l	BIT_ZPX,AND_ZPX,ROL_ZPX,RMB3_ZP
		dc.l	SEC,AND_ABSY,DEC_A,NOP
		dc.l	BIT_ABSX,AND_ABSX,ROL_ABSX,BBR3_ZP
		dc.l	RTI,EOR_INDX,NOP,NOP
		dc.l	NOP,EOR_ZP,LSR_ZP,RMB4_ZP
		dc.l	PHA,EOR_IMM,LSR_A,NOP
		dc.l	JMP_ABS,EOR_ABS,LSR_ABS,BBR4_ZP
		dc.l	BVC,EOR_INDY,EOR_IND,NOP
		dc.l	NOP,EOR_ZPX,LSR_ZPX,RMB5_ZP
		dc.l	CLI,EOR_ABSY,PHY,NOP
		dc.l	NOP,EOR_ABSX,LSR_ABSX,BBR5_ZP
		dc.l	RTS,ADC_INDX,NOP,NOP
		dc.l	STZ_ZP,ADC_ZP,ROR_ZP,RMB6_ZP
		dc.l	PLA,ADC_IMM,ROR_A,NOP
		dc.l	JMP_IABS,ADC_ABS,ROR_ABS,BBR6_ZP
		dc.l	BVS,ADC_INDY,ADC_IND,NOP
		dc.l	STZ_ZPX,ADC_ZPX,ROR_ZPX,RMB7_ZP
		dc.l	SEI,ADC_ABSY,PLY,NOP
		dc.l	JMP_IABSX,ADC_ABSX,ROR_ABSX,BBR7_ZP
		dc.l	BRA,STA_INDX,NOP,NOP
		dc.l	STY_ZP,STA_ZP,STX_ZP,SMB0_ZP
		dc.l	DEY,BIT_IMM,TXA,NOP
		dc.l	STY_ABS,STA_ABS,STX_ABS,BBS0_ZP
		dc.l	BCC,STA_INDY,STA_IND,NOP
		dc.l	STY_ZPX,STA_ZPX,STX_ZPY,SMB1_ZP
		dc.l	TYA,STA_ABSY,TXS,NOP
		dc.l	STZ_ABS,STA_ABSX,STZ_ABSX,BBS1_ZP
		dc.l	LDY_IMM,LDA_INDX,LDX_IMM,NOP
		dc.l	LDY_ZP,LDA_ZP,LDX_ZP,SMB2_ZP
		dc.l	TAY,LDA_IMM,TAX,NOP
		dc.l	LDY_ABS,LDA_ABS,LDX_ABS,BBS2_ZP
		dc.l	BCS,LDA_INDY,LDA_IMM,NOP
		dc.l	LDY_ZPX,LDA_ZPX,LDX_ZPY,SMB3_ZP
		dc.l	CLV,LDA_ABSY,TSX,NOP
		dc.l	LDY_ABSX,LDA_ABSX,LDX_ABSY,BBS3_ZP
		dc.l	CPY_IMM,CMP_INDX,NOP,NOP
		dc.l	CPY_ZP,CMP_ZP,DEC_ZP,SMB4_ZP
		dc.l	INY,CMP_IMM,DEX,NOP
		dc.l	CPY_ABS,CMP_ABS,DEC_ABS,BBS4_ZP
		dc.l	BNE,CMP_INDY,CMP_IND,NOP
		dc.l	NOP,CMP_ZPX,DEC_ZPX,SMB5_ZP
		dc.l	CLD,CMP_ABSY,PHX,NOP
		dc.l	NOP,CMP_ABSX,DEC_ABSX,BBS5_ZP
		dc.l	CPX_IMM,SBC_INDX,NOP,NOP
		dc.l	CPX_ZP,SBC_ZP,INC_ZP,SMB6_ZP
		dc.l	INX,SBC_IMM,NOP,NOP
		dc.l	CPX_ABS,SBC_ABS,INC_ABS,BBS6_ZP
		dc.l	BEQ,SBC_INDY,SBC_IND,NOP
		dc.l	NOP,SBC_ZPX,INC_ZPX,SMB7_ZP
		dc.l	SED,SBC_ABSY,PLX,NOP
		dc.l	NOP,SBC_ABSX,INC_ABSX,BBS7_ZP

;--------------------------------------------------------------------

Status1Table
; CCR -> P		 NV_BDIZC	   XNZVCDI
		dc.b	%00100000	; %0000000
		dc.b	%00100100	; %0000001
		dc.b	%00101000	; %0000010
		dc.b	%00101100	; %0000011
		dc.b	%00100000	; %0000100
		dc.b	%00100100	; %0000101
		dc.b	%00101000	; %0000110
		dc.b	%00101100	; %0000111
		dc.b	%01100000	; %0001000
		dc.b	%01100100	; %0001001
		dc.b	%01101000	; %0001010
		dc.b	%01101100	; %0001011
		dc.b	%01100000	; %0001100
		dc.b	%01100100	; %0001101
		dc.b	%01101000	; %0001110
		dc.b	%01101100	; %0001111
		dc.b	%00100010	; %0010000
		dc.b	%00100110	; %0010001
		dc.b	%00101010	; %0010010
		dc.b	%00101110	; %0010011
		dc.b	%00100010	; %0010100
		dc.b	%00100110	; %0010101
		dc.b	%00101010	; %0010110
		dc.b	%00101110	; %0010111
		dc.b	%01100010	; %0011000
		dc.b	%01100110	; %0011001
		dc.b	%01101010	; %0011010
		dc.b	%01101110	; %0011011
		dc.b	%01100010	; %0011100
		dc.b	%01100110	; %0011101
		dc.b	%01101010	; %0011110
		dc.b	%01101110	; %0011111
		dc.b	%10100000	; %0100000
		dc.b	%10100100	; %0100001
		dc.b	%10101000	; %0100010
		dc.b	%10101100	; %0100011
		dc.b	%10100000	; %0100100
		dc.b	%10100100	; %0100101
		dc.b	%10101000	; %0100110
		dc.b	%10101100	; %0100111
		dc.b	%11100000	; %0101000
		dc.b	%11100100	; %0101001
		dc.b	%11101000	; %0101010
		dc.b	%11101100	; %0101011
		dc.b	%11100000	; %0101100
		dc.b	%11100100	; %0101101
		dc.b	%11101000	; %0101110
		dc.b	%11101100	; %0101111
		dc.b	%10100010	; %0110000
		dc.b	%10100110	; %0110001
		dc.b	%10101010	; %0110010
		dc.b	%10101110	; %0110011
		dc.b	%10100010	; %0110100
		dc.b	%10100110	; %0110101
		dc.b	%10101010	; %0110110
		dc.b	%10101110	; %0110111
		dc.b	%11100010	; %0111000
		dc.b	%11100110	; %0111001
		dc.b	%11101010	; %0111010
		dc.b	%11101110	; %0111011
		dc.b	%11100010	; %0111100
		dc.b	%11100110	; %0111101
		dc.b	%11101010	; %0111110
		dc.b	%11101110	; %0111111
		dc.b	%00100001	; %1000000
		dc.b	%00100101	; %1000001
		dc.b	%00101001	; %1000010
		dc.b	%00101101	; %1000011
		dc.b	%00100001	; %1000100
		dc.b	%00100101	; %1000101
		dc.b	%00101001	; %1000110
		dc.b	%00101101	; %1000111
		dc.b	%01100001	; %1001000
		dc.b	%01100101	; %1001001
		dc.b	%01101001	; %1001010
		dc.b	%01101101	; %1001011
		dc.b	%01100001	; %1001100
		dc.b	%01100101	; %1001101
		dc.b	%01101001	; %1001110
		dc.b	%01101101	; %1001111
		dc.b	%00100011	; %1010000
		dc.b	%00100111	; %1010001
		dc.b	%00101011	; %1010010
		dc.b	%00101111	; %1010011
		dc.b	%00100011	; %1010100
		dc.b	%00100111	; %1010101
		dc.b	%00101011	; %1010110
		dc.b	%00101111	; %1010111
		dc.b	%01100011	; %1011000
		dc.b	%01100111	; %1011001
		dc.b	%01101011	; %1011010
		dc.b	%01101111	; %1011011
		dc.b	%01100011	; %1011100
		dc.b	%01100111	; %1011101
		dc.b	%01101011	; %1011110
		dc.b	%01101111	; %1011111
		dc.b	%10100001	; %1100000
		dc.b	%10100101	; %1100001
		dc.b	%10101001	; %1100010
		dc.b	%10101101	; %1100011
		dc.b	%10100001	; %1100100
		dc.b	%10100101	; %1100101
		dc.b	%10101001	; %1100110
		dc.b	%10101101	; %1100111
		dc.b	%11100001	; %1101000
		dc.b	%11100101	; %1101001
		dc.b	%11101001	; %1101010
		dc.b	%11101101	; %1101011
		dc.b	%11100001	; %1101100
		dc.b	%11100101	; %1101101
		dc.b	%11101001	; %1101110
		dc.b	%11101101	; %1101111
		dc.b	%10100011	; %1110000
		dc.b	%10100111	; %1110001
		dc.b	%10101011	; %1110010
		dc.b	%10101111	; %1110011
		dc.b	%10100011	; %1110100
		dc.b	%10100111	; %1110101
		dc.b	%10101011	; %1110110
		dc.b	%10101111	; %1110111
		dc.b	%11100011	; %1111000
		dc.b	%11100111	; %1111001
		dc.b	%11101011	; %1111010
		dc.b	%11101111	; %1111011
		dc.b	%11100011	; %1111100
		dc.b	%11100111	; %1111101
		dc.b	%11101011	; %1111110
		dc.b	%11101111	; %1111111

;--------------------------------------------------------------------

Status2Table
; P -> CCR		 _XNZVCDI	   BDIZCNV
		dc.b	%00000000	; %0000000
		dc.b	%00001000	; %0000001
		dc.b	%00100000	; %0000010
		dc.b	%00101000	; %0000011
		dc.b	%01000100	; %0000100
		dc.b	%01001100	; %0000101
		dc.b	%01100100	; %0000110
		dc.b	%01101100	; %0000111
		dc.b	%00010000	; %0001000
		dc.b	%00011000	; %0001001
		dc.b	%00110000	; %0001010
		dc.b	%00111000	; %0001011
		dc.b	%01010100	; %0001100
		dc.b	%01011100	; %0001101
		dc.b	%01110100	; %0001110
		dc.b	%01111100	; %0001111
		dc.b	%00000001	; %0010000
		dc.b	%00001001	; %0010001
		dc.b	%00100001	; %0010010
		dc.b	%00101001	; %0010011
		dc.b	%01000101	; %0010100
		dc.b	%01001101	; %0010101
		dc.b	%01100101	; %0010110
		dc.b	%01101101	; %0010111
		dc.b	%00010001	; %0011000
		dc.b	%00011001	; %0011001
		dc.b	%00110001	; %0011010
		dc.b	%00111001	; %0011011
		dc.b	%01010101	; %0011100
		dc.b	%01011101	; %0011101
		dc.b	%01110101	; %0011110
		dc.b	%01111101	; %0011111
		dc.b	%00000010	; %0100000
		dc.b	%00001010	; %0100001
		dc.b	%00100010	; %0100010
		dc.b	%00101010	; %0100011
		dc.b	%01000110	; %0100100
		dc.b	%01001110	; %0100101
		dc.b	%01100110	; %0100110
		dc.b	%01101110	; %0100111
		dc.b	%00010010	; %0101000
		dc.b	%00011010	; %0101001
		dc.b	%00110010	; %0101010
		dc.b	%00111010	; %0101011
		dc.b	%01010110	; %0101100
		dc.b	%01011110	; %0101101
		dc.b	%01110110	; %0101110
		dc.b	%01111110	; %0101111
		dc.b	%00000011	; %0110000
		dc.b	%00001011	; %0110001
		dc.b	%00100011	; %0110010
		dc.b	%00101011	; %0110011
		dc.b	%01000111	; %0110100
		dc.b	%01001111	; %0110101
		dc.b	%01100111	; %0110110
		dc.b	%01101111	; %0110111
		dc.b	%00010011	; %0111000
		dc.b	%00011011	; %0111001
		dc.b	%00110011	; %0111010
		dc.b	%00111011	; %0111011
		dc.b	%01010111	; %0111100
		dc.b	%01011111	; %0111101
		dc.b	%01110111	; %0111110
		dc.b	%01111111	; %0111111
		dc.b	%00000000	; %1000000
		dc.b	%00001000	; %1000001
		dc.b	%00100000	; %1000010
		dc.b	%00101000	; %1000011
		dc.b	%01000100	; %1000100
		dc.b	%01001100	; %1000101
		dc.b	%01100100	; %1000110
		dc.b	%01101100	; %1000111
		dc.b	%00010000	; %1001000
		dc.b	%00011000	; %1001001
		dc.b	%00110000	; %1001010
		dc.b	%00111000	; %1001011
		dc.b	%01010100	; %1001100
		dc.b	%01011100	; %1001101
		dc.b	%01110100	; %1001110
		dc.b	%01111100	; %1001111
		dc.b	%00000001	; %1010000
		dc.b	%00001001	; %1010001
		dc.b	%00100001	; %1010010
		dc.b	%00101001	; %1010011
		dc.b	%01000101	; %1010100
		dc.b	%01001101	; %1010101
		dc.b	%01100101	; %1010110
		dc.b	%01101101	; %1010111
		dc.b	%00010001	; %1011000
		dc.b	%00011001	; %1011001
		dc.b	%00110001	; %1011010
		dc.b	%00111001	; %1011011
		dc.b	%01010101	; %1011100
		dc.b	%01011101	; %1011101
		dc.b	%01110101	; %1011110
		dc.b	%01111101	; %1011111
		dc.b	%00000010	; %1100000
		dc.b	%00001010	; %1100001
		dc.b	%00100010	; %1100010
		dc.b	%00101010	; %1100011
		dc.b	%01000110	; %1100100
		dc.b	%01001110	; %1100101
		dc.b	%01100110	; %1100110
		dc.b	%01101110	; %1100111
		dc.b	%00010010	; %1101000
		dc.b	%00011010	; %1101001
		dc.b	%00110010	; %1101010
		dc.b	%00111010	; %1101011
		dc.b	%01010110	; %1101100
		dc.b	%01011110	; %1101101
		dc.b	%01110110	; %1101110
		dc.b	%01111110	; %1101111
		dc.b	%00000011	; %1110000
		dc.b	%00001011	; %1110001
		dc.b	%00100011	; %1110010
		dc.b	%00101011	; %1110011
		dc.b	%01000111	; %1110100
		dc.b	%01001111	; %1110101
		dc.b	%01100111	; %1110110
		dc.b	%01101111	; %1110111
		dc.b	%00010011	; %1111000
		dc.b	%00011011	; %1111001
		dc.b	%00110011	; %1111010
		dc.b	%00111011	; %1111011
		dc.b	%01010111	; %1111100
		dc.b	%01011111	; %1111101
		dc.b	%01110111	; %1111110
		dc.b	%01111111	; %1111111

;--------------------------------------------------------------------

; NMOS Length Table (-X = Terminator)

SizeTable1:	dc.w	-1,SizeOf_BRK		; 0
		dc.w	2,SizeOf_ORA_INDX
		dc.w	-1,SizeOf_ILL
		dc.w	2,SizeOf_aso_indx
		dc.w	2,SizeOf_skb
		dc.w	2,SizeOf_ORA_ZP
		dc.w	2,SizeOf_ASL_ZP
		dc.w	2,SizeOf_aso_zp
		dc.w	1,SizeOf_PHP
		dc.w	2,SizeOf_ORA_IMM
		dc.w	1,SizeOf_ASL_A
		dc.w	2,SizeOf_aso_imm
		dc.w	3,SizeOf_skw
		dc.w	3,SizeOf_ORA_ABS
		dc.w	3,SizeOf_ASL_ABS
		dc.w	3,SizeOf_aso_abs
		dc.w	2,SizeOf_BPL		; 1
		dc.w	2,SizeOf_ORA_INDY
		dc.w	-1,SizeOf_ILL
		dc.w	2,SizeOf_aso_indy
		dc.w	2,SizeOf_skb
		dc.w	2,SizeOf_ORA_ZPX
		dc.w	2,SizeOf_ASL_ZPX
		dc.w	2,SizeOf_aso_zpx
		dc.w	1,SizeOf_CLC
		dc.w	3,SizeOf_ORA_ABSY
		dc.w	1,SizeOf_nop
		dc.w	3,SizeOf_aso_absy
		dc.w	3,SizeOf_skw
		dc.w	3,SizeOf_ORA_ABSX
		dc.w	3,SizeOf_ASL_ABSX
		dc.w	3,SizeOf_aso_absx
		dc.w	-3,SizeOf_JSR_ABS	; 2
		dc.w	2,SizeOf_AND_INDX
		dc.w	-1,SizeOf_ILL
		dc.w	2,SizeOf_rla_indx
		dc.w	2,SizeOf_BIT_ZP
		dc.w	2,SizeOf_AND_ZP
		dc.w	2,SizeOf_ROL_ZP
		dc.w	2,SizeOf_rla_zp
		dc.w	1,SizeOf_PLP
		dc.w	2,SizeOf_AND_IMM
		dc.w	1,SizeOf_ROL_A
		dc.w	2,SizeOf_rla_imm
		dc.w	3,SizeOf_BIT_ABS
		dc.w	3,SizeOf_AND_ABS
		dc.w	3,SizeOf_ROL_ABS
		dc.w	3,SizeOf_rla_abs
		dc.w	2,SizeOf_BMI		; 3
		dc.w	2,SizeOf_AND_INDY
		dc.w	-1,SizeOf_ILL
		dc.w	2,SizeOf_rla_indy
		dc.w	2,SizeOf_skb
		dc.w	2,SizeOf_AND_ZPX
		dc.w	2,SizeOf_ROL_ZPX
		dc.w	2,SizeOf_rla_zpx
		dc.w	1,SizeOf_SEC
		dc.w	3,SizeOf_AND_ABSY
		dc.w	1,SizeOf_nop
		dc.w	3,SizeOf_rla_absy
		dc.w	3,SizeOf_skw
		dc.w	3,SizeOf_AND_ABSX
		dc.w	3,SizeOf_ROL_ABSX
		dc.w	3,SizeOf_rla_absx
		dc.w	-1,SizeOf_RTI		; 4
		dc.w	2,SizeOf_EOR_INDX
		dc.w	-1,SizeOf_ILL
		dc.w	2,SizeOf_lse_indx
		dc.w	2,SizeOf_skb
		dc.w	2,SizeOf_EOR_ZP
		dc.w	2,SizeOf_LSR_ZP
		dc.w	2,SizeOf_lse_zp
		dc.w	1,SizeOf_PHA
		dc.w	2,SizeOf_EOR_IMM
		dc.w	1,SizeOf_LSR_A
		dc.w	2,SizeOf_alr_imm
		dc.w	-3,SizeOf_JMP_ABS
		dc.w	3,SizeOf_EOR_ABS
		dc.w	3,SizeOf_LSR_ABS
		dc.w	3,SizeOf_lse_abs
		dc.w	2,SizeOf_BVC		; 5
		dc.w	2,SizeOf_EOR_INDY
		dc.w	-1,SizeOf_ILL
		dc.w	2,SizeOf_lse_indy
		dc.w	2,SizeOf_skb
		dc.w	2,SizeOf_EOR_ZPX
		dc.w	2,SizeOf_LSR_ZPX
		dc.w	2,SizeOf_lse_zpx
		dc.w	1,SizeOf_CLI
		dc.w	3,SizeOf_EOR_ABSY
		dc.w	1,SizeOf_nop
		dc.w	3,SizeOf_lse_absy
		dc.w	3,SizeOf_skw
		dc.w	3,SizeOf_EOR_ABSX
		dc.w	3,SizeOf_LSR_ABSX
		dc.w	3,SizeOf_lse_absx
		dc.w	-1,SizeOf_RTS		; 6
		dc.w	2,SizeOf_ADC_INDX
		dc.w	-1,SizeOf_ILL
		dc.w	2,SizeOf_rra_indx
		dc.w	2,SizeOf_skb
		dc.w	2,SizeOf_ADC_ZP
		dc.w	2,SizeOf_ROR_ZP
		dc.w	2,SizeOf_rra_zp
		dc.w	1,SizeOf_PLA
		dc.w	2,SizeOf_ADC_IMM
		dc.w	1,SizeOf_ROR_A
		dc.w	2,SizeOf_arr_imm
		dc.w	-3,SizeOf_JMP_IABS
		dc.w	3,SizeOf_ADC_ABS
		dc.w	3,SizeOf_ROR_ABS
		dc.w	3,SizeOf_rra_abs
		dc.w	2,SizeOf_BVS		; 7
		dc.w	2,SizeOf_ADC_INDY
		dc.w	-1,SizeOf_ILL
		dc.w	2,SizeOf_rra_indy
		dc.w	2,SizeOf_skb
		dc.w	2,SizeOf_ADC_ZPX
		dc.w	2,SizeOf_ROR_ZPX
		dc.w	2,SizeOf_rra_zpx
		dc.w	1,SizeOf_SEI
		dc.w	3,SizeOf_ADC_ABSY
		dc.w	1,SizeOf_nop
		dc.w	3,SizeOf_rra_absy
		dc.w	3,SizeOf_skw
		dc.w	3,SizeOf_ADC_ABSX
		dc.w	3,SizeOf_ROR_ABSX
		dc.w	3,SizeOf_rra_absx
		dc.w	2,SizeOf_skb		; 8
		dc.w	2,SizeOf_STA_INDX
		dc.w	2,SizeOf_skb
		dc.w	2,SizeOf_axs_indx
		dc.w	2,SizeOf_STY_ZP
		dc.w	2,SizeOf_STA_ZP
		dc.w	2,SizeOf_STX_ZP
		dc.w	2,SizeOf_axs_zp
		dc.w	1,SizeOf_DEY
		dc.w	-1,SizeOf_ILL
		dc.w	1,SizeOf_TXA
		dc.w	2,SizeOf_xaa_imm
		dc.w	3,SizeOf_STY_ABS
		dc.w	3,SizeOf_STA_ABS
		dc.w	3,SizeOf_STX_ABS
		dc.w	3,SizeOf_axs_abs
		dc.w	2,SizeOf_BCC		; 9
		dc.w	2,SizeOf_STA_INDY
		dc.w	-1,SizeOf_ILL
		dc.w	-1,SizeOf_ILL
		dc.w	2,SizeOf_STY_ZPX
		dc.w	2,SizeOf_STA_ZPX
		dc.w	2,SizeOf_STX_ZPY
		dc.w	2,SizeOf_axs_zpy
		dc.w	1,SizeOf_TYA
		dc.w	3,SizeOf_STA_ABSY
		dc.w	1,SizeOf_TXS
		dc.w	-1,SizeOf_ILL
		dc.w	-1,SizeOf_ILL
		dc.w	3,SizeOf_STA_ABSX
		dc.w	3,SizeOf_mkx_abs
		dc.w	3,SizeOf_mka_abs
		dc.w	2,SizeOf_LDY_IMM	; A
		dc.w	2,SizeOf_LDA_INDX
		dc.w	2,SizeOf_LDX_IMM
		dc.w	2,SizeOf_lax_indx
		dc.w	2,SizeOf_LDY_ZP
		dc.w	2,SizeOf_LDA_ZP
		dc.w	2,SizeOf_LDX_ZP
		dc.w	2,SizeOf_lax_zp
		dc.w	1,SizeOf_TAY
		dc.w	2,SizeOf_LDA_IMM
		dc.w	1,SizeOf_TAX
		dc.w	2,SizeOf_oal_imm
		dc.w	3,SizeOf_LDY_ABS
		dc.w	3,SizeOf_LDA_ABS
		dc.w	3,SizeOf_LDX_ABS
		dc.w	3,SizeOf_lax_abs
		dc.w	2,SizeOf_BCS		; B
		dc.w	2,SizeOf_LDA_INDY
		dc.w	-1,SizeOf_ILL
		dc.w	2,SizeOf_lax_indy
		dc.w	2,SizeOf_LDY_ZPX
		dc.w	2,SizeOf_LDA_ZPX
		dc.w	2,SizeOf_LDX_ZPY
		dc.w	2,SizeOf_lax_zpx
		dc.w	1,SizeOf_CLV
		dc.w	3,SizeOf_LDA_ABSY
		dc.w	1,SizeOf_TSX
		dc.w	-1,SizeOf_ILL
		dc.w	3,SizeOf_LDY_ABSX
		dc.w	3,SizeOf_LDA_ABSX
		dc.w	3,SizeOf_LDX_ABSY
		dc.w	3,SizeOf_lax_absy
		dc.w	2,SizeOf_CPY_IMM	; C
		dc.w	2,SizeOf_CMP_INDX
		dc.w	2,SizeOf_skb
		dc.w	2,SizeOf_dcm_indx
		dc.w	2,SizeOf_CPY_ZP
		dc.w	2,SizeOf_CMP_ZP
		dc.w	2,SizeOf_DEC_ZP
		dc.w	2,SizeOf_dcm_zp
		dc.w	1,SizeOf_INY
		dc.w	2,SizeOf_CMP_IMM
		dc.w	1,SizeOf_DEX
		dc.w	2,SizeOf_sax_imm
		dc.w	3,SizeOf_CPY_ABS
		dc.w	3,SizeOf_CMP_ABS
		dc.w	3,SizeOf_DEC_ABS
		dc.w	3,SizeOf_dcm_abs
		dc.w	2,SizeOf_BNE		; D
		dc.w	2,SizeOf_CMP_INDY
		dc.w	-1,SizeOf_ILL
		dc.w	2,SizeOf_dcm_indy
		dc.w	2,SizeOf_skb
		dc.w	2,SizeOf_CMP_ZPX
		dc.w	2,SizeOf_DEC_ZPX
		dc.w	2,SizeOf_dcm_zpx
		dc.w	1,SizeOf_CLD
		dc.w	3,SizeOf_CMP_ABSY
		dc.w	1,SizeOf_nop
		dc.w	3,SizeOf_dcm_absy
		dc.w	3,SizeOf_skw
		dc.w	3,SizeOf_CMP_ABSX
		dc.w	3,SizeOf_DEC_ABSX
		dc.w	3,SizeOf_dcm_absx
		dc.w	2,SizeOf_CPX_IMM	; E
		dc.w	2,SizeOf_SBC_INDX
		dc.w	2,SizeOf_skb
		dc.w	2,SizeOf_ins_indx
		dc.w	2,SizeOf_CPX_ZP
		dc.w	2,SizeOf_SBC_ZP
		dc.w	2,SizeOf_INC_ZP
		dc.w	2,SizeOf_ins_zp
		dc.w	1,SizeOf_INX
		dc.w	2,SizeOf_SBC_IMM
		dc.w	1,SizeOf_NOP
		dc.w	-1,SizeOf_ILL
		dc.w	3,SizeOf_CPX_ABS
		dc.w	3,SizeOf_SBC_ABS
		dc.w	3,SizeOf_INC_ABS
		dc.w	3,SizeOf_ins_abs
		dc.w	2,SizeOf_BEQ		; F
		dc.w	2,SizeOf_SBC_INDY
		dc.w	-1,SizeOf_ILL
		dc.w	2,SizeOf_ins_indy
		dc.w	2,SizeOf_skb
		dc.w	2,SizeOf_SBC_ZPX
		dc.w	2,SizeOf_INC_ZPX
		dc.w	2,SizeOf_ins_zpx
		dc.w	1,SizeOf_SED
		dc.w	3,SizeOf_SBC_ABSY
		dc.w	1,SizeOf_nop
		dc.w	3,SizeOf_ins_absy
		dc.w	3,SizeOf_skw
		dc.w	3,SizeOf_SBC_ABSX
		dc.w	3,SizeOf_INC_ABSX
		dc.w	3,SizeOf_ins_absx

PatchCode1	dc.l	0,0,0,0,0,0,0,0,0
		dc.l	Patch1_IMM		; ORA_IMM 09
		dc.l	0,0,0
		dc.l	Patch1_ABS		; ORA_ABS 0D
		dc.l	Patch1_ABS		; ASL_ABS 0E
		dc.l	0
		dc.l	Patch1_REL		; BPL_REL 10
		dc.l	0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
		dc.l	Patch1_ABS		; JSR_ABS 20
		dc.l	0,0,0,0,0,0,0,0
		dc.l	Patch1_IMM		; AND_IMM 29
		dc.l	0,0
		dc.l	Patch1_ABS		; BIT_ABS 2C
		dc.l	Patch1_ABS		; AND_ABS 2D
		dc.l	Patch1_ABS		; ROL_ABS 2E
		dc.l	0
		dc.l	Patch1_REL		; BMI_REL 30
		dc.l	0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
		dc.l	Patch1_IMM		; EOR_IMM 49
		dc.l	0,0
		dc.l	Patch1_ABS		; JMP_ABS 4C
		dc.l	Patch1_ABS		; EOR_ABS 4D
		dc.l	Patch1_ABS		; LSR_ABS 4E
		dc.l	0
		dc.l	Patch1_REL		; BVC_REL 50
		dc.l	0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
		dc.l	Patch1_IMM		; ADC_IMM 69
		dc.l	0,0,0
		dc.l	Patch1_ABS		; ADC_ABS 6D
		dc.l	Patch1_ABS		; ROR_ABS 6E
		dc.l	0
		dc.l	Patch1_REL		; BVS_REL 70
		dc.l	0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
		dc.l	Patch1_ZP		; STY_ZP 84
		dc.l	Patch1_ZP		; STA_ZP 85
		dc.l	Patch1_ZP		; STX_ZP 86
		dc.l	0,0,0,0,0
		dc.l	Patch1_ABS		; STY_ABS 8C
		dc.l	Patch1_ABS		; STA_ABS 8D
		dc.l	Patch1_ABS		; STX_ABS 8E
		dc.l	0
		dc.l	Patch1_REL		; BCC_REL 90
		dc.l	Patch2_ZP		; STA_INDY 91
		dc.l	0,0,0,0,0,0,0,0,0,0,0
		dc.l	Patch1_ABS		; STA_ABSX 9D
		dc.l	0,0
		dc.l	Patch1_IMM		; LDY_IMM A0
		dc.l	0
		dc.l	Patch1_IMM		; LDX_IMM A2
		dc.l	0
		dc.l	Patch1_ZP		; LDY_ZP A4
		dc.l	Patch1_ZP		; LDA_ZP A5
		dc.l	Patch1_ZP		; LDX_ZP A6
		dc.l	0,0
		dc.l	Patch1_IMM		; LDA_IMM A9
		dc.l	0,0
		dc.l	Patch1_ABS		; LDY_ABS AC
		dc.l	Patch1_ABS		; LDA_ABS AD
		dc.l	Patch1_ABS		; LDX_ABS AE
		dc.l	0
		dc.l	Patch1_REL		; BCS_REL B0
		dc.l	Patch2_ZP		; LDA_INDY B1
		dc.l	0,0,0,0,0,0,0,0,0,0,0
		dc.l	Patch1_ABS		; LDA_ABSX BD
		dc.l	0,0
		dc.l	Patch1_IMM		; CPY_IMM C0
		dc.l	0,0,0,0
		dc.l	Patch1_ZP		; CMP_ZP C5
		dc.l	Patch1_ZP		; DEC_ZP C6
		dc.l	0,0
		dc.l	Patch1_IMM		; CMP_IMM C9
		dc.l	0,0
		dc.l	Patch1_ABS		; CPY_ABS CC
		dc.l	Patch1_ABS		; CMP_ABS CD
		dc.l	Patch1_ABS		; DEC_ABS CE
		dc.l	0
		dc.l	Patch1_REL		; BNE_REL D0
		dc.l	0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
		dc.l	Patch1_IMM		; CPX_IMM E0
		dc.l	0,0,0,0,0
		dc.l	Patch1_ZP		; INC_ZP E6
		dc.l	0,0
		dc.l	Patch1_IMM		; SBC_IMM E9
		dc.l	0,0
		dc.l	Patch1_ABS		; CPX_ABS EC
		dc.l	Patch1_ABS		; SBC_ABS ED
		dc.l	Patch1_ABS		; INC_ABS EE
		dc.l	0
		dc.l	Patch1_REL		; BEQ_REL F0
		dc.l	0,0,0,0,0,0,0,0,0,0,0,0,0,0,0

;--------------------------------------------------------------------
; Code replacement tables

SizeOf_SimpleCopyA	EQU	BusyLoop1-SimpleCopyA
SizeOf_BusyLoop1	EQU	BusyLoop1B-BusyLoop1
SizeOf_BusyLoop1B	EQU	BusyLoop2-BusyLoop1B
SizeOf_BusyLoop2	EQU	BusyLoop3-BusyLoop2
SizeOf_BusyLoop3	EQU	BusyLoop4-BusyLoop3
SizeOf_BusyLoop4	EQU	BusyLoop5-BusyLoop4
SizeOf_BusyLoop5	EQU	ASLX-BusyLoop5

SizeOf_ASLX		EQU	LSRX-ASLX
SizeOf_LSRX		EQU	ROLX-LSRX
SizeOf_ROLX		EQU	RORX-ROLX
SizeOf_RORX		EQU	CodeEnd_020_2-RORX

Special_Table	dc.l	BusyLoop1,BusyLoop1B,BusyLoop2,BusyLoop3
		dc.l	BusyLoop4,BusyLoop5,0
Special_Check	dc.l	CheckBusy1,CheckBusy1B,CheckBusy2,CheckBusy3
		dc.l	CheckBusy4,CheckBusy5,0
Special_Patch	dc.l	Patch1_Busy,Patch1_Busy,Patch_Null,Patch_Null
		dc.l	Patch_Null,Patch_Null,0
Special_Sizes	dc.w	SizeOf_BusyLoop1,SizeOf_BusyLoop1B,SizeOf_BusyLoop2
		dc.w	SizeOf_BusyLoop3,SizeOf_BusyLoop4,SizeOf_BusyLoop5,0

