void do_cycle( CHAR_DATA *ch, char *argument)
{
    char arg[MAX_INPUT_LENGTH];
    int start, stop, x;

    if ( argument[0] == '\0' )
    {
	send_to_char( "Syntax: cycle   \n\r", ch );
	return;
    }
    argument = one_argument( argument, arg );

    if ((start= atoi(arg)) < 0)
    {
	send_to_char( "You must start on a zero or higher.\n\r", ch );
	return;
    }

    argument = one_argument( argument, arg );

    if ((stop= atoi(arg)) <= start)
    {
	ch_printf( ch, "You must stop at a point higher than you've started. %d is %s than %d.\n\r", stop, stop == start ? "equal to" : "less than", start );
	return;
    }

    for ( x = start; x <= stop; x++ )
     interpret( ch, number_sign(argument, x) );
}
/* This is only required if you do not already have it, you need it for both loop and cycle */
char *number_sign( char *txt, int num )
{
  static char newstring[MAX_INPUT_LENGTH];
  int i;
  
  if ( !txt)
    return "";

  newstring[0] = '\0';
  for ( i = 0; txt[i] != '\0'; i++ )
  {
     if (txt[i] == '#')
       strcat(newstring, itoa(num));
     else
      add_letter(newstring, txt[i]);
  }
  return newstring;
}