Previous 15994 Revisions Next

r14764 Sunday 18th March, 2012 at 09:39:03 UTC by Curt Coder
[C64] Added support for Kingsoft cartridges. [Curt Coder]
[hash]c64_cart.xml vic1001_cart.xml
[src/mess]mess.mak
[src/mess/machine]c64_kingsoft.c* c64_kingsoft.h* cbmipt.c cbmipt.h

hash/vic1001_cart.xml
r14763r14764
576576      <year>1981</year>
577577      <publisher>Commodore</publisher>
578578      <info name="serial" value="VIC-1907" />
579      <info name="assy" value="326173-01" />
579580      <sharedfeat name="compatibility" value="NTSC"/>
580581      <part name="cart" interface="vic1001_cart">
581582         <dataarea name="blk5" size="0x2000">
582            <rom name="jupiter lander (commodore)(1982)(vic-1907).a0" size="0x2000" crc="18e177f1" sha1="5b39a7ba5f3b401ca400411ce4229c7bd30c1d45" offset="0x0000" />
583            <rom name="325351-02.u1" size="0x2000" crc="18e177f1" sha1="5b39a7ba5f3b401ca400411ce4229c7bd30c1d45" offset="0x0000" />
583584         </dataarea>
584585      </part>
585586   </software>
hash/c64_cart.xml
r14763r14764
667667      </part>
668668   </software>
669669
670   <software name="capture2" supported="no">
670   <software name="capture" supported="no">
671      <description>Capture</description>
672      <year>1985</year>
673      <publisher>J. Ranheim</publisher>
674      <part name="cart" interface="c64_cart">
675         <feature name="slot" value="capture2" />
676         <feature name="game" value="1" />
677         <feature name="exrom" value="0" />
678
679         <dataarea name="romh" size="0x2000">
680            <rom name="capture (c)1985 j.ranheim" size="0x2000" crc="5063a31e" sha1="f7049545c657f7b8b302b84d71d2e8a0d6c37c53" offset="0x0000" />
681         </dataarea>
682      </part>
683   </software>
684
685   <software name="capture2" cloneof="capture" supported="no">
671686      <description>Capture 2</description>
672687      <year>1987</year>
673688      <publisher>J. Ranheim</publisher>
r14763r14764
676691         <feature name="game" value="1" />
677692         <feature name="exrom" value="0" />
678693
679         <dataarea name="roml" size="0x2000">
694         <dataarea name="romh" size="0x2000">
680695            <rom name="capture 2 (usa, europe) (program).bin" size="0x2000" crc="f25640c4" sha1="ebfa440401aebf3d09a43995dd87999d2982cb6a" offset="0x0000" />
681696         </dataarea>
682697      </part>
r14763r14764
14581473      </part>
14591474   </software>
14601475
1461   <software name="busbasic" supported="no">
1462      <description>Business BASIC</description>
1463      <year>1986</year>
1476   <software name="busbasic">
1477      <description>Business Basic</description>
1478      <year>1985</year>
14641479      <publisher>Kingsoft</publisher>
1465     
1480
14661481      <part name="cart" interface="c64_cart">
14671482         <feature name="slot" value="kingsoft" />
14681483         <feature name="game" value="0" />
r14763r14764
14721487            <rom name="1" size="0x2000" crc="a8bdbbcf" sha1="4758c7cd4b094b7894ddc5cfa8b5a925c6b01979" offset="0" />
14731488         </dataarea>
14741489   
1475         <dataarea name="romh" size="0x2000">
1476            <rom name="2" size="0x2000" crc="ab55db10" sha1="c6f53801645e07d0413dc91bae71a79a636762c4" offset="0" />
1477            <rom name="3" size="0x2000" crc="407a8273" sha1="971ca48cd6e80cc77f166709207e68b0b5d0d8c1" offset="0" />
1490         <dataarea name="romh" size="0x4000">
1491            <rom name="2" size="0x2000" crc="ab55db10" sha1="c6f53801645e07d0413dc91bae71a79a636762c4" offset="0x0000" />
1492            <rom name="3" size="0x2000" crc="407a8273" sha1="971ca48cd6e80cc77f166709207e68b0b5d0d8c1" offset="0x2000" />
14781493         </dataarea>
14791494      </part>
14801495   </software>
14811496
1497   <software name="smore" cloneof="busbasic">
1498      <description>S'more Basic</description>
1499      <year>1985</year>
1500      <publisher>Cardco</publisher>
1501     
1502      <part name="cart" interface="c64_cart">
1503         <feature name="slot" value="kingsoft" />
1504         <feature name="game" value="0" />
1505         <feature name="exrom" value="0" />
1506   
1507         <dataarea name="roml" size="0x2000">
1508            <rom name="1121" size="0x2000" crc="a8bdbbcf" sha1="4758c7cd4b094b7894ddc5cfa8b5a925c6b01979" offset="0" />
1509         </dataarea>
1510   
1511         <dataarea name="romh" size="0x4000">
1512            <rom name="2122" size="0x2000" crc="635407a5" sha1="b174c20153032307560707e4f73997fb3633deae" offset="0x0000" />
1513            <rom name="3121" size="0x2000" crc="8de1d013" sha1="8052819719b0234b999ac8af18116bdbb0463013" offset="0x2000" />
1514         </dataarea>
1515      </part>
1516
1517      <part name="flop" interface="floppy_5_25">
1518         <dataarea name="flop" size="174848">
1519            <rom name="s'more.d64" size="174848" crc="268eb91b" sha1="c8672643441a6714093382fd018fc3ead722bc5a" offset="0" />
1520         </dataarea>
1521      </part>
1522   </software>
1523
14821524   <software name="samson" supported="no">
14831525      <description>Samson</description>
14841526      <year>198?</year>
r14763r14764
14961538      </part>
14971539   </software>
14981540
1541   <software name="smarterm">
1542      <description>SMART 64/C Intelligent Terminal v1.4</description>
1543      <year>1985</year>
1544      <publisher>Tom Wheeler</publisher>
1545      <sharedfeat name="compatibility" value="NTSC,PAL"/>
1546     
1547      <part name="cart" interface="c64_cart">
1548         <feature name="game" value="1" />
1549         <feature name="exrom" value="0" />
1550   
1551         <dataarea name="roml" size="0x2000">
1552            <rom name="smart 64 c intelligent terminal commodore 654 cartridge.bin" size="0x2000" crc="f030b179" sha1="5521fa90fee29397c705eb91760df082b99c1414" offset="0" />
1553         </dataarea>
1554      </part>
1555   </software>
1556
14991557   <software name="mikroasm">
15001558      <description>Mikro Assembler</description>
15011559      <year>198?</year>
r14763r14764
61166174      <year>1983</year>
61176175      <publisher>Commodore</publisher>
61186176      <info name="serial" value="C-64801" />
6177      <info name="assy" value="326073" />
61196178      <part name="cart" interface="c64_cart">
61206179         <feature name="slot" value="magic_desk" />
61216180         <feature name="exrom" value="0" />
61226181         <feature name="game" value="1" />
61236182         <dataarea name="roml" size="0x8000">
6124            <rom name="magic desk i (1983)(commodore).80" size="0x8000" crc="a34d0f87" sha1="e9dd758c03c288a1cbfa6cadbcc6f2943c27ff20" offset="0x0000" />
6183            <rom name="317004-01.u1" size="0x2000" crc="3b47e9f0" sha1="19fde6707a4c60fdc3bb9df07e2f3ddf28a94900" offset="0x0000" />
6184            <rom name="317005-01.u2" size="0x2000" crc="9f3e210d" sha1="c78af8d162e19d09770d4df1c154c4e95418a7c0" offset="0x2000" />
6185            <rom name="317006-01.u3" size="0x2000" crc="ef1323fa" sha1="a7238a85b9f65720164dcd9278b9550670e00394" offset="0x4000" />
6186            <rom name="317007-01.u4" size="0x2000" crc="e5c87f9d" sha1="2df19a613646de7cc5c5545a5004ae7568dd5b50" offset="0x6000" />
61256187         </dataarea>
61266188      </part>
61276189   </software>
src/mess/machine/c64_kingsoft.c
r0r14764
1/**********************************************************************
2 
3    Kingsoft cartridge emulation
4 
5    Copyright MESS Team.
6    Visit http://mamedev.org for licensing and usage restrictions.
7 
8**********************************************************************/
9 
10#include "c64_kingsoft.h"
11 
12 
13 
14//**************************************************************************
15//  DEVICE DEFINITIONS
16//**************************************************************************
17 
18const device_type C64_KINGSOFT = &device_creator<c64_kingsoft_cartridge_device>;
19 
20 
21 
22//**************************************************************************
23//  LIVE DEVICE
24//**************************************************************************
25 
26//-------------------------------------------------
27//  c64_kingsoft_cartridge_device - constructor
28//-------------------------------------------------
29 
30c64_kingsoft_cartridge_device::c64_kingsoft_cartridge_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock) :
31   device_t(mconfig, C64_KINGSOFT, "C64 Kingsoft cartridge", tag, owner, clock),
32   device_c64_expansion_card_interface(mconfig, *this)
33{
34}
35 
36 
37//-------------------------------------------------
38//  device_start - device-specific startup
39//-------------------------------------------------
40 
41void c64_kingsoft_cartridge_device::device_start()
42{
43}
44 
45 
46//-------------------------------------------------
47//  device_reset - device-specific reset
48//-------------------------------------------------
49 
50void c64_kingsoft_cartridge_device::device_reset()
51{
52   m_exrom = 0;
53}
54 
55 
56//-------------------------------------------------
57//  c64_cd_r - cartridge data read
58//-------------------------------------------------
59 
60UINT8 c64_kingsoft_cartridge_device::c64_cd_r(address_space &space, offs_t offset, int roml, int romh, int io1, int io2)
61{
62   UINT8 data = 0;
63 
64   if (!roml)
65   {
66      data = m_roml[offset & 0x1fff];
67   }
68   else if (!romh)
69   {
70      data = m_romh[(m_exrom << 13) | (offset & 0x1fff)];
71   }
72   else if (!io1)
73   {
74      m_exrom = 0;
75   }
76 
77   return data;
78}
79 
80 
81//-------------------------------------------------
82//  c64_cd_w - cartridge data write
83//-------------------------------------------------
84 
85void c64_kingsoft_cartridge_device::c64_cd_w(address_space &space, offs_t offset, UINT8 data, int roml, int romh, int io1, int io2)
86{
87   if (!io1)
88   {
89      m_exrom = 1;
90   }
91}
92 
93 
94//-------------------------------------------------
95//  c64_game_r - GAME read
96//-------------------------------------------------
97 
98int c64_kingsoft_cartridge_device::c64_game_r(offs_t offset, int ba, int rw, int hiram)
99{
100   return m_exrom & !(ba & rw & ((offset >= 0x8000 && offset < 0xc000) || (offset >= 0xe000)));
101}
src/mess/machine/c64_kingsoft.h
r0r14764
1/**********************************************************************
2 
3    Kingsoft cartridge emulation
4 
5    Copyright MESS Team.
6    Visit http://mamedev.org for licensing and usage restrictions.
7 
8**********************************************************************/
9 
10#pragma once
11 
12#ifndef __KINGSOFT__
13#define __KINGSOFT__
14 
15#define ADDRESS_MAP_MODERN
16 
17#include "emu.h"
18#include "machine/c64exp.h"
19 
20 
21 
22//**************************************************************************
23//  TYPE DEFINITIONS
24//**************************************************************************
25 
26// ======================> c64_kingsoft_cartridge_device
27 
28class c64_kingsoft_cartridge_device : public device_t,
29                            public device_c64_expansion_card_interface
30{
31public:
32   // construction/destruction
33   c64_kingsoft_cartridge_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
34 
35protected:
36   // device-level overrides
37   virtual void device_start();
38   virtual void device_reset();
39   virtual void device_config_complete() { m_shortname = "c64_kingsoft"; }
40 
41   // device_c64_expansion_card_interface overrides
42   virtual UINT8 c64_cd_r(address_space &space, offs_t offset, int roml, int romh, int io1, int io2);
43   virtual void c64_cd_w(address_space &space, offs_t offset, UINT8 data, int roml, int romh, int io1, int io2);
44   virtual int c64_game_r(offs_t offset, int ba, int rw, int hiram);
45};
46 
47 
48// device type definition
49extern const device_type C64_KINGSOFT;
50 
51 
52#endif
src/mess/machine/cbmipt.c
r14763r14764
11611161   SLOT_INTERFACE("exos", C64_EXOS)
11621162   SLOT_INTERFACE("final", C64_FINAL)
11631163   SLOT_INTERFACE("fun_play", C64_FUN_PLAY)
1164   SLOT_INTERFACE("kingsoft", C64_KINGSOFT)
11641165   SLOT_INTERFACE("mach5", C64_MACH5)
11651166   SLOT_INTERFACE("magic_desk", C64_MAGIC_DESK)
11661167   SLOT_INTERFACE("magic_formel", C64_MAGIC_FORMEL)
src/mess/machine/cbmipt.h
r14763r14764
1717#include "machine/c64_fun_play.h"
1818#include "machine/c64_georam.h"
1919#include "machine/c64_ieee488.h"
20#include "machine/c64_kingsoft.h"
2021#include "machine/c64_mach5.h"
2122#include "machine/c64_magic_desk.h"
2223#include "machine/c64_magic_formel.h"
src/mess/mess.mak
r14763r14764
785785   $(MESS_MACHINE)/c64_fun_play.o   \
786786   $(MESS_MACHINE)/c64_georam.o   \
787787   $(MESS_MACHINE)/c64_ieee488.o   \
788   $(MESS_MACHINE)/c64_kingsoft.o   \
788789   $(MESS_MACHINE)/c64_mach5.o   \
789790   $(MESS_MACHINE)/c64_magic_desk.o   \
790791   $(MESS_MACHINE)/c64_magic_formel.o   \

Previous 15994 Revisions Next


© 1998-2018 The MESS Team