More improvements, Arthur now boots without hacks.

This commit is contained in:
Angelo Salese 2014-04-11 21:11:14 +00:00
parent 1e0afe617e
commit 3f45df0586
2 changed files with 8 additions and 7 deletions

View File

@ -688,7 +688,6 @@ READ32_MEMBER(archimedes_state::archimedes_ioc_r)
if (m_fdc)
{
//printf("17XX: R @ addr %x mask %08x\n", offset*4, mem_mask);
switch(ioc_addr & 0xc)
{
case 0x00: return m_fdc->status_r();
@ -805,17 +804,17 @@ WRITE32_MEMBER(archimedes_state::archimedes_ioc_w)
case 0x40: // latch A
floppy_image_device *floppy = NULL;
if (data & 1) { floppy = m_floppy0->get_device(); }
if (data & 2) { floppy = m_floppy1->get_device(); }
if (data & 4) { floppy = NULL; } // floppy 2
if (data & 8) { floppy = NULL; } // floppy 3
if (!(data & 1)) { floppy = m_floppy0->get_device(); }
if (!(data & 2)) { floppy = m_floppy1->get_device(); }
if (!(data & 4)) { floppy = NULL; } // floppy 2
if (!(data & 8)) { floppy = NULL; } // floppy 3
m_fdc->set_floppy(floppy);
if(floppy)
{
floppy->mon_w(BIT(data, 5));
floppy->ss_w(BIT(data, 4));
floppy->ss_w(!(BIT(data, 4)));
}
//bit 5 is motor on
return;

View File

@ -98,6 +98,7 @@ protected:
WRITE_LINE_MEMBER(a310_state::a310_wd177x_intrq_w)
{
printf("%d IRQ\n",state);
if (state)
archimedes_request_fiq(ARCHIMEDES_FIQ_FLOPPY);
else
@ -106,6 +107,7 @@ WRITE_LINE_MEMBER(a310_state::a310_wd177x_intrq_w)
WRITE_LINE_MEMBER(a310_state::a310_wd177x_drq_w)
{
printf("%d DRQ\n",state);
if (state)
archimedes_request_fiq(ARCHIMEDES_FIQ_FLOPPY_DRQ);
else
@ -359,7 +361,7 @@ static MACHINE_CONFIG_START( a310, a310_state )
MCFG_RAM_DEFAULT_SIZE("2M")
MCFG_RAM_EXTRA_OPTIONS("512K, 1M, 4M, 8M, 16M")
MCFG_WD1772x_ADD("fdc", 8000000 / 2)
MCFG_WD1772x_ADD("fdc", 8000000 / 1) // TODO: frequency
MCFG_WD_FDC_INTRQ_CALLBACK(WRITELINE( a310_state, a310_wd177x_intrq_w))
MCFG_WD_FDC_DRQ_CALLBACK(WRITELINE(a310_state, a310_wd177x_drq_w))
MCFG_FLOPPY_DRIVE_ADD("fdc:0", a310_floppies, "35dd", a310_state::floppy_formats)