some more cleanup (nw)

This commit is contained in:
Miodrag Milanovic 2014-03-16 09:04:10 +00:00
parent e52971111c
commit 75317b8043
6 changed files with 52 additions and 39 deletions

View File

@ -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 )

View File

@ -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 =

View File

@ -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 =

View File

@ -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 }
};

View File

@ -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;
};

View File

@ -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 }
};