summaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
author AJR <ajrhacker@users.noreply.github.com>2022-02-20 14:43:05 -0500
committer AJR <ajrhacker@users.noreply.github.com>2022-02-20 14:43:05 -0500
commit85a0574628be2239c193168df22948fbc98a6828 (patch)
tree841f215b702b3ce8683759c9cc789da42dfb84ef
parent035d0c926d734182b5dfaf880deca98293058b16 (diff)
New machines marked as NOT_WORKING
---------------------------------- WY-65 [Bitsavers]
-rw-r--r--src/emu/xtal.cpp1
-rw-r--r--src/mame/drivers/wy55.cpp46
-rw-r--r--src/mame/mame.lst1
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<mcs51_cpu_device> m_maincpu;
required_device<screen_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<uint8_t> 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