if(!DSP_Lock()) { ability = DSP_RequestUniqueAbility(); handle = DSP_LoadSubroutine( subptr, length, ability ); if(!handle) { DSP_FlushSubroutines(); handle = DSP_LoadSubroutine( subptr, length, ability ); if(!handle) error("Unable to load DSP subroutine"); } if(handle) { if(!Dsp_RunSubroutine( handle )) DSP_DoBlock( data_in, size_in, data_out, size_out); else error("Unable to run DSP subroutine!"); } }