trunk/src/mess/drivers/splitsec.c
| r0 | r242953 | |
| 1 | // license:BSD-3-Clause |
| 2 | // copyright-holders:hap |
| 3 | /*************************************************************************** |
| 4 | |
| 5 | Parker Brothers Split Second |
| 6 | * TMS1400NLL MP7314-N2 (die labeled MP7314) |
| 7 | |
| 8 | |
| 9 | ***************************************************************************/ |
| 10 | |
| 11 | #include "emu.h" |
| 12 | #include "cpu/tms0980/tms0980.h" |
| 13 | #include "sound/speaker.h" |
| 14 | |
| 15 | #include "splitsec.lh" |
| 16 | |
| 17 | // master clock is a single stage RC oscillator: R=24K, C=100pf, |
| 18 | // according to the TMS 1000 series data manual this is around 375kHz |
| 19 | #define MASTER_CLOCK (375000) |
| 20 | |
| 21 | |
| 22 | class splitsec_state : public driver_device |
| 23 | { |
| 24 | public: |
| 25 | splitsec_state(const machine_config &mconfig, device_type type, const char *tag) |
| 26 | : driver_device(mconfig, type, tag), |
| 27 | m_maincpu(*this, "maincpu"), |
| 28 | // m_button_matrix(*this, "IN"), |
| 29 | m_speaker(*this, "speaker") |
| 30 | { } |
| 31 | |
| 32 | required_device<cpu_device> m_maincpu; |
| 33 | // required_ioport_array<4> m_button_matrix; |
| 34 | required_device<speaker_sound_device> m_speaker; |
| 35 | |
| 36 | UINT16 m_r; |
| 37 | UINT16 m_o; |
| 38 | |
| 39 | DECLARE_READ8_MEMBER(read_k); |
| 40 | DECLARE_WRITE16_MEMBER(write_o); |
| 41 | DECLARE_WRITE16_MEMBER(write_r); |
| 42 | |
| 43 | virtual void machine_start(); |
| 44 | }; |
| 45 | |
| 46 | |
| 47 | |
| 48 | /*************************************************************************** |
| 49 | |
| 50 | I/O |
| 51 | |
| 52 | ***************************************************************************/ |
| 53 | |
| 54 | READ8_MEMBER(splitsec_state::read_k) |
| 55 | { |
| 56 | return 0; |
| 57 | } |
| 58 | |
| 59 | WRITE16_MEMBER(splitsec_state::write_r) |
| 60 | { |
| 61 | m_r = data; |
| 62 | } |
| 63 | |
| 64 | WRITE16_MEMBER(splitsec_state::write_o) |
| 65 | { |
| 66 | m_o = data; |
| 67 | } |
| 68 | |
| 69 | |
| 70 | |
| 71 | /*************************************************************************** |
| 72 | |
| 73 | Inputs |
| 74 | |
| 75 | ***************************************************************************/ |
| 76 | |
| 77 | static INPUT_PORTS_START( splitsec ) |
| 78 | INPUT_PORTS_END |
| 79 | |
| 80 | |
| 81 | |
| 82 | /*************************************************************************** |
| 83 | |
| 84 | Machine Config |
| 85 | |
| 86 | ***************************************************************************/ |
| 87 | |
| 88 | void splitsec_state::machine_start() |
| 89 | { |
| 90 | m_r = 0; |
| 91 | m_o = 0; |
| 92 | |
| 93 | save_item(NAME(m_r)); |
| 94 | save_item(NAME(m_o)); |
| 95 | } |
| 96 | |
| 97 | |
| 98 | static MACHINE_CONFIG_START( splitsec, splitsec_state ) |
| 99 | |
| 100 | /* basic machine hardware */ |
| 101 | MCFG_CPU_ADD("maincpu", TMS1400, MASTER_CLOCK) |
| 102 | MCFG_TMS1XXX_READ_K_CB(READ8(splitsec_state, read_k)) |
| 103 | MCFG_TMS1XXX_WRITE_O_CB(WRITE16(splitsec_state, write_o)) |
| 104 | MCFG_TMS1XXX_WRITE_R_CB(WRITE16(splitsec_state, write_r)) |
| 105 | |
| 106 | MCFG_DEFAULT_LAYOUT(layout_splitsec) |
| 107 | |
| 108 | /* no video! */ |
| 109 | |
| 110 | /* sound hardware */ |
| 111 | MCFG_SPEAKER_STANDARD_MONO("mono") |
| 112 | MCFG_SOUND_ADD("speaker", SPEAKER_SOUND, 0) |
| 113 | MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25) |
| 114 | MACHINE_CONFIG_END |
| 115 | |
| 116 | |
| 117 | |
| 118 | /*************************************************************************** |
| 119 | |
| 120 | Game driver(s) |
| 121 | |
| 122 | ***************************************************************************/ |
| 123 | |
| 124 | ROM_START( splitsec ) |
| 125 | ROM_REGION( 0x1000, "maincpu", 0 ) |
| 126 | ROM_LOAD( "tms1400nll_mp7314", 0x0000, 0x1000, CRC(0cccdf59) SHA1(06a533134a433aaf856b80f0ca239d0498b98d5f) ) |
| 127 | |
| 128 | ROM_REGION( 867, "maincpu:mpla", 0 ) |
| 129 | ROM_LOAD( "tms1100_default_mpla.pla", 0, 867, CRC(62445fc9) SHA1(d6297f2a4bc7a870b76cc498d19dbb0ce7d69fec) ) |
| 130 | ROM_REGION( 557, "maincpu:opla", 0 ) |
| 131 | ROM_LOAD( "tms1400_splitsec_opla.pla", 0, 557, CRC(7539283b) SHA1(f791fa98259fc10c393ff1961d4c93040f1a2932) ) |
| 132 | ROM_END |
| 133 | |
| 134 | |
| 135 | CONS( 1980, splitsec, 0, 0, splitsec, splitsec, driver_device, 0, "Parker Brothers", "Split Second", GAME_SUPPORTS_SAVE | GAME_NOT_WORKING ) |