Ejemplo n.º 1
0
static int
cmd_load(char *file_name)
{
	char *decoded;

	if (file_name == NULL) {
		if (last_file_name == NULL) {
			g_critical("Please specify file name.");
			return (-1);
		}

		file_name = strdup(last_file_name);
	} else {
		file_name = strdup(file_name);
	}

	selected_track = NULL;
	selected_event = NULL;

	if (smf != NULL) {
		smf_delete(smf);
		smf = NULL;
	}

	if (last_file_name != NULL)
		free(last_file_name);
	last_file_name = strdup(file_name);

	smf = smf_load(file_name);
	if (smf == NULL) {
		g_critical("Couldn't load '%s'.", file_name);

		smf = smf_new();
		if (smf == NULL) {
			g_critical("Cannot initialize smf_t.");
			return (-1);
		}

		return (-2);
	}

	g_message("File '%s' loaded.", file_name);
	decoded = smf_decode(smf);
	g_message("%s.", decoded);
	free(decoded);

	cmd_track("1");

	free(file_name);

	return (0);
}
Ejemplo n.º 2
0
void cmd_parse(u08 len, const u08 *buf, u08 *result_len, u08 *res_buf)
{
  in = buf;
  in_size = len;
  out = res_buf;
  out_size = 0;

  while(in_size > 0) {
      u08 cmd = get_char();

      switch(cmd) {
      // f) floppy commands
      case 'f':
        cmd_floppy();
        break;

      // t) track commands
      case 't':
        cmd_track();
        break;

      // m) memory commands
      case 'm':
        cmd_memory();
        break;

      // i) io commands
      case 'i':
        cmd_io();
        break;

      // r) sampler commands
      case 'r':
        cmd_sampler();
        break;

      // d) diagnose commands
      case 'd':
        cmd_diagnose();
        break;

      // c) clock commands
      case 'c':
        cmd_clock();
        break;

      // n) wiznet commands
      case 'n':
        cmd_wiznet();
        break;

      // ----- TASKS -----
      // R) read disk
      case 'R':
        cmd_read();
        break;
      }
  }

  *result_len = out_size;
}