#
# 6280_test_10
#
# test load/store instructions
#

#
# test LDX Imm (0xa2)
#

start ldx imm (0xa2), take 1
set mem 0x2000 = 0xa2
set mem 0x2001 = 0x00
set reg x = 0x42
set flags 0x00
set pc 0x2000
set cycles 2
run
check cycles 0
check pc 0x2002
check reg x = 0x00
check flags 0x02
done

#
# test LDX ZPage (0xa6)
#

start ldx zpage (0xa6), take 1
set mem 0x2000 = 0xa6
set mem 0x2001 = 0x45
set mem 0x0045 = 0xaa
set reg x = 0x42
set flags 0x00
set pc 0x2000
set cycles 4
run
check cycles 0
check pc 0x2002
check reg x = 0xaa
check flags 0x80
done

#
# test LDX ZPage, Y (0xb6)
#

start ldx zpagey (0xb6), take 1
set mem 0x2000 = 0xb6
set mem 0x2001 = 0x45
set mem 0x0040 = 0xaa
set reg y = 0xfb
set reg x = 0x42
set flags 0x00
set pc 0x2000
set cycles 4
run
check cycles 0
check pc 0x2002
check reg x = 0xaa
check flags 0x80
done

#
# test LDX Abs (0xae)
#

start ldx abs (0xae), take 1
set mem 0x2000 = 0xae
set mem 0x2001 = 0x45
set mem 0x2002 = 0x77
set mem 0x7745 = 0xaa
set reg x = 0x42
set flags 0x00
set pc 0x2000
set cycles 5
run
check cycles 0
check pc 0x2003
check reg x = 0xaa
check flags 0x80
done

#
# test LDX Abs, Y (0xbe)
#

start ldx absy (0xbe), take 1
set mem 0x2000 = 0xbe
set mem 0x2001 = 0x45
set mem 0x2002 = 0x77
set mem 0x7840 = 0xaa
set reg y = 0xfb
set reg x = 0x42
set flags 0x00
set pc 0x2000
set cycles 5
run
check cycles 0
check pc 0x2003
check reg x = 0xaa
check flags 0x80
done

#
# test LDY Imm (0xa0)
#

start ldy imm (0xa0), take 1
set mem 0x2000 = 0xa0
set mem 0x2001 = 0x00
set reg y = 0x42
set flags 0x00
set pc 0x2000
set cycles 2
run
check cycles 0
check pc 0x2002
check reg y = 0x00
check flags 0x02
done

#
# test LDY ZPage (0xa4)
#

start ldy zpage (0xa4), take 1
set mem 0x2000 = 0xa4
set mem 0x2001 = 0x45
set mem 0x0045 = 0xaa
set reg y = 0x42
set flags 0x00
set pc 0x2000
set cycles 4
run
check cycles 0
check pc 0x2002
check reg y = 0xaa
check flags 0x80
done

#
# test LDY ZPage, X (0xb4)
#

start ldy zpagex (0xb4), take 1
set mem 0x2000 = 0xb4
set mem 0x2001 = 0x45
set mem 0x0040 = 0xaa
set reg x = 0xfb
set reg y = 0x42
set flags 0x00
set pc 0x2000
set cycles 4
run
check cycles 0
check pc 0x2002
check reg y = 0xaa
check flags 0x80
done

#
# test LDY Abs (0xac)
#

start ldy abs (0xac), take 1
set mem 0x2000 = 0xac
set mem 0x2001 = 0x45
set mem 0x2002 = 0x77
set mem 0x7745 = 0xaa
set reg y = 0x42
set flags 0x00
set pc 0x2000
set cycles 5
run
check cycles 0
check pc 0x2003
check reg y = 0xaa
check flags 0x80
done

#
# test LDY Abs, X (0xbc)
#

start ldy absx (0xbc), take 1
set mem 0x2000 = 0xbc
set mem 0x2001 = 0x45
set mem 0x2002 = 0x77
set mem 0x7840 = 0xaa
set reg x = 0xfb
set reg y = 0x42
set flags 0x00
set pc 0x2000
set cycles 5
run
check cycles 0
check pc 0x2003
check reg y = 0xaa
check flags 0x80
done

#
# test CLA (0x62)
#

start cla (0x62), take 1
set mem 0x2000 = 0x62
set reg a = 0x42
set flags 0xf0
set pc 0x2000
set cycles 2
run
check cycles 0
check pc 0x2001
check reg a = 0x00
check flags 0xf0
done

#
# test CLX (0x82)
#

start clx (0x82), take 1
set mem 0x2000 = 0x82
set reg x = 0x42
set flags 0xf0
set pc 0x2000
set cycles 2
run
check cycles 0
check pc 0x2001
check reg x = 0x00
check flags 0xf0
done

#
# test CLY (0xc2)
#

start cly (0xc2), take 1
set mem 0x2000 = 0xc2
set reg y = 0x42
set flags 0xf0
set pc 0x2000
set cycles 2
run
check cycles 0
check pc 0x2001
check reg y = 0x00
check flags 0xf0
done

#
# test STX ZPage (0x86)
#

start stx zpage (0x86), take 1
set mem 0x2000 = 0x86
set mem 0x2001 = 0x45
set mem 0x0045 = 0xaa
set reg x = 0x42
set flags 0x82
set pc 0x2000
set cycles 4
run
check cycles 0
check pc 0x2002
check mem 0x0045 = 0x42
check flags 0x82
done

#
# test STX ZPage, Y (0x96)
#

start stx zpagey (0x96), take 1
set mem 0x2000 = 0x96
set mem 0x2001 = 0x45
set mem 0x0040 = 0x42
set reg y = 0xfb
set reg x = 0xaa
set flags 0x00
set pc 0x2000
set cycles 4
run
check cycles 0
check pc 0x2002
check mem 0x0040 = 0xaa
check flags 0x00
done

#
# test STX Abs (0x8e)
#

start stx abs (0x8e), take 1
set mem 0x2000 = 0x8e
set mem 0x2001 = 0x45
set mem 0x2002 = 0x77
set mem 0x7745 = 0xaa
set reg x = 0x00
set flags 0x00
set pc 0x2000
set cycles 5
run
check cycles 0
check pc 0x2003
check mem 0x7745 = 0x00
check flags 0x00
done

#
# test STY ZPage (0x84)
#

start sty zpage (0x84), take 1
set mem 0x2000 = 0x84
set mem 0x2001 = 0x45
set mem 0x0045 = 0xaa
set reg y = 0x42
set flags 0x82
set pc 0x2000
set cycles 4
run
check cycles 0
check pc 0x2002
check mem 0x0045 = 0x42
check flags 0x82
done

#
# test STY ZPage, Y (0x94)
#

start sty zpagey (0x94), take 1
set mem 0x2000 = 0x94
set mem 0x2001 = 0x45
set mem 0x0040 = 0x42
set reg x = 0xfb
set reg y = 0xaa
set flags 0x00
set pc 0x2000
set cycles 4
run
check cycles 0
check pc 0x2002
check mem 0x0040 = 0xaa
check flags 0x00
done

#
# test STY Abs (0x8c)
#

start sty abs (0x8c), take 1
set mem 0x2000 = 0x8c
set mem 0x2001 = 0x45
set mem 0x2002 = 0x77
set mem 0x7745 = 0xaa
set reg y = 0x00
set flags 0x00
set pc 0x2000
set cycles 5
run
check cycles 0
check pc 0x2003
check mem 0x7745 = 0x00
check flags 0x00
done

#
# test STZ ZPage (0x64)
#

start stz zpage (0x64), take 1
set mem 0x2000 = 0x64
set mem 0x2001 = 0x55
set mem 0x0055 = 0x4f
set flags 0xaa
set pc 0x2000
set cycles 4
run
check cycles 0
check pc 0x2002
check flags 0xaa
check mem 0x0055 = 0x00
done

#
# test STZ ZPage, X (0x74)
#

start stz zpagex (0x74), take 1
set mem 0x2000 = 0x74
set mem 0x2001 = 0x55
set reg x = 0xf0
set mem 0x0045 = 0x4f
set flags 0x55
set pc 0x2000
set cycles 4
run
check cycles 0
check pc 0x2002
check flags 0x55
check mem 0x0045 = 0x00
done

#
# test STZ Abs (0x9c)
#

start stz abs (0x9c), take 1
set mem 0x2000 = 0x9c
set mem 0x2001 = 0x55
set mem 0x2002 = 0xaa
set mem 0xaa55 = 0x4f
set flags 0xaa
set pc 0x2000
set cycles 5
run
check cycles 0
check pc 0x2003
check flags 0xaa
check mem 0xaa55 = 0x00
done

#
# test STZ Abs, X (0x9e)
#

start stz absx (0x9e), take 1
set mem 0x2000 = 0x9e
set mem 0x2001 = 0x55
set mem 0x2002 = 0xaa
set reg x = 0xf0
set mem 0xab45 = 0x4f
set flags 0x55
set pc 0x2000
set cycles 5
run
check cycles 0
check pc 0x2003
check flags 0x55
check mem 0xab45 = 0x00
done

#
# EOF
#
