mirror of
https://github.com/holub/mame
synced 2025-04-19 23:12:11 +03:00
(MESS) pc/xt/at: added basic implementation of the Programmers Development System ISA card. The PDS editor software requires the hardware present to start up. Some core work will need to be done to get any communications working, however. [Barry Rodewald]
This commit is contained in:
parent
73debc51f4
commit
6ecea67cfa
2
.gitattributes
vendored
2
.gitattributes
vendored
@ -7989,6 +7989,8 @@ src/mess/machine/isa_ide.c svneol=native#text/plain
|
||||
src/mess/machine/isa_ide.h svneol=native#text/plain
|
||||
src/mess/machine/isa_mpu401.c svneol=native#text/plain
|
||||
src/mess/machine/isa_mpu401.h svneol=native#text/plain
|
||||
src/mess/machine/isa_pds.c svneol=native#text/plain
|
||||
src/mess/machine/isa_pds.h svneol=native#text/plain
|
||||
src/mess/machine/isa_sblaster.c svneol=native#text/plain
|
||||
src/mess/machine/isa_sblaster.h svneol=native#text/plain
|
||||
src/mess/machine/isa_ssi2001.c svneol=native#text/plain
|
||||
|
@ -38,6 +38,7 @@ SLOT_INTERFACE_START( pc_isa8_cards )
|
||||
SLOT_INTERFACE("ibm_mfc", ISA8_IBM_MFC)
|
||||
SLOT_INTERFACE("wd1002a_wx1", ISA8_WD1002A_WX1)
|
||||
SLOT_INTERFACE("dectalk", ISA8_DECTALK)
|
||||
SLOT_INTERFACE("pds", ISA8_PDS)
|
||||
SLOT_INTERFACE_END
|
||||
|
||||
SLOT_INTERFACE_START( pc_isa16_cards )
|
||||
@ -67,6 +68,7 @@ SLOT_INTERFACE_START( pc_isa16_cards )
|
||||
SLOT_INTERFACE("ibm_mfc", ISA8_IBM_MFC)
|
||||
SLOT_INTERFACE("fdcsmc", ISA8_FDC_SMC)
|
||||
SLOT_INTERFACE("dectalk", ISA8_DECTALK)
|
||||
SLOT_INTERFACE("pds", ISA8_PDS)
|
||||
// 16-bit
|
||||
SLOT_INTERFACE("ide", ISA16_IDE)
|
||||
SLOT_INTERFACE("ne2000", NE2000)
|
||||
|
@ -52,6 +52,7 @@
|
||||
// communication ports
|
||||
#include "machine/pc_lpt.h"
|
||||
#include "machine/isa_com.h"
|
||||
#include "machine/isa_pds.h"
|
||||
|
||||
// other
|
||||
#include "machine/isa_finalchs.h"
|
||||
|
76
src/mess/machine/isa_pds.c
Normal file
76
src/mess/machine/isa_pds.c
Normal file
@ -0,0 +1,76 @@
|
||||
/*
|
||||
* isa_pds.c - Programmers Development System 8-bit ISA card
|
||||
*
|
||||
* Used to connect up to two 8-bit systems to the PC, allowing the download of assembled code directly to the
|
||||
* target 8-bit system (Spectrum, CPC, MSX, C64 and maybe the BBC?)
|
||||
*
|
||||
* The editor software require the ISA card to be present.
|
||||
*
|
||||
* The PC end hardware consists of an 8-bit ISA card containing an 8255 PPI hooked up to the two connectors on the
|
||||
* back of the card.
|
||||
*
|
||||
* The 8-bit end hardware consists of an expansion device containing a Z80PIO.
|
||||
*
|
||||
* Created on: 31/01/2014
|
||||
*/
|
||||
|
||||
#include "isa_pds.h"
|
||||
|
||||
const device_type ISA8_PDS = &device_creator<isa8_pds_device>;
|
||||
|
||||
isa8_pds_device::isa8_pds_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock)
|
||||
: device_t(mconfig, ISA8_PDS, "Programmers Development System", tag, owner, clock, "isa_pds", __FILE__),
|
||||
device_isa8_card_interface( mconfig, *this ),
|
||||
m_ppi(*this,"pds_ppi")
|
||||
{
|
||||
}
|
||||
|
||||
|
||||
READ8_MEMBER(isa8_pds_device::ppi_r)
|
||||
{
|
||||
if(!(offset & 0x01))
|
||||
return m_ppi->read(space,offset/2);
|
||||
return 0xff;
|
||||
}
|
||||
|
||||
WRITE8_MEMBER(isa8_pds_device::ppi_w)
|
||||
{
|
||||
if(!(offset & 0x01))
|
||||
m_ppi->write(space,offset/2,data);
|
||||
}
|
||||
|
||||
void isa8_pds_device::device_start()
|
||||
{
|
||||
set_isa_device();
|
||||
m_isa->install_device(0x0300, 0x0307, 0, 0, read8_delegate(FUNC(isa8_pds_device::ppi_r),this), write8_delegate(FUNC(isa8_pds_device::ppi_w),this) );
|
||||
}
|
||||
|
||||
void isa8_pds_device::device_reset()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
void isa8_pds_device::device_stop()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
I8255_INTERFACE(pds_ppi_intf)
|
||||
{
|
||||
DEVCB_NULL, //m_in_pa_cb;
|
||||
DEVCB_NULL, //m_out_pa_cb;
|
||||
DEVCB_NULL, //m_in_pb_cb;
|
||||
DEVCB_NULL, //m_out_pb_cb;
|
||||
DEVCB_NULL, //m_in_pc_cb;
|
||||
DEVCB_NULL, //m_out_pc_cb;
|
||||
};
|
||||
|
||||
static MACHINE_CONFIG_FRAGMENT( pds_config )
|
||||
MCFG_I8255_ADD("pds_ppi", pds_ppi_intf)
|
||||
MACHINE_CONFIG_END
|
||||
|
||||
machine_config_constructor isa8_pds_device::device_mconfig_additions() const
|
||||
{
|
||||
return MACHINE_CONFIG_NAME( pds_config );
|
||||
}
|
||||
|
38
src/mess/machine/isa_pds.h
Normal file
38
src/mess/machine/isa_pds.h
Normal file
@ -0,0 +1,38 @@
|
||||
/*
|
||||
* isa_pds.h
|
||||
*
|
||||
* Created on: 31/01/2014
|
||||
*/
|
||||
|
||||
#ifndef ISA_PDS_H_
|
||||
#define ISA_PDS_H_
|
||||
|
||||
#include "emu.h"
|
||||
#include "machine/isa.h"
|
||||
#include "machine/i8255.h"
|
||||
|
||||
class isa8_pds_device :
|
||||
public device_t,
|
||||
public device_isa8_card_interface
|
||||
{
|
||||
public:
|
||||
isa8_pds_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
|
||||
|
||||
DECLARE_READ8_MEMBER(ppi_r);
|
||||
DECLARE_WRITE8_MEMBER(ppi_w);
|
||||
|
||||
// optional information overrides
|
||||
virtual machine_config_constructor device_mconfig_additions() const;
|
||||
|
||||
required_device<i8255_device> m_ppi;
|
||||
protected:
|
||||
// device-level overrides
|
||||
virtual void device_start();
|
||||
virtual void device_reset();
|
||||
virtual void device_stop();
|
||||
|
||||
};
|
||||
|
||||
extern const device_type ISA8_PDS;
|
||||
|
||||
#endif /* ISA_PDS_H_ */
|
@ -849,6 +849,7 @@ $(MESSOBJ)/isa.a: \
|
||||
$(MESS_MACHINE)/isa_aha1542.o \
|
||||
$(MESS_MACHINE)/isa_wd1002a_wx1.o\
|
||||
$(MESS_MACHINE)/isa_dectalk.o \
|
||||
$(MESS_MACHINE)/isa_pds.o \
|
||||
$(MESS_VIDEO)/isa_cga.o \
|
||||
$(MESS_VIDEO)/isa_svga_cirrus.o \
|
||||
$(MESS_VIDEO)/isa_ega.o \
|
||||
|
Loading…
Reference in New Issue
Block a user