1 // license:BSD-3-Clause
2 // copyright-holders:
3 /*******************************************************************************
4
5 Skeleton driver for Merit Scorpion darts machines
6
7 Hardware overview:
8 Main CPU: Dallas DS80C3202-UM or compatible
9 Sound: DAC?
10 NVRAM: Dallas DS1220Y-120 or compatible
11 Other: Dallas DS1232 MicroMonitor
12 Dallas DS1204U-3 Electronic Key (not populated)
13 OSCs: 12.000 MHz, 3.2768 MHz
14 Dips: 2 x 8 dips banks
15
16 *******************************************************************************/
17
18 #include "emu.h"
19 #include "cpu/mcs51/mcs51.h"
20 #include "machine/nvram.h"
21 #include "sound/dac.h"
22 #include "speaker.h"
23
24
25 class merits_state : public driver_device
26 {
27 public:
merits_state(const machine_config & mconfig,device_type type,const char * tag)28 merits_state(const machine_config &mconfig, device_type type, const char *tag)
29 : driver_device(mconfig, type, tag)
30 , m_maincpu(*this, "maincpu")
31 {
32 }
33
34 void scrpiond(machine_config &config);
35
36 private:
37 void mem_map(address_map &map);
38 void io_map(address_map &map);
39
40 required_device<cpu_device> m_maincpu;
41 };
42
mem_map(address_map & map)43 void merits_state::mem_map(address_map &map)
44 {
45 map(0x0000, 0xffff).rom().region("maincpu", 0);
46 }
47
io_map(address_map & map)48 void merits_state::io_map(address_map &map)
49 {
50 map(0x8000, 0x87ff).ram().share("nvram");
51 //map(0x9000, 0x9000).r();
52 //map(0xa000, 0xa000).r();
53 //map(0xc000, 0xc000).w();
54 //map(0xd000, 0xd000).w();
55 //map(0xe000, 0xe000).w();
56 //map(0xf000, 0xf000).w();
57 //map(0xf800, 0xf800).w();
58 }
59
INPUT_PORTS_START(scrpiond)60 static INPUT_PORTS_START(scrpiond)
61 INPUT_PORTS_END
62
63 void merits_state::scrpiond(machine_config &config)
64 {
65 DS80C320(config, m_maincpu, 12_MHz_XTAL);
66 m_maincpu->set_addrmap(AS_PROGRAM, &merits_state::mem_map);
67 m_maincpu->set_addrmap(AS_IO, &merits_state::io_map);
68
69 NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_0); // DS1220Y
70 }
71
72 ROM_START(scrpiond)
73 ROM_REGION(0x10000, "maincpu", 0)
74 ROM_LOAD( "27c512.u7", 0x00000, 0x10000, CRC(06cdf965) SHA1(4cdac131063fc0dd954eaaee2ae40d5731f83469) )
75 ROM_END
76
77 ROM_START(scrpionda)
78 ROM_REGION(0x10000, "maincpu", 0)
79 ROM_LOAD( "4978-22_u7-r5_c1997_mii.u7", 0x00000, 0x10000, CRC(e647a17e) SHA1(4a7b9e2af3656a1b6f4ffd8c17b68eec5c534776) )
80 ROM_END
81
82
83 GAME(1999, scrpiond, 0, scrpiond, scrpiond, merits_state, empty_init, ROT0, "Merit", "Scorpion (Jun 15, 1999)", MACHINE_IS_SKELETON_MECHANICAL)
84 GAME(1997, scrpionda, scrpiond, scrpiond, scrpiond, merits_state, empty_init, ROT0, "Merit", "Scorpion (Oct 01, 1997)", MACHINE_IS_SKELETON_MECHANICAL)
85