Previous 199869 Revisions Next

r32213 Friday 19th September, 2014 at 15:23:21 UTC by Fabio Priuli
some more generic slots. nw.
[src/mess/drivers]ep64.c exelv.c fc100.c gmaster.c m5.c myvision.c
[src/mess/includes]ep64.h m5.h

trunk/src/mess/drivers/exelv.c
r32212r32213
5555#include "video/tms3556.h"
5656#include "sound/tms5220.h"
5757#include "machine/spchrom.h"
58#include "imagedev/cartslot.h"
58#include "bus/generic/slot.h"
59#include "bus/generic/carts.h"
5960//#include "imagedev/cassette.h"
6061
6162
r32212r32213
6667      : driver_device(mconfig, type, tag),
6768         m_maincpu(*this, "maincpu"),
6869         m_tms3556(*this, "tms3556"),
69         m_tms5220c(*this, "tms5220c")
70         m_tms5220c(*this, "tms5220c"),
71         m_cart(*this, "cartslot")
7072   { }
7173
7274   required_device<cpu_device> m_maincpu;
7375   required_device<tms3556_device> m_tms3556;
7476   required_device<tms5220c_device> m_tms5220c;
77   optional_device<generic_slot_device> m_cart;
7578
76   virtual void machine_start();
77
7879   DECLARE_READ8_MEMBER( mailbox_wx319_r );
7980   DECLARE_WRITE8_MEMBER( mailbox_wx318_w );
8081   DECLARE_READ8_MEMBER( tms7020_porta_r );
r32212r32213
8586   DECLARE_WRITE8_MEMBER( tms7041_portc_w );
8687   DECLARE_READ8_MEMBER( tms7041_portd_r );
8788   DECLARE_WRITE8_MEMBER( tms7041_portd_w );
89   DECLARE_READ8_MEMBER( rom_r );
8890
91   DECLARE_MACHINE_START(exl100);
92   DECLARE_MACHINE_START(exeltel);
93
8994   /* tms7020 i/o ports */
9095   UINT8   m_tms7020_portb;
9196
r32212r32213
105110};
106111
107112
108DEVICE_IMAGE_LOAD_MEMBER( exelv_state, exelvision_cartridge )
109{
110   UINT8* pos = memregion("user1")->base();
111   offs_t size;
112
113   if (image.software_entry() == NULL)
114      size = image.length();
115   else
116      size = image.get_software_region_length("rom");
117
118
119   if (image.software_entry() == NULL)
120   {
121      image.fread( pos, size );
122   }
123   else
124   {
125      memcpy(pos, image.get_software_region("rom"), size);
126   }
127
128   return IMAGE_INIT_PASS;
129}
130
131
132
133113TIMER_DEVICE_CALLBACK_MEMBER(exelv_state::exelv_hblank_interrupt)
134114{
135115   m_tms3556->interrupt(machine());
136116}
137117
138#ifdef UNUSED_FUNCTION
139static DEVICE_IMAGE_LOAD(exelv_cart)
140{
141   return IMAGE_INIT_PASS;
142}
143118
144static DEVICE_IMAGE_UNLOAD( exelv_cart )
145{
146}
147#endif
148
149119/*
150120    I/O CPU protocol (WIP):
151121
r32212r32213
389359   m_tms7041_portd = data;
390360}
391361
362
392363/*
364   CARTRIDGE ACCESS
365*/
366READ8_MEMBER(exelv_state::rom_r)
367{
368   if (m_cart && m_cart->cart_mounted())
369      return m_cart->read_rom(space, offset + 0x200);
370
371   return 0;
372}
373
374
375/*
393376    Main CPU memory map summary:
394377
395378    @>0000-@>007f: tms7020/tms7040 internal RAM
r32212r32213
423406   AM_RANGE(0x012e, 0x012e) AM_DEVWRITE("tms3556", tms3556_device, vram_w)
424407
425408   AM_RANGE(0x0130, 0x0130) AM_READWRITE(mailbox_wx319_r, mailbox_wx318_w)
426   AM_RANGE(0x0200, 0x7fff) AM_ROMBANK("bank1")                                /* system ROM */
409   AM_RANGE(0x0200, 0x7fff) AM_READ(rom_r)
427410   AM_RANGE(0x8000, 0xbfff) AM_NOP
428411   AM_RANGE(0xc000, 0xc7ff) AM_RAM                                     /* CPU RAM */
429412   AM_RANGE(0xc800, 0xf7ff) AM_NOP
r32212r32213
482465
483466/* Machine Initialization */
484467
485void exelv_state::machine_start()
468MACHINE_START_MEMBER( exelv_state, exl100)
469{   
470   /* register for state saving */
471   save_item(NAME(m_tms7020_portb));
472   save_item(NAME(m_tms7041_portb));
473   save_item(NAME(m_tms7041_portc));
474   save_item(NAME(m_tms7041_portd));
475   save_item(NAME(m_wx318));
476   save_item(NAME(m_wx319));
477}
478
479MACHINE_START_MEMBER( exelv_state, exeltel)
486480{
487481   UINT8 *rom = memregion("user1")->base() + 0x0200;
488482   membank("bank1")->configure_entry(0, rom);
489483   membank("bank1")->set_entry(0);
490
484   
491485   /* register for state saving */
492486   save_item(NAME(m_tms7020_portb));
493487   save_item(NAME(m_tms7041_portb));
r32212r32213
497491   save_item(NAME(m_wx319));
498492}
499493
494
500495static MACHINE_CONFIG_START( exl100, exelv_state )
501496
502497   /* basic machine hardware */
r32212r32213
504499   MCFG_CPU_PROGRAM_MAP(tms7020_mem)
505500   MCFG_CPU_IO_MAP(tms7020_port)
506501   MCFG_TIMER_DRIVER_ADD_SCANLINE("scantimer", exelv_state, exelv_hblank_interrupt, "screen", 0, 1)
502   MCFG_MACHINE_START_OVERRIDE(exelv_state, exl100)
507503
508504   MCFG_CPU_ADD("tms7041", TMS7041, XTAL_4_9152MHz)
509505   MCFG_CPU_IO_MAP(tms7041_port)
r32212r32213
538534   // MCFG_TMS52XX_SPEECHROM("vsm")
539535   MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.00)
540536
541/* cartridge */
542   MCFG_CARTSLOT_ADD("cart")
543   MCFG_CARTSLOT_EXTENSION_LIST("bin,rom")
544   MCFG_CARTSLOT_NOT_MANDATORY
545   MCFG_CARTSLOT_LOAD(exelv_state,exelvision_cartridge)
546   MCFG_CARTSLOT_INTERFACE("exelvision_cart")
547   //MCFG_SOFTWARE_LIST_ADD("cart_list","exelvision_cart")
537   /* cartridge */
538   MCFG_GENERIC_CARTSLOT_ADD("cartslot", GENERIC_ROM8_WIDTH, generic_linear_slot, "exelvision_cart")
539   MCFG_GENERIC_EXTENSIONS("bin,rom")
540
541   MCFG_SOFTWARE_LIST_ADD("cart_list", "exl100_cart")
548542MACHINE_CONFIG_END
549543
550544
r32212r32213
555549   MCFG_CPU_PROGRAM_MAP(tms7040_mem)
556550   MCFG_CPU_IO_MAP(tms7020_port)
557551   MCFG_TIMER_DRIVER_ADD_SCANLINE("scantimer", exelv_state, exelv_hblank_interrupt, "screen", 0, 1)
552   MCFG_MACHINE_START_OVERRIDE(exelv_state, exeltel)
558553
559554   MCFG_CPU_ADD("tms7042", TMS7042, XTAL_4_9152MHz)
560555   MCFG_CPU_IO_MAP(tms7041_port)
r32212r32213
601596   ROM_REGION(0x10000, "tms7041", 0)
602597   ROM_LOAD("exl100_7041.bin", 0xf000, 0x1000, CRC(38f6fc7a) SHA1(b71d545664a974d8ad39bdf600c5b9884c3efab6))           /* TMS7041 internal ROM, correct  */
603598//  ROM_REGION(0x8000, "vsm", 0)
604
605   ROM_REGION(0x10000, "user1", ROMREGION_ERASEFF)         /* cartridge area */
606599ROM_END
607600
608601
trunk/src/mess/drivers/fc100.c
r32212r32213
2525- Cassette can be 600 or 1200 baud, how is 600 baud selected?
2626- Hookup Graphics modes and colours
2727- Unknown i/o ports
28- Need software
28- Need cart software (current code is just a guess)
2929
3030
3131****************************************************************************/
r32212r32213
3737#include "machine/i8251.h"
3838#include "machine/clock.h"
3939#include "sound/ay8910.h"
40#include "imagedev/cartslot.h"
4140#include "imagedev/cassette.h"
4241#include "sound/wave.h"
4342#include "formats/fc100_cas.h"
4443#include "machine/buffer.h"
4544#include "bus/centronics/ctronics.h"
45#include "bus/generic/slot.h"
46#include "bus/generic/carts.h"
4647
4748
4849class fc100_state : public driver_device
r32212r32213
5455      , m_vdg(*this, "vdg")
5556      , m_p_videoram(*this, "videoram")
5657      , m_cass(*this, "cassette")
58      , m_cart(*this, "cartslot")
5759      , m_uart(*this, "uart")
5860      , m_centronics(*this, "centronics")
5961      , m_keyboard(*this, "KEY")
r32212r32213
102104   required_device<mc6847_base_device> m_vdg;
103105   required_shared_ptr<UINT8> m_p_videoram;
104106   required_device<cassette_image_device> m_cass;
107   required_device<generic_slot_device> m_cart;
105108   required_device<i8251_device> m_uart;
106109   required_device<centronics_device> m_centronics;
107110   required_ioport_array<16> m_keyboard;
r32212r32213
111114static ADDRESS_MAP_START( fc100_mem, AS_PROGRAM, 8, fc100_state )
112115   ADDRESS_MAP_UNMAP_HIGH
113116   AM_RANGE( 0x0000, 0x5fff ) AM_ROM AM_REGION("roms", 0)
114   AM_RANGE( 0x6000, 0x77ff ) AM_ROM AM_REGION("cart", 0)
117   //AM_RANGE(0x6000, 0x6fff)      // mapped by the cartslot
115118   AM_RANGE( 0x7800, 0x7fff ) AM_READ_BANK("bankr") AM_WRITE_BANK("bankw") // Banked RAM/ROM
116   AM_RANGE( 0x8000, 0xBFFF ) AM_RAM // expansion ram pack - if omitted you get a 'Pages?' prompt at boot
119   AM_RANGE( 0x8000, 0xbfff ) AM_RAM // expansion ram pack - if omitted you get a 'Pages?' prompt at boot
117120   AM_RANGE( 0xc000, 0xffff ) AM_RAM AM_SHARE("videoram")
118121ADDRESS_MAP_END
119122
r32212r32213
461464   m_intext = 0;
462465   m_inv = 0;
463466
467   if (m_cart->cart_mounted())
468      m_maincpu->space(AS_PROGRAM).install_read_handler(0x6000, 0x6fff, read8_delegate(FUNC(generic_slot_device::read_rom),(generic_slot_device*)m_cart));
469
464470   save_item(NAME(m_ag));
465471   save_item(NAME(m_gm2));
466472   save_item(NAME(m_gm1));
r32212r32213
543549   MCFG_TIMER_DRIVER_ADD_PERIODIC("timer_c", fc100_state, timer_c, attotime::from_hz(4800)) // cass write
544550   MCFG_TIMER_DRIVER_ADD_PERIODIC("timer_p", fc100_state, timer_p, attotime::from_hz(40000)) // cass read
545551   MCFG_TIMER_DRIVER_ADD_PERIODIC("timer_k", fc100_state, timer_k, attotime::from_hz(300)) // keyb scan
546   MCFG_CARTSLOT_ADD("cart")
552
553   MCFG_GENERIC_CARTSLOT_ADD("cartslot", GENERIC_ROM8_WIDTH, generic_plain_slot, "fc100_cart")
554
547555   MCFG_CENTRONICS_ADD("centronics", centronics_printers, "printer")
548556   MCFG_CENTRONICS_ACK_HANDLER(DEVWRITELINE("cent_status_in", input_buffer_device, write_bit4))
549557   MCFG_CENTRONICS_BUSY_HANDLER(DEVWRITELINE("cent_status_in", input_buffer_device, write_bit5))
r32212r32213
562570
563571   ROM_REGION( 0x1000, "chargen", 0 )
564572   ROM_LOAD( "cg-04-01.u53",  0x0000, 0x1000, CRC(2de75b7f) SHA1(464369d98cbae92ffa322ebaa4404cf5b26825f1) )
565
566   ROM_REGION(0x2000,"cart", ROMREGION_ERASEFF)
567   ROM_CART_LOAD("cart", 0x0000, 0x2000, ROM_OPTIONAL)
568573ROM_END
569574
570575/* Driver */
trunk/src/mess/drivers/myvision.c
r32212r32213
2525
2626#include "emu.h"
2727#include "cpu/z80/z80.h"
28#include "imagedev/cartslot.h"
2928#include "video/tms9928a.h"
3029#include "sound/ay8910.h"
30#include "bus/generic/slot.h"
31#include "bus/generic/carts.h"
3132
3233
3334class myvision_state : public driver_device
r32212r32213
3637   myvision_state(const machine_config &mconfig, device_type type, const char *tag)
3738      : driver_device(mconfig, type, tag)
3839      , m_maincpu(*this, "maincpu")
40      , m_cart(*this, "cartslot")
3941      , m_io_row0(*this, "ROW0")
4042      , m_io_row1(*this, "ROW1")
4143      , m_io_row2(*this, "ROW2")
r32212r32213
5355   virtual void machine_start();
5456   virtual void machine_reset();
5557   required_device<cpu_device> m_maincpu;
58   required_device<generic_slot_device> m_cart;
5659   UINT8 m_column;
5760   required_ioport m_io_row0;
5861   required_ioport m_io_row1;
r32212r32213
6366
6467static ADDRESS_MAP_START(myvision_mem, AS_PROGRAM, 8, myvision_state)
6568   ADDRESS_MAP_UNMAP_HIGH
66   AM_RANGE( 0x0000, 0x5fff ) AM_ROM
67   AM_RANGE( 0xa000, 0xa7ff ) AM_RAM
69   //AM_RANGE(0x0000, 0x5fff)      // mapped by the cartslot
70   AM_RANGE(0xa000, 0xa7ff) AM_RAM
6871   AM_RANGE(0xe000, 0xe000) AM_DEVREADWRITE("tms9918", tms9918a_device, vram_read, vram_write)
6972   AM_RANGE(0xe002, 0xe002) AM_DEVREADWRITE("tms9918", tms9918a_device, register_read, register_write)
7073ADDRESS_MAP_END
r32212r32213
125128
126129void myvision_state::machine_start()
127130{
131   if (m_cart->cart_mounted())
132      m_maincpu->space(AS_PROGRAM).install_read_handler(0x0000, 0x5fff, read8_delegate(FUNC(generic_slot_device::read_rom),(generic_slot_device*)m_cart));
133
128134   save_item(NAME(m_column));
129135}
130136
r32212r32213
137143
138144DEVICE_IMAGE_LOAD_MEMBER( myvision_state, cart )
139145{
140   UINT8 *cart = memregion("maincpu")->base();
141
142   if (image.software_entry() == NULL)
146   UINT32 size = m_cart->common_get_size("rom");
147   
148   if (size != 0x4000 && size != 0x6000)
143149   {
144      UINT32 filesize = image.length();
145
146      if (filesize != 0x4000 && filesize != 0x6000)
147      {
148         image.seterror(IMAGE_ERROR_UNSPECIFIED, "Incorrect or unsupported cartridge size");
149         return IMAGE_INIT_FAIL;
150      }
151
152      if (image.fread( cart, filesize) != filesize)
153      {
154         image.seterror(IMAGE_ERROR_UNSPECIFIED, "Error loading file");
155         return IMAGE_INIT_FAIL;
156      }
150      image.seterror(IMAGE_ERROR_UNSPECIFIED, "Unsupported cartridge size");
151      return IMAGE_INIT_FAIL;
157152   }
158   else
159   {
160      memcpy(cart, image.get_software_region("rom"), image.get_software_region_length("rom"));
161   }
153   
154   m_cart->rom_alloc(size, 1);
155   m_cart->common_load_rom(m_cart->get_rom_base(), size, "rom");         
162156
163157   return IMAGE_INIT_PASS;
164158}
r32212r32213
199193
200194READ8_MEMBER( myvision_state::ay_port_b_r )
201195{
202   return 0xFF;
196   return 0xff;
203197}
204198
205199
r32212r32213
237231   MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50)
238232
239233   /* cartridge */
240   MCFG_CARTSLOT_ADD("cart")
241   MCFG_CARTSLOT_EXTENSION_LIST("bin")
242   MCFG_CARTSLOT_MANDATORY
243   MCFG_CARTSLOT_LOAD(myvision_state,cart)
244   MCFG_CARTSLOT_INTERFACE("myvision_cart")
234   MCFG_GENERIC_CARTSLOT_ADD("cartslot", GENERIC_ROM8_WIDTH, generic_plain_slot, "myvision_cart")
235   MCFG_GENERIC_LOAD(myvision_state, cart)
236   //MCFG_GENERIC_MANDATORY
245237
246238   /* software lists */
247239   MCFG_SOFTWARE_LIST_ADD("cart_list","myvision")
r32212r32213
249241
250242/* ROM definition */
251243ROM_START( myvision )
252   ROM_REGION( 0x6000, "maincpu", ROMREGION_ERASEFF )
244   ROM_REGION( 0x10000, "maincpu", ROMREGION_ERASEFF )
253245ROM_END
254246
255247/* Driver */
trunk/src/mess/drivers/m5.c
r32212r32213
2525#include "cpu/z80/z80daisy.h"
2626#include "formats/m5_dsk.h"
2727#include "formats/sord_cas.h"
28#include "imagedev/cartslot.h"
2928#include "imagedev/cassette.h"
3029#include "bus/centronics/ctronics.h"
3130#include "machine/i8255.h"
r32212r32213
3433#include "machine/z80ctc.h"
3534#include "sound/sn76496.h"
3635#include "video/tms9928a.h"
36#include "bus/generic/slot.h"
37#include "bus/generic/carts.h"
3738#include "includes/m5.h"
3839
3940
r32212r32213
242243static ADDRESS_MAP_START( m5_mem, AS_PROGRAM, 8, m5_state )
243244   ADDRESS_MAP_UNMAP_HIGH
244245   AM_RANGE(0x0000, 0x1fff) AM_ROM
245   AM_RANGE(0x2000, 0x6fff) AM_ROM
246   //AM_RANGE(0x2000, 0x6fff)      // mapped by the cartslot
246247   AM_RANGE(0x7000, 0x7fff) AM_RAM
247248   AM_RANGE(0x8000, 0xffff) AM_RAM
248249ADDRESS_MAP_END
r32212r32213
546547      break;
547548   }
548549
550   if (m_cart->cart_mounted())
551      program.install_read_handler(0x2000, 0x6fff, read8_delegate(FUNC(generic_slot_device::read_rom),(generic_slot_device*)m_cart));
552
549553   // register for state saving
550554   save_item(NAME(m_fd5_data));
551555   save_item(NAME(m_fd5_com));
r32212r32213
612616   MCFG_FLOPPY_DRIVE_ADD(UPD765_TAG ":0", m5_floppies, "525dd", m5_state::floppy_formats)
613617
614618   // cartridge
615   MCFG_CARTSLOT_ADD("cart")
616   MCFG_CARTSLOT_EXTENSION_LIST("bin,rom")
617   MCFG_CARTSLOT_MANDATORY
618   MCFG_CARTSLOT_INTERFACE("m5_cart")
619   MCFG_GENERIC_CARTSLOT_ADD("cartslot", GENERIC_ROM8_WIDTH, generic_plain_slot, "m5_cart")
620   MCFG_GENERIC_EXTENSIONS("bin,rom")
621   //MCFG_GENERIC_MANDATORY
619622
620623   // software lists
621624   MCFG_SOFTWARE_LIST_ADD("cart_list", "m5")
r32212r32213
667670ROM_START( m5 )
668671   ROM_REGION( 0x7000, Z80_TAG, ROMREGION_ERASEFF )
669672   ROM_LOAD( "sordjap.ic21", 0x0000, 0x2000, CRC(92cf9353) SHA1(b0a4b3658fde68cb1f344dfb095bac16a78e9b3e) )
670   ROM_CART_LOAD( "cart",   0x2000, 0x5000, ROM_NOMIRROR | ROM_OPTIONAL )
671673
672674   ROM_REGION( 0x4000, Z80_FD5_TAG, 0 )
673675   ROM_LOAD( "sordfd5.rom", 0x0000, 0x4000, CRC(7263bbc5) SHA1(b729500d3d2b2e807d384d44b76ea5ad23996f4a))
r32212r32213
681683ROM_START( m5p )
682684   ROM_REGION( 0x7000, Z80_TAG, ROMREGION_ERASEFF )
683685   ROM_LOAD( "sordint.ic21", 0x0000, 0x2000, CRC(78848d39) SHA1(ac042c4ae8272ad6abe09ae83492ef9a0026d0b2) )
684   ROM_CART_LOAD( "cart",   0x2000, 0x5000, ROM_NOMIRROR | ROM_OPTIONAL )
685686
686687   ROM_REGION( 0x4000, Z80_FD5_TAG, 0 )
687688   ROM_LOAD( "sordfd5.rom", 0x0000, 0x4000, CRC(7263bbc5) SHA1(b729500d3d2b2e807d384d44b76ea5ad23996f4a))
trunk/src/mess/drivers/ep64.c
r32212r32213
320320
321321static ADDRESS_MAP_START( dave_64k_mem, AS_PROGRAM, 8, ep64_state )
322322   AM_RANGE(0x000000, 0x007fff) AM_ROM AM_REGION(Z80_TAG, 0)
323   AM_RANGE(0x010000, 0x01ffff) AM_ROM AM_REGION("cart", 0)
323   //AM_RANGE(0x010000, 0x01ffff)      // mapped by the cartslot
324324   AM_RANGE(0x3f0000, 0x3fffff) AM_DEVICE(NICK_TAG, nick_device, vram_map)
325325ADDRESS_MAP_END
326326
r32212r32213
470470
471471void ep64_state::machine_start()
472472{
473   if (m_cart->cart_mounted())
474      m_dave->space(AS_PROGRAM).install_read_handler(0x010000, 0x01ffff, read8_delegate(FUNC(generic_slot_device::read_rom),(generic_slot_device*)m_cart));
475
473476   // state saving
474477   save_item(NAME(m_key));
475478   save_item(NAME(m_centronics_busy));
r32212r32213
538541   MCFG_RAM_DEFAULT_SIZE("64K")
539542
540543   // cartridge
541   MCFG_CARTSLOT_ADD("cart")
542   MCFG_CARTSLOT_EXTENSION_LIST("rom,bin")
543   MCFG_CARTSLOT_NOT_MANDATORY
544   MCFG_CARTSLOT_INTERFACE("ep64_cart")
544   MCFG_GENERIC_CARTSLOT_ADD("cartslot", GENERIC_ROM8_WIDTH, generic_linear_slot, "ep64_cart")
545   MCFG_GENERIC_EXTENSIONS("bin,rom")
545546
546547   // software lists
547548   MCFG_SOFTWARE_LIST_ADD("cart_list", "ep64_cart")
r32212r32213
576577ROM_START( ep64 )
577578   ROM_REGION( 0x8000, Z80_TAG, 0 )
578579   ROM_LOAD( "9256ds-0038_enter05-23-a.u2", 0x0000, 0x8000, CRC(d421795f) SHA1(6033a0535136c40c47137e4d1cd9273c06d5fdff) )
579
580   ROM_REGION( 0x10000, "cart", 0 )
581   ROM_CART_LOAD( "cart", 0x00000, 0x10000, ROM_MIRROR )
582580ROM_END
583581
584582#define rom_phc64   rom_ep64
r32212r32213
591589ROM_START( ep128 )
592590   ROM_REGION( 0x8000, Z80_TAG, 0 )
593591   ROM_LOAD( "9256ds-0019_enter08-45-a.u2", 0x0000, 0x8000, CRC(982a3b44) SHA1(55315b20fecb4441a07ee4bc5dc7153f396e0a2e) )
594
595   ROM_REGION( 0x10000, "cart", 0 )
596   ROM_CART_LOAD( "cart", 0x00000, 0x10000, ROM_MIRROR )
597592ROM_END
598593
599594
trunk/src/mess/drivers/gmaster.c
r32212r32213
44
55#include "emu.h"
66#include "cpu/upd7810/upd7810.h"
7#include "imagedev/cartslot.h"
87#include "sound/speaker.h"
8#include "bus/generic/slot.h"
9#include "bus/generic/carts.h"
910#include "rendlay.h"
1011
1112
r32212r32213
1617      : driver_device(mconfig, type, tag)
1718      , m_maincpu(*this, "maincpu")
1819      , m_speaker(*this, "speaker")
20      , m_cart(*this, "cartslot")
1921      , m_io_joy(*this, "JOY")
2022   { }
2123
r32212r32213
4547   UINT8 m_ram[0x4000];
4648   required_device<cpu_device> m_maincpu;
4749   required_device<speaker_sound_device> m_speaker;
50   required_device<generic_slot_device> m_cart;
4851   required_ioport m_io_joy;
4952};
5053
r32212r32213
179182static ADDRESS_MAP_START( gmaster_mem, AS_PROGRAM, 8, gmaster_state )
180183   AM_RANGE(0x0000, 0x3fff) AM_ROM
181184   AM_RANGE(0x4000, 0x7fff) AM_READWRITE(gmaster_io_r, gmaster_io_w)
182   AM_RANGE(0x8000, 0xfeff) AM_ROM
185   //AM_RANGE(0x8000, 0xfeff)      // mapped by the cartslot
183186   AM_RANGE(0xff00, 0xffff) AM_RAM
184187ADDRESS_MAP_END
185188
r32212r32213
260263
261264void gmaster_state::machine_start()
262265{
266   if (m_cart->cart_mounted())
267      m_maincpu->space(AS_PROGRAM).install_read_handler(0x8000, 0xfeff, read8_delegate(FUNC(generic_slot_device::read_rom),(generic_slot_device*)m_cart));
268
263269   save_item(NAME(m_video.data));
264270   save_item(NAME(m_video.index));
265271   save_item(NAME(m_video.x));
r32212r32213
297303   MCFG_SOUND_ADD("speaker", SPEAKER_SOUND, 0)
298304   MCFG_SOUND_ROUTE(0, "mono", 0.50)
299305
300   MCFG_CARTSLOT_ADD("cart")
301   MCFG_CARTSLOT_EXTENSION_LIST("bin")
302   MCFG_CARTSLOT_MANDATORY
303   MCFG_CARTSLOT_INTERFACE("gmaster_cart")
306   MCFG_GENERIC_CARTSLOT_ADD("cartslot", GENERIC_ROM8_WIDTH, generic_linear_slot, "gmaster_cart")
307   MCFG_GENERIC_MANDATORY
308
304309   MCFG_SOFTWARE_LIST_ADD("cart_list","gmaster")
305310MACHINE_CONFIG_END
306311
r32212r32213
308313ROM_START(gmaster)
309314   ROM_REGION(0x10000,"maincpu", 0)
310315   ROM_LOAD("d78c11agf_e19.u1", 0x0000, 0x1000, CRC(05cc45e5) SHA1(05d73638dea9657ccc2791c0202d9074a4782c1e) )
311   ROM_CART_LOAD("cart", 0x8000, 0x8000, 0)
312316ROM_END
313317
314318
trunk/src/mess/includes/m5.h
r32212r32213
2525         m_ppi(*this, I8255A_TAG),
2626         m_fdc(*this, UPD765_TAG),
2727         m_cassette(*this, "cassette"),
28         m_cart(*this, "cartslot"),
2829         m_centronics(*this, CENTRONICS_TAG),
2930         m_ram(*this, RAM_TAG),
3031         m_floppy0(*this, UPD765_TAG ":0:525dd"),
r32212r32213
3738   required_device<i8255_device> m_ppi;
3839   required_device<upd765a_device> m_fdc;
3940   required_device<cassette_image_device> m_cassette;
41   required_device<generic_slot_device> m_cart;
4042   required_device<centronics_device> m_centronics;
4143   required_device<ram_device> m_ram;
4244   required_device<floppy_image_device> m_floppy0;
trunk/src/mess/includes/ep64.h
r32212r32213
1818#include "bus/rs232/rs232.h"
1919#include "bus/ep64/exp.h"
2020#include "cpu/z80/z80.h"
21#include "imagedev/cartslot.h"
2221#include "imagedev/cassette.h"
2322#include "bus/centronics/ctronics.h"
23#include "bus/generic/slot.h"
24#include "bus/generic/carts.h"
2425#include "machine/ram.h"
2526#include "video/nick.h"
2627
r32212r32213
4546         m_rs232(*this, RS232_TAG),
4647         m_cassette1(*this, CASSETTE1_TAG),
4748         m_cassette2(*this, CASSETTE2_TAG),
49         m_cart(*this, "cartslot"),
4850         m_ram(*this, RAM_TAG),
4951         m_rom(*this, Z80_TAG),
5052         m_y0(*this, "Y0"),
r32212r32213
6668   required_device<rs232_port_device> m_rs232;
6769   required_device<cassette_image_device> m_cassette1;
6870   required_device<cassette_image_device> m_cassette2;
71   required_device<generic_slot_device> m_cart;
6972   required_device<ram_device> m_ram;
7073   required_memory_region m_rom;
7174   required_ioport m_y0;

Previous 199869 Revisions Next


© 1997-2024 The MAME Team