All pastes #63050 Raw Edit

Stuff

public text v1 · immutable
#63050 ·published 2006-06-07 21:31 UTC
rendered paste body
void on_irq()
{
  if(REG_IF & IRQ_VBLANK) {
        // DrawFrame();
        if(choosingfile) {
                // if(choosingfile == 1)
                //
        }
        else {
                //iprintf("I AM ABOUT TO CALL EMULATEFRAME THIS IS SO EXCITING\n");
                // EmulateFrame();
                // EmulateSound();
                DrawFrame();
        }
    // Tell the DS we handled the VBLANK interrupt
    VBLANK_INTR_WAIT_FLAGS |= IRQ_VBLANK;
    REG_IF |= IRQ_VBLANK;
  }
  else if(REG_IF & IRQ_TIMER0) {
        processtimer();
        VBLANK_INTR_WAIT_FLAGS |= IRQ_TIMER0;
  }
  else {
    // Ignore all other interrupts
    REG_IF = REG_IF;
  }
}

void InitInterruptHandler()
{
  // Setup a 100Hz = 10ms timer
  TIMER0_DATA = TIMER_FREQ_1024(100);
  TIMER0_CR = TIMER_ENABLE | TIMER_DIV_1024 | TIMER_IRQ_REQ;

  REG_IME = 0;
  IRQ_HANDLER = on_irq;
  REG_IE = IRQ_VBLANK | IRQ_TIMER0;
  REG_IF = ~0;
  DISP_SR = DISP_VBLANK_IRQ;
  REG_IME = 1;
}