summaryrefslogtreecommitdiffstatshomepage
path: root/src
diff options
context:
space:
mode:
author Olivier Galibert <galibert@pobox.com>2012-11-28 21:53:22 +0000
committer Olivier Galibert <galibert@pobox.com>2012-11-28 21:53:22 +0000
commit78baa058515de50a4f40db544662614dc151b1f8 (patch)
tree1e2f88a3842a96f4cfa02d6018e06f9fef524507 /src
parentf1aed9f6d6f58f513afbb9cb7ab8f0ef4c68a0f5 (diff)
mirage: Make it boot by whatever means necessary [O. Galibert]
Diffstat (limited to 'src')
-rw-r--r--src/mess/drivers/mirage.c13
1 files changed, 11 insertions, 2 deletions
diff --git a/src/mess/drivers/mirage.c b/src/mess/drivers/mirage.c
index 8d13b37dd5e..7c94f651fd5 100644
--- a/src/mess/drivers/mirage.c
+++ b/src/mess/drivers/mirage.c
@@ -93,6 +93,7 @@ public:
DECLARE_FLOPPY_FORMATS( floppy_formats );
void fdc_intrq_w(bool state);
+ void fdc_drq_w(bool state);
DECLARE_DRIVER_INIT(mirage);
virtual void video_start();
UINT32 screen_update_mirage(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
@@ -119,6 +120,11 @@ void mirage_state::fdc_intrq_w(bool state)
m_maincpu->set_input_line(INPUT_LINE_NMI, state);
}
+void mirage_state::fdc_drq_w(bool state)
+{
+ m_maincpu->set_input_line(M6809_FIRQ_LINE, state);
+}
+
static void mirage_doc_irq(device_t *device, int state)
{
}
@@ -144,12 +150,13 @@ void mirage_state::machine_reset()
}
static ADDRESS_MAP_START( mirage_map, AS_PROGRAM, 8, mirage_state )
- AM_RANGE(0x0000, 0x7fff) AM_ROMBANK("sndbank") // 32k window on 128k of wave RAM
+ AM_RANGE(0x0000, 0x7fff) AM_RAMBANK("sndbank") // 32k window on 128k of wave RAM
AM_RANGE(0x8000, 0xbfff) AM_RAM // main RAM
AM_RANGE(0xc000, 0xdfff) AM_RAM // expansion RAM
AM_RANGE(0xe100, 0xe100) AM_DEVREADWRITE("acia6850", acia6850_device, status_read, control_write)
AM_RANGE(0xe101, 0xe101) AM_DEVREADWRITE("acia6850", acia6850_device, data_read, data_write)
AM_RANGE(0xe200, 0xe2ff) AM_DEVREADWRITE("via6522", via6522_device, read, write)
+ AM_RANGE(0xe400, 0xe4ff) AM_NOP
AM_RANGE(0xe800, 0xe803) AM_DEVREADWRITE("wd1772", wd1772_t, read, write)
AM_RANGE(0xec00, 0xecef) AM_DEVREADWRITE("es5503", es5503_device, read, write)
AM_RANGE(0xf000, 0xffff) AM_ROM AM_REGION("osrom", 0)
@@ -248,7 +255,8 @@ static ACIA6850_INTERFACE( mirage_acia6850_interface )
DEVCB_NULL, // cts in
DEVCB_NULL, // rts out
DEVCB_NULL, // dcd in
- DEVCB_CPU_INPUT_LINE("maincpu", M6809_FIRQ_LINE)
+ DEVCB_NULL
+ // DEVCB_CPU_INPUT_LINE("maincpu", M6809_FIRQ_LINE)
};
static MACHINE_CONFIG_START( mirage, mirage_state )
@@ -293,6 +301,7 @@ DRIVER_INIT_MEMBER(mirage_state,mirage)
{
m_fdc->set_floppy(floppy);
m_fdc->setup_intrq_cb(wd1772_t::line_cb(FUNC(mirage_state::fdc_intrq_w), this));
+ m_fdc->setup_drq_cb(wd1772_t::line_cb(FUNC(mirage_state::fdc_drq_w), this));
floppy->ss_w(0);
}