diff options
| author | Xavier ASUS <xavi92psx@gmail.com> | 2019-10-18 00:31:54 +0200 |
|---|---|---|
| committer | Xavier ASUS <xavi92psx@gmail.com> | 2019-10-18 00:31:54 +0200 |
| commit | 268a53de823a6750d6256ee1fb1e7707b4b45740 (patch) | |
| tree | 42c1799a9a82b2f7d9790ee9fe181d72a7274751 /sim/ucsim/cmd.src/cmd_get.cc | |
| download | sdcc-gas-268a53de823a6750d6256ee1fb1e7707b4b45740.tar.gz | |
sdcc-3.9.0 fork implementing GNU assembler syntax
This fork aims to provide better support for stm8-binutils
Diffstat (limited to 'sim/ucsim/cmd.src/cmd_get.cc')
| -rw-r--r-- | sim/ucsim/cmd.src/cmd_get.cc | 147 |
1 files changed, 147 insertions, 0 deletions
diff --git a/sim/ucsim/cmd.src/cmd_get.cc b/sim/ucsim/cmd.src/cmd_get.cc new file mode 100644 index 0000000..c538244 --- /dev/null +++ b/sim/ucsim/cmd.src/cmd_get.cc @@ -0,0 +1,147 @@ +/* + * 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 + * + */ + +/* This file is part of microcontroller simulator: ucsim. + +UCSIM is free software; you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation; either version 2 of the License, or +(at your option) any later version. + +UCSIM is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with UCSIM; see the file COPYING. If not, write to the Free +Software Foundation, 59 Temple Place - Suite 330, Boston, MA +02111-1307, USA. */ +/*@1@*/ + +#include "ddconfig.h" + +#include <ctype.h> +#include "i_string.h" + +#include <stdarg.h> +// prj +#include "utils.h" +#include "appcl.h" + +// sim +#include "simcl.h" +#include "optioncl.h" + +// local +#include "cmd_getcl.h" +#include "cmdutil.h" + + +void +set_get_help(class cl_cmd *cmd) +{ + cmd->set_help("get subcommand", + "Get value of differend objects", + "Long of get"); +} + +/* + * Command: get sfr + *---------------------------------------------------------------------------- + */ + +//int +//cl_get_sfr_cmd::do_work(class cl_sim *sim, +// class cl_cmdline *cmdline, class cl_console *con) +COMMAND_DO_WORK_UC(cl_get_sfr_cmd) +{ + class cl_address_space *mem= uc->address_space(MEM_SFR_ID); + class cl_cmd_arg *parm; + int i; + + if (!mem) + { + con->dd_printf("Error: No SFR\n"); + return(false); + } + for (i= 0, parm= cmdline->param(i); + parm; + i++, parm= cmdline->param(i)) + { + if (!parm->as_address(uc) || + !mem->valid_address(parm->value.address)) + con->dd_printf("Warning: Invalid address %s\n", + (char*)cmdline->tokens->at(i)); + else + mem->dump(parm->value.address, parm->value.address, 1, con/*->get_fout()*/); + } + + return(false);; +} + +CMDHELP(cl_get_sfr_cmd, + "get sfr address...", + "Get value of addressed SFRs", + "long help of get sfr") + +/* + * Command: get option + *---------------------------------------------------------------------------- + */ + +//int +//cl_get_option_cmd::do_work(class cl_sim *sim, +// class cl_cmdline *cmdline, class cl_console *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(0/*app->get_uc()*/, STRING)) { + s= parm->value.string.string; + } + else + syntax_error(con); + + int i; + for (i= 0; i < app->options->count; i++) + { + 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(false);; +} + +CMDHELP(cl_get_option_cmd, + "get option name", + "Get value of an option", + "long help of get option") + +/* End of cmd.src/cmd_get.cc */ |
