diff --git a/src/mame/drivers/pc9801.cpp b/src/mame/drivers/pc9801.cpp index 81e799f64f6..0ea049f807a 100644 --- a/src/mame/drivers/pc9801.cpp +++ b/src/mame/drivers/pc9801.cpp @@ -398,6 +398,7 @@ Keyboard TX commands: #include "machine/upd765.h" #include "machine/upd1990a.h" #include "machine/i8251.h" +#include "machine/bankdev.h" #include "bus/scsi/pc9801_sasi.h" #include "bus/scsi/scsi.h" @@ -465,6 +466,7 @@ public: m_ext_gvram(*this, "ext_gvram"), m_beeper(*this, "beeper"), m_ram(*this, RAM_TAG), + m_ipl(*this, "ipl_bank"), m_gfxdecode(*this, "gfxdecode"), m_palette(*this, "palette"), m_screen(*this, "screen") @@ -494,6 +496,7 @@ public: optional_shared_ptr m_ext_gvram; required_device m_beeper; optional_device m_ram; + optional_device m_ipl; required_device m_gfxdecode; required_device m_palette; required_device m_screen; @@ -508,7 +511,6 @@ public: }; emu_timer *m_vbirq; - UINT8 *m_ipl_rom; UINT8 *m_char_rom; UINT8 *m_kanji_rom; @@ -526,8 +528,6 @@ public: UINT8 m_font_line; UINT16 m_font_lr; - UINT8 m_keyb_press; - UINT8 m_fdc_2dd_ctrl,m_fdc_2hd_ctrl; UINT8 m_nmi_ff; @@ -537,7 +537,6 @@ public: /* PC9801RS specific */ UINT8 m_gate_a20; //A20 line UINT8 m_access_ctrl; // DMA related - UINT8 m_rom_bank; UINT8 m_fdc_ctrl; UINT8 m_ex_video_ff[128]; struct { @@ -626,7 +625,6 @@ public: int m_sasi_data_enable; UINT8 m_sasi_ctrl; - DECLARE_READ8_MEMBER(pc9801rs_ipl_r); DECLARE_READ8_MEMBER(pc9801rs_knjram_r); DECLARE_WRITE8_MEMBER(pc9801rs_knjram_w); DECLARE_WRITE8_MEMBER(pc9801rs_bank_w); @@ -646,8 +644,6 @@ public: DECLARE_READ8_MEMBER(midi_r); // DECLARE_READ8_MEMBER(winram_r); // DECLARE_WRITE8_MEMBER(winram_w); -// DECLARE_READ8_MEMBER(pc9801_ext_opna_r); -// DECLARE_WRITE8_MEMBER(pc9801_ext_opna_w); DECLARE_READ8_MEMBER(pic_r); DECLARE_WRITE8_MEMBER(pic_w); @@ -1001,7 +997,7 @@ WRITE8_MEMBER(pc9801_state::dmapg8_w) WRITE8_MEMBER(pc9801_state::nmi_ctrl_w) { - m_nmi_ff = (offset & 2) >> 1; + m_nmi_ff = offset; } WRITE8_MEMBER(pc9801_state::vrtc_clear_w) @@ -1735,15 +1731,12 @@ static ADDRESS_MAP_START( pc9801_io, AS_IO, 16, pc9801_state ) AM_IMPORT_FROM(pc9801_common_io) ADDRESS_MAP_END - /************************************* * * PC-9801RS specific handlers (IA-32) * ************************************/ -READ8_MEMBER(pc9801_state::pc9801rs_ipl_r) { return m_ipl_rom[(offset & 0x1ffff)+(m_rom_bank*0x20000)]; } - /* TODO: it's possible that the offset calculation is actually linear. */ /* TODO: having this non-linear makes the system to boot in BASIC for PC-9821. Perhaps it stores settings? How to change these? */ READ8_MEMBER(pc9801_state::pc9801rs_knjram_r) @@ -1795,7 +1788,7 @@ WRITE8_MEMBER(pc9801_state::pc9801rs_bank_w) { if((data & 0xed) == 0x00) { - m_rom_bank = (data & 2) >> 1; + m_ipl->set_bank((data & 2) >> 1); return; } } @@ -2103,13 +2096,17 @@ WRITE16_MEMBER(pc9801_state::grcg_gvram0_w) upd7220_grcg_w(space, offset | (m_vram_bank << 16), data, mem_mask); } +static ADDRESS_MAP_START( ipl_bank, AS_0, 16, pc9801_state ) + AM_RANGE(0x00000, 0x2ffff) AM_ROM AM_REGION("ipl", 0) +ADDRESS_MAP_END + static ADDRESS_MAP_START( pc9801ux_map, AS_PROGRAM, 16, pc9801_state ) AM_RANGE(0x000000, 0x09ffff) AM_RAMBANK("wram") AM_RANGE(0x0a0000, 0x0a3fff) AM_READWRITE(tvram_r, tvram_w) AM_RANGE(0x0a4000, 0x0a4fff) AM_READWRITE8(pc9801rs_knjram_r, pc9801rs_knjram_w, 0xffff) AM_RANGE(0x0a8000, 0x0bffff) AM_READWRITE(grcg_gvram_r, grcg_gvram_w) AM_RANGE(0x0e0000, 0x0e7fff) AM_READWRITE(grcg_gvram0_r,grcg_gvram0_w) - AM_RANGE(0x0e0000, 0x0fffff) AM_READ8(pc9801rs_ipl_r, 0xffff) + AM_RANGE(0x0e8000, 0x0fffff) AM_DEVICE("ipl_bank", address_map_bank_device, amap16) ADDRESS_MAP_END static ADDRESS_MAP_START( pc9801ux_io, AS_IO, 16, pc9801_state ) @@ -2134,8 +2131,8 @@ ADDRESS_MAP_END static ADDRESS_MAP_START( pc9801rs_map, AS_PROGRAM, 16, pc9801_state ) // AM_RANGE(0x0d8000, 0x0d9fff) AM_ROM AM_REGION("ide",0) AM_RANGE(0x0da000, 0x0dbfff) AM_RAM // ide ram - AM_RANGE(0xee0000, 0xefffff) AM_READ8(pc9801rs_ipl_r, 0xffff) - AM_RANGE(0xfe0000, 0xffffff) AM_READ8(pc9801rs_ipl_r, 0xffff) + AM_RANGE(0xee8000, 0xefffff) AM_DEVICE("ipl_bank", address_map_bank_device, amap16) + AM_RANGE(0xfe8000, 0xffffff) AM_DEVICE("ipl_bank", address_map_bank_device, amap16) AM_IMPORT_FROM(pc9801ux_map) ADDRESS_MAP_END @@ -2343,10 +2340,10 @@ static ADDRESS_MAP_START( pc9821_map, AS_PROGRAM, 32, pc9801_state ) // AM_RANGE(0x000d8000, 0x000d9fff) AM_ROM AM_REGION("ide",0) AM_RANGE(0x000da000, 0x000dbfff) AM_RAM // ide ram AM_RANGE(0x000e0000, 0x000e7fff) AM_READWRITE16(grcg_gvram0_r,grcg_gvram0_w, 0xffffffff) - AM_RANGE(0x000e0000, 0x000fffff) AM_READ8(pc9801rs_ipl_r, 0xffffffff) + AM_RANGE(0x000e8000, 0x000fffff) AM_DEVICE16("ipl_bank", address_map_bank_device, amap16, 0xffffffff) AM_RANGE(0x00f00000, 0x00f9ffff) AM_RAM AM_SHARE("ext_gvram") - AM_RANGE(0xffee0000, 0xffefffff) AM_READ8(pc9801rs_ipl_r, 0xffffffff) - AM_RANGE(0xfffe0000, 0xffffffff) AM_READ8(pc9801rs_ipl_r, 0xffffffff) + AM_RANGE(0xffee8000, 0xffefffff) AM_DEVICE16("ipl_bank", address_map_bank_device, amap16, 0xffffffff) + AM_RANGE(0xfffe8000, 0xffffffff) AM_DEVICE16("ipl_bank", address_map_bank_device, amap16, 0xffffffff) ADDRESS_MAP_END static ADDRESS_MAP_START( pc9821_io, AS_IO, 32, pc9801_state ) @@ -2435,7 +2432,7 @@ static ADDRESS_MAP_START( pc9821_io, AS_IO, 32, pc9801_state ) ADDRESS_MAP_END static ADDRESS_MAP_START( upd7220_1_map, AS_0, 16, pc9801_state ) - AM_RANGE(0x00000, 0x3ffff) AM_RAM AM_SHARE("video_ram_1") + AM_RANGE(0x00000, 0x03fff) AM_RAM AM_SHARE("video_ram_1") ADDRESS_MAP_END static ADDRESS_MAP_START( upd7220_2_map, AS_0, 16, pc9801_state ) @@ -2965,7 +2962,6 @@ MACHINE_START_MEMBER(pc9801_state,pc9801_common) m_rtc->cs_w(1); m_rtc->oe_w(1); - m_ipl_rom = memregion("ipl")->base(); m_vbirq = timer_alloc(TIMER_VBIRQ); save_item(NAME(m_sasi_data)); @@ -3075,13 +3071,10 @@ MACHINE_RESET_MEMBER(pc9801_state,pc9801rs) MACHINE_RESET_CALL_MEMBER(pc9801_common); m_gate_a20 = 0; - m_rom_bank = 0; m_fdc_ctrl = 3; m_access_ctrl = 0; m_ide_sel = 0; m_ide1_irq = m_ide2_irq = false; - m_keyb_press = 0xff; // temp kludge, for PC-9821 booting -// m_has_opna = ioport("SOUND_CONFIG")->read() & 1; m_maincpu->set_input_line(INPUT_LINE_A20, m_gate_a20); if(memregion("ide")) @@ -3306,15 +3299,6 @@ static MACHINE_CONFIG_START( pc9801, pc9801_state ) MCFG_PALETTE_INIT_OWNER(pc9801_state,pc9801) MACHINE_CONFIG_END -static MACHINE_CONFIG_DERIVED( pc9801vm, pc9801 ) - MCFG_CPU_REPLACE("maincpu",V30,10000000) - MCFG_CPU_PROGRAM_MAP(pc9801ux_map) - MCFG_CPU_IO_MAP(pc9801ux_io) - MCFG_CPU_VBLANK_INT_DRIVER("screen", pc9801_state, vrtc_irq) - - MCFG_MACHINE_START_OVERRIDE(pc9801_state,pc9801_common) - MCFG_MACHINE_RESET_OVERRIDE(pc9801_state,pc9801_common) -MACHINE_CONFIG_END static MACHINE_CONFIG_START( pc9801rs, pc9801_state ) MCFG_CPU_ADD("maincpu", I386SX, MAIN_CLOCK_X1*8) // unknown clock. @@ -3325,6 +3309,13 @@ static MACHINE_CONFIG_START( pc9801rs, pc9801_state ) MCFG_FRAGMENT_ADD(pc9801_common) + MCFG_DEVICE_ADD("ipl_bank", ADDRESS_MAP_BANK, 0) + MCFG_DEVICE_PROGRAM_MAP(ipl_bank) + MCFG_ADDRESS_MAP_BANK_ENDIANNESS(ENDIANNESS_LITTLE) + MCFG_ADDRESS_MAP_BANK_DATABUS_WIDTH(16) + MCFG_ADDRESS_MAP_BANK_ADDRBUS_WIDTH(18) + MCFG_ADDRESS_MAP_BANK_STRIDE(0x18000) + MCFG_MACHINE_START_OVERRIDE(pc9801_state,pc9801rs) MCFG_MACHINE_RESET_OVERRIDE(pc9801_state,pc9801rs) @@ -3345,6 +3336,20 @@ static MACHINE_CONFIG_START( pc9801rs, pc9801_state ) MCFG_PALETTE_INIT_OWNER(pc9801_state,pc9801) MACHINE_CONFIG_END +static MACHINE_CONFIG_DERIVED( pc9801vm, pc9801rs ) + MCFG_CPU_REPLACE("maincpu",V30,10000000) + MCFG_CPU_PROGRAM_MAP(pc9801ux_map) + MCFG_CPU_IO_MAP(pc9801ux_io) + MCFG_CPU_VBLANK_INT_DRIVER("screen", pc9801_state, vrtc_irq) + + MCFG_DEVICE_MODIFY(RAM_TAG) + MCFG_RAM_DEFAULT_SIZE("640K") + MCFG_RAM_EXTRA_OPTIONS("640K") + + MCFG_MACHINE_START_OVERRIDE(pc9801_state,pc9801_common) + MCFG_MACHINE_RESET_OVERRIDE(pc9801_state,pc9801_common) +MACHINE_CONFIG_END + static MACHINE_CONFIG_DERIVED( pc9801ux, pc9801rs ) MCFG_CPU_REPLACE("maincpu",I80286,10000000) MCFG_CPU_PROGRAM_MAP(pc9801ux_map) @@ -3468,9 +3473,9 @@ UX - 80286 10 + V30 8 */ ROM_START( pc9801ux ) - ROM_REGION( 0x60000, "ipl", ROMREGION_ERASEFF ) - ROM_LOAD( "itf_ux.rom", 0x18000, 0x08000, CRC(c7942563) SHA1(61bb210d64c7264be939b11df1e9cd14ffeee3c9) ) - ROM_LOAD( "bios_ux.rom", 0x28000, 0x18000, BAD_DUMP CRC(97375ca2) SHA1(bfe458f671d90692104d0640730972ca8dc0a100) ) + ROM_REGION( 0x30000, "ipl", ROMREGION_ERASEFF ) + ROM_LOAD( "itf_ux.rom", 0x10000, 0x08000, CRC(c7942563) SHA1(61bb210d64c7264be939b11df1e9cd14ffeee3c9) ) + ROM_LOAD( "bios_ux.rom", 0x18000, 0x18000, BAD_DUMP CRC(97375ca2) SHA1(bfe458f671d90692104d0640730972ca8dc0a100) ) ROM_REGION( 0x10000, "sound_bios", 0 ) ROM_LOAD( "sound_ux.rom", 0x0000, 0x4000, CRC(80eabfde) SHA1(e09c54152c8093e1724842c711aed6417169db23) ) @@ -3489,11 +3494,11 @@ The bios is from a 386 model not an RX */ ROM_START( pc9801rx ) - ROM_REGION( 0x60000, "ipl", ROMREGION_ERASEFF ) - ROM_LOAD( "itf_rs.rom", 0x18000, 0x08000, BAD_DUMP CRC(c1815325) SHA1(a2fb11c000ed7c976520622cfb7940ed6ddc904e) ) - ROM_LOAD( "bios_rx.rom", 0x28000, 0x018000, BAD_DUMP CRC(0a682b93) SHA1(76a7360502fa0296ea93b4c537174610a834d367) ) + ROM_REGION( 0x30000, "ipl", ROMREGION_ERASEFF ) + ROM_LOAD( "itf_rs.rom", 0x10000, 0x08000, BAD_DUMP CRC(c1815325) SHA1(a2fb11c000ed7c976520622cfb7940ed6ddc904e) ) + ROM_LOAD( "bios_rx.rom", 0x18000, 0x18000, BAD_DUMP CRC(0a682b93) SHA1(76a7360502fa0296ea93b4c537174610a834d367) ) // fix csum - ROM_FILL(0x3fffe, 1, 0x0d) + ROM_FILL(0x2fffe, 1, 0x0d) ROM_REGION( 0x10000, "sound_bios", 0 ) ROM_LOAD( "sound_rx.rom", 0x000000, 0x004000, CRC(fe9f57f2) SHA1(d5dbc4fea3b8367024d363f5351baecd6adcd8ef) ) @@ -3512,9 +3517,9 @@ RS - 386SX 16 */ ROM_START( pc9801rs ) - ROM_REGION( 0x60000, "ipl", ROMREGION_ERASEFF ) - ROM_LOAD( "itf_rs.rom", 0x18000, 0x08000, CRC(c1815325) SHA1(a2fb11c000ed7c976520622cfb7940ed6ddc904e) ) - ROM_LOAD( "bios_rs.rom", 0x28000, 0x18000, BAD_DUMP CRC(315d2703) SHA1(4f208d1dbb68373080d23bff5636bb6b71eb7565) ) + ROM_REGION( 0x30000, "ipl", ROMREGION_ERASEFF ) + ROM_LOAD( "itf_rs.rom", 0x10000, 0x08000, CRC(c1815325) SHA1(a2fb11c000ed7c976520622cfb7940ed6ddc904e) ) + ROM_LOAD( "bios_rs.rom", 0x18000, 0x18000, BAD_DUMP CRC(315d2703) SHA1(4f208d1dbb68373080d23bff5636bb6b71eb7565) ) /* following is an emulator memory dump, should be checked and nuked */ ROM_REGION( 0x100000, "memory", 0 ) @@ -3544,12 +3549,12 @@ Yet another franken-dump done with a lame program, shrug */ ROM_START( pc9801bx2 ) - ROM_REGION( 0x60000, "ipl", ROMREGION_ERASEFF ) + ROM_REGION( 0x30000, "ipl", ROMREGION_ERASEFF ) ROM_LOAD( "pc98bank0.bin", 0x00000, 0x08000, BAD_DUMP CRC(bfd100cc) SHA1(cf8e6a5679cca7761481abef0ba4b35ead39efdb) ) ROM_LOAD( "pc98bank1.bin", 0x00000, 0x08000, BAD_DUMP CRC(d0562af8) SHA1(2c4fd27eb598f4b8a00f3e86941ba27007d58e47) ) ROM_LOAD( "pc98bank2.bin", 0x00000, 0x08000, BAD_DUMP CRC(12818a14) SHA1(9c31e8ac85d78fa779d6bbc2095557065294ec09) ) ROM_LOAD( "pc98bank3.bin", 0x00000, 0x08000, BAD_DUMP CRC(d0bda44e) SHA1(c1022a3b2be4d2a1e43914df9e4605254e5f99d5) ) - ROM_LOAD( "pc98bank4.bin", 0x18000, 0x08000, BAD_DUMP CRC(be8092f4) SHA1(12c8a166b8c6ebbef85568b67e1f098562883365) ) + ROM_LOAD( "pc98bank4.bin", 0x10000, 0x08000, BAD_DUMP CRC(be8092f4) SHA1(12c8a166b8c6ebbef85568b67e1f098562883365) ) ROM_LOAD( "pc98bank5.bin", 0x00000, 0x08000, BAD_DUMP CRC(4e32081e) SHA1(e23571273b7cad01aa116cb7414c5115a1093f85) ) ROM_LOAD( "pc98bank6.bin", 0x00000, 0x08000, BAD_DUMP CRC(f878c160) SHA1(cad47f09075ffe4f7b51bb937c9f716c709d4596) ) ROM_LOAD( "pc98bank7.bin", 0x00000, 0x08000, BAD_DUMP CRC(1bd6537b) SHA1(ff9ee1c976a12b87851635ce8991ac4ad607675b) ) @@ -3571,9 +3576,9 @@ TODO: this ISN'T a real VM model! */ ROM_START( pc9801vm ) - ROM_REGION( 0x60000, "ipl", ROMREGION_ERASEFF ) - ROM_LOAD( "itf_ux.rom", 0x18000, 0x08000, BAD_DUMP CRC(c7942563) SHA1(61bb210d64c7264be939b11df1e9cd14ffeee3c9) ) - ROM_LOAD( "bios_vm.rom", 0x28000, 0x018000, CRC(2e2d7cee) SHA1(159549f845dc70bf61955f9469d2281a0131b47f) ) + ROM_REGION( 0x30000, "ipl", ROMREGION_ERASEFF ) + ROM_LOAD( "itf_ux.rom", 0x10000, 0x08000, BAD_DUMP CRC(c7942563) SHA1(61bb210d64c7264be939b11df1e9cd14ffeee3c9) ) + ROM_LOAD( "bios_vm.rom", 0x18000, 0x18000, CRC(2e2d7cee) SHA1(159549f845dc70bf61955f9469d2281a0131b47f) ) ROM_REGION( 0x10000, "sound_bios", 0 ) ROM_LOAD( "sound_vm.rom", 0x000000, 0x004000, CRC(fe9f57f2) SHA1(d5dbc4fea3b8367024d363f5351baecd6adcd8ef) ) @@ -3592,13 +3597,13 @@ ROM_END */ ROM_START( pc9821 ) - ROM_REGION( 0x60000, "ipl", ROMREGION_ERASEFF ) - ROM_LOAD( "itf.rom", 0x18000, 0x08000, CRC(dd4c7bb8) SHA1(cf3aa193df2722899066246bccbed03f2e79a74a) ) - ROM_LOAD( "bios.rom", 0x28000, 0x18000, BAD_DUMP CRC(34a19a59) SHA1(2e92346727b0355bc1ec9a7ded1b444a4917f2b9) ) - ROM_FILL(0x34c40, 4, 0) // hide the _32_ marker until we have a 32-bit clean IDE bios otherwise windows tries to + ROM_REGION( 0x30000, "ipl", ROMREGION_ERASEFF ) + ROM_LOAD( "itf.rom", 0x10000, 0x08000, CRC(dd4c7bb8) SHA1(cf3aa193df2722899066246bccbed03f2e79a74a) ) + ROM_LOAD( "bios.rom", 0x18000, 0x18000, BAD_DUMP CRC(34a19a59) SHA1(2e92346727b0355bc1ec9a7ded1b444a4917f2b9) ) + ROM_FILL(0x24c40, 4, 0) // hide the _32_ marker until we have a 32-bit clean IDE bios otherwise windows tries to // make a 32-bit call into 16-bit code - ROM_FILL(0x37ffe, 1, 0x92) - ROM_FILL(0x37fff, 1, 0xd7) + ROM_FILL(0x27ffe, 1, 0x92) + ROM_FILL(0x27fff, 1, 0xd7) ROM_REGION( 0x10000, "sound_bios", 0 ) ROM_LOAD( "sound.rom", 0x0000, 0x4000, CRC(a21ef796) SHA1(34137c287c39c44300b04ee97c1e6459bb826b60) ) @@ -3615,9 +3620,9 @@ As - 80486DX 33 */ ROM_START( pc9821as ) - ROM_REGION( 0x60000, "ipl", ROMREGION_ERASEFF ) - ROM_LOAD( "itf.rom", 0x18000, 0x08000, BAD_DUMP CRC(dd4c7bb8) SHA1(cf3aa193df2722899066246bccbed03f2e79a74a) ) - ROM_LOAD( "bios_as.rom", 0x28000, 0x018000, BAD_DUMP CRC(0a682b93) SHA1(76a7360502fa0296ea93b4c537174610a834d367) ) + ROM_REGION( 0x30000, "ipl", ROMREGION_ERASEFF ) + ROM_LOAD( "itf.rom", 0x10000, 0x08000, BAD_DUMP CRC(dd4c7bb8) SHA1(cf3aa193df2722899066246bccbed03f2e79a74a) ) + ROM_LOAD( "bios_as.rom", 0x18000, 0x18000, BAD_DUMP CRC(0a682b93) SHA1(76a7360502fa0296ea93b4c537174610a834d367) ) ROM_REGION( 0x10000, "sound_bios", 0 ) ROM_LOAD( "sound_as.rom", 0x000000, 0x004000, CRC(fe9f57f2) SHA1(d5dbc4fea3b8367024d363f5351baecd6adcd8ef) ) @@ -3647,9 +3652,9 @@ ROM_START( pc9821ap2 ) ROM_SYSTEM_BIOS(1, "phd0102", "PHD0102") ROMX_LOAD( "phd0102.rom", 0x000000, 0x80000, CRC(3036774c) SHA1(59856a348f156adf5eca06326f967aca54ff871c), ROM_BIOS(2) ) - ROM_REGION( 0x60000, "ipl", ROMREGION_ERASEFF ) // TODO: identify ROM banks - ROM_COPY( "biosrom", 0x20000, 0x18000, 0x08000 ) - ROM_COPY( "biosrom", 0x30000, 0x28000, 0x18000 ) + ROM_REGION( 0x30000, "ipl", ROMREGION_ERASEFF ) // TODO: identify ROM banks + ROM_COPY( "biosrom", 0x20000, 0x10000, 0x08000 ) + ROM_COPY( "biosrom", 0x30000, 0x18000, 0x18000 ) ROM_REGION( 0x10000, "sound_bios", 0 ) ROM_LOAD( "sound.rom", 0x0000, 0x4000, CRC(a21ef796) SHA1(34137c287c39c44300b04ee97c1e6459bb826b60) ) @@ -3667,9 +3672,9 @@ ROM_END */ ROM_START( pc9821ne ) - ROM_REGION( 0x60000, "ipl", ROMREGION_ERASEFF ) - ROM_LOAD( "itf.rom", 0x18000, 0x08000, CRC(dd4c7bb8) SHA1(cf3aa193df2722899066246bccbed03f2e79a74a) ) - ROM_LOAD( "bios_ne.rom", 0x28000, 0x18000, BAD_DUMP CRC(2ae070c4) SHA1(d7963942042bfd84ed5fc9b7ba8f1c327c094172) ) + ROM_REGION( 0x30000, "ipl", ROMREGION_ERASEFF ) + ROM_LOAD( "itf.rom", 0x10000, 0x08000, CRC(dd4c7bb8) SHA1(cf3aa193df2722899066246bccbed03f2e79a74a) ) + ROM_LOAD( "bios_ne.rom", 0x18000, 0x18000, BAD_DUMP CRC(2ae070c4) SHA1(d7963942042bfd84ed5fc9b7ba8f1c327c094172) ) ROM_REGION( 0x10000, "sound_bios", 0 ) ROM_LOAD( "sound_ne.rom", 0x0000, 0x4000, CRC(a21ef796) SHA1(34137c287c39c44300b04ee97c1e6459bb826b60) ) @@ -3686,9 +3691,9 @@ Epson PC-486MU - 486 based, unknown clock */ ROM_START( pc486mu ) - ROM_REGION( 0x60000, "ipl", ROMREGION_ERASEFF ) - ROM_LOAD( "bios_486mu.rom", 0x08000, 0x18000, BAD_DUMP CRC(57b5d701) SHA1(15029800842e93e07615b0fd91fb9f2bfe3e3c24)) - ROM_RELOAD( 0x28000, 0x18000 ) // missing rom? + ROM_REGION( 0x30000, "ipl", ROMREGION_ERASEFF ) + ROM_LOAD( "bios_486mu.rom", 0x00000, 0x18000, BAD_DUMP CRC(57b5d701) SHA1(15029800842e93e07615b0fd91fb9f2bfe3e3c24)) + ROM_RELOAD( 0x18000, 0x18000 ) // missing rom? ROM_REGION( 0x10000, "sound_bios", 0 ) ROM_LOAD( "sound_486mu.rom", 0x0000, 0x4000, CRC(6cdfa793) SHA1(4b8250f9b9db66548b79f961d61010558d6d6e1c)) @@ -3705,9 +3710,9 @@ ROM_END */ ROM_START( pc9821ce2 ) - ROM_REGION( 0x60000, "ipl", ROMREGION_ERASEFF ) - ROM_LOAD( "itf_ce2.rom", 0x18000, 0x08000, CRC(273e9e88) SHA1(9bca7d5116788776ed0f297bccb4dfc485379b41) ) - ROM_LOAD( "bios_ce2.rom", 0x28000, 0x018000, BAD_DUMP CRC(76affd90) SHA1(910fae6763c0cd59b3957b6cde479c72e21f33c1) ) + ROM_REGION( 0x30000, "ipl", ROMREGION_ERASEFF ) + ROM_LOAD( "itf_ce2.rom", 0x10000, 0x08000, CRC(273e9e88) SHA1(9bca7d5116788776ed0f297bccb4dfc485379b41) ) + ROM_LOAD( "bios_ce2.rom", 0x18000, 0x018000, BAD_DUMP CRC(76affd90) SHA1(910fae6763c0cd59b3957b6cde479c72e21f33c1) ) ROM_REGION( 0x10000, "sound_bios", 0 ) ROM_LOAD( "sound_ce2.rom", 0x000000, 0x004000, CRC(a21ef796) SHA1(34137c287c39c44300b04ee97c1e6459bb826b60) ) @@ -3724,9 +3729,9 @@ ROM_END */ ROM_START( pc9821xs ) - ROM_REGION( 0x60000, "ipl", ROMREGION_ERASEFF ) - ROM_LOAD( "itf.rom", 0x18000, 0x08000, BAD_DUMP CRC(dd4c7bb8) SHA1(cf3aa193df2722899066246bccbed03f2e79a74a) ) - ROM_LOAD( "bios_xs.rom", 0x28000, 0x018000, BAD_DUMP CRC(0a682b93) SHA1(76a7360502fa0296ea93b4c537174610a834d367) ) + ROM_REGION( 0x30000, "ipl", ROMREGION_ERASEFF ) + ROM_LOAD( "itf.rom", 0x10000, 0x08000, BAD_DUMP CRC(dd4c7bb8) SHA1(cf3aa193df2722899066246bccbed03f2e79a74a) ) + ROM_LOAD( "bios_xs.rom", 0x18000, 0x018000, BAD_DUMP CRC(0a682b93) SHA1(76a7360502fa0296ea93b4c537174610a834d367) ) ROM_REGION( 0x10000, "sound_bios", 0 ) ROM_LOAD( "sound_xs.rom", 0x000000, 0x004000, CRC(80eabfde) SHA1(e09c54152c8093e1724842c711aed6417169db23) ) @@ -3744,9 +3749,9 @@ ROM_END */ ROM_START( pc9821v13 ) - ROM_REGION( 0x60000, "ipl", ROMREGION_ERASEFF ) - ROM_LOAD( "itf.rom", 0x18000, 0x08000, CRC(dd4c7bb8) SHA1(cf3aa193df2722899066246bccbed03f2e79a74a) ) - ROM_LOAD( "bios_v13.rom", 0x28000, 0x18000, BAD_DUMP CRC(0a682b93) SHA1(76a7360502fa0296ea93b4c537174610a834d367) ) + ROM_REGION( 0x30000, "ipl", ROMREGION_ERASEFF ) + ROM_LOAD( "itf.rom", 0x10000, 0x08000, CRC(dd4c7bb8) SHA1(cf3aa193df2722899066246bccbed03f2e79a74a) ) + ROM_LOAD( "bios_v13.rom", 0x18000, 0x18000, BAD_DUMP CRC(0a682b93) SHA1(76a7360502fa0296ea93b4c537174610a834d367) ) ROM_REGION( 0x10000, "sound_bios", 0 ) ROM_LOAD( "sound_v13.rom", 0x0000, 0x4000, CRC(a21ef796) SHA1(34137c287c39c44300b04ee97c1e6459bb826b60) ) @@ -3763,9 +3768,9 @@ ROM_END */ ROM_START( pc9821v20 ) - ROM_REGION( 0x60000, "ipl", ROMREGION_ERASEFF ) - ROM_LOAD( "itf_v20.rom", 0x38000, 0x08000, CRC(10e52302) SHA1(f95b8648e3f5a23e507a9fbda8ab2e317d8e5151) ) - ROM_LOAD( "bios_v20.rom", 0x08000, 0x018000, BAD_DUMP CRC(d5d1f13b) SHA1(bf44b5f4e138e036f1b848d6616fbd41b5549764) ) + ROM_REGION( 0x30000, "ipl", ROMREGION_ERASEFF ) + ROM_LOAD( "itf_v20.rom", 0x10000, 0x08000, CRC(10e52302) SHA1(f95b8648e3f5a23e507a9fbda8ab2e317d8e5151) ) + ROM_LOAD( "bios_v20.rom", 0x18000, 0x18000, BAD_DUMP CRC(d5d1f13b) SHA1(bf44b5f4e138e036f1b848d6616fbd41b5549764) ) ROM_REGION( 0x10000, "sound_bios", 0 ) ROM_LOAD( "sound_v20.rom", 0x000000, 0x004000, CRC(80eabfde) SHA1(e09c54152c8093e1724842c711aed6417169db23) )