summaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
author mahlemiut <bsr@xnet.co.nz>2019-04-13 23:38:51 +1200
committer mahlemiut <bsr@xnet.co.nz>2019-04-13 23:41:58 +1200
commit89d9685de60fb19ed7c6c5dc4cdd90762f903199 (patch)
tree48d642d12a45afdedc673ec030677c4c380ec5fa
parentd806137587451b091918e5c11e10b21362ec601e (diff)
New skeleton machines:
Husky Hunter 16, Husky Hunter 16/80 [Barry Rodewald, rfka01, TeamE]
-rw-r--r--scripts/target/mame/mess.lua1
-rw-r--r--src/mame/drivers/hunter16.cpp126
-rw-r--r--src/mame/mame.lst4
-rw-r--r--src/mame/mess.flt1
4 files changed, 132 insertions, 0 deletions
diff --git a/scripts/target/mame/mess.lua b/scripts/target/mame/mess.lua
index 0852cfee715..77125f311d2 100644
--- a/scripts/target/mame/mess.lua
+++ b/scripts/target/mame/mess.lua
@@ -3878,6 +3878,7 @@ files {
MAME_DIR .. "src/mame/drivers/hpz80unk.cpp",
MAME_DIR .. "src/mame/drivers/ht68k.cpp",
MAME_DIR .. "src/mame/drivers/hunter2.cpp",
+ MAME_DIR .. "src/mame/drivers/hunter16.cpp",
MAME_DIR .. "src/mame/drivers/i7000.cpp",
MAME_DIR .. "src/mame/drivers/ibm3153.cpp",
MAME_DIR .. "src/mame/drivers/icatel.cpp",
diff --git a/src/mame/drivers/hunter16.cpp b/src/mame/drivers/hunter16.cpp
new file mode 100644
index 00000000000..8c8acf505c8
--- /dev/null
+++ b/src/mame/drivers/hunter16.cpp
@@ -0,0 +1,126 @@
+// license:BSD-3-Clause
+// copyright-holders:Barry Rodewald
+/**********************************************************************
+
+ Husky Hunter 16, Hunter 16/80
+
+**********************************************************************/
+
+
+#include "emu.h"
+
+#include "cpu/nec/v25.h"
+#include "video/hd61830.h"
+#include "video/mc6845.h"
+
+#include "screen.h"
+#include "emupal.h"
+
+class hunter16_state : public driver_device
+{
+public:
+ hunter16_state(const machine_config &mconfig, device_type type, const char *tag)
+ : driver_device(mconfig, type, tag),
+ m_maincpu(*this, "maincpu"),
+ m_screen(*this, "screen"),
+ m_palette(*this, "palette"),
+ m_lcdc(*this, "lcdc"),
+ m_cga(*this, "cga")
+ {}
+
+ void hunter16(machine_config &config);
+ void hunter1680(machine_config &config);
+
+protected:
+ uint32_t screen_update(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
+
+ void mem_map(address_map &map);
+ void io_16_map(address_map &map);
+ void io_1680_map(address_map &map);
+
+ required_device<cpu_device> m_maincpu;
+ required_device<screen_device> m_screen;
+ optional_device<palette_device> m_palette;
+ optional_device<hd61830_device> m_lcdc;
+ optional_device<mc6845_device> m_cga;
+
+private:
+ void palette_init_hunter16(palette_device &palette);
+};
+
+
+void hunter16_state::mem_map(address_map &map)
+{
+ map(0x00000,0xbffff).ram();
+ map(0xf0000,0xfffff).rom().region("bios",0);
+}
+
+void hunter16_state::io_16_map(address_map &map)
+{
+ map(0x430, 0x430).w(m_lcdc, FUNC(hd61830_device::data_w));
+ map(0x431, 0x431).rw(m_lcdc, FUNC(hd61830_device::status_r), FUNC(hd61830_device::control_w));
+// map(0x43e, 0x43e).r(m_lcdc, FUNC(hd61830_device::data_r));
+}
+
+void hunter16_state::io_1680_map(address_map &map)
+{
+}
+
+static INPUT_PORTS_START( hunter16 )
+INPUT_PORTS_END
+
+void hunter16_state::palette_init_hunter16(palette_device &palette)
+{
+ palette.set_pen_color(0, rgb_t(138, 146, 148));
+ palette.set_pen_color(1, rgb_t(92, 83, 88));
+}
+
+void hunter16_state::hunter16(machine_config &config)
+{
+ V25(config, m_maincpu, 16_MHz_XTAL / 2);
+ m_maincpu->set_addrmap(AS_PROGRAM, &hunter16_state::mem_map);
+ m_maincpu->set_addrmap(AS_IO, &hunter16_state::io_16_map);
+
+ HD61830(config, m_lcdc, 16_MHz_XTAL / 8); // unknown clock
+
+ SCREEN(config, m_screen, SCREEN_TYPE_LCD);
+ m_screen->set_refresh_hz(60);
+ m_screen->set_size(240, 128);
+ m_screen->set_visarea(0, 239, 0, 63);
+ m_screen->set_palette(m_palette);
+ m_screen->set_screen_update("lcdc", FUNC(hd61830_device::screen_update));
+
+ PALETTE(config, m_palette, FUNC(hunter16_state::palette_init_hunter16), 2);
+ //m_palette->set_init(DEVICE_SELF_OWNER, FUNC(hunter16_state::palette_init_hunter16));
+}
+
+void hunter16_state::hunter1680(machine_config &config)
+{
+ V25(config, m_maincpu, 16_MHz_XTAL / 2);
+ m_maincpu->set_addrmap(AS_PROGRAM, &hunter16_state::mem_map);
+ m_maincpu->set_addrmap(AS_IO, &hunter16_state::io_1680_map);
+
+ MC6845(config, m_cga, 16_MHz_XTAL / 2); // Chips 82C426 CGA, exact clock unknown
+ m_cga->set_screen("screen");
+ m_cga->set_show_border_area(false);
+
+ SCREEN(config, m_screen, SCREEN_TYPE_LCD);
+ m_screen->set_refresh_hz(60);
+ m_screen->set_size(640, 400);
+ m_screen->set_visarea(0, 639, 0, 399);
+ m_screen->set_screen_update("cga", FUNC(mc6845_device::screen_update));
+}
+
+ROM_START( hunter16 )
+ ROM_REGION(0x20000, "bios", 0)
+ ROM_LOAD( "v3.03i.bin", 0x0000, 0x20000, CRC(8b3ee7fd) SHA1(8bf962358a316c78ba91658c21e45e1e6cda9605) )
+ROM_END
+
+ROM_START( hunter1680 )
+ ROM_REGION(0x20000, "bios", 0)
+ ROM_LOAD( "v4.05.bin", 0x0000, 0x20000, CRC(e0cfabf4) SHA1(183d5bf7553404302697ac89eed25f2a8bb7695c) )
+ROM_END
+
+/* YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME FLAGS */
+COMP( 1989, hunter16, 0, 0, hunter16, hunter16, hunter16_state, empty_init, "Husky Computers Ltd", "Hunter 16", MACHINE_IS_SKELETON )
+COMP( 1989, hunter1680, hunter16, 0, hunter1680, hunter16, hunter16_state, empty_init, "Husky Computers Ltd", "Hunter 16/80", MACHINE_IS_SKELETON )
diff --git a/src/mame/mame.lst b/src/mame/mame.lst
index 64910e5bc0c..e0cd7b6449b 100644
--- a/src/mame/mame.lst
+++ b/src/mame/mame.lst
@@ -15533,6 +15533,10 @@ amu880 //
@source:hunter2.cpp
hunter2 //
+@source:hunter16.cpp
+hunter16 //
+hunter1680 //
+
@source:hvyunit.cpp
hvyunit // (c) 1988 Kaneko
hvyunitj // (c) 1988 Kaneko
diff --git a/src/mame/mess.flt b/src/mame/mess.flt
index fc0f05902c9..760e5c790b1 100644
--- a/src/mame/mess.flt
+++ b/src/mame/mess.flt
@@ -336,6 +336,7 @@ ht6000.cpp
ht68k.cpp
huebler.cpp
hunter2.cpp
+hunter16.cpp
hx20.cpp
hyperscan.cpp
i7000.cpp