abc800: Fixed Turbo Kontroller name to UNI DISK and identified CPU type. [Curt Coder]

This commit is contained in:
Curt Coder 2017-10-03 23:36:37 +03:00
parent 28b4d74ada
commit ec017ff2f5
5 changed files with 234 additions and 155 deletions

View File

@ -86,10 +86,10 @@ if (BUSES["ABCBUS"]~=null) then
MAME_DIR .. "src/devices/bus/abcbus/sio.h",
MAME_DIR .. "src/devices/bus/abcbus/slutprov.cpp",
MAME_DIR .. "src/devices/bus/abcbus/slutprov.h",
MAME_DIR .. "src/devices/bus/abcbus/turbo.cpp",
MAME_DIR .. "src/devices/bus/abcbus/turbo.h",
MAME_DIR .. "src/devices/bus/abcbus/uni800.cpp",
MAME_DIR .. "src/devices/bus/abcbus/uni800.h",
MAME_DIR .. "src/devices/bus/abcbus/unidisk.cpp",
MAME_DIR .. "src/devices/bus/abcbus/unidisk.h",
}
end

View File

@ -90,8 +90,8 @@ void abcbus_slot_device::device_start()
#include "ram.h"
#include "sio.h"
#include "slutprov.h"
#include "turbo.h"
#include "uni800.h"
#include "unidisk.h"
@ -106,6 +106,7 @@ SLOT_INTERFACE_START( abc80_cards )
SLOT_INTERFACE("16k", ABC80_16KB_RAM_CARD)
SLOT_INTERFACE("slow", LUXOR_55_10828)
SLOT_INTERFACE("abc830", ABC830)
SLOT_INTERFACE("unidisk", UNIDISK)
SLOT_INTERFACE_END
@ -128,8 +129,8 @@ SLOT_INTERFACE_START( abcbus_cards )
SLOT_INTERFACE("sio", ABC_SIO)
SLOT_INTERFACE("slow", LUXOR_55_10828)
SLOT_INTERFACE("uni800", ABC_UNI800)
SLOT_INTERFACE("unidisk", UNIDISK)
SLOT_INTERFACE("slutprov", ABC_SLUTPROV)
SLOT_INTERFACE("turbo", TURBO_KONTROLLER)
SLOT_INTERFACE("xebec", LUXOR_55_21056)
SLOT_INTERFACE_END

View File

@ -1,139 +0,0 @@
// license:BSD-3-Clause
// copyright-holders:Curt Coder
/**********************************************************************
MyAB Turbo-Kontroller disk controller emulation
*********************************************************************/
#include "emu.h"
#include "turbo.h"
//**************************************************************************
// MACROS / CONSTANTS
//**************************************************************************
#define Z80_TAG "z80"
//**************************************************************************
// DEVICE DEFINITIONS
//**************************************************************************
DEFINE_DEVICE_TYPE(TURBO_KONTROLLER, turbo_kontroller_device, "unidisk", "Turbo-Kontroller")
//-------------------------------------------------
// ROM( turbo_kontroller )
//-------------------------------------------------
ROM_START( turbo_kontroller )
ROM_REGION( 0x1000, Z80_TAG, 0 )
ROM_SYSTEM_BIOS( 0, "525", "5\" 25-pin" )
ROMX_LOAD( "unidis5d.bin", 0x0000, 0x1000, CRC(569dd60c) SHA1(47b810bcb5a063ffb3034fd7138dc5e15d243676), ROM_BIOS(1) )
ROM_SYSTEM_BIOS( 1, "534", "5\" 34-pin" )
ROMX_LOAD( "unidiskh.bin", 0x0000, 0x1000, CRC(5079ad85) SHA1(42bb91318f13929c3a440de3fa1f0491a0b90863), ROM_BIOS(2) )
ROM_SYSTEM_BIOS( 2, "8", "8\"" )
ROMX_LOAD( "unidisk8.bin", 0x0000, 0x1000, CRC(d04e6a43) SHA1(8db504d46ff0355c72bd58fd536abeb17425c532), ROM_BIOS(3) )
ROM_END
//-------------------------------------------------
// rom_region - device-specific ROM region
//-------------------------------------------------
const tiny_rom_entry *turbo_kontroller_device::device_rom_region() const
{
return ROM_NAME( turbo_kontroller );
}
//-------------------------------------------------
// ADDRESS_MAP( turbo_kontroller_mem )
//-------------------------------------------------
static ADDRESS_MAP_START( turbo_kontroller_mem, AS_PROGRAM, 8, turbo_kontroller_device )
AM_RANGE(0x0000, 0x0fff) AM_ROM AM_REGION(Z80_TAG, 0)
ADDRESS_MAP_END
//-------------------------------------------------
// ADDRESS_MAP( turbo_kontroller_io )
//-------------------------------------------------
static ADDRESS_MAP_START( turbo_kontroller_io, AS_IO, 8, turbo_kontroller_device )
ADDRESS_MAP_END
//-------------------------------------------------
// z80_daisy_config daisy_chain
//-------------------------------------------------
static const z80_daisy_config daisy_chain[] =
{
{ nullptr }
};
//-------------------------------------------------
// device_add_mconfig - add device configuration
//-------------------------------------------------
MACHINE_CONFIG_MEMBER( turbo_kontroller_device::device_add_mconfig )
MCFG_CPU_ADD(Z80_TAG, Z80, 4000000)
MCFG_CPU_PROGRAM_MAP(turbo_kontroller_mem)
MCFG_CPU_IO_MAP(turbo_kontroller_io)
MCFG_Z80_DAISY_CHAIN(daisy_chain)
MACHINE_CONFIG_END
//**************************************************************************
// LIVE DEVICE
//**************************************************************************
//-------------------------------------------------
// turbo_kontroller_device - constructor
//-------------------------------------------------
turbo_kontroller_device::turbo_kontroller_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock)
: device_t(mconfig, TURBO_KONTROLLER, tag, owner, clock),
device_abcbus_card_interface(mconfig, *this),
m_maincpu(*this, Z80_TAG)
{
}
//-------------------------------------------------
// device_start - device-specific startup
//-------------------------------------------------
void turbo_kontroller_device::device_start()
{
}
//-------------------------------------------------
// device_reset - device-specific reset
//-------------------------------------------------
void turbo_kontroller_device::device_reset()
{
}
//**************************************************************************
// ABC BUS INTERFACE
//**************************************************************************
//-------------------------------------------------
// abcbus_cs -
//-------------------------------------------------
void turbo_kontroller_device::abcbus_cs(uint8_t data)
{
}

View File

@ -0,0 +1,211 @@
// license:BSD-3-Clause
// copyright-holders:Curt Coder
/**********************************************************************
MyAB UNI DISK floppy disk controller emulation
*********************************************************************/
#include "emu.h"
#include "unidisk.h"
//**************************************************************************
// MACROS / CONSTANTS
//**************************************************************************
#define TMS9995_TAG "maincpu"
//**************************************************************************
// DEVICE DEFINITIONS
//**************************************************************************
DEFINE_DEVICE_TYPE(UNIDISK, unidisk_t, "unidisk", "MyAB UNI DISK")
//-------------------------------------------------
// ROM( unidisk )
//-------------------------------------------------
ROM_START( unidisk )
ROM_REGION( 0x1000, TMS9995_TAG, 0 )
ROM_SYSTEM_BIOS( 0, "5d", "5\" D PROM" )
ROMX_LOAD("unidisk5d.bin", 0x0000, 0x1000, CRC(569dd60c) SHA1(47b810bcb5a063ffb3034fd7138dc5e15d243676), ROM_BIOS(1))
ROM_SYSTEM_BIOS( 1, "5h", "5\" H PROM" )
ROMX_LOAD("unidisk5h.bin", 0x0000, 0x1000, CRC(5079ad85) SHA1(42bb91318f13929c3a440de3fa1f0491a0b90863), ROM_BIOS(2))
ROM_SYSTEM_BIOS( 2, "8", "8\" PROM" )
ROMX_LOAD("unidisk8.bin", 0x0000, 0x1000, CRC(d04e6a43) SHA1(8db504d46ff0355c72bd58fd536abeb17425c532), ROM_BIOS(3))
ROM_END
//-------------------------------------------------
// rom_region - device-specific ROM region
//-------------------------------------------------
const tiny_rom_entry *unidisk_t::device_rom_region() const
{
return ROM_NAME( unidisk );
}
//-------------------------------------------------
// ADDRESS_MAP( unidisk_mem )
//-------------------------------------------------
static ADDRESS_MAP_START( unidisk_mem, AS_PROGRAM, 8, unidisk_t )
AM_RANGE(0x0000, 0x0fff) AM_ROM AM_REGION(TMS9995_TAG, 0)
ADDRESS_MAP_END
//-------------------------------------------------
// ADDRESS_MAP( unidisk_io )
//-------------------------------------------------
static ADDRESS_MAP_START( unidisk_io, AS_IO, 8, unidisk_t )
ADDRESS_MAP_END
//-------------------------------------------------
// device_add_mconfig - add device configuration
//-------------------------------------------------
MACHINE_CONFIG_MEMBER( unidisk_t::device_add_mconfig )
MCFG_TMS99xx_ADD(TMS9995_TAG, TMS9995, 12000000, unidisk_mem, unidisk_io)
MACHINE_CONFIG_END
//-------------------------------------------------
// INPUT_PORTS( unidisk )
//-------------------------------------------------
INPUT_PORTS_START( unidisk )
INPUT_PORTS_END
//-------------------------------------------------
// input_ports - device-specific input ports
//-------------------------------------------------
ioport_constructor unidisk_t::device_input_ports() const
{
return INPUT_PORTS_NAME( unidisk );
}
//**************************************************************************
// LIVE DEVICE
//**************************************************************************
//-------------------------------------------------
// unidisk_t - constructor
//-------------------------------------------------
unidisk_t::unidisk_t(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) :
device_t(mconfig, UNIDISK, tag, owner, clock),
device_abcbus_card_interface(mconfig, *this),
m_maincpu(*this, TMS9995_TAG)
{
}
//-------------------------------------------------
// device_start - device-specific startup
//-------------------------------------------------
void unidisk_t::device_start()
{
}
//-------------------------------------------------
// device_reset - device-specific reset
//-------------------------------------------------
void unidisk_t::device_reset()
{
m_cs = false;
}
//**************************************************************************
// ABC BUS INTERFACE
//**************************************************************************
//-------------------------------------------------
// abcbus_cs -
//-------------------------------------------------
void unidisk_t::abcbus_cs(uint8_t data)
{
}
//-------------------------------------------------
// abcbus_stat -
//-------------------------------------------------
uint8_t unidisk_t::abcbus_stat()
{
uint8_t data = 0xff;
if (m_cs)
{
}
return data;
}
//-------------------------------------------------
// abcbus_inp -
//-------------------------------------------------
uint8_t unidisk_t::abcbus_inp()
{
uint8_t data = 0xff;
if (m_cs)
{
}
return data;
}
//-------------------------------------------------
// abcbus_out -
//-------------------------------------------------
void unidisk_t::abcbus_out(uint8_t data)
{
if (!m_cs) return;
}
//-------------------------------------------------
// abcbus_c1 -
//-------------------------------------------------
void unidisk_t::abcbus_c1(uint8_t data)
{
if (m_cs)
{
}
}
//-------------------------------------------------
// abcbus_c3 -
//-------------------------------------------------
void unidisk_t::abcbus_c3(uint8_t data)
{
if (m_cs)
{
m_maincpu->reset();
}
}

View File

@ -2,18 +2,17 @@
// copyright-holders:Curt Coder
/**********************************************************************
MyAB Turbo-Kontroller disk controller emulation
MyAB UNI DISK floppy disk controller emulation
*********************************************************************/
#ifndef MAME_BUS_ABCBUS_TURBO_H
#define MAME_BUS_ABCBUS_TURBO_H
#ifndef MAME_BUS_ABCBUS_UNIDISK_H
#define MAME_BUS_ABCBUS_UNIDISK_H
#pragma once
#include "abcbus.h"
#include "cpu/z80/z80.h"
#include "cpu/z80/z80daisy.h"
#include "cpu/tms9900/tms9995.h"
@ -21,14 +20,14 @@
// TYPE DEFINITIONS
//**************************************************************************
// ======================> turbo_kontroller_device
// ======================> unidisk_t
class turbo_kontroller_device : public device_t,
public device_abcbus_card_interface
class unidisk_t : public device_t,
public device_abcbus_card_interface
{
public:
// construction/destruction
turbo_kontroller_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
unidisk_t(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
protected:
// device-level overrides
@ -38,17 +37,24 @@ protected:
// optional information overrides
virtual const tiny_rom_entry *device_rom_region() const override;
virtual void device_add_mconfig(machine_config &config) override;
virtual ioport_constructor device_input_ports() const override;
// device_abcbus_interface overrides
virtual void abcbus_cs(uint8_t data) override;
virtual uint8_t abcbus_inp() override;
virtual void abcbus_out(uint8_t data) override;
virtual uint8_t abcbus_stat() override;
virtual void abcbus_c1(uint8_t data) override;
virtual void abcbus_c3(uint8_t data) override;
private:
required_device<cpu_device> m_maincpu;
bool m_cs;
};
// device type definition
extern const device_type TURBO_KONTROLLER;
DECLARE_DEVICE_TYPE(TURBO_KONTROLLER, turbo_kontroller_device)
DECLARE_DEVICE_TYPE(UNIDISK, unidisk_t)
#endif // MAME_BUS_ABCBUS_TURBO_H
#endif // MAME_BUS_ABCBUS_UNIDISK_H