#
# 6280_test_2
#
# test "big 8" instruction functionality
#

#
# test AND instruction (0x25)
#

start and zpage (0x25), take 1
set mem 0x2000 = 0x25
set mem 0x2001 = 0x40
set mem 0x0040 = 0x00
set reg a = 0x00
set flags 0x00
set pc 0x2000
set cycles 4
run
check cycles 0
check pc 0x2002
check reg a = 0x00
check flags 0x02
done

start and zpage (0x25), take 2
set mem 0x2000 = 0x25
set mem 0x2001 = 0x40
set mem 0x0040 = 0xaa
set reg a = 0xa5
set flags 0x00
set pc 0x2000
set cycles 4
run
check cycles 0
check pc 0x2002
check reg a = 0xa0
check flags 0x80
done

#
# test ORA instruction (0x05)
#

start ora zpage (0x05), take 1
set mem 0x2000 = 0x05
set mem 0x2001 = 0x40
set mem 0x0040 = 0x00
set reg a = 0x00
set flags 0x00
set pc 0x2000
set cycles 4
run
check cycles 0
check pc 0x2002
check reg a = 0x00
check flags 0x02
done

start ora zpage (0x05), take 2
set mem 0x2000 = 0x05
set mem 0x2001 = 0x40
set mem 0x0040 = 0xaa
set reg a = 0xa5
set flags 0x00
set pc 0x2000
set cycles 4
run
check cycles 0
check pc 0x2002
check reg a = 0xaf
check flags 0x80
done

#
# test LDA instruction (0xa5)
#

start lda zpage (0xa5), take 1
set mem 0x2000 = 0xa5
set mem 0x2001 = 0x40
set mem 0x0040 = 0x55
set reg a = 0x00
set flags 0x00
set pc 0x2000
set cycles 4
run
check cycles 0
check pc 0x2002
check reg a = 0x55
check flags 0x00
done

start lda zpage (0xa5), take 2
set mem 0x2000 = 0xa5
set mem 0x2001 = 0x40
set mem 0x0040 = 0xaa
set reg a = 0x00
set flags 0x00
set pc 0x2000
set cycles 4
run
check cycles 0
check pc 0x2002
check reg a = 0xaa
check flags 0x80
done

#
# test STA instruction (0x85)
#

start sta zpage (0x85), take 1
set mem 0x2000 = 0x85
set mem 0x2001 = 0x40
set mem 0x0040 = 0x00
set reg a = 0x55
set flags 0x00
set pc 0x2000
set cycles 4
run
check cycles 0
check pc 0x2002
check mem 0x0040 = 0x55
check flags 0x00
done

start sta zpage (0x85), take 2
set mem 0x2000 = 0x85
set mem 0x2001 = 0x40
set mem 0x0040 = 0x00
set reg a = 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 EOR instruction (0x45)
#

start eor zpage (0x45), take 1
set mem 0x2000 = 0x45
set mem 0x2001 = 0x40
set mem 0x0040 = 0x5a
set reg a = 0xf0
set flags 0x00
set pc 0x2000
set cycles 4
run
check cycles 0
check pc 0x2002
check reg a = 0xaa
check flags 0x80
done

start eor zpage (0x45), take 2
set mem 0x2000 = 0x45
set mem 0x2001 = 0x40
set mem 0x0040 = 0xaa
set reg a = 0xa5
set flags 0x00
set pc 0x2000
set cycles 4
run
check cycles 0
check pc 0x2002
check reg a = 0x0f
check flags 0x00
done

#
# test CMP instruction (0xc5)
#

start cmp zpage (0xc5), take 1
set mem 0x2000 = 0xc5
set mem 0x2001 = 0x40
set mem 0x0040 = 0x55
set reg a = 0x55
set flags 0x00
set pc 0x2000
set cycles 4
run
check cycles 0
check pc 0x2002
check flags 0x03
done

start cmp zpage (0xc5), take 2
set mem 0x2000 = 0xc5
set mem 0x2001 = 0x40
set mem 0x0040 = 0xaa
set reg a = 0x55
set flags 0x00
set pc 0x2000
set cycles 4
run
check cycles 0
check pc 0x2002
check flags 0x80
done

start cmp zpage (0xc5), take 3
set mem 0x2000 = 0xc5
set mem 0x2001 = 0x40
set mem 0x0040 = 0x55
set reg a = 0xaa
set flags 0x00
set pc 0x2000
set cycles 4
run
check cycles 0
check pc 0x2002
check flags 0x01
done

#
# EOF
#
