* 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
*
*/
#include <ctype.h>
#include "i_string.h"
+// prj
+#include "utils.h"
+
// sim
#include "simcl.h"
#include "optioncl.h"
//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;
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);;
//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);;
}