diff options
author | 2014-03-16 09:04:10 +0000 | |
---|---|---|
committer | 2014-03-16 09:04:10 +0000 | |
commit | 75317b8043b0ccffe3cf42ceb49483fd6b270b8b (patch) | |
tree | ed49e7406730c23fb552ec67e0c427d22de2f027 /src/mess | |
parent | e52971111c9d3adfa05110720c3e919ee0b8131f (diff) |
some more cleanup (nw)
Diffstat (limited to 'src/mess')
-rw-r--r-- | src/mess/drivers/esqasr.c | 13 | ||||
-rw-r--r-- | src/mess/drivers/esqkt.c | 11 | ||||
-rw-r--r-- | src/mess/drivers/esqmr.c | 10 | ||||
-rw-r--r-- | src/mess/drivers/qx10.c | 4 | ||||
-rw-r--r-- | src/mess/includes/partner.h | 9 | ||||
-rw-r--r-- | src/mess/machine/partner.c | 44 |
6 files changed, 52 insertions, 39 deletions
diff --git a/src/mess/drivers/esqasr.c b/src/mess/drivers/esqasr.c index d3001da909d..31526450470 100644 --- a/src/mess/drivers/esqasr.c +++ b/src/mess/drivers/esqasr.c @@ -59,8 +59,9 @@ public: virtual void machine_reset(); -public: - DECLARE_DRIVER_INIT(asr); + DECLARE_DRIVER_INIT(asr); + DECLARE_WRITE_LINE_MEMBER(esq5506_otto_irq); + DECLARE_READ16_MEMBER(esq5506_read_adc); }; void esqasr_state::machine_reset() @@ -78,11 +79,11 @@ static ADDRESS_MAP_START( asrx_map, AS_PROGRAM, 32, esqasr_state ) AM_RANGE(0x0be00000, 0x0befffff) AM_RAM ADDRESS_MAP_END -static void esq5506_otto_irq(device_t *device, int state) +WRITE_LINE_MEMBER(esqasr_state::esq5506_otto_irq) { } -static READ16_DEVICE_HANDLER(esq5506_read_adc) +READ16_MEMBER(esqasr_state::esq5506_read_adc) { return 0; } @@ -94,8 +95,8 @@ static const es5506_interface es5506_config = "waverom3", /* Bank 0 */ "waverom4", /* Bank 1 */ 1, /* channels */ - DEVCB_LINE(esq5506_otto_irq), /* irq */ - DEVCB_DEVICE_HANDLER(DEVICE_SELF, esq5506_read_adc) + DEVCB_DRIVER_LINE_MEMBER(esqasr_state,esq5506_otto_irq), /* irq */ + DEVCB_DRIVER_MEMBER16(esqasr_state, esq5506_read_adc) }; static MACHINE_CONFIG_START( asr, esqasr_state ) diff --git a/src/mess/drivers/esqkt.c b/src/mess/drivers/esqkt.c index 4b188b33332..442ed018a85 100644 --- a/src/mess/drivers/esqkt.c +++ b/src/mess/drivers/esqkt.c @@ -66,6 +66,7 @@ public: DECLARE_DRIVER_INIT(kt); DECLARE_INPUT_CHANGED_MEMBER(key_stroke); DECLARE_WRITE_LINE_MEMBER(esq5506_otto_irq); + DECLARE_READ16_MEMBER(esq5506_read_adc); }; void esqkt_state::machine_reset() @@ -138,11 +139,9 @@ WRITE_LINE_MEMBER(esqkt_state::esq5506_otto_irq) #endif } -static READ16_DEVICE_HANDLER(esq5506_read_adc) +READ16_MEMBER(esqkt_state::esq5506_read_adc) { - esqkt_state *state = device->machine().driver_data<esqkt_state>(); - - switch ((state->m_duart_io & 7) ^ 7) + switch ((m_duart_io & 7) ^ 7) { case 0: // vRef to check battery return 0x5b00; @@ -154,7 +153,7 @@ static READ16_DEVICE_HANDLER(esq5506_read_adc) return 0; } - if (state->m_duart_io & 1) + if (m_duart_io & 1) { return 0x5b00; // vRef } @@ -194,7 +193,7 @@ static const es5506_interface es5506_config = "waverom4", /* Bank 1 */ 1, /* channels */ DEVCB_DRIVER_LINE_MEMBER(esqkt_state,esq5506_otto_irq), /* irq */ - DEVCB_DEVICE_HANDLER(DEVICE_SELF, esq5506_read_adc) + DEVCB_DRIVER_MEMBER16(esqkt_state, esq5506_read_adc) }; static const es5506_interface es5506_2_config = diff --git a/src/mess/drivers/esqmr.c b/src/mess/drivers/esqmr.c index 9fb6824b662..b81e628b7f8 100644 --- a/src/mess/drivers/esqmr.c +++ b/src/mess/drivers/esqmr.c @@ -37,6 +37,8 @@ public: public: DECLARE_DRIVER_INIT(mr); + DECLARE_WRITE_LINE_MEMBER(esq5506_otto_irq); + DECLARE_READ16_MEMBER(esq5506_read_adc); }; void esqmr_state::machine_reset() @@ -50,11 +52,11 @@ static ADDRESS_MAP_START( mr_map, AS_PROGRAM, 32, esqmr_state ) // AM_RANGE(0xff0000, 0xffffff) AM_RAM AM_SHARE("osram") ADDRESS_MAP_END -static void esq5506_otto_irq(device_t *device, int state) +WRITE_LINE_MEMBER(esqmr_state::esq5506_otto_irq) { } -static READ16_DEVICE_HANDLER(esq5506_read_adc) +READ16_MEMBER(esqmr_state::esq5506_read_adc) { return 0; } @@ -66,8 +68,8 @@ static const es5506_interface es5506_config = "waverom3", /* Bank 0 */ "waverom4", /* Bank 1 */ 1, /* channels */ - DEVCB_LINE(esq5506_otto_irq), /* irq */ - DEVCB_DEVICE_HANDLER(DEVICE_SELF, esq5506_read_adc) + DEVCB_DRIVER_LINE_MEMBER(esqmr_state,esq5506_otto_irq), /* irq */ + DEVCB_DRIVER_MEMBER16(esqmr_state, esq5506_read_adc) }; static const es5506_interface es5506_2_config = diff --git a/src/mess/drivers/qx10.c b/src/mess/drivers/qx10.c index 23b81de6250..17fb2d93b99 100644 --- a/src/mess/drivers/qx10.c +++ b/src/mess/drivers/qx10.c @@ -408,8 +408,8 @@ static I8237_INTERFACE( qx10_dma8237_1_interface ) DEVCB_DRIVER_LINE_MEMBER(qx10_state, tc_w), DEVCB_DRIVER_MEMBER(qx10_state, memory_read_byte), DEVCB_DRIVER_MEMBER(qx10_state, memory_write_byte), - { DEVCB_DRIVER_MEMBER(qx10_state, fdc_dma_r), DEVCB_DRIVER_MEMBER(qx10_state, gdc_dack_r),/*DEVCB_DEVICE_HANDLER("upd7220", upd7220_dack_r)*/ DEVCB_NULL, DEVCB_NULL }, - { DEVCB_DRIVER_MEMBER(qx10_state, fdc_dma_w), DEVCB_DRIVER_MEMBER(qx10_state, gdc_dack_w),/*DEVCB_DEVICE_HANDLER("upd7220", upd7220_dack_w)*/ DEVCB_NULL, DEVCB_NULL }, + { DEVCB_DRIVER_MEMBER(qx10_state, fdc_dma_r), DEVCB_DRIVER_MEMBER(qx10_state, gdc_dack_r),/*DEVCB_DEVICE_MEMBER("upd7220", upd7220_device, dack_r)*/ DEVCB_NULL, DEVCB_NULL }, + { DEVCB_DRIVER_MEMBER(qx10_state, fdc_dma_w), DEVCB_DRIVER_MEMBER(qx10_state, gdc_dack_w),/*DEVCB_DEVICE_MEMBER("upd7220", upd7220_device, dack_w)*/ DEVCB_NULL, DEVCB_NULL }, { DEVCB_NULL, DEVCB_NULL, DEVCB_NULL, DEVCB_NULL } }; diff --git a/src/mess/includes/partner.h b/src/mess/includes/partner.h index a518f8bb013..2d28dbb3818 100644 --- a/src/mess/includes/partner.h +++ b/src/mess/includes/partner.h @@ -17,7 +17,8 @@ class partner_state : public radio86_state public: partner_state(const machine_config &mconfig, device_type type, const char *tag) : radio86_state(mconfig, type, tag), - m_ram(*this, RAM_TAG) { } + m_ram(*this, RAM_TAG), + m_fdc(*this, "wd1793") { } UINT8 m_mem_page; UINT8 m_win_mem_page; @@ -30,11 +31,17 @@ public: DECLARE_MACHINE_RESET(partner); DECLARE_WRITE_LINE_MEMBER(partner_wd17xx_drq_w); DECLARE_WRITE_LINE_MEMBER(hrq_w); + + //to remove trampoline once it use new wd17xx core + DECLARE_READ8_MEMBER(partner_fdc_r); + DECLARE_WRITE8_MEMBER(partner_fdc_w); + void partner_window_1(UINT8 bank_num, UINT16 offset,UINT8 *rom); void partner_window_2(UINT8 bank_num, UINT16 offset,UINT8 *rom); void partner_iomap_bank(UINT8 *rom); void partner_bank_switch(); required_device<ram_device> m_ram; + required_device<fd1793_device> m_fdc; }; diff --git a/src/mess/machine/partner.c b/src/mess/machine/partner.c index 302d55fe9db..476f2ca96e6 100644 --- a/src/mess/machine/partner.c +++ b/src/mess/machine/partner.c @@ -43,8 +43,7 @@ const wd17xx_interface partner_wd17xx_interface = MACHINE_START_MEMBER(partner_state,partner) { - device_t *fdc = machine().device("wd1793"); - wd17xx_set_pause_time(fdc, 10); + wd17xx_set_pause_time(m_fdc, 10); } void partner_state::partner_window_1(UINT8 bank_num, UINT16 offset,UINT8 *rom) @@ -78,16 +77,14 @@ void partner_state::partner_window_2(UINT8 bank_num, UINT16 offset,UINT8 *rom) } } -READ8_MEMBER(partner_state::partner_floppy_r){ - device_t *fdc = machine().device("wd1793"); - +READ8_MEMBER(partner_state::partner_floppy_r){ if (offset<0x100) { switch(offset & 3) { - case 0x00 : return wd17xx_status_r(fdc,space, 0); - case 0x01 : return wd17xx_track_r(fdc,space, 0); - case 0x02 : return wd17xx_sector_r(fdc,space, 0); + case 0x00 : return wd17xx_status_r(m_fdc,space, 0); + case 0x01 : return wd17xx_track_r(m_fdc,space, 0); + case 0x02 : return wd17xx_sector_r(m_fdc,space, 0); default : - return wd17xx_data_r(fdc,space, 0); + return wd17xx_data_r(m_fdc,space, 0); } } else { return 0; @@ -95,29 +92,27 @@ READ8_MEMBER(partner_state::partner_floppy_r){ } WRITE8_MEMBER(partner_state::partner_floppy_w){ - device_t *fdc = machine().device("wd1793"); - if (offset<0x100) { switch(offset & 3) { - case 0x00 : wd17xx_command_w(fdc,space, 0,data); break; - case 0x01 : wd17xx_track_w(fdc,space, 0,data);break; - case 0x02 : wd17xx_sector_w(fdc,space, 0,data);break; - default : wd17xx_data_w(fdc,space, 0,data);break; + case 0x00 : wd17xx_command_w(m_fdc,space, 0,data); break; + case 0x01 : wd17xx_track_w(m_fdc,space, 0,data);break; + case 0x02 : wd17xx_sector_w(m_fdc,space, 0,data);break; + default : wd17xx_data_w(m_fdc,space, 0,data);break; } } else { floppy_mon_w(floppy_get_device(machine(), 0), 1); floppy_mon_w(floppy_get_device(machine(), 1), 1); if (((data >> 6) & 1)==1) { - wd17xx_set_drive(fdc,0); + wd17xx_set_drive(m_fdc,0); floppy_mon_w(floppy_get_device(machine(), 0), 0); floppy_drive_set_ready_state(floppy_get_device(machine(), 0), 1, 1); } if (((data >> 3) & 1)==1) { - wd17xx_set_drive(fdc,1); + wd17xx_set_drive(m_fdc,1); floppy_mon_w(floppy_get_device(machine(), 1), 0); floppy_drive_set_ready_state(floppy_get_device(machine(), 1), 1, 1); } - wd17xx_set_side(fdc,data >> 7); + wd17xx_set_side(m_fdc,data >> 7); } } @@ -363,6 +358,15 @@ WRITE_LINE_MEMBER(partner_state::hrq_w) machine().device<i8257_device>("dma8257")->i8257_hlda_w(state); } +READ8_MEMBER(partner_state::partner_fdc_r) +{ + return wd17xx_data_r(m_fdc,space,offset); +} +WRITE8_MEMBER(partner_state::partner_fdc_w) +{ + wd17xx_data_w(m_fdc,space,offset,data); +} + I8257_INTERFACE( partner_dma ) { DEVCB_DRIVER_LINE_MEMBER(partner_state,hrq_w), @@ -370,8 +374,8 @@ I8257_INTERFACE( partner_dma ) DEVCB_NULL, DEVCB_DRIVER_MEMBER(radio86_state, memory_read_byte), DEVCB_DRIVER_MEMBER(radio86_state, memory_write_byte), - { DEVCB_DEVICE_HANDLER("wd1793", wd17xx_data_r), DEVCB_NULL, DEVCB_NULL, DEVCB_NULL }, - { DEVCB_DEVICE_HANDLER("wd1793", wd17xx_data_w), DEVCB_NULL, DEVCB_DEVICE_MEMBER("i8275", i8275_device, dack_w), DEVCB_NULL } + { DEVCB_DRIVER_MEMBER(partner_state, partner_fdc_r), DEVCB_NULL, DEVCB_NULL, DEVCB_NULL }, + { DEVCB_DRIVER_MEMBER(partner_state, partner_fdc_w), DEVCB_NULL, DEVCB_DEVICE_MEMBER("i8275", i8275_device, dack_w), DEVCB_NULL } }; |