summaryrefslogtreecommitdiffstatshomepage
path: root/src/devices/bus
diff options
context:
space:
mode:
author MetalliC <0vetal0@gmail.com>2020-07-17 00:47:47 +0300
committer MetalliC <0vetal0@gmail.com>2020-07-17 00:47:47 +0300
commit8513b87112a2a101ba59cc2ceb2bbdd9520928d0 (patch)
treed8a00c6a23b008cd3cf9a3fc61061dfb70890f2e /src/devices/bus
parent3ccbacd197514a505cc406b055d270ca3c254267 (diff)
bus/spectrum/opus.cpp fix activation logic
Diffstat (limited to 'src/devices/bus')
-rw-r--r--src/devices/bus/spectrum/opus.cpp10
-rw-r--r--src/devices/bus/spectrum/opus.h3
2 files changed, 5 insertions, 8 deletions
diff --git a/src/devices/bus/spectrum/opus.cpp b/src/devices/bus/spectrum/opus.cpp
index 6b50fefeb01..8b1834d950a 100644
--- a/src/devices/bus/spectrum/opus.cpp
+++ b/src/devices/bus/spectrum/opus.cpp
@@ -139,7 +139,6 @@ void spectrum_opus_device::device_start()
save_item(NAME(m_romcs));
save_item(NAME(m_ram));
- save_item(NAME(m_last_pc));
}
//-------------------------------------------------
@@ -149,7 +148,6 @@ void spectrum_opus_device::device_start()
void spectrum_opus_device::device_reset()
{
m_romcs = 0;
- m_last_pc = 0x0000;
}
@@ -162,13 +160,13 @@ READ_LINE_MEMBER(spectrum_opus_device::romcs)
return m_romcs | m_exp->romcs();
}
-void spectrum_opus_device::pre_opcode_fetch(offs_t offset)
+void spectrum_opus_device::post_opcode_fetch(offs_t offset)
{
- m_exp->pre_opcode_fetch(offset);
+ m_exp->post_opcode_fetch(offset);
if (!machine().side_effects_disabled())
{
- switch (m_last_pc)
+ switch (offset)
{
case 0x0008: case 0x0048: case 0x1708:
m_romcs = 1;
@@ -178,7 +176,6 @@ void spectrum_opus_device::pre_opcode_fetch(offs_t offset)
break;
}
}
- m_last_pc = offset;
}
uint8_t spectrum_opus_device::iorq_r(offs_t offset)
@@ -274,6 +271,7 @@ void spectrum_opus_device::pia_out_a(uint8_t data)
void spectrum_opus_device::pia_out_b(uint8_t data)
{
+ m_centronics->write_data0(BIT(data, 0));
m_centronics->write_data1(BIT(data, 1));
m_centronics->write_data2(BIT(data, 2));
m_centronics->write_data3(BIT(data, 3));
diff --git a/src/devices/bus/spectrum/opus.h b/src/devices/bus/spectrum/opus.h
index 43fc404d9b3..674f246bd9d 100644
--- a/src/devices/bus/spectrum/opus.h
+++ b/src/devices/bus/spectrum/opus.h
@@ -42,7 +42,7 @@ protected:
virtual ioport_constructor device_input_ports() const override;
virtual const tiny_rom_entry *device_rom_region() const override;
- virtual void pre_opcode_fetch(offs_t offset) override;
+ virtual void post_opcode_fetch(offs_t offset) override;
virtual uint8_t mreq_r(offs_t offset) override;
virtual void mreq_w(offs_t offset, uint8_t data) override;
virtual uint8_t iorq_r(offs_t offset) override;
@@ -65,7 +65,6 @@ private:
int m_romcs;
uint8_t m_ram[4 * 1024];
- offs_t m_last_pc;
};