From be5c86b4d719745421304a3a5315b6ba6b4d5b79 Mon Sep 17 00:00:00 2001 From: hap Date: Sat, 17 Jun 2023 11:42:39 +0200 Subject: Systems promoted to working --------------------------- Strobe [hap, Sean Riddle] --- src/devices/cpu/amis2000/amis2000.cpp | 43 ++++---- src/devices/cpu/e0c6200/e0c6200.cpp | 12 +- src/devices/cpu/e0c6200/e0c6s46.cpp | 23 ++-- src/devices/cpu/hmcs40/hmcs40.cpp | 91 ++++++++------- src/devices/cpu/melps4/m58846.cpp | 4 +- src/devices/cpu/melps4/melps4.cpp | 46 ++++---- src/devices/cpu/sm510/sm510base.cpp | 3 +- src/devices/cpu/ucom4/ucom4.cpp | 86 +++++++-------- src/mame/handheld/hh_tms1k.cpp | 33 +++--- src/mame/layout/astro.lay | 47 ++++---- src/mame/layout/strobe.lay | 202 ++++++++++++++++++++++++++++++++++ 11 files changed, 393 insertions(+), 197 deletions(-) create mode 100644 src/mame/layout/strobe.lay diff --git a/src/devices/cpu/amis2000/amis2000.cpp b/src/devices/cpu/amis2000/amis2000.cpp index 2f4ca06eb19..f8daa91eca6 100644 --- a/src/devices/cpu/amis2000/amis2000.cpp +++ b/src/devices/cpu/amis2000/amis2000.cpp @@ -59,33 +59,32 @@ void amis2000_base_device::data_80x4(address_map &map) // device definitions -amis2000_base_device::amis2000_base_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, u32 clock, u8 bu_bits, u8 callstack_bits, u8 callstack_depth, int prgwidth, address_map_constructor program, int datawidth, address_map_constructor data) - : cpu_device(mconfig, type, tag, owner, clock) - , m_program_config("program", ENDIANNESS_BIG, 8, prgwidth, 0, program) - , m_data_config("data", ENDIANNESS_BIG, 8, datawidth, 0, data) - , m_bu_bits(bu_bits) - , m_callstack_bits(callstack_bits) - , m_callstack_depth(callstack_depth) - , m_7seg_table(nullptr) - , m_read_k(*this, 0xf) - , m_read_i(*this, 0xf) - , m_read_d(*this, 0) - , m_write_d(*this) - , m_write_a(*this) - , m_write_f(*this) -{ -} +amis2000_base_device::amis2000_base_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, u32 clock, u8 bu_bits, u8 callstack_bits, u8 callstack_depth, int prgwidth, address_map_constructor program, int datawidth, address_map_constructor data) : + cpu_device(mconfig, type, tag, owner, clock), + m_program_config("program", ENDIANNESS_BIG, 8, prgwidth, 0, program), + m_data_config("data", ENDIANNESS_BIG, 8, datawidth, 0, data), + m_bu_bits(bu_bits), + m_callstack_bits(callstack_bits), + m_callstack_depth(callstack_depth), + m_7seg_table(nullptr), + m_read_k(*this, 0xf), + m_read_i(*this, 0xf), + m_read_d(*this, 0), + m_write_d(*this), + m_write_a(*this), + m_write_f(*this) +{ } -amis2000_cpu_device::amis2000_cpu_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock) - : amis2000_base_device(mconfig, AMI_S2000, tag, owner, clock, 2, 10, 3, 13, address_map_constructor(FUNC(amis2000_cpu_device::program_1k), this), 6, address_map_constructor(FUNC(amis2000_cpu_device::data_64x4), this)) +amis2000_cpu_device::amis2000_cpu_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock) : + amis2000_base_device(mconfig, AMI_S2000, tag, owner, clock, 2, 10, 3, 13, address_map_constructor(FUNC(amis2000_cpu_device::program_1k), this), 6, address_map_constructor(FUNC(amis2000_cpu_device::data_64x4), this)) { } -amis2150_cpu_device::amis2150_cpu_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock) - : amis2000_base_device(mconfig, AMI_S2150, tag, owner, clock, 3, 11, 3, 13, address_map_constructor(FUNC(amis2150_cpu_device::program_1_5k), this), 7, address_map_constructor(FUNC(amis2150_cpu_device::data_80x4), this)) +amis2150_cpu_device::amis2150_cpu_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock) : + amis2000_base_device(mconfig, AMI_S2150, tag, owner, clock, 3, 11, 3, 13, address_map_constructor(FUNC(amis2150_cpu_device::program_1_5k), this), 7, address_map_constructor(FUNC(amis2150_cpu_device::data_80x4), this)) { } -amis2152_cpu_device::amis2152_cpu_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock) - : amis2000_base_device(mconfig, AMI_S2152, tag, owner, clock, 3, 11, 3, 13, address_map_constructor(FUNC(amis2152_cpu_device::program_1_5k), this), 7, address_map_constructor(FUNC(amis2152_cpu_device::data_80x4), this)) +amis2152_cpu_device::amis2152_cpu_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock) : + amis2000_base_device(mconfig, AMI_S2152, tag, owner, clock, 3, 11, 3, 13, address_map_constructor(FUNC(amis2152_cpu_device::program_1_5k), this), 7, address_map_constructor(FUNC(amis2152_cpu_device::data_80x4), this)) { } device_memory_interface::space_config_vector amis2000_base_device::memory_space_config() const diff --git a/src/devices/cpu/e0c6200/e0c6200.cpp b/src/devices/cpu/e0c6200/e0c6200.cpp index 06aacef049b..3e0aef10214 100644 --- a/src/devices/cpu/e0c6200/e0c6200.cpp +++ b/src/devices/cpu/e0c6200/e0c6200.cpp @@ -24,11 +24,10 @@ // construction/destruction -e0c6200_cpu_device::e0c6200_cpu_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, u32 clock, address_map_constructor program, address_map_constructor data) - : cpu_device(mconfig, type, tag, owner, clock) - , m_program_config("program", ENDIANNESS_BIG, 16, 13, -1, program) - , m_data_config("data", ENDIANNESS_BIG, 8, 12, 0, data), m_program(nullptr), m_data(nullptr), m_op(0), m_prev_op(0), m_irq_vector(0), m_irq_id(0), m_possible_irq(false), m_halt(false), - m_sleep(false), m_icount(0), m_pc(0), m_prev_pc(0), m_npc(0), m_jpc(0), m_a(0), m_b(0), m_xp(0), m_xh(0), m_xl(0), m_yp(0), m_yh(0), m_yl(0), m_sp(0), m_f(0) +e0c6200_cpu_device::e0c6200_cpu_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, u32 clock, address_map_constructor program, address_map_constructor data) : + cpu_device(mconfig, type, tag, owner, clock), + m_program_config("program", ENDIANNESS_BIG, 16, 13, -1, program), + m_data_config("data", ENDIANNESS_BIG, 8, 12, 0, data) { } // disasm @@ -79,7 +78,8 @@ void e0c6200_cpu_device::device_start() m_irq_vector = 0; m_irq_id = 0; m_possible_irq = false; - m_halt = m_sleep = false; + m_halt = false; + m_sleep = false; m_pc = 0; m_prev_pc = 0; m_npc = 0; diff --git a/src/devices/cpu/e0c6200/e0c6s46.cpp b/src/devices/cpu/e0c6200/e0c6s46.cpp index 5e0c1fee703..fcc9ac6c5cf 100644 --- a/src/devices/cpu/e0c6200/e0c6s46.cpp +++ b/src/devices/cpu/e0c6200/e0c6s46.cpp @@ -48,21 +48,14 @@ void e0c6s46_device::e0c6s46_data(address_map &map) // device definitions -e0c6s46_device::e0c6s46_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock) - : e0c6200_cpu_device(mconfig, E0C6S46, tag, owner, clock, address_map_constructor(FUNC(e0c6s46_device::e0c6s46_program), this), address_map_constructor(FUNC(e0c6s46_device::e0c6s46_data), this)) - , m_vram1(*this, "vram1") - , m_vram2(*this, "vram2") - , m_osc(0), m_svd(0), m_lcd_control(0), m_lcd_contrast(0) - , m_pixel_update_cb(*this) - , m_write_r(*this) - , m_read_p(*this, 0) - , m_write_p(*this) - , m_r_dir(0), m_p_dir(0), m_p_pullup(0), m_dfk0(0), m_256_src_pulse(0), m_core_256_handle(nullptr) - , m_watchdog_count(0), m_clktimer_count(0), m_stopwatch_on(0), m_swl_cur_pulse(0), m_swl_slice(0) - , m_swl_count(0), m_swh_count(0), m_prgtimer_select(0), m_prgtimer_on(0), m_prgtimer_src_pulse(0) - , m_prgtimer_cur_pulse(0), m_prgtimer_count(0), m_prgtimer_reload(0), m_prgtimer_handle(nullptr) - , m_bz_43_on(0), m_bz_freq(0), m_bz_envelope(0), m_bz_duty_ratio(0), m_bz_1shot_on(0) - , m_bz_1shot_running(false), m_bz_1shot_count(0), m_bz_pulse(0), m_buzzer_handle(nullptr) +e0c6s46_device::e0c6s46_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock) : + e0c6200_cpu_device(mconfig, E0C6S46, tag, owner, clock, address_map_constructor(FUNC(e0c6s46_device::e0c6s46_program), this), address_map_constructor(FUNC(e0c6s46_device::e0c6s46_data), this)), + m_vram1(*this, "vram1"), + m_vram2(*this, "vram2"), + m_pixel_update_cb(*this), + m_write_r(*this), + m_read_p(*this, 0), + m_write_p(*this) { } diff --git a/src/devices/cpu/hmcs40/hmcs40.cpp b/src/devices/cpu/hmcs40/hmcs40.cpp index 87566bd401b..61b50e73123 100644 --- a/src/devices/cpu/hmcs40/hmcs40.cpp +++ b/src/devices/cpu/hmcs40/hmcs40.cpp @@ -93,74 +93,73 @@ void hmcs40_cpu_device::data_160x4(address_map &map) // device definitions -hmcs40_cpu_device::hmcs40_cpu_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, u32 clock, int family, u16 polarity, int stack_levels, int pcwidth, int prgwidth, address_map_constructor program, int datawidth, address_map_constructor data) - : cpu_device(mconfig, type, tag, owner, clock) - , m_program_config("program", ENDIANNESS_LITTLE, 16, prgwidth, -1, program) - , m_data_config("data", ENDIANNESS_LITTLE, 8, datawidth, 0, data) - , m_pcwidth(pcwidth) - , m_prgwidth(prgwidth) - , m_datawidth(datawidth) - , m_family(family) - , m_polarity(polarity) - , m_stack_levels(stack_levels) - , m_read_r(*this, polarity & 0xf) - , m_write_r(*this) - , m_read_d(*this, polarity) - , m_write_d(*this) -{ -} +hmcs40_cpu_device::hmcs40_cpu_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, u32 clock, int family, u16 polarity, int stack_levels, int pcwidth, int prgwidth, address_map_constructor program, int datawidth, address_map_constructor data) : + cpu_device(mconfig, type, tag, owner, clock), + m_program_config("program", ENDIANNESS_LITTLE, 16, prgwidth, -1, program), + m_data_config("data", ENDIANNESS_LITTLE, 8, datawidth, 0, data), + m_pcwidth(pcwidth), + m_prgwidth(prgwidth), + m_datawidth(datawidth), + m_family(family), + m_polarity(polarity), + m_stack_levels(stack_levels), + m_read_r(*this, polarity & 0xf), + m_write_r(*this), + m_read_d(*this, polarity), + m_write_d(*this) +{ } -hmcs43_cpu_device::hmcs43_cpu_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, u32 clock, u16 polarity) - : hmcs40_cpu_device(mconfig, type, tag, owner, clock, HMCS40_FAMILY_HMCS43, polarity, 3 /* stack levels */, 10 /* pc width */, 11 /* prg width */, address_map_constructor(FUNC(hmcs43_cpu_device::program_1k), this), 7 /* data width */, address_map_constructor(FUNC(hmcs43_cpu_device::data_80x4), this)) +hmcs43_cpu_device::hmcs43_cpu_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, u32 clock, u16 polarity) : + hmcs40_cpu_device(mconfig, type, tag, owner, clock, HMCS40_FAMILY_HMCS43, polarity, 3 /* stack levels */, 10 /* pc width */, 11 /* prg width */, address_map_constructor(FUNC(hmcs43_cpu_device::program_1k), this), 7 /* data width */, address_map_constructor(FUNC(hmcs43_cpu_device::data_80x4), this)) { } -hd38750_device::hd38750_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock) - : hmcs43_cpu_device(mconfig, HD38750, tag, owner, clock, IS_PMOS) +hd38750_device::hd38750_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock) : + hmcs43_cpu_device(mconfig, HD38750, tag, owner, clock, IS_PMOS) { } -hd38755_device::hd38755_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock) - : hmcs43_cpu_device(mconfig, HD38755, tag, owner, clock, IS_PMOS) +hd38755_device::hd38755_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock) : + hmcs43_cpu_device(mconfig, HD38755, tag, owner, clock, IS_PMOS) { } -hd44750_device::hd44750_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock) - : hmcs43_cpu_device(mconfig, HD44750, tag, owner, clock, IS_CMOS) +hd44750_device::hd44750_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock) : + hmcs43_cpu_device(mconfig, HD44750, tag, owner, clock, IS_CMOS) { } -hd44758_device::hd44758_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock) - : hmcs43_cpu_device(mconfig, HD44758, tag, owner, clock, IS_CMOS) +hd44758_device::hd44758_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock) : + hmcs43_cpu_device(mconfig, HD44758, tag, owner, clock, IS_CMOS) { } -hmcs44_cpu_device::hmcs44_cpu_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, u32 clock, u16 polarity) - : hmcs40_cpu_device(mconfig, type, tag, owner, clock, HMCS40_FAMILY_HMCS44, polarity, 4, 11, 12, address_map_constructor(FUNC(hmcs44_cpu_device::program_2k), this), 8, address_map_constructor(FUNC(hmcs44_cpu_device::data_160x4), this)) +hmcs44_cpu_device::hmcs44_cpu_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, u32 clock, u16 polarity) : + hmcs40_cpu_device(mconfig, type, tag, owner, clock, HMCS40_FAMILY_HMCS44, polarity, 4, 11, 12, address_map_constructor(FUNC(hmcs44_cpu_device::program_2k), this), 8, address_map_constructor(FUNC(hmcs44_cpu_device::data_160x4), this)) { } -hd38800_device::hd38800_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock) - : hmcs44_cpu_device(mconfig, HD38800, tag, owner, clock, IS_PMOS) +hd38800_device::hd38800_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock) : + hmcs44_cpu_device(mconfig, HD38800, tag, owner, clock, IS_PMOS) { } -hd38805_device::hd38805_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock) - : hmcs44_cpu_device(mconfig, HD38805, tag, owner, clock, IS_PMOS) +hd38805_device::hd38805_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock) : + hmcs44_cpu_device(mconfig, HD38805, tag, owner, clock, IS_PMOS) { } -hd44801_device::hd44801_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock) - : hmcs44_cpu_device(mconfig, HD44801, tag, owner, clock, IS_CMOS) +hd44801_device::hd44801_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock) : + hmcs44_cpu_device(mconfig, HD44801, tag, owner, clock, IS_CMOS) { } -hd44808_device::hd44808_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock) - : hmcs44_cpu_device(mconfig, HD44808, tag, owner, clock, IS_CMOS) +hd44808_device::hd44808_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock) : + hmcs44_cpu_device(mconfig, HD44808, tag, owner, clock, IS_CMOS) { } -hmcs45_cpu_device::hmcs45_cpu_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, u32 clock, u16 polarity) - : hmcs40_cpu_device(mconfig, type, tag, owner, clock, HMCS40_FAMILY_HMCS45, polarity, 4, 11, 12, address_map_constructor(FUNC(hmcs45_cpu_device::program_2k), this), 8, address_map_constructor(FUNC(hmcs45_cpu_device::data_160x4), this)) +hmcs45_cpu_device::hmcs45_cpu_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, u32 clock, u16 polarity) : + hmcs40_cpu_device(mconfig, type, tag, owner, clock, HMCS40_FAMILY_HMCS45, polarity, 4, 11, 12, address_map_constructor(FUNC(hmcs45_cpu_device::program_2k), this), 8, address_map_constructor(FUNC(hmcs45_cpu_device::data_160x4), this)) { } -hd38820_device::hd38820_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock) - : hmcs45_cpu_device(mconfig, HD38820, tag, owner, clock, IS_PMOS) +hd38820_device::hd38820_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock) : + hmcs45_cpu_device(mconfig, HD38820, tag, owner, clock, IS_PMOS) { } -hd38825_device::hd38825_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock) - : hmcs45_cpu_device(mconfig, HD38825, tag, owner, clock, IS_PMOS) +hd38825_device::hd38825_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock) : + hmcs45_cpu_device(mconfig, HD38825, tag, owner, clock, IS_PMOS) { } -hd44820_device::hd44820_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock) - : hmcs45_cpu_device(mconfig, HD44820, tag, owner, clock, IS_CMOS) +hd44820_device::hd44820_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock) : + hmcs45_cpu_device(mconfig, HD44820, tag, owner, clock, IS_CMOS) { } -hd44828_device::hd44828_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock) - : hmcs45_cpu_device(mconfig, HD44828, tag, owner, clock, IS_CMOS) +hd44828_device::hd44828_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock) : + hmcs45_cpu_device(mconfig, HD44828, tag, owner, clock, IS_CMOS) { } device_memory_interface::space_config_vector hmcs40_cpu_device::memory_space_config() const diff --git a/src/devices/cpu/melps4/m58846.cpp b/src/devices/cpu/melps4/m58846.cpp index 0440375e47d..611f2d3af32 100644 --- a/src/devices/cpu/melps4/m58846.cpp +++ b/src/devices/cpu/melps4/m58846.cpp @@ -27,8 +27,8 @@ void m58846_device::data_128x4(address_map &map) // device definitions -m58846_device::m58846_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock) - : melps4_cpu_device(mconfig, M58846, tag, owner, clock, 11, address_map_constructor(FUNC(m58846_device::program_2kx9), this), 7, address_map_constructor(FUNC(m58846_device::data_128x4), this), 12 /* number of D pins */, 2 /* subroutine page */, 1 /* interrupt page */), m_timer(nullptr) +m58846_device::m58846_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock) : + melps4_cpu_device(mconfig, M58846, tag, owner, clock, 11, address_map_constructor(FUNC(m58846_device::program_2kx9), this), 7, address_map_constructor(FUNC(m58846_device::data_128x4), this), 12 /* number of D pins */, 2 /* subroutine page */, 1 /* interrupt page */), m_timer(nullptr) { } diff --git a/src/devices/cpu/melps4/melps4.cpp b/src/devices/cpu/melps4/melps4.cpp index 72cbb51d273..64498413c97 100644 --- a/src/devices/cpu/melps4/melps4.cpp +++ b/src/devices/cpu/melps4/melps4.cpp @@ -42,29 +42,29 @@ #include "melps4d.h" -melps4_cpu_device::melps4_cpu_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, int d_pins, u8 sm_page, u8 int_page) - : cpu_device(mconfig, type, tag, owner, clock) - , m_program_config("program", ENDIANNESS_LITTLE, 16, prgwidth, -1, program) - , m_data_config("data", ENDIANNESS_LITTLE, 8, datawidth, 0, data) - , m_prgwidth(prgwidth) - , m_datawidth(datawidth) - , m_d_pins(d_pins) - , m_sm_page(sm_page) - , m_int_page(int_page) - , m_xami_mask(0xf) - , m_sp_mask(0x7<<4) - , m_ba_op(0x01) - , m_stack_levels(3) - , m_read_k(*this, 0) - , m_read_d(*this, 0) - , m_read_s(*this, 0) - , m_read_f(*this, 0) - , m_write_d(*this) - , m_write_s(*this) - , m_write_f(*this) - , m_write_g(*this) - , m_write_u(*this) - , m_write_t(*this) +melps4_cpu_device::melps4_cpu_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, int d_pins, u8 sm_page, u8 int_page) : + cpu_device(mconfig, type, tag, owner, clock), + m_program_config("program", ENDIANNESS_LITTLE, 16, prgwidth, -1, program), + m_data_config("data", ENDIANNESS_LITTLE, 8, datawidth, 0, data), + m_prgwidth(prgwidth), + m_datawidth(datawidth), + m_d_pins(d_pins), + m_sm_page(sm_page), + m_int_page(int_page), + m_xami_mask(0xf), + m_sp_mask(0x7 << 4), + m_ba_op(0x01), + m_stack_levels(3), + m_read_k(*this, 0), + m_read_d(*this, 0), + m_read_s(*this, 0), + m_read_f(*this, 0), + m_write_d(*this), + m_write_s(*this), + m_write_f(*this), + m_write_g(*this), + m_write_u(*this), + m_write_t(*this) { } // disasm diff --git a/src/devices/cpu/sm510/sm510base.cpp b/src/devices/cpu/sm510/sm510base.cpp index 66e7925b8c2..c25f809fad5 100644 --- a/src/devices/cpu/sm510/sm510base.cpp +++ b/src/devices/cpu/sm510/sm510base.cpp @@ -37,8 +37,7 @@ sm510_base_device::sm510_base_device(const machine_config &mconfig, device_type m_read_b(*this, 1), m_write_s(*this), m_write_r(*this) -{ -} +{ } //------------------------------------------------- diff --git a/src/devices/cpu/ucom4/ucom4.cpp b/src/devices/cpu/ucom4/ucom4.cpp index d9245939cec..0a0ea9b604a 100644 --- a/src/devices/cpu/ucom4/ucom4.cpp +++ b/src/devices/cpu/ucom4/ucom4.cpp @@ -64,52 +64,46 @@ void ucom4_cpu_device::data_96x4(address_map &map) // device definitions -ucom4_cpu_device::ucom4_cpu_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, u32 clock, int family, int stack_levels, int prgwidth, address_map_constructor program, int datawidth, address_map_constructor data) - : cpu_device(mconfig, type, tag, owner, clock) - , m_program_config("program", ENDIANNESS_BIG, 8, prgwidth, 0, program) - , m_data_config("data", ENDIANNESS_BIG, 8, datawidth, 0, data) - , m_prgwidth(prgwidth) - , m_datawidth(datawidth) - , m_family(family) - , m_stack_levels(stack_levels) - , m_read_a(*this, 0) - , m_read_b(*this, 0) - , m_read_c(*this, 0) - , m_read_d(*this, 0) - , m_write_c(*this) - , m_write_d(*this) - , m_write_e(*this) - , m_write_f(*this) - , m_write_g(*this) - , m_write_h(*this) - , m_write_i(*this) -{ -} - -upd546_cpu_device::upd546_cpu_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock) - : ucom4_cpu_device(mconfig, NEC_D546, tag, owner, clock, NEC_UCOM43, 3 /* stack levels */, 11 /* prg width */, address_map_constructor(FUNC(upd546_cpu_device::program_2k), this), 7 /* data width */, address_map_constructor(FUNC(upd546_cpu_device::data_96x4), this)) -{ -} - -upd553_cpu_device::upd553_cpu_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock) - : ucom4_cpu_device(mconfig, NEC_D553, tag, owner, clock, NEC_UCOM43, 3, 11, address_map_constructor(FUNC(upd553_cpu_device::program_2k), this), 7, address_map_constructor(FUNC(upd553_cpu_device::data_96x4), this)) -{ -} - -upd557l_cpu_device::upd557l_cpu_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock) - : ucom4_cpu_device(mconfig, NEC_D557L, tag, owner, clock, NEC_UCOM43, 3, 11, address_map_constructor(FUNC(upd557l_cpu_device::program_2k), this), 7, address_map_constructor(FUNC(upd557l_cpu_device::data_96x4), this)) -{ -} - -upd650_cpu_device::upd650_cpu_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock) - : ucom4_cpu_device(mconfig, NEC_D650, tag, owner, clock, NEC_UCOM43, 3, 11, address_map_constructor(FUNC(upd650_cpu_device::program_2k), this), 7, address_map_constructor(FUNC(upd650_cpu_device::data_96x4), this)) -{ -} - -upd552_cpu_device::upd552_cpu_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock) - : ucom4_cpu_device(mconfig, NEC_D552, tag, owner, clock, NEC_UCOM44, 1, 10, address_map_constructor(FUNC(upd552_cpu_device::program_1k), this), 6, address_map_constructor(FUNC(upd552_cpu_device::data_64x4), this)) -{ -} +ucom4_cpu_device::ucom4_cpu_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, u32 clock, int family, int stack_levels, int prgwidth, address_map_constructor program, int datawidth, address_map_constructor data) : + cpu_device(mconfig, type, tag, owner, clock), + m_program_config("program", ENDIANNESS_BIG, 8, prgwidth, 0, program), + m_data_config("data", ENDIANNESS_BIG, 8, datawidth, 0, data), + m_prgwidth(prgwidth), + m_datawidth(datawidth), + m_family(family), + m_stack_levels(stack_levels), + m_read_a(*this, 0), + m_read_b(*this, 0), + m_read_c(*this, 0), + m_read_d(*this, 0), + m_write_c(*this), + m_write_d(*this), + m_write_e(*this), + m_write_f(*this), + m_write_g(*this), + m_write_h(*this), + m_write_i(*this) +{ } + +upd546_cpu_device::upd546_cpu_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock) : + ucom4_cpu_device(mconfig, NEC_D546, tag, owner, clock, NEC_UCOM43, 3 /* stack levels */, 11 /* prg width */, address_map_constructor(FUNC(upd546_cpu_device::program_2k), this), 7 /* data width */, address_map_constructor(FUNC(upd546_cpu_device::data_96x4), this)) +{ } + +upd553_cpu_device::upd553_cpu_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock) : + ucom4_cpu_device(mconfig, NEC_D553, tag, owner, clock, NEC_UCOM43, 3, 11, address_map_constructor(FUNC(upd553_cpu_device::program_2k), this), 7, address_map_constructor(FUNC(upd553_cpu_device::data_96x4), this)) +{ } + +upd557l_cpu_device::upd557l_cpu_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock) : + ucom4_cpu_device(mconfig, NEC_D557L, tag, owner, clock, NEC_UCOM43, 3, 11, address_map_constructor(FUNC(upd557l_cpu_device::program_2k), this), 7, address_map_constructor(FUNC(upd557l_cpu_device::data_96x4), this)) +{ } + +upd650_cpu_device::upd650_cpu_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock) : + ucom4_cpu_device(mconfig, NEC_D650, tag, owner, clock, NEC_UCOM43, 3, 11, address_map_constructor(FUNC(upd650_cpu_device::program_2k), this), 7, address_map_constructor(FUNC(upd650_cpu_device::data_96x4), this)) +{ } + +upd552_cpu_device::upd552_cpu_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock) : + ucom4_cpu_device(mconfig, NEC_D552, tag, owner, clock, NEC_UCOM44, 1, 10, address_map_constructor(FUNC(upd552_cpu_device::program_1k), this), 6, address_map_constructor(FUNC(upd552_cpu_device::data_64x4), this)) +{ } device_memory_interface::space_config_vector ucom4_cpu_device::memory_space_config() const { diff --git a/src/mame/handheld/hh_tms1k.cpp b/src/mame/handheld/hh_tms1k.cpp index 27c8cec3a2b..d81fe02c852 100644 --- a/src/mame/handheld/hh_tms1k.cpp +++ b/src/mame/handheld/hh_tms1k.cpp @@ -329,6 +329,7 @@ on Joerg Woerner's datamath.org: http://www.datamath.org/IC_List.htm #include "starwbc.lh" // clickable #include "starwlb.lh" // clickable #include "stopthief.lh" // clickable +#include "strobe.lh" // clickable #include "subwars.lh" #include "t3in1sa.lh" #include "tbreakup.lh" @@ -7683,8 +7684,13 @@ ROM_END * TMS1470NLHL MP1133 (die label: TMS1400, MP1133, 28H 01D D000 R000) * 9-digit 7seg VFD + 8 LEDs(4 green, 4 yellow), no sound - This is an astrological calculator, and also supports 4-function - calculations. Refer to the official manual on how to use this device. + This is an astrological calculator, and also supports 4-function calculations. + Refer to the official manual on how to use this device. + + known releases: + - World: Astro, published by Kosmos + - USA: Astro (model EC-312), published by Tandy (Radio Shack) + - Japan: Astrostar, published by Bandai *******************************************************************************/ @@ -7821,6 +7827,7 @@ ROM_END /******************************************************************************* Lakeside Strobe + * PCB label: Lakeside, REVN 3, MODEL 9020-1099, PART 9504-3007, TCI-A4H 94HB * TMS1100NLLE MCU, label MP3487-N1 (die label: 1100E, MP3487) * SN75492, 4 lamps, 1-bit sound @@ -7900,24 +7907,24 @@ static INPUT_PORTS_START( strobe ) PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_UNUSED ) PORT_START("IN.4") // R5 - PORT_CONFNAME( 0x05, 0x01, "Game" ) - PORT_CONFSETTING( 0x01, "1" ) - PORT_CONFSETTING( 0x00, "2" ) + PORT_CONFNAME( 0x05, 0x00, "Game" ) + PORT_CONFSETTING( 0x00, "1" ) + PORT_CONFSETTING( 0x01, "2" ) PORT_CONFSETTING( 0x04, "3" ) PORT_BIT( 0x0a, IP_ACTIVE_HIGH, IPT_UNUSED ) PORT_START("IN.5") // R6 - PORT_CONFNAME( 0x07, 0x01, DEF_STR( Players ) ) - PORT_CONFSETTING( 0x01, "1" ) - PORT_CONFSETTING( 0x00, "2" ) + PORT_CONFNAME( 0x07, 0x00, DEF_STR( Players ) ) + PORT_CONFSETTING( 0x00, "1" ) + PORT_CONFSETTING( 0x01, "2" ) PORT_CONFSETTING( 0x02, "3" ) PORT_CONFSETTING( 0x04, "4" ) PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_UNUSED ) PORT_START("IN.6") // R7 - PORT_CONFNAME( 0x06, 0x02, "Speed" ) - PORT_CONFSETTING( 0x02, "1" ) - PORT_CONFSETTING( 0x00, "2" ) + PORT_CONFNAME( 0x06, 0x00, "Speed" ) + PORT_CONFSETTING( 0x00, "1" ) + PORT_CONFSETTING( 0x02, "2" ) PORT_CONFSETTING( 0x04, "3" ) PORT_BIT( 0x09, IP_ACTIVE_HIGH, IPT_UNUSED ) @@ -7941,7 +7948,7 @@ void strobe_state::strobe(machine_config &config) m_maincpu->write_o().set(FUNC(strobe_state::write_o)); PWM_DISPLAY(config, m_display).set_size(1, 4); - //config.set_default_layout(layout_strobe); + config.set_default_layout(layout_strobe); // sound hardware SPEAKER(config, "mono").front_center(); @@ -16964,7 +16971,7 @@ SYST( 1980, liveafb, 0, 0, liveafb, liveafb, liveafb_state, SYST( 1979, astro, 0, 0, astro, astro, astro_state, empty_init, "Kosmos", "Astro", MACHINE_SUPPORTS_SAVE | MACHINE_NO_SOUND_HW ) -SYST( 1980, strobe, 0, 0, strobe, strobe, strobe_state, empty_init, "Lakeside", "Strobe", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK | MACHINE_NOT_WORKING ) +SYST( 1980, strobe, 0, 0, strobe, strobe, strobe_state, empty_init, "Lakeside", "Strobe", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK ) SYST( 1978, elecbowl, 0, 0, elecbowl, elecbowl, elecbowl_state, empty_init, "Marx", "Electronic Bowling (Marx)", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_CONTROLS | MACHINE_MECHANICAL | MACHINE_NOT_WORKING ) // *** diff --git a/src/mame/layout/astro.lay b/src/mame/layout/astro.lay index ec4f4cee64c..662899dab43 100644 --- a/src/mame/layout/astro.lay +++ b/src/mame/layout/astro.lay @@ -6,12 +6,14 @@ license:CC0-1.0 - - - - - - + + + + + + + + @@ -30,10 +32,7 @@ license:CC0-1.0 - - - - + @@ -45,23 +44,27 @@ license:CC0-1.0 - - - - + + + + - - + + + + - - + + - - + + - - + + + + diff --git a/src/mame/layout/strobe.lay b/src/mame/layout/strobe.lay new file mode 100644 index 00000000000..64791c10796 --- /dev/null +++ b/src/mame/layout/strobe.lay @@ -0,0 +1,202 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ]]> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -- cgit v1.2.3