#
# 6280_test_15
#
# test SBC
#

#
# test decimal mode
#

start SBC immed D (0xe9) take 1
set mem 0x2000 = 0xe9
set mem 0x2001 = 0x00
set flags 0x09
set pc 0x2000
set reg a = 0x00
run
check pc 0x2002
check flags 0x0b
check reg a = 0x00
done

start SBC immed D (0xe9) take 2
set mem 0x2000 = 0xe9
set mem 0x2001 = 0x01
set flags 0x09
set pc 0x2000
set reg a = 0x00
run
check pc 0x2002
check flags 0x88
check reg a = 0x99
done

start SBC immed D (0xe9) take 3
set mem 0x2000 = 0xe9
set mem 0x2001 = 0x00
set flags 0x08
set pc 0x2000
set reg a = 0x00
run
check pc 0x2002
check flags 0x88
check reg a = 0x99
done

start SBC immed D (0xe9) take 4
set mem 0x2000 = 0xe9
set mem 0x2001 = 0x00
set flags 0x09
set pc 0x2000
set reg a = 0x09
run
check pc 0x2002
check flags 0x09
check reg a = 0x09
done

start SBC immed D (0xe9) take 5
set mem 0x2000 = 0xe9
set mem 0x2001 = 0x01
set flags 0x09
set pc 0x2000
set reg a = 0x09
run
check pc 0x2002
check flags 0x09
check reg a = 0x08
done

start SBC immed D (0xe9) take 6
set mem 0x2000 = 0xe9
set mem 0x2001 = 0x00
set flags 0x08
set pc 0x2000
set reg a = 0x09
run
check pc 0x2002
check flags 0x09
check reg a = 0x08
done

#
# test binary mode
#

start SBC immed B (0xe9) take 1
set mem 0x2000 = 0xe9
set mem 0x2001 = 0x00
set flags 0x01
set pc 0x2000
set reg a = 0x00
run
check pc 0x2002
check flags 0x03
check reg a = 0x00
done

start SBC immed B (0xe9) take 2
set mem 0x2000 = 0xe9
set mem 0x2001 = 0x01
set flags 0x01
set pc 0x2000
set reg a = 0x00
run
check pc 0x2002
check flags 0x80
check reg a = 0xff
done

start SBC immed B (0xe9) take 3
set mem 0x2000 = 0xe9
set mem 0x2001 = 0x00
set flags 0x00
set pc 0x2000
set reg a = 0x00
run
check pc 0x2002
check flags 0x80
check reg a = 0xff
done

start SBC immed B (0xe9) take 4
set mem 0x2000 = 0xe9
set mem 0x2001 = 0x00
set flags 0x01
set pc 0x2000
set reg a = 0x09
run
check pc 0x2002
check flags 0x01
check reg a = 0x09
done

start SBC immed B (0xe9) take 5
set mem 0x2000 = 0xe9
set mem 0x2001 = 0x01
set flags 0x01
set pc 0x2000
set reg a = 0x09
run
check pc 0x2002
check flags 0x01
check reg a = 0x08
done

start SBC immed B (0xe9) take 6
set mem 0x2000 = 0xe9
set mem 0x2001 = 0x00
set flags 0x00
set pc 0x2000
set reg a = 0x09
run
check pc 0x2002
check flags 0x01
check reg a = 0x08
done

#
# test V-flag calculation
#

start SBC immed V (0xe9) take 1
set mem 0x2000 = 0xe9
set mem 0x2001 = 0x01
set flags 0x01
set pc 0x2000
set reg a = 0x80
run
check pc 0x2002
check flags 0x41
check reg a = 0x7f
done

start SBC immed V (0xe9) take 2
set mem 0x2000 = 0xe9
set mem 0x2001 = 0xff
set flags 0x01
set pc 0x2000
set reg a = 0x7f
run
check pc 0x2002
check flags 0xc0
check reg a = 0x80
done

#
# EOF
#
