Previous 15994 Revisions Next

r14520 Sunday 19th February, 2012 at 11:58:24 UTC by Curt Coder
[C64] Added support for the ExOS cartridge. [Curt Coder]
[hash]c64_cart.xml
[src/mess]mess.mak
[src/mess/machine]c64_exos.c* c64_exos.h* cbmipt.c cbmipt.h

hash/c64_cart.xml
r14519r14520
14391439         </dataarea>
14401440      </part>
14411441   </software>   
1442
1442   
1443   <software name="exos">
1444      <description>ExOS v.3</description>
1445      <year>198?</year>
1446      <publisher>Rex Datentechnik</publisher>
1447      <info name="serial" value="REX-9805" />
1448      <part name="cart" interface="c64_cart">
1449         <feature name="slot" value="exos" />
1450         <feature name="exrom" value="1" />
1451         <feature name="game" value="1" />
1452         <dataarea name="romh" size="0x2000">
1453            <rom name="exos_v3.bin" size="0x2000" crc="4e54d020" sha1="f8931b7c0b26807f4de0cc241f0b1e2c8f5271e9" offset="0x0000" />
1454         </dataarea>
1455      </part>
1456   </software>   
1457   
1458   <software name="exosv4" cloneof="exos">
1459      <description>ExOS v.4</description>
1460      <year>198?</year>
1461      <publisher>Rex Datentechnik</publisher>
1462      <part name="cart" interface="c64_cart">
1463         <feature name="slot" value="exos" />
1464         <feature name="exrom" value="1" />
1465         <feature name="game" value="1" />
1466         <dataarea name="romh" size="0x2000">
1467            <rom name="exos_v4.bin" size="0x2000" crc="d5cf83a9" sha1="d5f03a5c0e9d00032d4751ecc6bcd6385879c9c7" offset="0x0000" />
1468         </dataarea>
1469      </part>
1470   </software>
1471   
14431472   <!-- Games Added by k1w1 -->
14441473
14451474   <software name="advcrtor">
src/mess/machine/cbmipt.c
r14519r14520
11561156   SLOT_INTERFACE("dinamic", C64_DINAMIC)
11571157   SLOT_INTERFACE("easycalcres", C64_EASY_CALC_RESULT)
11581158   SLOT_INTERFACE("epyxfastload", C64_EPYX_FAST_LOAD)
1159   SLOT_INTERFACE("exos", C64_EXOS)
11591160   SLOT_INTERFACE("fun_play", C64_FUN_PLAY)
11601161   SLOT_INTERFACE("magic_desk", C64_MAGIC_DESK)
11611162   SLOT_INTERFACE("magic_formel", C64_MAGIC_FORMEL)
src/mess/machine/cbmipt.h
r14519r14520
1111#include "machine/c64_easy_calc_result.h"
1212#include "machine/c64_easyflash.h"
1313#include "machine/c64_epyx_fast_load.h"
14#include "machine/c64_exos.h"
1415#include "machine/c64_fun_play.h"
1516#include "machine/c64_georam.h"
1617#include "machine/c64_ieee488.h"
src/mess/machine/c64_exos.c
r0r14520
1/**********************************************************************
2 
3    Rex ExOS cartridge emulation
4 
5    Copyright MESS Team.
6    Visit http://mamedev.org for licensing and usage restrictions.
7 
8**********************************************************************/
9 
10#include "c64_exos.h"
11 
12 
13 
14//**************************************************************************
15//  DEVICE DEFINITIONS
16//**************************************************************************
17 
18const device_type C64_EXOS = &device_creator<c64_exos_cartridge_device>;
19 
20 
21 
22//**************************************************************************
23//  LIVE DEVICE
24//**************************************************************************
25 
26//-------------------------------------------------
27//  c64_exos_cartridge_device - constructor
28//-------------------------------------------------
29 
30c64_exos_cartridge_device::c64_exos_cartridge_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock) :
31   device_t(mconfig, C64_EXOS, "C64 ExOS 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_exos_cartridge_device::device_start()
42{
43}
44 
45 
46//-------------------------------------------------
47//  c64_cd_r - cartridge data read
48//-------------------------------------------------
49 
50UINT8 c64_exos_cartridge_device::c64_cd_r(address_space &space, offs_t offset, int roml, int romh, int io1, int io2)
51{
52   UINT8 data = 0;
53   
54   if (!romh)
55   {
56      data = m_romh[offset & 0x1fff];
57   }
58 
59   return data;
60}
61 
62 
63//-------------------------------------------------
64//  c64_game_r - GAME read
65//-------------------------------------------------
66 
67int c64_exos_cartridge_device::c64_game_r(offs_t offset, int ba, int rw, int hiram)
68{
69   return !(ba & rw & ((offset & 0xe000) == 0xe000) & hiram);
70}
src/mess/machine/c64_exos.h
r0r14520
1/**********************************************************************
2 
3    Rex ExOS 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 __EXOS__
13#define __EXOS__
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_exos_cartridge_device
27 
28class c64_exos_cartridge_device : public device_t,
29                          public device_c64_expansion_card_interface
30{
31public:
32   // construction/destruction
33   c64_exos_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 
39   // device_c64_expansion_card_interface overrides
40   virtual UINT8 c64_cd_r(address_space &space, offs_t offset, int roml, int romh, int io1, int io2);
41   virtual int c64_game_r(offs_t offset, int ba, int rw, int hiram);
42};
43 
44 
45// device type definition
46extern const device_type C64_EXOS;
47 
48 
49#endif
src/mess/mess.mak
r14519r14520
761761   $(MESS_MACHINE)/c64_easy_calc_result.o   \
762762   $(MESS_MACHINE)/c64_easyflash.o   \
763763   $(MESS_MACHINE)/c64_epyx_fast_load.o   \
764   $(MESS_MACHINE)/c64_exos.o   \
764765   $(MESS_MACHINE)/c64_fun_play.o   \
765766   $(MESS_MACHINE)/c64_georam.o   \
766767   $(MESS_MACHINE)/c64_ieee488.o   \

Previous 15994 Revisions Next


© 1998-2018 The MESS Team