summaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
author angelosa <lordkale4@gmail.com>2025-04-13 20:24:47 +0200
committer angelosa <lordkale4@gmail.com>2025-04-13 20:24:57 +0200
commite05b5cf4087ab66cf7f8d2af442024b08843774e (patch)
tree56a04fac019726629448d1e2b74eac65a84a9ab4
parent03bf3b03a5df7a1b645c4fd888cb07f431883727 (diff)
nec/pc9801.cpp: move pc9801fs to pc9801us_state
-rw-r--r--src/mame/nec/pc9801.cpp17
-rw-r--r--src/mame/nec/pc9801.h2
2 files changed, 12 insertions, 7 deletions
diff --git a/src/mame/nec/pc9801.cpp b/src/mame/nec/pc9801.cpp
index 88d9bdf1e05..20cad38d6a8 100644
--- a/src/mame/nec/pc9801.cpp
+++ b/src/mame/nec/pc9801.cpp
@@ -5,7 +5,6 @@
PC-9801 (c) 1981 NEC
TODO:
- - proper 8251 uart hook-up on keyboard;
- text scrolling, μPD52611 (cfr. clipping in edge & arcus2, madoum* too?);
- Abnormal 90 Hz refresh rate adjust for normal display mode (15KHz).
Should really be 61.xx instead, understand how CRTC really switches clock;
@@ -80,9 +79,14 @@
- "Invalid Command Byte 13" for bitmap upd7220 at POST (?)
- "SYSTEM SHUTDOWN" after BIOS sets up the SDIP values;
+ TODO (PC-9801FS):
+ - RAM check detects more RAM than what's really installed (and saves previous detection in MEMSW);
+ - Crashes with Japanese error for "HDD failure" when mounted with IDE BIOS,
+ incompatible with 512 bps or IDE itself?
+
TODO (PC-9801BX2)
- "SYSTEM SHUTDOWN" at POST, SDIP related, soft reset to bypass;
- - Accesses $8f0-$8f2 PMC area, shared with 98NOTE machines;
+ - Accesses $8f0-$8f2 PMC area, shared with 98NOTE machines;
- A non-fatal "MEMORY ERROR" is always thrown no matter the RAM size afterwards, related?
- unemulated conventional or EMS RAM bank, definitely should have one given the odd minimum RAM
size;
@@ -2628,15 +2632,16 @@ void pc9801us_state::pc9801us(machine_config &config)
config_floppy_35hd(config);
}
-void pc9801vm_state::pc9801fs(machine_config &config)
+void pc9801us_state::pc9801fs(machine_config &config)
{
pc9801rs(config);
const XTAL xtal = XTAL(20'000'000); // ~20 MHz
I386SX(config.replace(), m_maincpu, xtal);
- m_maincpu->set_addrmap(AS_PROGRAM, &pc9801vm_state::pc9801rs_map);
- m_maincpu->set_addrmap(AS_IO, &pc9801vm_state::pc9801rs_io);
+ m_maincpu->set_addrmap(AS_PROGRAM, &pc9801us_state::pc9801rs_map);
+ m_maincpu->set_addrmap(AS_IO, &pc9801us_state::pc9801us_io);
m_maincpu->set_irq_acknowledge_callback("pic8259_master", FUNC(pic8259_device::inta_cb));
+
// optional 3'5 floppies x2
config_floppy_525hd(config);
@@ -3194,7 +3199,7 @@ COMP( 1990, pc9801dx, 0, 0, pc9801dx, pc9801rs, pc9801vm_state, init_p
// UF/UR/US class (i386SX + SDIP, optional high-reso according to BIOS? Derivatives of UX)
COMP( 1992, pc9801us, 0, 0, pc9801us, pc9801rs, pc9801us_state, init_pc9801_kanji, "NEC", "PC-9801US", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND )
// FS class (i386SX + ?)
-COMP( 1992, pc9801fs, 0, 0, pc9801fs, pc9801rs, pc9801vm_state, init_pc9801_kanji, "NEC", "PC-9801FS", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND )
+COMP( 1992, pc9801fs, 0, 0, pc9801fs, pc9801rs, pc9801us_state, init_pc9801_kanji, "NEC", "PC-9801FS", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND )
// FA class (i486SX)
// ...
// BX class (official nickname "98 FELLOW", last releases prior to 9821 line)
diff --git a/src/mame/nec/pc9801.h b/src/mame/nec/pc9801.h
index ae895446003..ec435bda199 100644
--- a/src/mame/nec/pc9801.h
+++ b/src/mame/nec/pc9801.h
@@ -393,7 +393,6 @@ public:
void pc9801vx(machine_config &config);
void pc9801rs(machine_config &config);
void pc9801dx(machine_config &config);
- void pc9801fs(machine_config &config);
void init_pc9801vm_kanji();
@@ -542,6 +541,7 @@ public:
{
}
void pc9801us(machine_config &config);
+ void pc9801fs(machine_config &config);
protected:
void pc9801us_io(address_map &map) ATTR_COLD;