mirror of
https://github.com/holub/mame
synced 2025-04-25 01:40:16 +03:00
New machines marked as NOT_WORKING
---------------------------------- PC-9801 [Andrew Terwilliger] PC-9801FS [flyingharuka] PC-9801DX [flyingharuka]
This commit is contained in:
parent
efef070b50
commit
f8b8b6484c
@ -34605,8 +34605,11 @@ pc98lt // 1989
|
||||
pc98ha // 1990
|
||||
|
||||
@source:nec/pc9801.cpp
|
||||
pc9801 // 1982
|
||||
pc9801bx2 // 1993
|
||||
pc9801dx // 1990
|
||||
pc9801f // 1983
|
||||
pc9801fs // 1992
|
||||
pc9801rs // 1989
|
||||
pc9801rx // 1988
|
||||
pc9801us // 1992
|
||||
|
@ -1967,6 +1967,12 @@ MACHINE_RESET_MEMBER(pc9801_state,pc9801f)
|
||||
uint8_t *PRG = memregion("fdc_data")->base();
|
||||
int i;
|
||||
|
||||
// TODO: this loading shouldn't happen dynamically but actually be tied to specific floppy configs
|
||||
// pc9801 has no floppy as default
|
||||
// pc9801f has an internal 2DD disk drive
|
||||
// pc9801m has an internal 2HD
|
||||
// and ofc you can actually mount external units,
|
||||
// cfr. PC-9801-08 (2dd), PC-9801-15 (8' unit) and likely others.
|
||||
ROM = memregion("fdc_bios_2dd")->base();
|
||||
op_mode = (ioport("ROM_LOAD")->read() & 2) >> 1;
|
||||
|
||||
@ -2355,6 +2361,19 @@ void pc9801vm_state::pc9801ux(machine_config &config)
|
||||
// AM9157A(config, "i8237", 10000000); // unknown clock
|
||||
}
|
||||
|
||||
void pc9801vm_state::pc9801dx(machine_config &config)
|
||||
{
|
||||
pc9801rs(config);
|
||||
i80286_cpu_device &maincpu(I80286(config.replace(), m_maincpu, 12000000));
|
||||
maincpu.set_addrmap(AS_PROGRAM, &pc9801vm_state::pc9801ux_map);
|
||||
maincpu.set_addrmap(AS_IO, &pc9801vm_state::pc9801ux_io);
|
||||
maincpu.set_a20_callback(i80286_cpu_device::a20_cb(&pc9801vm_state::a20_286, this));
|
||||
maincpu.set_irq_acknowledge_callback("pic8259_master", FUNC(pic8259_device::inta_cb));
|
||||
|
||||
config_floppy_525hd(config);
|
||||
// AM9157A(config, "i8237", 10000000); // unknown clock
|
||||
}
|
||||
|
||||
void pc9801vm_state::pc9801vx(machine_config &config)
|
||||
{
|
||||
pc9801ux(config);
|
||||
@ -2383,6 +2402,23 @@ void pc9801us_state::pc9801us(machine_config &config)
|
||||
config_floppy_35hd(config);
|
||||
}
|
||||
|
||||
void pc9801vm_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_irq_acknowledge_callback("pic8259_master", FUNC(pic8259_device::inta_cb));
|
||||
|
||||
// optional 3'5 floppies x2
|
||||
config_floppy_525hd(config);
|
||||
|
||||
// optional SCSI HDD
|
||||
|
||||
pit_clock_config(config, xtal / 4);
|
||||
}
|
||||
|
||||
void pc9801bx_state::pc9801bx2(machine_config &config)
|
||||
{
|
||||
pc9801rs(config);
|
||||
@ -2427,6 +2463,46 @@ void pc9801bx_state::pc9801bx2(machine_config &config)
|
||||
ROM_REGION( 0x100000, "kanji", ROMREGION_ERASEFF ) \
|
||||
ROM_REGION( 0x80000, "new_chargen", ROMREGION_ERASEFF )
|
||||
|
||||
/*
|
||||
"vanilla" - μPD8086, 5 MHz?
|
||||
*/
|
||||
|
||||
ROM_START( pc9801 )
|
||||
ROM_REGION16_LE( 0x18000, "ipl", ROMREGION_ERASEFF )
|
||||
ROM_LOAD16_BYTE( "ruq2g 06.bin", 0x14000, 0x2000, CRC(ee7b336b) SHA1(0691ebfcb9a8ce56ca303c552f634e953bb2ea7c) )
|
||||
ROM_LOAD16_BYTE( "ruq4f 06.bin", 0x14001, 0x2000, CRC(1e5c38c4) SHA1(5a8681ae0b1c3248d81a5b6707595d85cabe6bc8) )
|
||||
ROM_LOAD16_BYTE( "ruq2f 06.bin", 0x10000, 0x2000, CRC(be95afa5) SHA1(137fc4dd10ecc9f058b819df89a67df819a6509c) )
|
||||
ROM_LOAD16_BYTE( "ruq4e 06.bin", 0x10001, 0x2000, CRC(bc425f21) SHA1(f688ef89ebe3993dcbf70608d996067e92176be1) )
|
||||
ROM_LOAD16_BYTE( "ruq2e 06.bin", 0x0c000, 0x2000, CRC(16a3eaca) SHA1(345c1764e1b8aa5f3baa876658cf4cd224351fae) )
|
||||
ROM_LOAD16_BYTE( "ruq4d 06.bin", 0x0c001, 0x2000, CRC(0ca07388) SHA1(bdd564d19fcfa3dff8a695e2386c94defadcb164) )
|
||||
ROM_LOAD16_BYTE( "ruq2d 06.bin", 0x08000, 0x2000, CRC(907d0263) SHA1(30ba910424c99ae4c54eb2be5472258a3d5e4f29) )
|
||||
ROM_LOAD16_BYTE( "ruq4b 06.bin", 0x08001, 0x2000, CRC(b41d15e7) SHA1(321ec22e50fd2ee69f73c1e3f11c9fd07afa46fc) )
|
||||
ROM_LOAD16_BYTE( "ruq1f 06.bin", 0x00000, 0x2000, CRC(12d6ea62) SHA1(3a612428aaf3120ec00c10d709674535668f1d65) )
|
||||
ROM_LOAD16_BYTE( "ruq4h 06.bin", 0x00001, 0x2000, CRC(348992b9) SHA1(f5735f57305fd6585b2db1c81d34bb7ba2ed7510) )
|
||||
ROM_LOAD16_BYTE( "ruq1g 06.bin", 0x04000, 0x2000, CRC(d4ea8a62) SHA1(c899ea64ce8652a5b6976d62466efe2864cfb049) )
|
||||
ROM_LOAD16_BYTE( "ruq4g 06.bin", 0x04001, 0x2000, CRC(c1470ae5) SHA1(4eb31b2ad0b8f0dfad99bb67ada9e5853d5af4a1) )
|
||||
|
||||
ROM_REGION16_LE( 0x1000, "fdc_bios_2dd", ROMREGION_ERASEFF )
|
||||
|
||||
ROM_REGION16_LE( 0x1000, "fdc_bios_2hd", ROMREGION_ERASEFF )
|
||||
|
||||
ROM_REGION( 0x20000, "fdc_data", ROMREGION_ERASEFF )
|
||||
|
||||
ROM_REGION( 0x800, "kbd_mcu", ROMREGION_ERASEFF)
|
||||
ROM_LOAD( "mcu.bin", 0x0000, 0x0800, NO_DUMP ) //connected through a i8251 UART, needs decapping
|
||||
|
||||
ROM_REGION( 0x80000, "chargen", 0 )
|
||||
// TODO: original dump, needs heavy bitswap mods
|
||||
ROM_LOAD( "sfz4w 00.bin", 0x00000, 0x02000, CRC(11197271) SHA1(8dbd2f25daeed545ea2c74d849f0a209ceaf4dd7) )
|
||||
// taken from i386 model
|
||||
ROM_LOAD( "d23128c-17.bin", 0x00000, 0x00800, BAD_DUMP CRC(eea57180) SHA1(4aa037c684b72ad4521212928137d3369174eb1e) )
|
||||
// bad dump, 8x16 charset? (it's on the kanji board)
|
||||
ROM_LOAD("hn613128pac8.bin",0x00800, 0x01000, BAD_DUMP CRC(b5a15b5c) SHA1(e5f071edb72a5e9a8b8b1c23cf94a74d24cb648e) )
|
||||
|
||||
LOAD_KANJI_ROMS
|
||||
ROM_END
|
||||
|
||||
|
||||
/*
|
||||
F - 8086 8
|
||||
*/
|
||||
@ -2452,10 +2528,12 @@ ROM_START( pc9801f )
|
||||
ROM_REGION( 0x800, "kbd_mcu", ROMREGION_ERASEFF)
|
||||
ROM_LOAD( "mcu.bin", 0x0000, 0x0800, NO_DUMP ) //connected through a i8251 UART, needs decapping
|
||||
|
||||
/* note: ROM names of following two might be swapped */
|
||||
ROM_REGION( 0x80000, "chargen", 0 )
|
||||
ROM_LOAD( "d23128c-17.bin", 0x00000, 0x00800, BAD_DUMP CRC(eea57180) SHA1(4aa037c684b72ad4521212928137d3369174eb1e) ) //original is a bad dump, this is taken from i386 model
|
||||
ROM_LOAD("hn613128pac8.bin",0x00800, 0x01000, BAD_DUMP CRC(b5a15b5c) SHA1(e5f071edb72a5e9a8b8b1c23cf94a74d24cb648e) ) //bad dump, 8x16 charset? (it's on the kanji board)
|
||||
// note: ROM labels of following two may be swapped
|
||||
//original is a bad dump, this is taken from i386 model
|
||||
ROM_LOAD( "d23128c-17.bin", 0x00000, 0x00800, BAD_DUMP CRC(eea57180) SHA1(4aa037c684b72ad4521212928137d3369174eb1e) )
|
||||
//bad dump, 8x16 charset? (it's on the kanji board)
|
||||
ROM_LOAD("hn613128pac8.bin",0x00800, 0x01000, BAD_DUMP CRC(b5a15b5c) SHA1(e5f071edb72a5e9a8b8b1c23cf94a74d24cb648e) )
|
||||
|
||||
LOAD_KANJI_ROMS
|
||||
ROM_END
|
||||
@ -2564,6 +2642,28 @@ ROM_START( pc9801ux )
|
||||
// LOAD_IDE_ROM
|
||||
ROM_END
|
||||
|
||||
/*
|
||||
DX - 80286 12 + V30 8
|
||||
*/
|
||||
|
||||
ROM_START( pc9801dx )
|
||||
ROM_REGION16_LE( 0x40000, "biosrom", ROMREGION_ERASEFF )
|
||||
ROM_LOAD16_BYTE( "hdk01_02.bin", 0x000000, 0x020000, CRC(bf8b25fd) SHA1(e86eb6b46d73aad1cc96945bd34bd728d882583e) )
|
||||
ROM_LOAD16_BYTE( "hdk02_02.bin", 0x000001, 0x020000, CRC(37f21929) SHA1(1bb7c2f09eed399a78c3668f4193429a1980acc9) )
|
||||
|
||||
ROM_REGION16_LE( 0x30000, "ipl", ROMREGION_ERASEFF )
|
||||
ROM_COPY( "biosrom", 0x20000, 0x10000, 0x08000 ) //ITF ROM
|
||||
ROM_COPY( "biosrom", 0x28000, 0x18000, 0x08000 ) //BIOS ROM
|
||||
ROM_COPY( "biosrom", 0x30000, 0x20000, 0x08000 )
|
||||
ROM_COPY( "biosrom", 0x38000, 0x28000, 0x08000 )
|
||||
|
||||
ROM_REGION( 0x80000, "chargen", 0 )
|
||||
ROM_LOAD( "font_ux.rom", 0x000000, 0x046800, BAD_DUMP CRC(19a76eeb) SHA1(96a006e8515157a624599c2b53a581ae0dd560fd) )
|
||||
|
||||
LOAD_KANJI_ROMS
|
||||
// LOAD_IDE_ROM
|
||||
ROM_END
|
||||
|
||||
/*
|
||||
US - i386SX @ 16 MHz
|
||||
*/
|
||||
@ -2592,6 +2692,27 @@ ROM_START( pc9801us )
|
||||
// LOAD_IDE_ROM
|
||||
ROM_END
|
||||
|
||||
/*
|
||||
FS - 80386 20
|
||||
*/
|
||||
|
||||
ROM_START( pc9801fs )
|
||||
ROM_REGION16_LE( 0x40000, "biosrom", ROMREGION_ERASEFF )
|
||||
ROM_LOAD16_BYTE( "kqx01_00.bin", 0x000000, 0x020000, CRC(4713d388) SHA1(9ae48fbe7b8ab7144e045e183ed88d2544d9a61c) )
|
||||
ROM_LOAD16_BYTE( "kqx02_00.bin", 0x000001, 0x020000, CRC(f55e42d6) SHA1(2ab0ae817e9abed984544c920182689127550ce3) )
|
||||
|
||||
ROM_REGION16_LE( 0x30000, "ipl", ROMREGION_ERASEFF )
|
||||
ROM_COPY( "biosrom", 0x20000, 0x10000, 0x08000 ) //ITF ROM
|
||||
ROM_COPY( "biosrom", 0x28000, 0x18000, 0x08000 ) //BIOS ROM
|
||||
ROM_COPY( "biosrom", 0x30000, 0x20000, 0x08000 )
|
||||
ROM_COPY( "biosrom", 0x38000, 0x28000, 0x08000 )
|
||||
|
||||
ROM_REGION( 0x80000, "chargen", 0 )
|
||||
ROM_LOAD( "font_ux.rom", 0x000000, 0x046800, BAD_DUMP CRC(19a76eeb) SHA1(96a006e8515157a624599c2b53a581ae0dd560fd) )
|
||||
|
||||
LOAD_KANJI_ROMS
|
||||
// LOAD_IDE_ROM
|
||||
ROM_END
|
||||
|
||||
/*
|
||||
RX - 80286 12 (no V30?)
|
||||
@ -2810,7 +2931,8 @@ void pc9801vm_state::init_pc9801vm_kanji()
|
||||
// specifically happening for PC9801RS. This will be hopefully put into stone with driver splits at some point in future.
|
||||
|
||||
// "vanilla" class (i86, E/F/M)
|
||||
COMP( 1983, pc9801f, 0, 0, pc9801, pc9801, pc9801_state, init_pc9801_kanji, "NEC", "PC-9801F", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND ) // genuine dump
|
||||
COMP( 1982, pc9801, 0, 0, pc9801, pc9801, pc9801_state, init_pc9801_kanji, "NEC", "PC-9801", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND ) // genuine dump
|
||||
COMP( 1983, pc9801f, pc9801, 0, pc9801, pc9801, pc9801_state, init_pc9801_kanji, "NEC", "PC-9801F", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND ) // genuine dump
|
||||
|
||||
// N5200 (started as a vanilla PC-98 business line derivative,
|
||||
// eventually diverged into its own thing and incorporated various Hyper 98 features.
|
||||
@ -2857,10 +2979,14 @@ COMP( 1986, pc9801vx, 0, 0, pc9801vx, pc9801rs, pc9801vm_state, init_p
|
||||
// RS class (i386SX)
|
||||
COMP( 1988, pc9801rx, pc9801rs, 0, pc9801rs, pc9801rs, pc9801vm_state, init_pc9801_kanji, "NEC", "PC-9801RX", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND )
|
||||
COMP( 1989, pc9801rs, 0, 0, pc9801rs, pc9801rs, pc9801vm_state, init_pc9801_kanji, "NEC", "PC-9801RS", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND )
|
||||
// DX class (i286)
|
||||
COMP( 1990, pc9801dx, 0, 0, pc9801dx, pc9801rs, pc9801vm_state, init_pc9801_kanji, "NEC", "PC-9801DX", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND )
|
||||
// DA class (i386SX + SDIP and EMS)
|
||||
// ...
|
||||
// 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 )
|
||||
// FA class (i486SX)
|
||||
// ...
|
||||
// BX class (official nickname "98 FELLOW", last releases prior to 9821 line)
|
||||
|
@ -371,6 +371,8 @@ public:
|
||||
void pc9801ux(machine_config &config);
|
||||
void pc9801vx(machine_config &config);
|
||||
void pc9801rs(machine_config &config);
|
||||
void pc9801dx(machine_config &config);
|
||||
void pc9801fs(machine_config &config);
|
||||
|
||||
void init_pc9801vm_kanji();
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user