bool
cl_cmd_arg::as_memory(class cl_uc *uc)
{
- value.memory= uc->mem(s_value);
- return(value.memory != 0);
+ value.memory.memory= uc->memory(s_value);
+ value.memory.address_space= 0;
+ value.memory.memchip= 0;
+ if (value.memory.memory)
+ {
+ if (value.memory.memory->is_chip())
+ value.memory.memchip=
+ dynamic_cast<class cl_memory_chip *>(value.memory.memory);
+ if (value.memory.memory->is_address_space())
+ value.memory.address_space=
+ dynamic_cast<class cl_address_space *>(value.memory.memory);
+ }
+ return(value.memory.memory != 0);
}
bool
bool
cl_cmd_int_arg::get_bit_address(class cl_uc *uc, // input
- class cl_mem **mem, // outputs
+ class cl_address_space **mem, // outputs
t_addr *mem_addr,
t_mem *bit_mask)
{
if (!get_address(uc, &bit_addr))
return(DD_FALSE);
- return(uc->extract_bit_address(bit_addr, mem, mem_addr, bit_mask));
+
+ if (mem)
+ *mem= uc->bit2mem(bit_addr, mem_addr, bit_mask);
+ return(mem && *mem);
}
bool
bool
cl_cmd_sym_arg::get_bit_address(class cl_uc *uc, // input
- class cl_mem **mem, // outputs
+ class cl_address_space **mem, // outputs
t_addr *mem_addr,
t_mem *bit_mask)
{
struct name_entry *ne;
- if ((ne= get_name_entry(uc->bit_tbl(),
- get_svalue(),
- uc)) == NULL)
+ ne= get_name_entry(uc->bit_tbl(), get_svalue(), uc);
+ if (ne == NULL)
return(DD_FALSE);
- return(uc->extract_bit_address(ne->addr, mem, mem_addr, bit_mask));
+ if (mem)
+ *mem= uc->bit2mem(ne->addr, mem_addr, bit_mask);
+ return(mem && *mem);
}
bool
cl_cmd_str_arg::cl_cmd_str_arg(/*class cl_uc *iuc,*/ char *str):
cl_cmd_arg(/*iuc,*/ str)
-{}
+{
+}
/* Bit */
bool
cl_cmd_bit_arg::get_bit_address(class cl_uc *uc, // input
- class cl_mem **mem, // outputs
+ class cl_address_space **mem, // outputs
t_addr *mem_addr,
t_mem *bit_mask)
{
if (mem)
- *mem= uc->mem(MEM_SFR);
+ {
+ *mem= uc->address_space(MEM_SFR_ID);
+ if (!*mem)
+ return(DD_FALSE);
+ }
if (mem_addr)
{
if (!sfr ||
class cl_cmd_arg *aindex):
cl_cmd_arg(/*iuc,*/ (long)0)
{
- name = aname;
+ name_arg= aname;
index= aindex;
}
cl_cmd_array_arg::~cl_cmd_array_arg(void)
{
- if (name)
- delete name;
+ if (name_arg)
+ delete name_arg;
if (index)
delete index;
}
char *n;
t_addr a;
- if (name == 0 ||
+ if (name_arg == 0 ||
index == 0 ||
- (n= name->get_svalue()) == NULL ||
+ (n= name_arg->get_svalue()) == NULL ||
!index->get_address(uc, &a))
return(DD_FALSE);
* Program arguments
*----------------------------------------------------------------------------
*/
-
+/*
cl_prg_arg::cl_prg_arg(char sn, char *ln, long lv):
cl_arg(lv)
{
if (long_name)
free(long_name);
}
-
+*/
/*
* List of arguments
*----------------------------------------------------------------------------
*/
-
+/*
int
-cl_arguments::arg_avail(char name)
+cl_arguments::arg_avail(char nam)
{
class cl_prg_arg *a;
int i;
for (i= 0; i < count; i++)
{
a= (class cl_prg_arg *)(at(i));
- if (a->short_name == name)
+ if (a->short_name == nam)
return(1);
}
return(0);
}
int
-cl_arguments::arg_avail(char *name)
+cl_arguments::arg_avail(char *nam)
{
class cl_prg_arg *a;
int i;
{
a= (class cl_prg_arg *)(at(i));
if (a->long_name &&
- strcmp(a->long_name, name) == 0)
+ strcmp(a->long_name, nam) == 0)
return(1);
}
return(0);
}
return(0);
}
-
+*/
/* End of arg.cc */