WRITE8_DEVICE_HANDLER_TRAMPOLINE(f3853, f3853_w) { switch(offset) { case 0: m_high = data; break; case 1: m_low = data; break; case 2: //interrupt control m_external_enable = ((data & 3) == 1); m_timer_enable = ((data & 3) == 3); f3853_set_interrupt_request_line(); break; case 3: //timer m_request_flipflop = FALSE; f3853_set_interrupt_request_line(); f3853_timer_start(data); break; } }
void f3853_set_external_interrupt_in_line(bool level) { if (f3853.external_interrupt_line&&!level&& f3853.external_enable) f3853.request_flipflop = TRUE; f3853.external_interrupt_line = level; f3853_set_interrupt_request_line(); }
void f3853_set_priority_in_line(running_device *device, int level) { f3853_t *f3853 = get_safe_token( device ); f3853->priority_line = level; f3853_set_interrupt_request_line( device ); }
static void f3853_timer_callback(int param) { if (f3853.timer_enable) { f3853.request_flipflop = TRUE; f3853_set_interrupt_request_line(); } f3853_timer_start(0xfe); }
void f3853_set_external_interrupt_in_line(running_device *device, int level) { f3853_t *f3853 = get_safe_token( device ); if ( f3853->external_interrupt_line && ! level && f3853->external_enable) f3853->request_flipflop = TRUE; f3853->external_interrupt_line = level; f3853_set_interrupt_request_line( device ); }
void f3853_device::f3853_set_external_interrupt_in_line(int level) { if(m_external_interrupt_line && !level && m_external_enable) { m_request_flipflop = TRUE; } m_external_interrupt_line = level; f3853_set_interrupt_request_line(); }
void f3853_device::f3853_timer() { if(m_timer_enable) { m_request_flipflop = TRUE; f3853_set_interrupt_request_line(); } f3853_timer_start(0xfe); }
static TIMER_CALLBACK( f3853_timer_callback ) { running_device *device = (running_device *)ptr; f3853_t *f3853 = get_safe_token( device ); if (f3853->timer_enable) { f3853->request_flipflop = TRUE; f3853_set_interrupt_request_line( device ); } f3853_timer_start( device, 0xfe); }
void f3853_set_priority_in_line(bool level) { f3853.priority_line=level; f3853_set_interrupt_request_line(); }
void f3853_device::f3853_set_priority_in_line(int level) { m_priority_line = level; f3853_set_interrupt_request_line(); }