summaryrefslogtreecommitdiffstatshomepage
path: root/src/mess/drivers/pc9801.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/mess/drivers/pc9801.c')
-rw-r--r--src/mess/drivers/pc9801.c33
1 files changed, 22 insertions, 11 deletions
diff --git a/src/mess/drivers/pc9801.c b/src/mess/drivers/pc9801.c
index e3d6cfabeb4..5cc58245e77 100644
--- a/src/mess/drivers/pc9801.c
+++ b/src/mess/drivers/pc9801.c
@@ -37,6 +37,7 @@
- Presumably one ROM is undumped?
floppy issues TODO (certain fail)
+ - Unsupported disk types: *.dsk, *.nfd, *.fdd
- 46 Okunen Monogatari - The Shinkaron
- AD&D Champions of Krynn
- AI Shougi (asserts upon loading)
@@ -66,6 +67,7 @@
- Arcus 3: moans with a JP message "not enough memory (needs 640kb to start)";
- Armored Flagship Atragon: needs HDD install
- Arquephos: needs extra sound board(s)?
+ - Asoko no Koufuku: black screen with BGM, waits at 0x225f6;
- Dragon Buster: slight issue with window masking;
- Far Side Moon: doesn't detect sound board (tied to 0x00ec ports)
@@ -342,6 +344,7 @@ public:
UINT32 screen_update(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
UINT8 *m_ipl_rom;
+ UINT8 *m_sound_bios;
UINT8 *m_work_ram;
UINT8 *m_ext_work_ram;
UINT8 *m_char_rom;
@@ -454,6 +457,7 @@ public:
DECLARE_READ8_MEMBER(pc9801rs_30_r);
DECLARE_READ8_MEMBER(pc9801rs_memory_r);
DECLARE_WRITE8_MEMBER(pc9801rs_memory_w);
+ DECLARE_READ8_MEMBER(m_pc9801rs_soundrom_r);
DECLARE_READ8_MEMBER(pc9810rs_fdc_ctrl_r);
DECLARE_WRITE8_MEMBER(pc9810rs_fdc_ctrl_w);
DECLARE_READ8_MEMBER(pc9801rs_2hd_r);
@@ -1803,6 +1807,11 @@ WRITE8_MEMBER(pc9801_state::pc9801rs_70_w)
pc9801_70_w(space,offset,data);
}
+READ8_MEMBER(pc9801_state::m_pc9801rs_soundrom_r)
+{
+ return m_sound_bios[offset];
+}
+
READ8_MEMBER(pc9801_state::pc9801rs_memory_r)
{
if(m_gate_a20 == 0)
@@ -1814,6 +1823,7 @@ READ8_MEMBER(pc9801_state::pc9801rs_memory_r)
else if(offset >= 0x000a8000 && offset <= 0x000affff) { return m_pc9801rs_grcg_r(offset & 0x7fff,1); }
else if(offset >= 0x000b0000 && offset <= 0x000b7fff) { return m_pc9801rs_grcg_r(offset & 0x7fff,2); }
else if(offset >= 0x000b8000 && offset <= 0x000bffff) { return m_pc9801rs_grcg_r(offset & 0x7fff,3); }
+ else if(offset >= 0x000cc000 && offset <= 0x000cffff) { return m_pc9801rs_soundrom_r(space,offset & 0x3fff);}
else if(offset >= 0x000e0000 && offset <= 0x000e7fff) { return m_pc9801rs_grcg_r(offset & 0x7fff,0); }
else if(offset >= 0x000e0000 && offset <= 0x000fffff) { return pc9801rs_ipl_r(space,offset & 0x1ffff); }
else if(offset >= 0x00100000 && offset <= 0x00100000+m_ram_size-1) { return pc9801rs_ex_wram_r(space,offset-0x00100000); }
@@ -3399,6 +3409,7 @@ MACHINE_START_MEMBER(pc9801_state,pc9801_common)
m_rtc->oe_w(0); // TODO: unknown connection, MS-DOS 6.2x wants this low somehow with the test mode
m_ipl_rom = memregion("ipl")->base();
+ m_sound_bios = memregion("sound_bios")->base();
}
MACHINE_START_MEMBER(pc9801_state,pc9801f)
@@ -3907,7 +3918,7 @@ ROM_START( pc9801ux )
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( 0x10000, "soundcpu", 0 )
+ ROM_REGION( 0x10000, "sound_bios", 0 )
ROM_LOAD( "sound_ux.rom", 0x0000, 0x4000, CRC(80eabfde) SHA1(e09c54152c8093e1724842c711aed6417169db23) )
ROM_REGION( 0x80000, "chargen", 0 )
@@ -3926,7 +3937,7 @@ ROM_START( pc9801rx )
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( 0x10000, "soundcpu", 0 )
+ ROM_REGION( 0x10000, "sound_bios", 0 )
ROM_LOAD( "sound_rx.rom", 0x000000, 0x004000, CRC(fe9f57f2) SHA1(d5dbc4fea3b8367024d363f5351baecd6adcd8ef) )
ROM_REGION( 0x80000, "chargen", 0 )
@@ -3958,7 +3969,7 @@ ROM_START( pc9801rs )
ROM_LOAD( "f0000.rom", 0xf0000, 0x8000, CRC(4da85a6c) SHA1(18dccfaf6329387c0c64cc4c91b32c25cde8bd5a) )
ROM_LOAD( "f8000.rom", 0xf8000, 0x8000, CRC(2b1e45b1) SHA1(1fec35f17d96b2e2359e3c71670575ad9ff5007e) )
- ROM_REGION( 0x10000, "soundcpu", 0 )
+ ROM_REGION( 0x10000, "sound_bios", 0 )
ROM_LOAD( "sound.rom", 0x0000, 0x4000, CRC(80eabfde) SHA1(e09c54152c8093e1724842c711aed6417169db23) )
ROM_REGION( 0x80000, "chargen", 0 )
@@ -3979,7 +3990,7 @@ ROM_START( pc9801vm )
ROM_LOAD( "itf_rs.rom", 0x18000, 0x08000, CRC(c1815325) SHA1(a2fb11c000ed7c976520622cfb7940ed6ddc904e) )
ROM_LOAD( "bios_vm.rom", 0x28000, 0x018000, CRC(2e2d7cee) SHA1(159549f845dc70bf61955f9469d2281a0131b47f) )
- ROM_REGION( 0x10000, "soundcpu", 0 )
+ ROM_REGION( 0x10000, "sound_bios", 0 )
ROM_LOAD( "sound_vm.rom", 0x000000, 0x004000, CRC(fe9f57f2) SHA1(d5dbc4fea3b8367024d363f5351baecd6adcd8ef) )
ROM_REGION( 0x80000, "chargen", 0 )
@@ -4003,7 +4014,7 @@ ROM_START( pc9821 )
LOAD_IDE_ROM
LOAD_UNK_ROM
- ROM_REGION( 0x10000, "soundcpu", 0 )
+ ROM_REGION( 0x10000, "sound_bios", 0 )
ROM_LOAD( "sound.rom", 0x0000, 0x4000, CRC(a21ef796) SHA1(34137c287c39c44300b04ee97c1e6459bb826b60) )
ROM_REGION( 0x80000, "chargen", 0 )
@@ -4025,7 +4036,7 @@ ROM_START( pc9821as )
LOAD_IDE_ROM
LOAD_UNK_ROM
- ROM_REGION( 0x10000, "soundcpu", 0 )
+ ROM_REGION( 0x10000, "sound_bios", 0 )
ROM_LOAD( "sound_as.rom", 0x000000, 0x004000, CRC(fe9f57f2) SHA1(d5dbc4fea3b8367024d363f5351baecd6adcd8ef) )
ROM_REGION( 0x80000, "chargen", 0 )
@@ -4048,7 +4059,7 @@ ROM_START( pc9821ne )
LOAD_IDE_ROM
LOAD_UNK_ROM
- ROM_REGION( 0x10000, "soundcpu", 0 )
+ ROM_REGION( 0x10000, "sound_bios", 0 )
ROM_LOAD( "sound_ne.rom", 0x0000, 0x4000, CRC(a21ef796) SHA1(34137c287c39c44300b04ee97c1e6459bb826b60) )
ROM_REGION( 0x80000, "chargen", 0 )
@@ -4070,7 +4081,7 @@ ROM_START( pc486mu )
LOAD_IDE_ROM
LOAD_UNK_ROM
- ROM_REGION( 0x10000, "soundcpu", 0 )
+ ROM_REGION( 0x10000, "sound_bios", 0 )
ROM_LOAD( "sound_486mu.rom", 0x0000, 0x4000, CRC(6cdfa793) SHA1(4b8250f9b9db66548b79f961d61010558d6d6e1c))
ROM_REGION( 0x80000, "chargen", 0 )
@@ -4092,7 +4103,7 @@ ROM_START( pc9821ce2 )
LOAD_IDE_ROM
LOAD_UNK_ROM
- ROM_REGION( 0x10000, "soundcpu", 0 )
+ ROM_REGION( 0x10000, "sound_bios", 0 )
ROM_LOAD( "sound_ce2.rom", 0x000000, 0x004000, CRC(a21ef796) SHA1(34137c287c39c44300b04ee97c1e6459bb826b60) )
ROM_REGION( 0x80000, "chargen", 0 )
@@ -4137,7 +4148,7 @@ ROM_START( pc9821v13 )
LOAD_IDE_ROM
LOAD_UNK_ROM
- ROM_REGION( 0x10000, "soundcpu", 0 )
+ ROM_REGION( 0x10000, "sound_bios", 0 )
ROM_LOAD( "sound_v13.rom", 0x0000, 0x4000, CRC(a21ef796) SHA1(34137c287c39c44300b04ee97c1e6459bb826b60) )
ROM_REGION( 0x80000, "chargen", 0 )
@@ -4159,7 +4170,7 @@ ROM_START( pc9821v20 )
LOAD_IDE_ROM
LOAD_UNK_ROM
- ROM_REGION( 0x10000, "soundcpu", 0 )
+ ROM_REGION( 0x10000, "sound_bios", 0 )
ROM_LOAD( "sound_v20.rom", 0x000000, 0x004000, CRC(80eabfde) SHA1(e09c54152c8093e1724842c711aed6417169db23) )
ROM_REGION( 0x80000, "chargen", 0 )