c64: Interpod WIP. (nw)

This commit is contained in:
Curt Coder 2019-05-13 19:20:17 +03:00
parent b743903488
commit d3a924a25a
2 changed files with 36 additions and 29 deletions

View File

@ -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()
{
}

View File

@ -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