(MESS) Added skeleton device for Mator SHARK (22 MB Winchester hard disk for the Commodore PET). [Curt Coder, Mike Naberezny]

This commit is contained in:
Curt Coder 2013-06-13 19:09:05 +00:00
parent 8054c2396f
commit 0a393d4f5c
6 changed files with 232 additions and 0 deletions

2
.gitattributes vendored
View File

@ -7750,6 +7750,8 @@ src/mess/machine/serialbox.c svneol=native#text/plain
src/mess/machine/serialbox.h svneol=native#text/plain
src/mess/machine/sgi.c svneol=native#text/plain
src/mess/machine/sgi.h svneol=native#text/plain
src/mess/machine/shark.c svneol=native#text/plain
src/mess/machine/shark.h svneol=native#text/plain
src/mess/machine/smartmed.c svneol=native#text/plain
src/mess/machine/smartmed.h svneol=native#text/plain
src/mess/machine/smc92x4.c svneol=native#text/plain

View File

@ -1092,6 +1092,7 @@ SLOT_INTERFACE_START( cbm_ieee488_devices )
SLOT_INTERFACE("d9060", D9060)
SLOT_INTERFACE("d9090", D9090)
SLOT_INTERFACE("softbox", SOFTBOX)
SLOT_INTERFACE("shark", SHARK)
SLOT_INTERFACE_END
SLOT_INTERFACE_START( cbm8296d_ieee488_devices )

View File

@ -94,6 +94,7 @@
#include "machine/plus4_sid.h"
#include "machine/plus4_std.h"
#include "machine/serialbox.h"
#include "machine/shark.h"
#include "machine/softbox.h"
#include "machine/superpet.h"
#include "machine/vic1010.h"

170
src/mess/machine/shark.c Normal file
View File

@ -0,0 +1,170 @@
/**********************************************************************
Mator Systems SHARK Intelligent Winchester Disc Subsystem emulation
Copyright MESS Team.
Visit http://mamedev.org for licensing and usage restrictions.
**********************************************************************/
#include "shark.h"
//**************************************************************************
// MACROS / CONSTANTS
//**************************************************************************
#define I8085_TAG "i8085"
#define RS232_TAG "rs232"
//**************************************************************************
// DEVICE DEFINITIONS
//**************************************************************************
const device_type SHARK = &device_creator<shark_device>;
//-------------------------------------------------
// ROM( shark )
//-------------------------------------------------
ROM_START( shark )
ROM_REGION( 0x5000, I8085_TAG, 0 )
ROM_LOAD( "pch488 3450 v22.1 #1", 0x0000, 0x1000, CRC(03bff9d7) SHA1(ac506df6509e1b2185a69f9f8f44b8b456aa9834) )
ROM_LOAD( "pch488 3450 v22.1 #2", 0x1000, 0x1000, CRC(c14fa5fe) SHA1(bcfd1dd65d692c76b90e6134b85f22c39c049430) )
ROM_LOAD( "pch488 3450 v22.1 #3", 0x2000, 0x1000, CRC(4dfaa482) SHA1(fe2c44bb650572616c8bdad6358032fe64b1e363) )
ROM_LOAD( "pch488 3450 v22.1 #4", 0x3000, 0x1000, NO_DUMP )
ROM_LOAD( "pch488 3450 v22.1 #5", 0x4000, 0x1000, CRC(aef665e9) SHA1(80a4c00b717100b4e22fa3704e34060fffce2bc3) )
ROM_REGION( 0x800, "micro", 0 ) // address decoder
ROM_LOAD( "micro p3450 v1.3", 0x000, 0x800, CRC(0e69202e) SHA1(3b384951ff54c4b45a3a778a88966d13e2c9d57a) )
ROM_END
//-------------------------------------------------
// rom_region - device-specific ROM region
//-------------------------------------------------
const rom_entry *shark_device::device_rom_region() const
{
return ROM_NAME( shark );
}
//-------------------------------------------------
// ADDRESS_MAP( shark_mem )
//-------------------------------------------------
static ADDRESS_MAP_START( shark_mem, AS_PROGRAM, 8, shark_device )
AM_RANGE(0x0000, 0x4fff) AM_ROM AM_REGION(I8085_TAG, 0)
ADDRESS_MAP_END
//-------------------------------------------------
// ADDRESS_MAP( shark_io )
//-------------------------------------------------
static ADDRESS_MAP_START( shark_io, AS_IO, 8, shark_device )
ADDRESS_MAP_END
//-------------------------------------------------
// I8085_CONFIG( cpu_intf )
//-------------------------------------------------
static I8085_CONFIG( cpu_intf )
{
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL
};
//-------------------------------------------------
// rs232_port_interface rs232_intf
//-------------------------------------------------
static const rs232_port_interface rs232_intf =
{
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL
};
//-------------------------------------------------
// MACHINE_CONFIG_FRAGMENT( shark )
//-------------------------------------------------
static MACHINE_CONFIG_FRAGMENT( shark )
// basic machine hardware
MCFG_CPU_ADD(I8085_TAG, I8085A, 1000000)
MCFG_CPU_CONFIG(cpu_intf)
MCFG_CPU_PROGRAM_MAP(shark_mem)
MCFG_CPU_IO_MAP(shark_io)
// devices
MCFG_HARDDISK_ADD("harddisk1")
MCFG_RS232_PORT_ADD(RS232_TAG, rs232_intf, default_rs232_devices, NULL)
MACHINE_CONFIG_END
//-------------------------------------------------
// machine_config_additions - device-specific
// machine configurations
//-------------------------------------------------
machine_config_constructor shark_device::device_mconfig_additions() const
{
return MACHINE_CONFIG_NAME( shark );
}
//-------------------------------------------------
// INPUT_PORTS( shark )
//-------------------------------------------------
INPUT_PORTS_START( shark )
INPUT_PORTS_END
//-------------------------------------------------
// input_ports - device-specific input ports
//-------------------------------------------------
ioport_constructor shark_device::device_input_ports() const
{
return INPUT_PORTS_NAME( shark );
}
//**************************************************************************
// LIVE DEVICE
//**************************************************************************
//-------------------------------------------------
// shark_device - constructor
//-------------------------------------------------
shark_device::shark_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock)
: device_t(mconfig, SHARK, "Mator SHARK", tag, owner, clock, "shark", __FILE__),
device_ieee488_interface(mconfig, *this),
m_maincpu(*this, I8085_TAG)
{
}
//-------------------------------------------------
// device_start - device-specific startup
//-------------------------------------------------
void shark_device::device_start()
{
}

57
src/mess/machine/shark.h Normal file
View File

@ -0,0 +1,57 @@
/**********************************************************************
Mator Systems SHARK Intelligent Winchester Disc Subsystem emulation
35MB PRIAM DISKOS 3450 8" Winchester Hard Disk (-chs 525,5,? -ss ?)
Copyright MESS Team.
Visit http://mamedev.org for licensing and usage restrictions.
**********************************************************************/
#pragma once
#ifndef __SHARK__
#define __SHARK__
#include "emu.h"
#include "cpu/i8085/i8085.h"
#include "imagedev/harddriv.h"
#include "machine/ieee488.h"
#include "machine/serial.h"
//**************************************************************************
// TYPE DEFINITIONS
//**************************************************************************
// ======================> shark_device
class shark_device : public device_t,
public device_ieee488_interface
{
public:
// construction/destruction
shark_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
// optional information overrides
virtual const rom_entry *device_rom_region() const;
virtual machine_config_constructor device_mconfig_additions() const;
virtual ioport_constructor device_input_ports() const;
protected:
// device-level overrides
virtual void device_start();
private:
required_device<cpu_device> m_maincpu;
};
// device type definition
extern const device_type SHARK;
#endif

View File

@ -1058,6 +1058,7 @@ $(MESSOBJ)/cbm.a: \
$(MESS_MACHINE)/pet_64k.o \
$(MESS_MACHINE)/superpet.o \
$(MESS_MACHINE)/mos6702.o \
$(MESS_MACHINE)/shark.o \
$(MESS_DRIVERS)/c64.o \
$(MESS_DRIVERS)/c64dtv.o \
$(MESS_MACHINE)/c64exp.o \