From 85a0574628be2239c193168df22948fbc98a6828 Mon Sep 17 00:00:00 2001 From: AJR Date: Sun, 20 Feb 2022 14:43:05 -0500 Subject: New machines marked as NOT_WORKING ---------------------------------- WY-65 [Bitsavers] --- src/emu/xtal.cpp | 1 + src/mame/drivers/wy55.cpp | 46 ++++++++++++++++++++++++++++++++++++++++++---- src/mame/mame.lst | 1 + 3 files changed, 44 insertions(+), 4 deletions(-) diff --git a/src/emu/xtal.cpp b/src/emu/xtal.cpp index 75289859124..403993ab2d7 100644 --- a/src/emu/xtal.cpp +++ b/src/emu/xtal.cpp @@ -457,6 +457,7 @@ const double XTAL::known_xtals[] = { 57'272'727, /* 57.272727_MHz_XTAL Psikyo SH2 with /2 divider (16x NTSC subcarrier)*/ 57'283'200, /* 57.2832_MHz_XTAL Macintosh IIci RBV, 15-inch portrait display */ 58'000'000, /* 58_MHz_XTAL Magic Reel (Play System) */ + 58'982'400, /* 58.9824_MHz_XTAL Wyse WY-65 */ 59'292'000, /* 59.292_MHz_XTAL Data General D461 */ 60'000'000, /* 60_MHz_XTAL ARM610 */ 61'440'000, /* 61.44_MHz_XTAL Donkey Kong */ diff --git a/src/mame/drivers/wy55.cpp b/src/mame/drivers/wy55.cpp index 5625b5f7cd5..969ec23c918 100644 --- a/src/mame/drivers/wy55.cpp +++ b/src/mame/drivers/wy55.cpp @@ -7,6 +7,8 @@ The WY-55's custom video gate array is numbered 211019-05. The WY-185 is believed to run on similar hardware, though with 85 Hz and 60 Hz vertical refresh rates rather than 80 Hz and 70 Hz. + WY-65's "PELVIS" ASIC (QFP160) supports refresh rates up to 94 Hz. + ***********************************************************************************************************************************/ #include "emu.h" @@ -15,6 +17,8 @@ #include "machine/nvram.h" #include "screen.h" +namespace { + class wy55_state : public driver_device { public: @@ -27,16 +31,20 @@ public: } void wy55(machine_config &config); + void wy65(machine_config &config); protected: virtual void machine_start() override; virtual void driver_start() override; private: + void wy65_progbank_w(u8 data) { m_progbank->set_entry(data & 0x03); } + u32 screen_update(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect); void prog_map(address_map &map); void ext_map(address_map &map); + void wy65_ext_map(address_map &map); required_device m_maincpu; required_device m_screen; @@ -46,7 +54,8 @@ private: void wy55_state::machine_start() { - m_progbank->configure_entries(0, 2, memregion("program")->base(), 0x10000); + memory_region *rgn = memregion("program"); + m_progbank->configure_entries(0, rgn->bytes() / 0x10000, rgn->base(), 0x10000); m_progbank->set_entry(0); } @@ -68,6 +77,12 @@ void wy55_state::ext_map(address_map &map) //map(0xf028, 0xf037).rw("uart", FUNC(pc16552_device::read), FUNC(pc16552_device::write)); } +void wy55_state::wy65_ext_map(address_map &map) +{ + map(0x0000, 0xdfff).ram(); + map(0xee02, 0xee02).w(FUNC(wy55_state::wy65_progbank_w)); +} + static INPUT_PORTS_START(wy55) INPUT_PORTS_END @@ -90,16 +105,36 @@ void wy55_state::wy55(machine_config &config) m_screen->set_screen_update(FUNC(wy55_state::screen_update)); } +void wy55_state::wy65(machine_config &config) +{ + DS80C320(config, m_maincpu, 58.9824_MHz_XTAL / 4); + m_maincpu->set_addrmap(AS_PROGRAM, &wy55_state::prog_map); + m_maincpu->set_addrmap(AS_IO, &wy55_state::wy65_ext_map); + + // TODO: NVRAM? (4x W24257S-70LL on board) + + SCREEN(config, m_screen, SCREEN_TYPE_RASTER); + m_screen->set_raw(58.9824_MHz_XTAL, 1575, 0, 1188, 448, 0, 416); // dimensions probably wrong + m_screen->set_screen_update(FUNC(wy55_state::screen_update)); +} + ROM_START(wy55) ROM_REGION(0x20000, "program", 0) - ROM_LOAD("251352-12.bin", 0x0000, 0x20000, CRC(efe41862) SHA1(52ee76d636b166fa10a37356aef81011a9b079cc)) // v2.1 + ROM_LOAD("251352-12.bin", 0x00000, 0x20000, CRC(efe41862) SHA1(52ee76d636b166fa10a37356aef81011a9b079cc)) // v2.1 +ROM_END + +ROM_START(wy65) + ROM_REGION(0x40000, "program", 0) + ROM_LOAD("251455-03.bin", 0x00000, 0x40000, CRC(2afbf73b) SHA1(5a29b78ef377a6e2f2f91ff42a7e4d86eb511a5f)) // v2.1 ROM_END void wy55_state::driver_start() { - uint8_t *rom = memregion("program")->base(); - for (offs_t base = 0x00000; base < 0x20000; base += 0x4000) + memory_region *rgn = memregion("program"); + uint8_t *rom = rgn->base(); + + for (offs_t base = 0x00000; base < rgn->bytes(); base += 0x4000) { std::vector orig(&rom[base], &rom[base + 0x4000]); @@ -108,4 +143,7 @@ void wy55_state::driver_start() } } +} // anonymous namespace + COMP(1993, wy55, 0, 0, wy55, wy55, wy55_state, empty_init, "Wyse Technology", "WY-55 (v2.1)", MACHINE_IS_SKELETON) +COMP(1996, wy65, 0, 0, wy65, wy55, wy55_state, empty_init, "Wyse Technology", "WY-65 (v2.1)", MACHINE_IS_SKELETON) diff --git a/src/mame/mame.lst b/src/mame/mame.lst index 12e3071e33d..37014a210bd 100644 --- a/src/mame/mame.lst +++ b/src/mame/mame.lst @@ -43747,6 +43747,7 @@ wy75 // WY-75 @source:wy55.cpp wy55 // WY-55 +wy65 // WY-65 @source:wy60.cpp wy60 // WY-60 -- cgit v1.2.3