/*
- * Simulator of microcontrollers (simcl.h)
+ * Simulator of microcontrollers (sim.src/simcl.h)
*
* Copyright (C) 1999,99 Drotos Daniel, Talker Bt.
*
02111-1307, USA. */
/*@1@*/
-#ifndef SIMCL_HEADER
-#define SIMCL_HEADER
+#ifndef SIM_SIMCL_HEADER
+#define SIM_SIMCL_HEADER
#include <stdio.h>
// cmd
#include "newcmdcl.h"
+// gui
+#include "guicl.h"
+
// local
#include "uccl.h"
#include "argcl.h"
class cl_sim: public cl_base
{
public:
+ class cl_app *app;
int state; // See SIM_XXXX
int argc; char **argv;
- class cl_commander *cmd;
+ //class cl_commander *cmd;
class cl_uc *uc;
- class cl_cmdset *cmdset;
- //class cl_console *frozen_console;
+ class cl_gui *gui;
- char *accept_args;
- class cl_ustrings *in_files;
- class cl_list *arguments;
+ //char *accept_args;
+ //class cl_list *arguments;
public:
- cl_sim(char *more_args, int iargc, char *iargv[]);
- //cl_sim(class cl_uc *auc);
- ~cl_sim(void);
+ cl_sim(class cl_app *the_app);
+ virtual ~cl_sim(void);
virtual int init(void);
- virtual int proc_arguments(int argc, char *argv[]);
- virtual int proc_arg(char arg, char *optarg);
-
- virtual class cl_commander *mk_commander(void);
virtual class cl_uc *mk_controller(void);
- virtual class cl_cmdset *mk_cmdset(void);
- virtual void build_cmd_set(void);
- virtual class cl_cmd_arg *mk_cmd_int_arg(long long i);
- virtual class cl_cmd_arg *mk_cmd_sym_arg(char *s);
- virtual class cl_cmd_arg *mk_cmd_str_arg(char *s);
- virtual class cl_cmd_arg *mk_cmd_bit_arg(class cl_cmd_arg *sfr,
- class cl_cmd_arg *bit);
-
- int arg_avail(char name);
- int arg_avail(char *name);
- virtual long long get_iarg(char sname, char *lname);
- virtual char *get_sarg(char sname, char *lname);
- virtual double get_farg(char sname, char *lname);
- virtual void *get_parg(char sname, char *lname);
+ virtual void build_cmdset(class cl_cmdset *cmdset);
+
+ virtual class cl_uc *get_uc(void) { return(uc); }
+ // messages from app to handle and broadcast
+ virtual void mem_cell_changed(class cl_mem *mem, t_addr addr);
+
virtual int main(void);
- virtual int do_cmd(char *cmd, class cl_console *console);
virtual void start(class cl_console *con);
virtual void stop(int reason);
-
- // Obsolete, for old commander
- //public:
- //FILE *cmd_out(void);
- //FILE *cmd_in(void);
+ virtual int step(void);
};