mirror of
https://github.com/holub/mame
synced 2025-04-22 08:22:15 +03:00
New machines marked as NOT_WORKING
---------------------------------- WY-100 [Al Kossow] Z-29 [Al Kossow]
This commit is contained in:
parent
9b49217ed4
commit
154276d260
@ -3582,6 +3582,7 @@ files {
|
||||
createMESSProjects(_target, _subtarget, "zenith")
|
||||
files {
|
||||
MAME_DIR .. "src/mame/drivers/z100.cpp",
|
||||
MAME_DIR .. "src/mame/drivers/z29.cpp",
|
||||
}
|
||||
|
||||
createMESSProjects(_target, _subtarget, "zpa")
|
||||
@ -3802,6 +3803,7 @@ files {
|
||||
MAME_DIR .. "src/mame/drivers/vp415.cpp",
|
||||
MAME_DIR .. "src/mame/drivers/vsmilepro.cpp",
|
||||
MAME_DIR .. "src/mame/drivers/wicat.cpp",
|
||||
MAME_DIR .. "src/mame/drivers/wy100.cpp",
|
||||
MAME_DIR .. "src/mame/drivers/wyse.cpp",
|
||||
MAME_DIR .. "src/mame/drivers/xor100.cpp",
|
||||
MAME_DIR .. "src/mame/includes/xor100.h",
|
||||
|
@ -2,7 +2,8 @@
|
||||
// copyright-holders:Curt Coder
|
||||
/**********************************************************************
|
||||
|
||||
Intel 8275 Programmable CRT Controller emulation
|
||||
Intel 8275 Programmable CRT Controller
|
||||
Intel 8276 Small Systems CRT Controller
|
||||
|
||||
**********************************************************************/
|
||||
|
||||
@ -40,7 +41,7 @@ static const int DMA_BURST_SPACING[] = { 0, 7, 15, 23, 31, 39, 47, 55 };
|
||||
((m_param[REG_SCN1] & 0x7f) + 1)
|
||||
|
||||
#define VRTC_ROW_COUNT \
|
||||
((m_param[REG_SCN2] >> 5) + 1)
|
||||
((m_param[REG_SCN2] >> 6) + 1)
|
||||
|
||||
#define CHARACTER_ROWS_PER_FRAME \
|
||||
((m_param[REG_SCN2] & 0x3f) + 1)
|
||||
@ -83,8 +84,9 @@ const int i8275_device::character_attribute[3][16] =
|
||||
// DEVICE DEFINITIONS
|
||||
//**************************************************************************
|
||||
|
||||
// device type definition
|
||||
// device type definitions
|
||||
DEFINE_DEVICE_TYPE(I8275, i8275_device, "i8275", "Intel 8275 CRTC")
|
||||
DEFINE_DEVICE_TYPE(I8276, i8276_device, "i8276", "Intel 8276 CRTC")
|
||||
|
||||
|
||||
|
||||
@ -96,8 +98,8 @@ DEFINE_DEVICE_TYPE(I8275, i8275_device, "i8275", "Intel 8275 CRTC")
|
||||
// i8275_device - constructor
|
||||
//-------------------------------------------------
|
||||
|
||||
i8275_device::i8275_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) :
|
||||
device_t(mconfig, I8275, tag, owner, clock),
|
||||
i8275_device::i8275_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) :
|
||||
device_t(mconfig, type, tag, owner, clock),
|
||||
device_video_interface(mconfig, *this),
|
||||
m_write_irq(*this),
|
||||
m_write_drq(*this),
|
||||
@ -128,6 +130,16 @@ i8275_device::i8275_device(const machine_config &mconfig, const char *tag, devic
|
||||
memset(m_param, 0x00, sizeof(m_param));
|
||||
}
|
||||
|
||||
i8275_device::i8275_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) :
|
||||
i8275_device(mconfig, I8275, tag, owner, clock)
|
||||
{
|
||||
}
|
||||
|
||||
i8276_device::i8276_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) :
|
||||
i8275_device(mconfig, I8276, tag, owner, clock)
|
||||
{
|
||||
}
|
||||
|
||||
|
||||
//-------------------------------------------------
|
||||
// device_start - device-specific startup
|
||||
|
@ -102,6 +102,8 @@ public:
|
||||
uint32_t screen_update(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
|
||||
|
||||
protected:
|
||||
i8275_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock);
|
||||
|
||||
// device-level overrides
|
||||
virtual void device_start() override;
|
||||
virtual void device_reset() override;
|
||||
@ -235,8 +237,16 @@ protected:
|
||||
emu_timer *m_scanline_timer;
|
||||
};
|
||||
|
||||
class i8276_device : public i8275_device
|
||||
{
|
||||
public:
|
||||
// construction/destruction
|
||||
i8276_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
|
||||
};
|
||||
|
||||
|
||||
// device type definition
|
||||
DECLARE_DEVICE_TYPE(I8275, i8275_device)
|
||||
DECLARE_DEVICE_TYPE(I8276, i8276_device)
|
||||
|
||||
#endif // MAME_VIDEO_I8275_H
|
||||
|
@ -140,6 +140,7 @@ const double XTAL::known_xtals[] = {
|
||||
9'877'680, /* 9.87768_MHz_XTAL Microterm 420 */
|
||||
9'987'000, /* 9.987_MHz_XTAL Crazy Balloon */
|
||||
10'000'000, /* 10_MHz_XTAL - */
|
||||
10'137'600, /* 10.1376_MHz_XTAL Wyse WY-100 */
|
||||
10'245'000, /* 10.245_MHz_XTAL PES Speech box */
|
||||
10'380'000, /* 10.38_MHz_XTAL Fairlight Q219 Lightpen/Graphics Card */
|
||||
10'500'000, /* 10.5_MHz_XTAL Agat-7 */
|
||||
@ -193,6 +194,7 @@ const double XTAL::known_xtals[] = {
|
||||
14'318'181, /* 14.318181_MHz_XTAL Extremely common, used on 100's of PCBs (4x NTSC subcarrier) */
|
||||
14'705'882, /* 14.705882_MHz_XTAL Aleck64 */
|
||||
14'745'600, /* 14.7456_MHz_XTAL Namco System 12 & System Super 22/23 for JVS */
|
||||
14'784'000, /* 14.784_MHz_XTAL Zenith Z-29 */
|
||||
14'916'000, /* 14.916_MHz_XTAL ADDS Viewpoint 122 */
|
||||
14'976'000, /* 14.976_MHz_XTAL CIT-101 80-column display clock */
|
||||
15'000'000, /* 15_MHz_XTAL Sinclair QL, Amusco Poker */
|
||||
@ -226,6 +228,7 @@ const double XTAL::known_xtals[] = {
|
||||
17'971'200, /* 17.9712_MHz_XTAL - */
|
||||
18'000'000, /* 18_MHz_XTAL S.A.R, Ikari Warriors 3 */
|
||||
18'432'000, /* 18.432_MHz_XTAL Extremely common, used on 100's of PCBs (48000 * 384) */
|
||||
18'480'000, /* 18.48_MHz_XTAL Wyse WY-100 video */
|
||||
18'575'000, /* 18.575_MHz_XTAL Visual 102, Visual 220 */
|
||||
18'720'000, /* 18.72_MHz_XTAL Nokia MikroMikko 1 */
|
||||
18'869'600, /* 18.8696_MHz_XTAL Memorex 2178 */
|
||||
|
112
src/mame/drivers/wy100.cpp
Normal file
112
src/mame/drivers/wy100.cpp
Normal file
@ -0,0 +1,112 @@
|
||||
// license:BSD-3-Clause
|
||||
// copyright-holders:AJR
|
||||
/*******************************************************************************
|
||||
|
||||
Skeleton driver for Wyse WY-100 video terminal.
|
||||
|
||||
The WY-100 was Wyse Technology's first product. An unusual feature of
|
||||
this terminal's keyboard is three banks of user-accessible DIP switches.
|
||||
|
||||
*******************************************************************************/
|
||||
|
||||
#include "emu.h"
|
||||
#include "cpu/mcs48/mcs48.h"
|
||||
#include "machine/bankdev.h"
|
||||
#include "video/i8275.h"
|
||||
#include "screen.h"
|
||||
|
||||
class wy100_state : public driver_device
|
||||
{
|
||||
public:
|
||||
wy100_state(const machine_config &mconfig, device_type type, const char *tag)
|
||||
: driver_device(mconfig, type, tag)
|
||||
, m_maincpu(*this, "maincpu")
|
||||
, m_bankdev(*this, "bankdev")
|
||||
, m_crtc(*this, "crtc%u", 1U)
|
||||
, m_chargen(*this, "chargen")
|
||||
{
|
||||
}
|
||||
|
||||
void wy100(machine_config &config);
|
||||
|
||||
private:
|
||||
DECLARE_WRITE8_MEMBER(crtc_w);
|
||||
DECLARE_WRITE8_MEMBER(p2_w);
|
||||
|
||||
void prg_map(address_map &map);
|
||||
void io_map(address_map &map);
|
||||
void bank_map(address_map &map);
|
||||
|
||||
required_device<mcs48_cpu_device> m_maincpu;
|
||||
required_device<address_map_bank_device> m_bankdev;
|
||||
required_device_array<i8276_device, 2> m_crtc;
|
||||
|
||||
required_region_ptr<u8> m_chargen;
|
||||
};
|
||||
|
||||
WRITE8_MEMBER(wy100_state::crtc_w)
|
||||
{
|
||||
m_crtc[0]->write(space, offset >> 8, data);
|
||||
m_crtc[1]->write(space, offset >> 8, data);
|
||||
}
|
||||
|
||||
WRITE8_MEMBER(wy100_state::p2_w)
|
||||
{
|
||||
m_bankdev->set_bank(data & 0x1f);
|
||||
}
|
||||
|
||||
void wy100_state::prg_map(address_map &map)
|
||||
{
|
||||
map(0x000, 0xfff).rom().region("maincpu", 0);
|
||||
}
|
||||
|
||||
void wy100_state::io_map(address_map &map)
|
||||
{
|
||||
map(0x00, 0xff).m(m_bankdev, FUNC(address_map_bank_device::amap8));
|
||||
}
|
||||
|
||||
void wy100_state::bank_map(address_map &map)
|
||||
{
|
||||
map(0x0000, 0x01ff).w(FUNC(wy100_state::crtc_w));
|
||||
map(0x0c00, 0x1fff).ram();
|
||||
}
|
||||
|
||||
|
||||
static INPUT_PORTS_START(wy100)
|
||||
INPUT_PORTS_END
|
||||
|
||||
|
||||
void wy100_state::wy100(machine_config &config)
|
||||
{
|
||||
I8039(config, m_maincpu, 10.1376_MHz_XTAL); // INS8039N-11
|
||||
m_maincpu->set_addrmap(AS_PROGRAM, &wy100_state::prg_map);
|
||||
m_maincpu->set_addrmap(AS_IO, &wy100_state::io_map);
|
||||
m_maincpu->p2_out_cb().set(FUNC(wy100_state::p2_w));
|
||||
|
||||
ADDRESS_MAP_BANK(config, m_bankdev);
|
||||
m_bankdev->set_addrmap(0, &wy100_state::bank_map);
|
||||
m_bankdev->set_data_width(8);
|
||||
m_bankdev->set_addr_width(13);
|
||||
m_bankdev->set_stride(0x100);
|
||||
|
||||
//SCN2651(config, "pci", 10.1376_MHz_XTAL / 2); // INS2651N
|
||||
|
||||
screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
|
||||
screen.set_raw(18.48_MHz_XTAL, 1000, 0, 800, 308, 0, 286);
|
||||
screen.set_screen_update("crtc1", FUNC(i8276_device::screen_update));
|
||||
|
||||
I8276(config, m_crtc[0], 18.48_MHz_XTAL / 10).set_character_width(10);
|
||||
I8276(config, m_crtc[1], 18.48_MHz_XTAL / 10).set_character_width(10);
|
||||
}
|
||||
|
||||
|
||||
ROM_START(wy100)
|
||||
ROM_REGION(0x1000, "maincpu", 0)
|
||||
ROM_LOAD("wy100_00401f.bin", 0x0000, 0x1000, CRC(1f71de8f) SHA1(2bd9f712aba8b44823ce0b3e111da7b472a1ab38))
|
||||
|
||||
ROM_REGION(0x0800, "chargen", 0)
|
||||
ROM_LOAD("wy100_23-002-01c.bin", 0x0000, 0x0800, CRC(93c31537) SHA1(085e5ad110a76bee83e819a718a7d4cbfb8e07e7))
|
||||
ROM_END
|
||||
|
||||
|
||||
COMP(1981, wy100, 0, 0, wy100, wy100, wy100_state, empty_init, "Wyse Technology", "WY-100", MACHINE_IS_SKELETON)
|
122
src/mame/drivers/z29.cpp
Normal file
122
src/mame/drivers/z29.cpp
Normal file
@ -0,0 +1,122 @@
|
||||
// license:BSD-3-Clause
|
||||
// copyright-holders:AJR
|
||||
/***************************************************************************
|
||||
|
||||
Skeleton driver for Zenith Z-29 (alias Heathkit H-29) video terminal.
|
||||
|
||||
****************************************************************************/
|
||||
|
||||
#include "emu.h"
|
||||
#include "cpu/mcs51/mcs51.h"
|
||||
#include "cpu/mcs48/mcs48.h"
|
||||
#include "machine/x2212.h"
|
||||
#include "video/i8275.h"
|
||||
#include "screen.h"
|
||||
|
||||
class z29_state : public driver_device
|
||||
{
|
||||
public:
|
||||
z29_state(const machine_config &mconfig, device_type type, const char *tag)
|
||||
: driver_device(mconfig, type, tag)
|
||||
, m_maincpu(*this, "maincpu")
|
||||
, m_crtc(*this, "crtc%u", 1U)
|
||||
, m_nvram(*this, "nvram")
|
||||
, m_charmem(*this, "charmem")
|
||||
, m_attrmem(*this, "attrmem")
|
||||
, m_chargen(*this, "chargen")
|
||||
{
|
||||
}
|
||||
|
||||
void z29(machine_config &config);
|
||||
|
||||
private:
|
||||
u8 dummy_psen_r();
|
||||
DECLARE_WRITE8_MEMBER(crtc_w);
|
||||
DECLARE_WRITE8_MEMBER(latch_12k_w);
|
||||
|
||||
void prg_map(address_map &map);
|
||||
void ext_map(address_map &map);
|
||||
|
||||
required_device<mcs51_cpu_device> m_maincpu;
|
||||
required_device_array<i8276_device, 2> m_crtc;
|
||||
required_device<x2210_device> m_nvram;
|
||||
|
||||
required_shared_ptr<u8> m_charmem;
|
||||
required_shared_ptr<u8> m_attrmem;
|
||||
required_region_ptr<u8> m_chargen;
|
||||
};
|
||||
|
||||
u8 z29_state::dummy_psen_r()
|
||||
{
|
||||
return 0x24;
|
||||
}
|
||||
|
||||
WRITE8_MEMBER(z29_state::crtc_w)
|
||||
{
|
||||
m_crtc[0]->write(space, offset, data);
|
||||
m_crtc[1]->write(space, offset, data);
|
||||
}
|
||||
|
||||
WRITE8_MEMBER(z29_state::latch_12k_w)
|
||||
{
|
||||
m_nvram->store(!BIT(data, 0));
|
||||
m_nvram->recall(!BIT(data, 3));
|
||||
}
|
||||
|
||||
void z29_state::prg_map(address_map &map)
|
||||
{
|
||||
map(0x0000, 0x1fff).rom().region("maincpu", 0);
|
||||
map(0x2000, 0xffff).r(FUNC(z29_state::dummy_psen_r));
|
||||
}
|
||||
|
||||
void z29_state::ext_map(address_map &map)
|
||||
{
|
||||
map(0x2000, 0x2001).mirror(0xffe).r("crtc1", FUNC(i8276_device::read)).w(FUNC(z29_state::crtc_w));
|
||||
map(0x3000, 0x3000).mirror(0xfff).w(FUNC(z29_state::latch_12k_w));
|
||||
map(0x4000, 0x47ff).mirror(0x800).ram().share("attrmem");
|
||||
map(0x5000, 0x57ff).mirror(0x800).ram().share("charmem");
|
||||
map(0x7000, 0x703f).mirror(0xfc0).rw("nvram", FUNC(x2210_device::read), FUNC(x2210_device::write));
|
||||
}
|
||||
|
||||
|
||||
static INPUT_PORTS_START(z29)
|
||||
INPUT_PORTS_END
|
||||
|
||||
|
||||
void z29_state::z29(machine_config &config)
|
||||
{
|
||||
I8031(config, m_maincpu, 14.784_MHz_XTAL / 2);
|
||||
m_maincpu->set_addrmap(AS_PROGRAM, &z29_state::prg_map);
|
||||
m_maincpu->set_addrmap(AS_IO, &z29_state::ext_map);
|
||||
m_maincpu->port_in_cb<1>().set_constant(0xfd); // hack around keyboard not working
|
||||
|
||||
X2210(config, m_nvram);
|
||||
|
||||
screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
|
||||
screen.set_raw(14.784_MHz_XTAL, 880, 0, 640, 280, 0, 250);
|
||||
screen.set_screen_update("crtc1", FUNC(i8276_device::screen_update));
|
||||
|
||||
I8276(config, m_crtc[0], 14.784_MHz_XTAL / 8).set_character_width(8);
|
||||
m_crtc[0]->drq_wr_callback().set_inputline(m_maincpu, MCS51_INT0_LINE);
|
||||
m_crtc[0]->irq_wr_callback().set_inputline(m_maincpu, MCS51_INT1_LINE);
|
||||
|
||||
I8276(config, m_crtc[1], 14.784_MHz_XTAL / 8).set_character_width(8);
|
||||
|
||||
I8021(config, "kbdmcu", 3.579545_MHz_XTAL).set_disable();
|
||||
}
|
||||
|
||||
|
||||
ROM_START(z29)
|
||||
ROM_REGION(0x2000, "maincpu", 0)
|
||||
ROM_LOAD("u440.bin", 0x0000, 0x1000, CRC(169b9517) SHA1(c18b6a193655a64808e9ae8765d3e54d13e6669e))
|
||||
ROM_LOAD("u407.bin", 0x1000, 0x1000, CRC(b5aae8e6) SHA1(692e521a85d7e07647c66a660faa2041d1bfd785))
|
||||
|
||||
ROM_REGION(0x1000, "chargen", 0)
|
||||
ROM_LOAD("u429.bin", 0x0000, 0x1000, CRC(5e3bc5bf) SHA1(18d73e3d74a9768bee8b063ea45891f955558ae7))
|
||||
|
||||
ROM_REGION(0x800, "kbdmcu", 0)
|
||||
ROM_LOAD("444-100.bin", 0x000, 0x800, NO_DUMP)
|
||||
ROM_END
|
||||
|
||||
|
||||
COMP(1983, z29, 0, 0, z29, z29, z29_state, empty_init, "Zenith Data Systems", "Z-29", MACHINE_IS_SKELETON)
|
@ -39299,6 +39299,9 @@ wwfsstaru7 // TA-0024 (c) 1989 (US, newer)
|
||||
wwfsstaru6 // TA-0024 (c) 1989 (US)
|
||||
wwfsstaru4 // TA-0024 (c) 1989 (US)
|
||||
|
||||
@source:wy100.cpp
|
||||
wy100 // WY-100
|
||||
|
||||
@source:wyse.cpp
|
||||
wy50 // WY-50
|
||||
wy55 // WY-55
|
||||
@ -39467,6 +39470,9 @@ z1013k69 //
|
||||
z1013k76 //
|
||||
z1013s60 //
|
||||
|
||||
@source:z29.cpp
|
||||
z29 //
|
||||
|
||||
@source:z80dev.cpp
|
||||
z80dev //
|
||||
|
||||
|
@ -808,6 +808,7 @@ vtech_unk2.cpp
|
||||
wangpc.cpp
|
||||
wicat.cpp
|
||||
wswan.cpp
|
||||
wy100.cpp
|
||||
wyse.cpp
|
||||
x07.cpp
|
||||
x1.cpp
|
||||
@ -820,6 +821,7 @@ xor100.cpp
|
||||
ymmu100.cpp
|
||||
z100.cpp
|
||||
z1013.cpp
|
||||
z29.cpp
|
||||
z80dev.cpp
|
||||
z80ne.cpp
|
||||
z88.cpp
|
||||
|
Loading…
Reference in New Issue
Block a user