mirror of
https://github.com/holub/mame
synced 2025-05-29 09:03:08 +03:00
IDE -> ATA fix as per smf's suggestion
This commit is contained in:
parent
001867e906
commit
0935810f35
@ -461,7 +461,7 @@ public:
|
|||||||
required_device<upd7220_device> m_hgdc1;
|
required_device<upd7220_device> m_hgdc1;
|
||||||
required_device<upd7220_device> m_hgdc2;
|
required_device<upd7220_device> m_hgdc2;
|
||||||
optional_device<scsicb_device> m_sasibus;
|
optional_device<scsicb_device> m_sasibus;
|
||||||
optional_device<ide_controller_device> m_ide;
|
optional_device<ata_interface_device> m_ide;
|
||||||
required_shared_ptr<UINT8> m_video_ram_1;
|
required_shared_ptr<UINT8> m_video_ram_1;
|
||||||
required_shared_ptr<UINT8> m_video_ram_2;
|
required_shared_ptr<UINT8> m_video_ram_2;
|
||||||
required_device<beep_device> m_beeper;
|
required_device<beep_device> m_beeper;
|
||||||
@ -477,6 +477,7 @@ public:
|
|||||||
UINT8 *m_char_rom;
|
UINT8 *m_char_rom;
|
||||||
UINT8 *m_kanji_rom;
|
UINT8 *m_kanji_rom;
|
||||||
UINT8 *m_ide_rom;
|
UINT8 *m_ide_rom;
|
||||||
|
UINT8 m_ide_bank[2];
|
||||||
|
|
||||||
UINT8 m_portb_tmp;
|
UINT8 m_portb_tmp;
|
||||||
UINT8 m_dma_offset[4];
|
UINT8 m_dma_offset[4];
|
||||||
@ -2276,7 +2277,7 @@ WRITE8_MEMBER(pc9801_state::pc9801rs_pit_mirror_w)
|
|||||||
READ8_MEMBER(pc9801_state::pc9801rs_ide_io_0_r)
|
READ8_MEMBER(pc9801_state::pc9801rs_ide_io_0_r)
|
||||||
{
|
{
|
||||||
printf("IDE r %02x\n",offset);
|
printf("IDE r %02x\n",offset);
|
||||||
return 0;
|
return m_ide_bank[offset];
|
||||||
}
|
}
|
||||||
|
|
||||||
WRITE8_MEMBER(pc9801_state::pc9801rs_ide_io_0_w)
|
WRITE8_MEMBER(pc9801_state::pc9801rs_ide_io_0_w)
|
||||||
@ -2297,28 +2298,29 @@ WRITE8_MEMBER(pc9801_state::pc9801rs_ide_io_0_w)
|
|||||||
|
|
||||||
printf("IDE w %02x %02x\n",offset,data);
|
printf("IDE w %02x %02x\n",offset,data);
|
||||||
|
|
||||||
// ...
|
if(!data & 0x80)
|
||||||
|
m_ide_bank[offset] = data & 0x7f;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* TODO: is mapping correct? */
|
/* TODO: is mapping correct? */
|
||||||
READ16_MEMBER(pc9801_state::pc9801rs_ide_io_1_r)
|
READ16_MEMBER(pc9801_state::pc9801rs_ide_io_1_r)
|
||||||
{
|
{
|
||||||
return m_ide->read_cs0(space, offset >> 1, offset & 1 ? 0xff00 : 0x00ff) >> 8;
|
return m_ide->read_cs0(space, offset, mem_mask);
|
||||||
}
|
}
|
||||||
|
|
||||||
WRITE16_MEMBER(pc9801_state::pc9801rs_ide_io_1_w)
|
WRITE16_MEMBER(pc9801_state::pc9801rs_ide_io_1_w)
|
||||||
{
|
{
|
||||||
m_ide->write_cs0(space, offset >> 1, data >> 8, offset & 1 ? 0xff00 : 0x00ff);
|
m_ide->write_cs0(space, offset, mem_mask);
|
||||||
}
|
}
|
||||||
|
|
||||||
READ16_MEMBER(pc9801_state::pc9801rs_ide_io_2_r)
|
READ16_MEMBER(pc9801_state::pc9801rs_ide_io_2_r)
|
||||||
{
|
{
|
||||||
return m_ide->read_cs1(space, ((offset+6) >> 1), offset & 1 ? 0xff00 : 0x00ff) >> 8;
|
return m_ide->read_cs1(space, offset + 6, mem_mask);
|
||||||
}
|
}
|
||||||
|
|
||||||
WRITE16_MEMBER(pc9801_state::pc9801rs_ide_io_2_w)
|
WRITE16_MEMBER(pc9801_state::pc9801rs_ide_io_2_w)
|
||||||
{
|
{
|
||||||
m_ide->write_cs1(space, ((offset+6) >> 1), data >> 8, offset & 1 ? 0xff00 : 0x00ff);
|
m_ide->write_cs1(space, offset + 6, mem_mask);
|
||||||
}
|
}
|
||||||
|
|
||||||
static ADDRESS_MAP_START( pc9801rs_map, AS_PROGRAM, 32, pc9801_state )
|
static ADDRESS_MAP_START( pc9801rs_map, AS_PROGRAM, 32, pc9801_state )
|
||||||
@ -3680,7 +3682,7 @@ MACHINE_CONFIG_END
|
|||||||
|
|
||||||
|
|
||||||
static MACHINE_CONFIG_FRAGMENT( pc9801_ide )
|
static MACHINE_CONFIG_FRAGMENT( pc9801_ide )
|
||||||
MCFG_IDE_CONTROLLER_ADD("ide", ata_devices, "hdd", NULL, false)
|
MCFG_ATA_INTERFACE_ADD("ide", ata_devices, "hdd", NULL, false)
|
||||||
MCFG_ATA_INTERFACE_IRQ_HANDLER(DEVWRITELINE("pic8259_slave", pic8259_device, ir1_w))
|
MCFG_ATA_INTERFACE_IRQ_HANDLER(DEVWRITELINE("pic8259_slave", pic8259_device, ir1_w))
|
||||||
MACHINE_CONFIG_END
|
MACHINE_CONFIG_END
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user