From 001eadf2941cfe74ab77f5c5b4993f8882261e12 Mon Sep 17 00:00:00 2001 From: hap Date: Fri, 19 Mar 2021 17:52:26 +0100 Subject: pps41: add preliminary mm78la/mm77la --- scripts/src/cpu.lua | 4 ++ src/devices/cpu/pps41/mm75.cpp | 3 +- src/devices/cpu/pps41/mm76.cpp | 1 - src/devices/cpu/pps41/mm76.h | 1 + src/devices/cpu/pps41/mm76op.cpp | 5 +++ src/devices/cpu/pps41/mm78.cpp | 8 ++-- src/devices/cpu/pps41/mm78.h | 9 ++-- src/devices/cpu/pps41/mm78la.cpp | 64 ++++++++++++++++++++++++++++ src/devices/cpu/pps41/mm78la.h | 84 +++++++++++++++++++++++++++++++++++++ src/devices/cpu/pps41/mm78laop.cpp | 47 +++++++++++++++++++++ src/devices/cpu/pps41/mm78op.cpp | 2 +- src/devices/cpu/pps41/pps41base.cpp | 33 ++++++++------- src/devices/cpu/pps41/pps41base.h | 17 +++++--- src/mame/drivers/fidel_eag68k.cpp | 2 +- src/mame/drivers/hh_pps41.cpp | 35 ++++++++-------- src/mame/layout/drdunk.lay | 6 +-- src/mame/layout/dunksunk.lay | 6 +-- src/mame/layout/f2pbball.lay | 30 ++++++------- src/mame/layout/ftri1.lay | 18 ++++---- src/mame/layout/hccbaskb.lay | 6 +-- 20 files changed, 295 insertions(+), 86 deletions(-) create mode 100644 src/devices/cpu/pps41/mm78la.cpp create mode 100644 src/devices/cpu/pps41/mm78la.h create mode 100644 src/devices/cpu/pps41/mm78laop.cpp diff --git a/scripts/src/cpu.lua b/scripts/src/cpu.lua index 09ce5e98a23..24884592d70 100644 --- a/scripts/src/cpu.lua +++ b/scripts/src/cpu.lua @@ -2881,6 +2881,7 @@ end --@src/devices/cpu/pps41/mm75.h,CPUS["PPS41"] = true --@src/devices/cpu/pps41/mm76.h,CPUS["PPS41"] = true --@src/devices/cpu/pps41/mm78.h,CPUS["PPS41"] = true +--@src/devices/cpu/pps41/mm78la.h,CPUS["PPS41"] = true -------------------------------------------------- if CPUS["PPS41"] then @@ -2896,6 +2897,9 @@ if CPUS["PPS41"] then MAME_DIR .. "src/devices/cpu/pps41/mm78.cpp", MAME_DIR .. "src/devices/cpu/pps41/mm78.h", MAME_DIR .. "src/devices/cpu/pps41/mm78op.cpp", + MAME_DIR .. "src/devices/cpu/pps41/mm78la.cpp", + MAME_DIR .. "src/devices/cpu/pps41/mm78la.h", + MAME_DIR .. "src/devices/cpu/pps41/mm78laop.cpp", } end diff --git a/src/devices/cpu/pps41/mm75.cpp b/src/devices/cpu/pps41/mm75.cpp index d1d4a324235..f787e6f1a46 100644 --- a/src/devices/cpu/pps41/mm75.cpp +++ b/src/devices/cpu/pps41/mm75.cpp @@ -23,6 +23,5 @@ mm75_device::mm75_device(const machine_config &mconfig, const char *tag, device_ void mm75_device::device_start() { mm76_device::device_start(); - m_d_pins--; - m_d_mask >>= 1; + set_d_pins(9); } diff --git a/src/devices/cpu/pps41/mm76.cpp b/src/devices/cpu/pps41/mm76.cpp index 5ebda16f281..7833fa12d2a 100644 --- a/src/devices/cpu/pps41/mm76.cpp +++ b/src/devices/cpu/pps41/mm76.cpp @@ -82,7 +82,6 @@ std::unique_ptr mm76_device::create_disassembler() void mm76_device::device_start() { pps41_base_device::device_start(); - m_stack_levels = 1; } void mm76_device::device_reset() diff --git a/src/devices/cpu/pps41/mm76.h b/src/devices/cpu/pps41/mm76.h index 6e858c35669..82956e1829e 100644 --- a/src/devices/cpu/pps41/mm76.h +++ b/src/devices/cpu/pps41/mm76.h @@ -69,6 +69,7 @@ protected: void pop_pc(); void push_pc(); void op_illegal(); + void op_todo(); virtual bool op_is_tr(u8 op) override { return (op & 0xf0) == 0x30; }; virtual bool op_is_eob(u8 op) { return (op & 0xfc) == 0x1c; }; diff --git a/src/devices/cpu/pps41/mm76op.cpp b/src/devices/cpu/pps41/mm76op.cpp index 99f6e87f9bf..6cef3dae06d 100644 --- a/src/devices/cpu/pps41/mm76op.cpp +++ b/src/devices/cpu/pps41/mm76op.cpp @@ -38,6 +38,11 @@ void mm76_device::op_illegal() logerror("unknown opcode $%02X at $%03X\n", m_op, m_prev_pc); } +void mm76_device::op_todo() +{ + logerror("unimplemented opcode $%02X at $%03X\n", m_op, m_prev_pc); +} + // opcodes diff --git a/src/devices/cpu/pps41/mm78.cpp b/src/devices/cpu/pps41/mm78.cpp index ae5948b9663..99550886a45 100644 --- a/src/devices/cpu/pps41/mm78.cpp +++ b/src/devices/cpu/pps41/mm78.cpp @@ -50,17 +50,17 @@ void mm78_device::program_2k(address_map &map) map(0x000, 0x7ff).rom(); } -void mm77_device::program_1_3k(address_map &map) +void mm78_device::program_1_3k(address_map &map) { map(0x040, 0x1ff).rom(); map(0x240, 0x3ff).rom(); map(0x640, 0x7ff).rom(); } -void mm77l_device::program_1_5k(address_map &map) +void mm78_device::program_1_5k(address_map &map) { map(0x000, 0x3ff).rom(); - map(0x600, 0x7ff).rom(); + map(0x400, 0x5ff).mirror(0x200).rom(); } void mm78_device::data_128x4(address_map &map) @@ -68,7 +68,7 @@ void mm78_device::data_128x4(address_map &map) map(0x00, 0x7f).ram(); } -void mm77_device::data_96x4(address_map &map) +void mm78_device::data_96x4(address_map &map) { map(0x00, 0x3f).ram(); map(0x40, 0x47).mirror(0x18).ram(); // not to 0x50 diff --git a/src/devices/cpu/pps41/mm78.h b/src/devices/cpu/pps41/mm78.h index b4b8868584d..a858cf94f3e 100644 --- a/src/devices/cpu/pps41/mm78.h +++ b/src/devices/cpu/pps41/mm78.h @@ -60,7 +60,10 @@ protected: // device_execute_interface overrides virtual void execute_one() override; + void data_96x4(address_map &map); void data_128x4(address_map &map); + void program_1_3k(address_map &map); + void program_1_5k(address_map &map); void program_2k(address_map &map); // opcode helpers @@ -107,18 +110,12 @@ public: protected: mm77_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, u32 clock, int prgwidth, address_map_constructor program, int datawidth, address_map_constructor data); - - void data_96x4(address_map &map); - void program_1_3k(address_map &map); }; class mm77l_device : public mm77_device { public: mm77l_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock); - -protected: - void program_1_5k(address_map &map); }; diff --git a/src/devices/cpu/pps41/mm78la.cpp b/src/devices/cpu/pps41/mm78la.cpp new file mode 100644 index 00000000000..205763a01e8 --- /dev/null +++ b/src/devices/cpu/pps41/mm78la.cpp @@ -0,0 +1,64 @@ +// license:BSD-3-Clause +// copyright-holders:hap +/* + + Rockwell MM77LA/MM78LA MCU + +*/ + +#include "emu.h" +#include "mm78la.h" + + +DEFINE_DEVICE_TYPE(MM78LA, mm78la_device, "mm78la", "Rockwell MM78LA") // MM78L + output PLA and tone generator +DEFINE_DEVICE_TYPE(MM77LA, mm77la_device, "mm77la", "Rockwell MM77LA") // MM77L + output PLA and tone generator + + +// constructor +mm78la_device::mm78la_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock) : + mm78la_device(mconfig, MM78LA, tag, owner, clock, 11, address_map_constructor(FUNC(mm78la_device::program_2k), this), 7, address_map_constructor(FUNC(mm78la_device::data_128x4), this)) +{ } + +mm78la_device::mm78la_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, u32 clock, int prgwidth, address_map_constructor program, int datawidth, address_map_constructor data) : + mm78_device(mconfig, type, tag, owner, clock, prgwidth, program, datawidth, data) +{ } + +mm77la_device::mm77la_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock) : + mm78la_device(mconfig, MM77LA, tag, owner, clock, 11, address_map_constructor(FUNC(mm77la_device::program_1_5k), this), 7, address_map_constructor(FUNC(mm77la_device::data_96x4), this)) +{ } + + +// machine config +void mm78la_device::device_add_mconfig(machine_config &config) +{ + PLA(config, "opla", 5, 14, 32).set_format(pla_device::FMT::BERKELEY); +} + +void mm77la_device::device_add_mconfig(machine_config &config) +{ + PLA(config, "opla", 4, 10, 16).set_format(pla_device::FMT::BERKELEY); +} + + +// initialize +void mm78la_device::device_start() +{ + mm78_device::device_start(); + set_r_pins(14); +} + +void mm78la_device::device_reset() +{ + mm78_device::device_reset(); +} + +void mm77la_device::device_start() +{ + mm78la_device::device_start(); + set_r_pins(10); +} + +void mm77la_device::device_reset() +{ + mm78la_device::device_reset(); +} diff --git a/src/devices/cpu/pps41/mm78la.h b/src/devices/cpu/pps41/mm78la.h new file mode 100644 index 00000000000..6b6c1862b82 --- /dev/null +++ b/src/devices/cpu/pps41/mm78la.h @@ -0,0 +1,84 @@ +// license:BSD-3-Clause +// copyright-holders:hap +/* + + Rockwell MM77LA/MM78LA MCU + +*/ + +#ifndef MAME_CPU_PPS41_MM78LA_H +#define MAME_CPU_PPS41_MM78LA_H + +#pragma once + +#include "mm78.h" + +// pinout reference + +/* + ____ ____ ____ ____ + BP 1 |* \_/ | 42 DIO9 BP 1 |* \_/ | 40 DIO9 + A 2 | | 41 DIO8 A 2 | | 39 DIO8 + Vdd 3 | | 40 DIO7 N/C 3 | | 38 DIO7 + VC 4 | | 39 DIO6 VC 4 | | 37 DIO6 + TEST 5 | | 38 DIO5 Vdd 5 | | 36 DIO5 + Vss 6 | | 37 DIO4 Vss 6 | | 35 DIO4 + PI4 7 | | 36 DIO3 TEST 7 | | 34 DIO3 + PI8 8 | | 35 DIO2 PI4 8 | | 33 DIO2 + PI3 9 | | 34 DIO1 PI8 9 | | 32 DIO1 + PI7 10 | MM78LA | 33 DIO0 PI3 10 | MM77LA | 31 DIO0 + PI6 11 | | 32 Vdd SPK PI7 11 | | 30 INT0 + PI2 12 | | 31 SPK R2 PI6 12 | | 29 SPK R2 + PI5 13 | | 30 SPK R1 PI2 13 | | 28 Vdd SPK + PI1 14 | | 29 RO01 PI5 14 | | 27 SPK R1 + PO 15 | | 28 RO02 PI1 15 | | 26 RO01 + RO14 16 | | 27 RO03 PO 16 | | 25 RO02 + RO13 17 | | 26 RO04 RO10 17 | | 24 RO03 + RO12 18 | | 25 RO05 RO09 18 | | 23 RO04 + RO11 19 | | 24 RO06 RO08 19 | | 22 RO05 + RO10 20 | | 23 RO07 RO07 20 |___________| 21 RO06 + RO09 21 |___________| 22 RO08 + + MM78LA = aka MM95, MM77LA = aka B80xx (no official documentation known for latter, pinout has guesses) +*/ + +class mm78la_device : public mm78_device +{ +public: + mm78la_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock); + +protected: + mm78la_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, u32 clock, int prgwidth, address_map_constructor program, int datawidth, address_map_constructor data); + + // device-level overrides + virtual void device_start() override; + virtual void device_reset() override; + virtual void device_add_mconfig(machine_config &config) override; + + // opcode handlers + virtual void op_sos() override; + virtual void op_ros() override; + virtual void op_skisl() override; + virtual void op_ix() override; + virtual void op_ox() override; + virtual void op_ioa() override; + virtual void op_ios() override; +}; + +class mm77la_device : public mm78la_device +{ +public: + mm77la_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock); + +protected: + // device-level overrides + virtual void device_start() override; + virtual void device_reset() override; + virtual void device_add_mconfig(machine_config &config) override; +}; + + +DECLARE_DEVICE_TYPE(MM78LA, mm78la_device) +DECLARE_DEVICE_TYPE(MM77LA, mm77la_device) + +#endif // MAME_CPU_PPS41_MM78LA_H diff --git a/src/devices/cpu/pps41/mm78laop.cpp b/src/devices/cpu/pps41/mm78laop.cpp new file mode 100644 index 00000000000..18b2aa80fe2 --- /dev/null +++ b/src/devices/cpu/pps41/mm78laop.cpp @@ -0,0 +1,47 @@ +// license:BSD-3-Clause +// copyright-holders:hap + +// MM77LA/MM78LA opcode handlers + +#include "emu.h" +#include "mm78la.h" + + +// opcodes + +// changed opcodes + +void mm78la_device::op_sos() +{ + op_todo(); +} + +void mm78la_device::op_ros() +{ + op_todo(); +} + +void mm78la_device::op_skisl() +{ + op_todo(); +} + +void mm78la_device::op_ix() +{ + op_todo(); +} + +void mm78la_device::op_ox() +{ + op_todo(); +} + +void mm78la_device::op_ioa() +{ + op_todo(); +} + +void mm78la_device::op_ios() +{ + op_todo(); +} diff --git a/src/devices/cpu/pps41/mm78op.cpp b/src/devices/cpu/pps41/mm78op.cpp index 05c2dac9d36..13db81d05b8 100644 --- a/src/devices/cpu/pps41/mm78op.cpp +++ b/src/devices/cpu/pps41/mm78op.cpp @@ -164,7 +164,7 @@ void mm78_device::op_tab() void mm78_device::op_ix() { // IX: input to X from channel X(aka B) - m_x = (m_read_r() & m_r_output) >> 4; + m_x = (m_read_r() & m_r_output) >> 4 & 0xf; } void mm78_device::op_ox() diff --git a/src/devices/cpu/pps41/pps41base.cpp b/src/devices/cpu/pps41/pps41base.cpp index e03443da73e..0d3cb8e6d78 100644 --- a/src/devices/cpu/pps41/pps41base.cpp +++ b/src/devices/cpu/pps41/pps41base.cpp @@ -8,17 +8,19 @@ This is the single-chip evolution of Rockwell's older PPS-4 CPU. It is similar, but a lot of things were simplified, the ALU instructions are less diverse. Part numbers: -- A75xx = MM75 - 28 pin dip -- A76xx = MM76 - 42 pin spider -- A77xx = MM77 - 42 pin spider -- A78xx = MM78 - 42 pin spider -- A79xx = MM76C - 52 pin spider - counter -- A86xx = MM76E - 42 pin spider - extended ROM -- B76xx = MM76L - 40 pin dip -- B77xx = MM77L - 40 pin dip -- B78xx = MM78L - 40 pin dip -- B86xx = MM76EL - 40 pin dip -- B90xx = MM78LA - 42 pin spider +- A75xx = MM75 - 28 pin dip +- A76xx = MM76 - 42 pin spider +- A77xx = MM77 - 42 pin spider +- A78xx = MM78 - 42 pin spider +- A79xx = MM76C - 52 pin spider - high-speed counter +- A??xx = MM76D - 52 pin spider - 12-bit ADC +- A86xx = MM76E - 42 pin spider - extended ROM +- B76xx = MM76L - 40 pin dip +- B77xx = MM77L - 40 pin dip +- B80xx = MM77LA? - 40 pin dip +- B78xx = MM78L - 40 pin dip +- B86xx = MM76EL - 40 pin dip +- B90xx = MM78LA - 42 pin spider "spider" = 2 rows of pins on each side, just like standard PPS-4 CPUs. "L" main difference is low-power @@ -42,7 +44,7 @@ TODO: but again does not explain why - allowed opcode after TAB should be limited - add MCU mask options, there's one for inverting interrupts -- add MM78LA +- finish MM78LA emulation */ @@ -103,6 +105,7 @@ void pps41_base_device::device_start() m_prev2_op = 0; m_prev3_op = 0; memset(m_stack, 0, sizeof(m_stack)); + m_stack_levels = 1; m_a = 0; m_b = 0; @@ -123,9 +126,9 @@ void pps41_base_device::device_start() m_sclock_in = 0; m_sclock_count = 0; - m_d_pins = 10; - m_d_mask = (1 << m_d_pins) - 1; + set_d_pins(10); m_d_output = 0; + set_r_pins(8); m_r_output = 0; m_int_line[0] = m_int_line[1] = 1; // GND = 1 m_int_ff[0] = m_int_ff[1] = 0; @@ -198,7 +201,7 @@ void pps41_base_device::device_reset() m_skip_count = 0; // clear outputs - m_write_r(m_r_output = 0xff); + m_write_r(m_r_output = m_r_mask); m_write_d(m_d_output = 0); m_s = 0; diff --git a/src/devices/cpu/pps41/pps41base.h b/src/devices/cpu/pps41/pps41base.h index 7a780e15d73..faeb6234723 100644 --- a/src/devices/cpu/pps41/pps41base.h +++ b/src/devices/cpu/pps41/pps41base.h @@ -29,11 +29,11 @@ public: // 8-bit P(parallel) input auto read_p() { return m_read_p.bind(); } - // 10-bit D(discrete) I/O + // 10/12-bit D(discrete) I/O auto read_d() { return m_read_d.bind(); } auto write_d() { return m_write_d.bind(); } - // 8-bit R I/O + // 8/10/14-bit R I/O auto read_r() { return m_read_r.bind(); } auto write_r() { return m_write_r.bind(); } @@ -44,7 +44,7 @@ public: // I/O access u16 d_output_r() { return m_d_output; } - u8 r_output_r() { return m_r_output; } + u16 r_output_r() { return m_r_output; } int sdo_r() { return BIT(m_s, 3); } void ssc_w(int state); @@ -89,8 +89,8 @@ protected: devcb_read8 m_read_p; devcb_read16 m_read_d; devcb_write16 m_write_d; - devcb_read8 m_read_r; - devcb_write8 m_write_r; + devcb_read16 m_read_r; + devcb_write16 m_write_r; devcb_read_line m_read_sdi; devcb_write_line m_write_sdo; devcb_write_line m_write_ssc; @@ -127,12 +127,17 @@ protected: int m_d_pins; u16 m_d_mask; u16 m_d_output; - u8 m_r_output; + int m_r_pins; + u16 m_r_mask; + u16 m_r_output; int m_int_line[2]; int m_int_ff[2]; // misc handlers + void set_d_pins(u8 p) { m_d_pins = p; m_d_mask = (1 << p) - 1; } + void set_r_pins(u8 p) { m_r_pins = p; m_r_mask = (1 << p) - 1; } virtual bool op_is_tr(u8 op) = 0; + void serial_shift(int state); void serial_clock(); void cycle(); diff --git a/src/mame/drivers/fidel_eag68k.cpp b/src/mame/drivers/fidel_eag68k.cpp index dd16ef8b581..ff6018052c7 100644 --- a/src/mame/drivers/fidel_eag68k.cpp +++ b/src/mame/drivers/fidel_eag68k.cpp @@ -559,7 +559,7 @@ void excel68k_state::fex68k(machine_config &config) const attotime irq_period = attotime::from_hz(600); // 556 timer (22nF, 91K + 20K POT @ 14.8K, 0.1K), ideal is 600Hz (measured 580Hz, 604Hz, 632Hz) TIMER(config, m_irq_on).configure_periodic(FUNC(excel68k_state::irq_on), irq_period); - m_irq_on->set_start_delay(irq_period - attotime::from_nsec(1528)); // active for 1.525us + m_irq_on->set_start_delay(irq_period - attotime::from_nsec(1525)); // active for 1.525us TIMER(config, "irq_off").configure_periodic(FUNC(excel68k_state::irq_off), irq_period); SENSORBOARD(config, m_board).set_type(sensorboard_device::BUTTONS); diff --git a/src/mame/drivers/hh_pps41.cpp b/src/mame/drivers/hh_pps41.cpp index 0134f12a861..b2db23137b9 100644 --- a/src/mame/drivers/hh_pps41.cpp +++ b/src/mame/drivers/hh_pps41.cpp @@ -15,6 +15,7 @@ ROM source notes when dumped from another publisher, but confident it's the same #include "cpu/pps41/mm75.h" #include "cpu/pps41/mm76.h" #include "cpu/pps41/mm78.h" +#include "cpu/pps41/mm78la.h" #include "video/pwm.h" #include "sound/beep.h" #include "sound/spkrdev.h" @@ -58,7 +59,7 @@ public: // MCU output pin state u16 m_d = 0; - u8 m_r = ~0; + u16 m_r = 0; u8 read_inputs(int columns); virtual DECLARE_INPUT_CHANGED_MEMBER(reset_button); @@ -148,7 +149,7 @@ public: void update_display(); void write_d(u16 data); - void write_r(u8 data); + void write_r(u16 data); void ftri1(machine_config &config); }; @@ -169,7 +170,7 @@ void ftri1_state::write_d(u16 data) m_speaker->level_w(BIT(data, 9)); } -void ftri1_state::write_r(u8 data) +void ftri1_state::write_r(u16 data) { // RIO1-RIO8: digit/led data m_r = data; @@ -253,7 +254,7 @@ public: void update_display(); void write_d(u16 data); - void write_r(u8 data); + void write_r(u16 data); u8 read_p(); void mastmind(machine_config &config); @@ -279,7 +280,7 @@ void mastmind_state::write_d(u16 data) m_beeper->set_state(BIT(data, 8)); } -void mastmind_state::write_r(u8 data) +void mastmind_state::write_r(u16 data) { // RIO1-RIO7: digit segment data m_r = data; @@ -401,7 +402,7 @@ public: void update_display(); void write_d(u16 data); - void write_r(u8 data); + void write_r(u16 data); void dunksunk(machine_config &config); }; @@ -430,7 +431,7 @@ void dunksunk_state::write_d(u16 data) update_display(); } -void dunksunk_state::write_r(u8 data) +void dunksunk_state::write_r(u16 data) { // RIO1-RIO7: led data m_r = data; @@ -526,7 +527,7 @@ public: void update_display(); void write_d(u16 data); - void write_r(u8 data); + void write_r(u16 data); u8 read_p(); void memoquiz(machine_config &config); }; @@ -556,7 +557,7 @@ void memoquiz_state::write_d(u16 data) // DIO8: N/C, looks like they planned to add sound, but didn't } -void memoquiz_state::write_r(u8 data) +void memoquiz_state::write_r(u16 data) { // RIO1-RIO7: digit segment data m_r = data; @@ -660,11 +661,11 @@ public: void main_write_d(u16 data); u16 main_read_d(); - void main_write_r(u8 data); + void main_write_r(u16 data); u8 main_read_p(); void sub_write_d(u16 data); - void sub_write_r(u8 data); + void sub_write_r(u16 data); void mwcfootb(machine_config &config); }; @@ -695,7 +696,7 @@ u16 mwcfootb_state::main_read_d() return m_subcpu->d_output_r() & 0x200; } -void mwcfootb_state::main_write_r(u8 data) +void mwcfootb_state::main_write_r(u16 data) { // RIO1-RIO7: vfd plate 0-6 m_plate = (m_plate & 0xfff00) | (~data & 0x7f); @@ -723,7 +724,7 @@ void mwcfootb_state::sub_write_d(u16 data) m_maincpu->set_input_line(0, (data & 0x200) ? ASSERT_LINE : CLEAR_LINE); } -void mwcfootb_state::sub_write_r(u8 data) +void mwcfootb_state::sub_write_r(u16 data) { // RIO1-RIO8: vfd plate 7-14 m_plate = (m_plate & 0xf00ff) | (~data << 8 & 0xff00); @@ -855,7 +856,7 @@ public: void update_display(); void write_d(u16 data); - void write_r(u8 data); + void write_r(u16 data); u8 read_p(); void scrabsen(machine_config &config); }; @@ -884,7 +885,7 @@ void scrabsen_state::write_d(u16 data) m_speaker->level_w(BIT(data, 8)); } -void scrabsen_state::write_r(u8 data) +void scrabsen_state::write_r(u16 data) { // RIO1-RIO8: led data m_r = data; @@ -1006,7 +1007,7 @@ public: void update_display(); void write_d(u16 data); - void write_r(u8 data); + void write_r(u16 data); u8 read_p(); void rdqa(machine_config &config); }; @@ -1035,7 +1036,7 @@ void rdqa_state::write_d(u16 data) m_speaker->level_w(data >> 8 & 3); } -void rdqa_state::write_r(u8 data) +void rdqa_state::write_r(u16 data) { // RIO1-RIO7: digit segment data m_r = data; diff --git a/src/mame/layout/drdunk.lay b/src/mame/layout/drdunk.lay index 772d391e4cb..af3856e36df 100644 --- a/src/mame/layout/drdunk.lay +++ b/src/mame/layout/drdunk.lay @@ -15,10 +15,10 @@ license:CC0 - + - - + + diff --git a/src/mame/layout/dunksunk.lay b/src/mame/layout/dunksunk.lay index ba41d3911ed..3b580eb467a 100644 --- a/src/mame/layout/dunksunk.lay +++ b/src/mame/layout/dunksunk.lay @@ -17,10 +17,10 @@ license:CC0 - + - - + + diff --git a/src/mame/layout/f2pbball.lay b/src/mame/layout/f2pbball.lay index 7ce4594eac6..831c9eac433 100644 --- a/src/mame/layout/f2pbball.lay +++ b/src/mame/layout/f2pbball.lay @@ -30,7 +30,7 @@ license:CC0 - + @@ -53,59 +53,59 @@ license:CC0 - + - + - + - + - + - + - + - + - + - + - + - + - + - + diff --git a/src/mame/layout/ftri1.lay b/src/mame/layout/ftri1.lay index 05886f028c0..3cf14759898 100644 --- a/src/mame/layout/ftri1.lay +++ b/src/mame/layout/ftri1.lay @@ -30,7 +30,7 @@ license:CC0 - + @@ -54,38 +54,38 @@ license:CC0 - + - + - + - + - + - + - + - + diff --git a/src/mame/layout/hccbaskb.lay b/src/mame/layout/hccbaskb.lay index 6fde4d92a1a..00fec34531d 100644 --- a/src/mame/layout/hccbaskb.lay +++ b/src/mame/layout/hccbaskb.lay @@ -16,10 +16,10 @@ license:CC0 - + - - + + -- cgit v1.2.3