summaryrefslogtreecommitdiffstatshomepage
path: root/src/mame/drivers/isbc.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/mame/drivers/isbc.cpp')
-rw-r--r--src/mame/drivers/isbc.cpp59
1 files changed, 31 insertions, 28 deletions
diff --git a/src/mame/drivers/isbc.cpp b/src/mame/drivers/isbc.cpp
index fd2111aa35c..c84c0dafbe6 100644
--- a/src/mame/drivers/isbc.cpp
+++ b/src/mame/drivers/isbc.cpp
@@ -37,31 +37,19 @@ class isbc_state : public driver_device
{
public:
isbc_state(const machine_config &mconfig, device_type type, const char *tag)
- : driver_device(mconfig, type, tag),
- m_maincpu(*this, "maincpu"),
- m_uart8251(*this, "uart8251"),
- m_uart8274(*this, "uart8274"),
- m_pic_0(*this, "pic_0"),
- m_pic_1(*this, "pic_1"),
- m_centronics(*this, "centronics"),
- m_cent_status_in(*this, "cent_status_in"),
- m_statuslatch(*this, "statuslatch"),
- m_bios(*this, "user1"),
- m_biosram(*this, "biosram")
- {
- }
-
- required_device<cpu_device> m_maincpu;
- optional_device<i8251_device> m_uart8251;
-// optional_device<i8274_device> m_uart8274;
- optional_device<i8274_new_device> m_uart8274;
- required_device<pic8259_device> m_pic_0;
- optional_device<pic8259_device> m_pic_1;
- optional_device<centronics_device> m_centronics;
- optional_device<input_buffer_device> m_cent_status_in;
- optional_device<ls259_device> m_statuslatch;
- optional_memory_region m_bios;
- optional_shared_ptr<u16> m_biosram;
+ : driver_device(mconfig, type, tag)
+ , m_maincpu(*this, "maincpu")
+ , m_uart8251(*this, "uart8251")
+ , m_uart8274(*this, "uart8274")
+ , m_pic_0(*this, "pic_0")
+ , m_pic_1(*this, "pic_1")
+ , m_centronics(*this, "centronics")
+ , m_cent_status_in(*this, "cent_status_in")
+ , m_statuslatch(*this, "statuslatch")
+ , m_bios(*this, "user1")
+ , m_biosram(*this, "biosram")
+ , m_led(*this, "led%u", 0U)
+ { }
DECLARE_WRITE_LINE_MEMBER(write_centronics_ack);
@@ -99,7 +87,22 @@ public:
void rpc86_io(address_map &map);
void rpc86_mem(address_map &map);
protected:
- void machine_reset() override;
+ virtual void machine_start() override { m_led.resolve(); }
+ virtual void machine_reset() override;
+
+ required_device<cpu_device> m_maincpu;
+ optional_device<i8251_device> m_uart8251;
+// optional_device<i8274_device> m_uart8274;
+ optional_device<i8274_new_device> m_uart8274;
+ required_device<pic8259_device> m_pic_0;
+ optional_device<pic8259_device> m_pic_1;
+ optional_device<centronics_device> m_centronics;
+ optional_device<input_buffer_device> m_cent_status_in;
+ optional_device<ls259_device> m_statuslatch;
+ optional_memory_region m_bios;
+ optional_shared_ptr<u16> m_biosram;
+ output_finder<2> m_led;
+
private:
bool m_upperen;
offs_t m_megabyte_page;
@@ -337,12 +340,12 @@ WRITE_LINE_MEMBER(isbc_state::bus_intr_out2_w)
WRITE_LINE_MEMBER(isbc_state::led_ds1_w)
{
- machine().output().set_led_value(0, !state);
+ m_led[0] = state ? 0 : 1;
}
WRITE_LINE_MEMBER(isbc_state::led_ds3_w)
{
- machine().output().set_led_value(1, !state);
+ m_led[1] = state ? 0 : 1;
}
WRITE_LINE_MEMBER(isbc_state::megabyte_select_w)