mirror of
https://github.com/holub/mame
synced 2025-04-23 17:00:53 +03:00
6801: tcsr upper 3 bits are read-only (nw)
This commit is contained in:
parent
97879948c2
commit
524439907a
@ -1352,10 +1352,10 @@ uint8_t hd6301x_cpu_device::p7_data_r()
|
||||
|
||||
void hd6301x_cpu_device::p7_data_w(uint8_t data)
|
||||
{
|
||||
LOGPORT("Port 7 Data Register: %02x\n", data);
|
||||
|
||||
data &= 0x1f;
|
||||
|
||||
LOGPORT("Port 7 Data Register: %02x\n", data);
|
||||
|
||||
m_portx_data[2] = data;
|
||||
m_out_portx_func[2](0, m_portx_data[2], 0x1f);
|
||||
}
|
||||
@ -1369,9 +1369,11 @@ uint8_t m6801_cpu_device::tcsr_r()
|
||||
|
||||
void m6801_cpu_device::tcsr_w(uint8_t data)
|
||||
{
|
||||
data &= 0x1f;
|
||||
|
||||
LOGTIMER("Timer Control and Status Register: %02x\n", data);
|
||||
|
||||
m_tcsr = data;
|
||||
m_tcsr = data | (m_tcsr & 0xe0);
|
||||
m_pending_tcsr &= m_tcsr;
|
||||
modified_tcsr();
|
||||
if( !(m_cc & 0x10) )
|
||||
|
@ -91,10 +91,9 @@ protected:
|
||||
uint8_t p4_data_r();
|
||||
void p4_data_w(uint8_t data);
|
||||
|
||||
public: // FIXME: psion.cpp accesses this
|
||||
protected:
|
||||
uint8_t tcsr_r();
|
||||
void tcsr_w(uint8_t data);
|
||||
protected:
|
||||
uint8_t ch_r();
|
||||
uint8_t cl_r();
|
||||
void ch_w(uint8_t data);
|
||||
|
@ -76,19 +76,6 @@ uint8_t psion_state::port2_r()
|
||||
return m_pack1->data_r() | m_pack2->data_r();
|
||||
}
|
||||
|
||||
void psion_state::tcsr_w(uint8_t data)
|
||||
{
|
||||
m_tcsr_value = data;
|
||||
m_maincpu->tcsr_w(data);
|
||||
}
|
||||
|
||||
uint8_t psion_state::tcsr_r()
|
||||
{
|
||||
if (!machine().side_effects_disabled())
|
||||
m_maincpu->tcsr_w(m_tcsr_value);
|
||||
return m_maincpu->tcsr_r();
|
||||
}
|
||||
|
||||
uint8_t psion_state::rcp5c_r()
|
||||
{
|
||||
return (m_maincpu->rcr_r()&0x7f) | (m_stby_pwr<<7);
|
||||
@ -247,7 +234,6 @@ void psion_state::psion_int_reg(address_map &map)
|
||||
{
|
||||
// FIXME: this should all be made internal to the CPU device
|
||||
map(0x0000, 0x001f).m(m_maincpu, FUNC(hd6301x_cpu_device::hd6301x_io));
|
||||
map(0x0008, 0x0008).rw(FUNC(psion_state::tcsr_r), FUNC(psion_state::tcsr_w));
|
||||
map(0x0014, 0x0014).r(FUNC(psion_state::rcp5c_r));
|
||||
}
|
||||
|
||||
@ -496,7 +482,6 @@ void psion_state::machine_start()
|
||||
|
||||
save_item(NAME(m_kb_counter));
|
||||
save_item(NAME(m_enable_nmi));
|
||||
save_item(NAME(m_tcsr_value));
|
||||
save_item(NAME(m_stby_pwr));
|
||||
save_item(NAME(m_pulse));
|
||||
save_item(NAME(m_rom_bank));
|
||||
|
@ -85,8 +85,6 @@ protected:
|
||||
void update_banks();
|
||||
void port2_w(offs_t offset, uint8_t data, uint8_t ddr);
|
||||
uint8_t port2_r();
|
||||
void tcsr_w(uint8_t data);
|
||||
uint8_t tcsr_r();
|
||||
uint8_t rcp5c_r();
|
||||
uint8_t port5_r();
|
||||
void port6_w(uint8_t data);
|
||||
|
Loading…
Reference in New Issue
Block a user