From 8edc2c5f91aaaa6dbc81400b54c584bb489b619d Mon Sep 17 00:00:00 2001 From: AJR Date: Sat, 12 Sep 2020 09:20:55 -0400 Subject: [PATCH] New machines marked as NOT_WORKING ---------------------------------- Sony Trinitron Color Video Monitor BVM-20F1E [Corrado Tomaselli] --- scripts/target/mame/mess.lua | 1 + src/devices/cpu/h8500/h8534.cpp | 32 +++++++++++- src/devices/cpu/h8500/h8534.h | 26 +++++++++- src/devices/machine/intelfsh.cpp | 11 ++++ src/devices/machine/intelfsh.h | 8 +++ src/mame/drivers/bvm.cpp | 88 ++++++++++++++++++++++++++++++++ src/mame/mame.lst | 3 ++ src/mame/mess.flt | 1 + 8 files changed, 166 insertions(+), 4 deletions(-) create mode 100644 src/mame/drivers/bvm.cpp diff --git a/scripts/target/mame/mess.lua b/scripts/target/mame/mess.lua index cd6242983a0..879f722a883 100644 --- a/scripts/target/mame/mess.lua +++ b/scripts/target/mame/mess.lua @@ -3631,6 +3631,7 @@ files { createMESSProjects(_target, _subtarget, "sony") files { + MAME_DIR .. "src/mame/drivers/bvm.cpp", MAME_DIR .. "src/mame/drivers/pockstat.cpp", MAME_DIR .. "src/mame/drivers/psx.cpp", MAME_DIR .. "src/mame/machine/psxcd.cpp", diff --git a/src/devices/cpu/h8500/h8534.cpp b/src/devices/cpu/h8500/h8534.cpp index 065d83adc5e..dd33af71128 100644 --- a/src/devices/cpu/h8500/h8534.cpp +++ b/src/devices/cpu/h8500/h8534.cpp @@ -2,7 +2,7 @@ // copyright-holders:AJR /*************************************************************************** - Hitachi H8/534 + Hitachi H8/534 & H8/536 ***************************************************************************/ @@ -10,9 +10,15 @@ #include "h8534.h" DEFINE_DEVICE_TYPE(HD6475348, hd6475348_device, "hd6475348", "Hitachi HD6475348 (H8/534)") +DEFINE_DEVICE_TYPE(HD6435368, hd6435368_device, "hd6435368", "Hitachi HD6435368 (H8/536)") + +h8534_device::h8534_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, u32 clock, address_map_constructor map) + : h8500_device(mconfig, type, tag, owner, clock, 20, 8, 11, map) +{ +} h8534_device::h8534_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, u32 clock) - : h8500_device(mconfig, type, tag, owner, clock, 20, 8, 11, address_map_constructor(FUNC(h8534_device::internal_map), this)) + : h8534_device(mconfig, type, tag, owner, clock, address_map_constructor(FUNC(h8534_device::internal_map), this)) { } @@ -21,9 +27,31 @@ hd6475348_device::hd6475348_device(const machine_config &mconfig, const char *ta { } +h8536_device::h8536_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, u32 clock) + : h8534_device(mconfig, type, tag, owner, clock, address_map_constructor(FUNC(h8536_device::internal_map), this)) +{ +} + +hd6435368_device::hd6435368_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock) + : h8536_device(mconfig, HD6435368, tag, owner, clock) +{ +} + void h8534_device::internal_map(address_map &map) { map(0x0000, 0x7fff).rom().region(DEVICE_SELF, 0); // modes 2, 4, 7 + register_field_map(map); +} + +void h8536_device::internal_map(address_map &map) +{ + //map(0x0000, 0xee7f).rom().region(DEVICE_SELF, 0); // mode 2? + //map(0x0000, 0xf67f).rom().region(DEVICE_SELF, 0); // modes 4, 7 + register_field_map(map); +} + +void h8534_device::register_field_map(address_map &map) +{ #if 0 map(0xfe80, 0xfe80).w(FUNC(h8534_device::p1ddr_w)); map(0xfe81, 0xfe81).w(FUNC(h8534_device::p2ddr_w)); diff --git a/src/devices/cpu/h8500/h8534.h b/src/devices/cpu/h8500/h8534.h index 7b375ba8351..8e5c357ff1b 100644 --- a/src/devices/cpu/h8500/h8534.h +++ b/src/devices/cpu/h8500/h8534.h @@ -11,8 +11,13 @@ class h8534_device : public h8500_device { protected: + // delegating constructor h8534_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, u32 clock); + h8534_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, u32 clock, address_map_constructor map); + + void register_field_map(address_map &map); + private: void internal_map(address_map &map); }; @@ -24,6 +29,23 @@ public: hd6475348_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock); }; -DECLARE_DEVICE_TYPE(HD6475348, hd6475348_device) +class h8536_device : public h8534_device +{ +protected: + h8536_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, u32 clock); -#endif // MAME_CPU_H8500_H8532_H +private: + void internal_map(address_map &map); +}; + +class hd6435368_device : public h8536_device +{ +public: + // device type constructor + hd6435368_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock); +}; + +DECLARE_DEVICE_TYPE(HD6475348, hd6475348_device) +DECLARE_DEVICE_TYPE(HD6435368, hd6435368_device) + +#endif // MAME_CPU_H8500_H8534_H diff --git a/src/devices/machine/intelfsh.cpp b/src/devices/machine/intelfsh.cpp index 77281819bdf..af8e50dc2d0 100644 --- a/src/devices/machine/intelfsh.cpp +++ b/src/devices/machine/intelfsh.cpp @@ -120,6 +120,8 @@ DEFINE_DEVICE_TYPE(SST_39VF400A, sst_39vf400a_device, "sst_39v DEFINE_DEVICE_TYPE(ATMEL_49F4096, atmel_49f4096_device, "atmel_49f4096", "Atmel AT49F4096 Flash") +DEFINE_DEVICE_TYPE(CAT28F020, cat28f020_device, "cat28f020", "CSI CAT28F020 Flash") + //************************************************************************** @@ -226,6 +228,12 @@ intelfsh_device::intelfsh_device(const machine_config &mconfig, device_type type m_maker_id = MFG_AMD; m_device_id = 0x3b; break; + case FLASH_CAT28F020: + m_bits = 8; + m_size = 0x40000; + m_maker_id = MFG_CATALYST; + m_device_id = 0xbd; + break; case FLASH_INTEL_28F320J3D: m_bits = 16; m_size = 0x400000; @@ -450,6 +458,9 @@ amd_29f800b_16bit_device::amd_29f800b_16bit_device(const machine_config &mconfig amd_29lv200t_device::amd_29lv200t_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : intelfsh8_device(mconfig, AMD_29LV200T, tag, owner, clock, FLASH_AMD_29LV200T) { } +cat28f020_device::cat28f020_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) + : intelfsh8_device(mconfig, CAT28F020, tag, owner, clock, FLASH_CAT28F020) { } + intel_e28f008sa_device::intel_e28f008sa_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : intelfsh8_device(mconfig, INTEL_E28F008SA, tag, owner, clock, FLASH_INTEL_E28F008SA) { } diff --git a/src/devices/machine/intelfsh.h b/src/devices/machine/intelfsh.h index bde0b0d4c61..8001b2fc5ce 100644 --- a/src/devices/machine/intelfsh.h +++ b/src/devices/machine/intelfsh.h @@ -30,6 +30,7 @@ public: FLASH_AMD_29F800T, FLASH_AMD_29F800B_16BIT, FLASH_AMD_29LV200T, + FLASH_CAT28F020, FLASH_SHARP_LH28F016S, FLASH_SHARP_LH28F016S_16BIT, FLASH_INTEL_E28F008SA, @@ -365,6 +366,12 @@ public: atmel_49f4096_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock = 0); }; +class cat28f020_device : public intelfsh8_device +{ +public: + cat28f020_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock = 0); +}; + // device type definition DECLARE_DEVICE_TYPE(INTEL_28F016S5, intel_28f016s5_device) @@ -406,5 +413,6 @@ DECLARE_DEVICE_TYPE(INTEL_28F320J3D, intel_28f320j3d_device) DECLARE_DEVICE_TYPE(INTEL_28F320J5, intel_28f320j5_device) DECLARE_DEVICE_TYPE(SST_39VF400A, sst_39vf400a_device) DECLARE_DEVICE_TYPE(ATMEL_49F4096, atmel_49f4096_device) +DECLARE_DEVICE_TYPE(CAT28F020, cat28f020_device) #endif // MAME_MACHINE_INTELFSH_H diff --git a/src/mame/drivers/bvm.cpp b/src/mame/drivers/bvm.cpp new file mode 100644 index 00000000000..704f64c4129 --- /dev/null +++ b/src/mame/drivers/bvm.cpp @@ -0,0 +1,88 @@ +// license:BSD-3-Clause +// copyright-holders:AJR +/**************************************************************************** + + Skeleton driver for Sony BVM-{14|20}{E|F}1{E|U} series monitors. + + List of major ICs: + - Hitachi HD6435368CP10 H8/536 [IC1] + or: Hitachi HD6475368CP10 C764 + or: Hitachi HD6435368CP10 W51 + near 20 MHz XTAL + - CSI CAT28F020P-15 2 Megabit CMOS Flash Memory [IC3] + - Sony CXK58257AP-10 [IC4] + or: Sanyo LC35256D-10 + next to: Sony CR2025 3V Lithium Cell [BAT1] + - Sony CXD1095Q [IC5, IC6] + - NEC D6453GT-101 On-Screen Character Display [IC7] + - Sony CXA1727Q [IC102] + - Sony CXD2343S [IC105] + - Hitachi HN27C256AG-10 [IC107, IC108] + - Sony CXD1171M 8-Bit D/A Converter [IC109] + - Sony CXD1030M Sync Signal Generator [IC120] + - Zilog Z8622812PSC Line 21 Closed-Caption Controller [IC124] + - Sony CXD1132Q Time Code Generator/Reader [IC126] + +****************************************************************************/ + +#include "emu.h" +#include "cpu/h8500/h8534.h" +#include "machine/cxd1095.h" +#include "machine/intelfsh.h" +#include "machine/nvram.h" + +class bvm_state : public driver_device +{ +public: + bvm_state(const machine_config &mconfig, device_type type, const char *tag) + : driver_device(mconfig, type, tag) + , m_maincpu(*this, "maincpu") + { + } + + void bvm(machine_config &config); + +private: + void mem_map(address_map &map); + + required_device m_maincpu; +}; + + +void bvm_state::mem_map(address_map &map) +{ + // internal ROM not used here? + map(0x00000, 0x0f67f).rw("flash", FUNC(intelfsh8_device::read), FUNC(intelfsh8_device::write)); + map(0x10000, 0x17fff).ram().share("nvram"); + map(0x18000, 0x18007).rw("cxdio0", FUNC(cxd1095_device::read), FUNC(cxd1095_device::write)); + map(0x18020, 0x18027).rw("cxdio1", FUNC(cxd1095_device::read), FUNC(cxd1095_device::write)); + map(0x40000, 0x7ffff).rw("flash", FUNC(intelfsh8_device::read), FUNC(intelfsh8_device::write)); +} + + +static INPUT_PORTS_START(bvm) +INPUT_PORTS_END + +void bvm_state::bvm(machine_config &config) +{ + HD6435368(config, m_maincpu, 20_MHz_XTAL); + m_maincpu->set_addrmap(AS_PROGRAM, &bvm_state::mem_map); + + CAT28F020(config, "flash"); + + NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_0); + + CXD1095(config, "cxdio0"); + CXD1095(config, "cxdio1"); +} + +ROM_START(bvm20f1e) + ROM_REGION(0x40000, "flash", 0) + ROM_LOAD("cat28f020p-15.ic3", 0x00000, 0x40000, CRC(43a1bdf8) SHA1(65cf61921ac86a8baa3a3da4ed0b3e61aa2f03b3)) + + ROM_REGION(0x10000, "eproms", 0) + ROM_LOAD("cd93-27c256.ic107", 0x0000, 0x8000, CRC(f8da1f2f) SHA1(b2f5a730d0f26f2a12fd62a111ee429da8426877)) + ROM_LOAD("541d-27c256.ic108", 0x8000, 0x8000, CRC(9da347f9) SHA1(413096830bdcae6404e9d686abb56e60d58bdc2f)) +ROM_END + +SYST(1998, bvm20f1e, 0, 0, bvm, bvm, bvm_state, empty_init, "Sony", "Trinitron Color Video Monitor BVM-20F1E / BVM-20F1U", MACHINE_IS_SKELETON) diff --git a/src/mame/mame.lst b/src/mame/mame.lst index 0bb1c9e7c31..9dceb4bfb43 100644 --- a/src/mame/mame.lst +++ b/src/mame/mame.lst @@ -9518,6 +9518,9 @@ busicom // @source:buster.cpp buster // (c) 1987 Marian Electronics Ltd. +@source:bvm.cpp +bvm20f1e // + @source:bw12.cpp bw12 // bw14 // diff --git a/src/mame/mess.flt b/src/mame/mess.flt index 5bc0b7d10c1..8ab3ca34c44 100644 --- a/src/mame/mess.flt +++ b/src/mame/mess.flt @@ -128,6 +128,7 @@ br8641.cpp braiplus.cpp bullet.cpp busicom.cpp +bvm.cpp bw12.cpp bw2.cpp c10.cpp