mirror of
https://github.com/holub/mame
synced 2025-04-23 00:39:36 +03:00
h8: don't save the mode settings, move mac_saturating var to h8s2600 and hook it up
This commit is contained in:
parent
b19c9a27ac
commit
9060f36ae8
@ -48,7 +48,6 @@ h8_device::h8_device(const machine_config &mconfig, device_type type, const char
|
||||
m_mode_a20 = false;
|
||||
m_has_exr = false;
|
||||
m_has_mac = false;
|
||||
m_mac_saturating = false;
|
||||
m_has_trace = false;
|
||||
m_has_hc = true;
|
||||
nvram_enable_backup(false); // disable nvram by default
|
||||
@ -164,10 +163,6 @@ void h8_device::device_start()
|
||||
save_item(NAME(m_TMP2));
|
||||
save_item(NAME(m_TMPR));
|
||||
|
||||
save_item(NAME(m_mode_advanced));
|
||||
save_item(NAME(m_mode_a20));
|
||||
save_item(NAME(m_mac_saturating));
|
||||
|
||||
save_item(NAME(m_inst_state));
|
||||
save_item(NAME(m_inst_substate));
|
||||
save_item(NAME(m_requested_state));
|
||||
|
@ -460,6 +460,7 @@ void h8s2319_device::syscr_w(u8 data)
|
||||
// NMIEG
|
||||
m_intc->set_nmi_edge(BIT(data, 3));
|
||||
|
||||
// INTM0/1
|
||||
m_syscr = data;
|
||||
update_irq_filter();
|
||||
}
|
||||
|
@ -174,6 +174,6 @@ void h8s2320_device::execute_set_input(int inputnum, int state)
|
||||
|
||||
void h8s2320_device::device_start()
|
||||
{
|
||||
h8s2319_device::device_start();
|
||||
h8s2321_device::device_start();
|
||||
m_dma_device = m_dma;
|
||||
}
|
||||
|
@ -5,7 +5,8 @@
|
||||
#include "h8s2600d.h"
|
||||
|
||||
h8s2600_device::h8s2600_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, u32 clock, address_map_constructor map_delegate) :
|
||||
h8s2000_device(mconfig, type, tag, owner, clock, map_delegate)
|
||||
h8s2000_device(mconfig, type, tag, owner, clock, map_delegate),
|
||||
m_mac_saturating(false)
|
||||
{
|
||||
m_has_mac = true;
|
||||
}
|
||||
@ -15,4 +16,16 @@ std::unique_ptr<util::disasm_interface> h8s2600_device::create_disassembler()
|
||||
return std::make_unique<h8s2600_disassembler>();
|
||||
}
|
||||
|
||||
void h8s2600_device::device_start()
|
||||
{
|
||||
h8s2000_device::device_start();
|
||||
save_item(NAME(m_mac_saturating));
|
||||
}
|
||||
|
||||
void h8s2600_device::device_reset()
|
||||
{
|
||||
h8s2000_device::device_reset();
|
||||
m_mac_saturating = false;
|
||||
}
|
||||
|
||||
#include "cpu/h8/h8s2600.hxx"
|
||||
|
@ -24,9 +24,14 @@ protected:
|
||||
|
||||
virtual std::unique_ptr<util::disasm_interface> create_disassembler() override;
|
||||
|
||||
virtual void device_start() override;
|
||||
virtual void device_reset() override;
|
||||
|
||||
virtual void do_exec_full() override;
|
||||
virtual void do_exec_partial() override;
|
||||
|
||||
bool m_mac_saturating;
|
||||
|
||||
#define O(o) void o ## _full(); void o ## _partial()
|
||||
O(clrmac);
|
||||
O(ldmac_r32l_mach); O(ldmac_r32l_macl);
|
||||
|
@ -442,7 +442,15 @@ u8 h8s2655_device::syscr_r()
|
||||
|
||||
void h8s2655_device::syscr_w(u8 data)
|
||||
{
|
||||
logerror("syscr = %02x\n", data);
|
||||
|
||||
// NMIEG
|
||||
m_intc->set_nmi_edge(BIT(data, 3));
|
||||
|
||||
// MACS
|
||||
m_mac_saturating = bool(data & 0x80);
|
||||
|
||||
// INTM0/1
|
||||
m_syscr = data;
|
||||
update_irq_filter();
|
||||
logerror("syscr = %02x\n", data);
|
||||
}
|
||||
|
@ -332,7 +332,7 @@ TIMER_CALLBACK_MEMBER(mb88_cpu_device::serial_timer)
|
||||
{
|
||||
m_SBcount++;
|
||||
|
||||
// if we get too many interrupts with no servicing, disable the timer until somebody does something */
|
||||
// if we get too many interrupts with no servicing, disable the timer until somebody does something
|
||||
if (m_SBcount >= SERIAL_DISABLE_THRESH)
|
||||
m_serial->adjust(attotime::never);
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user