mirror of
https://github.com/holub/mame
synced 2025-04-22 16:31:49 +03:00
apricotf.c: updated to use the new wd17xx
This commit is contained in:
parent
ff25ff5a64
commit
af3f2242cd
@ -122,14 +122,15 @@ WRITE8_MEMBER( f1_state::system_w )
|
||||
break;
|
||||
|
||||
case 1: // drive select
|
||||
wd17xx_set_drive(m_fdc, !BIT(data, 0));
|
||||
m_fdc->set_floppy(BIT(data, 0) ? m_floppy0->get_device() : m_floppy1->get_device());
|
||||
break;
|
||||
|
||||
case 3: // drive head load
|
||||
break;
|
||||
|
||||
case 5: // drive motor on
|
||||
floppy_mon_w(m_floppy0, !BIT(data, 0));
|
||||
m_floppy0->get_device()->mon_w(!BIT(data, 0));
|
||||
m_floppy1->get_device()->mon_w(!BIT(data, 0));
|
||||
break;
|
||||
|
||||
case 7: // video lines (1=200, 0=256)
|
||||
@ -153,6 +154,13 @@ WRITE8_MEMBER( f1_state::system_w )
|
||||
}
|
||||
|
||||
|
||||
void f1_state::machine_start()
|
||||
{
|
||||
m_fdc->setup_intrq_cb(wd2793_t::line_cb(FUNC(f1_state::wd2797_intrq_w), this));
|
||||
m_fdc->setup_drq_cb(wd2793_t::line_cb(FUNC(f1_state::wd2797_drq_w), this));
|
||||
}
|
||||
|
||||
|
||||
|
||||
//**************************************************************************
|
||||
// ADDRESS MAPS
|
||||
@ -182,7 +190,7 @@ static ADDRESS_MAP_START( act_f1_io, AS_IO, 16, f1_state )
|
||||
AM_RANGE(0x0010, 0x0017) AM_DEVREADWRITE8(Z80CTC_TAG, z80ctc_device, read, write, 0x00ff)
|
||||
AM_RANGE(0x0020, 0x0027) AM_DEVREADWRITE8(Z80SIO2_TAG, z80sio2_device, ba_cd_r, ba_cd_w, 0x00ff)
|
||||
// AM_RANGE(0x0030, 0x0031) AM_WRITE8(ctc_ack_w, 0x00ff)
|
||||
AM_RANGE(0x0040, 0x0047) AM_DEVREADWRITE8_LEGACY(WD2797_TAG, wd17xx_r, wd17xx_w, 0x00ff)
|
||||
AM_RANGE(0x0040, 0x0047) AM_DEVREADWRITE8(WD2797_TAG, wd2797_t, read, write, 0x00ff)
|
||||
// AM_RANGE(0x01e0, 0x01ff) winchester
|
||||
ADDRESS_MAP_END
|
||||
|
||||
@ -280,38 +288,22 @@ static Z80CTC_INTERFACE( ctc_intf )
|
||||
|
||||
|
||||
//-------------------------------------------------
|
||||
// wd17xx_interface fdc_intf
|
||||
// floppy
|
||||
//-------------------------------------------------
|
||||
|
||||
static LEGACY_FLOPPY_OPTIONS_START( act )
|
||||
LEGACY_FLOPPY_OPTION( img2hd, "dsk", "2HD disk image", basicdsk_identify_default, basicdsk_construct_default, NULL,
|
||||
HEADS([2])
|
||||
TRACKS([80])
|
||||
SECTORS([16])
|
||||
SECTOR_LENGTH([256])
|
||||
FIRST_SECTOR_ID([1]))
|
||||
LEGACY_FLOPPY_OPTIONS_END
|
||||
|
||||
static const floppy_interface act_floppy_interface =
|
||||
void f1_state::wd2797_intrq_w(bool state)
|
||||
{
|
||||
DEVCB_NULL,
|
||||
DEVCB_NULL,
|
||||
DEVCB_NULL,
|
||||
DEVCB_NULL,
|
||||
DEVCB_NULL,
|
||||
FLOPPY_STANDARD_3_5_DSDD, // Sony OA-D32W
|
||||
LEGACY_FLOPPY_OPTIONS_NAME(act),
|
||||
"floppy_3_5",
|
||||
NULL
|
||||
};
|
||||
m_maincpu->set_input_line(INPUT_LINE_NMI, state);}
|
||||
|
||||
static const wd17xx_interface fdc_intf =
|
||||
void f1_state::wd2797_drq_w(bool state)
|
||||
{
|
||||
DEVCB_NULL,
|
||||
DEVCB_CPU_INPUT_LINE(I8086_TAG, INPUT_LINE_NMI),
|
||||
DEVCB_CPU_INPUT_LINE(I8086_TAG, INPUT_LINE_TEST), // TODO inverted?
|
||||
{ FLOPPY_0, NULL, NULL, NULL }
|
||||
};
|
||||
m_maincpu->set_input_line(INPUT_LINE_TEST, state);
|
||||
}
|
||||
|
||||
static SLOT_INTERFACE_START( apricotf_floppies )
|
||||
SLOT_INTERFACE( "d31v", SONY_OA_D31V )
|
||||
SLOT_INTERFACE( "d32w", SONY_OA_D32W )
|
||||
SLOT_INTERFACE_END
|
||||
|
||||
|
||||
//-------------------------------------------------
|
||||
@ -355,9 +347,12 @@ static MACHINE_CONFIG_START( act_f1, f1_state )
|
||||
MCFG_APRICOT_KEYBOARD_ADD(kb_intf)
|
||||
MCFG_Z80SIO2_ADD(Z80SIO2_TAG, 2500000, sio_intf)
|
||||
MCFG_Z80CTC_ADD(Z80CTC_TAG, 2500000, ctc_intf)
|
||||
MCFG_WD2797_ADD(WD2797_TAG, fdc_intf)
|
||||
MCFG_LEGACY_FLOPPY_2_DRIVES_ADD(act_floppy_interface)
|
||||
MCFG_CENTRONICS_PRINTER_ADD(CENTRONICS_TAG, centronics_intf)
|
||||
|
||||
// floppy
|
||||
MCFG_WD2797x_ADD(WD2797_TAG, XTAL_4MHz / 2 /* ? */)
|
||||
MCFG_FLOPPY_DRIVE_ADD(WD2797_TAG ":0", apricotf_floppies, "d32w", floppy_image_device::default_floppy_formats)
|
||||
MCFG_FLOPPY_DRIVE_ADD(WD2797_TAG ":1", apricotf_floppies, "d32w", floppy_image_device::default_floppy_formats)
|
||||
MACHINE_CONFIG_END
|
||||
|
||||
|
||||
|
@ -11,7 +11,7 @@
|
||||
#include "imagedev/flopdrv.h"
|
||||
#include "machine/apricotkb.h"
|
||||
#include "machine/ctronics.h"
|
||||
#include "machine/wd17xx.h"
|
||||
#include "machine/wd_fdc.h"
|
||||
#include "machine/z80ctc.h"
|
||||
#include "machine/z80dart.h"
|
||||
#include "rendlay.h"
|
||||
@ -46,7 +46,8 @@ public:
|
||||
m_ctc(*this, Z80CTC_TAG),
|
||||
m_sio(*this, Z80SIO2_TAG),
|
||||
m_fdc(*this, WD2797_TAG),
|
||||
m_floppy0(*this, FLOPPY_0),
|
||||
m_floppy0(*this, WD2797_TAG ":0"),
|
||||
m_floppy1(*this, WD2797_TAG ":1"),
|
||||
m_centronics(*this, CENTRONICS_TAG),
|
||||
m_ctc_int(CLEAR_LINE),
|
||||
m_sio_int(CLEAR_LINE),
|
||||
@ -54,11 +55,14 @@ public:
|
||||
m_p_paletteram(*this, "p_paletteram")
|
||||
{ }
|
||||
|
||||
virtual void machine_start();
|
||||
|
||||
required_device<cpu_device> m_maincpu;
|
||||
required_device<z80ctc_device> m_ctc;
|
||||
required_device<z80sio2_device> m_sio;
|
||||
required_device<wd2797_device> m_fdc;
|
||||
required_device<legacy_floppy_image_device> m_floppy0;
|
||||
required_device<wd2797_t> m_fdc;
|
||||
required_device<floppy_connector> m_floppy0;
|
||||
required_device<floppy_connector> m_floppy1;
|
||||
required_device<centronics_device> m_centronics;
|
||||
int m_ctc_int;
|
||||
int m_sio_int;
|
||||
@ -75,6 +79,9 @@ public:
|
||||
DECLARE_WRITE_LINE_MEMBER( ctc_z1_w );
|
||||
DECLARE_WRITE_LINE_MEMBER( ctc_z2_w );
|
||||
|
||||
void wd2797_intrq_w(bool state);
|
||||
void wd2797_drq_w(bool state);
|
||||
|
||||
int m_40_80;
|
||||
int m_200_256;
|
||||
};
|
||||
|
Loading…
Reference in New Issue
Block a user