diff options
Diffstat (limited to 'src/mess/drivers/mirage.c')
-rw-r--r-- | src/mess/drivers/mirage.c | 47 |
1 files changed, 27 insertions, 20 deletions
diff --git a/src/mess/drivers/mirage.c b/src/mess/drivers/mirage.c index 7e2d739ff57..b937d57ee84 100644 --- a/src/mess/drivers/mirage.c +++ b/src/mess/drivers/mirage.c @@ -96,6 +96,14 @@ public: DECLARE_DRIVER_INIT(mirage); virtual void video_start(); UINT32 screen_update_mirage(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect); + DECLARE_WRITE8_MEMBER(mirage_via_write_porta); + DECLARE_WRITE8_MEMBER(mirage_via_write_portb); + DECLARE_READ8_MEMBER(mirage_via_read_porta); + DECLARE_READ8_MEMBER(mirage_via_read_portb); + DECLARE_READ8_MEMBER(mirage_via_read_ca1); + DECLARE_READ8_MEMBER(mirage_via_read_cb1); + DECLARE_READ8_MEMBER(mirage_via_read_ca2); + DECLARE_READ8_MEMBER(mirage_via_read_cb2); }; const floppy_format_type mirage_state::floppy_formats[] = { @@ -149,7 +157,7 @@ static ADDRESS_MAP_START( mirage_map, AS_PROGRAM, 8, mirage_state ) ADDRESS_MAP_END // port A: front panel -static WRITE8_DEVICE_HANDLER( mirage_via_write_porta ) +WRITE8_MEMBER(mirage_state::mirage_via_write_porta) { // printf("PORT A: %02x\n", data); } @@ -162,23 +170,22 @@ static WRITE8_DEVICE_HANDLER( mirage_via_write_porta ) // bit 1: OUT upper/lower bank (64k halves) // bit 0: OUT bank 0/bank 1 (32k halves) -static WRITE8_DEVICE_HANDLER( mirage_via_write_portb ) +WRITE8_MEMBER(mirage_state::mirage_via_write_portb) { int bank = 0; - mirage_state *state = space.machine().driver_data<mirage_state>(); // handle sound RAM bank switching bank = (data & 2) ? (64*1024) : 0; bank += (data & 1) ? (32*1024) : 0; - if (bank != state->last_sndram_bank) + if (bank != last_sndram_bank) { - state->last_sndram_bank = bank; - state->membank("sndbank")->set_base(state->memregion("es5503")->base() + bank); + last_sndram_bank = bank; + membank("sndbank")->set_base(memregion("es5503")->base() + bank); } } // port A: front panel -static READ8_DEVICE_HANDLER( mirage_via_read_porta ) +READ8_MEMBER(mirage_state::mirage_via_read_porta) { return 0; } @@ -186,46 +193,46 @@ static READ8_DEVICE_HANDLER( mirage_via_read_porta ) // port B: // bit 6: IN FDC disk loaded // bit 5: IN 5503 sync (?) -static READ8_DEVICE_HANDLER( mirage_via_read_portb ) +READ8_MEMBER(mirage_state::mirage_via_read_portb) { return 0x60; } // external sync pulse -static READ8_DEVICE_HANDLER( mirage_via_read_ca1 ) +READ8_MEMBER(mirage_state::mirage_via_read_ca1) { return 0; } // keyscan -static READ8_DEVICE_HANDLER( mirage_via_read_cb1 ) +READ8_MEMBER(mirage_state::mirage_via_read_cb1) { return 0; } // keyscan -static READ8_DEVICE_HANDLER( mirage_via_read_ca2 ) +READ8_MEMBER(mirage_state::mirage_via_read_ca2) { return 0; } // keyscan -static READ8_DEVICE_HANDLER( mirage_via_read_cb2 ) +READ8_MEMBER(mirage_state::mirage_via_read_cb2) { return 0; } const via6522_interface mirage_via = { - DEVCB_HANDLER(mirage_via_read_porta), - DEVCB_HANDLER(mirage_via_read_portb), - DEVCB_HANDLER(mirage_via_read_ca1), - DEVCB_HANDLER(mirage_via_read_cb1), - DEVCB_HANDLER(mirage_via_read_ca2), - DEVCB_HANDLER(mirage_via_read_cb2), - DEVCB_HANDLER(mirage_via_write_porta), - DEVCB_HANDLER(mirage_via_write_portb), + DEVCB_DRIVER_MEMBER(mirage_state,mirage_via_read_porta), + DEVCB_DRIVER_MEMBER(mirage_state,mirage_via_read_portb), + DEVCB_DRIVER_MEMBER(mirage_state,mirage_via_read_ca1), + DEVCB_DRIVER_MEMBER(mirage_state,mirage_via_read_cb1), + DEVCB_DRIVER_MEMBER(mirage_state,mirage_via_read_ca2), + DEVCB_DRIVER_MEMBER(mirage_state,mirage_via_read_cb2), + DEVCB_DRIVER_MEMBER(mirage_state,mirage_via_write_porta), + DEVCB_DRIVER_MEMBER(mirage_state,mirage_via_write_portb), DEVCB_NULL, DEVCB_NULL, DEVCB_NULL, |