#
# 6280_test_8
#
# test bit test instructions
#

#
# test BIT Imm (0x89)
#

start bit imm (0x89), take 1
set mem 0x2000 = 0x89
set mem 0x2001 = 0x55
set reg a = 0xaa
set flags 0x00
set pc 0x2000
set cycles 2
run
check cycles 0
check pc 0x2002
check flags 0x42
done

start bit imm (0x89), take 2
set mem 0x2000 = 0x89
set mem 0x2001 = 0xaa
set reg a = 0xaa
set flags 0x00
set pc 0x2000
set cycles 2
run
check cycles 0
check pc 0x2002
check flags 0x80
done

#
# test BIT ZPage (0x24)
#

start bit zpage (0x24), take 1
set mem 0x2000 = 0x24
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 0x42
done

#
# test BIT ZPage, X (0x34)
#

start bit zpagex (0x34), take 1
set mem 0x2000 = 0x34
set mem 0x2001 = 0x40
set mem 0x0020 = 0x55
set reg a = 0xaa
set reg x = 0xe0
set flags 0x00
set pc 0x2000
set cycles 4
run
check cycles 0
check pc 0x2002
check flags 0x42
done

#
# test BIT Abs (0x2c)
#

start bit abs (0x2c), take 1
set mem 0x2000 = 0x2c
set mem 0x2001 = 0x40
set mem 0x2002 = 0x55
set mem 0x5540 = 0x55
set reg a = 0xaa
set flags 0x00
set pc 0x2000
set cycles 5
run
check cycles 0
check pc 0x2003
check flags 0x42
done

#
# test BIT Abs, X (0x3c)
#

start bit absx (0x3c), take 1
set mem 0x2000 = 0x3c
set mem 0x2001 = 0x40
set mem 0x2002 = 0x55
set mem 0x5620 = 0x55
set reg a = 0xaa
set reg x = 0xe0
set flags 0x00
set pc 0x2000
set cycles 5
run
check cycles 0
check pc 0x2003
check flags 0x42
done

#
# test TST ZPage (0x83)
#

start tst zpage (0x83), take 1
set mem 0x2000 = 0x83
set mem 0x2001 = 0xaa
set mem 0x2002 = 0x40
set mem 0x0040 = 0x55
set flags 0x00
set pc 0x2000
set cycles 7
run
check cycles 0
check pc 0x2003
check flags 0x42
done

#
# test TST ZPage, X (0xa3)
#

start tst zpagex (0xa3), take 1
set mem 0x2000 = 0xa3
set mem 0x2001 = 0xaa
set mem 0x2002 = 0x40
set mem 0x0020 = 0x55
set reg x = 0xe0
set flags 0x00
set pc 0x2000
set cycles 7
run
check cycles 0
check pc 0x2003
check flags 0x42
done

#
# test TST Abs (0x93)
#

start tst abs (0x93), take 1
set mem 0x2000 = 0x93
set mem 0x2001 = 0xaa
set mem 0x2002 = 0x40
set mem 0x2003 = 0x55
set mem 0x5540 = 0x55
set flags 0x00
set pc 0x2000
set cycles 8
run
check cycles 0
check pc 0x2004
check flags 0x42
done

#
# test TST Abs, X (0xb3)
#

start tst absx (0xb3), take 1
set mem 0x2000 = 0xb3
set mem 0x2001 = 0xaa
set mem 0x2002 = 0x40
set mem 0x2003 = 0x55
set mem 0x5620 = 0x55
set reg x = 0xe0
set flags 0x00
set pc 0x2000
set cycles 8
run
check cycles 0
check pc 0x2004
check flags 0x42
done

#
# test TRB ZPage (0x14)
#

start trb zpage (0x14), take 1
set mem 0x2000 = 0x14
set mem 0x2001 = 0x40
set mem 0x0040 = 0xff
set reg a = 0x55
set flags 0x00
set cycles 6
set pc 0x2000
run
check cycles 0
check pc 0x2002
check flags 0xc0
check mem 0x0040 = 0xaa
done

start trb zpage (0x14), take 2
set mem 0x2000 = 0x14
set mem 0x2001 = 0x40
set mem 0x0040 = 0x55
set reg a = 0xaa
set flags 0x00
set cycles 6
set pc 0x2000
run
check cycles 0
check pc 0x2002
check flags 0x42
check mem 0x0040 = 0x55
done

#
# test TRB Abs (0x1c)
#

start trb abs (0x1c), take 1
set mem 0x2000 = 0x1c
set mem 0x2001 = 0x40
set mem 0x2002 = 0x55
set mem 0x5540 = 0xff
set reg a = 0x55
set flags 0x00
set cycles 7
set pc 0x2000
run
check cycles 0
check pc 0x2003
check flags 0xc0
check mem 0x5540 = 0xaa
done

start trb abs (0x1c), take 2
set mem 0x2000 = 0x1c
set mem 0x2001 = 0x40
set mem 0x2002 = 0x55
set mem 0x5540 = 0x55
set reg a = 0xaa
set flags 0x00
set cycles 7
set pc 0x2000
run
check cycles 0
check pc 0x2003
check flags 0x42
check mem 0x5540 = 0x55
done

#
# test TSB ZPage (0x04)
#

start tsb zpage (0x04), take 1
set mem 0x2000 = 0x04
set mem 0x2001 = 0x40
set mem 0x0040 = 0xaa
set reg a = 0x55
set flags 0x00
set cycles 6
set pc 0x2000
run
check cycles 0
check pc 0x2002
check flags 0x82
check mem 0x0040 = 0xff
done

start tsb zpage (0x04), take 2
set mem 0x2000 = 0x04
set mem 0x2001 = 0x40
set mem 0x0040 = 0x5a
set reg a = 0xaa
set flags 0x00
set cycles 6
set pc 0x2000
run
check cycles 0
check pc 0x2002
check flags 0x40
check mem 0x0040 = 0xfa
done

#
# test TSB Abs (0x0c)
#

start tsb abs (0x0c), take 1
set mem 0x2000 = 0x0c
set mem 0x2001 = 0x40
set mem 0x2002 = 0x55
set mem 0x5540 = 0xaa
set reg a = 0x55
set flags 0x00
set cycles 7
set pc 0x2000
run
check cycles 0
check pc 0x2003
check flags 0x82
check mem 0x5540 = 0xff
done

start tsb abs (0x0c), take 2
set mem 0x2000 = 0x0c
set mem 0x2001 = 0x40
set mem 0x2002 = 0x55
set mem 0x5540 = 0x5a
set reg a = 0xaa
set flags 0x00
set cycles 7
set pc 0x2000
run
check cycles 0
check pc 0x2003
check flags 0x40
check mem 0x5540 = 0xfa
done

#
# EOF
#
