Previous 199869 Revisions Next

r24849 Sunday 11th August, 2013 at 22:00:40 UTC by David Haywood
I don't know how you hook this chip up properly (nw)
[src/mess/drivers]segapico.c

trunk/src/mess/drivers/segapico.c
r24848r24849
111111#include "machine/md_slot.h"
112112#include "machine/md_rom.h"
113113#include "includes/md_cons.h"
114#include "sound/upd7759.h"
114115
116
115117#define PICO_PENX   1
116118#define PICO_PENY   2
117119
r24848r24849
119121{
120122public:
121123   pico_base_state(const machine_config &mconfig, device_type type, const char *tag)
122      : md_cons_state(mconfig, type, tag) { }
124      : md_cons_state(mconfig, type, tag),
125   m_upd7759(*this, "7759") { }
123126
127   optional_device<upd7759_device> m_upd7759;
128
124129   ioport_port *m_io_page;
125130   ioport_port *m_io_pad;
126131   ioport_port *m_io_penx;
r24848r24849
239244   return retdata | retdata << 8;
240245}
241246
247
248static void sound_cause_irq( device_t *device, int chip )
249{
250//   pico_base_state *state = device->machine().driver_data<pico_base_state>();
251   printf("sound irq\n");
252   /* upd7759 callback */
253//   state->m_soundcpu->set_input_line(INPUT_LINE_NMI, PULSE_LINE);
254}
255
256
257const upd775x_interface pico_upd7759_interface  =
258{
259   sound_cause_irq
260};
261
262
242263WRITE16_MEMBER(pico_base_state::pico_68k_io_write )
243264{
265   printf("pico_68k_io_write %04x %04x %04x\n", offset*2, data, mem_mask);
266
244267   switch (offset)
245268   {
269      case 0x12/2: // guess
270         if (mem_mask&0x00ff) m_upd7759->port_w(space,0,data&0xff);
271         if (mem_mask&0xff00) m_upd7759->port_w(space,0,(data>>8)&0xff);
272
273         break;
246274   }
247275}
248276
r24848r24849
294322   m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0xa13000, 0xa130ff, read16_delegate(FUNC(base_md_cart_slot_device::read_a13),(base_md_cart_slot_device*)m_picocart), write16_delegate(FUNC(base_md_cart_slot_device::write_a13),(base_md_cart_slot_device*)m_picocart));
295323   m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0xa15000, 0xa150ff, read16_delegate(FUNC(base_md_cart_slot_device::read_a15),(base_md_cart_slot_device*)m_picocart), write16_delegate(FUNC(base_md_cart_slot_device::write_a15),(base_md_cart_slot_device*)m_picocart));
296324   m_maincpu->space(AS_PROGRAM).install_write_handler(0xa14000, 0xa14003, write16_delegate(FUNC(base_md_cart_slot_device::write_tmss_bank),(base_md_cart_slot_device*)m_picocart));
325
326   m_upd7759->reset_w(0);
327   m_upd7759->start_w(0);
328   m_upd7759->reset_w(1);
329   m_upd7759->start_w(1);
297330}
298331
299332static MACHINE_CONFIG_START( pico, pico_state )
r24848r24849
309342
310343   MCFG_PICO_CARTRIDGE_ADD("picoslot", pico_cart, NULL)
311344   MCFG_SOFTWARE_LIST_ADD("cart_list","pico")
345
346   MCFG_SOUND_ADD("7759", UPD7759, UPD7759_STANDARD_CLOCK)
347   MCFG_SOUND_CONFIG(pico_upd7759_interface)
348   MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 0.48)
349   MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 0.48)
312350MACHINE_CONFIG_END
313351
314352static MACHINE_CONFIG_START( picopal, pico_state )
r24848r24849
324362
325363   MCFG_PICO_CARTRIDGE_ADD("picoslot", pico_cart, NULL)
326364   MCFG_SOFTWARE_LIST_ADD("cart_list","pico")
365
366   MCFG_SOUND_ADD("7759", UPD7759, UPD7759_STANDARD_CLOCK)
367   MCFG_SOUND_CONFIG(pico_upd7759_interface)
368   MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 0.48)
369   MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 0.48)
327370MACHINE_CONFIG_END
328371
329372
r24848r24849
468511   m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0xa13000, 0xa130ff, read16_delegate(FUNC(base_md_cart_slot_device::read_a13),(base_md_cart_slot_device*)m_picocart), write16_delegate(FUNC(base_md_cart_slot_device::write_a13),(base_md_cart_slot_device*)m_picocart));
469512   m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0xa15000, 0xa150ff, read16_delegate(FUNC(base_md_cart_slot_device::read_a15),(base_md_cart_slot_device*)m_picocart), write16_delegate(FUNC(base_md_cart_slot_device::write_a15),(base_md_cart_slot_device*)m_picocart));
470513   m_maincpu->space(AS_PROGRAM).install_write_handler(0xa14000, 0xa14003, write16_delegate(FUNC(base_md_cart_slot_device::write_tmss_bank),(base_md_cart_slot_device*)m_picocart));
514
515   m_upd7759->reset_w(0);
516   m_upd7759->start_w(0);
517   m_upd7759->reset_w(1);
518   m_upd7759->start_w(1);
519
471520}
472521
473522static MACHINE_CONFIG_START( copera, copera_state )
r24848r24849
483532
484533   MCFG_COPERA_CARTRIDGE_ADD("coperaslot", copera_cart, NULL)
485534   MCFG_SOFTWARE_LIST_ADD("cart_list","copera")
535
536   MCFG_SOUND_ADD("7759", UPD7759, UPD7759_STANDARD_CLOCK)
537   MCFG_SOUND_CONFIG(pico_upd7759_interface)
538   MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 0.48)
539   MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 0.48)
486540MACHINE_CONFIG_END
487541
488542

Previous 199869 Revisions Next


© 1997-2024 The MAME Team