mirror of
https://github.com/holub/mame
synced 2025-04-22 00:11:58 +03:00
abc800: Added skeleton for Databoard 4112-23 floppy disk controller. [Curt Coder]
This commit is contained in:
parent
4e440057dc
commit
fa612073a6
@ -66,6 +66,8 @@ if (BUSES["ABCBUS"]~=null) then
|
||||
MAME_DIR .. "src/devices/bus/abcbus/abcbus.h",
|
||||
MAME_DIR .. "src/devices/bus/abcbus/abc890.cpp",
|
||||
MAME_DIR .. "src/devices/bus/abcbus/abc890.h",
|
||||
MAME_DIR .. "src/devices/bus/abcbus/db411223.cpp",
|
||||
MAME_DIR .. "src/devices/bus/abcbus/db411223.h",
|
||||
MAME_DIR .. "src/devices/bus/abcbus/fd2.cpp",
|
||||
MAME_DIR .. "src/devices/bus/abcbus/fd2.h",
|
||||
MAME_DIR .. "src/devices/bus/abcbus/hdc.cpp",
|
||||
|
@ -80,6 +80,7 @@ void abcbus_slot_device::device_start()
|
||||
|
||||
// slot devices
|
||||
#include "abc890.h"
|
||||
#include "db411223.h"
|
||||
#include "fd2.h"
|
||||
#include "hdc.h"
|
||||
#include "lux10828.h"
|
||||
@ -106,6 +107,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("db411223", DATABOARD_4112_23)
|
||||
SLOT_INTERFACE("unidisk", UNIDISK)
|
||||
SLOT_INTERFACE_END
|
||||
|
||||
@ -125,6 +127,7 @@ SLOT_INTERFACE_START( abcbus_cards )
|
||||
SLOT_INTERFACE("abc856", ABC856)
|
||||
SLOT_INTERFACE("abc890", ABC890)
|
||||
SLOT_INTERFACE("abc894", ABC894)
|
||||
SLOT_INTERFACE("db411223", DATABOARD_4112_23)
|
||||
SLOT_INTERFACE("hdc", ABC_HDC)
|
||||
SLOT_INTERFACE("sio", ABC_SIO)
|
||||
SLOT_INTERFACE("slow", LUXOR_55_10828)
|
||||
|
208
src/devices/bus/abcbus/db411223.cpp
Normal file
208
src/devices/bus/abcbus/db411223.cpp
Normal file
@ -0,0 +1,208 @@
|
||||
// license:BSD-3-Clause
|
||||
// copyright-holders:Curt Coder
|
||||
/**********************************************************************
|
||||
|
||||
Databoard 4112-23 floppy disk controller emulation
|
||||
|
||||
*********************************************************************/
|
||||
|
||||
#include "emu.h"
|
||||
#include "db411223.h"
|
||||
|
||||
|
||||
|
||||
//**************************************************************************
|
||||
// MACROS / CONSTANTS
|
||||
//**************************************************************************
|
||||
|
||||
#define Z80_TAG "maincpu"
|
||||
|
||||
|
||||
//**************************************************************************
|
||||
// DEVICE DEFINITIONS
|
||||
//**************************************************************************
|
||||
|
||||
DEFINE_DEVICE_TYPE(DATABOARD_4112_23, databoard_4112_23_t, "db411223", "Databoard 4112-23")
|
||||
|
||||
|
||||
//-------------------------------------------------
|
||||
// ROM( databoard_4112_23 )
|
||||
//-------------------------------------------------
|
||||
|
||||
ROM_START( databoard_4112_23 )
|
||||
ROM_REGION( 0x2000, Z80_TAG, 0 )
|
||||
ROM_LOAD("fpy_int_4112-23_teac_fd55.bin", 0x0000, 0x2000, CRC(9175ceb8) SHA1(95c150d3152df318abd9267915d5669d2ec33895))
|
||||
ROM_END
|
||||
|
||||
|
||||
//-------------------------------------------------
|
||||
// rom_region - device-specific ROM region
|
||||
//-------------------------------------------------
|
||||
|
||||
const tiny_rom_entry *databoard_4112_23_t::device_rom_region() const
|
||||
{
|
||||
return ROM_NAME( databoard_4112_23 );
|
||||
}
|
||||
|
||||
|
||||
//-------------------------------------------------
|
||||
// ADDRESS_MAP( databoard_4112_23_mem )
|
||||
//-------------------------------------------------
|
||||
|
||||
static ADDRESS_MAP_START( databoard_4112_23_mem, AS_PROGRAM, 8, databoard_4112_23_t )
|
||||
AM_RANGE(0x0000, 0x1fff) AM_ROM AM_REGION(Z80_TAG, 0)
|
||||
ADDRESS_MAP_END
|
||||
|
||||
|
||||
//-------------------------------------------------
|
||||
// ADDRESS_MAP( databoard_4112_23_io )
|
||||
//-------------------------------------------------
|
||||
|
||||
static ADDRESS_MAP_START( databoard_4112_23_io, AS_IO, 8, databoard_4112_23_t )
|
||||
ADDRESS_MAP_END
|
||||
|
||||
|
||||
//-------------------------------------------------
|
||||
// device_add_mconfig - add device configuration
|
||||
//-------------------------------------------------
|
||||
|
||||
MACHINE_CONFIG_MEMBER( databoard_4112_23_t::device_add_mconfig )
|
||||
MCFG_CPU_ADD(Z80_TAG, Z80, 4000000)
|
||||
MCFG_CPU_PROGRAM_MAP(databoard_4112_23_mem)
|
||||
MCFG_CPU_IO_MAP(databoard_4112_23_io)
|
||||
MACHINE_CONFIG_END
|
||||
|
||||
|
||||
//-------------------------------------------------
|
||||
// INPUT_PORTS( databoard_4112_23 )
|
||||
//-------------------------------------------------
|
||||
|
||||
INPUT_PORTS_START( databoard_4112_23 )
|
||||
INPUT_PORTS_END
|
||||
|
||||
|
||||
//-------------------------------------------------
|
||||
// input_ports - device-specific input ports
|
||||
//-------------------------------------------------
|
||||
|
||||
ioport_constructor databoard_4112_23_t::device_input_ports() const
|
||||
{
|
||||
return INPUT_PORTS_NAME( databoard_4112_23 );
|
||||
}
|
||||
|
||||
|
||||
|
||||
//**************************************************************************
|
||||
// LIVE DEVICE
|
||||
//**************************************************************************
|
||||
|
||||
//-------------------------------------------------
|
||||
// databoard_4112_23_t - constructor
|
||||
//-------------------------------------------------
|
||||
|
||||
databoard_4112_23_t::databoard_4112_23_t(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) :
|
||||
device_t(mconfig, DATABOARD_4112_23, tag, owner, clock),
|
||||
device_abcbus_card_interface(mconfig, *this),
|
||||
m_maincpu(*this, Z80_TAG)
|
||||
{
|
||||
}
|
||||
|
||||
|
||||
//-------------------------------------------------
|
||||
// device_start - device-specific startup
|
||||
//-------------------------------------------------
|
||||
|
||||
void databoard_4112_23_t::device_start()
|
||||
{
|
||||
}
|
||||
|
||||
|
||||
//-------------------------------------------------
|
||||
// device_reset - device-specific reset
|
||||
//-------------------------------------------------
|
||||
|
||||
void databoard_4112_23_t::device_reset()
|
||||
{
|
||||
m_cs = false;
|
||||
}
|
||||
|
||||
|
||||
|
||||
//**************************************************************************
|
||||
// ABC BUS INTERFACE
|
||||
//**************************************************************************
|
||||
|
||||
//-------------------------------------------------
|
||||
// abcbus_cs -
|
||||
//-------------------------------------------------
|
||||
|
||||
void databoard_4112_23_t::abcbus_cs(uint8_t data)
|
||||
{
|
||||
}
|
||||
|
||||
|
||||
//-------------------------------------------------
|
||||
// abcbus_stat -
|
||||
//-------------------------------------------------
|
||||
|
||||
uint8_t databoard_4112_23_t::abcbus_stat()
|
||||
{
|
||||
uint8_t data = 0xff;
|
||||
|
||||
if (m_cs)
|
||||
{
|
||||
}
|
||||
|
||||
return data;
|
||||
}
|
||||
|
||||
|
||||
//-------------------------------------------------
|
||||
// abcbus_inp -
|
||||
//-------------------------------------------------
|
||||
|
||||
uint8_t databoard_4112_23_t::abcbus_inp()
|
||||
{
|
||||
uint8_t data = 0xff;
|
||||
|
||||
if (m_cs)
|
||||
{
|
||||
}
|
||||
|
||||
return data;
|
||||
}
|
||||
|
||||
|
||||
//-------------------------------------------------
|
||||
// abcbus_out -
|
||||
//-------------------------------------------------
|
||||
|
||||
void databoard_4112_23_t::abcbus_out(uint8_t data)
|
||||
{
|
||||
if (!m_cs) return;
|
||||
}
|
||||
|
||||
|
||||
//-------------------------------------------------
|
||||
// abcbus_c1 -
|
||||
//-------------------------------------------------
|
||||
|
||||
void databoard_4112_23_t::abcbus_c1(uint8_t data)
|
||||
{
|
||||
if (m_cs)
|
||||
{
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
//-------------------------------------------------
|
||||
// abcbus_c3 -
|
||||
//-------------------------------------------------
|
||||
|
||||
void databoard_4112_23_t::abcbus_c3(uint8_t data)
|
||||
{
|
||||
if (m_cs)
|
||||
{
|
||||
m_maincpu->reset();
|
||||
}
|
||||
}
|
60
src/devices/bus/abcbus/db411223.h
Normal file
60
src/devices/bus/abcbus/db411223.h
Normal file
@ -0,0 +1,60 @@
|
||||
// license:BSD-3-Clause
|
||||
// copyright-holders:Curt Coder
|
||||
/**********************************************************************
|
||||
|
||||
Databoard 4112-23 floppy disk controller emulation
|
||||
|
||||
*********************************************************************/
|
||||
|
||||
#ifndef MAME_BUS_ABCBUS_DATABOARD_4112_23_H
|
||||
#define MAME_BUS_ABCBUS_DATABOARD_4112_23_H
|
||||
|
||||
#pragma once
|
||||
|
||||
#include "abcbus.h"
|
||||
#include "cpu/z80/z80.h"
|
||||
|
||||
|
||||
|
||||
//**************************************************************************
|
||||
// TYPE DEFINITIONS
|
||||
//**************************************************************************
|
||||
|
||||
// ======================> databoard_4112_23_t
|
||||
|
||||
class databoard_4112_23_t : public device_t,
|
||||
public device_abcbus_card_interface
|
||||
{
|
||||
public:
|
||||
// construction/destruction
|
||||
databoard_4112_23_t(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
|
||||
|
||||
protected:
|
||||
// device-level overrides
|
||||
virtual void device_start() override;
|
||||
virtual void device_reset() override;
|
||||
|
||||
// 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
|
||||
DECLARE_DEVICE_TYPE(DATABOARD_4112_23, databoard_4112_23_t)
|
||||
|
||||
#endif // MAME_BUS_ABCBUS_DATABOARD_4112_23_H
|
Loading…
Reference in New Issue
Block a user