rem: kprintf("i");
context: Interrupt( struct AHIPrivAudioCtrl* audioctrl __asm( "a1" ) ){  if( audioctrl->ahiac_PowerPCContext->Command != PPCC_COM_INIT )  {    /* Not for us, continue */    return 0;  }  else  {    BOOL running = TRUE;kprintf("I");    while( running )    {//kprintf("0");      switch( audioctrl->ahiac_PowerPCContext->Command )      {        case PPCC_COM_INIT://kprintf("1");          // Keep looping          audioctrl->ahiac_PowerPCContext->Command = PPCC_COM_ACK;          break;        case PPCC_COM_ACK://kprintf("2");          // Keep looping, try not to waste to much memory bandwidth...          asm( "stop #(1<<13) | (2<<8)" : );          break;        case PPCC_COM_SOUNDFUNC://kprintf("3");          CallHookPkt( audioctrl->ac.ahiac_SoundFunc,                       audioctrl,                       (APTR) audioctrl->ahiac_PowerPCContext->Argument );          audioctrl->ahiac_PowerPCContext->Command = PPCC_COM_ACK;          break;        case PPCC_COM_DEBUG://kprintf("4");          KPrintF( "%lx ", (ULONG) audioctrl->ahiac_PowerPCContext->Argument );          audioctrl->ahiac_PowerPCContext->Command = PPCC_COM_ACK;          break;        case PPCC_COM_QUIT://kprintf("5");          running = FALSE;          audioctrl->ahiac_PowerPCContext->Command = PPCC_COM_ACK;          break;                case PPCC_COM_NONE:        default://kprintf("6");          // Error          running  = FALSE;          audioctrl->ahiac_PowerPCContext->Command = PPCC_COM_ACK;          break;      }    }kprintf("i");    /* End chain! */    return 1;  }};