(MESS) adam: Fixed FDC disk in place sensor. [Curt Coder]

This commit is contained in:
Curt Coder 2013-11-01 21:09:47 +00:00
parent 4afe8297bd
commit 959b1d90dc

View File

@ -73,15 +73,15 @@ static ADDRESS_MAP_START( adam_fdc_mem, AS_PROGRAM, 8, adam_fdc_device )
AM_RANGE(0x0000, 0x001f) AM_DEVREADWRITE(M6801_TAG, m6801_cpu_device, m6801_io_r, m6801_io_w)
AM_RANGE(0x0080, 0x00ff) AM_RAM
AM_RANGE(0x0400, 0x07ff) AM_RAM AM_WRITEONLY AM_SHARE("ram")
AM_RANGE(0x0800, 0x0800) AM_MIRROR(0xff) AM_DEVREAD(WD2793_TAG, wd2793_t, status_r)
AM_RANGE(0x0800, 0x0800) AM_MIRROR(0x7ff) AM_DEVREAD(WD2793_TAG, wd2793_t, status_r)
AM_RANGE(0x1400, 0x17ff) AM_RAM AM_READONLY AM_SHARE("ram")
AM_RANGE(0x1800, 0x1800) AM_MIRROR(0xff) AM_DEVWRITE(WD2793_TAG, wd2793_t, cmd_w)
AM_RANGE(0x2800, 0x2800) AM_MIRROR(0xff) AM_DEVREAD(WD2793_TAG, wd2793_t, track_r)
AM_RANGE(0x3800, 0x3800) AM_MIRROR(0xff) AM_DEVWRITE(WD2793_TAG, wd2793_t, track_w)
AM_RANGE(0x4800, 0x4800) AM_MIRROR(0xff) AM_DEVREAD(WD2793_TAG, wd2793_t, sector_r)
AM_RANGE(0x5800, 0x5800) AM_MIRROR(0xff) AM_DEVWRITE(WD2793_TAG, wd2793_t, sector_w)
AM_RANGE(0x6800, 0x6800) AM_MIRROR(0xff) AM_DEVREAD(WD2793_TAG, wd2793_t, data_r)
AM_RANGE(0x7800, 0x7800) AM_MIRROR(0xff) AM_DEVWRITE(WD2793_TAG, wd2793_t, data_w)
AM_RANGE(0x1800, 0x1800) AM_MIRROR(0x7ff) AM_DEVWRITE(WD2793_TAG, wd2793_t, cmd_w)
AM_RANGE(0x2800, 0x2800) AM_MIRROR(0x7ff) AM_DEVREAD(WD2793_TAG, wd2793_t, track_r)
AM_RANGE(0x3800, 0x3800) AM_MIRROR(0x7ff) AM_DEVWRITE(WD2793_TAG, wd2793_t, track_w)
AM_RANGE(0x4800, 0x4800) AM_MIRROR(0x7ff) AM_DEVREAD(WD2793_TAG, wd2793_t, sector_r)
AM_RANGE(0x5800, 0x5800) AM_MIRROR(0x7ff) AM_DEVWRITE(WD2793_TAG, wd2793_t, sector_w)
AM_RANGE(0x6800, 0x6800) AM_MIRROR(0x7ff) AM_DEVREAD(WD2793_TAG, wd2793_t, data_r)
AM_RANGE(0x7800, 0x7800) AM_MIRROR(0x7ff) AM_DEVWRITE(WD2793_TAG, wd2793_t, data_w)
AM_RANGE(0x8000, 0x8fff) AM_MIRROR(0x7000) AM_ROM AM_REGION(M6801_TAG, 0)
ADDRESS_MAP_END
@ -93,8 +93,8 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( adam_fdc_io, AS_IO, 8, adam_fdc_device )
AM_RANGE(M6801_PORT1, M6801_PORT1) AM_READWRITE(p1_r, p1_w)
AM_RANGE(M6801_PORT2, M6801_PORT2) AM_READWRITE(p2_r, p2_w)
AM_RANGE(M6801_PORT3, M6801_PORT3) AM_WRITENOP
AM_RANGE(M6801_PORT4, M6801_PORT4) AM_WRITENOP
AM_RANGE(M6801_PORT3, M6801_PORT3)
AM_RANGE(M6801_PORT4, M6801_PORT4)
ADDRESS_MAP_END
@ -124,7 +124,6 @@ static MACHINE_CONFIG_FRAGMENT( adam_fdc )
MCFG_CPU_ADD(M6801_TAG, M6801, XTAL_4MHz)
MCFG_CPU_PROGRAM_MAP(adam_fdc_mem)
MCFG_CPU_IO_MAP(adam_fdc_io)
MCFG_DEVICE_DISABLE() // TODO
MCFG_WD2793x_ADD(WD2793_TAG, XTAL_4MHz/4)
@ -233,7 +232,7 @@ READ8_MEMBER( adam_fdc_device::p1_r )
UINT8 data = 0x00;
// disk in place
data |= m_floppy0->get_device()->exists() ? 0x01 : 0x00;
data |= m_floppy0->get_device()->exists() ? 0x00 : 0x01;
// floppy data request
data |= m_fdc->drq_r() ? 0x04 : 0x00;