2 * Simulator of microcontrollers (hw.cc)
4 * Copyright (C) 1999,99 Drotos Daniel, Talker Bt.
6 * To contact author send email to drdani@mazsola.iit.uni-miskolc.hu
10 /* This file is part of microcontroller simulator: ucsim.
12 UCSIM is free software; you can redistribute it and/or modify
13 it under the terms of the GNU General Public License as published by
14 the Free Software Foundation; either version 2 of the License, or
15 (at your option) any later version.
17 UCSIM is distributed in the hope that it will be useful,
18 but WITHOUT ANY WARRANTY; without even the implied warranty of
19 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
20 GNU General Public License for more details.
22 You should have received a copy of the GNU General Public License
23 along with UCSIM; see the file COPYING. If not, write to the Free
24 Software Foundation, 59 Temple Place - Suite 330, Boston, MA
37 cl_hw::cl_hw(class cl_uc *auc, enum hw_cath cath, int aid, char *aid_string):
46 id_string= strdup(aid_string);
48 id_string= strdup("unknown hw element");
58 * Callback functions for changing memory locations
62 cl_hw::read(class cl_mem *mem, t_addr addr)
64 // Simply return the value
65 return(mem->get(addr));
69 cl_hw::write(class cl_mem *mem, t_addr addr, t_mem *val)
71 // Do not change *val by default
76 * Simulating `cycles' number of machine cycle
80 cl_hw::tick(int cycles)
86 cl_hw::print_info(class cl_console *con)
88 con->printf("%s[%d]\n", id_string, id);
93 cl_hws::add(void *item)
99 for (i= 0; i < count; i++)
101 class cl_hw *hw= (class cl_hw *)(at(i));
102 hw->adding((class cl_hw *)item);
105 res= cl_list::add(item);
107 for (i= 0; i < count; i++)
109 class cl_hw *hw= (class cl_hw *)(at(i));
110 hw->added((class cl_hw *)item);