From 20f49a2f4e99225a49d0db97704183c16ce48814 Mon Sep 17 00:00:00 2001 From: AJR Date: Wed, 2 May 2018 00:05:32 -0400 Subject: [PATCH] Rename machine/latch.* to machine/output_latch.* (nw) - Use device_resolve_objects to resolve callbacks in output_latch_device (nw) Note that this renaming is not just for human convenience; genie seems to get confused by modifications to a header called latch.h and decides to recompile everything involving gen_latch.h as well. --- scripts/src/machine.lua | 14 ++++++++++++-- scripts/target/mame/arcade.lua | 1 + scripts/target/mame/mess.lua | 1 + src/devices/bus/adam/ide.h | 2 +- src/devices/bus/cbmiec/c1541.h | 2 +- src/devices/bus/centronics/ctronics.h | 2 +- src/devices/bus/econet/e01.h | 2 +- src/devices/bus/scsi/scsi.h | 2 +- .../machine/{latch.cpp => output_latch.cpp} | 18 +++++++----------- .../machine/{latch.h => output_latch.h} | 3 +-- src/mame/drivers/zorba.cpp | 2 +- src/mame/includes/pc9801.h | 2 +- 12 files changed, 29 insertions(+), 22 deletions(-) rename src/devices/machine/{latch.cpp => output_latch.cpp} (77%) rename src/devices/machine/{latch.h => output_latch.h} (97%) diff --git a/scripts/src/machine.lua b/scripts/src/machine.lua index 7b52ddf58f3..4452a27d0df 100644 --- a/scripts/src/machine.lua +++ b/scripts/src/machine.lua @@ -21,8 +21,6 @@ files { MAME_DIR .. "src/devices/machine/keyboard.ipp", MAME_DIR .. "src/devices/machine/laserdsc.cpp", MAME_DIR .. "src/devices/machine/laserdsc.h", - MAME_DIR .. "src/devices/machine/latch.cpp", - MAME_DIR .. "src/devices/machine/latch.h", MAME_DIR .. "src/devices/machine/nvram.cpp", MAME_DIR .. "src/devices/machine/nvram.h", MAME_DIR .. "src/devices/machine/ram.cpp", @@ -3506,3 +3504,15 @@ if (MACHINES["GEN_FIFO"]~=null) then MAME_DIR .. "src/devices/machine/gen_fifo.h", } end + +--------------------------------------------------- +-- +--@src/devices/machine/output_latch.h,MACHINES["OUTPUT_LATCH"] = true +--------------------------------------------------- + +if (MACHINES["OUTPUT_LATCH"]~=null) then + files { + MAME_DIR .. "src/devices/machine/output_latch.cpp", + MAME_DIR .. "src/devices/machine/output_latch.h", + } +end diff --git a/scripts/target/mame/arcade.lua b/scripts/target/mame/arcade.lua index bc732383546..7337cd81adb 100644 --- a/scripts/target/mame/arcade.lua +++ b/scripts/target/mame/arcade.lua @@ -522,6 +522,7 @@ MACHINES["NETLIST"] = true MACHINES["NMC9306"] = true --MACHINES["NSC810"] = true MACHINES["NSCSI"] = true +MACHINES["OUTPUT_LATCH"] = true MACHINES["PC_FDC"] = true MACHINES["PC_LPT"] = true --MACHINES["PCCARD"] = true diff --git a/scripts/target/mame/mess.lua b/scripts/target/mame/mess.lua index 659e8519830..6c01dc9d4c0 100644 --- a/scripts/target/mame/mess.lua +++ b/scripts/target/mame/mess.lua @@ -514,6 +514,7 @@ MACHINES["NMC9306"] = true MACHINES["NSC810"] = true MACHINES["NSCSI"] = true MACHINES["OMTI5100"] = true +MACHINES["OUTPUT_LATCH"] = true MACHINES["PC_FDC"] = true MACHINES["PC_LPT"] = true MACHINES["PCCARD"] = true diff --git a/src/devices/bus/adam/ide.h b/src/devices/bus/adam/ide.h index 8c525c5bc51..992b66aee3d 100644 --- a/src/devices/bus/adam/ide.h +++ b/src/devices/bus/adam/ide.h @@ -13,7 +13,7 @@ #include "exp.h" #include "machine/ataintf.h" -#include "machine/latch.h" +#include "machine/output_latch.h" diff --git a/src/devices/bus/cbmiec/c1541.h b/src/devices/bus/cbmiec/c1541.h index f9706441c4f..488ee4e438b 100644 --- a/src/devices/bus/cbmiec/c1541.h +++ b/src/devices/bus/cbmiec/c1541.h @@ -17,7 +17,7 @@ #include "machine/64h156.h" #include "machine/6522via.h" #include "machine/6821pia.h" -#include "machine/latch.h" +#include "machine/output_latch.h" diff --git a/src/devices/bus/centronics/ctronics.h b/src/devices/bus/centronics/ctronics.h index 5d8a24d5793..1c92f34fe39 100644 --- a/src/devices/bus/centronics/ctronics.h +++ b/src/devices/bus/centronics/ctronics.h @@ -11,7 +11,7 @@ #pragma once #include "machine/buffer.h" -#include "machine/latch.h" +#include "machine/output_latch.h" #define MCFG_CENTRONICS_ADD(_tag, _slot_intf, _def_slot) \ diff --git a/src/devices/bus/econet/e01.h b/src/devices/bus/econet/e01.h index e5b2b512570..883664da288 100644 --- a/src/devices/bus/econet/e01.h +++ b/src/devices/bus/econet/e01.h @@ -17,7 +17,7 @@ #include "cpu/m6502/m65c02.h" #include "machine/6522via.h" #include "machine/buffer.h" -#include "machine/latch.h" +#include "machine/output_latch.h" #include "machine/mc146818.h" #include "machine/mc6854.h" #include "machine/ram.h" diff --git a/src/devices/bus/scsi/scsi.h b/src/devices/bus/scsi/scsi.h index a70ce111c8d..5ed0f8ab019 100644 --- a/src/devices/bus/scsi/scsi.h +++ b/src/devices/bus/scsi/scsi.h @@ -7,7 +7,7 @@ #pragma once #include "machine/buffer.h" -#include "machine/latch.h" +#include "machine/output_latch.h" #define SCSI_PORT_DEVICE1 "1" #define SCSI_PORT_DEVICE2 "2" diff --git a/src/devices/machine/latch.cpp b/src/devices/machine/output_latch.cpp similarity index 77% rename from src/devices/machine/latch.cpp rename to src/devices/machine/output_latch.cpp index 320febdb1ff..f36a52f9278 100644 --- a/src/devices/machine/latch.cpp +++ b/src/devices/machine/output_latch.cpp @@ -1,7 +1,7 @@ // license:BSD-3-Clause // copyright-holders:smf #include "emu.h" -#include "latch.h" +#include "output_latch.h" DEFINE_DEVICE_TYPE(OUTPUT_LATCH, output_latch_device, "output_latch", "Output Latch") @@ -9,10 +9,15 @@ output_latch_device::output_latch_device(const machine_config &mconfig, const ch : device_t(mconfig, OUTPUT_LATCH, tag, owner, clock) , m_bit_handlers{ { *this }, { *this }, { *this }, { *this }, { *this }, { *this }, { *this }, { *this } } , m_bits{ -1, -1, -1, -1, -1, -1, -1, -1 } - , m_resolved(false) { } +void output_latch_device::device_resolve_objects() +{ + for (devcb_write_line &handler : m_bit_handlers) + handler.resolve_safe(); +} + void output_latch_device::device_start() { save_item(NAME(m_bits)); @@ -20,15 +25,6 @@ void output_latch_device::device_start() void output_latch_device::write(uint8_t data) { - if (!m_resolved) - { - // HACK: move to device_config_complete() when devcb supports that - for (devcb_write_line &handler : m_bit_handlers) - handler.resolve_safe(); - - m_resolved = true; - } - for (unsigned i = 0; 8 > i; ++i) { int const bit = BIT(data, i); diff --git a/src/devices/machine/latch.h b/src/devices/machine/output_latch.h similarity index 97% rename from src/devices/machine/latch.h rename to src/devices/machine/output_latch.h index edc87eefd1c..adc2df6b20c 100644 --- a/src/devices/machine/latch.h +++ b/src/devices/machine/output_latch.h @@ -41,14 +41,13 @@ public: DECLARE_WRITE8_MEMBER(write) { write(data); } protected: + virtual void device_resolve_objects() override; virtual void device_start() override; private: devcb_write_line m_bit_handlers[8]; int m_bits[8]; - - bool m_resolved; }; DECLARE_DEVICE_TYPE(OUTPUT_LATCH, output_latch_device) diff --git a/src/mame/drivers/zorba.cpp b/src/mame/drivers/zorba.cpp index 8eed437a14f..90419732203 100644 --- a/src/mame/drivers/zorba.cpp +++ b/src/mame/drivers/zorba.cpp @@ -63,7 +63,7 @@ ToDo: #include "cpu/m6805/m68705.h" #include "machine/input_merger.h" -#include "machine/latch.h" +#include "machine/output_latch.h" #include "machine/pit8253.h" #include "screen.h" diff --git a/src/mame/includes/pc9801.h b/src/mame/includes/pc9801.h index 369ba9d56b7..834caef37cf 100644 --- a/src/mame/includes/pc9801.h +++ b/src/mame/includes/pc9801.h @@ -16,7 +16,7 @@ #include "machine/buffer.h" #include "machine/i8251.h" #include "machine/i8255.h" -#include "machine/latch.h" +#include "machine/output_latch.h" #include "machine/pic8259.h" #include "machine/pit8253.h" #include "machine/ram.h"