Previous 199869 Revisions Next

r34043 Wednesday 24th December, 2014 at 08:05:17 UTC by Fabio Priuli
(MESS) vc4000: properly supported 4K carts with no RAM. [Fabio Priuli]
[hash]database.xml vc4000.xml
[src/emu/bus/vc4000]rom.c rom.h slot.c slot.h
[src/mess/drivers]vc4000.c

trunk/hash/database.xml
r242554r242555
157157      <publisher>Voltmace?</publisher>
158158      <info name="serial" value="No.13"/>
159159      <part name="cart" interface="vc4000_cart">
160         <!-- FIXME: PCB has no RAM, but 4k ROM => it needs a new slot option -->
161         <feature name="slot" value="std" />
160         <feature name="slot" value="rom4k" />
162161         <dataarea name="rom" size="4096">
163162            <rom name="boxing.bin" size="4096" crc="922c9f0d" sha1="b49a37dd6d0272f6c71d778ffada6bc7c90f8348" offset="0" />
164163         </dataarea>
r242554r242555
229228      <publisher>Voltmace?</publisher>
230229      <info name="serial" value="No.24"/>
231230      <part name="cart" interface="vc4000_cart">
232         <!-- FIXME: PCB has no RAM, but 4k ROM => it needs a new slot option -->
233         <feature name="slot" value="std" />
231         <feature name="slot" value="rom4k" />
234232         <dataarea name="rom" size="4096">
235233            <rom name="munchcrn.bin" size="4096" crc="704a1593" sha1="5f0b95904d6d36368727c1e0c91d94627a7471d6" offset="0" />
236234         </dataarea>
trunk/hash/vc4000.xml
r242554r242555
236236      <publisher>Interton</publisher>
237237      <info name="serial" value="18"/>
238238      <part name="cart" interface="vc4000_cart">
239         <feature name="slot" value="ram1k" />
239         <feature name="slot" value="rom4k" />
240240         <dataarea name="rom" size="4096">
241241            <rom name="boxing.bin" size="4096" crc="922c9f0d" sha1="b49a37dd6d0272f6c71d778ffada6bc7c90f8348" offset="0" />
242242         </dataarea>
243         <dataarea name="ram" size="1024">
244         </dataarea>
245243      </part>
246244   </software>
247245
trunk/src/emu/bus/vc4000/rom.c
r242554r242555
193193//-------------------------------------------------
194194
195195const device_type VC4000_ROM_STD = &device_creator<vc4000_rom_device>;
196const device_type VC4000_ROM_ROM4K = &device_creator<vc4000_rom4k_device>;
196197const device_type VC4000_ROM_RAM1K = &device_creator<vc4000_ram1k_device>;
197198const device_type VC4000_ROM_CHESS2 = &device_creator<vc4000_chess2_device>;
198199
r242554r242555
209210{
210211}
211212
213vc4000_rom4k_device::vc4000_rom4k_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock)
214               : vc4000_rom_device(mconfig, VC4000_ROM_ROM4K, "VC 4000 Carts w/4K ROM", tag, owner, clock, "vc4000_rom4k", __FILE__)
215{
216}
217
212218vc4000_ram1k_device::vc4000_ram1k_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock)
213219               : vc4000_rom_device(mconfig, VC4000_ROM_RAM1K, "VC 4000 Carts w/1K RAM", tag, owner, clock, "vc4000_ram1k", __FILE__)
214220{
trunk/src/emu/bus/vc4000/rom.h
r242554r242555
2424   virtual DECLARE_READ8_MEMBER(read_rom);
2525};
2626
27// ======================> vc4000_rom4k_device
28
29class vc4000_rom4k_device : public vc4000_rom_device
30{
31public:
32   // construction/destruction
33   vc4000_rom4k_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
34};
35
2736// ======================> vc4000_ram1k_device
2837
2938class vc4000_ram1k_device : public vc4000_rom_device
r242554r242555
5766
5867// device type definition
5968extern const device_type VC4000_ROM_STD;
69extern const device_type VC4000_ROM_ROM4K;
6070extern const device_type VC4000_ROM_RAM1K;
6171extern const device_type VC4000_ROM_CHESS2;
6272
trunk/src/emu/bus/vc4000/slot.c
r242554r242555
127127static const vc4000_slot slot_list[] =
128128{
129129   { VC4000_STD,     "std" },
130   { VC4000_ROM4K,   "rom4k" },
130131   { VC4000_RAM1K,   "ram1k" },
131132   { VC4000_CHESS2,  "chess2" }
132133};
r242554r242555
183184         // attempt to identify the non-standard types
184185         if (size > 0x1000)  // 6k rom + 1k ram - Chess2 only
185186            m_type = VC4000_CHESS2;
186         else if (size > 0x0800) // some 4k roms have 1k of mirrored ram
187         else if (size > 0x0800) // some 4k roms have 1k of mirrored ram (those who don't still work with RAM emulated luckily)
187188            m_type = VC4000_RAM1K;
188189
189190         if (m_type == VC4000_RAM1K || m_type == VC4000_CHESS2)
trunk/src/emu/bus/vc4000/slot.h
r242554r242555
1212enum
1313{
1414   VC4000_STD = 0,
15   VC4000_ROM4K,
1516   VC4000_RAM1K,
1617   VC4000_CHESS2
1718};
trunk/src/mess/drivers/vc4000.c
r242554r242555
369369         case VC4000_STD:
370370            m_maincpu->space(AS_PROGRAM).install_read_handler(0x0000, 0x07ff, read8_delegate(FUNC(vc4000_cart_slot_device::read_rom),(vc4000_cart_slot_device*)m_cart));
371371            break;
372         case VC4000_ROM4K:
373            m_maincpu->space(AS_PROGRAM).install_read_handler(0x0000, 0x0fff, read8_delegate(FUNC(vc4000_cart_slot_device::read_rom),(vc4000_cart_slot_device*)m_cart));
374            break;
372375         case VC4000_RAM1K:
373376            m_maincpu->space(AS_PROGRAM).install_read_handler(0x0000, 0x0fff, read8_delegate(FUNC(vc4000_cart_slot_device::read_rom),(vc4000_cart_slot_device*)m_cart));
374377            m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x1000, 0x15ff, read8_delegate(FUNC(vc4000_cart_slot_device::read_ram),(vc4000_cart_slot_device*)m_cart), write8_delegate(FUNC(vc4000_cart_slot_device::write_ram),(vc4000_cart_slot_device*)m_cart));
r242554r242555
513516
514517static SLOT_INTERFACE_START(vc4000_cart)
515518   SLOT_INTERFACE_INTERNAL("std",      VC4000_ROM_STD)
519   SLOT_INTERFACE_INTERNAL("rom4k",    VC4000_ROM_ROM4K)
516520   SLOT_INTERFACE_INTERNAL("ram1k",    VC4000_ROM_RAM1K)
517521   SLOT_INTERFACE_INTERNAL("chess2",   VC4000_ROM_CHESS2)
518522SLOT_INTERFACE_END


Previous 199869 Revisions Next


© 1997-2024 The MAME Team