Previous 199869 Revisions Next

r40076 Thursday 30th July, 2015 at 10:17:47 UTC by Wilbert Pol
msx1_cart.xml: Added fs_sr002 mapper based on internal bunsetsu mapper (nw)
[hash]msx1_cart.xml
[scripts/src]bus.lua
[src/emu/bus/msx_cart]cartridge.c fs_sr022.c* fs_sr022.h*

trunk/hash/msx1_cart.xml
r248587r248588
1382313823    </software>
1382413824-->
1382513825
13826<!-- Dictionary ROMs? -->
13827   <software name="natjis" supported="no">
13828      <description>National FS-SR022 MSX-Jisho (Jpn)</description>
13826<!-- Dictionary ROMs -->
13827   <software name="natjis" supported="partial">
13828      <description>National FS-SR022 Bunsetsu Henkan Jisho (Jpn)</description>
1382913829      <year>1985</year>
1383013830      <publisher>Matsushita</publisher>
13831      <info name="alt_title" value="文節変換熟語ユニット" />
1383113832      <part name="cart" interface="msx_cart">
13832         <dataarea name="rom" size="131072">
13833            <rom name="jisyo data (japan) (program).rom" size="131072" crc="46e90b77" sha1="765413bb6b03bc3bb888ee8fe00b99ef69c1317a" offset="0" />
13833         <feature name="slot" value="fs_sr022" />
13834         <feature name="pcb" value="DFUP0058ZAJ" />
13835         <dataarea name="rom" size="262144">
13836            <rom name="PRO ROM V1.0 DASR022A1.ic16" size="32768" crc="381b3431" sha1="8c7ae1a1720b1dae9af9904e638b868f56d905c2" offset="0" />
13837            <!-- The dictionary is in 4 32KB EEPROMs instead of one 128KB rom:
13838                 - DIC1 ROM V1.0 DASR022B1.ic15
13839                 - DIC2 ROM V1.0 DASR022C1.ic14
13840                 - DIC3 ROM V1.0 DASR022D1.ic13
13841                 - DIC4 ROM V1.0 DASR022E1.ic12
13842            -->
13843            <rom name="jisyo data (japan) (program).rom" size="131072" crc="46e90b77" sha1="765413bb6b03bc3bb888ee8fe00b99ef69c1317a" flags="baddump" offset="0x20000" />
1383413844         </dataarea>
1383513845      </part>
1383613846   </software>
1383713847
13838   <software name="natbhjis" supported="no">
13839      <description>National FS-SR022 MSX Bunsetsu Henkan Jisho (Jpn)</description>
13840      <year>1985</year>
13841      <publisher>Matsushita</publisher>
13842      <part name="cart" interface="msx_cart">
13843         <dataarea name="rom" size="32768">
13844            <rom name="msx bunsetsu henkan jisyo (japan) (program).rom" size="32768" crc="381b3431" sha1="8c7ae1a1720b1dae9af9904e638b868f56d905c2" offset="0" />
13845         </dataarea>
13846      </part>
13847   </software>
1384813848
1384913849
13850
13851
1385213850<!-- ARABIC SOFTWARE -->
1385313851
1385413852
trunk/scripts/src/bus.lua
r248587r248588
886886      MAME_DIR .. "src/emu/bus/msx_cart/dooly.h",
887887      MAME_DIR .. "src/emu/bus/msx_cart/fmpac.c",
888888      MAME_DIR .. "src/emu/bus/msx_cart/fmpac.h",
889      MAME_DIR .. "src/emu/bus/msx_cart/fs_sr022.c",
890      MAME_DIR .. "src/emu/bus/msx_cart/fs_sr022.h",
889891      MAME_DIR .. "src/emu/bus/msx_cart/halnote.c",
890892      MAME_DIR .. "src/emu/bus/msx_cart/halnote.h",
891893      MAME_DIR .. "src/emu/bus/msx_cart/hfox.c",
trunk/src/emu/bus/msx_cart/cartridge.c
r248587r248588
1010#include "disk.h"
1111#include "dooly.h"
1212#include "fmpac.h"
13#include "fs_sr022.h"
1314#include "halnote.h"
1415#include "hfox.h"
1516#include "holy_quran.h"
r248587r248588
3940   SLOT_INTERFACE_INTERNAL("rtype", MSX_CART_RTYPE)
4041   SLOT_INTERFACE_INTERNAL("majutsushi", MSX_CART_MAJUTSUSHI)
4142   SLOT_INTERFACE_INTERNAL("fmpac", MSX_CART_FMPAC)
43   SLOT_INTERFACE_INTERNAL("fs_sr022", MSX_CART_FS_SR022)
4244   SLOT_INTERFACE_INTERNAL("superloderunner", MSX_CART_SUPERLODERUNNER)
4345   SLOT_INTERFACE_INTERNAL("synthesizer", MSX_CART_SYNTHESIZER)
4446   SLOT_INTERFACE_INTERNAL("cross_blaim", MSX_CART_CROSSBLAIM)
trunk/src/emu/bus/msx_cart/fs_sr022.c
r0r248588
1// license:BSD-3-Clause
2// copyright-holders:Wilbert Pol
3#include "emu.h"
4#include "fs_sr022.h"
5
6
7const device_type MSX_CART_FS_SR022 = &device_creator<msx_cart_fs_sr022>;
8
9
10msx_cart_fs_sr022::msx_cart_fs_sr022(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock)
11   : device_t(mconfig, MSX_CART_FS_SR022, "MSX Cartridge - FS-SR022", tag, owner, clock, "msx_cart_fs_sr022", __FILE__)
12   , msx_cart_interface(mconfig, *this)
13   , m_bunsetsu_rom(NULL)
14   , m_bunsetsu_address(0)
15{
16}
17
18
19void msx_cart_fs_sr022::device_start()
20{
21   save_item(NAME(m_bunsetsu_address));
22}
23
24
25void msx_cart_fs_sr022::device_reset()
26{
27   m_bunsetsu_address = 0;
28}
29
30
31void msx_cart_fs_sr022::initialize_cartridge()
32{
33   if (get_rom_size() != 0x40000)
34   {
35      fatalerror("fs_sr022: Invalid ROM size\n");
36   }
37   m_bunsetsu_rom = get_rom_base() + 0x20000;
38}
39
40
41READ8_MEMBER(msx_cart_fs_sr022::read_cart)
42{
43   if (offset >= 0x4000 && offset < 0xc000)
44   {
45      if (offset == 0xbfff) {
46         return m_bunsetsu_rom[m_bunsetsu_address++ & 0x1ffff];
47      }
48
49      return get_rom_base()[offset - 0x4000];
50   }
51   return 0xff;
52}
53
54
55WRITE8_MEMBER(msx_cart_fs_sr022::write_cart)
56{
57   switch (offset)
58   {
59      case 0xbffc:
60         m_bunsetsu_address = (m_bunsetsu_address & 0xffff00) | data;
61         break;
62
63      case 0xbffd:
64         m_bunsetsu_address = (m_bunsetsu_address & 0xff00ff) | (data << 8);
65         break;
66
67      case 0xbffe:
68         m_bunsetsu_address = (m_bunsetsu_address & 0x00ffff) | (data << 16);
69         break;
70   }
71}
72
trunk/src/emu/bus/msx_cart/fs_sr022.h
r0r248588
1// license:BSD-3-Clause
2// copyright-holders:Wilbert Pol
3#ifndef __MSX_CART_FS_SR022_H
4#define __MSX_CART_FS_SR022_H
5
6#include "bus/msx_cart/cartridge.h"
7
8
9extern const device_type MSX_CART_FS_SR022;
10
11
12class msx_cart_fs_sr022 : public device_t
13                  , public msx_cart_interface
14{
15public:
16   msx_cart_fs_sr022(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
17
18   // device-level overrides
19   virtual void device_start();
20   virtual void device_reset();
21
22   virtual void initialize_cartridge();
23
24   virtual DECLARE_READ8_MEMBER(read_cart);
25   virtual DECLARE_WRITE8_MEMBER(write_cart);
26
27private:
28   const UINT8 *m_bunsetsu_rom;
29   UINT32 m_bunsetsu_address;
30};
31
32
33#endif


Previous 199869 Revisions Next


© 1997-2024 The MAME Team