本文整理汇总了C++中cpu_cause_interrupt函数的典型用法代码示例。如果您正苦于以下问题:C++ cpu_cause_interrupt函数的具体用法?C++ cpu_cause_interrupt怎么用?C++ cpu_cause_interrupt使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了cpu_cause_interrupt函数的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: gottlieb_sh_w
void gottlieb_sh_w(int offset,int data)
{
data &= 0xff;
if (data != 0xff)
{
if (Machine->gamedrv->samplenames)
{
/* if we have loaded samples, we must be Q*Bert */
switch(data ^ 0xff)
{
case 0x12:
/* play a sample here (until Votrax speech is emulated) */
sample_start (0, 0, 0);
break;
case 0x14:
/* play a sample here (until Votrax speech is emulated) */
sample_start (0, 1, 0);
break;
case 0x16:
/* play a sample here (until Votrax speech is emulated) */
sample_start (0, 2, 0);
break;
case 0x11:
/* play a sample here (until Votrax speech is emulated) */
sample_start (0, 3, 0);
break;
}
}
soundlatch_w(offset,data);
switch (cpu_gettotalcpu())
{
case 2:
/* Revision 1 sound board */
cpu_cause_interrupt(1,M6502_INT_IRQ);
break;
case 3:
case 4:
/* Revision 2 & 3 sound board */
cpu_cause_interrupt(cpu_gettotalcpu()-1,M6502_INT_IRQ);
cpu_cause_interrupt(cpu_gettotalcpu()-2,M6502_INT_IRQ);
break;
}
}
}
示例2: WRITE_HANDLER
static WRITE_HANDLER( pandoras_int_control_w ){
/* byte 0: irq enable (CPU A)
byte 2: coin counter 1
byte 3: coin counter 2
byte 5: flip screen
byte 6: irq enable (CPU B)
byte 7: NMI to CPU B
other bytes unknown */
switch (offset){
case 0x00: if (!data) cpu_set_irq_line(0, M6809_IRQ_LINE, CLEAR_LINE);
irq_enable_a = data;
break;
case 0x02: coin_counter_w(0,data & 0x01);
break;
case 0x03: coin_counter_w(1,data & 0x01);
break;
case 0x05: pandoras_flipscreen_w(0, data);
break;
case 0x06: if (!data) cpu_set_irq_line(1, M6809_IRQ_LINE, CLEAR_LINE);
irq_enable_b = data;
break;
case 0x07: cpu_cause_interrupt(1,M6809_INT_NMI);
break;
default:
//logerror("%04x: (irq_ctrl) write %02x to %02x\n",cpu_get_pc(), data, offset);
break;
}
}
示例3: starwars_main_wr_w
void starwars_main_wr_w(int offset, int data)
{
port_A |= 0x80; /* command from main cpu pending */
sound_data = data;
if (PA7_irq)
cpu_cause_interrupt (1, M6809_INT_IRQ);
}
示例4: WRITE_HANDLER
static WRITE_HANDLER( ddragon3_io_w ){
reg[offset/2] = COMBINE_WORD(reg[offset],data);
switch (offset) {
case 0x0:
ddragon3_vreg = reg[0];
break;
case 0x2: /* soundlatch_w */
soundlatch_w(1,reg[1]&0xff);
cpu_cause_interrupt( 1, Z80_NMI_INT );
break;
case 0x4:
/* this gets written to on startup and at the end of IRQ6
** possibly trigger IRQ on sound CPU
*/
break;
case 0x6:
/* this gets written to on startup,
** and at the end of IRQ5 (input port read) */
break;
case 0x8:
/* this gets written to at the end of IRQ6 only */
break;
default:
//logerror("OUTPUT 1400[%02x] %08x, pc=%06x \n", offset,(unsigned)data, cpu_get_pc() );
break;
}
}
示例5: WRITE_HANDLER
static WRITE_HANDLER( battlera_sound_w )
{
if (offset==0) {
soundlatch_w(0,data);
cpu_cause_interrupt(1,H6280_INT_IRQ1);
}
}
示例6: WRITE_HANDLER
static WRITE_HANDLER( sound_command_w )
{
d400 = data;
soundlatch_w(0,data);
cpu_cause_interrupt(1,Z80_NMI_INT);
logerror("sound command %02x\n",data);
}
示例7: WRITE16_HANDLER
static WRITE16_HANDLER( heberpop_sound_command_w )
{
if (ACCESSING_LSB)
{
soundlatch_w(0,data & 0xff);
cpu_cause_interrupt(1,0xff); /* RST 38h */
}
}
示例8: firetrap_adpcm_int
void firetrap_adpcm_int (int data)
{
static int toggle;
toggle = 1 - toggle;
if (firetrap_irq_enable && toggle)
cpu_cause_interrupt (1, M6502_INT_IRQ);
}
示例9: atarisys2_soundint
static void atarisys2_soundint (void)
{
if (!irq_hold0 && (READ_WORD (&atarisys2_interrupt_enable[0]) & 1))
{
cpu_cause_interrupt (0, 0);
irq_hold0 = 1;
}
}
示例10: blstroid_int1_callback
void blstroid_int1_callback (int param)
{
/* generate the interrupt */
cpu_cause_interrupt (0, 1);
/* set ourselves up to go off next frame */
int1_timer[param] = timer_set (TIME_IN_HZ (Machine->drv->frames_per_second), param, blstroid_int1_callback);
}
示例11: WRITE_HANDLER
static WRITE_HANDLER( splash_sh_irqtrigger_w )
{
if ((data & 0x00ff0000) == 0)
{
soundlatch_w(0,data & 0xff);
cpu_cause_interrupt(1,Z80_IRQ_INT);
}
}
示例12: WRITE_HANDLER
static WRITE_HANDLER( jumping_sound_w )
{
if (offset == 0)
{
jumping_latch = data & 0xff; /*M68000 writes .b to $400007*/
/*logerror("jumping M68k write latch=%02x\n",jumping_latch);*/
cpu_cause_interrupt(1,Z80_IRQ_INT);
}
}
示例13: CPUB_int_enable
static void CPUB_int_enable( int offset, int data ){
if( CPUB_latch & SNK_NMI_PENDING ){
cpu_cause_interrupt( 1, Z80_NMI_INT );
CPUB_latch = 0;
}
else {
CPUB_latch |= SNK_NMI_ENABLE;
}
}
示例14: WRITE_HANDLER
static WRITE_HANDLER( meteor_soundtrigger_w )
{
if ((meteor_soundtrigger & 0x08) && (~data & 0x08))
{
cpu_cause_interrupt(1, I8039_EXT_INT);
}
meteor_soundtrigger = data;
}
示例15: WRITE_HANDLER
static WRITE_HANDLER( sound_command_w ){
/*if( sound_fetched==0 ){
logerror("missed sound command: %02x\n", sound_command );
}*/
sound_fetched = 0;
sound_command = data;
sound_cpu_ready = 0;
cpu_cause_interrupt( 2, Z80_IRQ_INT );
}