Previous 199869 Revisions Next

r30839 Wednesday 4th June, 2014 at 21:30:17 UTC by Wilbert Pol
(MESS) msx.c: Added support for Arc (nw)
[hash]msx2_flop.xml
[src/emu/bus]bus.mak
[src/emu/bus/msx_cart]arc.c* arc.h* cartridge.c

trunk/hash/msx2_flop.xml
r30838r30839
309309   </software>
310310-->
311311
312   <!-- Needs specific mapper -->
313   <software name="arc" supported="no">
312   <software name="arc">
314313      <description>Arc</description>
315314      <year>1990</year>
316315      <publisher>Parallax</publisher>
317      <part name="flop1" interface="floppy_3_5">
316      <!-- Floppy #2 is the game disk -->
317      <part name="flop2" interface="floppy_3_5">
318318         <dataarea name="flop" size="737280">
319            <rom name="ARC_disk_A.dsk" size="737280" crc="dfd9c28d" sha1="ddff24b17fd4fcaecd8197fb8a20099483924565" offset="0" />
319            <rom name="ARC_disk_B.dsk" size="737280" crc="af2bd084" sha1="8d91f61e28c0d813f16adb06e019da911aa84b2c" offset="0" />
320320         </dataarea>
321321      </part>
322      <part name="flop2" interface="floppy_3_5">
322      <!-- Floppy #1 contains the manual -->
323      <part name="flop1" interface="floppy_3_5">
323324         <dataarea name="flop" size="737280">
324            <rom name="ARC_disk_B.dsk" size="737280" crc="af2bd084" sha1="8d91f61e28c0d813f16adb06e019da911aa84b2c" offset="0" />
325            <rom name="ARC_disk_A.dsk" size="737280" crc="dfd9c28d" sha1="ddff24b17fd4fcaecd8197fb8a20099483924565" offset="0" />
325326         </dataarea>
326327      </part>
327328      <part name="cart" interface="msx_cart">
trunk/src/emu/bus/bus.mak
r30838r30839
407407BUSOBJS += $(BUSOBJ)/msx_slot/slot.o
408408BUSOBJS += $(BUSOBJ)/msx_slot/sony08.o
409409OBJDIRS += $(BUSOBJ)/msx_cart
410BUSOBJS += $(BUSOBJ)/msx_cart/arc.o
410411BUSOBJS += $(BUSOBJ)/msx_cart/ascii.o
411412BUSOBJS += $(BUSOBJ)/msx_cart/cartridge.o
412413BUSOBJS += $(BUSOBJ)/msx_cart/crossblaim.o
trunk/src/emu/bus/msx_cart/cartridge.c
r30838r30839
11
22#include "emu.h"
33#include "cartridge.h"
4#include "arc.h"
45#include "ascii.h"
56#include "crossblaim.h"
67#include "dooly.h"
r30838r30839
5152   SLOT_INTERFACE_INTERNAL("holy_quran", MSX_CART_HOLY_QURAN)
5253   SLOT_INTERFACE_INTERNAL("dooly", MSX_CART_DOOLY)
5354   SLOT_INTERFACE_INTERNAL("halnote", MSX_CART_HALNOTE)
55   SLOT_INTERFACE_INTERNAL("arc", MSX_CART_ARC)
5456SLOT_INTERFACE_END
5557
5658
trunk/src/emu/bus/msx_cart/arc.c
r0r30839
1#include "emu.h"
2#include "arc.h"
3
4
5const device_type MSX_CART_ARC = &device_creator<msx_cart_arc>;
6
7
8msx_cart_arc::msx_cart_arc(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock)
9   : device_t(mconfig, MSX_CART_ARC, "MSX Cartridge - Arc", tag, owner, clock, "msx_cart_arc", __FILE__)
10   , msx_cart_interface(mconfig, *this)
11   , m_7f(0)
12{
13}
14
15
16void msx_cart_arc::device_start()
17{
18   // Install IO read/write handlers
19   address_space &space = machine().device<cpu_device>("maincpu")->space(AS_IO);
20   space.install_write_handler(0x7f, 0x7f, write8_delegate(FUNC(msx_cart_arc::io_7f_w), this));
21   space.install_read_handler(0x7f, 0x7f, read8_delegate(FUNC(msx_cart_arc::io_7f_r), this));
22}
23
24
25void msx_cart_arc::device_reset()
26{
27   m_7f = 0;
28}
29
30
31void msx_cart_arc::initialize_cartridge()
32{
33   if (get_rom_size() != 0x8000)
34   {
35      fatalerror("arc: Invalid ROM size\n");
36   }
37}
38
39
40READ8_MEMBER(msx_cart_arc::read_cart)
41{
42   if (offset >= 0x4000 && offset < 0xc000)
43   {
44      return get_rom_base()[offset - 0x4000];
45   }
46   return 0xff;
47}
48
49
50WRITE8_MEMBER(msx_cart_arc::io_7f_w)
51{
52   if (data == 0x35)
53   {
54      m_7f++;
55   }
56}
57
58
59READ8_MEMBER(msx_cart_arc::io_7f_r)
60{
61   return ((m_7f & 0x03) == 0x03) ? 0xda : 0xff;
62}
63
Property changes on: trunk/src/emu/bus/msx_cart/arc.c
Added: svn:mime-type
   + text/plain
Added: svn:eol-style
   + native
trunk/src/emu/bus/msx_cart/arc.h
r0r30839
1#ifndef __MSX_CART_ARC_H
2#define __MSX_CART_ARC_H
3
4#include "bus/msx_cart/cartridge.h"
5
6
7extern const device_type MSX_CART_ARC;
8
9
10class msx_cart_arc : public device_t
11               , public msx_cart_interface
12{
13public:
14   msx_cart_arc(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
15
16   // device-level overrides
17   virtual void device_start();
18   virtual void device_reset();
19
20   virtual void initialize_cartridge();
21
22   virtual DECLARE_READ8_MEMBER(read_cart);
23
24   DECLARE_WRITE8_MEMBER(io_7f_w);
25   DECLARE_READ8_MEMBER(io_7f_r);
26
27private:
28   UINT8 m_7f;
29};
30
31
32#endif
Property changes on: trunk/src/emu/bus/msx_cart/arc.h
Added: svn:mime-type
   + text/plain
Added: svn:eol-style
   + native

Previous 199869 Revisions Next


© 1997-2024 The MAME Team