您当前的位置:首页 > IT编程 > C++
| C语言 | Java | VB | VC | python | Android | TensorFlow | C++ | oracle | 学术与代码 | cnn卷积神经网络 | gnn | 图像修复 | Keras | 数据集 | Neo4j | 自然语言处理 | 深度学习 | 医学CAD | 医学影像 | 超参数 | pointnet | pytorch | 异常检测 | Transformers | 情感分类 | 知识图谱 |

自学教程:C++ update_interrupts函数代码示例

51自学网 2021-06-03 09:15:33
  C++
这篇教程C++ update_interrupts函数代码示例写得很实用,希望能帮到您。

本文整理汇总了C++中update_interrupts函数的典型用法代码示例。如果您正苦于以下问题:C++ update_interrupts函数的具体用法?C++ update_interrupts怎么用?C++ update_interrupts使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。

在下文中一共展示了update_interrupts函数的25个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。

示例1: port_a_r

static UINT8 port_a_r(const device_config *device){	pia6821_state *p = get_token(device);	UINT8 ret = get_in_a_value(device);	/* IRQ flags implicitly cleared by a read */	p->irq_a1 = FALSE;	p->irq_a2 = FALSE;	update_interrupts(device);	/* CA2 is configured as output and in read strobe mode */	if (C2_OUTPUT(p->ctl_a) && C2_STROBE_MODE(p->ctl_a))	{		/* this will cause a transition low */		set_out_ca2(device, FALSE);		/* if the CA2 strobe is cleared by the E, reset it right away */		if (STROBE_E_RESET(p->ctl_a))			set_out_ca2(device, TRUE);	}	LOG(("PIA #%s: port A read = %02X/n", device->tag, ret));	return ret;}
开发者ID:Paulodx,项目名称:sdl-mame-wii,代码行数:26,


示例2: neogeo_interrupt

void neogeo_interrupt(void){    raster_line = 0;    raster_counter = RASTER_COUNTER_START;    if (!auto_animation_disabled)    {        if (auto_animation_frame_counter == 0)        {            auto_animation_frame_counter = auto_animation_speed;            auto_animation_counter++;        }        else auto_animation_frame_counter--;    }    vblank_interrupt_pending = 1;    if (hack_irq)    {        UINT32 pc = m68000_get_reg(M68K_PC);        if (pc >= 0xbf00 && pc <= 0xbfff)            vblank_interrupt_pending = 0;    }    update_interrupts();}
开发者ID:phoe-nix,项目名称:NJEMU,代码行数:27,


示例3: LOG

void pia6821_device::control_b_w(UINT8 data){	int temp;	// bit 7 and 6 are read only	data &= 0x3f;	LOG(("PIA #%s: control B write = %02X/n", tag(), data));	// update the control register	m_ctl_b = data;	if (C2_SET_MODE(m_ctl_b))	{		// set/reset mode - bit value determines the new output		temp = C2_SET(m_ctl_b);	}	else	{		// strobe mode - output is always high unless strobed		temp = TRUE;	}	set_out_cb2(temp);	// update externals	update_interrupts();}
开发者ID:Ilgrim,项目名称:MAMEHub,代码行数:28,


示例4: register_r

static UINT8 register_r(offs_t offset){    int regnum = offset >> 2;    UINT16 result;    /* extract the correct portion of the register */    result = tms34061.regs[regnum];    /* special cases: */    switch (regnum)    {    /* status register: a read here clears it */    case TMS34061_STATUS:        tms34061.regs[TMS34061_STATUS] = 0;        update_interrupts();        break;    /* vertical count register: return the current scanline */    case TMS34061_VERCOUNTER:        result = (video_screen_get_vpos(tms34061.screen)+ tms34061.regs[TMS34061_VERENDBLNK]) % tms34061.regs[TMS34061_VERTOTAL];        break;    }    /* log it */    if (VERBOSE) logerror("%04X:tms34061 %s read = %04X/n", activecpu_get_pc(), regnames[regnum], result);    return (offset & 0x02) ? (result >> 8) : result;}
开发者ID:cdenix,项目名称:ps3-mame-0125,代码行数:27,


示例5: get_in_a_value

UINT8 pia6821_device::port_a_r(){	UINT8 ret = get_in_a_value();	// IRQ flags implicitly cleared by a read	m_irq_a1 = FALSE;	m_irq_a2 = FALSE;	update_interrupts();	// CA2 is configured as output and in read strobe mode	if(C2_OUTPUT(m_ctl_a) && C2_STROBE_MODE(m_ctl_a))	{		// this will cause a transition low		set_out_ca2(FALSE);		// if the CA2 strobe is cleared by the E, reset it right away		if(STROBE_E_RESET(m_ctl_a))		{			set_out_ca2(TRUE);		}	}	LOG(("PIA #%s: port A read = %02X/n", tag(), ret));	return ret;}
开发者ID:Ilgrim,项目名称:MAMEHub,代码行数:26,


示例6: switch

UINT8 tms34061_device::register_r(address_space &space, offs_t offset){	int regnum = offset >> 2;	UINT16 result;	/* extract the correct portion of the register */	if (regnum < ARRAY_LENGTH(m_regs))		result = m_regs[regnum];	else		result = 0xffff;	/* special cases: */	switch (regnum)	{		/* status register: a read here clears it */		case TMS34061_STATUS:			m_regs[TMS34061_STATUS] = 0;			update_interrupts();			break;		/* vertical count register: return the current scanline */		case TMS34061_VERCOUNTER:			result = (m_screen->vpos()+ m_regs[TMS34061_VERENDBLNK]) % m_regs[TMS34061_VERTOTAL];			break;	}	/* log it */	if (VERBOSE) logerror("%s:tms34061 %s read = %04X/n", space.machine().describe_context(), regnames[regnum], result);	return (offset & 0x02) ? (result >> 8) : result;}
开发者ID:Chintiger,项目名称:mame,代码行数:30,


示例7: control_b_w

static void control_b_w(const device_config *device, UINT8 data){	pia6821_state *p = get_token(device);	int temp;	/* bit 7 and 6 are read only */	data &= 0x3f;	LOG(("PIA #%s: control B write = %02X/n", device->tag, data));	/* update the control register */	p->ctl_b = data;	if (C2_SET_MODE(p->ctl_b))		/* set/reset mode - bit value determines the new output */		temp = C2_SET(p->ctl_b);	else		/* strobe mode - output is always high unless strobed */		temp = TRUE;	set_out_cb2(device, temp);	/* update externals */	update_interrupts(device);}
开发者ID:Paulodx,项目名称:sdl-mame-wii,代码行数:25,


示例8: update_interrupts

SLOT_INTERFACE_ENDvoid e01_device::fdc_irq_w(bool state){	m_fdc_irq = state;	update_interrupts();}
开发者ID:jiangzhonghui,项目名称:mame,代码行数:8,


示例9: neogeo_acknowledge_interrupt

void neogeo_acknowledge_interrupt(running_machine *machine, UINT16 data){	if (data & 0x01) irq3_pending = 0;	if (data & 0x02) display_position_interrupt_pending = 0;	if (data & 0x04) vblank_interrupt_pending = 0;	update_interrupts(machine);}
开发者ID:nitrologic,项目名称:emu,代码行数:8,


示例10: WRITE_LINE_MEMBER

SLOT_INTERFACE_ENDWRITE_LINE_MEMBER( e01_device::fdc_irq_w ){	m_fdc_irq = state;	update_interrupts();}
开发者ID:GiuseppeGorgoglione,项目名称:mame,代码行数:8,


示例11: WRITE_LINE_MEMBER

	FLOPPY_AFS_FORMATFLOPPY_FORMATS_END0WRITE_LINE_MEMBER( econet_e01_device::fdc_irq_w ){	m_fdc_irq = state;	update_interrupts();}
开发者ID:MoochMcGee,项目名称:mame,代码行数:9,


示例12: update_interrupts

void lk201_device::rcv_complete(){	sci_status |= SCSR_RDRF;	update_interrupts();	receive_register_extract();	int data = get_received_char();	m_kbd_state = data;//  printf("/nlk201 got %02x/n", m_kbd_state);}
开发者ID:Robbbert,项目名称:store1,代码行数:10,


示例13: TIMER_CALLBACK

static TIMER_CALLBACK( tms34061_interrupt ){    /* set timer for next frame */    timer_adjust_oneshot(tms34061.timer, video_screen_get_frame_period(tms34061.screen), 0);    /* set the interrupt bit in the status reg */    tms34061.regs[TMS34061_STATUS] |= 1;    /* update the interrupt state */    update_interrupts();}
开发者ID:cdenix,项目名称:ps3-mame-0125,代码行数:11,


示例14: update_interrupts

void neogeo_state::neogeo_acknowledge_interrupt( UINT16 data ){	if (data & 0x01)		m_irq3_pending = 0;	if (data & 0x02)		m_display_position_interrupt_pending = 0;	if (data & 0x04)		m_vblank_interrupt_pending = 0;	update_interrupts();}
开发者ID:dinkc64,项目名称:mame,代码行数:11,


示例15: neogeo_acknowledge_interrupt

void neogeo_acknowledge_interrupt( running_machine *machine, UINT16 data ){	neogeo_state *state = (neogeo_state *)machine->driver_data;	if (data & 0x01)		state->irq3_pending = 0;	if (data & 0x02)		state->display_position_interrupt_pending = 0;	if (data & 0x04)		state->vblank_interrupt_pending = 0;	update_interrupts(machine);}
开发者ID:libretro,项目名称:mame2010-libretro,代码行数:13,


示例16: neogeo_acknowledge_interrupt

void neogeo_acknowledge_interrupt( running_machine &machine, UINT16 data ){	neogeo_state *state = machine.driver_data<neogeo_state>();	if (data & 0x01)		state->m_irq3_pending = 0;	if (data & 0x02)		state->m_display_position_interrupt_pending = 0;	if (data & 0x04)		state->m_vblank_interrupt_pending = 0;	update_interrupts(machine);}
开发者ID:rogerjowett,项目名称:ClientServerMAME,代码行数:13,


示例17: tms34061_interrupt

void tms34061_interrupt(){#if defined FBA_DEBUG	if (!DebugDev_Tms34061Initted) bprintf(PRINT_ERROR, _T("tms34061_interrupt called without init/n"));#endif	if (tms34061_current_scanline != m_timer) return;	/* set the interrupt bit in the status reg */	m_regs[TMS34061_STATUS] |= 1;	/* update the interrupt state */	update_interrupts();}
开发者ID:Cpasjuste,项目名称:libarcade,代码行数:14,


示例18: WRITE32_HANDLER

static WRITE32_HANDLER( interrupt_control_w ){	int irq = offset & 3;	int control = (offset >> 2) & 1;	/* offsets 1-3 seem to be the enable latches for the IRQs */	if (irq != 0)		irq_enable[irq - 1] = control;	/* offset 0 seems to be the interrupt ack */	else		irq_state[0] = irq_state[1] = irq_state[2] = 0;	/* update the current state */	update_interrupts(space->machine);}
开发者ID:AltimorTASDK,项目名称:shmupmametgm,代码行数:16,


示例19: MC146818_INTERFACE

INPUT_PORTS_END/***************************************************************************    DEVICE CONFIGURATION***************************************************************************//*-------------------------------------------------    MC146818_INTERFACE( rtc_intf )-------------------------------------------------*/WRITE_LINE_MEMBER( e01_state::rtc_irq_w ){    m_rtc_irq = state;    update_interrupts();}
开发者ID:rogerjowett,项目名称:ClientServerMAME,代码行数:16,


示例20: TIMER_CALLBACK

static TIMER_CALLBACK( vblank_interrupt_callback ){	const device_config *upd4990a = devtag_get_device(machine, "upd4990a");	if (LOG_VIDEO_SYSTEM) logerror("+++ VBLANK @ %d,%d/n", video_screen_get_vpos(machine->primary_screen), video_screen_get_hpos(machine->primary_screen));	/* add a timer tick to the pd4990a */	upd4990a_addretrace(upd4990a);	vblank_interrupt_pending = 1;	update_interrupts(machine);	/* set timer for next screen */	timer_adjust_oneshot(vblank_interrupt_timer, video_screen_get_time_until_pos(machine->primary_screen, NEOGEO_VBSTART, 0), 0);}
开发者ID:nitrologic,项目名称:emu,代码行数:16,


示例21: TIMER_CALLBACK

static TIMER_CALLBACK( vblank_interrupt_callback ){	neogeo_state *state = machine.driver_data<neogeo_state>();	if (LOG_VIDEO_SYSTEM) logerror("+++ VBLANK @ %d,%d/n", machine.primary_screen->vpos(), machine.primary_screen->hpos());	/* add a timer tick to the pd4990a */	upd4990a_addretrace(state->m_upd4990a);	state->m_vblank_interrupt_pending = 1;	update_interrupts(machine);	/* set timer for next screen */	state->m_vblank_interrupt_timer->adjust(machine.primary_screen->time_until_pos(NEOGEO_VBSTART));}
开发者ID:rogerjowett,项目名称:ClientServerMAME,代码行数:16,


示例22: switch

void ef9365_device::device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr){    switch(id)    {    case BUSY_TIMER:        m_bf = 0;        if( m_registers[EF936X_REG_CTRL1] & 0x40 )        {            m_irq_rdy = 1;        }        update_interrupts();        break;    }}
开发者ID:DragonMinded,项目名称:mame,代码行数:17,


示例23: raster_interrupt_aof2

static void raster_interrupt_aof2(int line){    raster_line = line;    if (raster_line == RASTER_LINES) raster_line = 0;    if (raster_line < RASTER_LINE_RELOAD)        raster_counter = RASTER_COUNTER_START + raster_line;    else        raster_counter = RASTER_COUNTER_RELOAD + raster_line - RASTER_LINE_RELOAD;    if (display_position_interrupt_counter)    {        display_position_interrupt_counter--;        if (display_position_interrupt_counter == 0)        {            if (display_position_interrupt_control & IRQ1CTRL_ENABLE)            {                display_position_interrupt_pending = 1;                if (display_position_interrupt_control & IRQ1CTRL_AUTOLOAD_REPEAT)                    adjust_display_position_interrupt();            }        }    }    if (line == RASTER_LINES)    {        if (display_position_interrupt_control & IRQ1CTRL_AUTOLOAD_VBLANK)            adjust_display_position_interrupt();        if (!auto_animation_disabled)        {            if (auto_animation_frame_counter == 0)            {                auto_animation_frame_counter = auto_animation_speed;                auto_animation_counter++;            }            else auto_animation_frame_counter--;        }        vblank_interrupt_pending = 1;    }    update_interrupts();}
开发者ID:phoe-nix,项目名称:NJEMU,代码行数:46,


示例24: neogeo_vblank_interrupt

void neogeo_vblank_interrupt(void){	raster_counter = RASTER_COUNTER_START;	pd4990a_addretrace();	if (!auto_animation_disabled)	{		if (auto_animation_frame_counter == 0)		{			auto_animation_frame_counter = auto_animation_speed;			auto_animation_counter++;		}		else auto_animation_frame_counter--;	}	vblank_interrupt_pending = 1;	update_interrupts();}
开发者ID:173210,项目名称:mvspsp,代码行数:20,


示例25: vdp_reload_counter

/* timer callback to handle reloading the H counter and generate IRQ4 */void vdp_reload_counter(int scanline){	/* generate an int if they're enabled */	if (genesis_vdp_regs[0] & 0x10)/* && !(misc_io_data[7] & 0x10))*/		if (scanline != 0 || genesis_vdp_regs[10] == 0)		{			scanline_int = 1;			update_interrupts();			timer_set(cpu_getscanlinetime(scanline + 1), 0, vdp_int4_off);		}	/* advance to the next scanline */	/* behavior 2: 0 count means interrupt after one scanline */	/* (this behavior matches the Sega C2 emulator) */	scanline += genesis_vdp_regs[10] + 1;	if (scanline >= 224)		scanline = 0;	/* set a timer */	timer_adjust(scan_timer, cpu_getscanlinetime(scanline) + cpu_getscanlineperiod() * (320. / 342.), scanline, 0);}
开发者ID:BirchJD,项目名称:xmame-0.103-RPi,代码行数:22,



注:本文中的update_interrupts函数示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。


C++ update_irq函数代码示例
C++ update_input函数代码示例
万事OK自学网:51自学网_软件自学网_CAD自学网自学excel、自学PS、自学CAD、自学C语言、自学css3实例,是一个通过网络自主学习工作技能的自学平台,网友喜欢的软件自学网站。