예제 #1
0
파일: z80.c 프로젝트: mattjeffery/libz80
static void do_int(Z80Context* ctx)
{
    unhalt(ctx);
	ctx->IFF1 = 0;
	ctx->IFF2 = 0;
	ctx->int_req = 0;
    if (ctx->IM == 0)
    {
		ctx->exec_int_vector = 1;
		do_execute(ctx);
		ctx->exec_int_vector = 0;
    }
    else if (ctx->IM == 1)
    {
        doPush(ctx, ctx->PC);
        ctx->PC = 0x0038;
		ctx->tstates += 7;
    }
    else if (ctx->IM == 2)
    {
        doPush(ctx, ctx->PC);
		ushort vector_address = (ctx->I << 8) | ctx->int_vector;
		ctx->PC = read16(ctx, vector_address);
		ctx->tstates += 7;
    }
}
예제 #2
0
파일: about_cb.c 프로젝트: debrouxl/tiemu
void
about_ok_button_clicked                (GtkButton       *button,
                                        gpointer         user_data)
{
  //delete_image(&img);
  gtk_widget_destroy(GTK_WIDGET(user_data));
  unhalt();
}
예제 #3
0
파일: z80.c 프로젝트: mattjeffery/libz80
static void do_nmi(Z80Context* ctx)
{
	unhalt(ctx);
	ctx->IFF2 = ctx->IFF1;
	ctx->IFF1 = 0;
    doPush(ctx, ctx->PC);
	ctx->PC = 0x0066;	
	ctx->nmi_req = 0;
	ctx->tstates += 5;
}
예제 #4
0
파일: itick_cb.c 프로젝트: debrouxl/tiemu
void
on_tickrate_dbox_destroy               (GtkObject       *object,
                                        gpointer         user_data)
{
  unhalt();
}
예제 #5
0
파일: adbkpt_cb.c 프로젝트: debrouxl/tiemu
void
on_add_data_bkpt_dbox_destroy          (GtkObject       *object,
                                        gpointer         user_data)
{
  unhalt();
}