trunk/src/mame/drivers/s9.c
| r18760 | r18761 | |
| 13 | 13 | #include "machine/genpin.h" |
| 14 | 14 | #include "cpu/m6800/m6800.h" |
| 15 | 15 | #include "machine/6821pia.h" |
| 16 | #include "sound/hc55516.h" |
| 16 | 17 | #include "sound/dac.h" |
| 17 | 18 | #include "s9.lh" |
| 18 | 19 | |
| r18760 | r18761 | |
| 25 | 26 | m_maincpu(*this, "maincpu"), |
| 26 | 27 | m_audiocpu(*this, "audiocpu"), |
| 27 | 28 | m_dac(*this, "dac"), |
| 29 | m_hc55516(*this, "hc55516"), |
| 28 | 30 | m_pia(*this, "pia"), |
| 29 | 31 | m_pia21(*this, "pia21"), |
| 30 | 32 | m_pia24(*this, "pia24"), |
| r18760 | r18761 | |
| 65 | 67 | required_device<cpu_device> m_maincpu; |
| 66 | 68 | optional_device<cpu_device> m_audiocpu; |
| 67 | 69 | optional_device<dac_device> m_dac; |
| 70 | optional_device<hc55516_device> m_hc55516; |
| 68 | 71 | optional_device<pia6821_device> m_pia; |
| 69 | 72 | required_device<pia6821_device> m_pia21; |
| 70 | 73 | required_device<pia6821_device> m_pia24; |
| r18760 | r18761 | |
| 176 | 179 | MACHINE_RESET_MEMBER( s9_state, s9 ) |
| 177 | 180 | { |
| 178 | 181 | m_t_c = 0; |
| 182 | // reset the IRQ state |
| 183 | m_pia->ca1_w(1); |
| 179 | 184 | } |
| 180 | 185 | |
| 181 | 186 | INPUT_CHANGED_MEMBER( s9_state::main_nmi ) |
| r18760 | r18761 | |
| 335 | 340 | WRITE_LINE_MEMBER( s9_state::pia_ca2_w ) |
| 336 | 341 | { |
| 337 | 342 | // speech clock |
| 343 | hc55516_clock_w(m_hc55516, state); |
| 338 | 344 | } |
| 339 | 345 | |
| 340 | 346 | WRITE_LINE_MEMBER( s9_state::pia_cb2_w ) |
| 341 | 347 | { |
| 342 | 348 | // speech data |
| 349 | hc55516_digit_w(m_hc55516, state); |
| 343 | 350 | } |
| 344 | 351 | |
| 345 | 352 | READ8_MEMBER( s9_state::dac_r ) |
| r18760 | r18761 | |
| 378 | 385 | |
| 379 | 386 | static MACHINE_CONFIG_START( s9, s9_state ) |
| 380 | 387 | /* basic machine hardware */ |
| 381 | | MCFG_CPU_ADD("maincpu", M6802, 4000000) |
| 388 | MCFG_CPU_ADD("maincpu", M6808, 4000000) |
| 382 | 389 | MCFG_CPU_PROGRAM_MAP(s9_main_map) |
| 383 | 390 | MCFG_TIMER_DRIVER_ADD_PERIODIC("irq", s9_state, irq, attotime::from_hz(250)) |
| 384 | 391 | MCFG_MACHINE_RESET_OVERRIDE(s9_state, s9) |
| r18760 | r18761 | |
| 401 | 408 | MCFG_SPEAKER_STANDARD_MONO("mono") |
| 402 | 409 | MCFG_SOUND_ADD("dac", DAC, 0) |
| 403 | 410 | MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50) |
| 411 | MCFG_SPEAKER_STANDARD_MONO("speech") |
| 412 | MCFG_SOUND_ADD("hc55516", HC55516, 0) |
| 413 | MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speech", 0.50) |
| 404 | 414 | MCFG_PIA6821_ADD("pia", pia_intf) |
| 405 | 415 | MACHINE_CONFIG_END |
| 406 | 416 | |