mirror of
https://github.com/holub/mame
synced 2025-10-05 08:41:31 +03:00
(MESS) msx.c: Floppy cleanup (nw)
This commit is contained in:
parent
1cfcad0d3f
commit
50150040e2
@ -6,7 +6,7 @@
|
||||
|
||||
*********************************************************************/
|
||||
|
||||
#include "msx_dsk.h"
|
||||
#include "formats/msx_dsk.h"
|
||||
#include "formats/basicdsk.h"
|
||||
|
||||
LEGACY_FLOPPY_OPTIONS_START(msx)
|
||||
@ -23,3 +23,52 @@ LEGACY_FLOPPY_OPTIONS_START(msx)
|
||||
SECTOR_LENGTH([512])
|
||||
FIRST_SECTOR_ID([1]))
|
||||
LEGACY_FLOPPY_OPTIONS_END
|
||||
|
||||
/********************************************************************/
|
||||
|
||||
//msx_format::msx_format() : wd177x_format(formats)
|
||||
msx_format::msx_format() : upd765_format(formats)
|
||||
{
|
||||
}
|
||||
|
||||
const char *msx_format::name() const
|
||||
{
|
||||
return "msx";
|
||||
}
|
||||
|
||||
const char *msx_format::description() const
|
||||
{
|
||||
return "MSX disk image";
|
||||
}
|
||||
|
||||
const char *msx_format::extensions() const
|
||||
{
|
||||
return "dsk";
|
||||
}
|
||||
|
||||
// Unverified gap sizes
|
||||
const msx_format::format msx_format::formats[] = {
|
||||
{ /* 3 1/2 inch single sided double density */
|
||||
// 80x4e 12x00 3xf6 fc
|
||||
// 26x4e 12x00 3xf5 fe 2x00 01 02 f7 24x4e 12x00 3xf5 fb 512xe5 f7
|
||||
// 54x4e 12x00 3xf5 fe 2x00 02 02 f7 24x4e 12x00 3xf5 fb 512xe5 f7
|
||||
// 54x4e 12x00 3xf5 fe 2x00 03 02 f7 24x4e 12x00 3xf5 fb 512xe5 f7
|
||||
// 54x4e 12x00 3xf5 fe 2x00 04 02 f7 24x4e 12x00 3xf5 fb 512xe5 f7
|
||||
// 54x4e 12x00 3xf5 fe 2x00 05 02 f7 24x4e 12x00 3xf5 fb 512xe5 f7
|
||||
// 54x4e 12x00 3xf5 fe 2x00 06 02 f7 24x4e 12x00 3xf5 fb 512xe5 f7
|
||||
// 54x4e 12x00 3xf5 fe 2x00 07 02 f7 24x4e 12x00 3xf5 fb 512xe5 f7
|
||||
// 54x4e 12x00 3xf5 fe 2x00 08 02 f7 24x4e 12x00 3xf5 fb 512xe5 f7
|
||||
// 54x4e 12x00 3xf5 fe 2x00 09 02 f7 24x4e 12x00 3xf5 fb 512xe5 f7
|
||||
// 1078x4e
|
||||
floppy_image::FF_35, floppy_image::SSDD, floppy_image::MFM,
|
||||
2000, 9, 80, 1, 512, {}, 1, {}, 26, 24, 28, 80
|
||||
},
|
||||
{ /* 3 1/2 inch double density */
|
||||
floppy_image::FF_35, floppy_image::DSDD, floppy_image::MFM,
|
||||
2000, 9, 80, 2, 512, {}, 1, {}, 26, 24, 28, 80
|
||||
},
|
||||
{}
|
||||
};
|
||||
|
||||
const floppy_format_type FLOPPY_MSX_FORMAT = &floppy_image_format_creator<msx_format>;
|
||||
|
||||
|
@ -15,4 +15,25 @@
|
||||
|
||||
LEGACY_FLOPPY_OPTIONS_EXTERN(msx);
|
||||
|
||||
/**************************************************************************/
|
||||
|
||||
#include "wd177x_dsk.h"
|
||||
#include "upd765_dsk.h"
|
||||
|
||||
//class msx_format : public wd177x_format {
|
||||
class msx_format: public upd765_format {
|
||||
public:
|
||||
msx_format();
|
||||
|
||||
virtual const char *name() const;
|
||||
virtual const char *description() const;
|
||||
virtual const char *extensions() const;
|
||||
|
||||
private:
|
||||
static const format formats[];
|
||||
};
|
||||
|
||||
extern const floppy_format_type FLOPPY_MSX_FORMAT;
|
||||
|
||||
|
||||
#endif /* MSX_DSK_H */
|
||||
|
@ -340,6 +340,8 @@ Panasonic FS-FD1A - TC8566AF
|
||||
|
||||
#include "includes/msx.h"
|
||||
#include "bus/centronics/covox.h"
|
||||
#include "formats/dsk_dsk.h"
|
||||
|
||||
|
||||
static ADDRESS_MAP_START ( msx_memory_map, AS_PROGRAM, 8, msx_state )
|
||||
AM_RANGE( 0x0000, 0x1fff) AM_READ_BANK("bank1") AM_WRITE(msx_page0_w)
|
||||
@ -1067,18 +1069,6 @@ static const cassette_interface msx_cassette_interface =
|
||||
NULL
|
||||
};
|
||||
|
||||
static const floppy_interface msx_floppy_interface =
|
||||
{
|
||||
DEVCB_NULL,
|
||||
DEVCB_NULL,
|
||||
DEVCB_NULL,
|
||||
DEVCB_NULL,
|
||||
DEVCB_NULL,
|
||||
FLOPPY_STANDARD_5_25_DSHD,
|
||||
LEGACY_FLOPPY_OPTIONS_NAME(msx),
|
||||
"floppy_5_25",
|
||||
NULL
|
||||
};
|
||||
|
||||
static MACHINE_CONFIG_FRAGMENT( msx_cartslot )
|
||||
MCFG_CARTSLOT_ADD("cart1")
|
||||
@ -1096,6 +1086,64 @@ static MACHINE_CONFIG_FRAGMENT( msx_cartslot )
|
||||
MCFG_CARTSLOT_UNLOAD(msx_state, msx_cart)
|
||||
MACHINE_CONFIG_END
|
||||
|
||||
FLOPPY_FORMATS_MEMBER( msx_state::floppy_formats )
|
||||
FLOPPY_MSX_FORMAT
|
||||
FLOPPY_FORMATS_END
|
||||
|
||||
static SLOT_INTERFACE_START( msx_floppies )
|
||||
SLOT_INTERFACE( "35dd", FLOPPY_35_DD )
|
||||
SLOT_INTERFACE( "35ssdd", FLOPPY_35_SSDD )
|
||||
SLOT_INTERFACE_END
|
||||
|
||||
static MACHINE_CONFIG_FRAGMENT( msx_fd1793 )
|
||||
MCFG_FD1793x_ADD("fdc", XTAL_4MHz / 4)
|
||||
MCFG_WD_FDC_INTRQ_CALLBACK(WRITELINE(msx_state, msx_wd179x_intrq_w))
|
||||
MCFG_WD_FDC_DRQ_CALLBACK(WRITELINE(msx_state, msx_wd179x_drq_w))
|
||||
MACHINE_CONFIG_END
|
||||
|
||||
static MACHINE_CONFIG_FRAGMENT( msx_wd2793 )
|
||||
// From NMS8245 schematics:
|
||||
// READY + HLT - pulled high
|
||||
// SSO/-ENMF + -DDEN + ENP + -5/8 - pulled low
|
||||
MCFG_WD2793x_ADD("fdc", XTAL_4MHz / 4)
|
||||
MCFG_WD_FDC_FORCE_READY
|
||||
MCFG_WD_FDC_INTRQ_CALLBACK(WRITELINE(msx_state, msx_wd179x_intrq_w))
|
||||
MCFG_WD_FDC_DRQ_CALLBACK(WRITELINE(msx_state, msx_wd179x_drq_w))
|
||||
MACHINE_CONFIG_END
|
||||
|
||||
static MACHINE_CONFIG_FRAGMENT( msx_mb8877a )
|
||||
MCFG_MB8877x_ADD("fdc", XTAL_4MHz / 4)
|
||||
MCFG_WD_FDC_INTRQ_CALLBACK(WRITELINE(msx_state, msx_wd179x_intrq_w))
|
||||
MCFG_WD_FDC_DRQ_CALLBACK(WRITELINE(msx_state, msx_wd179x_drq_w))
|
||||
MACHINE_CONFIG_END
|
||||
|
||||
static MACHINE_CONFIG_FRAGMENT( msx_tc8566af )
|
||||
// TODO: Implement TC8566AF, the fragment below is to keep the core happy
|
||||
MCFG_WD2793x_ADD("fdc", XTAL_4MHz / 4)
|
||||
MCFG_WD_FDC_INTRQ_CALLBACK(WRITELINE(msx_state, msx_wd179x_intrq_w))
|
||||
MCFG_WD_FDC_DRQ_CALLBACK(WRITELINE(msx_state, msx_wd179x_drq_w))
|
||||
MACHINE_CONFIG_END
|
||||
|
||||
static MACHINE_CONFIG_FRAGMENT( msx_microsol )
|
||||
// TODO: Implement MICROSOL, the fragment below is to keep the core happy
|
||||
MCFG_WD2793x_ADD("fdc", XTAL_4MHz / 4)
|
||||
MCFG_WD_FDC_INTRQ_CALLBACK(WRITELINE(msx_state, msx_wd179x_intrq_w))
|
||||
MCFG_WD_FDC_DRQ_CALLBACK(WRITELINE(msx_state, msx_wd179x_drq_w))
|
||||
MACHINE_CONFIG_END
|
||||
|
||||
static MACHINE_CONFIG_FRAGMENT( msx_1_35_ssdd_drive )
|
||||
MCFG_FLOPPY_DRIVE_ADD("fdc:0", msx_floppies, "35ssdd", msx_state::floppy_formats)
|
||||
MACHINE_CONFIG_END
|
||||
|
||||
static MACHINE_CONFIG_FRAGMENT( msx_1_35_dd_drive )
|
||||
MCFG_FLOPPY_DRIVE_ADD("fdc:0", msx_floppies, "35dd", msx_state::floppy_formats)
|
||||
MACHINE_CONFIG_END
|
||||
|
||||
static MACHINE_CONFIG_FRAGMENT( msx_2_35_dd_drive )
|
||||
MCFG_FLOPPY_DRIVE_ADD("fdc:0", msx_floppies, "35dd", msx_state::floppy_formats)
|
||||
MCFG_FLOPPY_DRIVE_ADD("fdc:1", msx_floppies, "35dd", msx_state::floppy_formats)
|
||||
MACHINE_CONFIG_END
|
||||
|
||||
static MACHINE_CONFIG_START( msx, msx_state )
|
||||
/* basic machine hardware */
|
||||
MCFG_CPU_ADD("maincpu", Z80, XTAL_10_738635MHz/3) /* 3.579545 MHz */
|
||||
@ -1140,12 +1188,6 @@ static MACHINE_CONFIG_START( msx, msx_state )
|
||||
/* cassette */
|
||||
MCFG_CASSETTE_ADD( "cassette", msx_cassette_interface )
|
||||
|
||||
MCFG_FD1793_ADD("wd179x", msx_wd17xx_interface ) // TODO confirm type
|
||||
|
||||
MCFG_LEGACY_FLOPPY_2_DRIVES_ADD(msx_floppy_interface)
|
||||
|
||||
MCFG_SOFTWARE_LIST_ADD("flop_list","msx1_flop")
|
||||
|
||||
MCFG_FRAGMENT_ADD(msx_cartslot)
|
||||
|
||||
/* Software lists */
|
||||
@ -1241,10 +1283,6 @@ static MACHINE_CONFIG_START( msx2, msx_state )
|
||||
/* real time clock */
|
||||
MCFG_DEVICE_ADD("rtc", RP5C01, XTAL_32_768kHz)
|
||||
|
||||
MCFG_FD1793_ADD("wd179x", msx_wd17xx_interface ) // TODO confirm type
|
||||
|
||||
MCFG_LEGACY_FLOPPY_2_DRIVES_ADD(msx_floppy_interface)
|
||||
|
||||
MCFG_FRAGMENT_ADD(msx_cartslot)
|
||||
|
||||
/* Software lists */
|
||||
@ -1314,10 +1352,6 @@ static MACHINE_CONFIG_START( msx2p, msx_state )
|
||||
/* real time clock */
|
||||
MCFG_DEVICE_ADD("rtc", RP5C01, XTAL_32_768kHz)
|
||||
|
||||
MCFG_FD1793_ADD("wd179x", msx_wd17xx_interface ) // TODO confirm type
|
||||
|
||||
MCFG_LEGACY_FLOPPY_2_DRIVES_ADD(msx_floppy_interface)
|
||||
|
||||
MCFG_FRAGMENT_ADD(msx_cartslot)
|
||||
|
||||
/* Software lists */
|
||||
@ -1617,7 +1651,10 @@ MSX_LAYOUT_END
|
||||
static MACHINE_CONFIG_DERIVED( expertdp, msx_ntsc )
|
||||
MCFG_MSX_LAYOUT(expertdp)
|
||||
// AY8910/YM2149?
|
||||
// FDC: mb8877a, 1 3.5" DD drive
|
||||
// FDC: mb8877a, 1 3.5" DSDD drive
|
||||
MCFG_FRAGMENT_ADD( msx_mb8877a )
|
||||
MCFG_FRAGMENT_ADD( msx_1_35_dd_drive )
|
||||
MCFG_SOFTWARE_LIST_ADD("flop_list","msx1_flop")
|
||||
// 2 Cartridge slots
|
||||
// MSX Engine T7937A
|
||||
MACHINE_CONFIG_END
|
||||
@ -1811,6 +1848,9 @@ static MACHINE_CONFIG_DERIVED( cf3300, msx_ntsc )
|
||||
MCFG_MSX_LAYOUT(cf3300)
|
||||
// AY8910/YM2149?
|
||||
// FDC: mb8877a, 1 3.5" SSDD drive
|
||||
MCFG_FRAGMENT_ADD( msx_mb8877a )
|
||||
MCFG_FRAGMENT_ADD( msx_1_35_ssdd_drive )
|
||||
MCFG_SOFTWARE_LIST_ADD("flop_list","msx1_flop")
|
||||
// 2 Cartridge slots
|
||||
MACHINE_CONFIG_END
|
||||
|
||||
@ -2563,6 +2603,9 @@ static MACHINE_CONFIG_DERIVED( svi738, msx_pal )
|
||||
MCFG_MSX_LAYOUT(svi738)
|
||||
// AY8910
|
||||
// FDC: wd1793, 1 3.5" SSDD drive
|
||||
MCFG_FRAGMENT_ADD( msx_fd1793 )
|
||||
MCFG_FRAGMENT_ADD( msx_1_35_ssdd_drive )
|
||||
MCFG_SOFTWARE_LIST_ADD("flop_list","msx1_flop")
|
||||
// 2 Cartridge slots
|
||||
// builtin 80 columns card (V9938)
|
||||
// RS-232C interface
|
||||
@ -2591,6 +2634,9 @@ static MACHINE_CONFIG_DERIVED( svi738sw, msx_pal )
|
||||
MCFG_MSX_LAYOUT(svi738sw)
|
||||
// AY8910
|
||||
// FDC: wd2793, 1 3.5" SSDD drive
|
||||
MCFG_FRAGMENT_ADD( msx_wd2793 )
|
||||
MCFG_FRAGMENT_ADD( msx_1_35_ssdd_drive )
|
||||
MCFG_SOFTWARE_LIST_ADD("flop_list","msx1_flop")
|
||||
// 2 Cartridge slots
|
||||
// builtin 80 columns card (V9938)
|
||||
// RS-232C interface
|
||||
@ -2619,6 +2665,9 @@ static MACHINE_CONFIG_DERIVED( svi738pl, msx_pal )
|
||||
MCFG_MSX_LAYOUT(svi738pl)
|
||||
// AY8910
|
||||
// FDC: wd2793, 1 3.5" SSDD drive
|
||||
MCFG_FRAGMENT_ADD( msx_wd2793 )
|
||||
MCFG_FRAGMENT_ADD( msx_1_35_ssdd_drive )
|
||||
MCFG_SOFTWARE_LIST_ADD("flop_list","msx1_flop")
|
||||
// 2 Cartridge slots
|
||||
// builtin 80 columns card (V9938)
|
||||
// RS-232C interface
|
||||
@ -3094,6 +3143,8 @@ static MACHINE_CONFIG_DERIVED( ax350, msx2_pal )
|
||||
MCFG_MSX_LAYOUT(ax350)
|
||||
// AY8910/YM2149?
|
||||
// FDC: wd2793/tc8566af?, 1 3.5" DSDD drive
|
||||
MCFG_FRAGMENT_ADD( msx_wd2793 )
|
||||
MCFG_FRAGMENT_ADD( msx_1_35_dd_drive )
|
||||
// 2 Cartridge slots?
|
||||
MACHINE_CONFIG_END
|
||||
|
||||
@ -3128,6 +3179,8 @@ static MACHINE_CONFIG_DERIVED( ax370, msx2_pal )
|
||||
MCFG_MSX_LAYOUT(ax370)
|
||||
// AY8910/YM2149?
|
||||
// FDC: tc8566af, 1 3.5" DSDD drive
|
||||
MCFG_FRAGMENT_ADD( msx_tc8566af )
|
||||
MCFG_FRAGMENT_ADD( msx_1_35_dd_drive )
|
||||
// 2 Cartridge slots?
|
||||
MACHINE_CONFIG_END
|
||||
|
||||
@ -3217,6 +3270,8 @@ static MACHINE_CONFIG_DERIVED( cpc400, msx2 )
|
||||
MCFG_MSX_LAYOUT(cpc400)
|
||||
// AY8910/YM2149?
|
||||
// FDC: mb8877a, 1 3.5" DS?DD drive
|
||||
MCFG_FRAGMENT_ADD( msx_mb8877a )
|
||||
MCFG_FRAGMENT_ADD( msx_1_35_dd_drive )
|
||||
// 2 Cartridge slots?
|
||||
MACHINE_CONFIG_END
|
||||
|
||||
@ -3249,6 +3304,8 @@ static MACHINE_CONFIG_DERIVED( cpc400s, msx2 )
|
||||
MCFG_MSX_LAYOUT(cpc400s)
|
||||
// YM2149 (in S-1985 MSX Engine)
|
||||
// FDC: mb8877a, 1 3.5" DS?DD drive
|
||||
MCFG_FRAGMENT_ADD( msx_mb8877a )
|
||||
MCFG_FRAGMENT_ADD( msx_1_35_dd_drive )
|
||||
// 2 Cartridge slots
|
||||
// S-1985 MSX Engine
|
||||
MACHINE_CONFIG_END
|
||||
@ -3279,7 +3336,9 @@ MSX_LAYOUT_END
|
||||
static MACHINE_CONFIG_DERIVED( expert20, msx2_pal )
|
||||
MCFG_MSX_LAYOUT(expert20)
|
||||
// AY8910/YM2149?
|
||||
// FDC: wd2793/tc8566af?, 1? 3.5"? DS?DD drive
|
||||
// FDC: microsol, 1? 3.5"? DS?DD drive
|
||||
MCFG_FRAGMENT_ADD( msx_microsol )
|
||||
MCFG_FRAGMENT_ADD( msx_1_35_dd_drive )
|
||||
// 2 Cartridge slots?
|
||||
MACHINE_CONFIG_END
|
||||
|
||||
@ -3306,6 +3365,8 @@ static MACHINE_CONFIG_DERIVED( mlg30, msx2 )
|
||||
MCFG_MSX_LAYOUT(mlg30)
|
||||
// AY8910/YM2149?
|
||||
// FDC: wd2793/tc8566af?, 1 or 2? 3.5" DSDD drives
|
||||
MCFG_FRAGMENT_ADD( msx_wd2793 )
|
||||
MCFG_FRAGMENT_ADD( msx_1_35_dd_drive )
|
||||
// 2 Cartridge slots?
|
||||
MACHINE_CONFIG_END
|
||||
|
||||
@ -3389,6 +3450,8 @@ static MACHINE_CONFIG_DERIVED( fs4600, msx2 )
|
||||
MCFG_MSX_LAYOUT(fs4600)
|
||||
// YM2149 (in S-1985 MSX Engine)
|
||||
// FDC: mb8877a, 1 3.5" DSDD drive
|
||||
MCFG_FRAGMENT_ADD( msx_mb8877a )
|
||||
MCFG_FRAGMENT_ADD( msx_1_35_dd_drive )
|
||||
// 2 Cartridge slots
|
||||
// S-1985 MSX Engine
|
||||
MACHINE_CONFIG_END
|
||||
@ -3434,6 +3497,8 @@ static MACHINE_CONFIG_DERIVED( fs4700, msx2 )
|
||||
MCFG_MSX_LAYOUT(fs4700)
|
||||
// YM2149 (in S-1985 MSX Engine)
|
||||
// FDC: mb8877a, 1 3.5" DSDD drive
|
||||
MCFG_FRAGMENT_ADD( msx_mb8877a )
|
||||
MCFG_FRAGMENT_ADD( msx_1_35_dd_drive )
|
||||
// 2 Cartridge slots
|
||||
// S-1985 MSX Engine
|
||||
MACHINE_CONFIG_END
|
||||
@ -3472,6 +3537,8 @@ static MACHINE_CONFIG_DERIVED( fs5000, msx2 )
|
||||
MCFG_MSX_LAYOUT(fs5000)
|
||||
// YM2149 (in S-1985 MSX Engine)
|
||||
// FDC: wd2793, 2 3.5" DSDD drives
|
||||
MCFG_FRAGMENT_ADD( msx_wd2793 )
|
||||
MCFG_FRAGMENT_ADD( msx_2_35_dd_drive )
|
||||
// 2 Cartridge slots
|
||||
// S-1985 MSX Engine
|
||||
MACHINE_CONFIG_END
|
||||
@ -3511,6 +3578,8 @@ static MACHINE_CONFIG_DERIVED( fs5500, msx2 )
|
||||
MCFG_MSX_LAYOUT(fs5500)
|
||||
// YM2149 in (S-1985 MSX Engine)
|
||||
// FDC: mb8877a, 1 3.5" DSDD drive
|
||||
MCFG_FRAGMENT_ADD( msx_mb8877a )
|
||||
MCFG_FRAGMENT_ADD( msx_1_35_dd_drive )
|
||||
// 2 Cartridge slots
|
||||
// S-1985 MSX Engine
|
||||
MACHINE_CONFIG_END
|
||||
@ -3604,6 +3673,8 @@ static MACHINE_CONFIG_DERIVED( fsa1f, msx2 )
|
||||
MCFG_MSX_LAYOUT(fsa1f)
|
||||
// AY8910/YM2149?
|
||||
// FDC: tc8566af, 1 3.5" DSDD drive
|
||||
MCFG_FRAGMENT_ADD( msx_tc8566af )
|
||||
MCFG_FRAGMENT_ADD( msx_1_35_dd_drive )
|
||||
// 2 Cartridge slots
|
||||
MACHINE_CONFIG_END
|
||||
|
||||
@ -3639,6 +3710,8 @@ static MACHINE_CONFIG_DERIVED( fsa1fm, msx2 )
|
||||
MCFG_MSX_LAYOUT(fsa1fm)
|
||||
// AY8910/YM2149?
|
||||
// FDC: tc8566af, 1 3.5" DSDD drive
|
||||
MCFG_FRAGMENT_ADD( msx_tc8566af )
|
||||
MCFG_FRAGMENT_ADD( msx_1_35_dd_drive )
|
||||
// 2 Cartridge slots
|
||||
// Integrated 1200baud modem
|
||||
MACHINE_CONFIG_END
|
||||
@ -3756,6 +3829,8 @@ static MACHINE_CONFIG_DERIVED( nms8245, msx2_pal )
|
||||
MCFG_MSX_LAYOUT(nms8245)
|
||||
// YM2149 (in S-3527 MSX Engine)
|
||||
// FDC: wd2793, 1 3.5" DSDD drive
|
||||
MCFG_FRAGMENT_ADD( msx_wd2793 )
|
||||
MCFG_FRAGMENT_ADD( msx_1_35_dd_drive )
|
||||
// 2 Cartridge slots
|
||||
// S-3527 MSX Engine
|
||||
MACHINE_CONFIG_END
|
||||
@ -3783,6 +3858,8 @@ static MACHINE_CONFIG_DERIVED( nms8245f, msx2_pal )
|
||||
MCFG_MSX_LAYOUT(nms8245f)
|
||||
// YM2149 (in S-3527 MSX Engine)
|
||||
// FDC: wd2793, 1 3.5" DSDD drive
|
||||
MCFG_FRAGMENT_ADD( msx_wd2793 )
|
||||
MCFG_FRAGMENT_ADD( msx_1_35_dd_drive )
|
||||
// 2 Cartridge slots
|
||||
// S-3527 MSX Engine
|
||||
MACHINE_CONFIG_END
|
||||
@ -3813,6 +3890,8 @@ static MACHINE_CONFIG_DERIVED( nms8250, msx2_pal )
|
||||
MCFG_MSX_LAYOUT(nms8250)
|
||||
// YM2149 (in S-3527 MSX Engine)
|
||||
// FDC: wd2793, 1 3.5" DSDD drive
|
||||
MCFG_FRAGMENT_ADD( msx_wd2793 )
|
||||
MCFG_FRAGMENT_ADD( msx_1_35_dd_drive )
|
||||
// 2 Cartridge slots
|
||||
// S-3527 MSX Engine
|
||||
MACHINE_CONFIG_END
|
||||
@ -3840,6 +3919,8 @@ static MACHINE_CONFIG_DERIVED( nms8250j, msx2 )
|
||||
MCFG_MSX_LAYOUT(nms8250j)
|
||||
// AY8910/YM2149?
|
||||
// FDC: wd2793?, 1 3.5" DSDD drive
|
||||
MCFG_FRAGMENT_ADD( msx_wd2793 )
|
||||
MCFG_FRAGMENT_ADD( msx_1_35_dd_drive )
|
||||
// 2 Cartridge slots?
|
||||
MACHINE_CONFIG_END
|
||||
|
||||
@ -3868,6 +3949,8 @@ static MACHINE_CONFIG_DERIVED( nms8255, msx2_pal )
|
||||
MCFG_MSX_LAYOUT(nms8255)
|
||||
// YM2149 (in S-3527 MSX Engine)
|
||||
// FDC: wd2793, 2 3.5" DSDD drives
|
||||
MCFG_FRAGMENT_ADD( msx_wd2793 )
|
||||
MCFG_FRAGMENT_ADD( msx_2_35_dd_drive )
|
||||
// 2 Cartridge slots
|
||||
// S-3527 MSX Engine
|
||||
MACHINE_CONFIG_END
|
||||
@ -3897,6 +3980,8 @@ static MACHINE_CONFIG_DERIVED( nms8280, msx2_pal )
|
||||
MCFG_MSX_LAYOUT(nms8280)
|
||||
// AY8910/YM2149?
|
||||
// FDC: wd2793, 2 3.5" DSDD drives
|
||||
MCFG_FRAGMENT_ADD( msx_wd2793 )
|
||||
MCFG_FRAGMENT_ADD( msx_2_35_dd_drive )
|
||||
// 2 Cartridge slots
|
||||
MACHINE_CONFIG_END
|
||||
|
||||
@ -3925,6 +4010,8 @@ static MACHINE_CONFIG_DERIVED( nms8280g, msx2_pal )
|
||||
MCFG_MSX_LAYOUT(nms8280g)
|
||||
// AY8910/YM2149?
|
||||
// FDC: wd2793, 2 3.5" DSDD drives
|
||||
MCFG_FRAGMENT_ADD( msx_wd2793 )
|
||||
MCFG_FRAGMENT_ADD( msx_2_35_dd_drive )
|
||||
// 2 Cartridge slots
|
||||
MACHINE_CONFIG_END
|
||||
|
||||
@ -3953,6 +4040,8 @@ static MACHINE_CONFIG_DERIVED( vg8230, msx2_pal )
|
||||
MCFG_MSX_LAYOUT(vg8230)
|
||||
// YM2149 (in S-3527 MSX Engine)
|
||||
// FDC: wd2793, 1 3.5" SSDD drive
|
||||
MCFG_FRAGMENT_ADD( msx_wd2793 )
|
||||
MCFG_FRAGMENT_ADD( msx_1_35_ssdd_drive )
|
||||
// 2 Cartridge slots
|
||||
// S-3527 MSX Engine
|
||||
MACHINE_CONFIG_END
|
||||
@ -3982,6 +4071,8 @@ static MACHINE_CONFIG_DERIVED( vg8230j, msx2 )
|
||||
MCFG_MSX_LAYOUT(vg8230j)
|
||||
// AY8910/YM2149?
|
||||
// FDC: wd2793?, 1 3.5" SSDD drive?
|
||||
MCFG_FRAGMENT_ADD( msx_wd2793 )
|
||||
MCFG_FRAGMENT_ADD( msx_1_35_ssdd_drive )
|
||||
// 2 Cartridge slots?
|
||||
MACHINE_CONFIG_END
|
||||
|
||||
@ -4010,6 +4101,8 @@ static MACHINE_CONFIG_DERIVED( vg8235, msx2_pal )
|
||||
MCFG_MSX_LAYOUT(vg8235)
|
||||
// YM2149 (in S-3527 MSX Engine)
|
||||
// FDC: wd2793, 1 3.5" SSDD drive
|
||||
MCFG_FRAGMENT_ADD( msx_wd2793 )
|
||||
MCFG_FRAGMENT_ADD( msx_1_35_ssdd_drive )
|
||||
// 2 Cartridge slots
|
||||
// S-3527 MSX Engine
|
||||
MACHINE_CONFIG_END
|
||||
@ -4039,6 +4132,8 @@ static MACHINE_CONFIG_DERIVED( vg8235f, msx2_pal )
|
||||
MCFG_MSX_LAYOUT(vg8235f)
|
||||
// YM2149 (in S-3527 MSX Engine)
|
||||
// FDC: wd2793, 1 3.5" SSDD drive
|
||||
MCFG_FRAGMENT_ADD( msx_wd2793 )
|
||||
MCFG_FRAGMENT_ADD( msx_1_35_ssdd_drive )
|
||||
// 2 Cartridge slots
|
||||
// S-3527 MSX Engine
|
||||
MACHINE_CONFIG_END
|
||||
@ -4068,6 +4163,8 @@ static MACHINE_CONFIG_DERIVED( vg8240, msx2_pal )
|
||||
MCFG_MSX_LAYOUT(vg8240)
|
||||
// AY8910/YM2149?
|
||||
// FDC: wd2793, 1 3.5" DSDD drive
|
||||
MCFG_FRAGMENT_ADD( msx_wd2793 )
|
||||
MCFG_FRAGMENT_ADD( msx_1_35_dd_drive )
|
||||
// 2 Cartridge slots?
|
||||
MACHINE_CONFIG_END
|
||||
|
||||
@ -4118,6 +4215,8 @@ static MACHINE_CONFIG_DERIVED( mpc25fd, msx2 )
|
||||
MCFG_MSX_LAYOUT(mpc25fd)
|
||||
// YM2149 (in S-3527 MSX Engine)
|
||||
// FDC: wd2793, 1 drive
|
||||
MCFG_FRAGMENT_ADD( msx_wd2793 )
|
||||
MCFG_FRAGMENT_ADD( msx_1_35_dd_drive )
|
||||
// 1 Cartridge slot (slot 1)
|
||||
// S-3527 MSX Engine
|
||||
MACHINE_CONFIG_END
|
||||
@ -4174,7 +4273,9 @@ MSX_LAYOUT_END
|
||||
static MACHINE_CONFIG_DERIVED( hotbit20, msx2_pal )
|
||||
MCFG_MSX_LAYOUT(hotbit20)
|
||||
// AY8910/YM2149?
|
||||
// FDC: wd2793/tc8566af, 1 or 2 drives?
|
||||
// FDC: microsol, 1 or 2 drives?
|
||||
MCFG_FRAGMENT_ADD( msx_microsol )
|
||||
MCFG_FRAGMENT_ADD( msx_1_35_dd_drive )
|
||||
// 2 Cartridge slots?
|
||||
MACHINE_CONFIG_END
|
||||
|
||||
@ -4266,6 +4367,8 @@ static MACHINE_CONFIG_DERIVED( hbf1xd, msx2 )
|
||||
MCFG_MSX_LAYOUT(hbf1xd)
|
||||
// YM2149 (in S-1895 MSX Engine)
|
||||
// FDC: wd2793, 1 3.5" DSDD drive
|
||||
MCFG_FRAGMENT_ADD( msx_wd2793 )
|
||||
MCFG_FRAGMENT_ADD( msx_1_35_dd_drive )
|
||||
// 2 Cartridge slots
|
||||
// S-1985 MSX Engine
|
||||
MACHINE_CONFIG_END
|
||||
@ -4295,6 +4398,8 @@ static MACHINE_CONFIG_DERIVED( hbf1xdm2, msx2 )
|
||||
MCFG_MSX_LAYOUT(hbf1xdm2)
|
||||
// AY8910/YM2149?
|
||||
// FDC: wd2793, 1 3.5" DSDD drive
|
||||
MCFG_FRAGMENT_ADD( msx_wd2793 )
|
||||
MCFG_FRAGMENT_ADD( msx_1_35_dd_drive )
|
||||
// 2 Cartridge slots?
|
||||
MACHINE_CONFIG_END
|
||||
|
||||
@ -4350,6 +4455,8 @@ static MACHINE_CONFIG_DERIVED( hbf500, msx2 )
|
||||
MCFG_MSX_LAYOUT(hbf500)
|
||||
// AY8910/YM2149?
|
||||
// FDC: wd2793, 1 3.5" DSDD drive
|
||||
MCFG_FRAGMENT_ADD( msx_wd2793 )
|
||||
MCFG_FRAGMENT_ADD( msx_1_35_dd_drive )
|
||||
// 2 Cartridge slots?
|
||||
MACHINE_CONFIG_END
|
||||
|
||||
@ -4378,6 +4485,8 @@ static MACHINE_CONFIG_DERIVED( hbf500p, msx2_pal )
|
||||
MCFG_MSX_LAYOUT(hbf500p)
|
||||
// AY8910/YM2149?
|
||||
// FDC: wd2793, 1 3.5" DSDD drive
|
||||
MCFG_FRAGMENT_ADD( msx_wd2793 )
|
||||
MCFG_FRAGMENT_ADD( msx_1_35_dd_drive )
|
||||
// 3 Cartridge slots or 2 Cartridge slots and 1 expansion slot ?
|
||||
MACHINE_CONFIG_END
|
||||
|
||||
@ -4405,6 +4514,8 @@ static MACHINE_CONFIG_DERIVED( hbf700d, msx2_pal )
|
||||
MCFG_MSX_LAYOUT(hbf700d)
|
||||
// YM2149 (in S-1985 MSX Engine)
|
||||
// FDC: wd2793, 1 3.5" DSDD drive
|
||||
MCFG_FRAGMENT_ADD( msx_wd2793 )
|
||||
MCFG_FRAGMENT_ADD( msx_1_35_dd_drive )
|
||||
// 2 Cartridge slots
|
||||
// S-1985 MSX Engine
|
||||
MACHINE_CONFIG_END
|
||||
@ -4433,6 +4544,8 @@ static MACHINE_CONFIG_DERIVED( hbf700f, msx2_pal )
|
||||
MCFG_MSX_LAYOUT(hbf700f)
|
||||
// AY8910/YM2149?
|
||||
// FDC: wd2793, 1 3.5" DSDD drive
|
||||
MCFG_FRAGMENT_ADD( msx_wd2793 )
|
||||
MCFG_FRAGMENT_ADD( msx_1_35_dd_drive )
|
||||
// 2 Cartridge slots
|
||||
MACHINE_CONFIG_END
|
||||
|
||||
@ -4460,6 +4573,8 @@ static MACHINE_CONFIG_DERIVED( hbf700p, msx2_pal )
|
||||
MCFG_MSX_LAYOUT(hbf700p)
|
||||
// YM2149 (in S-1985 MSX Engine)
|
||||
// FDC: wd2793, 1 3.5" DSDD drive
|
||||
MCFG_FRAGMENT_ADD( msx_wd2793 )
|
||||
MCFG_FRAGMENT_ADD( msx_1_35_dd_drive )
|
||||
// 2 Cartridge slots
|
||||
// S-1985 MSX Engine
|
||||
MACHINE_CONFIG_END
|
||||
@ -4488,6 +4603,8 @@ static MACHINE_CONFIG_DERIVED( hbf700s, msx2_pal )
|
||||
MCFG_MSX_LAYOUT(hbf700s)
|
||||
// AY8910/YM2149?
|
||||
// FDC: wd2793, 1 3.5" DSDD drive
|
||||
MCFG_FRAGMENT_ADD( msx_wd2793 )
|
||||
MCFG_FRAGMENT_ADD( msx_1_35_dd_drive )
|
||||
// 2 Cartridge slots
|
||||
MACHINE_CONFIG_END
|
||||
|
||||
@ -4519,6 +4636,8 @@ static MACHINE_CONFIG_DERIVED( hbf900, msx2 )
|
||||
MCFG_MSX_LAYOUT(hbf900)
|
||||
// AY8910/YM2149?
|
||||
// FDC: wd2793, 2 3.5" DSDD drives
|
||||
MCFG_FRAGMENT_ADD( msx_wd2793 )
|
||||
MCFG_FRAGMENT_ADD( msx_2_35_dd_drive )
|
||||
// 2 Cartridge slots
|
||||
MACHINE_CONFIG_END
|
||||
|
||||
@ -4550,6 +4669,8 @@ static MACHINE_CONFIG_DERIVED( hbf900a, msx2 )
|
||||
MCFG_MSX_LAYOUT(hbf900a)
|
||||
// AY8910/YM2149?
|
||||
// FDC: wd2793, 2 3.5" DSDD drives
|
||||
MCFG_FRAGMENT_ADD( msx_wd2793 )
|
||||
MCFG_FRAGMENT_ADD( msx_2_35_dd_drive )
|
||||
// 2 Cartridge slots
|
||||
MACHINE_CONFIG_END
|
||||
|
||||
@ -4672,6 +4793,8 @@ static MACHINE_CONFIG_DERIVED( hbg900ap, msx2_pal )
|
||||
MCFG_MSX_LAYOUT(hbg900ap)
|
||||
// AY8910/YM2149?
|
||||
// FDC: wd2793, 1 3.5" DSDD drive
|
||||
MCFG_FRAGMENT_ADD( msx_wd2793 )
|
||||
MCFG_FRAGMENT_ADD( msx_1_35_dd_drive )
|
||||
// 2 Cartridge slots?
|
||||
MACHINE_CONFIG_END
|
||||
|
||||
@ -4704,6 +4827,8 @@ static MACHINE_CONFIG_DERIVED( hbg900p, msx2_pal )
|
||||
MCFG_MSX_LAYOUT(hbg900p)
|
||||
// AY8910/YM2149?
|
||||
// FDC: wd2793, 1 3.5" DSDD drive
|
||||
MCFG_FRAGMENT_ADD( msx_wd2793 )
|
||||
MCFG_FRAGMENT_ADD( msx_1_35_dd_drive )
|
||||
// 2 Cartridge slots?
|
||||
MACHINE_CONFIG_END
|
||||
|
||||
@ -4962,6 +5087,8 @@ static MACHINE_CONFIG_DERIVED( expert3i, msx2p )
|
||||
MCFG_MSX_LAYOUT(expert3i)
|
||||
// AY8910/YM2149?
|
||||
// FDC: wd2793, 1 or 2? drives
|
||||
MCFG_FRAGMENT_ADD( msx_wd2793 )
|
||||
MCFG_FRAGMENT_ADD( msx_1_35_dd_drive )
|
||||
// 2 Cartridge slots?
|
||||
MACHINE_CONFIG_END
|
||||
|
||||
@ -4992,6 +5119,8 @@ static MACHINE_CONFIG_DERIVED( expert3t, msx2p )
|
||||
MCFG_MSX_LAYOUT(expert3t)
|
||||
// AY8910
|
||||
// FDC: wd2793?, 1 or 2? drives
|
||||
MCFG_FRAGMENT_ADD( msx_wd2793 )
|
||||
MCFG_FRAGMENT_ADD( msx_1_35_dd_drive )
|
||||
// 4 Cartridge/Expansion slots?
|
||||
// FM/YM2413 built-in
|
||||
MACHINE_CONFIG_END
|
||||
@ -5022,6 +5151,8 @@ static MACHINE_CONFIG_DERIVED( expertac, msx2p )
|
||||
MCFG_MSX_LAYOUT(expertac)
|
||||
// AY8910/YM2149?
|
||||
// FDC: wd2793?, 1 or 2? drives
|
||||
MCFG_FRAGMENT_ADD( msx_wd2793 )
|
||||
MCFG_FRAGMENT_ADD( msx_1_35_dd_drive )
|
||||
// 2 Cartridge slots?
|
||||
MACHINE_CONFIG_END
|
||||
|
||||
@ -5085,6 +5216,8 @@ static MACHINE_CONFIG_DERIVED( fsa1fx, msx2p )
|
||||
MCFG_MSX_LAYOUT(fsa1fx)
|
||||
// AY8910/YM2149?
|
||||
// FDC: tc8566af, 1 3.5" DSDD drive
|
||||
MCFG_FRAGMENT_ADD( msx_tc8566af )
|
||||
MCFG_FRAGMENT_ADD( msx_1_35_dd_drive )
|
||||
// 2 Cartridge slots?
|
||||
MACHINE_CONFIG_END
|
||||
|
||||
@ -5122,6 +5255,8 @@ static MACHINE_CONFIG_DERIVED( fsa1wsx, msx2p )
|
||||
MCFG_MSX_LAYOUT(fsa1wsx)
|
||||
// AY8910/YM2149?
|
||||
// FDC: tc8566af, 1 3.5" DSDD drive
|
||||
MCFG_FRAGMENT_ADD( msx_tc8566af )
|
||||
MCFG_FRAGMENT_ADD( msx_1_35_dd_drive )
|
||||
// 2 Cartridge slots
|
||||
// FM built-in
|
||||
MACHINE_CONFIG_END
|
||||
@ -5160,6 +5295,8 @@ static MACHINE_CONFIG_DERIVED( fsa1wx, msx2p )
|
||||
MCFG_MSX_LAYOUT(fsa1wx)
|
||||
// AY8910/YM2149?
|
||||
// FDC: tc8566af, 1 3.5" DSDD drive
|
||||
MCFG_FRAGMENT_ADD( msx_tc8566af )
|
||||
MCFG_FRAGMENT_ADD( msx_1_35_dd_drive )
|
||||
// 2 Cartridge slots
|
||||
// FM built-in
|
||||
MACHINE_CONFIG_END
|
||||
@ -5197,6 +5334,8 @@ static MACHINE_CONFIG_DERIVED( fsa1wxa, msx2p )
|
||||
MCFG_MSX_LAYOUT(fsa1wxa)
|
||||
// AY8910/YM2149?
|
||||
// FDC: tc8566af, 1 3.5" DSDD drive
|
||||
MCFG_FRAGMENT_ADD( msx_tc8566af )
|
||||
MCFG_FRAGMENT_ADD( msx_1_35_dd_drive )
|
||||
// 2 Cartridge slots?
|
||||
// FM built-in
|
||||
MACHINE_CONFIG_END
|
||||
@ -5264,6 +5403,8 @@ static MACHINE_CONFIG_DERIVED( phc70fd, msx2p )
|
||||
MCFG_MSX_LAYOUT(phc70fd)
|
||||
// AY8910/YM2149?
|
||||
// FDC: tc8566af, 1 3.5" DSDD drive
|
||||
MCFG_FRAGMENT_ADD( msx_tc8566af )
|
||||
MCFG_FRAGMENT_ADD( msx_1_35_dd_drive )
|
||||
// 2 Cartridge slots
|
||||
// FM built-in
|
||||
MACHINE_CONFIG_END
|
||||
@ -5300,6 +5441,8 @@ static MACHINE_CONFIG_DERIVED( phc70fd2, msx2p )
|
||||
MCFG_MSX_LAYOUT(phc70fd2)
|
||||
// AY8910/YM2149?
|
||||
// FDC: tc8566af, 2 3.5" DSDD drives
|
||||
MCFG_FRAGMENT_ADD( msx_tc8566af )
|
||||
MCFG_FRAGMENT_ADD( msx_2_35_dd_drive )
|
||||
// 2 Cartridge slots
|
||||
// FM built-in
|
||||
MACHINE_CONFIG_END
|
||||
@ -5338,6 +5481,8 @@ static MACHINE_CONFIG_DERIVED( hbf1xdj, msx2p )
|
||||
MCFG_MSX_LAYOUT(hbf1xdj)
|
||||
// YM2149 (in S-1985 MSX Engine)
|
||||
// FDC: wd2793, 1 3.5" DSDD drive
|
||||
MCFG_FRAGMENT_ADD( msx_wd2793 )
|
||||
MCFG_FRAGMENT_ADD( msx_1_35_dd_drive )
|
||||
// 2 Cartridge slots
|
||||
// FM built-in
|
||||
// S-1985 MSX Engine
|
||||
@ -5377,6 +5522,8 @@ static MACHINE_CONFIG_DERIVED( hbf1xv, msx2p )
|
||||
MCFG_MSX_LAYOUT(hbf1xv)
|
||||
// YM2149 (in S-1985 MSX Engine)
|
||||
// FDC: wd2793, 1 3.5" DSDD drives
|
||||
MCFG_FRAGMENT_ADD( msx_wd2793 )
|
||||
MCFG_FRAGMENT_ADD( msx_1_35_dd_drive )
|
||||
// 2 Cartridge slots
|
||||
// FM built-in
|
||||
// S-1985 MSX Engine
|
||||
@ -5440,6 +5587,8 @@ static MACHINE_CONFIG_DERIVED( fsa1gt, msx2 )
|
||||
MCFG_MSX_LAYOUT(fsa1gt)
|
||||
// AY8910/YM2149?
|
||||
// FDC: tc8566af, 1 3.5" DSDD drive
|
||||
MCFG_FRAGMENT_ADD( msx_tc8566af )
|
||||
MCFG_FRAGMENT_ADD( msx_1_35_dd_drive )
|
||||
// 2 Cartridge slots
|
||||
// FM built-in
|
||||
// MIDI
|
||||
@ -5476,6 +5625,8 @@ static MACHINE_CONFIG_DERIVED( fsa1st, msx2 )
|
||||
MCFG_MSX_LAYOUT(fsa1st)
|
||||
// AY8910/YM2149?
|
||||
// FDC: tc8566af, 1 3.5" DSDD drive
|
||||
MCFG_FRAGMENT_ADD( msx_tc8566af )
|
||||
MCFG_FRAGMENT_ADD( msx_1_35_dd_drive )
|
||||
// 2 Cartridge slots
|
||||
// FM built-in
|
||||
MACHINE_CONFIG_END
|
||||
|
@ -11,7 +11,6 @@
|
||||
#include "cpu/z80/z80.h"
|
||||
#include "machine/i8255.h"
|
||||
#include "machine/rp5c01.h"
|
||||
#include "machine/wd17xx.h"
|
||||
#include "machine/buffer.h"
|
||||
#include "bus/centronics/ctronics.h"
|
||||
#include "sound/ay8910.h"
|
||||
@ -30,6 +29,8 @@
|
||||
//#include "osdepend.h"
|
||||
#include "hashfile.h"
|
||||
#include "includes/msx_slot.h"
|
||||
#include "machine/wd_fdc.h"
|
||||
#include "imagedev/floppy.h"
|
||||
|
||||
#define MSX_MAX_CARTS (2)
|
||||
|
||||
@ -53,7 +54,10 @@ public:
|
||||
m_k051649(*this, "k051649"),
|
||||
m_dac(*this, "dac"),
|
||||
m_rtc(*this, TC8521_TAG),
|
||||
m_wd179x(*this, "wd179x"),
|
||||
m_fdc(*this, "fdc"),
|
||||
m_floppy0(*this, "fdc:0"),
|
||||
m_floppy1(*this, "fdc:1"),
|
||||
m_floppy(NULL),
|
||||
m_bank1(*this, "bank1"),
|
||||
m_bank2(*this, "bank2"),
|
||||
m_bank3(*this, "bank3"),
|
||||
@ -153,7 +157,12 @@ public:
|
||||
optional_device<k051649_device> m_k051649;
|
||||
required_device<dac_device> m_dac;
|
||||
optional_device<rp5c01_device> m_rtc;
|
||||
optional_device<fd1793_device> m_wd179x;
|
||||
optional_device<wd_fdc_analog_t> m_fdc;
|
||||
optional_device<floppy_connector> m_floppy0;
|
||||
optional_device<floppy_connector> m_floppy1;
|
||||
floppy_image_device *m_floppy;
|
||||
DECLARE_FLOPPY_FORMATS(floppy_formats);
|
||||
|
||||
DECLARE_READ8_MEMBER(msx_psg_port_a_r);
|
||||
DECLARE_READ8_MEMBER(msx_psg_port_b_r);
|
||||
DECLARE_WRITE8_MEMBER(msx_psg_port_a_w);
|
||||
@ -211,8 +220,4 @@ protected:
|
||||
};
|
||||
|
||||
|
||||
/*----------- defined in machine/msx.c -----------*/
|
||||
|
||||
extern const wd17xx_interface msx_wd17xx_interface;
|
||||
|
||||
#endif /* __MSX_H__ */
|
||||
|
@ -373,7 +373,7 @@ MACHINE_START_MEMBER(msx_state,msx)
|
||||
MACHINE_START_MEMBER(msx_state,msx2)
|
||||
{
|
||||
m_port_c_old = 0xff;
|
||||
m_dsk_stat = 0x7f;
|
||||
m_dsk_stat = 0x3f;
|
||||
}
|
||||
|
||||
MACHINE_RESET_MEMBER(msx_state,msx)
|
||||
@ -689,28 +689,6 @@ WRITE_LINE_MEMBER( msx_state::msx_wd179x_drq_w )
|
||||
m_dsk_stat |= 0x80;
|
||||
}
|
||||
|
||||
const wd17xx_interface msx_wd17xx_interface =
|
||||
{
|
||||
DEVCB_LINE_VCC,
|
||||
DEVCB_DRIVER_LINE_MEMBER(msx_state, msx_wd179x_intrq_w),
|
||||
DEVCB_DRIVER_LINE_MEMBER(msx_state, msx_wd179x_drq_w),
|
||||
{FLOPPY_0, FLOPPY_1, NULL, NULL}
|
||||
};
|
||||
|
||||
LEGACY_FLOPPY_OPTIONS_START(msx)
|
||||
LEGACY_FLOPPY_OPTION(msx, "dsk", "MSX SS", basicdsk_identify_default, basicdsk_construct_default, NULL,
|
||||
HEADS([1])
|
||||
TRACKS([80])
|
||||
SECTORS([9])
|
||||
SECTOR_LENGTH([512])
|
||||
FIRST_SECTOR_ID([1]))
|
||||
LEGACY_FLOPPY_OPTION(msx, "dsk", "MSX DS", basicdsk_identify_default, basicdsk_construct_default, NULL,
|
||||
HEADS([2])
|
||||
TRACKS([80])
|
||||
SECTORS([9])
|
||||
SECTOR_LENGTH([512])
|
||||
FIRST_SECTOR_ID([1]))
|
||||
LEGACY_FLOPPY_OPTIONS_END
|
||||
|
||||
/*
|
||||
** The PPI functions
|
||||
|
@ -22,7 +22,6 @@
|
||||
#include "machine/i8255.h"
|
||||
#include "includes/msx_slot.h"
|
||||
#include "includes/msx.h"
|
||||
#include "machine/wd17xx.h"
|
||||
#include "sound/k051649.h"
|
||||
#include "sound/2413intf.h"
|
||||
#include "sound/dac.h"
|
||||
@ -1230,17 +1229,18 @@ MSX_SLOT_INIT(diskrom)
|
||||
MSX_SLOT_RESET(diskrom)
|
||||
{
|
||||
msx_state *drvstate = machine.driver_data<msx_state>();
|
||||
drvstate->m_wd179x->reset();
|
||||
drvstate->m_fdc->soft_reset();
|
||||
drvstate->m_fdc->dden_w(false);
|
||||
}
|
||||
|
||||
READ8_MEMBER(msx_state::msx_diskrom_page1_r)
|
||||
{
|
||||
switch (offset)
|
||||
{
|
||||
case 0: return m_wd179x->status_r (space, 0);
|
||||
case 1: return m_wd179x->track_r (space, 0);
|
||||
case 2: return m_wd179x->sector_r (space, 0);
|
||||
case 3: return m_wd179x->data_r (space, 0);
|
||||
case 0: return m_fdc->status_r();
|
||||
case 1: return m_fdc->track_r();
|
||||
case 2: return m_fdc->sector_r();
|
||||
case 3: return m_fdc->data_r();
|
||||
case 7: return m_dsk_stat;
|
||||
default:
|
||||
return m_state[1]->m_mem[offset + 0x3ff8];
|
||||
@ -1254,13 +1254,13 @@ READ8_MEMBER(msx_state::msx_diskrom_page2_r)
|
||||
switch (offset)
|
||||
{
|
||||
case 0x7f8:
|
||||
return m_wd179x->status_r (space, 0);
|
||||
return m_fdc->status_r();
|
||||
case 0x7f9:
|
||||
return m_wd179x->track_r (space, 0);
|
||||
return m_fdc->track_r();
|
||||
case 0x7fa:
|
||||
return m_wd179x->sector_r (space, 0);
|
||||
return m_fdc->sector_r();
|
||||
case 0x7fb:
|
||||
return m_wd179x->data_r (space, 0);
|
||||
return m_fdc->data_r();
|
||||
case 0x7ff:
|
||||
return m_dsk_stat;
|
||||
default:
|
||||
@ -1303,7 +1303,6 @@ MSX_SLOT_MAP(diskrom)
|
||||
MSX_SLOT_WRITE(diskrom)
|
||||
{
|
||||
msx_state *drvstate = machine.driver_data<msx_state>();
|
||||
address_space &space = drvstate->m_maincpu->space(AS_PROGRAM);
|
||||
if (addr >= 0xa000 && addr < 0xc000)
|
||||
{
|
||||
addr -= 0x4000;
|
||||
@ -1311,23 +1310,42 @@ MSX_SLOT_WRITE(diskrom)
|
||||
switch (addr)
|
||||
{
|
||||
case 0x7ff8:
|
||||
drvstate->m_wd179x->command_w (space, 0, val);
|
||||
drvstate->m_fdc->cmd_w(val);
|
||||
break;
|
||||
case 0x7ff9:
|
||||
drvstate->m_wd179x->track_w (space, 0, val);
|
||||
drvstate->m_fdc->track_w(val);
|
||||
break;
|
||||
case 0x7ffa:
|
||||
drvstate->m_wd179x->sector_w (space, 0, val);
|
||||
drvstate->m_fdc->sector_w(val);
|
||||
break;
|
||||
case 0x7ffb:
|
||||
drvstate->m_wd179x->data_w (space, 0, val);
|
||||
drvstate->m_fdc->data_w(val);
|
||||
break;
|
||||
case 0x7ffc:
|
||||
drvstate->m_wd179x->set_side (val & 1);
|
||||
if (drvstate->m_floppy)
|
||||
{
|
||||
drvstate->m_floppy->ss_w(val & 1);
|
||||
}
|
||||
state->m_mem[0x3ffc] = val | 0xfe;
|
||||
break;
|
||||
case 0x7ffd:
|
||||
drvstate->m_wd179x->set_drive (val & 1);
|
||||
switch (val & 3)
|
||||
{
|
||||
case 0: case 2:
|
||||
drvstate->m_floppy = (drvstate->m_floppy0) ? drvstate->m_floppy0->get_device() : NULL;
|
||||
break;
|
||||
case 1:
|
||||
drvstate->m_floppy = (drvstate->m_floppy1) ? drvstate->m_floppy1->get_device() : NULL;
|
||||
break;
|
||||
default:
|
||||
drvstate->m_floppy = NULL;
|
||||
}
|
||||
if (drvstate->m_floppy)
|
||||
{
|
||||
drvstate->m_floppy->mon_w((val & 0x80) ? 0 : 1);
|
||||
drvstate->m_floppy->ss_w(state->m_mem[0x3ffc] & 1);
|
||||
}
|
||||
drvstate->m_fdc->set_floppy(drvstate->m_floppy);
|
||||
if ((state->m_mem[0x3ffd] ^ val) & 0x40)
|
||||
{
|
||||
set_led_status (machine, 0, !(val & 0x40));
|
||||
@ -1355,17 +1373,17 @@ MSX_SLOT_INIT(diskrom2)
|
||||
MSX_SLOT_RESET(diskrom2)
|
||||
{
|
||||
msx_state *drvstate = machine.driver_data<msx_state>();
|
||||
drvstate->m_wd179x->reset();
|
||||
drvstate->m_fdc->reset();
|
||||
}
|
||||
|
||||
READ8_MEMBER(msx_state::msx_diskrom2_page1_r)
|
||||
{
|
||||
switch (offset)
|
||||
{
|
||||
case 0: return m_wd179x->status_r(space, 0);
|
||||
case 1: return m_wd179x->track_r(space, 0);
|
||||
case 2: return m_wd179x->sector_r(space, 0);
|
||||
case 3: return m_wd179x->data_r(space, 0);
|
||||
case 0: return m_fdc->status_r();
|
||||
case 1: return m_fdc->track_r();
|
||||
case 2: return m_fdc->sector_r();
|
||||
case 3: return m_fdc->data_r();
|
||||
case 4: return m_dsk_stat;
|
||||
default:
|
||||
return m_state[1]->m_mem[offset + 0x3ff8];
|
||||
@ -1379,13 +1397,13 @@ READ8_MEMBER(msx_state::msx_diskrom2_page2_r)
|
||||
switch (offset)
|
||||
{
|
||||
case 0x7b8:
|
||||
return m_wd179x->status_r (space, 0);
|
||||
return m_fdc->status_r();
|
||||
case 0x7b9:
|
||||
return m_wd179x->track_r (space, 0);
|
||||
return m_fdc->track_r();
|
||||
case 0x7ba:
|
||||
return m_wd179x->sector_r (space, 0);
|
||||
return m_fdc->sector_r();
|
||||
case 0x7bb:
|
||||
return m_wd179x->data_r (space, 0);
|
||||
return m_fdc->data_r();
|
||||
case 0x7bc:
|
||||
return m_dsk_stat;
|
||||
default:
|
||||
@ -1427,7 +1445,6 @@ MSX_SLOT_MAP(diskrom2)
|
||||
MSX_SLOT_WRITE(diskrom2)
|
||||
{
|
||||
msx_state *drvstate = machine.driver_data<msx_state>();
|
||||
address_space &space = drvstate->m_maincpu->space(AS_PROGRAM);
|
||||
if (addr >= 0xa000 && addr < 0xc000)
|
||||
{
|
||||
addr -= 0x4000;
|
||||
@ -1435,21 +1452,35 @@ MSX_SLOT_WRITE(diskrom2)
|
||||
switch (addr)
|
||||
{
|
||||
case 0x7fb8:
|
||||
drvstate->m_wd179x->command_w (space, 0, val);
|
||||
drvstate->m_fdc->cmd_w(val);
|
||||
break;
|
||||
case 0x7fb9:
|
||||
drvstate->m_wd179x->track_w (space, 0, val);
|
||||
drvstate->m_fdc->track_w(val);
|
||||
break;
|
||||
case 0x7fba:
|
||||
drvstate->m_wd179x->sector_w (space, 0, val);
|
||||
drvstate->m_fdc->sector_w(val);
|
||||
break;
|
||||
case 0x7fbb:
|
||||
drvstate->m_wd179x->data_w (space, 0, val);
|
||||
drvstate->m_fdc->data_w(val);
|
||||
break;
|
||||
case 0x7fbc:
|
||||
drvstate->m_wd179x->set_side (val & 1);
|
||||
switch(val & 3)
|
||||
{
|
||||
case 1:
|
||||
drvstate->m_floppy = (drvstate->m_floppy0) ? drvstate->m_floppy0->get_device() : NULL;
|
||||
break;
|
||||
case 2:
|
||||
drvstate->m_floppy = (drvstate->m_floppy1) ? drvstate->m_floppy1->get_device() : NULL;
|
||||
break;
|
||||
default:
|
||||
drvstate->m_floppy = NULL;
|
||||
}
|
||||
if (drvstate->m_floppy) {
|
||||
drvstate->m_floppy->ss_w((val & 4) ? 1 : 0);
|
||||
drvstate->m_floppy->mon_w((val & 8) ? 0 : 1);
|
||||
}
|
||||
state->m_mem[0x3fbc] = val | 0xfe;
|
||||
drvstate->m_wd179x->set_drive (val & 1);
|
||||
drvstate->m_fdc->set_floppy(drvstate->m_floppy);
|
||||
if ((state->m_mem[0x3fbc] ^ val) & 0x40)
|
||||
{
|
||||
set_led_status (machine, 0, !(val & 0x40));
|
||||
|
Loading…
Reference in New Issue
Block a user