summaryrefslogtreecommitdiffstatshomepage
path: root/src/devices
diff options
context:
space:
mode:
author AJR <ajrhacker@users.noreply.github.com>2019-11-09 13:54:02 -0500
committer AJR <ajrhacker@users.noreply.github.com>2019-11-09 13:55:31 -0500
commit0d28b52096e314f264cf37eca0bc33ddf356153b (patch)
tree0c6013993821ab81023a47a784ab1d115acaf09c /src/devices
parent62af304b910efbc6697fef31552151943d4e2de2 (diff)
t11: Minor, somewhat speculative fixes (nw)
- Increase the maximum number of cycles to take interrupt acknowledgment into account - Change do { ... } while to while { ... } because interrupt acknowledgment can devour lots of cycles before this - Remove the probably mistaken recursive call in t11_check_irqs
Diffstat (limited to 'src/devices')
-rw-r--r--src/devices/cpu/t11/t11.cpp7
-rw-r--r--src/devices/cpu/t11/t11.h2
2 files changed, 4 insertions, 5 deletions
diff --git a/src/devices/cpu/t11/t11.cpp b/src/devices/cpu/t11/t11.cpp
index a771b61b241..a4d52ffceb9 100644
--- a/src/devices/cpu/t11/t11.cpp
+++ b/src/devices/cpu/t11/t11.cpp
@@ -221,7 +221,7 @@ void t11_device::t11_check_irqs()
PUSH(PC);
PCD = new_pc;
PSW = new_psw;
- t11_check_irqs();
+ //t11_check_irqs();
/* count cycles and clear the WAIT flag */
m_icount -= 114;
@@ -409,7 +409,7 @@ void t11_device::execute_run()
return;
}
- do
+ while (m_icount > 0)
{
uint16_t op;
@@ -419,8 +419,7 @@ void t11_device::execute_run()
op = ROPCODE();
(this->*s_opcode_table[op >> 3])(op);
-
- } while (m_icount > 0);
+ }
}
std::unique_ptr<util::disasm_interface> t11_device::create_disassembler()
diff --git a/src/devices/cpu/t11/t11.h b/src/devices/cpu/t11/t11.h
index 842a48e53d3..03b73d99267 100644
--- a/src/devices/cpu/t11/t11.h
+++ b/src/devices/cpu/t11/t11.h
@@ -47,7 +47,7 @@ protected:
// device_execute_interface overrides
virtual uint32_t execute_min_cycles() const override { return 12; }
- virtual uint32_t execute_max_cycles() const override { return 110; }
+ virtual uint32_t execute_max_cycles() const override { return 114; }
virtual uint32_t execute_input_lines() const override { return 4; }
virtual void execute_run() override;
virtual void execute_set_input(int inputnum, int state) override;