mirror of
https://github.com/holub/mame
synced 2025-04-22 16:31:49 +03:00
Mess is now free of DEVCB_HANDLER (nw)
This commit is contained in:
parent
b4e05fafe2
commit
499e810256
@ -1154,38 +1154,38 @@ static INPUT_PORTS_START( dsp3500 )
|
||||
PORT_INCLUDE(apollo_config)
|
||||
INPUT_PORTS_END
|
||||
|
||||
static WRITE8_DEVICE_HANDLER( apollo_kbd_putchar ) {
|
||||
WRITE8_MEMBER( apollo_state::apollo_kbd_putchar ) {
|
||||
// put keyboard character to the keyboard sio
|
||||
// DLOG1(("apollo_kbd_putchar: 0x%02x", data));
|
||||
apollo_sio_rx_data(space.machine().device(APOLLO_SIO_TAG), 0, data);
|
||||
apollo_sio_rx_data(machine().device(APOLLO_SIO_TAG), 0, data);
|
||||
}
|
||||
|
||||
static READ8_DEVICE_HANDLER( apollo_kbd_has_beeper ) {
|
||||
READ8_MEMBER( apollo_state::apollo_kbd_has_beeper ) {
|
||||
return 1; // apollo_config(APOLLO_CONF_KBD_BEEPER);
|
||||
}
|
||||
|
||||
static READ8_DEVICE_HANDLER( apollo_kbd_is_german ) {
|
||||
READ8_MEMBER( apollo_state::apollo_kbd_is_german ) {
|
||||
return apollo_config(APOLLO_CONF_GERMAN_KBD);
|
||||
}
|
||||
|
||||
static APOLLO_KBD_INTERFACE( apollo_kbd_config ) = {
|
||||
DEVCB_HANDLER(apollo_kbd_putchar),
|
||||
DEVCB_HANDLER(apollo_kbd_has_beeper),
|
||||
DEVCB_HANDLER(apollo_kbd_is_german)
|
||||
DEVCB_DRIVER_MEMBER(apollo_state, apollo_kbd_putchar),
|
||||
DEVCB_DRIVER_MEMBER(apollo_state, apollo_kbd_has_beeper),
|
||||
DEVCB_DRIVER_MEMBER(apollo_state, apollo_kbd_is_german)
|
||||
};
|
||||
|
||||
static WRITE8_DEVICE_HANDLER( terminal_kbd_putchar ) {
|
||||
WRITE8_MEMBER( apollo_state::terminal_kbd_putchar ) {
|
||||
// put input character from terminal to the RS232 sio (i.e. sio1)
|
||||
DLOG1(("terminal_kbd_putchar: 0x%02x", data));
|
||||
//DLOG1(("terminal_kbd_putchar: 0x%02x", data));
|
||||
// FIXME: as of mess0145u1, terminal.c will append a null character after each input character
|
||||
if (data != 0)
|
||||
{
|
||||
apollo_sio_rx_data(space.machine().device(APOLLO_SIO_TAG), 1, data);
|
||||
apollo_sio_rx_data(machine().device(APOLLO_SIO_TAG), 1, data);
|
||||
}
|
||||
}
|
||||
|
||||
static GENERIC_TERMINAL_INTERFACE( apollo_terminal_config ) {
|
||||
DEVCB_HANDLER(terminal_kbd_putchar)
|
||||
DEVCB_DRIVER_MEMBER(apollo_state, terminal_kbd_putchar)
|
||||
};
|
||||
|
||||
void apollo_terminal_write(UINT8 data) {
|
||||
|
@ -193,6 +193,19 @@ public:
|
||||
IRQ_CALLBACK_MEMBER(apollo_irq_acknowledge);
|
||||
IRQ_CALLBACK_MEMBER(apollo_pic_acknowledge);
|
||||
void apollo_bus_error();
|
||||
DECLARE_WRITE8_MEMBER( apollo_kbd_putchar );
|
||||
DECLARE_READ8_MEMBER( apollo_kbd_has_beeper );
|
||||
DECLARE_READ8_MEMBER( apollo_kbd_is_german );
|
||||
DECLARE_WRITE8_MEMBER( terminal_kbd_putchar );
|
||||
DECLARE_READ8_MEMBER( apollo_dma8237_ctape_dack_r );
|
||||
DECLARE_WRITE8_MEMBER( apollo_dma8237_ctape_dack_w );
|
||||
DECLARE_READ8_MEMBER( apollo_dma8237_fdc_dack_r );
|
||||
DECLARE_WRITE8_MEMBER( apollo_dma8237_fdc_dack_w );
|
||||
DECLARE_READ8_MEMBER( apollo_dma8237_wdc_dack_r );
|
||||
DECLARE_WRITE8_MEMBER( apollo_dma8237_wdc_dack_w );
|
||||
DECLARE_WRITE_LINE_MEMBER( apollo_dma8237_out_eop );
|
||||
DECLARE_WRITE_LINE_MEMBER( apollo_dma_1_hrq_changed );
|
||||
DECLARE_WRITE_LINE_MEMBER( apollo_dma_2_hrq_changed );
|
||||
};
|
||||
|
||||
MACHINE_CONFIG_EXTERN( apollo );
|
||||
|
@ -505,9 +505,9 @@ WRITE8_MEMBER(apollo_state::apollo_dma_write_word){
|
||||
SLOG1(("dma write word at offset %x+%03x = %02x", page_offset, offset, data));
|
||||
}
|
||||
|
||||
static READ8_DEVICE_HANDLER( apollo_dma8237_ctape_dack_r ) {
|
||||
READ8_MEMBER(apollo_state::apollo_dma8237_ctape_dack_r ) {
|
||||
UINT8 data = sc499_dack_r(&space.machine());
|
||||
DLOG2(("dma ctape dack read %02x",data));
|
||||
// DLOG2(("dma ctape dack read %02x",data));
|
||||
|
||||
// hack for DN3000: select appropriate DMA channel No.
|
||||
dn3000_dma_channel1 = 1; // 1 = ctape, 2 = floppy dma channel
|
||||
@ -515,8 +515,8 @@ static READ8_DEVICE_HANDLER( apollo_dma8237_ctape_dack_r ) {
|
||||
return data;
|
||||
}
|
||||
|
||||
static WRITE8_DEVICE_HANDLER( apollo_dma8237_ctape_dack_w ) {
|
||||
DLOG2(("dma ctape dack write %02x", data));
|
||||
WRITE8_MEMBER(apollo_state::apollo_dma8237_ctape_dack_w ) {
|
||||
// DLOG2(("dma ctape dack write %02x", data));
|
||||
sc499_dack_w(&space.machine(), data);
|
||||
|
||||
// hack for DN3000: select appropriate DMA channel No.
|
||||
@ -524,7 +524,7 @@ static WRITE8_DEVICE_HANDLER( apollo_dma8237_ctape_dack_w ) {
|
||||
dn3000_dma_channel1 = 1; // 1 = ctape, 2 = floppy dma channel
|
||||
}
|
||||
|
||||
static READ8_DEVICE_HANDLER( apollo_dma8237_fdc_dack_r ) {
|
||||
READ8_MEMBER(apollo_state::apollo_dma8237_fdc_dack_r ) {
|
||||
pc_fdc_at_device *fdc = space.machine().device<pc_fdc_at_device>(APOLLO_FDC_TAG);
|
||||
UINT8 data = fdc->dma_r();
|
||||
// DLOG2(("dma fdc dack read %02x",data));
|
||||
@ -535,7 +535,7 @@ static READ8_DEVICE_HANDLER( apollo_dma8237_fdc_dack_r ) {
|
||||
return data;
|
||||
}
|
||||
|
||||
static WRITE8_DEVICE_HANDLER( apollo_dma8237_fdc_dack_w ) {
|
||||
WRITE8_MEMBER(apollo_state::apollo_dma8237_fdc_dack_w ) {
|
||||
pc_fdc_at_device *fdc = space.machine().device<pc_fdc_at_device>(APOLLO_FDC_TAG);
|
||||
// DLOG2(("dma fdc dack write %02x", data));
|
||||
fdc->dma_w(data);
|
||||
@ -545,62 +545,62 @@ static WRITE8_DEVICE_HANDLER( apollo_dma8237_fdc_dack_w ) {
|
||||
dn3000_dma_channel1 = 2; // 1 = ctape, 2 = floppy dma channel
|
||||
}
|
||||
|
||||
static READ8_DEVICE_HANDLER( apollo_dma8237_wdc_dack_r ) {
|
||||
READ8_MEMBER(apollo_state::apollo_dma8237_wdc_dack_r ) {
|
||||
UINT8 data = 0xff; // omti8621_dack_r(device->machine);
|
||||
DLOG1(("dma wdc dack read %02x (not used, not emulated!)",data));
|
||||
//DLOG1(("dma wdc dack read %02x (not used, not emulated!)",data));
|
||||
return data;
|
||||
}
|
||||
|
||||
static WRITE8_DEVICE_HANDLER( apollo_dma8237_wdc_dack_w ) {
|
||||
DLOG1(("dma wdc dack write %02x (not used, not emulated!)", data));
|
||||
// omti8621_dack_w(device->machine, data);
|
||||
WRITE8_MEMBER(apollo_state::apollo_dma8237_wdc_dack_w ) {
|
||||
//DLOG1(("dma wdc dack write %02x (not used, not emulated!)", data));
|
||||
// omti8621_dack_w(machine, data);
|
||||
}
|
||||
|
||||
static WRITE_LINE_DEVICE_HANDLER( apollo_dma8237_out_eop ) {
|
||||
pc_fdc_at_device *fdc = device->machine().device<pc_fdc_at_device>(APOLLO_FDC_TAG);
|
||||
DLOG1(("dma out eop state %02x", state));
|
||||
WRITE_LINE_MEMBER(apollo_state::apollo_dma8237_out_eop ) {
|
||||
pc_fdc_at_device *fdc = machine().device<pc_fdc_at_device>(APOLLO_FDC_TAG);
|
||||
//DLOG1(("dma out eop state %02x", state));
|
||||
fdc->tc_w(!state);
|
||||
sc499_set_tc_state(&device->machine(), state);
|
||||
sc499_set_tc_state(&machine(), state);
|
||||
}
|
||||
|
||||
static WRITE_LINE_DEVICE_HANDLER( apollo_dma_1_hrq_changed ) {
|
||||
WRITE_LINE_MEMBER(apollo_state::apollo_dma_1_hrq_changed ) {
|
||||
// DLOG2(("dma 1 hrq changed state %02x", state));
|
||||
get_device_dma8237_2(device)->i8237_dreq0_w(state);
|
||||
get_device_dma8237_2(machine().device(APOLLO_DMA1_TAG))->i8237_dreq0_w(state);
|
||||
|
||||
/* Assert HLDA */
|
||||
dynamic_cast<i8237_device*>(device)->i8237_hlda_w(state);
|
||||
dynamic_cast<i8237_device*>(machine().device(APOLLO_DMA1_TAG))->i8237_hlda_w(state);
|
||||
|
||||
// cascade mode?
|
||||
// i8237_hlda_w(get_device_dma8237_2(device), state);
|
||||
}
|
||||
|
||||
static WRITE_LINE_DEVICE_HANDLER( apollo_dma_2_hrq_changed ) {
|
||||
WRITE_LINE_MEMBER(apollo_state::apollo_dma_2_hrq_changed ) {
|
||||
// DLOG2(("dma 2 hrq changed state %02x", state));
|
||||
device->machine().device(MAINCPU)->execute().set_input_line(INPUT_LINE_HALT, state ? ASSERT_LINE : CLEAR_LINE);
|
||||
machine().device(MAINCPU)->execute().set_input_line(INPUT_LINE_HALT, state ? ASSERT_LINE : CLEAR_LINE);
|
||||
|
||||
/* Assert HLDA */
|
||||
dynamic_cast<i8237_device*>(device)->i8237_hlda_w(state);
|
||||
dynamic_cast<i8237_device*>(machine().device(APOLLO_DMA2_TAG))->i8237_hlda_w(state);
|
||||
}
|
||||
|
||||
static I8237_INTERFACE( apollo_dma8237_1_config )
|
||||
{
|
||||
DEVCB_LINE(apollo_dma_1_hrq_changed),
|
||||
DEVCB_LINE(apollo_dma8237_out_eop),
|
||||
DEVCB_DRIVER_LINE_MEMBER(apollo_state, apollo_dma_1_hrq_changed),
|
||||
DEVCB_DRIVER_LINE_MEMBER(apollo_state, apollo_dma8237_out_eop),
|
||||
DEVCB_DRIVER_MEMBER(apollo_state, apollo_dma_read_byte),
|
||||
DEVCB_DRIVER_MEMBER(apollo_state, apollo_dma_write_byte),
|
||||
{ DEVCB_NULL, DEVCB_HANDLER(apollo_dma8237_ctape_dack_r), DEVCB_HANDLER(apollo_dma8237_fdc_dack_r), DEVCB_NULL},
|
||||
{ DEVCB_NULL, DEVCB_HANDLER(apollo_dma8237_ctape_dack_w), DEVCB_HANDLER(apollo_dma8237_fdc_dack_w), DEVCB_NULL},
|
||||
{ DEVCB_NULL, DEVCB_DRIVER_MEMBER(apollo_state, apollo_dma8237_ctape_dack_r), DEVCB_DRIVER_MEMBER(apollo_state, apollo_dma8237_fdc_dack_r), DEVCB_NULL},
|
||||
{ DEVCB_NULL, DEVCB_DRIVER_MEMBER(apollo_state, apollo_dma8237_ctape_dack_w), DEVCB_DRIVER_MEMBER(apollo_state, apollo_dma8237_fdc_dack_w), DEVCB_NULL},
|
||||
{ DEVCB_NULL, DEVCB_NULL, DEVCB_NULL, DEVCB_NULL}
|
||||
};
|
||||
|
||||
static I8237_INTERFACE( apollo_dma8237_2_config )
|
||||
{
|
||||
DEVCB_LINE(apollo_dma_2_hrq_changed),
|
||||
DEVCB_DRIVER_LINE_MEMBER(apollo_state, apollo_dma_2_hrq_changed),
|
||||
DEVCB_NULL,
|
||||
DEVCB_DRIVER_MEMBER(apollo_state, apollo_dma_read_word),
|
||||
DEVCB_DRIVER_MEMBER(apollo_state, apollo_dma_write_word),
|
||||
{ DEVCB_NULL, DEVCB_NULL, DEVCB_NULL, DEVCB_HANDLER(apollo_dma8237_wdc_dack_r)},
|
||||
{ DEVCB_NULL, DEVCB_NULL, DEVCB_NULL, DEVCB_HANDLER(apollo_dma8237_wdc_dack_w)},
|
||||
{ DEVCB_NULL, DEVCB_NULL, DEVCB_NULL, DEVCB_DRIVER_MEMBER(apollo_state, apollo_dma8237_wdc_dack_r)},
|
||||
{ DEVCB_NULL, DEVCB_NULL, DEVCB_NULL, DEVCB_DRIVER_MEMBER(apollo_state, apollo_dma8237_wdc_dack_w)},
|
||||
{ DEVCB_NULL, DEVCB_NULL, DEVCB_NULL, DEVCB_NULL}
|
||||
};
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user