rem: { NP_Entry,     (ULONG) SlaveEntry }, { NP_Name,      (ULONG) LibName    }, { NP_Priority,  -1                 }, { TAG_DONE,     0                  }
add: { NP_Entry,     (ULONG) &slaveentry }, { NP_Name,      (ULONG) LibName     }, { NP_Priority,  -1                  }, { TAG_DONE,     0                   }
context: _AHIsub_Start( ULONG                   flags,	       struct AHIAudioCtrlDrv* AudioCtrl,	       struct DriverBase*      AHIsubBase ){  struct VoidBase* VoidBase = (struct VoidBase*) AHIsubBase;  AHIsub_Stop( flags, AudioCtrl );  if(flags & AHISF_PLAY)  {    struct TagItem proctags[] =    {      { NP_Entry,     (ULONG) SlaveEntry },      { NP_Name,      (ULONG) LibName    },      { NP_Priority,  -1                 },      { TAG_DONE,     0                  }    };        dd->mixbuffer = AllocVec( AudioCtrl->ahiac_BuffSize,				MEMF_ANY | MEMF_PUBLIC );    if( dd->mixbuffer == NULL ) return AHIE_NOMEM;    Forbid();    dd->slavetask = CreateNewProc( proctags );    if( dd->slavetask != NULL )    {      dd->slavetask->pr_Task.tc_UserData = AudioCtrl;    }    Permit();    if( dd->slavetask != NULL )    {      Wait( 1L << dd->mastersignal );  // Wait for slave to come alive      if( dd->slavetask == NULL )      // Is slave alive or dead?      {        return AHIE_UNKNOWN;      }    }    else    {      return AHIE_NOMEM;                 // Well, out of memory or whatever...    }  }  if( flags & AHISF_RECORD )  {    return AHIE_UNKNOWN;  }  return AHIE_OK;}