From 499b6796788df7ba66b6ce645ebefd1be3bf96c3 Mon Sep 17 00:00:00 2001 From: drdani Date: Mon, 18 Jun 2001 09:22:23 +0000 Subject: [PATCH] Version 0.3.0 git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@903 4a8a32a2-be11-0410-ad9d-d568d2c75423 --- sim/ucsim/.version | 2 +- sim/ucsim/Makefile | 1 + sim/ucsim/avr.src/savr.cc | 12 +++-- sim/ucsim/avr.src/simavr.cc | 8 +++- sim/ucsim/avr.src/simavrcl.h | 2 +- sim/ucsim/cmd.src/newcmd.cc | 16 +++++-- sim/ucsim/cmd.src/newcmdcl.h | 6 ++- sim/ucsim/main_in.mk | 21 ++++++-- sim/ucsim/s51.src/s51.cc | 14 ++++-- sim/ucsim/s51.src/sim51.cc | 4 +- sim/ucsim/s51.src/sim51cl.h | 2 +- sim/ucsim/s51.src/test_extit.c | 2 +- sim/ucsim/s51.src/test_idlepd.c | 2 +- sim/ucsim/s51.src/test_ser.c | 2 +- sim/ucsim/s51.src/uc51.cc | 10 ++-- sim/ucsim/sim.src/Makefile.in | 5 +- sim/ucsim/sim.src/app.cc | 74 ++++++++++++++++++++++++++--- sim/ucsim/sim.src/appcl.h | 25 ++++++++-- sim/ucsim/sim.src/mem.cc | 15 ++++++ sim/ucsim/sim.src/memcl.h | 10 ++++ sim/ucsim/sim.src/sim.cc | 6 ++- sim/ucsim/sim.src/simcl.h | 4 +- sim/ucsim/sim.src/test_mem_speed.cc | 18 +++++++ sim/ucsim/ucsim.cc | 43 +++++++++++++++++ sim/ucsim/z80.src/simz80.cc | 6 ++- sim/ucsim/z80.src/simz80cl.h | 2 +- sim/ucsim/z80.src/sz80.cc | 16 +++++-- 27 files changed, 274 insertions(+), 54 deletions(-) create mode 100644 sim/ucsim/sim.src/test_mem_speed.cc create mode 100644 sim/ucsim/ucsim.cc diff --git a/sim/ucsim/.version b/sim/ucsim/.version index 12ebfcf7..0d91a54c 100644 --- a/sim/ucsim/.version +++ b/sim/ucsim/.version @@ -1 +1 @@ -0.2.39 +0.3.0 diff --git a/sim/ucsim/Makefile b/sim/ucsim/Makefile index d59300c1..27fd11df 100644 --- a/sim/ucsim/Makefile +++ b/sim/ucsim/Makefile @@ -21,6 +21,7 @@ all: checkconf @for pkg in $(PKGS); do\ cd $$pkg && $(MAKE) $$pkg ; cd ..;\ done + $(MAKE) -f main.mk main_app libs: main.mk $(MAKE) -f main.mk libs diff --git a/sim/ucsim/avr.src/savr.cc b/sim/ucsim/avr.src/savr.cc index 6776fe39..6932c2cc 100644 --- a/sim/ucsim/avr.src/savr.cc +++ b/sim/ucsim/avr.src/savr.cc @@ -27,20 +27,26 @@ Software Foundation, 59 Temple Place - Suite 330, Boston, MA #include -#include "globals.h" +// sim.src +#include "appcl.h" +// local #include "simavrcl.h" int main(int argc, char *argv[]) { + class cl_app *app; class cl_sim *sim; - sim= new cl_simavr(argc, argv); + app= new cl_app(); + app->init(); + sim= new cl_simavr(app, argc, argv); sim->init(); + app->set_simulator(sim); sim->main(); - delete sim; + delete app; return(0); } diff --git a/sim/ucsim/avr.src/simavr.cc b/sim/ucsim/avr.src/simavr.cc index bb885512..e3372904 100644 --- a/sim/ucsim/avr.src/simavr.cc +++ b/sim/ucsim/avr.src/simavr.cc @@ -28,12 +28,16 @@ Software Foundation, 59 Temple Place - Suite 330, Boston, MA #include +// sim.src +#include "appcl.h" + +// local #include "simavrcl.h" #include "avrcl.h" -cl_simavr::cl_simavr(int iargc, char *iargv[]): - cl_sim("h", iargc, iargv) +cl_simavr::cl_simavr(class cl_app *the_app, int iargc, char *iargv[]): + cl_sim(the_app, "h", iargc, iargv) {} diff --git a/sim/ucsim/avr.src/simavrcl.h b/sim/ucsim/avr.src/simavrcl.h index 34bbe94a..f0bd4467 100644 --- a/sim/ucsim/avr.src/simavrcl.h +++ b/sim/ucsim/avr.src/simavrcl.h @@ -34,7 +34,7 @@ Software Foundation, 59 Temple Place - Suite 330, Boston, MA class cl_simavr: public cl_sim { public: - cl_simavr(int iargc, char *iargv[]); + cl_simavr(class cl_app *the_app, int iargc, char *iargv[]); virtual int proc_arg(char optopt, char *optarg); virtual class cl_uc *mk_controller(void); diff --git a/sim/ucsim/cmd.src/newcmd.cc b/sim/ucsim/cmd.src/newcmd.cc index c1ca1db6..a0107318 100644 --- a/sim/ucsim/cmd.src/newcmd.cc +++ b/sim/ucsim/cmd.src/newcmd.cc @@ -51,6 +51,7 @@ Software Foundation, 59 Temple Place - Suite 330, Boston, MA // sim #include "simcl.h" #include "argcl.h" +#include "appcl.h" // local #include "newcmdcl.h" @@ -984,7 +985,7 @@ cl_console::read_line(void) } int -cl_console::proc_input(class cl_cmdset *cmdset) +cl_console::proc_input(class cl_app *app, class cl_cmdset *cmdset) { int retval= 0; @@ -1008,7 +1009,12 @@ cl_console::proc_input(class cl_cmdset *cmdset) class cl_cmd *cm; cmdline= new cl_cmdline(cmdstr, this); cmdline->init(); - cm= cmdset->get_cmd(cmdline); + cm= 0; + if (app) + cm= app->get_cmd(cmdline); + if (cm == 0 && + cmdset) + cm= cmdset->get_cmd(cmdline); if (cm) retval= cm->work(sim, cmdline, this); delete cmdline; @@ -1099,9 +1105,11 @@ cl_listen_console::proc_input(class cl_cmdset *cmdset) *____________________________________________________________________________ */ -cl_commander::cl_commander(class cl_cmdset *acmdset, class cl_sim *asim): +cl_commander::cl_commander(class cl_app *the_app, + class cl_cmdset *acmdset, class cl_sim *asim): cl_base() { + app= the_app; cons= new cl_list(1, 1); actual_console= frozen_console= 0; cmdset= acmdset; @@ -1353,7 +1361,7 @@ cl_commander::proc_input(void) if (c->match(i)) { actual_console= c; - int retval= c->proc_input(cmdset); + int retval= c->proc_input(app, cmdset); if (retval) { del_console(c); diff --git a/sim/ucsim/cmd.src/newcmdcl.h b/sim/ucsim/cmd.src/newcmdcl.h index 7a8500ae..c0693331 100644 --- a/sim/ucsim/cmd.src/newcmdcl.h +++ b/sim/ucsim/cmd.src/newcmdcl.h @@ -240,7 +240,7 @@ public: virtual int get_in_fd(void); virtual int input_avail(void); virtual char *read_line(void); - virtual int proc_input(class cl_cmdset *cmdset); + virtual int proc_input(class cl_app *app, class cl_cmdset *cmdset); virtual bool interpret(char *cmd); }; @@ -269,6 +269,7 @@ public: class cl_commander: public cl_base { public: + class cl_app *app; class cl_list *cons; fd_set read_set, active_set; int fd_num; @@ -277,7 +278,8 @@ public: class cl_cmdset *cmdset; public: - cl_commander(class cl_cmdset *acmdset, class cl_sim *asim); + cl_commander(class cl_app *the_app, + class cl_cmdset *acmdset, class cl_sim *asim); ~cl_commander(void); virtual int init(void); diff --git a/sim/ucsim/main_in.mk b/sim/ucsim/main_in.mk index d3d7800a..b9e4c989 100644 --- a/sim/ucsim/main_in.mk +++ b/sim/ucsim/main_in.mk @@ -14,14 +14,17 @@ RANLIB = @RANLIB@ INSTALL = @INSTALL@ PRJDIR = . +SIMDIR = sim.src DEFS = $(subs -DHAVE_CONFIG_H,,@DEFS@) # FIXME: -Imcs51 must be removed!!! -CPPFLAGS = @CPPFLAGS@ -I$(PRJDIR) +CPPFLAGS = @CPPFLAGS@ -I$(PRJDIR) -I$(PRJDIR)/$(SIMDIR) CFLAGS = @CFLAGS@ -I$(PRJDIR) -Wall CXXFLAGS = @CXXFLAGS@ -I$(PRJDIR) -Wall M_OR_MM = @M_OR_MM@ +UCSIM_LIBS = -lsim -lcmd -lutil + prefix = @prefix@ exec_prefix = @exec_prefix@ bindir = @bindir@ @@ -35,6 +38,10 @@ infodir = @infodir@ srcdir = @srcdir@ OBJECTS = pobj.o globals.o utils.o +SOURCES = $(patsubst %.o,%.cc,$(OBJECTS)) +UCSIM_OBJECTS = ucsim.o +UCSIM_SOURCES = $(patsubst %.o,%.cc,$(UCSIM_OBJECTS)) +ALL_SOURCES = $(SOURCES) $(UCSIM_SOURCES) # Compiling entire program or any subproject @@ -43,6 +50,8 @@ all: checkconf libs libs: libutil.a +main_app: checkconf ucsim_app + # Compiling and installing everything and runing test # --------------------------------------------------- install: all installdirs @@ -76,8 +85,8 @@ installdirs: # --------------------- dep: main.dep -main.dep: *.cc *.h - $(CXXCPP) $(CPPFLAGS) $(M_OR_MM) *.cc >main.dep +main.dep: $(ALL_SOURCES) *.h + $(CXXCPP) $(CPPFLAGS) $(M_OR_MM) $(ALL_SOURCES) >main.dep include main.dep include clean.mk @@ -88,11 +97,15 @@ include clean.mk # My rules # -------- - libutil.a: $(OBJECTS) ar -rcu $*.a $(OBJECTS) $(RANLIB) $*.a +ucsim_app: libs ucsim + +ucsim: $(UCSIM_OBJECTS) $() + $(CXX) $(CXXFLAGS) -o $@ $< -L$(PRJDIR) $(UCSIM_LIBS) + .cc.o: $(CXX) $(CXXFLAGS) $(CPPFLAGS) $(TARGET_ARCH) -c $< -o $@ diff --git a/sim/ucsim/s51.src/s51.cc b/sim/ucsim/s51.src/s51.cc index 117a1ecb..50a80e0a 100644 --- a/sim/ucsim/s51.src/s51.cc +++ b/sim/ucsim/s51.src/s51.cc @@ -27,10 +27,10 @@ Software Foundation, 59 Temple Place - Suite 330, Boston, MA #include "ddconfig.h" -//#include - -//#include "globals.h" +// sim.src +#include "appcl.h" +// local #include "sim51cl.h" @@ -42,13 +42,17 @@ int main(int argc, char *argv[]) { int retval; + class cl_app *app; class cl_sim *sim; - sim= new cl_sim51(argc, argv); + app= new cl_app(); + app->init(); + sim= new cl_sim51(app, argc, argv); if (sim->init()) return(1); + app->set_simulator(sim); retval= sim->main(); - delete sim; + delete app; return(retval); } diff --git a/sim/ucsim/s51.src/sim51.cc b/sim/ucsim/s51.src/sim51.cc index 7b403489..811c862c 100644 --- a/sim/ucsim/s51.src/sim51.cc +++ b/sim/ucsim/s51.src/sim51.cc @@ -50,8 +50,8 @@ Software Foundation, 59 Temple Place - Suite 330, Boston, MA #include "glob.h" -cl_sim51::cl_sim51(int iargc, char *iargv[]): - cl_sim("t:s:S:hHk:", iargc, iargv) +cl_sim51::cl_sim51(class cl_app *the_app, int iargc, char *iargv[]): + cl_sim(the_app, "t:s:S:hHk:", iargc, iargv) {} static void diff --git a/sim/ucsim/s51.src/sim51cl.h b/sim/ucsim/s51.src/sim51cl.h index e15cd2d3..0365ab1d 100644 --- a/sim/ucsim/s51.src/sim51cl.h +++ b/sim/ucsim/s51.src/sim51cl.h @@ -34,7 +34,7 @@ Software Foundation, 59 Temple Place - Suite 330, Boston, MA class cl_sim51: public cl_sim { public: - cl_sim51(int iargc, char *iargv[]); + cl_sim51(class cl_app *the_app, int iargc, char *iargv[]); virtual int proc_arg(char optopt, char *optarg); virtual class cl_uc *mk_controller(void); }; diff --git a/sim/ucsim/s51.src/test_extit.c b/sim/ucsim/s51.src/test_extit.c index a3d7060e..f61fd41f 100644 --- a/sim/ucsim/s51.src/test_extit.c +++ b/sim/ucsim/s51.src/test_extit.c @@ -1,4 +1,4 @@ -#include <8051.h> +#include sfr at 0xa6 WDTRST; diff --git a/sim/ucsim/s51.src/test_idlepd.c b/sim/ucsim/s51.src/test_idlepd.c index 59b2f6eb..56b6aaaa 100644 --- a/sim/ucsim/s51.src/test_idlepd.c +++ b/sim/ucsim/s51.src/test_idlepd.c @@ -1,4 +1,4 @@ -#include <8051.h> +#include sfr at 0xa6 WDTRST; diff --git a/sim/ucsim/s51.src/test_ser.c b/sim/ucsim/s51.src/test_ser.c index cac1c03f..1af12abc 100644 --- a/sim/ucsim/s51.src/test_ser.c +++ b/sim/ucsim/s51.src/test_ser.c @@ -1,4 +1,4 @@ -#include <8051.h> +#include #define BUFSIZE 16 #define T0H 0xfc diff --git a/sim/ucsim/s51.src/uc51.cc b/sim/ucsim/s51.src/uc51.cc index 99e01aa1..8f64eb2a 100644 --- a/sim/ucsim/s51.src/uc51.cc +++ b/sim/ucsim/s51.src/uc51.cc @@ -1219,9 +1219,10 @@ t_uc51::do_timer0(int cycles) // mod 0, TH= 8 bit t/c, TL= 5 bit precounter //(MEM(MEM_SFR)[TL0])++; sfr->add(TL0, 1); - if (sfr->get(TL0) > 0x1f) + if ((sfr->get(TL0) & 0x1f) == 0) { - sfr->set_bit0(TL0, ~0x1f); + //sfr->set_bit0(TL0, ~0x1f); + sfr->set(TL0, 0); if (!/*++(MEM(MEM_SFR)[TH0])*/sfr->add(TH0, 1)) { sfr->set_bit1(TCON, bmTF0); @@ -1333,9 +1334,10 @@ t_uc51::do_timer1(int cycles) while (cycles--) { // mod 0, TH= 8 bit t/c, TL= 5 bit precounter - if (/*++(MEM(MEM_SFR)[TL1])*/sfr->add(TL1, 1) > 0x1f) + if (/*++(MEM(MEM_SFR)[TL1])*/(sfr->add(TL1, 1) & 0x1f) == 0) { - sfr->set_bit0(TL1, ~0x1f); + //sfr->set_bit0(TL1, ~0x1f); + sfr->set(TL1, 0); if (!/*++(MEM(MEM_SFR)[TH1])*/sfr->add(TH1, 1)) { sfr->set_bit1(TCON, bmTF1); diff --git a/sim/ucsim/sim.src/Makefile.in b/sim/ucsim/sim.src/Makefile.in index f01b32f4..8eeeb05a 100644 --- a/sim/ucsim/sim.src/Makefile.in +++ b/sim/ucsim/sim.src/Makefile.in @@ -40,7 +40,10 @@ OBJECTS = app.o sim.o itsrc.o brk.o option.o arg.o stack.o \ # Compiling entire program or any subproject # ------------------------------------------ -all: checkconf sim_lib +all: checkconf sim_lib test_mem_speed + +test_mem_speed: test_mem_speed.o + $(CC) -o $@ $< -L$(PRJDIR) -lsim -lutil sim.src: all diff --git a/sim/ucsim/sim.src/app.cc b/sim/ucsim/sim.src/app.cc index 27faec2f..873bab17 100644 --- a/sim/ucsim/sim.src/app.cc +++ b/sim/ucsim/sim.src/app.cc @@ -31,6 +31,9 @@ Software Foundation, 59 Temple Place - Suite 330, Boston, MA // prj #include "i_string.h" +// sim.src +#include "simcl.h" + // local #include "appcl.h" @@ -39,7 +42,7 @@ Software Foundation, 59 Temple Place - Suite 330, Boston, MA * Program options */ -cl_option::cl_option(int atype, char sn, char *ln) +/*cl_option::cl_option(int atype, char sn, char *ln) { type= atype; short_name= sn; @@ -70,14 +73,14 @@ cl_option::get_value(int index) if (index > values->count - 1) return(0); return((char*)(values->at(index))); -} +}*/ /* List of options */ -cl_options::cl_options(void): +/*cl_options::cl_options(void): cl_list(2, 2) { -} +}*/ /* @@ -87,12 +90,71 @@ cl_options::cl_options(void): cl_app::cl_app(void) { - options= new cl_options(); + //options= new cl_options(); + sim= 0; } cl_app::~cl_app(void) { - delete options; + //delete options; + remove_simulator(); +} + +int +cl_app::init(void) +{ + cl_base::init(); + + return(0); +} + +/* Main cycle */ + +int +cl_app::run(void) +{ + return(0); +} + +void +cl_app::done(void) +{ +} + + +/* Command handling */ + +class cl_cmd * +cl_app::get_cmd(class cl_cmdline *cmdline) +{ + return(0); +} + + +/* Adding and removing comonents */ + +void +cl_app::set_simulator(class cl_sim *simulator) +{ + if (sim) + remove_simulator(); + sim= simulator; + +} + +void +cl_app::remove_simulator(void) +{ + if (!sim) + return; + delete sim; + sim= 0; +} + +void +cl_app::build_cmdset(class cl_cmdset *cs) +{ + } diff --git a/sim/ucsim/sim.src/appcl.h b/sim/ucsim/sim.src/appcl.h index e1e4e3dd..610eba30 100644 --- a/sim/ucsim/sim.src/appcl.h +++ b/sim/ucsim/sim.src/appcl.h @@ -44,7 +44,7 @@ Software Foundation, 59 Temple Place - Suite 330, Boston, MA #define OPT_Z80 0x0040 #define OPT_TARGET (OPT_51|OPT_AVR|OPT_Z80) -class cl_option: public cl_base +/*class cl_option: public cl_base { public: int type; // See OPT_XXX @@ -64,19 +64,36 @@ class cl_options: public cl_list { public: cl_options(void); -}; +};*/ /* Application */ class cl_app: public cl_base { -public: - class cl_options *options; +protected: + //class cl_options *options; + class cl_sim *sim; + class cl_cmdset *cmdset; public: cl_app(void); ~cl_app(void); + +public: + virtual int init(void); + virtual int run(void); + virtual void done(void); + +public: + virtual class cl_cmd *get_cmd(class cl_cmdline *cmdline); + +public: + virtual void set_simulator(class cl_sim *simulator); + virtual void remove_simulator(void); + +protected: + virtual void build_cmdset(class cl_cmdset *cs); }; diff --git a/sim/ucsim/sim.src/mem.cc b/sim/ucsim/sim.src/mem.cc index 5c9aa49f..11c20563 100644 --- a/sim/ucsim/sim.src/mem.cc +++ b/sim/ucsim/sim.src/mem.cc @@ -127,6 +127,21 @@ cl_memloc_coll::get_loc(t_addr address) } +/* + */ + +cl_cell::cl_cell(void): + cl_base() +{ + data= 0; +} + +cl_cell::cl_cell(t_mem idata): + cl_base() +{ + data= idata; +} + /* * Memory ****************************************************************************** diff --git a/sim/ucsim/sim.src/memcl.h b/sim/ucsim/sim.src/memcl.h index 3e0dcf75..2ccd3bf3 100644 --- a/sim/ucsim/sim.src/memcl.h +++ b/sim/ucsim/sim.src/memcl.h @@ -64,6 +64,16 @@ public: }; +class cl_cell: public cl_base +{ +public: + t_mem data; + +public: + cl_cell(void); + cl_cell(t_mem idata); +}; + /* Memory */ class cl_mem: public cl_guiobj diff --git a/sim/ucsim/sim.src/sim.cc b/sim/ucsim/sim.src/sim.cc index b80e8cae..73e1d639 100644 --- a/sim/ucsim/sim.src/sim.cc +++ b/sim/ucsim/sim.src/sim.cc @@ -58,9 +58,11 @@ Software Foundation, 59 Temple Place - Suite 330, Boston, MA * Simulator */ -cl_sim::cl_sim(char *more_args, int iargc, char *iargv[]): +cl_sim::cl_sim(class cl_app *the_app, + char *more_args, int iargc, char *iargv[]): cl_base() { + app= the_app; argc= iargc; argv= iargv; uc= 0; cmd= 0; @@ -83,7 +85,7 @@ cl_sim::init(void) if (!(uc= mk_controller())) return(1); uc->init(); - cmd= new cl_commander(cmdset, this); + cmd= new cl_commander(app, cmdset, this); cmd->init(); char *Config= get_sarg(0, "Config"); if (Config) diff --git a/sim/ucsim/sim.src/simcl.h b/sim/ucsim/sim.src/simcl.h index f4fbec20..9a7b0f29 100644 --- a/sim/ucsim/sim.src/simcl.h +++ b/sim/ucsim/sim.src/simcl.h @@ -46,6 +46,8 @@ Software Foundation, 59 Temple Place - Suite 330, Boston, MA class cl_sim: public cl_base { +protected: + class cl_app *app; public: int state; // See SIM_XXXX int argc; char **argv; @@ -59,7 +61,7 @@ public: class cl_list *arguments; public: - cl_sim(char *more_args, int iargc, char *iargv[]); + cl_sim(class cl_app *the_app, char *more_args, int iargc, char *iargv[]); ~cl_sim(void); virtual int init(void); diff --git a/sim/ucsim/sim.src/test_mem_speed.cc b/sim/ucsim/sim.src/test_mem_speed.cc new file mode 100644 index 00000000..05a046ac --- /dev/null +++ b/sim/ucsim/sim.src/test_mem_speed.cc @@ -0,0 +1,18 @@ +#include "memcl.h" + +int +main(void) +{ + class cl_mem *mem; + t_addr a; + t_mem d; + + mem= new cl_mem(MEM_SFR, "egy", 0x10000, 8); + for (a= 0; a < mem->size; a++) + { + t_mem d2= a; + mem->write(a, &d2); + d= mem->read(a); + } + return(0); +} diff --git a/sim/ucsim/ucsim.cc b/sim/ucsim/ucsim.cc new file mode 100644 index 00000000..145b799b --- /dev/null +++ b/sim/ucsim/ucsim.cc @@ -0,0 +1,43 @@ +/* + * Simulator of microcontrollers (ucsim.cc) + * + * Copyright (C) 2001,01 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 "appcl.h" + +int +main(int argc, char *argv[]) +{ + class cl_app *app; + int ret; + + app= new cl_app(); + app->init(); + ret= app->run(); + app->done(); + return(ret); +} + +/* End of sim.src/ucsim.cc */ diff --git a/sim/ucsim/z80.src/simz80.cc b/sim/ucsim/z80.src/simz80.cc index 6a66e2bd..5da4084f 100644 --- a/sim/ucsim/z80.src/simz80.cc +++ b/sim/ucsim/z80.src/simz80.cc @@ -26,12 +26,14 @@ Software Foundation, 59 Temple Place - Suite 330, Boston, MA /*@1@*/ +// local #include "simz80cl.h" #include "z80cl.h" -cl_simz80::cl_simz80(char *more_args, int iargc, char *iargv[]): - cl_sim(more_args, iargc, iargv) +cl_simz80::cl_simz80(class cl_app *the_app, + char *more_args, int iargc, char *iargv[]): + cl_sim(the_app, more_args, iargc, iargv) {} class cl_uc * diff --git a/sim/ucsim/z80.src/simz80cl.h b/sim/ucsim/z80.src/simz80cl.h index 022b87b8..9ccaa6bb 100644 --- a/sim/ucsim/z80.src/simz80cl.h +++ b/sim/ucsim/z80.src/simz80cl.h @@ -34,7 +34,7 @@ Software Foundation, 59 Temple Place - Suite 330, Boston, MA class cl_simz80: public cl_sim { public: - cl_simz80(char *more_args, int iargc, char *iargv[]); + cl_simz80(class cl_app *the_app, char *more_args, int iargc, char *iargv[]); virtual class cl_uc *mk_controller(void); }; diff --git a/sim/ucsim/z80.src/sz80.cc b/sim/ucsim/z80.src/sz80.cc index 9668b567..5de66781 100644 --- a/sim/ucsim/z80.src/sz80.cc +++ b/sim/ucsim/z80.src/sz80.cc @@ -25,20 +25,26 @@ Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ /*@1@*/ -#include - -#include "globals.h" +// sim.src +#include "appcl.h" +// local #include "simz80cl.h" int main(int argc, char *argv[]) { - class cl_sim *sim= new cl_simz80(0, argc, argv); + class cl_app *app; + class cl_sim *sim; + + app= new cl_app(); + app->init(); + sim= new cl_simz80(app, 0, argc, argv); sim->init(); + app->set_simulator(sim); sim->main(); - delete sim; + delete app; return(0); } -- 2.30.2