X-Git-Url: https://git.gag.com/?a=blobdiff_plain;f=sim%2Fucsim%2Fcmd.src%2Fget.cc;h=fe6d4c4629626e31883464ead3ea63a74d4140f6;hb=90f4aedaef8a2310573eef905f95c671f84e5cde;hp=05712d3821589a190ef7f1d67fcf9c73b6462404;hpb=109dd226aad40f4f2f122e6ccfc7f038610a5ceb;p=fw%2Fsdcc diff --git a/sim/ucsim/cmd.src/get.cc b/sim/ucsim/cmd.src/get.cc index 05712d38..fe6d4c46 100644 --- a/sim/ucsim/cmd.src/get.cc +++ b/sim/ucsim/cmd.src/get.cc @@ -2,7 +2,7 @@ * Simulator of microcontrollers (cmd.src/get.cc) * * Copyright (C) 1999,99 Drotos Daniel, Talker Bt. - * + * * To contact author send email to drdani@mazsola.iit.uni-miskolc.hu * */ @@ -30,6 +30,9 @@ Software Foundation, 59 Temple Place - Suite 330, Boston, MA #include #include "i_string.h" +// prj +#include "utils.h" + // sim #include "simcl.h" #include "optioncl.h" @@ -47,10 +50,10 @@ Software Foundation, 59 Temple Place - Suite 330, Boston, MA //int //cl_get_sfr_cmd::do_work(class cl_sim *sim, -// class cl_cmdline *cmdline, class cl_console *con) +// class cl_cmdline *cmdline, class cl_console_base *con) COMMAND_DO_WORK_UC(cl_get_sfr_cmd) { - class cl_mem *mem= uc->mem(MEM_SFR); + class cl_address_space *mem= uc->address_space(MEM_SFR_ID); class cl_cmd_arg *parm; int i; @@ -63,11 +66,12 @@ COMMAND_DO_WORK_UC(cl_get_sfr_cmd) parm; i++, parm= cmdline->param(i)) { - if (!parm->as_address(uc)) - con->dd_printf("Warning: Invalid address %s\n", - (char*)cmdline->tokens->at(i+1)); + if (!parm->as_address(uc) || + !mem->valid_address(parm->value.address)) + con->dd_printf("Warning: Invalid address %s\n", + (char*)cmdline->tokens->at(i+1)); else - mem->dump(parm->value.address, parm->value.address, 1, con); + mem->dump(parm->value.address, parm->value.address, 1, con); } return(DD_FALSE);; @@ -81,33 +85,44 @@ COMMAND_DO_WORK_UC(cl_get_sfr_cmd) //int //cl_get_option_cmd::do_work(class cl_sim *sim, -// class cl_cmdline *cmdline, class cl_console *con) -COMMAND_DO_WORK_UC(cl_get_option_cmd) +// class cl_cmdline *cmdline, class cl_console_base *con) +COMMAND_DO_WORK_APP(cl_get_option_cmd) { class cl_cmd_arg *parm= cmdline->param(0); char *s= 0; if (!parm) ; - else if (cmdline->syntax_match(uc, STRING)) { + else if (cmdline->syntax_match(0/*app->get_uc()*/, STRING)) { s= parm->value.string.string; } else con->dd_printf("%s\n", short_help?short_help:"Error: wrong syntax\n"); int i; - for (i= 0; i < uc->options->count; i++) + for (i= 0; i < app->options->count; i++) { - class cl_option *o= (class cl_option *)(uc->options->at(i)); - if (!s || - !strcmp(s, o->id)) - { - con->dd_printf("%s ", o->id); - o->print(con); - con->dd_printf(" %s\n", o->help); - } + class cl_option *o= (class cl_option *)(/*uc*/app->options->at(i)); + if ((!s || + !strcmp(s, o->get_name()))) + { + if (!o->hidden) + { + con->dd_printf("%2d. %s(by %s): ", i, object_name(o), + object_name(o->get_creator())); + o->print(con); + con->dd_printf(" - %s\n", o->help); + } + else + { + /* + con->dd_printf("%2d. %s(by %s) is hidden!\n", i, object_name(o), + object_name(o->get_creator())); + */ + } + } } - + return(DD_FALSE);; }