Previous 15994 Revisions Next

r14529 Sunday 19th February, 2012 at 14:41:01 UTC by Curt Coder
[C64] Added support for the MACH5 cartridge. [Curt Coder]
[hash]c128_cart.xml c64_cart.xml
[src/mess]mess.mak
[src/mess/machine]c64_mach5.c* c64_mach5.h* c64exp.c cbmipt.c cbmipt.h

hash/c128_cart.xml
r14528r14529
66      <description>C128 Diagnostic v1.1</description>
77      <year>1987</year>
88      <publisher>Commodore</publisher>
9      <part name="cart" interface="c128_cart">
9      <part name="cart" interface="c64_cart">
1010         <feature name="game" value="1" />
1111         <feature name="exrom" value="1" />
12
1312         <dataarea name="roml" size="0x2000">
1413            <rom name="c128diag.bin" size="0x2000" crc="584f6750" sha1="b3cfd8508b887e9c7e72ed2b0c44fe63e6b44ac4" offset="0x0000" />
1514         </dataarea>
1615      </part>
1716   </software>
1817
19   <software name="warpspd" supported="no">
20      <description>C128 Warp Speed v1</description>
21      <year>1987</year>
22      <publisher>Cinemaware</publisher>
23      <part name="cart" interface="c128_cart">
24         <feature name="cart_type" value="warp_speed" />
25         <feature name="game" value="1" />
26         <feature name="exrom" value="1" />
27
28         <dataarea name="roml" size="0x4000">
29            <!--
30            data = BITSWAP8(7,6,5,2,0,1,3,4)
31            address = BITSWAP14(12,13,5,2,7,9,11,10,8,6,4,3,1,0)
32            -->
33            <rom name="c128warpspeedv1-1987.bin" size="0x4000" crc="986f61b8" sha1="31d7b7f864904deb947db3658d7da691b4db4fc2" offset="0x0000" />
34         </dataarea>
35      </part>
36   </software>
37
38   <software name="warpspd2" cloneof="warpspd" supported="no">
39      <description>C128 Warp Speed v2</description>
40      <year>1987</year>
41      <publisher>Cinemaware</publisher>
42      <part name="cart" interface="c128_cart">
43         <feature name="cart_type" value="warp_speed" />
44         <feature name="game" value="1" />
45         <feature name="exrom" value="1" />
46
47         <dataarea name="roml" size="0x4000">
48            <!--
49            data = BITSWAP8(7,6,5,2,0,1,3,4)
50            address = BITSWAP14(12,13,5,2,7,9,11,10,8,6,4,3,1,0)
51            -->
52            <rom name="c128warpspeedv2-1987.bin" size="0x4000" crc="c5dd7720" sha1="062ea091bf085b09ce8ea85a9a498734b9138906" offset="0x0000" />
53         </dataarea>
54      </part>
55   </software>
56
57   <software name="mach128" supported="no">
18   <software name="mach128">
5819      <description>MACH 128 v.1A</description>
5920      <year>1985</year>
6021      <publisher>Access Software</publisher>
61      <part name="cart" interface="c128_cart">
22      <part name="cart" interface="c64_cart">
23         <feature name="slot" value="mach5" />
6224         <feature name="cart_type" value="mach128" />
6325         <feature name="game" value="1" />
6426         <feature name="exrom" value="1" />
65
6627         <dataarea name="roml" size="0x2000">
6728            <rom name="mach_128_v1a.bin" size="0x2000" crc="f91ed380" sha1="6f04d73fcde8b28903075e3adcd2d7ff49d2518a" offset="0x0000" />
6829         </dataarea>
r14528r14529
7435      </part>
7536   </software>
7637
77   <software name="mach128_2a" cloneof="mach128" supported="no">
38   <software name="mach128_2a" cloneof="mach128">
7839      <description>MACH 128 v.2A</description>
7940      <year>1985</year>
8041      <publisher>Access Software</publisher>
81      <part name="cart" interface="c128_cart">
42      <part name="cart" interface="c64_cart">
43         <feature name="slot" value="mach5" />
8244         <feature name="cart_type" value="mach128" />
8345         <feature name="game" value="1" />
8446         <feature name="exrom" value="1" />
85
8647         <dataarea name="roml" size="0x2000">
8748            <rom name="mach_128_v2a.bin" size="0x2000" crc="fc60d92e" sha1="7f487134d314b4c5158954ad057e01c0da32a468" offset="0x0000" />
8849         </dataarea>
hash/c64_cart.xml
r14528r14529
870870      </part>
871871   </software>
872872
873   <software name="mach5" supported="no">
873   <software name="mach5">
874874      <description>MACH 5 v.1A</description>
875875      <year>1985</year>
876876      <publisher>Access Software</publisher>
r14528r14529
879879         <feature name="game" value="1" />
880880         <feature name="exrom" value="0" />
881881
882         <dataarea name="rom" size="0x2000">
882         <dataarea name="roml" size="0x2000">
883883            <rom name="mach_5_v1a.bin" size="0x2000" crc="46c0a547" sha1="fb30893f80abb0e7463adbda979e0ebe386022e8" offset="0x0000" />
884884         </dataarea>
885885      </part>
886886   </software>
887887
888   <software name="mach5_v1b1" cloneof="mach5" supported="no">
888   <software name="mach5_v1b1" cloneof="mach5">
889889      <description>MACH 5 v.1B</description>
890890      <year>1985</year>
891891      <publisher>Access Software</publisher>
r14528r14529
894894         <feature name="game" value="1" />
895895         <feature name="exrom" value="0" />
896896
897         <dataarea name="rom" size="0x2000">
897         <dataarea name="roml" size="0x2000">
898898            <rom name="mach_5_v1b_v1.bin" size="0x1000" crc="f1444e48" sha1="4236ad371a5df7046e770b858291b42fe14b8a18" offset="0x0000" />
899899         </dataarea>
900900      </part>
901901   </software>
902902
903   <software name="mach5_v1b2" cloneof="mach5" supported="no">
903   <software name="mach5_v1b2" cloneof="mach5">
904904      <description>MACH 5 v.1B (Alt)</description>
905905      <year>1985</year>
906906      <publisher>Access Software</publisher>
r14528r14529
909909         <feature name="game" value="1" />
910910         <feature name="exrom" value="0" />
911911
912         <dataarea name="rom" size="0x2000">
912         <dataarea name="roml" size="0x2000">
913913            <rom name="mach_5_v1b_v2.bin" size="0x2000" crc="c320e154" sha1="59de7347b61d39cfd0b89306e9e898b1452d3a20" offset="0x0000" />
914914         </dataarea>
915915      </part>
916916   </software>
917917
918   <software name="mach5_v2a" cloneof="mach5" supported="no">
918   <software name="mach5_v2a" cloneof="mach5">
919919      <description>MACH 5 v.2A</description>
920920      <year>1985</year>
921921      <publisher>Access Software</publisher>
r14528r14529
924924         <feature name="game" value="1" />
925925         <feature name="exrom" value="0" />
926926
927         <dataarea name="rom" size="0x2000">
927         <dataarea name="roml" size="0x2000">
928928            <rom name="mach_5_v2a.bin" size="0x2000" crc="8d5b2d06" sha1="2b53dd5d6cf46fd7c90f4e2c4300d5d5bb970014" offset="0x0000" />
929929         </dataarea>
930930      </part>
931931   </software>
932932
933   <software name="mach5_v3" cloneof="mach5" supported="no">
933   <software name="mach5_v3" cloneof="mach5">
934934      <description>MACH 5 v3.A</description>
935935      <year>1985</year>
936936      <publisher>Access Software</publisher>
r14528r14529
939939         <feature name="game" value="1" />
940940         <feature name="exrom" value="0" />
941941
942         <dataarea name="rom" size="0x2000">
942         <dataarea name="roml" size="0x2000">
943943            <rom name="mach_5_v3a.bin" size="0x2000" crc="c2449aea" sha1="99b702275373480269cde747e774d54ca5d2e1dd" offset="0x0000" />
944944         </dataarea>
945945      </part>
946946   </software>
947947
948   <software name="stardos" supported="no">
948   <software name="stardos">
949949      <description>Stardos</description>
950950      <year>1986</year>
951951      <publisher>Starpoint Software</publisher>
src/mess/machine/cbmipt.c
r14528r14529
11581158   SLOT_INTERFACE("epyxfastload", C64_EPYX_FAST_LOAD)
11591159   SLOT_INTERFACE("exos", C64_EXOS)
11601160   SLOT_INTERFACE("fun_play", C64_FUN_PLAY)
1161   SLOT_INTERFACE("mach5", C64_MACH5)
11611162   SLOT_INTERFACE("magic_desk", C64_MAGIC_DESK)
11621163   SLOT_INTERFACE("magic_formel", C64_MAGIC_FORMEL)
11631164   SLOT_INTERFACE("mikroasm", C64_MIKRO_ASSEMBLER)
src/mess/machine/cbmipt.h
r14528r14529
1515#include "machine/c64_fun_play.h"
1616#include "machine/c64_georam.h"
1717#include "machine/c64_ieee488.h"
18#include "machine/c64_mach5.h"
1819#include "machine/c64_magic_desk.h"
1920#include "machine/c64_magic_formel.h"
2021#include "machine/c64_mikro_assembler.h"
src/mess/machine/c64_mach5.c
r0r14529
1/**********************************************************************
2 
3    Access Software MACH 5 cartridge emulation
4 
5    Copyright MESS Team.
6    Visit http://mamedev.org for licensing and usage restrictions.
7 
8**********************************************************************/
9 
10#include "c64_mach5.h"
11   
12   
13 
14//**************************************************************************
15//  DEVICE DEFINITIONS
16//**************************************************************************
17 
18const device_type C64_MACH5 = &device_creator<c64_mach5_cartridge_device>;
19 
20 
21 
22//**************************************************************************
23//  LIVE DEVICE
24//**************************************************************************
25 
26//-------------------------------------------------
27//  c64_mach5_cartridge_device - constructor
28//-------------------------------------------------
29 
30c64_mach5_cartridge_device::c64_mach5_cartridge_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock) :
31   device_t(mconfig, C64_MACH5, "C64 MACH5 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_mach5_cartridge_device::device_start()
42{
43}
44 
45 
46//-------------------------------------------------
47//  device_reset - device-specific reset
48//-------------------------------------------------
49 
50void c64_mach5_cartridge_device::device_reset()
51{
52   m_exrom = 0;
53}
54 
55 
56//-------------------------------------------------
57//  c64_cd_r - cartridge data read
58//-------------------------------------------------
59 
60UINT8 c64_mach5_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 || !io1 || !io2)
65   {
66      data = m_roml[offset & 0x1fff];
67   }
68 
69   return data;
70}
71 
72 
73//-------------------------------------------------
74//  c64_cd_w - cartridge data write
75//-------------------------------------------------
76 
77void c64_mach5_cartridge_device::c64_cd_w(address_space &space, offs_t offset, UINT8 data, int roml, int romh, int io1, int io2)
78{
79   if (!io1)
80   {
81      m_exrom = 0;
82   }
83   else if (!io2)
84   {
85      m_exrom = 1;
86   }
87}
src/mess/machine/c64_mach5.h
r0r14529
1/**********************************************************************
2 
3    Cinemaware Warp Speed 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 __MACH5__
13#define __MACH5__
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_mach5_cartridge_device
27 
28class c64_mach5_cartridge_device : public device_t,
29                              public device_c64_expansion_card_interface
30{
31public:
32   // construction/destruction
33   c64_mach5_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 
40   // device_c64_expansion_card_interface overrides
41   virtual UINT8 c64_cd_r(address_space &space, offs_t offset, int roml, int romh, int io1, int io2);
42   virtual void c64_cd_w(address_space &space, offs_t offset, UINT8 data, int roml, int romh, int io1, int io2);
43};
44 
45 
46// device type definition
47extern const device_type C64_MACH5;
48 
49 
50#endif
src/mess/machine/c64exp.c
r14528r14529
7676   "super_explode",
7777   UNSUPPORTED,
7878   UNSUPPORTED,
79   UNSUPPORTED
79   "mach5"
8080};
8181
8282
src/mess/mess.mak
r14528r14529
765765   $(MESS_MACHINE)/c64_fun_play.o   \
766766   $(MESS_MACHINE)/c64_georam.o   \
767767   $(MESS_MACHINE)/c64_ieee488.o   \
768   $(MESS_MACHINE)/c64_mach5.o   \
768769   $(MESS_MACHINE)/c64_magic_desk.o   \
769770   $(MESS_MACHINE)/c64_magic_formel.o   \
770771   $(MESS_MACHINE)/c64_mikro_assembler.o   \

Previous 15994 Revisions Next


© 1998-2018 The MESS Team