From a4a0bcc3b4f12712fdc7aa8e731a6cfa2b74596a Mon Sep 17 00:00:00 2001 From: mooglyguy Date: Fri, 10 Aug 2018 00:38:13 +0200 Subject: -emate: Added a skeleton driver for the Apple eMate 300. [Ryan Holtz] --- scripts/target/mame/mess.lua | 1 + src/mame/drivers/emate.cpp | 96 ++++++++++++++++++++++++++++++++++++++++++++ src/mame/mame.lst | 3 ++ src/mame/mess.flt | 1 + 4 files changed, 101 insertions(+) create mode 100644 src/mame/drivers/emate.cpp diff --git a/scripts/target/mame/mess.lua b/scripts/target/mame/mess.lua index 448e1ff7abd..9c6239dfed1 100644 --- a/scripts/target/mame/mess.lua +++ b/scripts/target/mame/mess.lua @@ -3645,6 +3645,7 @@ files { MAME_DIR .. "src/mame/drivers/e100.cpp", MAME_DIR .. "src/mame/drivers/eacc.cpp", MAME_DIR .. "src/mame/drivers/elwro800.cpp", + MAME_DIR .. "src/mame/drivers/emate.cpp", MAME_DIR .. "src/mame/drivers/esprit.cpp", MAME_DIR .. "src/mame/drivers/eti660.cpp", MAME_DIR .. "src/mame/includes/eti660.h", diff --git a/src/mame/drivers/emate.cpp b/src/mame/drivers/emate.cpp new file mode 100644 index 00000000000..e4dfb03b0ed --- /dev/null +++ b/src/mame/drivers/emate.cpp @@ -0,0 +1,96 @@ +// license:BSD-3-Clause +// copyright-holders:Ryan Holtz +/*************************************************************************** + + Apple eMate 300 skeleton driver + + CPU: ARM 710a (32 bit RISC Processor) + Memory: 1Mbyte of RAM, 2Mbytes of flash ROM + Graphics: 480x320 16-level grayscale LCD with backlight + Sound: Unknown + Input: Keyboard, touchscreen + Other: 2 serial ports, 1 IR port, 1 PCMCIA slot + +****************************************************************************/ + +#include "emu.h" +#include "cpu/arm7/arm7.h" +#include "cpu/arm7/arm7core.h" +#include "machine/ram.h" +#include "emupal.h" +#include "screen.h" + +class emate_state : public driver_device +{ +public: + emate_state(const machine_config &mconfig, device_type type, const char *tag) + : driver_device(mconfig, type, tag) + , m_maincpu(*this, "maincpu") + , m_ram(*this, "ram") + { } + + void emate(machine_config &config); + +protected: + void palette_init(palette_device &palette); + uint32_t screen_update(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect); + + void mem_map(address_map &map); + + required_device m_maincpu; + required_device m_ram; +}; + +void emate_state::mem_map(address_map &map) +{ + map(0x00000000, 0x001fffff).rom().region("maincpu", 0); +} + +static INPUT_PORTS_START( emate ) +INPUT_PORTS_END + +void emate_state::palette_init(palette_device &palette) +{ + for (int i = 0; i < 16; i++) + { + const uint8_t gray = (i << 4) | i; + palette.set_pen_color(15 - i, rgb_t(gray, gray, gray)); + } +} + +uint32_t emate_state::screen_update(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect) +{ + bitmap.fill(0); + return 0; +} + +void emate_state::emate(machine_config &config) +{ + ARM710A(config, m_maincpu, XTAL(25'000'000)); + m_maincpu->set_addrmap(AS_PROGRAM, mem_map); + + /* video hardware */ + screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_LCD)); + screen.set_refresh_hz(60); + screen.set_vblank_time(ATTOSECONDS_IN_USEC(2500)); /* not accurate */ + screen.set_size(480, 320); + screen.set_visarea(0, 480-1, 0, 320-1); + screen.set_screen_update(FUNC(emate_state::screen_update)); + + palette_device &palette(PALETTE(config, "palette", 16)); + palette.set_init(DEVICE_SELF_OWNER, FUNC(emate_state::palette_init)); + + RAM(config, m_ram); + m_ram->set_default_size("2M"); +} + +/* ROM definition */ +ROM_START( emate ) + ROM_REGION32_LE( 0x800000, "maincpu", 0 ) + ROM_LOAD( "ematev22.bin", 0x000000, 0x800000, CRC(5fb47dd8) SHA1(6ae880493ddde880827d1e9f08e9cb2c38f9f2ec) ) +ROM_END + +/* Driver */ + +// YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME FLAGS +CONS( 1997, emate, 0, 0, emate, emate, emate_state, empty_init, "Apple Computer", "eMate 300", MACHINE_IS_SKELETON ) diff --git a/src/mame/mame.lst b/src/mame/mame.lst index 3427935b7d6..685b89a400a 100644 --- a/src/mame/mame.lst +++ b/src/mame/mame.lst @@ -12299,6 +12299,9 @@ elf2 // @source:elwro800.cpp elwro800 // +@source:emate.cpp +emate // (c) 1997 Apple Computer + @source:embargo.cpp embargo // diff --git a/src/mame/mess.flt b/src/mame/mess.flt index b3f28212d8e..e0f90c93756 100644 --- a/src/mame/mess.flt +++ b/src/mame/mess.flt @@ -200,6 +200,7 @@ elekscmp.cpp elektronmono.cpp elf.cpp elwro800.cpp +emate.cpp enmirage.cpp ep64.cpp esprit.cpp -- cgit v1.2.3