mirror of
https://github.com/holub/mame
synced 2025-10-09 09:44:40 +03:00
(mess) hdc: xenix 8086 hates this so isolate it (nw)
This commit is contained in:
parent
88d9135bac
commit
1e49bea0a5
@ -149,6 +149,7 @@ INPUT_PORTS_END
|
|||||||
//**************************************************************************
|
//**************************************************************************
|
||||||
|
|
||||||
const device_type ISA8_HDC = &device_creator<isa8_hdc_device>;
|
const device_type ISA8_HDC = &device_creator<isa8_hdc_device>;
|
||||||
|
const device_type ISA8_HDC_EC1841 = &device_creator<isa8_hdc_ec1841_device>;
|
||||||
|
|
||||||
//-------------------------------------------------
|
//-------------------------------------------------
|
||||||
// machine_config_additions - device-specific
|
// machine_config_additions - device-specific
|
||||||
@ -190,6 +191,19 @@ isa8_hdc_device::isa8_hdc_device(const machine_config &mconfig, const char *tag,
|
|||||||
device_t(mconfig, ISA8_HDC, "Fixed Disk Controller Card", tag, owner, clock, "hdc", __FILE__),
|
device_t(mconfig, ISA8_HDC, "Fixed Disk Controller Card", tag, owner, clock, "hdc", __FILE__),
|
||||||
device_isa8_card_interface(mconfig, *this)
|
device_isa8_card_interface(mconfig, *this)
|
||||||
{
|
{
|
||||||
|
m_type = STANDARD;
|
||||||
|
}
|
||||||
|
|
||||||
|
isa8_hdc_device::isa8_hdc_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, UINT32 clock, const char *shortname, const char *source) :
|
||||||
|
device_t(mconfig, type, name, tag, owner, clock, shortname, source),
|
||||||
|
device_isa8_card_interface(mconfig, *this)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
isa8_hdc_ec1841_device::isa8_hdc_ec1841_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock) :
|
||||||
|
isa8_hdc_device( mconfig, ISA8_HDC_EC1841, "EC1841 HDC", tag, owner, clock, "hdc_ec1841", __FILE__)
|
||||||
|
{
|
||||||
|
m_type = EC1841;
|
||||||
}
|
}
|
||||||
|
|
||||||
//-------------------------------------------------
|
//-------------------------------------------------
|
||||||
@ -750,7 +764,7 @@ void isa8_hdc_device::pc_hdc_data_w(int data)
|
|||||||
|
|
||||||
*buffer_ptr++ = data;
|
*buffer_ptr++ = data;
|
||||||
// XXX ec1841 wants this
|
// XXX ec1841 wants this
|
||||||
if (buffer[0] == CMD_SETPARAM && data_cnt == 9) {
|
if (buffer[0] == CMD_SETPARAM && data_cnt == 9 && (m_type == EC1841)) {
|
||||||
status &= ~STA_READY;
|
status &= ~STA_READY;
|
||||||
} else {
|
} else {
|
||||||
status |= STA_READY;
|
status |= STA_READY;
|
||||||
|
@ -25,6 +25,7 @@ class isa8_hdc_device :
|
|||||||
public:
|
public:
|
||||||
// construction/destruction
|
// construction/destruction
|
||||||
isa8_hdc_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
|
isa8_hdc_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
|
||||||
|
isa8_hdc_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, UINT32 clock, const char *shortname, const char *source);
|
||||||
|
|
||||||
// optional information overrides
|
// optional information overrides
|
||||||
virtual machine_config_constructor device_mconfig_additions() const;
|
virtual machine_config_constructor device_mconfig_additions() const;
|
||||||
@ -89,6 +90,12 @@ protected:
|
|||||||
void get_drive();
|
void get_drive();
|
||||||
void get_chsn();
|
void get_chsn();
|
||||||
int test_ready();
|
int test_ready();
|
||||||
|
|
||||||
|
enum {
|
||||||
|
STANDARD,
|
||||||
|
EC1841
|
||||||
|
};
|
||||||
|
int m_type;
|
||||||
public:
|
public:
|
||||||
void hdc_command();
|
void hdc_command();
|
||||||
void pc_hdc_data_w(int data);
|
void pc_hdc_data_w(int data);
|
||||||
@ -101,7 +108,14 @@ public:
|
|||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
class isa8_hdc_ec1841_device : public isa8_hdc_device
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
isa8_hdc_ec1841_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
|
||||||
|
};
|
||||||
|
|
||||||
// device type definition
|
// device type definition
|
||||||
extern const device_type ISA8_HDC;
|
extern const device_type ISA8_HDC;
|
||||||
|
extern const device_type ISA8_HDC_EC1841;
|
||||||
|
|
||||||
#endif /* ISA_HDC_H */
|
#endif /* ISA_HDC_H */
|
||||||
|
@ -48,7 +48,7 @@ SLOT_INTERFACE_START( ec184x_isa8_cards )
|
|||||||
SLOT_INTERFACE("ec1841.0004", ISA8_EC1841_0004) // BSC-like serial ports + parallel port
|
SLOT_INTERFACE("ec1841.0004", ISA8_EC1841_0004) // BSC-like serial ports + parallel port
|
||||||
*/
|
*/
|
||||||
SLOT_INTERFACE("mda", ISA8_MDA)
|
SLOT_INTERFACE("mda", ISA8_MDA)
|
||||||
SLOT_INTERFACE("hdc", ISA8_HDC)
|
SLOT_INTERFACE("hdc", ISA8_HDC_EC1841)
|
||||||
SLOT_INTERFACE("pccom", ISA8_COM)
|
SLOT_INTERFACE("pccom", ISA8_COM)
|
||||||
SLOT_INTERFACE("pclpt", ISA8_LPT)
|
SLOT_INTERFACE("pclpt", ISA8_LPT)
|
||||||
SLOT_INTERFACE("xtide", ISA8_XTIDE)
|
SLOT_INTERFACE("xtide", ISA8_XTIDE)
|
||||||
|
Loading…
Reference in New Issue
Block a user