summaryrefslogtreecommitdiffstatshomepage
path: root/src/lib/netlist/devices/nld_am2847.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/lib/netlist/devices/nld_am2847.cpp')
-rw-r--r--src/lib/netlist/devices/nld_am2847.cpp28
1 files changed, 13 insertions, 15 deletions
diff --git a/src/lib/netlist/devices/nld_am2847.cpp b/src/lib/netlist/devices/nld_am2847.cpp
index 1a64767873c..670477c6e06 100644
--- a/src/lib/netlist/devices/nld_am2847.cpp
+++ b/src/lib/netlist/devices/nld_am2847.cpp
@@ -27,7 +27,19 @@ namespace netlist
NETLIB_UPDATEI();
public:
- void shift() NL_NOEXCEPT;
+ void shift() noexcept
+ {
+ uint32_t out = m_buffer[0] & 1;
+ uint32_t in = (m_RC() ? out : m_IN());
+ for (std::size_t i=0; i < 5; i++)
+ {
+ uint32_t shift_in = (i == 4) ? in : m_buffer[i + 1];
+ m_buffer[i] >>= 1;
+ m_buffer[i] |= shift_in << 15;
+ }
+
+ m_OUT.push(out, NLTIME_FROM_NS(200));
+ }
logic_input_t m_RC;
logic_input_t m_IN;
@@ -131,20 +143,6 @@ namespace netlist
/* do nothing */
}
- NETLIB_FUNC_VOID(Am2847_shifter, shift, ())
- {
- uint32_t out = m_buffer[0] & 1;
- uint32_t in = (m_RC() ? out : m_IN());
- for (std::size_t i=0; i < 5; i++)
- {
- uint32_t shift_in = (i == 4) ? in : m_buffer[i + 1];
- m_buffer[i] >>= 1;
- m_buffer[i] |= shift_in << 15;
- }
-
- m_OUT.push(out, NLTIME_FROM_NS(200));
- }
-
NETLIB_DEVICE_IMPL(AM2847, "TTL_AM2847", "+CP,+INA,+INB,+INC,+IND,+RCA,+RCB,+RCC,+RCD,@VSS,@VDD")
NETLIB_DEVICE_IMPL(AM2847_dip, "TTL_AM2847_DIP", "")