(MESS) abc800: The hard disk units have only one floppy drive. (nw)

This commit is contained in:
Curt Coder 2013-11-13 22:42:10 +00:00
parent b5c017cc5a
commit 01849c3eb6
4 changed files with 95 additions and 26 deletions

View File

@ -77,8 +77,7 @@ machine_config_constructor abc894_device::device_mconfig_additions() const
//-------------------------------------------------
static MACHINE_CONFIG_FRAGMENT( abc850 )
MCFG_ABCBUS_SLOT_ADD("io1", abcbus_cards, "fast")
MCFG_DEVICE_CARD_DEVICE_INPUT_DEFAULTS("fast", abc850_fast)
MCFG_ABCBUS_SLOT_ADD("io1", abcbus_cards, "abc850fdd")
MCFG_ABCBUS_SLOT_ADD("io2", abcbus_cards, "xebec")
MCFG_DEVICE_CARD_DEFAULT_BIOS("xebec", "ro202")
MCFG_ABCBUS_SLOT_ADD("io3", abcbus_cards, NULL)
@ -105,8 +104,7 @@ machine_config_constructor abc850_device::device_mconfig_additions() const
//-------------------------------------------------
static MACHINE_CONFIG_FRAGMENT( abc852 )
MCFG_ABCBUS_SLOT_ADD("io1", abcbus_cards, "fast")
MCFG_DEVICE_CARD_DEVICE_INPUT_DEFAULTS("fast", abc850_fast)
MCFG_ABCBUS_SLOT_ADD("io1", abcbus_cards, "abc850fdd")
MCFG_ABCBUS_SLOT_ADD("io2", abcbus_cards, "xebec")
MCFG_DEVICE_CARD_DEFAULT_BIOS("xebec", "basf6185")
MCFG_ABCBUS_SLOT_ADD("io3", abcbus_cards, NULL)
@ -133,8 +131,7 @@ machine_config_constructor abc852_device::device_mconfig_additions() const
//-------------------------------------------------
static MACHINE_CONFIG_FRAGMENT( abc856 )
MCFG_ABCBUS_SLOT_ADD("io1", abcbus_cards, "fast")
MCFG_DEVICE_CARD_DEVICE_INPUT_DEFAULTS("fast", abc850_fast)
MCFG_ABCBUS_SLOT_ADD("io1", abcbus_cards, "abc850fdd")
MCFG_ABCBUS_SLOT_ADD("io2", abcbus_cards, "xebec")
MCFG_DEVICE_CARD_DEFAULT_BIOS("xebec", "micr1325")
MCFG_ABCBUS_SLOT_ADD("io3", abcbus_cards, NULL)

View File

@ -89,6 +89,7 @@ SLOT_INTERFACE_START( abcbus_cards )
SLOT_INTERFACE("abc834", ABC834)
SLOT_INTERFACE("abc838", ABC838)
SLOT_INTERFACE("abc850", ABC850)
SLOT_INTERFACE_INTERNAL("abc850fdd", ABC850_FLOPPY)
SLOT_INTERFACE("abc852", ABC852)
SLOT_INTERFACE("abc856", ABC856)
SLOT_INTERFACE("abc890", ABC890)

View File

@ -101,6 +101,7 @@ const device_type ABC830 = &device_creator<abc830_device>;
const device_type ABC832 = &device_creator<abc832_device>;
const device_type ABC834 = &device_creator<abc834_device>;
const device_type ABC838 = &device_creator<abc838_device>;
const device_type ABC850_FLOPPY = &device_creator<abc850_floppy_device>;
//-------------------------------------------------
@ -316,6 +317,16 @@ static MACHINE_CONFIG_DERIVED( abc838, luxor_55_21046 )
MACHINE_CONFIG_END
//-------------------------------------------------
// MACHINE_CONFIG( abc850 )
//-------------------------------------------------
static MACHINE_CONFIG_DERIVED( abc850, luxor_55_21046 )
MCFG_DEVICE_MODIFY(SAB1793_TAG":1")
MCFG_DEVICE_SLOT_INTERFACE(abc_floppies, NULL, false)
MACHINE_CONFIG_END
//-------------------------------------------------
// machine_config_additions - device-specific
// machine configurations
@ -331,6 +342,11 @@ machine_config_constructor abc838_device::device_mconfig_additions() const
return MACHINE_CONFIG_NAME( abc838 );
}
machine_config_constructor abc850_floppy_device::device_mconfig_additions() const
{
return MACHINE_CONFIG_NAME( abc850 );
}
//-------------------------------------------------
// INPUT_PORTS( luxor_55_21046 )
@ -598,6 +614,56 @@ INPUT_PORTS_START( abc838 )
INPUT_PORTS_END
//-------------------------------------------------
// INPUT_PORTS( abc850 )
//-------------------------------------------------
INPUT_PORTS_START( abc850 )
PORT_START("SW1")
PORT_DIPNAME( 0x01, 0x01, "Drive 0 Sides" ) PORT_DIPLOCATION("SW1:1")
PORT_DIPSETTING( 0x00, DEF_STR( Single ) )
PORT_DIPSETTING( 0x01, "Double" )
PORT_DIPNAME( 0x02, 0x02, "Drive 1 Sides" ) PORT_DIPLOCATION("SW1:2")
PORT_DIPSETTING( 0x00, DEF_STR( Single ) )
PORT_DIPSETTING( 0x02, "Double" )
PORT_DIPNAME( 0x04, 0x04, "Drive 0 Tracks" ) PORT_DIPLOCATION("SW1:3")
PORT_DIPSETTING( 0x00, "40" )
PORT_DIPSETTING( 0x04, "80" )
PORT_DIPNAME( 0x08, 0x08, "Drive 1 Tracks" ) PORT_DIPLOCATION("SW1:4")
PORT_DIPSETTING( 0x00, "40" )
PORT_DIPSETTING( 0x08, "80" )
PORT_START("SW2")
PORT_DIPNAME( 0x0f, 0x02, "Drive Type" ) PORT_DIPLOCATION("SW2:1,2,3,4")
PORT_DIPSETTING( 0x01, "TEAC FD55F" )
PORT_DIPSETTING( 0x02, "BASF 6138" )
PORT_START("SW3")
PORT_DIPNAME( 0x7f, 0x2c, "Card Address" ) PORT_DIPLOCATION("SW3:1,2,3,4,5,6,7")
PORT_DIPSETTING( 0x2c, "44" )
PORT_START("S1") // also S3,S5
PORT_DIPNAME( 0x01, 0x01, "Interface Type" )
PORT_DIPSETTING( 0x00, "ABC 1600" )
PORT_DIPSETTING( 0x01, "ABC 80/800/802/806" )
PORT_START("S6")
PORT_DIPNAME( 0x01, 0x01, "RAM Size" )
PORT_DIPSETTING( 0x00, "2 KB" )
PORT_DIPSETTING( 0x01, "8 KB" )
PORT_START("S8")
PORT_DIPNAME( 0x01, 0x01, "Drive Type" )
PORT_DIPSETTING( 0x00, "8\"" )
PORT_DIPSETTING( 0x01, "5.25\"" )
PORT_START("S9")
PORT_DIPNAME( 0x01, 0x01, "RDY Pin" )
PORT_DIPSETTING( 0x00, "P2-6 (8\")" )
PORT_DIPSETTING( 0x01, "P2-34 (5.25\")" )
INPUT_PORTS_END
//-------------------------------------------------
// input_ports - device-specific input ports
//-------------------------------------------------
@ -627,6 +693,11 @@ ioport_constructor abc838_device::device_input_ports() const
return INPUT_PORTS_NAME( abc838 );
}
ioport_constructor abc850_floppy_device::device_input_ports() const
{
return INPUT_PORTS_NAME( abc850 );
}
//**************************************************************************
@ -697,6 +768,11 @@ abc838_device::abc838_device(const machine_config &mconfig, const char *tag, dev
{
}
abc850_floppy_device::abc850_floppy_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock)
: luxor_55_21046_device(mconfig, ABC850_FLOPPY, "ABC 850 floppy", tag, owner, clock, "lux21046", __FILE__)
{
}
//-------------------------------------------------
// device_start - device-specific startup
@ -1057,19 +1133,3 @@ READ8_MEMBER( luxor_55_21046_device::_9a_r )
return data ^ 0xff;
}
//**************************************************************************
// LUXOR 55 21046 DEVICE INPUT DEFAULTS
//**************************************************************************
//-------------------------------------------------
// DEVICE_INPUT_DEFAULTS( abc850_fast )
//-------------------------------------------------
DEVICE_INPUT_DEFAULTS_START( abc850_fast )
DEVICE_INPUT_DEFAULTS("SW1", 0x0f, 0x0f)
DEVICE_INPUT_DEFAULTS("SW2", 0x0f, DRIVE_BASF_6138)
DEVICE_INPUT_DEFAULTS("SW3", 0x7f, ADDRESS_ABC832)
DEVICE_INPUT_DEFAULTS_END

View File

@ -171,16 +171,27 @@ public:
};
// ======================> abc850_floppy_device
class abc850_floppy_device : public luxor_55_21046_device
{
public:
// construction/destruction
abc850_floppy_device(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;
};
// device type definition
extern const device_type LUXOR_55_21046;
extern const device_type ABC830;
extern const device_type ABC832;
extern const device_type ABC834;
extern const device_type ABC838;
// default input ports
extern const input_device_default DEVICE_INPUT_DEFAULTS_NAME( abc850_fast )[];
extern const device_type ABC850_FLOPPY;