X-Git-Url: https://git.gag.com/?a=blobdiff_plain;f=sim%2Fucsim%2Fcmd.src%2Fset.cc;h=b7e48ae4998d2c9eaea62ba37e59677241fbd1f6;hb=8c8f34ff4281a55d2f535335c02999246e9e12f2;hp=48888480c250573f14c5a8d8038d85c41d355e4a;hpb=80b2a5b23482ecbc28c3f70566ecafa524169016;p=fw%2Fsdcc diff --git a/sim/ucsim/cmd.src/set.cc b/sim/ucsim/cmd.src/set.cc index 48888480..b7e48ae4 100644 --- a/sim/ucsim/cmd.src/set.cc +++ b/sim/ucsim/cmd.src/set.cc @@ -68,9 +68,10 @@ COMMAND_DO_WORK_UC(cl_set_mem_cmd) int i; t_addr addr; for (i= 0, addr= start; - i < len && addr < mem->size; + i < len && addr <= mem->size; i++, addr++) - mem->write(addr, &(array[i])); + mem->set(addr, array[i]); + uc->check_errors(); mem->dump(start, start+len-1, 8, con); } } @@ -117,38 +118,43 @@ COMMAND_DO_WORK_UC(cl_set_bit_cmd) /* - * Command: set port + * Command: set hw *---------------------------------------------------------------------------- */ -//int -//cl_set_port_cmd::do_work(class cl_sim *sim, -// class cl_cmdline *cmdline, class cl_console *con) -COMMAND_DO_WORK_UC(cl_set_port_cmd) +COMMAND_DO_WORK_UC(cl_set_hw_cmd) { - class cl_hw *hw; - long l= 0, pn= -1; - class cl_cmd_arg *params[4]= { cmdline->param(0), + class cl_hw *hw= 0; + class cl_cmd_arg *params[1]= { cmdline->param(0)/*, cmdline->param(1), cmdline->param(2), - cmdline->param(3) }; + cmdline->param(3)*/ }; - if (cmdline->syntax_match(uc, HW NUMBER)) { + if (/*cmdline->syntax_match(uc, HW)*/params[0]->as_hw(uc)) { hw= params[0]->value.hw; - pn= hw->id; - l= params[1]->value.number; + //pn= hw->id; + //l= params[1]->value.number; } - else if (cmdline->syntax_match(uc, NUMBER NUMBER)) { + /*else if (cmdline->syntax_match(uc, NUMBER NUMBER)) { pn= params[0]->value.number; l= params[1]->value.number; - } + hw= uc->get_hw(HW_PORT, pn, 0); + }*/ else con->dd_printf("%s\n", short_help?short_help:"Error: wrong syntax\n"); - if (pn < 0 || + /*if (pn < 0 || pn > 3) con->dd_printf("Error: wrong port\n"); - else - uc->port_pins[pn]= l; + else*/ + { + if (hw) + { + cmdline->shift(); + hw->set_cmd(cmdline, con); + } + else + con->dd_printf("Error: no hw\n"); + } return(DD_FALSE);; }