	.setw $FFFE, $0030 
	.org $10
aa	.word $1234
bb	.word $4567
cc	.word $7890
dd	.word $0010

	.org $30 
;------------------
;-- immediate loads
;------------------ 
	ldx	#$0100
	ldy	#$0100
	ldd #$1010 
	lds #$2020

	inx 
	iny
	dex
	dey

;-- direct loads
	ldx	aa
	ldy	bb
	ldd cc
	lds aa

	ldx	$11
	ldy	$13
	ldd $10
	lds $12

;-- Extended loads
	ldx	a
	ldy	b
	ldd c
	lds a
;-- Index X loads
	ldx	dd 
	ldy	0,x
	ldd 2,x
	lds 4,x
	ldx	0,x
;-- Index Y loads
	ldy	dd
	ldx	0,y
	ldd 2,y
	lds 4,y
	ldy	0,y

;-----------------
;-- compare tests
;-----------------
z	ldx	#$0100
	ldy	#$0100
	ldd #$1010
	lds #$2020
	
;-- immediate compares
	cpx	#$0100
	cpy	#$0101
	cpd #$1010

;-- direct compares
	ldx	#$1234
	ldy	#$4567
	ldd #$7890

	cpx	aa
	cpy	bb
	cpd cc

	cpx	$10		; 1
	cpx	$11		; 0
	cpy	$12		; 1
	cpy	$13		; 0
	cpd $14		; 1 
	cpd $15		; 0

;-- extended compares
	ldx	#$5533
	ldy	#$3377
	ldd #$5533

	cpx	a		; 1
	cpx	b		; 0
	cpy	b		; 1
	cpy	a		; 0
	cpd a		; 1
	cpd b		; 0

;-- indexed compares
	ldx dd
	ldy dd
	ldd dd
	cpx 0,x		; 0
	cpx 6,x		; 1
	cpy 0,x		; 0
	cpy 6,x		; 1
	cpd 0,x		; 0
	cpd 6,x		; 1

	cpx 0,y		; 0
	cpx 6,y		; 1
	cpy 0,y		; 0
	cpy 6,y		; 1
	cpd 0,y		; 0
	cpd 6,y		; 1

;-- exchanges --
	ldx aa
	ldy bb
	ldd cc
	xgdx
	xgdy

;-- mathematics --
	ldaa #20
	ldab #25
	mul
	ldx #$100
	ldy #$200
	abx
	aby
	lsrd
	asld
	ldx #$10
	ldd #$412
	idiv
	ldx #$10
	ldd #$412
	fdiv

;-- stack transfers --
	lds #$0F
	pshx
	pshy
	pulx
	puly

	tsy
	ldy #$2001
	tys

;--  ADDD ---
	ldd  #$2040
	addd #$1010	;- IMM
	addd $0016	;- DIR 
	addd dd		;- DIR
	ldd  #$2040
	addd a		;- EXT	
	ldd  #$2040
	ldx  #$0010
	ldy  #$0010
	addd 6,x	; IDX X
	addd 6,y	; IDX Y
	
;-- store X ---
	stx $0
	stx aa		; dir
	stx b		; ext
	ldx dd
	stx 1,x
	ldy dd
	stx 2,y

;-- store Y  -- 
	ldy #$1234
	sty #0
	sty dd		; dir
	sty b		; ext
	ldx dd
	sty 0,x
	ldy dd
	sty 2,y 
 
;-- store D -- 
	ldy #$0020
	sty #$0016

	std dd		; dir
	std b		; ext
	ldx #$0020
	std 0,x 
	ldy #$0020
	std 2,y

;-- General Tests --
	.setw $02, $1122
	.setw $04, $3355
	ldaa #$44
	ldab #$66
	staa #$0
	stab #$1

	ldx	$00 
	ldy	$03

	ldx	#$00
	adda 0,x

	ldy	#$01
	addb 2,y

	ldx	#$00
	ldx	0,x 

	ldy	#$01
	ldx	2,y

	ldx	#$00
	ldy	0,x

	ldy	#$01
	ldy	2,y

	ldx	a
	ldy	b

	ldaa #$12
	ldab #$34
	
	ldab	#2
	abx
	aby

	ldx	#$00
	ldy	#$01

	clr	0,x
	clr	0,y

	dec	0,x
	dec	0,y

	inc	0,x
	inc	0,y

	ldaa	3,x
	ldaa	3,y

	ldab	3,x
	ldab	3,y

	.org $1000
a	.byte	$55
b	.byte	$33
	.byte	$77
c	.byte	0,1,2,3,4,5
