Got to end of test, but fails to successfully end test :-/

This commit is contained in:
2023-09-30 16:14:59 +02:00
parent c8c8297765
commit 6052c9a0c0

View File

@@ -1134,9 +1134,11 @@ class CPU(val mbus: MemBus, var tracer: ITracer = NullTracer()) {
} }
is NonExistentMemoryError -> { is NonExistentMemoryError -> {
cpu_err = cpu_err or CPU_ERR_NXM cpu_err = cpu_err or CPU_ERR_NXM
logger.warn("NXM at {}", error.addr.toOctal())
setTrap(TrapReason.NXM) setTrap(TrapReason.NXM)
} }
is BusTimeoutError -> { is BusTimeoutError -> {
logger.warn("TMO at {}", error.addr.toOctal())
cpu_err = cpu_err or CPU_ERR_UNIBUS_TIMEOUT cpu_err = cpu_err or CPU_ERR_UNIBUS_TIMEOUT
setTrap(TrapReason.NXM) setTrap(TrapReason.NXM)
} }
@@ -1177,7 +1179,7 @@ class CPU(val mbus: MemBus, var tracer: ITracer = NullTracer()) {
fun callVector(vector: UShort) { fun callVector(vector: UShort) {
val old_psw = psw val old_psw = psw
val newPSW = core.getw((vector + 2u).toUShort()) and 0xCFFFu or (cur_mode shl 12).toUShort() val newPSW = core.getSpace(0).getw((vector + 2u).toUShort()) and 0xCFFFu or (cur_mode shl 12).toUShort()
setPSW(newPSW, true) setPSW(newPSW, true)
stack_push(old_psw) stack_push(old_psw)
stack_push(pc) stack_push(pc)
@@ -1225,10 +1227,10 @@ class CPU(val mbus: MemBus, var tracer: ITracer = NullTracer()) {
fun checkSP(addr: UShort): UShort { fun checkSP(addr: UShort): UShort {
if (cur_mode != 0) return addr if (cur_mode != 0) return addr
if (sp < stack_limit + 224u || sp.toInt() and 0xFFFE == 0xFFFE) { if (addr < stack_limit + 224u || addr.toInt() and 0xFFFE == 0xFFFE) {
trapRed() trapRed()
throw EndCycle() throw EndCycle()
} else if (sp < stack_limit + 256u) { } else if (addr < stack_limit + 256u) {
// logger.warn("Stack YLW") // logger.warn("Stack YLW")
// stack limit yellow // stack limit yellow
cpu_err = cpu_err or CPU_ERR_STK_YLW cpu_err = cpu_err or CPU_ERR_STK_YLW