mirror of
https://github.com/holub/mame
synced 2025-04-22 00:11:58 +03:00
c64: Interpod WIP. (nw)
This commit is contained in:
parent
b743903488
commit
d3a924a25a
@ -70,13 +70,14 @@ Notes:
|
||||
#define R6532_TAG "u3"
|
||||
#define R6522_TAG "u4"
|
||||
#define MC6850_TAG "u5"
|
||||
#define RS232_TAG "rs232"
|
||||
|
||||
|
||||
//**************************************************************************
|
||||
// DEVICE DEFINITIONS
|
||||
//**************************************************************************
|
||||
|
||||
DEFINE_DEVICE_TYPE(INTERPOD, interpod_device, "interpod", "Interpod")
|
||||
DEFINE_DEVICE_TYPE(INTERPOD, interpod_t, "interpod", "Interpod")
|
||||
|
||||
|
||||
|
||||
@ -90,8 +91,11 @@ DEFINE_DEVICE_TYPE(INTERPOD, interpod_device, "interpod", "Interpod")
|
||||
|
||||
ROM_START( interpod )
|
||||
ROM_REGION( 0x800, R6502_TAG, 0 )
|
||||
ROM_LOAD( "1.4.u2", 0x000, 0x800, CRC(c5b71982) SHA1(614d677b7c6273f6b84fa61affaf91cfdaeed6a6) )
|
||||
ROM_LOAD( "1.6.u2", 0x000, 0x800, CRC(67bb0436) SHA1(7659c45b73f577233f7657c4da9141dcfe8b6d97) )
|
||||
ROM_DEFAULT_BIOS("v16")
|
||||
ROM_SYSTEM_BIOS( 0, "v14", "Version 1.4" )
|
||||
ROMX_LOAD( "1.4.u2", 0x000, 0x800, CRC(c5b71982) SHA1(614d677b7c6273f6b84fa61affaf91cfdaeed6a6), ROM_BIOS(0) )
|
||||
ROM_SYSTEM_BIOS( 1, "v16", "Version 1.6" )
|
||||
ROMX_LOAD( "1.6.u2", 0x000, 0x800, CRC(67bb0436) SHA1(7659c45b73f577233f7657c4da9141dcfe8b6d97), ROM_BIOS(1) )
|
||||
ROM_END
|
||||
|
||||
|
||||
@ -99,7 +103,7 @@ ROM_END
|
||||
// rom_region - device-specific ROM region
|
||||
//-------------------------------------------------
|
||||
|
||||
const tiny_rom_entry *interpod_device::device_rom_region() const
|
||||
const tiny_rom_entry *interpod_t::device_rom_region() const
|
||||
{
|
||||
return ROM_NAME( interpod );
|
||||
}
|
||||
@ -109,7 +113,7 @@ const tiny_rom_entry *interpod_device::device_rom_region() const
|
||||
// ADDRESS_MAP( interpod_mem )
|
||||
//-------------------------------------------------
|
||||
|
||||
void interpod_device::interpod_mem(address_map &map)
|
||||
void interpod_t::interpod_mem(address_map &map)
|
||||
{
|
||||
map(0x0000, 0x007f).mirror(0x3b80).m(R6532_TAG, FUNC(mos6532_new_device::ram_map));
|
||||
map(0x0400, 0x041f).mirror(0x3be0).m(R6532_TAG, FUNC(mos6532_new_device::io_map));
|
||||
@ -123,43 +127,50 @@ void interpod_device::interpod_mem(address_map &map)
|
||||
// device_add_mconfig - add device configuration
|
||||
//-------------------------------------------------
|
||||
|
||||
void interpod_device::device_add_mconfig(machine_config &config)
|
||||
void interpod_t::device_add_mconfig(machine_config &config)
|
||||
{
|
||||
M6502(config, m_maincpu, 1000000);
|
||||
m_maincpu->set_addrmap(AS_PROGRAM, &interpod_device::interpod_mem);
|
||||
m_maincpu->set_addrmap(AS_PROGRAM, &interpod_t::interpod_mem);
|
||||
|
||||
VIA6522(config, m_via, 1000000);
|
||||
|
||||
MOS6532_NEW(config, m_riot, 1000000);
|
||||
|
||||
ACIA6850(config, m_acia, 0);
|
||||
|
||||
ieee488_device::add_cbm_devices(config, nullptr);
|
||||
|
||||
RS232_PORT(config, m_rs232, default_rs232_devices, nullptr);
|
||||
}
|
||||
|
||||
|
||||
|
||||
//**************************************************************************
|
||||
// LIVE DEVICE
|
||||
//**************************************************************************
|
||||
|
||||
//-------------------------------------------------
|
||||
// interpod_device - constructor
|
||||
// interpod_t - constructor
|
||||
//-------------------------------------------------
|
||||
|
||||
interpod_device::interpod_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock)
|
||||
: device_t(mconfig, INTERPOD, tag, owner, clock),
|
||||
device_cbm_iec_interface(mconfig, *this),
|
||||
m_maincpu(*this, R6502_TAG),
|
||||
m_via(*this, R6522_TAG),
|
||||
m_riot(*this, R6532_TAG),
|
||||
m_acia(*this, MC6850_TAG),
|
||||
m_ieee(*this, IEEE488_TAG)
|
||||
interpod_t::interpod_t(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) :
|
||||
device_t(mconfig, INTERPOD, tag, owner, clock),
|
||||
device_cbm_iec_interface(mconfig, *this),
|
||||
m_maincpu(*this, R6502_TAG),
|
||||
m_via(*this, R6522_TAG),
|
||||
m_riot(*this, R6532_TAG),
|
||||
m_acia(*this, MC6850_TAG),
|
||||
m_ieee(*this, IEEE488_TAG),
|
||||
m_rs232(*this, RS232_TAG)
|
||||
{
|
||||
}
|
||||
|
||||
|
||||
//-------------------------------------------------
|
||||
// device_start - device-specific startup
|
||||
//-------------------------------------------------
|
||||
|
||||
void interpod_device::device_start()
|
||||
void interpod_t::device_start()
|
||||
{
|
||||
}
|
||||
|
||||
@ -168,6 +179,6 @@ void interpod_device::device_start()
|
||||
// device_reset - device-specific reset
|
||||
//-------------------------------------------------
|
||||
|
||||
void interpod_device::device_reset()
|
||||
void interpod_t::device_reset()
|
||||
{
|
||||
}
|
||||
|
@ -12,6 +12,7 @@
|
||||
#pragma once
|
||||
|
||||
#include "cbmiec.h"
|
||||
#include "bus/rs232/rs232.h"
|
||||
#include "bus/ieee488/ieee488.h"
|
||||
#include "cpu/m6502/m6502.h"
|
||||
#include "machine/6522via.h"
|
||||
@ -20,24 +21,18 @@
|
||||
|
||||
|
||||
|
||||
//**************************************************************************
|
||||
// MACROS / CONSTANTS
|
||||
//**************************************************************************
|
||||
|
||||
#define INTERPOD_TAG "interpod"
|
||||
|
||||
|
||||
//**************************************************************************
|
||||
// TYPE DEFINITIONS
|
||||
//**************************************************************************
|
||||
|
||||
// ======================> interpod_device
|
||||
// ======================> interpod_t
|
||||
|
||||
class interpod_device : public device_t, public device_cbm_iec_interface
|
||||
class interpod_t : public device_t,
|
||||
public device_cbm_iec_interface
|
||||
{
|
||||
public:
|
||||
// construction/destruction
|
||||
interpod_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
|
||||
interpod_t(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
|
||||
|
||||
protected:
|
||||
// device-level overrides
|
||||
@ -54,13 +49,14 @@ private:
|
||||
required_device<mos6532_new_device> m_riot;
|
||||
required_device<acia6850_device> m_acia;
|
||||
required_device<ieee488_device> m_ieee;
|
||||
required_device<rs232_port_device> m_rs232;
|
||||
|
||||
void interpod_mem(address_map &map);
|
||||
};
|
||||
|
||||
|
||||
// device type definition
|
||||
DECLARE_DEVICE_TYPE(INTERPOD, interpod_device)
|
||||
DECLARE_DEVICE_TYPE(INTERPOD, interpod_t)
|
||||
|
||||
|
||||
#endif // MAME_BUS_CBMIEC_INTERPOD_H
|
||||
|
Loading…
Reference in New Issue
Block a user