diff options
Diffstat (limited to 'src/mame/drivers/glcx.cpp')
-rw-r--r-- | src/mame/drivers/glcx.cpp | 120 |
1 files changed, 120 insertions, 0 deletions
diff --git a/src/mame/drivers/glcx.cpp b/src/mame/drivers/glcx.cpp new file mode 100644 index 00000000000..31f8a18f717 --- /dev/null +++ b/src/mame/drivers/glcx.cpp @@ -0,0 +1,120 @@ +// license:BSD-3-Clause +// copyright-holders:Sandro Ronco + +// gl6600cx uses a NSC1028 system-on-a-chip designed by National Semiconductor specifically for VTech +// http://web.archive.org/web/19991127134657/http://www.national.com/news/item/0,1735,425,00.html + +/* + +Leader 8008 CX (German version) + ++---+-----------+-----+-----------------------+-----+-----+-----+ +| |SERIAL PORT| |PARALLEL PORT (PRINTER)| |MOUSE| | +| +-----------+ +-----------------------+ +-----+ | +| | +| | +| | +| | +| +----+ | +| | A0 | | +| +----+ | +| | +| | +| +--------+ | +| | | | +| CPU | VTECH | +------+ | +| |LHMV5GNS| | | | +| | | |GM76U8| | +| |1999 | |128CLF| | +| |27-6393-| |W85 | | +| +-----------+ |11 | | | | +| |27-6296-0-0| | | | | | +| |47C241M NH7| | | +------+ | +| +-----------+ +--------+ | +| | +| | +| | +| | ++---------------------------------------------------------------+ + +CPU = epoxy blob +GM76U8128CLFW85 = LGS / Hynix 131,072 WORDS x 8 BIT CMOS SRAM +TMP47C241MG = TCLS-47 series 4-bit CPU with 2048x8 internal ROM + +*/ + +#include "emu.h" +#include "cpu/cr16b/cr16b.h" +#include "screen.h" + +class glcx_state : public driver_device +{ +public: + glcx_state(const machine_config &mconfig, device_type type, const char *tag) + : driver_device(mconfig, type, tag) + , m_maincpu(*this, "maincpu") + { } + + void glcx(machine_config &config); + +private: + virtual uint32_t screen_update(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect); + + void mem_map(address_map &map); + + required_device<cr16b_device> m_maincpu; +}; + +uint32_t glcx_state::screen_update(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect) +{ + return 0; +} + +void glcx_state::mem_map(address_map &map) +{ + map(0x000000, 0x1fffff).rom().region("maincpu", 0); +} + +static INPUT_PORTS_START( glcx ) +INPUT_PORTS_END + +void glcx_state::glcx(machine_config &config) +{ + /* basic machine hardware */ + CR16B(config, m_maincpu, 10000000); // FIXME: determine exact type and clock + m_maincpu->set_addrmap(AS_PROGRAM, &glcx_state::mem_map); + + /* video hardware */ + screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); + screen.set_refresh_hz(50); + screen.set_vblank_time(ATTOSECONDS_IN_USEC(2500)); /* not accurate */ + screen.set_size(512, 256); + screen.set_visarea(0, 512-1, 0, 256-1); + screen.set_screen_update(FUNC(glcx_state::screen_update)); +} + +ROM_START( gl6600cx ) + ROM_REGION( 0x200000, "maincpu", 0 ) + ROM_LOAD( "54-06400-00.u1", 0x000000, 0x200000, CRC(b05cd075) SHA1(b1d9eb02ca56350eb9e89518db89c0a2a845ebd8)) +ROM_END + +ROM_START( gl8008cx ) + ROM_REGION(0x200000, "maincpu", 0) + ROM_LOAD( "27-6393-11.u1", 0x0000, 0x200000, CRC(fd49db46) SHA1(fc55bb31f42068f9d6cc8e2c2f419c3c4edb4fe6) ) + + ROM_REGION(0x800, "subcpu", 0) + ROM_LOAD( "27-6296-0-0.u3", 0x000, 0x800, NO_DUMP ) +ROM_END + +ROM_START( bs9009cx ) + ROM_REGION(0x200000, "maincpu", 0) + ROM_LOAD( "27-6603-01.u1", 0x0000, 0x200000, CRC(2c299f65) SHA1(44b37007a7c4087d7c2bd8c24907402bfe445ba4) ) + + ROM_REGION(0x800, "subcpu", 0) + ROM_LOAD( "mcu.u5", 0x000, 0x800, NO_DUMP ) +ROM_END + + +COMP( 1999, gl6600cx, 0, 0, glcx, glcx, glcx_state, empty_init, "Video Technology", "Genius Leader 6600 CX (Germany)", MACHINE_IS_SKELETON ) +COMP( 1999, gl8008cx, 0, 0, glcx, glcx, glcx_state, empty_init, "Video Technology", "Genius Leader 8008 CX (Germany)", MACHINE_IS_SKELETON) +COMP( 1999, bs9009cx, 0, 0, glcx, glcx, glcx_state, empty_init, "Video Technology", "BrainStation 9009 CXL (Germany)", MACHINE_IS_SKELETON) |