hash/c128_cart.xml
| r14528 | r14529 | |
| 6 | 6 | <description>C128 Diagnostic v1.1</description> |
| 7 | 7 | <year>1987</year> |
| 8 | 8 | <publisher>Commodore</publisher> |
| 9 | | <part name="cart" interface="c128_cart"> |
| 9 | <part name="cart" interface="c64_cart"> |
| 10 | 10 | <feature name="game" value="1" /> |
| 11 | 11 | <feature name="exrom" value="1" /> |
| 12 | | |
| 13 | 12 | <dataarea name="roml" size="0x2000"> |
| 14 | 13 | <rom name="c128diag.bin" size="0x2000" crc="584f6750" sha1="b3cfd8508b887e9c7e72ed2b0c44fe63e6b44ac4" offset="0x0000" /> |
| 15 | 14 | </dataarea> |
| 16 | 15 | </part> |
| 17 | 16 | </software> |
| 18 | 17 | |
| 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"> |
| 58 | 19 | <description>MACH 128 v.1A</description> |
| 59 | 20 | <year>1985</year> |
| 60 | 21 | <publisher>Access Software</publisher> |
| 61 | | <part name="cart" interface="c128_cart"> |
| 22 | <part name="cart" interface="c64_cart"> |
| 23 | <feature name="slot" value="mach5" /> |
| 62 | 24 | <feature name="cart_type" value="mach128" /> |
| 63 | 25 | <feature name="game" value="1" /> |
| 64 | 26 | <feature name="exrom" value="1" /> |
| 65 | | |
| 66 | 27 | <dataarea name="roml" size="0x2000"> |
| 67 | 28 | <rom name="mach_128_v1a.bin" size="0x2000" crc="f91ed380" sha1="6f04d73fcde8b28903075e3adcd2d7ff49d2518a" offset="0x0000" /> |
| 68 | 29 | </dataarea> |
| r14528 | r14529 | |
| 74 | 35 | </part> |
| 75 | 36 | </software> |
| 76 | 37 | |
| 77 | | <software name="mach128_2a" cloneof="mach128" supported="no"> |
| 38 | <software name="mach128_2a" cloneof="mach128"> |
| 78 | 39 | <description>MACH 128 v.2A</description> |
| 79 | 40 | <year>1985</year> |
| 80 | 41 | <publisher>Access Software</publisher> |
| 81 | | <part name="cart" interface="c128_cart"> |
| 42 | <part name="cart" interface="c64_cart"> |
| 43 | <feature name="slot" value="mach5" /> |
| 82 | 44 | <feature name="cart_type" value="mach128" /> |
| 83 | 45 | <feature name="game" value="1" /> |
| 84 | 46 | <feature name="exrom" value="1" /> |
| 85 | | |
| 86 | 47 | <dataarea name="roml" size="0x2000"> |
| 87 | 48 | <rom name="mach_128_v2a.bin" size="0x2000" crc="fc60d92e" sha1="7f487134d314b4c5158954ad057e01c0da32a468" offset="0x0000" /> |
| 88 | 49 | </dataarea> |
hash/c64_cart.xml
| r14528 | r14529 | |
| 870 | 870 | </part> |
| 871 | 871 | </software> |
| 872 | 872 | |
| 873 | | <software name="mach5" supported="no"> |
| 873 | <software name="mach5"> |
| 874 | 874 | <description>MACH 5 v.1A</description> |
| 875 | 875 | <year>1985</year> |
| 876 | 876 | <publisher>Access Software</publisher> |
| r14528 | r14529 | |
| 879 | 879 | <feature name="game" value="1" /> |
| 880 | 880 | <feature name="exrom" value="0" /> |
| 881 | 881 | |
| 882 | | <dataarea name="rom" size="0x2000"> |
| 882 | <dataarea name="roml" size="0x2000"> |
| 883 | 883 | <rom name="mach_5_v1a.bin" size="0x2000" crc="46c0a547" sha1="fb30893f80abb0e7463adbda979e0ebe386022e8" offset="0x0000" /> |
| 884 | 884 | </dataarea> |
| 885 | 885 | </part> |
| 886 | 886 | </software> |
| 887 | 887 | |
| 888 | | <software name="mach5_v1b1" cloneof="mach5" supported="no"> |
| 888 | <software name="mach5_v1b1" cloneof="mach5"> |
| 889 | 889 | <description>MACH 5 v.1B</description> |
| 890 | 890 | <year>1985</year> |
| 891 | 891 | <publisher>Access Software</publisher> |
| r14528 | r14529 | |
| 894 | 894 | <feature name="game" value="1" /> |
| 895 | 895 | <feature name="exrom" value="0" /> |
| 896 | 896 | |
| 897 | | <dataarea name="rom" size="0x2000"> |
| 897 | <dataarea name="roml" size="0x2000"> |
| 898 | 898 | <rom name="mach_5_v1b_v1.bin" size="0x1000" crc="f1444e48" sha1="4236ad371a5df7046e770b858291b42fe14b8a18" offset="0x0000" /> |
| 899 | 899 | </dataarea> |
| 900 | 900 | </part> |
| 901 | 901 | </software> |
| 902 | 902 | |
| 903 | | <software name="mach5_v1b2" cloneof="mach5" supported="no"> |
| 903 | <software name="mach5_v1b2" cloneof="mach5"> |
| 904 | 904 | <description>MACH 5 v.1B (Alt)</description> |
| 905 | 905 | <year>1985</year> |
| 906 | 906 | <publisher>Access Software</publisher> |
| r14528 | r14529 | |
| 909 | 909 | <feature name="game" value="1" /> |
| 910 | 910 | <feature name="exrom" value="0" /> |
| 911 | 911 | |
| 912 | | <dataarea name="rom" size="0x2000"> |
| 912 | <dataarea name="roml" size="0x2000"> |
| 913 | 913 | <rom name="mach_5_v1b_v2.bin" size="0x2000" crc="c320e154" sha1="59de7347b61d39cfd0b89306e9e898b1452d3a20" offset="0x0000" /> |
| 914 | 914 | </dataarea> |
| 915 | 915 | </part> |
| 916 | 916 | </software> |
| 917 | 917 | |
| 918 | | <software name="mach5_v2a" cloneof="mach5" supported="no"> |
| 918 | <software name="mach5_v2a" cloneof="mach5"> |
| 919 | 919 | <description>MACH 5 v.2A</description> |
| 920 | 920 | <year>1985</year> |
| 921 | 921 | <publisher>Access Software</publisher> |
| r14528 | r14529 | |
| 924 | 924 | <feature name="game" value="1" /> |
| 925 | 925 | <feature name="exrom" value="0" /> |
| 926 | 926 | |
| 927 | | <dataarea name="rom" size="0x2000"> |
| 927 | <dataarea name="roml" size="0x2000"> |
| 928 | 928 | <rom name="mach_5_v2a.bin" size="0x2000" crc="8d5b2d06" sha1="2b53dd5d6cf46fd7c90f4e2c4300d5d5bb970014" offset="0x0000" /> |
| 929 | 929 | </dataarea> |
| 930 | 930 | </part> |
| 931 | 931 | </software> |
| 932 | 932 | |
| 933 | | <software name="mach5_v3" cloneof="mach5" supported="no"> |
| 933 | <software name="mach5_v3" cloneof="mach5"> |
| 934 | 934 | <description>MACH 5 v3.A</description> |
| 935 | 935 | <year>1985</year> |
| 936 | 936 | <publisher>Access Software</publisher> |
| r14528 | r14529 | |
| 939 | 939 | <feature name="game" value="1" /> |
| 940 | 940 | <feature name="exrom" value="0" /> |
| 941 | 941 | |
| 942 | | <dataarea name="rom" size="0x2000"> |
| 942 | <dataarea name="roml" size="0x2000"> |
| 943 | 943 | <rom name="mach_5_v3a.bin" size="0x2000" crc="c2449aea" sha1="99b702275373480269cde747e774d54ca5d2e1dd" offset="0x0000" /> |
| 944 | 944 | </dataarea> |
| 945 | 945 | </part> |
| 946 | 946 | </software> |
| 947 | 947 | |
| 948 | | <software name="stardos" supported="no"> |
| 948 | <software name="stardos"> |
| 949 | 949 | <description>Stardos</description> |
| 950 | 950 | <year>1986</year> |
| 951 | 951 | <publisher>Starpoint Software</publisher> |
src/mess/machine/c64_mach5.c
| r0 | r14529 | |
| 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 | |
| 18 | const 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 | |
| 30 | c64_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 | |
| 41 | void c64_mach5_cartridge_device::device_start()
|
| 42 | {
|
| 43 | }
|
| 44 | |
| 45 | |
| 46 | //-------------------------------------------------
|
| 47 | // device_reset - device-specific reset
|
| 48 | //-------------------------------------------------
|
| 49 | |
| 50 | void c64_mach5_cartridge_device::device_reset()
|
| 51 | {
|
| 52 | m_exrom = 0;
|
| 53 | }
|
| 54 | |
| 55 | |
| 56 | //-------------------------------------------------
|
| 57 | // c64_cd_r - cartridge data read
|
| 58 | //-------------------------------------------------
|
| 59 | |
| 60 | UINT8 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 | |
| 77 | void 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
| r0 | r14529 | |
| 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 | |
| 28 | class c64_mach5_cartridge_device : public device_t,
|
| 29 | public device_c64_expansion_card_interface
|
| 30 | {
|
| 31 | public:
|
| 32 | // construction/destruction
|
| 33 | c64_mach5_cartridge_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
|
| 34 | |
| 35 | protected:
|
| 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
|
| 47 | extern const device_type C64_MACH5;
|
| 48 | |
| 49 | |
| 50 | #endif
|