From 01849c3eb6746401202165d58fa2ccdda0b1754c Mon Sep 17 00:00:00 2001 From: Curt Coder Date: Wed, 13 Nov 2013 22:42:10 +0000 Subject: [PATCH] (MESS) abc800: The hard disk units have only one floppy drive. (nw) --- src/emu/bus/abcbus/abc890.c | 9 ++-- src/emu/bus/abcbus/abcbus.c | 1 + src/emu/bus/abcbus/lux21046.c | 92 +++++++++++++++++++++++++++++------ src/emu/bus/abcbus/lux21046.h | 19 ++++++-- 4 files changed, 95 insertions(+), 26 deletions(-) diff --git a/src/emu/bus/abcbus/abc890.c b/src/emu/bus/abcbus/abc890.c index bf4c35e90ed..03ea5e9586a 100644 --- a/src/emu/bus/abcbus/abc890.c +++ b/src/emu/bus/abcbus/abc890.c @@ -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) diff --git a/src/emu/bus/abcbus/abcbus.c b/src/emu/bus/abcbus/abcbus.c index fcb6c86da67..3da4fe60c55 100644 --- a/src/emu/bus/abcbus/abcbus.c +++ b/src/emu/bus/abcbus/abcbus.c @@ -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) diff --git a/src/emu/bus/abcbus/lux21046.c b/src/emu/bus/abcbus/lux21046.c index 02a7976fe3c..bd16271a830 100644 --- a/src/emu/bus/abcbus/lux21046.c +++ b/src/emu/bus/abcbus/lux21046.c @@ -101,6 +101,7 @@ const device_type ABC830 = &device_creator; const device_type ABC832 = &device_creator; const device_type ABC834 = &device_creator; const device_type ABC838 = &device_creator; +const device_type ABC850_FLOPPY = &device_creator; //------------------------------------------------- @@ -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 diff --git a/src/emu/bus/abcbus/lux21046.h b/src/emu/bus/abcbus/lux21046.h index 0602e704442..200eca67f7b 100644 --- a/src/emu/bus/abcbus/lux21046.h +++ b/src/emu/bus/abcbus/lux21046.h @@ -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;