mirror of
https://github.com/holub/mame
synced 2025-06-07 05:13:46 +03:00
calchase.cpp: Don't try to use portr for half the bus width.
This commit is contained in:
parent
422b28c378
commit
fc90db3edb
@ -154,6 +154,7 @@ class calchase_state : public pcat_base_state
|
|||||||
public:
|
public:
|
||||||
calchase_state(const machine_config &mconfig, device_type type, const char *tag)
|
calchase_state(const machine_config &mconfig, device_type type, const char *tag)
|
||||||
: pcat_base_state(mconfig, type, tag)
|
: pcat_base_state(mconfig, type, tag)
|
||||||
|
, m_iocard(*this, "IOCARD%u", 1U)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -167,6 +168,7 @@ protected:
|
|||||||
virtual void machine_reset() override;
|
virtual void machine_reset() override;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
required_ioport_array<5> m_iocard;
|
||||||
std::unique_ptr<uint32_t[]> m_bios_ram;
|
std::unique_ptr<uint32_t[]> m_bios_ram;
|
||||||
std::unique_ptr<uint32_t[]> m_bios_ext_ram;
|
std::unique_ptr<uint32_t[]> m_bios_ext_ram;
|
||||||
std::unique_ptr<uint8_t[]> m_nvram_data;
|
std::unique_ptr<uint8_t[]> m_nvram_data;
|
||||||
@ -178,6 +180,7 @@ private:
|
|||||||
void bios_ram_w(offs_t offset, uint32_t data, uint32_t mem_mask = ~0);
|
void bios_ram_w(offs_t offset, uint32_t data, uint32_t mem_mask = ~0);
|
||||||
uint8_t nvram_r(offs_t offset);
|
uint8_t nvram_r(offs_t offset);
|
||||||
void nvram_w(offs_t offset, uint8_t data);
|
void nvram_w(offs_t offset, uint8_t data);
|
||||||
|
template <unsigned N> uint16_t iocard_r();
|
||||||
uint32_t calchase_idle_skip_r();
|
uint32_t calchase_idle_skip_r();
|
||||||
void calchase_idle_skip_w(offs_t offset, uint32_t data, uint32_t mem_mask = ~0);
|
void calchase_idle_skip_w(offs_t offset, uint32_t data, uint32_t mem_mask = ~0);
|
||||||
|
|
||||||
@ -377,6 +380,12 @@ void calchase_state::nvram_w(offs_t offset, uint8_t data)
|
|||||||
m_nvram_data[offset] = data;
|
m_nvram_data[offset] = data;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
template <unsigned N>
|
||||||
|
uint16_t calchase_state::iocard_r()
|
||||||
|
{
|
||||||
|
return m_iocard[N]->read();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
void calchase_state::calchase_map(address_map &map)
|
void calchase_state::calchase_map(address_map &map)
|
||||||
{
|
{
|
||||||
@ -385,11 +394,11 @@ void calchase_state::calchase_map(address_map &map)
|
|||||||
map(0x000c0000, 0x000c7fff).rom().region("video_bios", 0);
|
map(0x000c0000, 0x000c7fff).rom().region("video_bios", 0);
|
||||||
map(0x000c8000, 0x000cffff).noprw();
|
map(0x000c8000, 0x000cffff).noprw();
|
||||||
//map(0x000d0000, 0x000d0003).ram(); // XYLINX - Sincronus serial communication
|
//map(0x000d0000, 0x000d0003).ram(); // XYLINX - Sincronus serial communication
|
||||||
map(0x000d0004, 0x000d0005).portr("IOCARD1");
|
map(0x000d0004, 0x000d0005).r(FUNC(calchase_state::iocard_r<0>));
|
||||||
map(0x000d000c, 0x000d000d).portr("IOCARD2");
|
map(0x000d000c, 0x000d000d).r(FUNC(calchase_state::iocard_r<1>));
|
||||||
map(0x000d0032, 0x000d0033).portr("IOCARD3");
|
map(0x000d0032, 0x000d0033).r(FUNC(calchase_state::iocard_r<2>));
|
||||||
map(0x000d0030, 0x000d0031).portr("IOCARD4"); // These two controls wheel pot or whatever this game uses ...
|
map(0x000d0030, 0x000d0031).r(FUNC(calchase_state::iocard_r<3>)); // These two controls wheel pot or whatever this game uses ...
|
||||||
map(0x000d0034, 0x000d0035).portr("IOCARD5");
|
map(0x000d0034, 0x000d0035).r(FUNC(calchase_state::iocard_r<4>));
|
||||||
map(0x000d0008, 0x000d000b).nopw(); // ???
|
map(0x000d0008, 0x000d000b).nopw(); // ???
|
||||||
map(0x000d0024, 0x000d0025).w("ldac", FUNC(dac_word_interface::data_w));
|
map(0x000d0024, 0x000d0025).w("ldac", FUNC(dac_word_interface::data_w));
|
||||||
map(0x000d0028, 0x000d0029).w("rdac", FUNC(dac_word_interface::data_w));
|
map(0x000d0028, 0x000d0029).w("rdac", FUNC(dac_word_interface::data_w));
|
||||||
|
Loading…
Reference in New Issue
Block a user