#
# 6280_test_14
#
# test call/return instructions
#

#
# test JMP Absolute (0x4c)
#

start jmp abs (0x4c), take 1
set mem 0x2000 = 0x4c
set mem 0x2001 = 0x27
set mem 0x2002 = 0x45
set pc 0x2000
set cycles 4
run
check cycles 0
check pc 0x4527
done

#
# test JMP (Indirect) (0x6c)
#

start jmp ind (0x6c), take 1
set mem 0x2000 = 0x6c
set mem 0x2001 = 0xff
set mem 0x2002 = 0x77
set mem 0x77ff = 0x27
set mem 0x7800 = 0x45
set pc 0x2000
set cycles 7
run
check cycles 0
check pc 0x4527
done

#
# test JMP (Indirect, X) (0x7c)
#

start jmp indx (0x7c), take 1
set mem 0x2000 = 0x7c
set mem 0x2001 = 0xff
set mem 0x2002 = 0x77
set mem 0x78fe = 0x27
set mem 0x78ff = 0x45
set reg x = 0xff
set pc 0x2000
set cycles 7
run
check cycles 0
check pc 0x4527
done

#
# test JSR (0x20)
#

start jsr (0x20), take 1
set mem 0x2000 = 0x20
set mem 0x2001 = 0x27
set mem 0x2002 = 0x45
set reg s = 0xff
set mem 0x01ff = 0x00
set mem 0x01fe = 0x00
set pc 0x2000
set cycles 7
run
check cycles 0
check pc 0x4527
check reg s = 0xfd
check mem 0x01ff = 0x20
check mem 0x01fe = 0x02
done

#
# test BSR (0x44)
#

start bsr (0x44), take 1
set mem 0x2000 = 0x44
set mem 0x2001 = 0x80
set reg s = 0xff
set mem 0x01ff = 0x00
set mem 0x01fe = 0x00
set pc 0x2000
set cycles 8
run
check cycles 0
check pc 0x1f82
check reg s = 0xfd
check mem 0x01ff = 0x20
check mem 0x01fe = 0x01
done

#
# test RTS (0x60)
#

start rts (0x60), take 1
set mem 0x2000 = 0x60
set mem 0x01ff = 0x4f
set mem 0x01fe = 0x21
set reg s = 0xfd
set pc 0x2000
set cycles 7
run
check cycles 0
check pc 0x4f22
check reg s = 0xff
done

#
# test RTI (0x40)
#

start rti (0x40), take 1
set mem 0x2000 = 0x40
set mem 0x01ff = 0x4f
set mem 0x01fe = 0x21
set mem 0x01fd = 0x55
set reg s = 0xfc
set flags 0x00
set pc 0x2000
set cycles 7
run
check cycles 0
check pc 0x4f21
check reg s = 0xff
check flags 0x55
done

#
# test BRK (0x00)
#

start brk (0x00), take 1
set mem 0x2000 = 0x00
set mem 0xfff6 = 0x67
set mem 0xfff7 = 0xe0
set mem 0x01ff = 0x00
set mem 0x01fe = 0x00
set mem 0x01fd = 0x00
set reg s = 0xff
set flags 0x40
set pc 0x2000
set cycles 8
run
check cycles 0
check pc 0xe067
check reg s = 0xfc
check mem 0x01ff = 0x20
check mem 0x01fe = 0x02
check mem 0x01fd = 0x50
check flags 0x44
done

#
# EOF
#
