summaryrefslogtreecommitdiffstatshomepage
path: root/src/mess/drivers/atom.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/mess/drivers/atom.c')
-rw-r--r--src/mess/drivers/atom.c43
1 files changed, 16 insertions, 27 deletions
diff --git a/src/mess/drivers/atom.c b/src/mess/drivers/atom.c
index 88d142d15c4..9403c7c62e5 100644
--- a/src/mess/drivers/atom.c
+++ b/src/mess/drivers/atom.c
@@ -247,7 +247,7 @@ READ8_MEMBER( atomeb_state::dos_r )
static ADDRESS_MAP_START( atom_mem, AS_PROGRAM, 8, atom_state )
AM_RANGE(0x0000, 0x09ff) AM_RAM
- AM_RANGE(0x0a00, 0x0a03) AM_MIRROR(0x1f8) AM_DEVREADWRITE(I8271_TAG, i8271_device, read, write)
+ AM_RANGE(0x0a00, 0x0a03) AM_MIRROR(0x1f8) AM_DEVICE(I8271_TAG, i8271_device, map)
AM_RANGE(0x0a04, 0x0a04) AM_MIRROR(0x1f8) AM_DEVREADWRITE(I8271_TAG, i8271_device, data_r, data_w)
AM_RANGE(0x0a05, 0x7fff) AM_RAM
AM_RANGE(0x8000, 0x97ff) AM_RAM AM_SHARE("video_ram")
@@ -583,30 +583,11 @@ WRITE_LINE_MEMBER( atom_state::atom_8271_interrupt_callback )
m_previous_i8271_int_state = state;
}
-/*-------------------------------------------------
- LEGACY_FLOPPY_OPTIONS( atom )
--------------------------------------------------*/
-
-static LEGACY_FLOPPY_OPTIONS_START( atom )
- LEGACY_FLOPPY_OPTION(atom, "dsk,40t", "Atom disk image", basicdsk_identify_default, basicdsk_construct_default, NULL,
- HEADS([1])
- TRACKS([40])
- SECTORS([10])
- SECTOR_LENGTH([256])
- FIRST_SECTOR_ID([0]))
-LEGACY_FLOPPY_OPTIONS_END
-
-/*-------------------------------------------------
- floppy_interface atom_floppy_interface
--------------------------------------------------*/
-
-static const floppy_interface atom_floppy_interface =
+WRITE_LINE_MEMBER( atom_state::motor_w )
{
- FLOPPY_STANDARD_5_25_SSDD_40,
- LEGACY_FLOPPY_OPTIONS_NAME(atom),
- "floppy_5_25"
-};
-
+ m_fdc->subdevice<floppy_connector>("0")->get_device()->mon_w(!state);
+ m_fdc->subdevice<floppy_connector>("1")->get_device()->mon_w(!state);
+}
TIMER_DEVICE_CALLBACK_MEMBER(atom_state::cassette_output_tick)
{
@@ -687,6 +668,13 @@ int atom_state::load_cart(device_image_interface &image, generic_slot_device *sl
return IMAGE_INIT_PASS;
}
+static SLOT_INTERFACE_START(atom_floppies)
+ SLOT_INTERFACE("525sssd", FLOPPY_525_SSSD)
+SLOT_INTERFACE_END
+
+FLOPPY_FORMATS_MEMBER(atom_state::floppy_formats)
+ FLOPPY_ATOM_FORMAT
+FLOPPY_FORMATS_END
/*-------------------------------------------------
MACHINE_DRIVER( atom )
@@ -722,10 +710,11 @@ static MACHINE_CONFIG_START( atom, atom_state )
MCFG_I8255_IN_PORTC_CB(READ8(atom_state, ppi_pc_r))
MCFG_I8255_OUT_PORTC_CB(WRITE8(atom_state, ppi_pc_w))
- MCFG_DEVICE_ADD(I8271_TAG, I8271, 0)
+ MCFG_DEVICE_ADD(I8271_TAG, I8271 , 0)
MCFG_I8271_IRQ_CALLBACK(WRITELINE(atom_state, atom_8271_interrupt_callback))
- MCFG_I8271_FLOPPIES(FLOPPY_0, FLOPPY_1)
- MCFG_LEGACY_FLOPPY_2_DRIVES_ADD(atom_floppy_interface)
+ MCFG_I8271_HDL_CALLBACK(WRITELINE(atom_state, motor_w))
+ MCFG_FLOPPY_DRIVE_ADD(I8271_TAG ":0", atom_floppies, "525sssd", atom_state::floppy_formats)
+ MCFG_FLOPPY_DRIVE_ADD(I8271_TAG ":1", atom_floppies, "525sssd", atom_state::floppy_formats)
MCFG_CENTRONICS_ADD(CENTRONICS_TAG, centronics_devices, "printer")
MCFG_CENTRONICS_ACK_HANDLER(DEVWRITELINE(R6522_TAG, via6522_device, write_ca1))