Previous 199869 Revisions Next

r29597 Sunday 13th April, 2014 at 11:08:08 UTC by Sandro Ronco
(MESS) gl6000sl: fixed cart loading. (nw)
[src/mess/drivers]prestige.c

trunk/src/mess/drivers/prestige.c
r29596r29597
9090   prestige_state(const machine_config &mconfig, device_type type, const char *tag)
9191      : driver_device(mconfig, type, tag),
9292         m_maincpu(*this, "maincpu"),
93         m_ram(*this, RAM_TAG)
93         m_ram(*this, RAM_TAG),
94         m_bank1(*this, "bank1"),
95         m_bank2(*this, "bank2"),
96         m_bank3(*this, "bank3"),
97         m_bank4(*this, "bank4"),
98         m_bank5(*this, "bank5")
9499      { }
95100
96101   required_device<cpu_device> m_maincpu;
97102   required_device<ram_device> m_ram;
103   required_memory_bank m_bank1;
104   required_memory_bank m_bank2;
105   required_memory_bank m_bank3;
106   required_memory_bank m_bank4;
107   required_memory_bank m_bank5;
98108
99109   UINT8 m_bank[7];
100110   UINT8 m_kb_matrix;
r29596r29597
130140   switch (offset)
131141   {
132142   case 0:
133      membank("bank1")->set_entry(data & 0x3f);
143      m_bank1->set_entry(data & 0x3f);
134144      break;
135145
136146   case 1:
137      if (m_bank[5] & 0x08)
138         membank("bank2")->set_entry(0x40 + (data & 1));
147      if (m_bank[5] & 0x02)
148         m_bank2->set_entry(0x40 + (data & 0x1f));
139149      else
140         membank("bank2")->set_entry(data & 0x3f);
150         m_bank2->set_entry(data & 0x3f);
141151      break;
142152
143153   case 2:
144154      if (m_bank[5] & 0x04)
145         membank("bank3")->set_entry(0x40 + (data & 1));
155         m_bank3->set_entry(0x40 + (data & 0x1f));
146156      else
147         membank("bank3")->set_entry(data & 0x3f);
157         m_bank3->set_entry(data & 0x3f);
148158      break;
149159
150160   case 3:
151      if (m_bank[5] & 0x02)
152         membank("bank4")->set_entry(0x04 + (data & 0x03));
153      else
154         membank("bank4")->set_entry(data & 0x03);
161      m_bank4->set_entry(data & 0x03);
155162      break;
156163
157164   case 4:
158      membank("bank5")->set_entry(data & 0x03);
165      m_bank5->set_entry(data & 0x03);
159166      break;
160167
161168   case 5:
162169      if (ioport("CART_TYPE")->read() == 0x01)
163170      {
164171         //cartridge memory is writable
165         if (data & 0x08)
172         if (data & 0x02)
166173            program.install_readwrite_bank(0x4000, 0x7fff, "bank2");
167174         else
168175            program.unmap_write(0x4000, 0x7fff);
r29596r29597
171178            program.install_readwrite_bank(0x8000, 0xbfff, "bank3");
172179         else
173180            program.unmap_write(0x8000, 0xbfff);
174
175         program.install_readwrite_bank(0xc000, 0xdfff, "bank4");
176181      }
177182      else
178183      {
179184         //cartridge memory is read-only
180         if (data & 0x02)
181            program.unmap_write(0xc000, 0xdfff);
182         else
183            program.install_readwrite_bank(0xc000, 0xdfff, "bank4");
184
185185         program.unmap_write(0x4000, 0xbfff);
186186      }
187187      break;
r29596r29597
264264/* Input ports */
265265INPUT_PORTS_START( prestige )
266266   PORT_START("CART_TYPE")
267   PORT_CONFNAME( 0x01, 0x01, "Cartridge Type" )
267   PORT_CONFNAME( 0x01, 0x00, "Cartridge Type" )
268268   PORT_CONFSETTING( 0x00, "ROM" )
269269   PORT_CONFSETTING( 0x01, "RAM" )
270270
271271   PORT_START("MOUSEX")
272   PORT_BIT( 0xff, 0x00, IPT_MOUSE_X ) PORT_SENSITIVITY(10) PORT_KEYDELTA(0)
272   PORT_BIT( 0xff, 0x00, IPT_MOUSE_X ) PORT_SENSITIVITY(20) PORT_KEYDELTA(2)
273273
274274   PORT_START("MOUSEY")
275   PORT_BIT( 0xff, 0x00, IPT_MOUSE_Y ) PORT_SENSITIVITY(10) PORT_KEYDELTA(0)
275   PORT_BIT( 0xff, 0x00, IPT_MOUSE_Y ) PORT_SENSITIVITY(20) PORT_KEYDELTA(2)
276276
277277   PORT_START("LINE0")
278278   PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Left mouse button")  PORT_CODE(MOUSECODE_BUTTON1)
r29596r29597
418418
419419void prestige_state::machine_start()
420420{
421   UINT8 *rom = (UINT8 *)(*memregion("maincpu"));
422   UINT8 *cart = (UINT8 *)(*memregion("cart"));
421423   UINT8 *ram = m_ram->pointer();
422424   memset(ram, 0x00, m_ram->size());
423425
424426   m_maincpu->set_irq_acknowledge_callback(device_irq_acknowledge_delegate(FUNC(prestige_state::prestige_int_ack),this));
425427
426   membank("bank1")->configure_entries(0, 64, memregion("maincpu")->base(), 0x4000);
427   membank("bank2")->configure_entries(0, 64, memregion("maincpu")->base(), 0x4000);
428   membank("bank2")->configure_entries(64, 2, memregion("cart")->base(), 0x4000);
429   membank("bank3")->configure_entries(0, 64, memregion("maincpu")->base(), 0x4000);
430   membank("bank3")->configure_entries(64, 2, memregion("cart")->base(), 0x4000);
431   membank("bank4")->configure_entries(0, 4, ram, 0x2000);
432   membank("bank4")->configure_entries(4, 4, memregion("cart")->base(), 0x2000);
433   membank("bank5")->configure_entries(0, 4, ram, 0x2000);
428   m_bank1->configure_entries(0, 64, rom,  0x4000);
429   m_bank1->configure_entries(64,32, cart, 0x4000);
430   m_bank2->configure_entries(0, 64, rom,  0x4000);
431   m_bank2->configure_entries(64,32, cart, 0x4000);
432   m_bank3->configure_entries(0, 64, rom,  0x4000);
433   m_bank3->configure_entries(64,32, cart, 0x4000);
434   m_bank4->configure_entries(0, 4,  ram,  0x2000);
435   m_bank5->configure_entries(0, 4,  ram,  0x2000);
434436
435   membank("bank1")->set_entry(0);
436   membank("bank2")->set_entry(0);
437   membank("bank3")->set_entry(0);
438   membank("bank4")->set_entry(0);
439   membank("bank5")->set_entry(0);
437   m_bank1->set_entry(0);
438   m_bank2->set_entry(0);
439   m_bank3->set_entry(0);
440   m_bank4->set_entry(0);
441   m_bank5->set_entry(0);
440442
441443   //pointer to the videoram
442444   m_vram = ram;
r29596r29597
477479   m_maincpu->set_input_line(0, ASSERT_LINE);
478480}
479481
480static MACHINE_CONFIG_START( prestige, prestige_state )
482static MACHINE_CONFIG_START( prestige_base, prestige_state )
481483   /* basic machine hardware */
482484   MCFG_CPU_ADD("maincpu",Z80, XTAL_4MHz)
483485   MCFG_CPU_PROGRAM_MAP(prestige_mem)
r29596r29597
510512   MCFG_RAM_EXTRA_OPTIONS("64K")
511513MACHINE_CONFIG_END
512514
513static MACHINE_CONFIG_DERIVED( gl6000sl, prestige )
515static MACHINE_CONFIG_DERIVED( prestige, prestige_base )
516   MCFG_SOFTWARE_LIST_COMPATIBLE_ADD("gl6000sl_cart", "gl6000sl")
517   MCFG_SOFTWARE_LIST_COMPATIBLE_ADD("misterx_cart", "misterx")
518   MCFG_SOFTWARE_LIST_COMPATIBLE_ADD("gl2000_cart", "gl2000")
519MACHINE_CONFIG_END
520
521static MACHINE_CONFIG_DERIVED( gl6000sl, prestige_base )
514522   MCFG_SOFTWARE_LIST_ADD("cart_list", "gl6000sl")
515523   MCFG_SOFTWARE_LIST_COMPATIBLE_ADD("misterx_cart", "misterx")
516524   MCFG_SOFTWARE_LIST_COMPATIBLE_ADD("gl2000_cart", "gl2000")
517525MACHINE_CONFIG_END
518526
519static MACHINE_CONFIG_DERIVED( gl7007sl, prestige )
527static MACHINE_CONFIG_DERIVED( gl7007sl, prestige_base )
520528   MCFG_SOFTWARE_LIST_COMPATIBLE_ADD("gl6000sl_cart", "gl6000sl")
521529   MCFG_SOFTWARE_LIST_COMPATIBLE_ADD("gl2000_cart", "gl2000")
522530   MCFG_SOFTWARE_LIST_COMPATIBLE_ADD("misterx_cart", "misterx")
r29596r29597
527535   ROM_REGION(0x100000, "maincpu", 0)
528536   ROM_LOAD( "27-5894-01",   0x000000, 0x080000, CRC(7336231c) SHA1(35a1f739994b5c8fb67a7f76d423e50d8154e9ea) )
529537
530   ROM_REGION( 0x40000, "cart", ROMREGION_ERASEFF )
531   ROM_CART_LOAD( "cart", 0, 0x40000, 0 )
538   ROM_REGION( 0x80000, "cart", ROMREGION_ERASEFF )
539   ROM_CART_LOAD( "cart", 0, 0x80000, 0 )
532540ROM_END
533541
534542ROM_START( gl7007sl )
535543   ROM_REGION(0x100000, "maincpu", 0)
536544   ROM_LOAD( "27-6060-00", 0x000000, 0x100000, CRC(06b2a595) SHA1(654d00e55ee43627ff947d72676c8e48e0518123) )
537545
538   ROM_REGION( 0x40000, "cart", ROMREGION_ERASEFF )
539   ROM_CART_LOAD( "cart", 0, 0x40000, 0 )
546   ROM_REGION( 0x80000, "cart", ROMREGION_ERASEFF )
547   ROM_CART_LOAD( "cart", 0, 0x80000, 0 )
540548ROM_END
541549
542550ROM_START( prestige )
543551   ROM_REGION( 0x100000, "maincpu", 0 )
544552   ROM_LOAD( "27-6020-02.u2", 0x00000, 0x100000, CRC(6bb6db14) SHA1(5d51fc3fd799e7f01ee99c453f9005fb07747b1e) )
545553
546   ROM_REGION( 0x40000, "cart", ROMREGION_ERASEFF )
547   ROM_CART_LOAD( "cart", 0, 0x40000, 0 )
554   ROM_REGION( 0x80000, "cart", ROMREGION_ERASEFF )
555   ROM_CART_LOAD( "cart", 0, 0x80000, 0 )
548556ROM_END
549557
550558ROM_START( glcolor )
551559   ROM_REGION( 0x100000, "maincpu", 0 )
552560   ROM_LOAD( "27-5488-00.u5", 0x00000, 0x080000, CRC(e6cf7702) SHA1(ce40418a7777b331bf8c4c881d51732aeb384582) )
553561
554   ROM_REGION( 0x40000, "cart", ROMREGION_ERASEFF )
555   ROM_CART_LOAD( "cart", 0, 0x40000, 0 )
562   ROM_REGION( 0x80000, "cart", ROMREGION_ERASEFF )
563   ROM_CART_LOAD( "cart", 0, 0x80000, 0 )
556564ROM_END
557565
558566/* Driver */

Previous 199869 Revisions Next


© 1997-2024 The MAME Team