summaryrefslogtreecommitdiffstatshomepage
path: root/src/mess/drivers/mirage.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/mess/drivers/mirage.c')
-rw-r--r--src/mess/drivers/mirage.c47
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,