rem: Fixed64        offs = (Fixed64) 0; Fixed64        step = (Fixed64) add << 32;
add: Fixed64        offs = 0; Fixed64        step = ((Fixed64) add) << 16;
context: RecS16S( ULONG  size,	 ULONG  add,	 APTR   src,	 ULONG* offset,	 void** dest ){  Fixed64        offs = (Fixed64) 0;  Fixed64        step = (Fixed64) add << 32;  struct sample* from = (struct sample*) ((ULONG)src + *offset);  WORD*          to   = (WORD*) dest;  ULONG          i;  for( i = 0; i < size; ++i )  {    *to++ = from[ offs >> 32 ].left;    *to++ = from[ offs >> 32 ].right;    offs += step;  }    *offset += ( offs >> 32 ) * sizeof( struct sample* );  *dest   = to;}