rem: AHIP_LoopOffset,    ioreq->ahir_Std.io_Offset + ioreq->ahir_Std.io_Actual,
add: AHIP_LoopOffset,    (ULONG) ioreq->ahir_Std.io_Data + ioreq->ahir_Std.io_Actual,
context: static void NewWriter(struct AHIRequest *ioreq, struct AHIDevUnit *iounit,    struct AHIBase *AHIBase){  int channel;  BOOL delay=FALSE;  iounit=(struct AHIDevUnit *)ioreq->ahir_Std.io_Unit;  ObtainSemaphore(&iounit->ListLock);  if(ioreq->ahir_Link)  {    // See if the linked request is playing, silent or waiting...    if(FindNode((struct List *) &iounit->PlayingList,        (struct Node *) ioreq->ahir_Link))    {      delay=TRUE;    }    else if(FindNode((struct List *) &iounit->SilentList,        (struct Node *) ioreq->ahir_Link))    {      delay=TRUE;    }    else if(FindNode((struct List *) &iounit->WaitingList,        (struct Node *) ioreq->ahir_Link))    {      delay=TRUE;    }  }// NOTE: ahir_Link changes direction here. When the user set's it, she makes a new// request point to an old. We let the old point to the next (that's more natural,// anyway... It the user tries to link more than one request to another, we fail.  if(delay)  {    if( ! ioreq->ahir_Link->ahir_Link)    {      channel = ioreq->ahir_Link->ahir_Channel;      ioreq->ahir_Link->ahir_Link = ioreq;      ioreq->ahir_Link = NULL;      Enqueue((struct List *) &iounit->WaitingList,(struct Node *) ioreq);      // Attach the request to the current playing one      iounit->Voices[channel].QueuedRequest = ioreq;      AHI_Play(iounit->AudioCtrl,          AHIP_BeginChannel,  channel,          AHIP_LoopFreq,      ioreq->ahir_Frequency,          AHIP_LoopVol,       ioreq->ahir_Volume,          AHIP_LoopPan,       ioreq->ahir_Position,          AHIP_LoopSound,     type2snd[ioreq->ahir_Type],          AHIP_LoopOffset,    ioreq->ahir_Std.io_Offset + ioreq->ahir_Std.io_Actual,          AHIP_LoopLength,    ioreq->ahir_Std.io_Length - ioreq->ahir_Std.io_Actual,          AHIP_EndChannel,    NULL,          TAG_DONE);    }    else    { // She tried to add more than one requeste to unother      ioreq->ahir_Std.io_Error = AHIE_UNKNOWN;      TermIO(ioreq, AHIBase);    }  }  else  {    ioreq->ahir_Link=NULL;    AddWriter(ioreq, iounit, AHIBase);  }  ReleaseSemaphore(&iounit->ListLock);}