mirror of
https://github.com/holub/mame
synced 2025-04-24 17:30:55 +03:00
(MESS) ql: Expansion port/floppy WIP. (nw)
This commit is contained in:
parent
c37566ab08
commit
9faffd2067
2
.gitattributes
vendored
2
.gitattributes
vendored
@ -1254,8 +1254,6 @@ src/emu/bus/plus4/user.c svneol=native#text/plain
|
||||
src/emu/bus/plus4/user.h svneol=native#text/plain
|
||||
src/emu/bus/ql/exp.c svneol=native#text/plain
|
||||
src/emu/bus/ql/exp.h svneol=native#text/plain
|
||||
src/emu/bus/ql/qimi.c svneol=native#text/plain
|
||||
src/emu/bus/ql/qimi.h svneol=native#text/plain
|
||||
src/emu/bus/ql/sandy_superdisk.c svneol=native#text/plain
|
||||
src/emu/bus/ql/sandy_superdisk.h svneol=native#text/plain
|
||||
src/emu/bus/ql/sandy_superqboard.c svneol=native#text/plain
|
||||
|
@ -1142,7 +1142,6 @@ endif
|
||||
ifneq ($(filter QL,$(BUSES)),)
|
||||
OBJDIRS += $(BUSOBJ)/ql
|
||||
BUSOBJS += $(BUSOBJ)/ql/exp.o
|
||||
BUSOBJS += $(BUSOBJ)/ql/qimi.o
|
||||
BUSOBJS += $(BUSOBJ)/ql/sandy_superdisk.o
|
||||
BUSOBJS += $(BUSOBJ)/ql/sandy_superqboard.o
|
||||
BUSOBJS += $(BUSOBJ)/ql/trumpcard.o
|
||||
|
@ -77,13 +77,11 @@ void ql_expansion_slot_t::device_start()
|
||||
//-------------------------------------------------
|
||||
|
||||
// slot devices
|
||||
#include "qimi.h"
|
||||
#include "sandy_superdisk.h"
|
||||
#include "sandy_superqboard.h"
|
||||
#include "trumpcard.h"
|
||||
|
||||
SLOT_INTERFACE_START( ql_expansion_cards )
|
||||
SLOT_INTERFACE("qimi", QIMI)
|
||||
SLOT_INTERFACE("superdisk", SANDY_SUPER_DISK)
|
||||
SLOT_INTERFACE("superqboard", SANDY_SUPERQBOARD)
|
||||
SLOT_INTERFACE("trumpcard", QL_TRUMP_CARD)
|
||||
|
@ -93,8 +93,14 @@ public:
|
||||
// construction/destruction
|
||||
device_ql_expansion_card_interface(const machine_config &mconfig, device_t &device);
|
||||
|
||||
virtual void romoeh_w(int state) { m_romoeh = state; }
|
||||
virtual UINT8 read(address_space &space, offs_t offset, UINT8 data) { return data; }
|
||||
virtual void write(address_space &space, offs_t offset, UINT8 data) { }
|
||||
|
||||
protected:
|
||||
ql_expansion_slot_t *m_slot;
|
||||
|
||||
int m_romoeh;
|
||||
};
|
||||
|
||||
|
||||
@ -112,11 +118,21 @@ public:
|
||||
template<class _Object> static devcb_base &set_berrl_wr_callback(device_t &device, _Object object) { return downcast<ql_expansion_slot_t &>(device).m_write_berrl.set_callback(object); }
|
||||
template<class _Object> static devcb_base &set_extintl_wr_callback(device_t &device, _Object object) { return downcast<ql_expansion_slot_t &>(device).m_write_extintl.set_callback(object); }
|
||||
|
||||
// computer interface
|
||||
UINT8 read(address_space &space, offs_t offset, UINT8 data) { if (m_card) data = m_card->read(space, offset, data); return data; }
|
||||
void write(address_space &space, offs_t offset, UINT8 data) { if (m_card) m_card->write(space, offset, data); }
|
||||
DECLARE_WRITE_LINE_MEMBER( romoeh_w ) { if (m_card) m_card->romoeh_w(state); }
|
||||
|
||||
// card interface
|
||||
DECLARE_WRITE_LINE_MEMBER( ipl0l_w ) { m_write_ipl0l(state); }
|
||||
DECLARE_WRITE_LINE_MEMBER( ipl1l_w ) { m_write_ipl1l(state); }
|
||||
DECLARE_WRITE_LINE_MEMBER( berrl_w ) { m_write_berrl(state); }
|
||||
DECLARE_WRITE_LINE_MEMBER( extintl_w ) { m_write_extintl(state); }
|
||||
|
||||
protected:
|
||||
// device-level overrides
|
||||
virtual void device_start();
|
||||
virtual void device_reset() { if (get_card_device()) get_card_device()->reset(); }
|
||||
|
||||
devcb_write_line m_write_ipl0l;
|
||||
devcb_write_line m_write_ipl1l;
|
||||
|
@ -1,125 +0,0 @@
|
||||
// license:BSD-3-Clause
|
||||
// copyright-holders:Curt Coder
|
||||
/**********************************************************************
|
||||
|
||||
QIMI (QL Internal Mouse Interface) emulation
|
||||
|
||||
Copyright MESS Team.
|
||||
Visit http://mamedev.org for licensing and usage restrictions.
|
||||
|
||||
**********************************************************************/
|
||||
|
||||
#include "qimi.h"
|
||||
|
||||
|
||||
|
||||
//**************************************************************************
|
||||
// MACROS/CONSTANTS
|
||||
//**************************************************************************
|
||||
|
||||
#define MOUSEX_TAG "MOUSEX"
|
||||
#define MOUSEY_TAG "MOUSEY"
|
||||
#define MOUSEB_TAG "MOUSEB"
|
||||
|
||||
|
||||
// Mouse bits in Sandy port order
|
||||
#define MOUSE_MIDDLE 0x02
|
||||
#define MOUSE_RIGHT 0x04
|
||||
#define MOUSE_LEFT 0x08
|
||||
#define MOUSE_DIRY 0x10
|
||||
#define MOUSE_DIRX 0x20
|
||||
#define MOUSE_INTY 0x40
|
||||
#define MOUSE_INTX 0x80
|
||||
#define MOUSE_INT_MASK (MOUSE_INTX | MOUSE_INTY)
|
||||
|
||||
|
||||
|
||||
//**************************************************************************
|
||||
// DEVICE DEFINITIONS
|
||||
//**************************************************************************
|
||||
|
||||
const device_type QIMI = &device_creator<qimi_t>;
|
||||
|
||||
|
||||
//-------------------------------------------------
|
||||
// MACHINE_CONFIG_FRAGMENT( qimi )
|
||||
//-------------------------------------------------
|
||||
|
||||
static MACHINE_CONFIG_FRAGMENT( qimi )
|
||||
MACHINE_CONFIG_END
|
||||
|
||||
|
||||
//-------------------------------------------------
|
||||
// machine_config_additions - device-specific
|
||||
// machine configurations
|
||||
//-------------------------------------------------
|
||||
|
||||
machine_config_constructor qimi_t::device_mconfig_additions() const
|
||||
{
|
||||
return MACHINE_CONFIG_NAME( qimi );
|
||||
}
|
||||
|
||||
|
||||
//-------------------------------------------------
|
||||
// INPUT_PORTS( qimi )
|
||||
//-------------------------------------------------
|
||||
|
||||
static INPUT_PORTS_START( qimi )
|
||||
PORT_START(MOUSEX_TAG)
|
||||
PORT_BIT( 0xff, 0x00, IPT_MOUSE_X ) PORT_SENSITIVITY(50) PORT_KEYDELTA(5) PORT_MINMAX(0, 255) PORT_PLAYER(1)
|
||||
|
||||
PORT_START(MOUSEY_TAG)
|
||||
PORT_BIT( 0xff, 0x00, IPT_MOUSE_Y ) PORT_SENSITIVITY(50) PORT_KEYDELTA(5) PORT_MINMAX(0, 255) PORT_PLAYER(1)
|
||||
|
||||
PORT_START(MOUSEB_TAG) /* Mouse buttons */
|
||||
PORT_BIT( MOUSE_RIGHT, IP_ACTIVE_LOW, IPT_BUTTON1) PORT_NAME("Mouse Button 1") PORT_CODE(MOUSECODE_BUTTON1)
|
||||
PORT_BIT( MOUSE_LEFT, IP_ACTIVE_LOW, IPT_BUTTON2) PORT_NAME("Mouse Button 2") PORT_CODE(MOUSECODE_BUTTON2)
|
||||
PORT_BIT( MOUSE_MIDDLE, IP_ACTIVE_LOW, IPT_BUTTON3) PORT_NAME("Mouse Button 3") PORT_CODE(MOUSECODE_BUTTON3)
|
||||
INPUT_PORTS_END
|
||||
|
||||
|
||||
//-------------------------------------------------
|
||||
// input_ports - device-specific input ports
|
||||
//-------------------------------------------------
|
||||
|
||||
ioport_constructor qimi_t::device_input_ports() const
|
||||
{
|
||||
return INPUT_PORTS_NAME( qimi );
|
||||
}
|
||||
|
||||
|
||||
|
||||
//**************************************************************************
|
||||
// LIVE DEVICE
|
||||
//**************************************************************************
|
||||
|
||||
//-------------------------------------------------
|
||||
// qimi_t - constructor
|
||||
//-------------------------------------------------
|
||||
|
||||
qimi_t::qimi_t(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock) :
|
||||
device_t(mconfig, QIMI, "QIMI", tag, owner, clock, "qimi", __FILE__),
|
||||
device_ql_expansion_card_interface(mconfig, *this),
|
||||
m_mousex(*this, MOUSEX_TAG),
|
||||
m_mousey(*this, MOUSEY_TAG),
|
||||
m_mouseb(*this, MOUSEB_TAG)
|
||||
{
|
||||
}
|
||||
|
||||
|
||||
//-------------------------------------------------
|
||||
// device_start - device-specific startup
|
||||
//-------------------------------------------------
|
||||
|
||||
void qimi_t::device_start()
|
||||
{
|
||||
}
|
||||
|
||||
|
||||
//-------------------------------------------------
|
||||
// device_reset - device-specific reset
|
||||
//-------------------------------------------------
|
||||
|
||||
void qimi_t::device_reset()
|
||||
{
|
||||
}
|
@ -1,56 +0,0 @@
|
||||
// license:BSD-3-Clause
|
||||
// copyright-holders:Curt Coder
|
||||
/**********************************************************************
|
||||
|
||||
QIMI (QL Internal Mouse Interface) emulation
|
||||
|
||||
Copyright MESS Team.
|
||||
Visit http://mamedev.org for licensing and usage restrictions.
|
||||
|
||||
**********************************************************************/
|
||||
|
||||
#pragma once
|
||||
|
||||
#ifndef __QIMI__
|
||||
#define __QIMI__
|
||||
|
||||
#include "exp.h"
|
||||
|
||||
|
||||
|
||||
//**************************************************************************
|
||||
// TYPE DEFINITIONS
|
||||
//**************************************************************************
|
||||
|
||||
// ======================> qimi_device
|
||||
|
||||
class qimi_t : public device_t,
|
||||
public device_ql_expansion_card_interface
|
||||
{
|
||||
public:
|
||||
// construction/destruction
|
||||
qimi_t(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
|
||||
|
||||
// optional information overrides
|
||||
virtual machine_config_constructor device_mconfig_additions() const;
|
||||
virtual ioport_constructor device_input_ports() const;
|
||||
|
||||
protected:
|
||||
// device-level overrides
|
||||
virtual void device_start();
|
||||
virtual void device_reset();
|
||||
|
||||
// device_ql_expansion_card_interface overrides
|
||||
|
||||
private:
|
||||
required_ioport m_mousex;
|
||||
required_ioport m_mousey;
|
||||
required_ioport m_mouseb;
|
||||
};
|
||||
|
||||
|
||||
// device type definition
|
||||
extern const device_type QIMI;
|
||||
|
||||
|
||||
#endif
|
@ -17,6 +17,9 @@
|
||||
// MACROS/CONSTANTS
|
||||
//**************************************************************************
|
||||
|
||||
#define WD1772_TAG "wd1772"
|
||||
#define CENTRONICS_TAG "centronics"
|
||||
|
||||
|
||||
|
||||
//**************************************************************************
|
||||
@ -46,11 +49,27 @@ const rom_entry *sandy_super_disk_t::device_rom_region() const
|
||||
}
|
||||
|
||||
|
||||
//-------------------------------------------------
|
||||
// SLOT_INTERFACE( sandy_super_disk_floppies )
|
||||
//-------------------------------------------------
|
||||
|
||||
static SLOT_INTERFACE_START( sandy_super_disk_floppies )
|
||||
SLOT_INTERFACE( "35dd", FLOPPY_35_DD )
|
||||
SLOT_INTERFACE_END
|
||||
|
||||
|
||||
//-------------------------------------------------
|
||||
// MACHINE_CONFIG_FRAGMENT( sandy_super_disk )
|
||||
//-------------------------------------------------
|
||||
|
||||
static MACHINE_CONFIG_FRAGMENT( sandy_super_disk )
|
||||
MCFG_DEVICE_ADD(WD1772_TAG, WD1772x, 8000000)
|
||||
//MCFG_WD_FDC_INTRQ_CALLBACK(WRITELINE(sandy_super_disk_t, fdc_intrq_w))
|
||||
//MCFG_WD_FDC_DRQ_CALLBACK(WRITELINE(sandy_super_disk_t, fdc_drq_w))
|
||||
MCFG_FLOPPY_DRIVE_ADD(WD1772_TAG":0", sandy_super_disk_floppies, "35dd", floppy_image_device::default_floppy_formats)
|
||||
MCFG_FLOPPY_DRIVE_ADD(WD1772_TAG":1", sandy_super_disk_floppies, NULL, floppy_image_device::default_floppy_formats)
|
||||
|
||||
MCFG_CENTRONICS_ADD(CENTRONICS_TAG, centronics_printers, "printer")
|
||||
MACHINE_CONFIG_END
|
||||
|
||||
|
||||
@ -77,7 +96,8 @@ machine_config_constructor sandy_super_disk_t::device_mconfig_additions() const
|
||||
sandy_super_disk_t::sandy_super_disk_t(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock) :
|
||||
device_t(mconfig, SANDY_SUPER_DISK, "Sandy Super Disk", tag, owner, clock, "sandy_super_disk", __FILE__),
|
||||
device_ql_expansion_card_interface(mconfig, *this),
|
||||
m_rom(*this, "rom")
|
||||
m_rom(*this, "rom"),
|
||||
m_ram(*this, "ram")
|
||||
{
|
||||
}
|
||||
|
||||
|
@ -15,6 +15,7 @@
|
||||
#define __SANDY_SUPER_DISK__
|
||||
|
||||
#include "exp.h"
|
||||
#include "bus/centronics/ctronics.h"
|
||||
#include "machine/wd_fdc.h"
|
||||
|
||||
|
||||
@ -45,6 +46,7 @@ protected:
|
||||
|
||||
private:
|
||||
required_memory_region m_rom;
|
||||
optional_shared_ptr<UINT8> m_ram;
|
||||
};
|
||||
|
||||
|
||||
|
@ -2,7 +2,7 @@
|
||||
// copyright-holders:Curt Coder
|
||||
/**********************************************************************
|
||||
|
||||
Sandy SuperQBoard emulation
|
||||
Sandy SuperQBoard (with HD upgrade) emulation
|
||||
|
||||
Copyright MESS Team.
|
||||
Visit http://mamedev.org for licensing and usage restrictions.
|
||||
@ -17,6 +17,10 @@
|
||||
// MACROS/CONSTANTS
|
||||
//**************************************************************************
|
||||
|
||||
#define WD1772_TAG "ic3"
|
||||
#define TTL74273_TAG "ic10"
|
||||
#define CENTRONICS_TAG "j2"
|
||||
|
||||
|
||||
|
||||
//**************************************************************************
|
||||
@ -32,7 +36,10 @@ const device_type SANDY_SUPERQBOARD = &device_creator<sandy_superqboard_t>;
|
||||
|
||||
ROM_START( sandy_superqboard )
|
||||
ROM_REGION( 0x8000, "rom", 0 )
|
||||
ROM_LOAD( "sandy_disk_controller_v1.18y_1984.rom", 0x0000, 0x8000, CRC(d02425be) SHA1(e730576e3e0c6a1acad042c09e15fc62a32d8fbd) )
|
||||
ROM_LOAD( "sandy_disk_controller_v1.18y_1984.ic2", 0x0000, 0x8000, CRC(d02425be) SHA1(e730576e3e0c6a1acad042c09e15fc62a32d8fbd) )
|
||||
|
||||
ROM_REGION( 0x100, "plds", 0 )
|
||||
ROM_LOAD( "gal16v8.ic5", 0x000, 0x000, NO_DUMP )
|
||||
ROM_END
|
||||
|
||||
|
||||
@ -46,11 +53,38 @@ const rom_entry *sandy_superqboard_t::device_rom_region() const
|
||||
}
|
||||
|
||||
|
||||
//-------------------------------------------------
|
||||
// SLOT_INTERFACE( sandy_superqboard_floppies )
|
||||
//-------------------------------------------------
|
||||
|
||||
static SLOT_INTERFACE_START( sandy_superqboard_floppies )
|
||||
SLOT_INTERFACE( "35dd", FLOPPY_35_DD )
|
||||
SLOT_INTERFACE( "35hd", FLOPPY_35_HD )
|
||||
SLOT_INTERFACE_END
|
||||
|
||||
|
||||
//-------------------------------------------------
|
||||
// centronics
|
||||
//-------------------------------------------------
|
||||
|
||||
WRITE_LINE_MEMBER( sandy_superqboard_t::busy_w )
|
||||
{
|
||||
m_busy = state;
|
||||
}
|
||||
|
||||
|
||||
//-------------------------------------------------
|
||||
// MACHINE_CONFIG_FRAGMENT( sandy_superqboard )
|
||||
//-------------------------------------------------
|
||||
|
||||
static MACHINE_CONFIG_FRAGMENT( sandy_superqboard )
|
||||
MCFG_DEVICE_ADD(WD1772_TAG, WD1772x, XTAL_16MHz/2)
|
||||
MCFG_FLOPPY_DRIVE_ADD(WD1772_TAG":0", sandy_superqboard_floppies, "35dd", floppy_image_device::default_floppy_formats)
|
||||
MCFG_FLOPPY_DRIVE_ADD(WD1772_TAG":1", sandy_superqboard_floppies, NULL, floppy_image_device::default_floppy_formats)
|
||||
|
||||
MCFG_CENTRONICS_ADD(CENTRONICS_TAG, centronics_printers, "printer")
|
||||
MCFG_CENTRONICS_BUSY_HANDLER(WRITELINE(sandy_superqboard_t, busy_w))
|
||||
MCFG_CENTRONICS_OUTPUT_LATCH_ADD(TTL74273_TAG, CENTRONICS_TAG)
|
||||
MACHINE_CONFIG_END
|
||||
|
||||
|
||||
@ -77,7 +111,16 @@ machine_config_constructor sandy_superqboard_t::device_mconfig_additions() const
|
||||
sandy_superqboard_t::sandy_superqboard_t(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock) :
|
||||
device_t(mconfig, SANDY_SUPERQBOARD, "SANDY_SUPERQBOARD", tag, owner, clock, "sandy_superqboard", __FILE__),
|
||||
device_ql_expansion_card_interface(mconfig, *this),
|
||||
m_rom(*this, "rom")
|
||||
m_fdc(*this, WD1772_TAG),
|
||||
m_floppy0(*this, WD1772_TAG":0"),
|
||||
m_floppy1(*this, WD1772_TAG":1"),
|
||||
m_centronics(*this, CENTRONICS_TAG),
|
||||
m_latch(*this, TTL74273_TAG),
|
||||
m_rom(*this, "rom"),
|
||||
m_ram(*this, "ram"),
|
||||
m_busy(1),
|
||||
m_int2(0),
|
||||
m_int3(0)
|
||||
{
|
||||
}
|
||||
|
||||
@ -97,4 +140,117 @@ void sandy_superqboard_t::device_start()
|
||||
|
||||
void sandy_superqboard_t::device_reset()
|
||||
{
|
||||
m_fdc->reset();
|
||||
m_latch->write(0);
|
||||
|
||||
m_int2 = 0;
|
||||
m_int3 = 0;
|
||||
}
|
||||
|
||||
|
||||
//-------------------------------------------------
|
||||
// read -
|
||||
//-------------------------------------------------
|
||||
|
||||
UINT8 sandy_superqboard_t::read(address_space &space, offs_t offset, UINT8 data)
|
||||
{
|
||||
switch ((offset >> 2) & 0x03)
|
||||
{
|
||||
case 0:
|
||||
data = m_fdc->read(space, offset & 0x03);
|
||||
break;
|
||||
|
||||
case 3:
|
||||
/*
|
||||
|
||||
bit description
|
||||
|
||||
0 BUSY
|
||||
1 mouse pin 8
|
||||
2 mouse pin 1
|
||||
3 mouse pin 2
|
||||
4 mouse pin 4 flip-flop Q
|
||||
5 mouse pin 3 flip-flop Q
|
||||
6 INT3
|
||||
7 INT2
|
||||
|
||||
*/
|
||||
|
||||
data = m_busy;
|
||||
data |= m_int3 << 6;
|
||||
data |= m_int2 << 7;
|
||||
break;
|
||||
}
|
||||
|
||||
return data;
|
||||
}
|
||||
|
||||
|
||||
//-------------------------------------------------
|
||||
// write -
|
||||
//-------------------------------------------------
|
||||
|
||||
void sandy_superqboard_t::write(address_space &space, offs_t offset, UINT8 data)
|
||||
{
|
||||
switch ((offset >> 2) & 0x03)
|
||||
{
|
||||
case 0:
|
||||
m_fdc->write(space, offset & 0x03, data);
|
||||
break;
|
||||
|
||||
case 1:
|
||||
{
|
||||
/*
|
||||
|
||||
bit description
|
||||
|
||||
0 SIDE ONE
|
||||
1 DSEL0
|
||||
2 DSEL1
|
||||
3 M ON0
|
||||
4 /DDEN
|
||||
5 STROBE inverted
|
||||
6 GAL pin 11
|
||||
7 GAL pin 9
|
||||
|
||||
*/
|
||||
|
||||
floppy_image_device *floppy = NULL;
|
||||
|
||||
if (BIT(data, 1))
|
||||
{
|
||||
floppy = m_floppy0->get_device();
|
||||
}
|
||||
else if (BIT(data, 2))
|
||||
{
|
||||
floppy = m_floppy1->get_device();
|
||||
}
|
||||
|
||||
m_fdc->set_floppy(floppy);
|
||||
|
||||
if (floppy)
|
||||
{
|
||||
floppy->ss_w(BIT(data, 0));
|
||||
floppy->mon_w(BIT(data, 3));
|
||||
}
|
||||
|
||||
m_fdc->dden_w(BIT(data, 4));
|
||||
|
||||
m_centronics->write_strobe(!BIT(data, 5));
|
||||
}
|
||||
break;
|
||||
|
||||
case 2:
|
||||
m_latch->write(data);
|
||||
break;
|
||||
|
||||
case 4:
|
||||
m_int2 = 0;
|
||||
m_int3 = 0;
|
||||
break;
|
||||
|
||||
case 5:
|
||||
m_fdc->set_unscaled_clock(XTAL_16MHz >> !BIT(data, 0));
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
@ -2,7 +2,7 @@
|
||||
// copyright-holders:Curt Coder
|
||||
/**********************************************************************
|
||||
|
||||
Sandy SuperQBoard emulation
|
||||
Sandy SuperQBoard (with HD upgrade) emulation
|
||||
|
||||
Copyright MESS Team.
|
||||
Visit http://mamedev.org for licensing and usage restrictions.
|
||||
@ -37,15 +37,29 @@ public:
|
||||
virtual const rom_entry *device_rom_region() const;
|
||||
virtual machine_config_constructor device_mconfig_additions() const;
|
||||
|
||||
WRITE_LINE_MEMBER( busy_w );
|
||||
|
||||
protected:
|
||||
// device-level overrides
|
||||
virtual void device_start();
|
||||
virtual void device_reset();
|
||||
|
||||
// device_ql_expansion_card_interface overrides
|
||||
virtual UINT8 read(address_space &space, offs_t offset, UINT8 data);
|
||||
virtual void write(address_space &space, offs_t offset, UINT8 data);
|
||||
|
||||
private:
|
||||
required_device<wd1772_t> m_fdc;
|
||||
required_device<floppy_connector> m_floppy0;
|
||||
required_device<floppy_connector> m_floppy1;
|
||||
required_device<centronics_device> m_centronics;
|
||||
required_device<output_latch_device> m_latch;
|
||||
required_memory_region m_rom;
|
||||
optional_shared_ptr<UINT8> m_ram;
|
||||
|
||||
int m_busy;
|
||||
int m_int2;
|
||||
int m_int3;
|
||||
};
|
||||
|
||||
|
||||
|
@ -17,6 +17,8 @@
|
||||
// MACROS/CONSTANTS
|
||||
//**************************************************************************
|
||||
|
||||
#define WD1772_TAG "wd1772"
|
||||
|
||||
|
||||
|
||||
//**************************************************************************
|
||||
@ -33,6 +35,10 @@ const device_type QL_TRUMP_CARD = &device_creator<ql_trump_card_t>;
|
||||
ROM_START( ql_trump_card )
|
||||
ROM_REGION( 0x8000, "rom", 0 )
|
||||
ROM_LOAD( "trumpcard-125.rom", 0x0000, 0x8000, CRC(938eaa46) SHA1(9b3458cf3a279ed86ba395dc45c8f26939d6c44d) )
|
||||
|
||||
ROM_REGION( 0x100, "plds", 0 )
|
||||
ROM_LOAD( "1u4", 0x000, 0x000, NO_DUMP )
|
||||
ROM_LOAD( "2u4", 0x000, 0x000, NO_DUMP )
|
||||
ROM_END
|
||||
|
||||
|
||||
@ -46,11 +52,25 @@ const rom_entry *ql_trump_card_t::device_rom_region() const
|
||||
}
|
||||
|
||||
|
||||
//-------------------------------------------------
|
||||
// SLOT_INTERFACE( ql_trump_card_floppies )
|
||||
//-------------------------------------------------
|
||||
|
||||
static SLOT_INTERFACE_START( ql_trump_card_floppies )
|
||||
SLOT_INTERFACE( "35dd", FLOPPY_35_DD )
|
||||
SLOT_INTERFACE_END
|
||||
|
||||
|
||||
//-------------------------------------------------
|
||||
// MACHINE_CONFIG_FRAGMENT( ql_trump_card )
|
||||
//-------------------------------------------------
|
||||
|
||||
static MACHINE_CONFIG_FRAGMENT( ql_trump_card )
|
||||
MCFG_DEVICE_ADD(WD1772_TAG, WD1772x, 8000000)
|
||||
//MCFG_WD_FDC_INTRQ_CALLBACK(WRITELINE(ql_trump_card_t, fdc_intrq_w))
|
||||
//MCFG_WD_FDC_DRQ_CALLBACK(WRITELINE(ql_trump_card_t, fdc_drq_w))
|
||||
MCFG_FLOPPY_DRIVE_ADD(WD1772_TAG":0", ql_trump_card_floppies, "35dd", floppy_image_device::default_floppy_formats)
|
||||
MCFG_FLOPPY_DRIVE_ADD(WD1772_TAG":1", ql_trump_card_floppies, NULL, floppy_image_device::default_floppy_formats)
|
||||
MACHINE_CONFIG_END
|
||||
|
||||
|
||||
@ -77,7 +97,8 @@ machine_config_constructor ql_trump_card_t::device_mconfig_additions() const
|
||||
ql_trump_card_t::ql_trump_card_t(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock) :
|
||||
device_t(mconfig, QL_TRUMP_CARD, "QL Trump Card", tag, owner, clock, "ql_trump_card", __FILE__),
|
||||
device_ql_expansion_card_interface(mconfig, *this),
|
||||
m_rom(*this, "rom")
|
||||
m_rom(*this, "rom"),
|
||||
m_ram(*this, "ram")
|
||||
{
|
||||
}
|
||||
|
||||
|
@ -15,6 +15,7 @@
|
||||
#define __QL_TRUMP_CARD__
|
||||
|
||||
#include "exp.h"
|
||||
#include "machine/wd_fdc.h"
|
||||
|
||||
|
||||
|
||||
@ -44,6 +45,7 @@ protected:
|
||||
|
||||
private:
|
||||
required_memory_region m_rom;
|
||||
optional_shared_ptr<UINT8> m_ram;
|
||||
};
|
||||
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user