summaryrefslogtreecommitdiffstatshomepage
path: root/src
diff options
context:
space:
mode:
author Wilbert Pol <wilbert@jdg.info>2014-05-15 20:17:01 +0000
committer Wilbert Pol <wilbert@jdg.info>2014-05-15 20:17:01 +0000
commit3b5b4fd0eae0ab2f30cf9482aa33a7e41da7f747 (patch)
tree59a1998e9dab1ad4f185c01cba02b7055e167f5c /src
parentc8fb1ebb2efae9416ae8c7ee5e7de700bfb9f04d (diff)
(MESS) msx.c: Fixed some more floppy regressions (nw)
Diffstat (limited to 'src')
-rw-r--r--src/mess/drivers/msx.c80
1 files changed, 38 insertions, 42 deletions
diff --git a/src/mess/drivers/msx.c b/src/mess/drivers/msx.c
index 93aabf83c41..a62f032fbfe 100644
--- a/src/mess/drivers/msx.c
+++ b/src/mess/drivers/msx.c
@@ -6,7 +6,6 @@
** - piopx7: Laserdisc integration doesn't exist
** - spc800: Haven't been able to test operation of the han rom yet
** - svi728: Expansion slot not emulated
-** - svi738: Floppy support broken causing the system not to boot into basic anymore
** - svi738: v9938 not emulated
** - svi738: rs232c not emulated
** - hx10: Expansion slot not emulated (hx10s also??)
@@ -17,7 +16,6 @@
** - y503iir, y503iir2: Net not emulated
** - y503iir, y503iir2: Floppy support broken
** - yis503m: sfg not emulated
-** - ax350: Floppy support broken
** - ax370: Floppy not emulated
** - cpc300: How to get passed MSX-TUTOR?
** - cpc300e: How to test han support?
@@ -39,15 +37,7 @@
** - hotbit20: Does not boot
** - hbf1: Does not boot
** - hbf12: Does not boot
-** - hbf1xd: Does not boot when no floppy disk is present
-** - hbf1xdm2: Does not boot when no floppy disk is present
** - hbf5: Does not boot
-** - hbf500p: Does not boot when no floppy disk is present
-** - hbf700d: Does not boot when no floppy disk is present
-** - hbf700f: Does not boot when no floppy disk is present
-** - hbf900a: Does not boot when no floppy disk is present
-** - hbg900ap: Does not boot when no floppy disk is present
-** - hbg900p: Does not boot when no floppy disk is present
** - tpc310: Floppy support broken
** - tpp311: Firmware not working?
** - tps312: Firmware?
@@ -69,9 +59,7 @@
** - phc70fd: Floppy not emulated
** - phc70fd2: Floppy not emulated
** - hbf1xdj: Firmware not emulated
-** - hbf1xdj: Does not boot when no floppy disk is present
** - hbf1xv: Firmare not emulated
-** - hbf1xv: Does not boot when no floppy disk is present
** - hbf9sp: Firmware not working, can't get into basic
** - fsa1gt: Add Turbo-R support
** - fsa1st: Add Turbo-R support
@@ -1164,7 +1152,7 @@ static MACHINE_CONFIG_FRAGMENT( msx_fd1793 )
MCFG_WD_FDC_FORCE_READY
MACHINE_CONFIG_END
-static MACHINE_CONFIG_FRAGMENT( msx_wd2793 )
+static MACHINE_CONFIG_FRAGMENT( msx_wd2793_force_ready )
// From NMS8245 schematics:
// READY + HLT - pulled high
// SSO/-ENMF + -DDEN + ENP + -5/8 - pulled low
@@ -1172,6 +1160,10 @@ static MACHINE_CONFIG_FRAGMENT( msx_wd2793 )
MCFG_WD_FDC_FORCE_READY
MACHINE_CONFIG_END
+static MACHINE_CONFIG_FRAGMENT( msx_wd2793 )
+ MCFG_WD2793x_ADD("fdc", XTAL_4MHz / 4)
+MACHINE_CONFIG_END
+
static MACHINE_CONFIG_FRAGMENT( msx_mb8877a )
// From CF-3300 FDC schematic:
// READY + HLT - pulled high
@@ -2641,7 +2633,7 @@ static MACHINE_CONFIG_DERIVED( svi738sw, msx_pal )
MCFG_MSX_LAYOUT_DISK2("disk", 3, 1, 1, 1, "maincpu", 0x8000)
MCFG_MSX_LAYOUT_CARTRIDGE("cartslot2", 3, 2)
- MCFG_FRAGMENT_ADD( msx_wd2793 )
+ MCFG_FRAGMENT_ADD( msx_wd2793_force_ready )
MCFG_FRAGMENT_ADD( msx_1_35_ssdd_drive )
MCFG_FRAGMENT_ADD( msx1_floplist )
@@ -2672,7 +2664,7 @@ static MACHINE_CONFIG_DERIVED( svi738pl, msx_pal )
MCFG_MSX_LAYOUT_DISK2("disk", 3, 1, 1, 1, "maincpu", 0x8000)
MCFG_MSX_LAYOUT_CARTRIDGE("cartslot2", 3, 2)
- MCFG_FRAGMENT_ADD( msx_wd2793 )
+ MCFG_FRAGMENT_ADD( msx_wd2793_force_ready )
MCFG_FRAGMENT_ADD( msx_1_35_ssdd_drive )
MCFG_FRAGMENT_ADD( msx1_floplist )
@@ -2964,7 +2956,7 @@ static MACHINE_CONFIG_DERIVED( y503iir, msx_pal )
MCFG_MSX_LAYOUT_RAM("ram", 3, 2, 0, 4) /* 64KB RAM */
MCFG_MSX_LAYOUT_ROM("net", 3, 3, 1, 1, "maincpu", 0xc000) /* Net */
- MCFG_FRAGMENT_ADD( msx_wd2793 )
+ MCFG_FRAGMENT_ADD( msx_wd2793_force_ready )
MCFG_FRAGMENT_ADD( msx_1_35_dd_drive )
MCFG_FRAGMENT_ADD( msx1_floplist )
@@ -2992,7 +2984,7 @@ static MACHINE_CONFIG_DERIVED( y503iir2, msx_pal )
MCFG_MSX_LAYOUT_RAM("ram", 3, 2, 0, 4) /* 64KB RAM */
MCFG_MSX_LAYOUT_ROM("net", 3, 3, 1, 1, "maincpu", 0xc000) /* Net */
- MCFG_FRAGMENT_ADD( msx_wd2793 )
+ MCFG_FRAGMENT_ADD( msx_wd2793_force_ready )
MCFG_FRAGMENT_ADD( msx_1_35_dd_drive )
MCFG_FRAGMENT_ADD( msx1_floplist )
@@ -3101,7 +3093,7 @@ static MACHINE_CONFIG_DERIVED( msx2_gen, msx2_pal )
MCFG_MSX_LAYOUT_RAM_MM("ram_mm", 3, 3, 0x20000) /* 128KB Mapper RAM */
MCFG_MSX_RAMIO_SET_BITS(0xf8)
- MCFG_FRAGMENT_ADD( msx_wd2793 )
+ MCFG_FRAGMENT_ADD( msx_wd2793_force_ready )
MCFG_FRAGMENT_ADD( msx_1_35_dd_drive )
MCFG_FRAGMENT_ADD( msx2_floplist )
@@ -3138,7 +3130,7 @@ static MACHINE_CONFIG_DERIVED( ax350, msx2_pal )
MCFG_MSX_LAYOUT_RAM_MM("ram_mm", 3, 2, 0x20000) /* 128KB Mapper RAM */
MCFG_MSX_RAMIO_SET_BITS(0xf8)
- MCFG_FRAGMENT_ADD( msx_wd2793 )
+ MCFG_FRAGMENT_ADD( msx_wd2793_force_ready )
MCFG_FRAGMENT_ADD( msx_1_35_dd_drive )
MCFG_FRAGMENT_ADD( msx2_floplist )
@@ -3371,7 +3363,7 @@ static MACHINE_CONFIG_DERIVED( mlg30, msx2 )
MCFG_MSX_LAYOUT_DISK1("disk", 3, 0, 1, 1, "maincpu", 0xc000)
MCFG_MSX_LAYOUT_RAM_MM("ram_mm", 3, 2, 0x10000) /* 64KB Mapper RAM */
- MCFG_FRAGMENT_ADD( msx_wd2793 )
+ MCFG_FRAGMENT_ADD( msx_wd2793_force_ready )
MCFG_FRAGMENT_ADD( msx_1_35_dd_drive )
MCFG_FRAGMENT_ADD( msx2_floplist )
@@ -3569,7 +3561,7 @@ static MACHINE_CONFIG_DERIVED( fs5000, msx2 )
MCFG_MSX_S1985_ADD("s1985")
- MCFG_FRAGMENT_ADD( msx_wd2793 )
+ MCFG_FRAGMENT_ADD( msx_wd2793_force_ready )
MCFG_FRAGMENT_ADD( msx_2_35_dd_drive )
MCFG_FRAGMENT_ADD( msx2_floplist )
@@ -3871,7 +3863,7 @@ static MACHINE_CONFIG_DERIVED( nms8245, msx2_pal )
MCFG_MSX_RAMIO_SET_BITS(0xf8)
MCFG_MSX_LAYOUT_DISK1("disk", 3, 3, 1, 1, "maincpu", 0x2c000)
- MCFG_FRAGMENT_ADD( msx_wd2793 )
+ MCFG_FRAGMENT_ADD( msx_wd2793_force_ready )
MCFG_FRAGMENT_ADD( msx_1_35_dd_drive )
MCFG_FRAGMENT_ADD( msx2_floplist )
@@ -3902,7 +3894,7 @@ static MACHINE_CONFIG_DERIVED( nms8245f, msx2_pal )
MCFG_MSX_RAMIO_SET_BITS(0xf8)
MCFG_MSX_LAYOUT_DISK1("disk", 3, 3, 1, 1, "maincpu", 0x3c000)
- MCFG_FRAGMENT_ADD( msx_wd2793 )
+ MCFG_FRAGMENT_ADD( msx_wd2793_force_ready )
MCFG_FRAGMENT_ADD( msx_1_35_dd_drive )
MCFG_FRAGMENT_ADD( msx2_floplist )
@@ -3935,7 +3927,7 @@ static MACHINE_CONFIG_DERIVED( nms8250, msx2_pal )
MCFG_MSX_RAMIO_SET_BITS(0xf8)
MCFG_MSX_LAYOUT_DISK1("disk", 3, 3, 1, 1, "maincpu", 0xc000)
- MCFG_FRAGMENT_ADD( msx_wd2793 )
+ MCFG_FRAGMENT_ADD( msx_wd2793_force_ready )
MCFG_FRAGMENT_ADD( msx_1_35_dd_drive )
MCFG_FRAGMENT_ADD( msx2_floplist )
@@ -3949,6 +3941,8 @@ ROM_START (nms8250j)
ROM_LOAD ("8250jbios.rom", 0x0000, 0x8000, CRC(9b3e7b97) SHA1(0081ea0d25bc5cd8d70b60ad8cfdc7307812c0fd))
ROM_LOAD ("8250jext.rom", 0x8000, 0x4000, CRC(4a48779c) SHA1(b8e30d604d319d511cbfbc61e5d8c38fbb9c5a33))
ROM_LOAD ("8250jdisk.rom", 0xc000, 0x4000, CRC(ca3307d3) SHA1(c3efedda7ab947a06d9345f7b8261076fa7ceeef))
+
+ ROM_REGION(0x20000, "kanji", 0)
ROM_LOAD ("8250jkfn.rom", 0x20000, 0x20000, CRC(5a59926e) SHA1(6acaf2eeb57f65f7408235d5e07b7563229de799))
ROM_END
@@ -3964,7 +3958,7 @@ static MACHINE_CONFIG_DERIVED( nms8250j, msx2 )
MCFG_MSX_LAYOUT_RAM_MM("ram_mm", 3, 2, 0x20000) /* 128KB Mapper RAM */
MCFG_MSX_LAYOUT_DISK1("disk", 3, 3, 1, 1, "maincpu", 0xc000)
- MCFG_FRAGMENT_ADD( msx_wd2793 )
+ MCFG_FRAGMENT_ADD( msx_wd2793_force_ready )
MCFG_FRAGMENT_ADD( msx_1_35_dd_drive )
MCFG_FRAGMENT_ADD( msx2_floplist )
@@ -3996,7 +3990,7 @@ static MACHINE_CONFIG_DERIVED( nms8255, msx2_pal )
MCFG_MSX_RAMIO_SET_BITS(0xf8)
MCFG_MSX_LAYOUT_DISK1("disk", 3, 3, 1, 1, "maincpu", 0xc000)
- MCFG_FRAGMENT_ADD( msx_wd2793 )
+ MCFG_FRAGMENT_ADD( msx_wd2793_force_ready )
MCFG_FRAGMENT_ADD( msx_2_35_dd_drive )
MCFG_FRAGMENT_ADD( msx2_floplist )
@@ -4027,7 +4021,7 @@ static MACHINE_CONFIG_DERIVED( nms8280, msx2_pal )
MCFG_MSX_RAMIO_SET_BITS(0xf8)
MCFG_MSX_LAYOUT_DISK1("disk", 3, 3, 1, 1, "maincpu", 0xc000)
- MCFG_FRAGMENT_ADD( msx_wd2793 )
+ MCFG_FRAGMENT_ADD( msx_wd2793_force_ready )
MCFG_FRAGMENT_ADD( msx_2_35_dd_drive )
MCFG_FRAGMENT_ADD( msx2_floplist )
@@ -4058,7 +4052,7 @@ static MACHINE_CONFIG_DERIVED( nms8280g, msx2_pal )
MCFG_MSX_RAMIO_SET_BITS(0xf8)
MCFG_MSX_LAYOUT_DISK1("disk", 3, 3, 1, 1, "maincpu", 0xc000)
- MCFG_FRAGMENT_ADD( msx_wd2793 )
+ MCFG_FRAGMENT_ADD( msx_wd2793_force_ready )
MCFG_FRAGMENT_ADD( msx_2_35_dd_drive )
MCFG_FRAGMENT_ADD( msx2_floplist )
@@ -4090,7 +4084,7 @@ static MACHINE_CONFIG_DERIVED( vg8230, msx2_pal )
MCFG_MSX_RAMIO_SET_BITS(0xf8)
MCFG_MSX_LAYOUT_DISK1("disk", 3, 3, 1, 1, "maincpu", 0xc000)
- MCFG_FRAGMENT_ADD( msx_wd2793 )
+ MCFG_FRAGMENT_ADD( msx_wd2793_force_ready )
MCFG_FRAGMENT_ADD( msx_1_35_ssdd_drive )
MCFG_FRAGMENT_ADD( msx2_floplist )
@@ -4106,6 +4100,8 @@ ROM_START (vg8230j)
ROM_LOAD ("8230jdisk.rom", 0xc000, 0x4000, CRC(7639758a) SHA1(0f5798850d11b316a4254b222ca08cc4ad6d4da2))
/* 0x10000 - 0x1ffff reserved for optional fmpac roms from msx2 parent set */
ROM_FILL (0x10000, 0x10000, 0)
+
+ ROM_REGION(0x20000, "kanji", 0)
ROM_LOAD ("8230jkfn.rom", 0x20000, 0x20000, CRC(5a59926e) SHA1(6acaf2eeb57f65f7408235d5e07b7563229de799))
ROM_END
@@ -4121,7 +4117,7 @@ static MACHINE_CONFIG_DERIVED( vg8230j, msx2 )
MCFG_MSX_LAYOUT_RAM_MM("ram_mm", 3, 2, 0x20000) /* 128KB Mapper RAM */
MCFG_MSX_LAYOUT_DISK1("disk", 3, 3, 1, 1, "maincpu", 0xc000)
- MCFG_FRAGMENT_ADD( msx_wd2793 )
+ MCFG_FRAGMENT_ADD( msx_wd2793_force_ready )
MCFG_FRAGMENT_ADD( msx_1_35_ssdd_drive )
MCFG_FRAGMENT_ADD( msx2_floplist )
@@ -4153,7 +4149,7 @@ static MACHINE_CONFIG_DERIVED( vg8235, msx2_pal )
MCFG_MSX_RAMIO_SET_BITS(0xf8)
MCFG_MSX_LAYOUT_DISK1("disk", 3, 3, 1, 1, "maincpu", 0xc000)
- MCFG_FRAGMENT_ADD( msx_wd2793 )
+ MCFG_FRAGMENT_ADD( msx_wd2793_force_ready )
MCFG_FRAGMENT_ADD( msx_1_35_ssdd_drive )
MCFG_FRAGMENT_ADD( msx2_floplist )
@@ -4185,7 +4181,7 @@ static MACHINE_CONFIG_DERIVED( vg8235f, msx2_pal )
MCFG_MSX_RAMIO_SET_BITS(0xf8)
MCFG_MSX_LAYOUT_DISK1("disk", 3, 3, 1, 1, "maincpu", 0xc000)
- MCFG_FRAGMENT_ADD( msx_wd2793 )
+ MCFG_FRAGMENT_ADD( msx_wd2793_force_ready )
MCFG_FRAGMENT_ADD( msx_1_35_ssdd_drive )
MCFG_FRAGMENT_ADD( msx2_floplist )
@@ -4216,7 +4212,7 @@ static MACHINE_CONFIG_DERIVED( vg8240, msx2_pal )
MCFG_MSX_RAMIO_SET_BITS(0xf8)
MCFG_MSX_LAYOUT_DISK1("disk", 3, 3, 1, 1, "maincpu", 0xc000)
- MCFG_FRAGMENT_ADD( msx_wd2793 )
+ MCFG_FRAGMENT_ADD( msx_wd2793_force_ready )
MCFG_FRAGMENT_ADD( msx_1_35_dd_drive )
MCFG_FRAGMENT_ADD( msx2_floplist )
@@ -4268,7 +4264,7 @@ static MACHINE_CONFIG_DERIVED( mpc25fd, msx2 )
MCFG_MSX_LAYOUT_DISK1("disk", 3, 1, 1, 1, "maincpu", 0xc000)
MCFG_MSX_LAYOUT_RAM_MM("ram_mm", 3, 2, 0x20000) /* 128KB?? RAM */
- MCFG_FRAGMENT_ADD( msx_wd2793 )
+ MCFG_FRAGMENT_ADD( msx_wd2793_force_ready )
MCFG_FRAGMENT_ADD( msx_1_35_dd_drive )
MCFG_FRAGMENT_ADD( msx2_floplist )
@@ -4512,7 +4508,7 @@ static MACHINE_CONFIG_DERIVED( hbf500, msx2 )
MCFG_MSX_LAYOUT_CARTRIDGE("cartslot1", 1, 0)
MCFG_MSX_LAYOUT_CARTRIDGE("cartslot2", 2, 0)
- MCFG_FRAGMENT_ADD( msx_wd2793 )
+ MCFG_FRAGMENT_ADD( msx_wd2793_force_ready )
MCFG_FRAGMENT_ADD( msx_1_35_dd_drive )
MCFG_FRAGMENT_ADD( msx2_floplist )
@@ -4639,7 +4635,7 @@ static MACHINE_CONFIG_DERIVED( hbf700p, msx2_pal )
MCFG_MSX_S1985_ADD("s1985")
- MCFG_FRAGMENT_ADD( msx_wd2793 )
+ MCFG_FRAGMENT_ADD( msx_wd2793_force_ready )
MCFG_FRAGMENT_ADD( msx_1_35_dd_drive )
MCFG_FRAGMENT_ADD( msx2_floplist )
@@ -4669,7 +4665,7 @@ static MACHINE_CONFIG_DERIVED( hbf700s, msx2_pal )
MCFG_MSX_LAYOUT_RAM_MM("ram_mm", 3, 3, 0x40000) /* 256KB Mapper RAM */
MCFG_MSX_RAMIO_SET_BITS(0x80)
- MCFG_FRAGMENT_ADD( msx_wd2793 )
+ MCFG_FRAGMENT_ADD( msx_wd2793_force_ready )
MCFG_FRAGMENT_ADD( msx_1_35_dd_drive )
MCFG_FRAGMENT_ADD( msx2_floplist )
@@ -4704,7 +4700,7 @@ static MACHINE_CONFIG_DERIVED( hbf900, msx2 )
MCFG_MSX_RAMIO_SET_BITS(0x80)
MCFG_MSX_LAYOUT_ROM("empty", 3, 3, 1, 1, "maincpu", 0x10000) // Empty/unknown, optional fmpac rom used to be loaded here, or should the util rom be loaded?
- MCFG_FRAGMENT_ADD( msx_wd2793 )
+ MCFG_FRAGMENT_ADD( msx_wd2793_force_ready )
MCFG_FRAGMENT_ADD( msx_2_35_dd_drive )
MCFG_FRAGMENT_ADD( msx2_floplist )
@@ -5127,7 +5123,7 @@ static MACHINE_CONFIG_DERIVED( msx2pgen, msx2p )
MCFG_MSX_LAYOUT_ROM("kdr", 3, 1, 1, 2, "maincpu", 0x20000)
MCFG_MSX_LAYOUT_DISK1("disk", 3, 2, 1, 1, "maincpu", 0xc000)
- MCFG_FRAGMENT_ADD( msx_wd2793 )
+ MCFG_FRAGMENT_ADD( msx_wd2793_force_ready )
MCFG_FRAGMENT_ADD( msx_1_35_dd_drive )
MCFG_FRAGMENT_ADD( msx2_floplist )
@@ -5161,7 +5157,7 @@ static MACHINE_CONFIG_DERIVED( expert3i, msx2p )
MCFG_FRAGMENT_ADD( msx_ym2413 )
- MCFG_FRAGMENT_ADD( msx_wd2793 )
+ MCFG_FRAGMENT_ADD( msx_wd2793_force_ready )
MCFG_FRAGMENT_ADD( msx_1_35_dd_drive )
MCFG_FRAGMENT_ADD( msx2_floplist )
@@ -5197,7 +5193,7 @@ static MACHINE_CONFIG_DERIVED( expert3t, msx2p )
MCFG_FRAGMENT_ADD( msx_ym2413 )
- MCFG_FRAGMENT_ADD( msx_wd2793 )
+ MCFG_FRAGMENT_ADD( msx_wd2793_force_ready )
MCFG_FRAGMENT_ADD( msx_1_35_dd_drive )
MCFG_FRAGMENT_ADD( msx2_floplist )
@@ -5229,7 +5225,7 @@ static MACHINE_CONFIG_DERIVED( expertac, msx2p )
MCFG_MSX_LAYOUT_DISK1("disk", 3, 2, 1, 1, "maincpu", 0xc000)
MCFG_MSX_LAYOUT_ROM("xbasic", 3, 3, 1, 1, "maincpu", 0x24000)
- MCFG_FRAGMENT_ADD( msx_wd2793 )
+ MCFG_FRAGMENT_ADD( msx_wd2793_force_ready )
MCFG_FRAGMENT_ADD( msx_1_35_dd_drive )
MCFG_FRAGMENT_ADD( msx2_floplist )