+++ /dev/null
-#include <curses.h>
-#include <panel.h>
-
-int sfr[4];
-int port[4];
-
-void
-init_panel(PANEL *p)
-{
- int mask, x, y;
- int na, ha;
- int cursor= 2;
- WINDOW *w= panel_window(p);
-
- if (has_colors())
- {
- na= COLOR_PAIR(1);
- ha= COLOR_PAIR(2);
- }
- else
- {
- na= A_NORMAL;
- ha= A_STANDOUT;
- }
- //wattron(w, COLOR_PAIR);
- x= 0;
- for (mask= 1, y= 0; mask < 0x100; mask<<= 1,y++)
- {
- wattrset(w, (y==cursor)?ha:na);
- mvwprintw(w, y,x, "%s", (sfr[0]&mask)?"High":" Low");
- }
-}
-
-wchar_t
-wait_input(PANEL *p)
-{
- WINDOW *w= panel_window(p);
- wchar_t c;
-
- c= wgetch(w);
- printw("%d 0x%x\n",c,c);
- return(c);
-}
-
-int
-main(int argc, char *argv[])
-{
- wchar_t c;
-
- initscr(); /* initialize the curses library */
- keypad(stdscr, TRUE); /* enable keyboard mapping */
- nonl(); /* tell curses not to do NL->CR/NL on output */
- cbreak(); /* take input chars one at a time, no wait for \n */
- noecho(); /* don't echo input */
- if (has_colors())
- {
- start_color();
- printw("has %d colors and %d pairs\n", COLORS, COLOR_PAIRS);
- init_pair(1, COLOR_WHITE, COLOR_BLUE);
- init_pair(2, COLOR_WHITE, COLOR_RED);
- }
- if (has_key(KEY_UP))
- printw("has UP KEY_UP=0x%x\n",KEY_UP);
- else
- printf("has no UP\n");
- c= getch();
- printw("got %d %x\n",c,c);
-
- WINDOW *w= newwin(10,10, 3,3);
- keypad(w, TRUE);
- PANEL *p= new_panel(w);
-
- sfr[0]= 0x5a;
- init_panel(p);
- update_panels();
- doupdate();
- c= wait_input(p);
- //c= getch();
-
- endwin();
- if (c==KEY_UP)
- printf("got UP\n");
- else if (c==KEY_DOWN)
- printf("got DOWN\n");
- else
- printf("got \"%d\"\n", c);
-}
+++ /dev/null
-/*
- * Simulator of microcontrollers (app.cc)
- *
- * Copyright (C) 1999,99 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 <stdlib.h>
-
-#include "appcl.h"
-#include "deskcl.h"
-
-
-cl_app::cl_app(char *iname):
- cl_group(iname, this)
-{
- drawn= 0;
-}
-
-cl_app::~cl_app(void)
-{
- endwin();
-}
-
-int
-cl_app::init(void)
-{
- initscr();
- keypad(stdscr, TRUE);
- nonl();
- cbreak();
- noecho();
-
- pos= new cl_box(0,0, COLS, LINES);
- cl_view::init();
- state|= SF_SELECTED;//select();
- class cl_box b(*pos);
- //b.move_rel(0,1);
- //b.grow(0,-2);
- if ((desk= mk_desk(&b)))
- insert(desk);
- desk->select();
- mk_views(desk);
-
- //update();
- update_panels();
- doupdate();
- return(0);
-}
-
-class cl_gin *
-cl_app::mk_input(void)
-{
- class cl_gin *i= new cl_gin();
- i->init();
- i->add_input(stdin, 0);
- return(i);
-}
-
-int *
-cl_app::mk_palette(void)
-{
- int *p, i;
- int colors;
-
- colors= 64;
- p= (int*)malloc(colors * sizeof(int));
- if (has_colors())
- {
- start_color();
-
- init_pair(i= C_WIN+C_WIN_NORMAL, COLOR_YELLOW, COLOR_BLUE);
- p[i]= COLOR_PAIR(i)|A_BOLD;
- for (i= 1; i < colors; i++)
- p[i]= p[C_WIN+C_WIN_NORMAL];
- // desktop
- init_pair(i= C_DSK_BG, COLOR_BLACK, COLOR_WHITE);
- p[i]= COLOR_PAIR(i);
- // menus and status bar
- init_pair(i= C_DSK_NORMAL, COLOR_WHITE, COLOR_BLUE);
- p[i]= COLOR_PAIR(i)|A_BOLD;
- init_pair(i= C_DSK_DISABLED, COLOR_WHITE, COLOR_BLUE);
- p[i]= COLOR_PAIR(i);
- // window
- init_pair(i= C_WIN+C_WIN_FPASSIVE, COLOR_WHITE, COLOR_BLUE);
- p[i]= COLOR_PAIR(i);
- init_pair(i= C_WIN+C_WIN_FACTIVE, COLOR_WHITE, COLOR_BLUE);
- p[i]= COLOR_PAIR(i)|A_BOLD;
- init_pair(i= C_WIN+C_WIN_SELECTED, COLOR_YELLOW, COLOR_RED);
- p[i]= COLOR_PAIR(i)|A_BOLD;
- }
- else
- {
- for (i= 0; i < colors; i++)
- p[i]= A_NORMAL;
- p[C_WIN+C_WIN_FACTIVE]|= A_BOLD;
- p[C_WIN+C_WIN_SELECTED]|= A_REVERSE;
- }
- return(p);
-}
-
-class cl_group *
-cl_app::mk_desk(class cl_box *ipos)
-{
- class cl_group *d= new cl_desk(ipos, "desktop", this);
- d->init();
- return(d);
-}
-
-
-int
-cl_app::handle_event(struct t_event *event)
-{
- if (!cl_group::handle_event(event))
- {
- if (event->what == EV_KEY)
- switch (event->event.key)
- {
- case KEY_BREAK: case KEY_EXIT:
- event->what= EV_COMMAND;
- event->event.msg.cmd= CMD_QUIT;
- break;
- }
- }
- return(0);
-}
-
-int
-cl_app::run(void)
-{
- struct t_event event;
-
- drawn= 0;
- while (get_event(&event))
- {
- if (!handle_event(&event))
- {
- if (event.what == EV_COMMAND &&
- event.event.msg.cmd == CMD_QUIT)
- return(0);
- unhandled(&event);
- }
- if (drawn)
- update();
- drawn= 0;
- }
- return(0);
-}
-
-
-/* End of gui.src/app.cc */
+++ /dev/null
-/*
- * Simulator of microcontrollers (appcl.h)
- *
- * Copyright (C) 1999,99 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@*/
-
-#ifndef APPCL_HEADER
-#define APPCL_HEADER
-
-#include "groupcl.h"
-
-
-class cl_app: public cl_group
-{
-public:
- class cl_group *desk;
- int drawn;
-public:
- cl_app(char *iname);
- ~cl_app(void);
- virtual int init(void);
- virtual class cl_gin *mk_input(void);
- virtual int *mk_palette(void);
- virtual class cl_group *mk_desk(class cl_box *ipos);
-
- virtual int handle_event(struct t_event *event);
- virtual int run(void);
-};
-
-
-#endif
-
-/* End of gui.src/appcl.h */
+++ /dev/null
-/*
- * Simulator of microcontrollers (bg.cc)
- *
- * Copyright (C) 1999,99 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 <stdlib.h>
-
-#include "bgcl.h"
-
-
-cl_bg::cl_bg(class cl_box *ipos, char *iname, class cl_app *iapp):
- cl_view(ipos, iname, iapp)
-{
- options&= ~OF_SELECTABLE;
-}
-
-int *
-cl_bg::mk_palette(void)
-{
- int *p;
-
- p= (int*)malloc(1*sizeof(int));
- p[0]= C_DSK_BG;
- return(p);
-}
-
-int
-cl_bg::draw(void)
-{
- int x, y, color= get_color(0);
-
- wmove(window, 0, 0);
- wattrset(window, color);
- for (y= 0; y < pos->h; y++)
- for (x= 0; x < pos->w; x++)
- waddch(window, ACS_CKBOARD);
- return(0);
-}
-
-
-/* End of gui.src/bg.cc */
+++ /dev/null
-/*
- * Simulator of microcontrollers (bgcl.h)
- *
- * Copyright (C) 1999,99 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@*/
-
-#ifndef BGCL_HEADER
-#define BGCL_HEADER
-
-
-#include "viewcl.h"
-#include "appcl.h"
-
-
-class cl_bg: public cl_view
-{
-public:
- cl_bg(class cl_box *ipos, char *iname, class cl_app *iapp);
- virtual int *mk_palette(void);
- virtual int draw(void);
-};
-
-
-#endif
-
-/* End of gui.src/bgcl.h */
+++ /dev/null
-/*
- * Simulator of microcontrollers (desk.cc)
- *
- * Copyright (C) 1999,99 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 "deskcl.h"
-#include "bgcl.h"
-
-
-int
-cl_desk::handle_event(struct t_event *event)
-{
- if (cl_group::handle_event(event))
- return(1);
- if (event->what == EV_KEY &&
- event->event.key == KEY_F(6))
- {
- select_next();
- return(1);
- }
- return(0);
-}
-
-int
-cl_desk::mk_views(class cl_group *ins_to)
-{
- class cl_box b(*pos);
-
- b.move_rel(0,1);
- b.grow(0,-2);
- insert(new cl_bg(&b, "background", app));
- return(0);
-}
-
-
-/* End of gui.src/desk.cc */
+++ /dev/null
-/*
- * Simulator of microcontrollers (deskcl.h)
- *
- * Copyright (C) 1999,99 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 "groupcl.h"
-
-
-class cl_desk: public cl_group
-{
-public:
- cl_desk(class cl_box *ipos, char *iname, class cl_app *iapp):
- cl_group(ipos, iname, iapp) {}
- virtual int mk_views(class cl_group *ins_to);
-
- virtual int handle_event(struct t_event *event);
-};
-
-
-/* End of gui.src/deskcl.h */
+++ /dev/null
-/*
- * Simulator of microcontrollers (event.cc)
- *
- * Copyright (C) 1999,99 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 "ddconfig.h"
-
-#include <curses.h>
-
-//#include <stdio.h>
-
-#include "eventcl.h"
-
-
-cl_input_src::cl_input_src(FILE *ifile, class cl_view *iview)
-{
- file= ifile;
- view= iview;
-}
-
-
-cl_gin::cl_gin(void)
-{
- FD_ZERO(&in_set);
- max_fdes= 0;
- inputs= new cl_list(1, 1);
-}
-
-cl_gin::~cl_gin(void)
-{
- delete inputs;
-}
-
-
-int
-cl_gin::add_input(FILE *ifile, class cl_view *iview)
-{
- int d= fileno(ifile);
-
- inputs->add(new cl_input_src(ifile, iview));
- if (d > max_fdes)
- max_fdes= d;
- FD_SET(d, &in_set);
- return(0);
-}
-
-class cl_input_src *
-cl_gin::get_input_src(int fdes)
-{
- int i;
-
- for (i= 0; i < inputs->count; i++)
- {
- class cl_input_src *s= (class cl_input_src *)(inputs->at(i));
- if (fileno(s->file) == fdes)
- return(s);
- }
- return(0);
-}
-
-int
-cl_gin::get_event(struct t_event *event)
-{
- fd_set set;
- //static struct timeval timeout= {0,0};
- wchar_t c;
-
- //FD_ZERO(&set);
- set= in_set;
- //FD_SET(fileno(stdin), &set);
- if(::select(/*fileno(stdin)*/max_fdes+1,
- &set, NULL, NULL,
- NULL/*&timeout*/) > 0)
- {
- int i;
- for (i= 0; i < inputs->count; i++)
- {
- class cl_input_src *s= (class cl_input_src *)(inputs->at(i));
- if (!s->file ||
- !(FD_ISSET(fileno(s->file), &set)))
- continue;
- if (s->view)
- {
- if (s->file)
- {
- c= fgetc(s->file);
- return(s->view->mk_event(event, s->file, c));
- }
- }
- else
- if ((c= getch()) > 0)
- {
- event->what= EV_KEY;
- event->event.key= c;
- return(1);
- }
- }
- }
-
- return(0);
-}
-
-
-/* End of gui.src/event.cc */
+++ /dev/null
-/*
- * Simulator of microcontrollers (eventcl.h)
- *
- * Copyright (C) 1999,99 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@*/
-
-#ifndef EVENTCL_HEADER
-#define EVENTCL_HEADER
-
-#include "ddconfig.h"
-
-#if FD_HEADER_OK
-# include HEADER_FD
-#endif
-
-#include "pobjcl.h"
-
-#include "viewcl.h"
-
-
-#define EV_NOTHING 0x0000
-#define EV_MOUSE_DOWN 0x0001
-#define EV_MOUSE_UP 0x0002
-#define EV_MOUSE_MOVE 0x0004
-#define EV_MOUSE_AUTO 0x0008
-#define EV_KEY 0x0010
-#define EV_COMMAND 0x0100
-#define EV_BROADCAST 0x0200
-
-// cathegories
-#define EV_MOUSE (EV_MOUSE_DOWN|EV_MOUSE_UP|EV_MOUSE_MOVE|EV_MOUSE_AUTO)
-#define EV_KEYBOARD EV_KEY
-#define EV_MESSAGE 0xff00
-
-#define CMD_QUIT 0
-
-struct t_event {
- int what;
- union {
- wchar_t key;
- struct {
- int cmd;
- long param;
- } msg;
- } event;
-};
-
-
-class cl_input_src: public cl_base
-{
-public:
- FILE *file;
- class cl_view *view;
- cl_input_src(FILE *ifile, class cl_view *iview);
-};
-
-class cl_gin: public cl_base
-{
-public:
- fd_set in_set;
- int max_fdes;
- cl_list *inputs;
-public:
- cl_gin(void);
- ~cl_gin(void);
-
- virtual int add_input(FILE *ifile, class cl_view *iview);
- virtual class cl_input_src *get_input_src(int fdes);
- virtual int get_event(struct t_event *event);
-};
-
-
-#endif
-
-/* End of gui.src/eventcl.h */
+++ /dev/null
-/*
- * Simulator of microcontrollers (frame.cc)
- *
- * Copyright (C) 1999,99 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 "ddconfig.h"
-
-#include <stdlib.h>
-#include "i_string.h"
-
-#include "framecl.h"
-#include "wincl.h"
-
-
-cl_frame::cl_frame(class cl_box *ipos, class cl_view *iwindow, char *iname,
- class cl_app *iapp):
- cl_view(ipos, iname, iapp)
-{
- win= iwindow;
- options&= ~OF_SELECTABLE;
-}
-
-int *
-cl_frame::mk_palette(void)
-{
- int *p;
-
- p= (int*)malloc(2*sizeof(int));
- p[0]= C_WIN_FPASSIVE;
- p[1]= C_WIN_FACTIVE;
- return(p);
-}
-
-int
-cl_frame::draw(void)
-{
- char *t;
- int color;
-
- color= get_color((win && (win->state&SF_SELECTED))?1:0);
- wattrset(window, color);
- box(window, ACS_VLINE, ACS_HLINE);
- if (!(t= strdup(((class cl_win *)win)->get_title())))
- return(0);
- if ((signed)strlen(t) > (pos->w)-4)
- t[(pos->w)-4]= '\0';
- mvwprintw(window, 0,((pos->w)-strlen(t))/2, "[%s]", t);
- free(t);
- app->drawn++;
- return(0);
-}
-
-
-/* End of gui.src/frame.cc */
+++ /dev/null
-/*
- * Simulator of microcontrollers (framecl.h)
- *
- * Copyright (C) 1999,99 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@*/
-
-#ifndef FRAMELCL_HEADER
-#define FRAMELCL_HEADER
-
-#include "viewcl.h"
-#include "appcl.h"
-
-
-class cl_frame: public cl_view
-{
- class cl_view *win;
-public:
- cl_frame(class cl_box *ipos, class cl_view *iwindow, char *iname,
- class cl_app *iapp);
- virtual int *mk_palette(void);
- virtual int draw(void);
-};
-
-
-#endif
-
-/* End of gui.src/framecl.h */
+++ /dev/null
-/*
- * Simulator of microcontrollers (group.cc)
- *
- * Copyright (C) 1999,99 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 "groupcl.h"
-#include "appcl.h"
-
-
-cl_group::cl_group(class cl_box *ipos, char *iname, class cl_app *iapp):
- cl_view(ipos, iname, iapp)
-{
- current= 0;
-}
-
-cl_group::cl_group(char *iname, class cl_app *iapp):
- cl_view(iname, iapp)
-{
- current= 0;
-}
-
-cl_group::~cl_group(void)
-{}
-
-int
-cl_group::init(void)
-{
- cl_view::init();
- mk_views(this);
- return(0);
-}
-
-int
-cl_group::mk_views(class cl_group *ins_to)
-{
- return(0);
-}
-
-
-/*
- * Make output by drawing all subviews
- */
-
-static void do_draw_view(class cl_view *view)
-{
- view->draw();
-}
-
-int
-cl_group::draw(void)
-{
- /*int i;
-
- for (i= 0; i < views->count; i++)
- {
- class cl_view *v= (class cl_view *)(views->at(i));
- v->draw();
- app->drawn++;
- }*/
- for_each(do_draw_view);
- return(0);
-}
-
-/*int
-cl_group::update(void)
-{
- draw();
- update_panels();
- doupdate();
-}*/
-
-
-int
-cl_group::handle_event(struct t_event *event)
-{
- int handled= 0;
-
- if (event->what & (EV_KEY|EV_COMMAND))
- {
- if (current)
- handled= current->handle_event(event);
- }
- else if (event->what & EV_MESSAGE)
- {
- class cl_view *v= last;
- do
- {
- handled= v->handle_event(event);
- v= v->next;
- }
- while (! handled &&
- v != last);
- }
- return(handled);
-}
-
-
-/*
- * Managing views
- */
-
-//class cl_view *
-void
-cl_group::insert(class cl_view *view)
-{
- /*if (view &&
- view->ok())
- {
- views->add_at(0, view);
- view->parent= this;
- view->select();
- //view->draw();
- return(view);
- }
- return(0);*/
- insert_before(view, first());
- if (view->options & OF_SELECTABLE)
- view->select();
- draw();
-}
-
-void
-cl_group::insert_before(class cl_view *view, class cl_view *target)
-{
- unsigned int ss;
-
- if (view &&
- !(view->parent) &&
- (!target ||
- target->parent == this))
- {
- ss= view->state;
- //view->hide();
- insert_view(view, target);
- /*if (ss & SF_VISIBLE)
- view->show();*/
- if (state & SF_ACTIVE)
- view->change_state(SF_ACTIVE, 1);
- }
-}
-
-void
-cl_group::insert_view(class cl_view *view, class cl_view *target)
-{
- view->parent= this;
- if (target)
- {
- target= target->prev();
- view->next= target->next;
- target->next= view;
- }
- else
- {
- if (!last)
- view->next= view;
- else
- {
- view->next= last->next;
- last->next= view;
- }
- last= view;
- }
-}
-
-class cl_view *
-cl_group::first(void)
-{
- if (!last)
- return(0);
- return(last->next);
-}
-
-
-/*class cl_view *
-cl_group::get_by_state(unsigned int what, int enabled)
-{
- int i;
-
- for (i= 0; i < views->count; i++)
- {
- class cl_view *v= (class cl_view *)(views->at(i));
- if ((enabled &&
- (state&what))
- ||
- (!enabled &&
- ((~state)&what))
- )
- return(v);
- }
- return(0);
-}*/
-
-/*int
-cl_group::select(void)
-{
-}*/
-
-/*int
-cl_group::unselect(void)
-{
-}*/
-
-int
-cl_group::select_next()
-{
- /* int start, i;
- class cl_view *v;
-
- if (views->count <= 1)
- return(1);
- if (current)
- start= views->index_of(current);
- else
- if ((v= get_by_state(SF_SELECTED, 1)))
- start= views->index_of(v);
- else
- if ((v= get_by_state(SF_FOCUSED, 1)))
- start= views->index_of(v);
- else
- start= 0;
- i= (start+1)%(views->count);
- while (i != start)
- {
- v= (class cl_view *)(views->at(i));
- if ((v->options & OF_SELECTABLE) &&
- v->select())
- {
- //update();
- return(1);
- }
- i= (i+1)%(views->count);
- }*/
- return(0);
-}
-
-int
-cl_group::select_prev()
-{
- /* int start, i;
- class cl_view *v;
-
- if (views->count <= 1)
- return(1);
- if (current)
- start= views->index_of(current);
- else
- if ((v= get_by_state(SF_SELECTED, 1)))
- start= views->index_of(v);
- else
- if ((v= get_by_state(SF_FOCUSED, 1)))
- start= views->index_of(v);
- else
- start= 0;
- i= start-1; if (i < 0) i= views->count-1;
- while (i != start)
- {
- v= (class cl_view *)(views->at(i));
- if ((v->options & OF_SELECTABLE) &&
- v->select())
- {
- //update();
- return(1);
- }
- i= start-1; if (i < 0) i= views->count-1;
- }*/
- return(0);
-}
-
-class cl_view *
-cl_group::current_sub_view(void)
-{
- return(current);
-}
-
-void
-cl_group::for_each(void (*func)(class cl_view *view))
-{
- class cl_view *v;
-
- if (!last)
- return;
- v= last->next;
- do
- {
- func(v);
- v= v->next;
- }
- while (v != last);
-}
-
-void
-cl_group::set_current(class cl_view *view)
-{
- //current= view;
- if (current == view)
- return;
- //lock();
- /*focus_view(view, 0);*/
- if ((state & SF_FOCUSED) &&
- (current != 0))
- current->change_state(SF_FOCUSED, 0);
- //if (mode!=ENTER_SELECT) select_view(current, 0);
- if (current)
- current->change_state(SF_SELECTED, 0);
- //if (mode!=LEAVE_SELECT) select_view(view, 1);
- if (view)
- view->change_state(SF_SELECTED, 1);
- //focuse_view(view, 1);
- if ((state & SF_FOCUSED) &&
- (view != 0))
- view->change_state(SF_SELECTED, 1);
- current= view;
- //unlock();
-}
-
-/*int
-cl_group::terminal_view(void)
-{
- return(views->count == 0);
-}*/
-
-static unsigned int grp_what, grp_en;
-
-static void
-do_set_state(class cl_view *v)
-{
- v->change_state(grp_what, grp_en);
-}
-
-void
-cl_group::change_state(unsigned int what, int enable)
-{
- cl_view::change_state(what, enable);
- /*if (enable &&
- (what & SF_SELECTED))
- {
- class cl_view *v= get_by_state(SF_SELECTED, 1);
- if (v)
- {
- current= v;
- current->change_state(SF_FOCUSED, 1);
- current->change_state(SF_SELECTED, 1);
- }
- else
- {
- if ((v= get_by_state(SF_FOCUSED, 1)))
- {
- current= v;
- current->change_state(SF_SELECTED, 1);
- }
- }
- }*/
- switch (what)
- {
- case SF_ACTIVE:
- //lock();
- grp_what= what;
- grp_en= enable;
- for_each(do_set_state);
- //unlock();
- break;
- case SF_FOCUSED:
- if (current)
- current->change_state(SF_FOCUSED, enable);
- break;
- }
- draw();
-}
-
-
-/* End of gui.src/group.cc */
+++ /dev/null
-/*
- * Simulator of microcontrollers (groupcl.h)
- *
- * Copyright (C) 1999,99 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@*/
-
-#ifndef GROUPCL_HEADER
-#define GROUPCL_HEADER
-
-#include "viewcl.h"
-
-class cl_group: public cl_view
-{
-public:
- class cl_view *current;
-
-public:
- cl_group(class cl_box *ipos, char *iname, class cl_app *iapp);
- cl_group(char *iname, class cl_app *iapp);
- ~cl_group(void);
- virtual int init(void);
- virtual int mk_views(class cl_group *ins_to);
- virtual int is_group(void) {return(1);}
-
- virtual int draw(void);
- //virtual int update(void);
-
- virtual int handle_event(struct t_event *event);
-
- virtual /*class cl_view **/void insert(class cl_view *view);
- virtual void insert_before(class cl_view *view, class cl_view *target);
- virtual void insert_view(class cl_view *view, class cl_view *target);
- virtual class cl_view *first(void);
- virtual void for_each(void (*func)(class cl_view *view));
- //virtual class cl_view *get_by_state(unsigned int what, int enabled);
- //virtual int select(void);
- //virtual int unselect(void);
- virtual int select_next();
- virtual int select_prev();
- virtual class cl_view *current_sub_view(void);
- virtual void set_current(class cl_view *view);
- //virtual int terminal_view(void);
- virtual void change_state(unsigned int what, int enable);
-};
-
-
-#endif
-
-/* End of gui.src/groupcl.h */
+++ /dev/null
-/*
- * Simulator of microcontrollers (label.cc)
- *
- * Copyright (C) 1999,99 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 "ddconfig.h"
-
-#include <stdlib.h>
-#include "i_string.h"
-
-#include "labelcl.h"
-
-
-cl_label::cl_label(class cl_box *ipos, class cl_app *iapp, char *ilabel):
- cl_view(ipos, "label", iapp)
-{
- options&= ~OF_SELECTABLE;
- if (!ilabel ||
- !(*ilabel))
- label= strdup("");
- else
- label= strdup(ilabel);
-}
-
-cl_label::~cl_label(void)
-{
- free(label);
-}
-
-int *
-cl_label::mk_palette(void)
-{
- int *p;
-
- p= (int*)malloc(1*sizeof(int));
- p[0]= C_WIN_NORMAL;
- return(p);
-}
-
-int
-cl_label::draw(void)
-{
- int color= get_color(0);
-
- cl_view::draw();
- wattrset(window, color);
- mvwprintw(window, 0,0, "%s", label);
- return(0);
-}
-
-
-/* End of gui.src/label.cc */
+++ /dev/null
-/*
- * Simulator of microcontrollers (labelcl.h)
- *
- * Copyright (C) 1999,99 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@*/
-
-#ifndef LABELCL_HEADER
-#define LABELCL_HEADER
-
-
-#include "viewcl.h"
-#include "appcl.h"
-
-
-class cl_label: public cl_view
-{
-public:
- char *label;
-public:
- cl_label(class cl_box *ipos, class cl_app *iapp, char *ilabel);
- ~cl_label(void);
- virtual int *mk_palette(void);
- virtual int draw(void);
-};
-
-
-#endif
-
-/* End of gui.src/labelcl.h */
+++ /dev/null
-/*
- * Simulator of microcontrollers (palette.h)
- *
- * Copyright (C) 1999,99 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@*/
-
-#ifndef PALETTE_HEADER
-#define PALETTE_HEADER
-
-
-#define C_DSK_BG 1
-#define C_DSK_NORMAL 2
-#define C_DSK_DISABLED 3
-
-#define C_WIN 8
-#define C_WIN_FPASSIVE 0
-#define C_WIN_FACTIVE 1
-#define C_WIN_NORMAL 5
-#define C_WIN_SELECTED 6
-
-#endif
-
-/* End of gui.src/palette.h */
+++ /dev/null
-/*
- * Simulator of microcontrollers (@@F@@)
- *
- * Copyright (C) @@S@@,@@Y@@ 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. */
+++ /dev/null
-#
-# uCsim gui.src/portmon.src/Makefile
-#
-# (c) Drotos Daniel, Talker Bt. 1999
-#
-
-SHELL = /bin/sh
-CXX = @CXX@
-CPP = @CPP@
-CXXCPP = @CXXCPP@
-RANLIB = @RANLIB@
-INSTALL = @INSTALL@
-
-PRJDIR = ../..
-PKGDIR = ../
-
-DEFS = $(subs -DHAVE_CONFIG_H,,@DEFS@)
-CPPFLAGS = @CPPFLAGS@ -I. -I$(PRJDIR) -I$(PKGDIR)
-CFLAGS = @CFLAGS@ -Wall
-CXXFLAGS = @CXXFLAGS@ -Wall
-M_OR_MM = @M_OR_MM@
-
-LIBS = -L$(PRJDIR) -L$(PKGDIR) -lgui @CURSES_LIBS@ -lutil @LIBS@
-
-curses_ok = @curses_ok@
-
-prefix = @prefix@
-exec_prefix = @exec_prefix@
-bindir = @bindir@
-libdir = @libdir@
-datadir = @datadir@
-includedir = @includedir@
-mandir = @mandir@
-man1dir = $(mandir)/man1
-man2dir = $(mandir)/man2
-infodir = @infodir@
-srcdir = @srcdir@
-
-OBJECTS = portmon.o \
- pmapp.o port.o
-
-
-# Compiling entire program or any subproject
-# ------------------------------------------
-all: checkconf otherlibs portmon.src
-
-
-# Compiling and installing everything and runing test
-# ---------------------------------------------------
-install: all installdirs
- $(INSTALL) -s portmon $(bindir)
-
-
-# Deleting all the installed files
-# --------------------------------
-uninstall:
- rm -f $(bindir)/portmon
-
-
-# Performing self-test
-# --------------------
-check:
-
-
-# Performing installation test
-# ----------------------------
-installcheck:
-
-
-# Creating installation directories
-# ---------------------------------
-installdirs:
- test -d $(bindir) || $(INSTALL) -d $(bindir)
-
-
-# Creating dependencies
-# ---------------------
-dep: Makefile.dep
-
-Makefile.dep: *.cc *.h $(PRJDIR)/*.h $(PKGDIR)/*.h
- $(CXXCPP) $(CPPFLAGS) $(M_OR_MM) *.cc >Makefile.dep
-
-include Makefile.dep
-include clean.mk
-
-#parser.cc: parser.y
-
-#plex.cc: plex.l
-
-# My rules
-# --------
-ifeq ($(curses_ok),yes)
-portmon.src: portmon
-else
-portmon.src:
-endif
-
-portmon: $(OBJECTS) $(PRJDIR)/*.a $(PKGDIR)/*.a
- $(CXX) $(CXXFLAGS) -o portmon $(OBJECTS) $(LIBS)
-
-ifeq ($(curses_ok),yes)
-otherlibs:
- cd $(PRJDIR) && $(MAKE) libs
- cd $(PKGDIR) && $(MAKE) libs
-else
-otherlibs:
-endif
-
-.cc.o:
- $(CXX) $(CXXFLAGS) $(CPPFLAGS) -c $< -o $@
-
-.y.cc:
- rm -f $*.cc $*.h
- $(YACC) -d $<
- mv y.tab.c $*.cc
- mv y.tab.h $*.h
-
-.l.cc:
- rm -f $*.cc
- $(LEX) -t $< >$*.cc
-
-
-# Remaking configuration
-# ----------------------
-checkconf:
- @if [ -f $(PRJDIR)/devel ]; then\
- $(MAKE) -f conf.mk srcdir="$(srcdir)" PRJDIR="$(PRJDIR)" freshconf;\
- fi
-
-# End of gui.src/portmon.src/Makefile.in
+++ /dev/null
-# uCsim gui.src/portmon.src/clean.mk
-
-# Deleting all files created by building the program
-# --------------------------------------------------
-clean:
- rm -f *core *[%~] *.[oa]
- rm -f .[a-z]*~
- rm -f portmon
-
-
-# Deleting all files created by configuring or building the program
-# -----------------------------------------------------------------
-distclean: clean
- rm -f config.cache config.log config.status
- rm -f Makefile *.dep
-
-
-# Like clean but some files may still exist
-# -----------------------------------------
-mostlyclean: clean
-
-
-# Deleting everything that can reconstructed by this Makefile. It deletes
-# everything deleted by distclean plus files created by bison, etc.
-# -----------------------------------------------------------------------
-realclean: distclean
-
-# End of gui.src/portmon.src/clean.mk
+++ /dev/null
-# uCsim gui.src/portmon.src/conf.mk
-
-#
-# Makefile targets to remake configuration
-#
-
-freshconf: Makefile
-
-Makefile: $(srcdir)/Makefile.in $(PRJDIR)/configure.in
- cd $(PRJDIR) && $(SHELL) ./config.status
-
-# End of gui.src/portmon.src/conf.mk
+++ /dev/null
-/*
- * Simulator of microcontrollers (pmapp.cc)
- *
- * Copyright (C) 1999,99 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 "wincl.h"
-#include "labelcl.h"
-
-#include "pmappcl.h"
-#include "portcl.h"
-
-
-int
-cl_pmapp::mk_views(class cl_group *ins_to)
-{
- class cl_view *v;
- //class cl_win *w;
- class cl_box *b;
-
- b= new cl_box(0,0,0,0);
-
- if (!ins_to)
- return(0);
-
- b->set(43,2,14,13);
- v= new cl_portw(b, 3, "Port #3", this);
- v->init();
- ins_to->insert(v);
-
- b->set(29,2,14,13);
- v= new cl_portw(b, 2, "Port #2", this);
- v->init();
- ins_to->insert(v);
- /*
- b->set(15,2,14,13);
- ins_to->insert(v= new cl_portw(b, 1, "Port #1", this));
- v->init();
-
- b->set(1,2,14,13);
- ins_to->insert(v= new cl_portw(b, 0, "Port #0", this));
- v->init();
-
- b->set(59,3,19,11);
- v= new cl_label(b, this,
-"Next win: n,TAB\nPrev win: p\nCursor : u,d,l,r,\n arrows\nToggle : space,CR\nQuit : q");
- v->init();
- b->move_rel(-1,-1);
- b->grow(2,2);
-
- b->set(58,2,21,13);
- w= new cl_win(b, "Help", this);
- w->options&= ~OF_SELECTABLE;
- w->init();
- w->insert(v);
- ins_to->insert(w);
- w->draw();
- */
- delete b;
-
- return(0);
-}
-
-int *
-cl_pmapp::mk_palette(void)
-{
- return(cl_app::mk_palette());
-}
-
-int
-cl_pmapp::handle_event(struct t_event *event)
-{
- if (event->what == EV_KEY)
- switch (event->event.key)
- {
- case 'q':
- event->what= EV_COMMAND;
- event->event.msg.cmd= CMD_QUIT;
- return(0);
- case 'p':
- desk->select_prev();
- return(1);
- case 'n': case '\t':
- desk->select_next();
- return(1);
-
- }
- return(cl_app::handle_event(event));
-}
-
-
-/* End of gui.src/portmon.src/pmapp.cc */
+++ /dev/null
-/*
- * Simulator of microcontrollers (pmappcl.h)
- *
- * Copyright (C) 1999,99 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@*/
-
-#ifndef PMAPPCL_HEADER
-#define PMAPPCL_HEADER
-
-#include "appcl.h"
-
-
-class cl_pmapp: public cl_app
-{
-public:
- cl_pmapp(char *iname): cl_app(iname) {}
-
- virtual int mk_views(class cl_group *ins_to);
- virtual int *mk_palette(void);
-
- virtual int handle_event(struct t_event *event);
-};
-
-
-#endif
-
-/* End of gui.src/portmon.src/pmappcl.h */
+++ /dev/null
-/*@1@*/
-
-#include "portcl.h"
-
-
-/*
- * Viewer of the port
- */
-
-cl_port::cl_port(class cl_box *ipos, int iid, char *iname, class cl_app *iapp):
- cl_view(ipos, iname, iapp)
-{
- id= iid;
- sfr= 0;
- pin= 0;
- curs_x= curs_y= 0;
-}
-
-int
-cl_port::draw(void)
-{
- int x, y, mask, hc, nc;
-
- cl_view::draw();
-
- nc= hc= get_color(C_WIN_NORMAL);
- if (state & SF_SELECTED)
- hc= get_color(C_WIN_SELECTED);
- mvwprintw(window, 0,0, "SFR PORT PIN");
- for (x= 0, mask= 0x80, y= 1; mask; mask>>= 1,y++)
- {
- wattrset(window, (curs_x)?nc:(curs_y==y-1?hc:nc));
- mvwprintw(window, y,x, " %c", (sfr&mask)?'1':'0');
- }
- wattrset(window, nc);
- for (x= 5, mask= 0x80, y= 1; mask; mask>>= 1,y++)
- mvwprintw(window, y,x, "%c", (sfr&pin&mask)?'1':'0');
- for (x=9, mask= 0x80, y= 1; mask; mask>>= 1,y++)
- {
- wattrset(window, curs_x?(curs_y==y-1?hc:nc):nc);
- mvwprintw(window, y,x, "%c ", (pin&mask)?'1':'0');
- }
- wattrset(window, nc);
- mvwprintw(window, 9,0, "0x%02x 0x%02x", sfr, pin);
- mvwprintw(window, 10,4, "0x%02x", sfr&pin);
- app->drawn++;
- return(0);
-}
-
-int
-cl_port::handle_event(struct t_event *event)
-{
- if (event->what == EV_KEY)
- switch (event->event.key)
- {
- case KEY_HOME:
- curs_y= 0; draw(); return(1);
- case KEY_A1:
- curs_x= curs_y= 0; draw(); return(1);
- case KEY_A3:
- curs_y= 0; curs_x= 1; draw(); return(1);
- case KEY_C1:
- curs_x= 0; curs_y= 7; draw(); return(1);
- case KEY_C3:
- curs_x= 1; curs_y= 7; draw(); return(1);
- case KEY_LEFT: case KEY_RIGHT: case 'j': case 'k': case 'l': case 'r':
- if (curs_x)
- curs_x= 0;
- else
- curs_x= 1;
- draw();
- return(1);
- case KEY_UP: case 'u':
- curs_y--;
- if (curs_y < 0)
- curs_y= 7;
- draw();
- return(1);
- case KEY_DOWN: case 'd':
- curs_y++;
- if (curs_y > 7)
- curs_y= 0;
- draw();
- return(1);
- case ' ': case '\n': case '\r':
- if (curs_x)
- toggle_pin(7-curs_y);
- else
- toggle_sfr(7-curs_y);
- return(1);
- }
- return(cl_view::handle_event(event));
-}
-
-int
-cl_port::toggle_sfr(int bitnr)
-{
- int mask= 1<<bitnr;
- sfr^= mask;
- draw();
- return(0);
-}
-
-int
-cl_port::toggle_pin(int bitnr)
-{
- int mask= 1<<bitnr;
- pin^= mask;
- draw();
- return(0);
-}
-
-/*
- * Window to show port viewer
- ******************************************************************************
- */
-
-cl_portw::cl_portw(class cl_box *ipos, int iid, char *ititle,
- class cl_app *iapp):
- cl_win(ipos, ititle, iapp)
-{
- id= iid;
-}
-
-class cl_view *
-cl_portw::mk_intern(class cl_box *ipos)
-{
- char n[100]= "";
-
- sprintf(n, "port%dviewer", id);
- class cl_view *v= new cl_port(ipos, id, n, app);
- v->init();
- return(v);
-}
-
-int
-cl_portw::handle_event(struct t_event *event)
-{
- return(cl_win::handle_event(event));
-}
-
-
-/* End of gui.src/portmap.src/port.cc */
+++ /dev/null
-/*
- * Simulator of microcontrollers (portcl.h)
- *
- * Copyright (C) 1999,99 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@*/
-
-#ifndef PORTCL_HEADER
-#define PORTCL_HEADER
-
-#include "viewcl.h"
-#include "wincl.h"
-
-
-class cl_port: public cl_view
-{
-public:
- int id;
- int sfr, pin;
- int curs_x, curs_y;
-public:
- cl_port(class cl_box *ipos, int iid, char *iname, class cl_app *iapp);
-
- virtual int draw(void);
- virtual int handle_event(struct t_event *event);
- int toggle_sfr(int bitnr);
- int toggle_pin(int bitnr);
-};
-
-class cl_portw: public cl_win
-{
-public:
- int id;
-public:
- cl_portw(class cl_box *ipos, int iid, char *ititle, class cl_app *iapp);
- virtual class cl_view *mk_intern(class cl_box *ipos);
-
- virtual int handle_event(struct t_event *event);
-};
-
-
-#endif
-
-/* End of gui.src/portmon.src/portcl.h */
+++ /dev/null
-/*
- * Simulator of microcontrollers (portmon.cc)
- *
- * Copyright (C) 1999,99 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 <curses.h>
-
-#include "pmappcl.h"
-
-
-class cl_pmapp *app;
-
-void xx(class cl_view *v)
-{
- fprintf(stderr,"%s 0x%x ", v->name, v->state);
-}
-
-int
-main(int argc, char *argv)
-{
- app= new cl_pmapp("portmon");
- app->init();
- {
- class cl_view *v= app;
- while (v)
- {
- if (v->is_group())
- {
- class cl_group *g= (class cl_group *)v;
- fprintf(stderr, "%s->%s\n", g->name,(g->current)?(g->current->name):"none");
- g->for_each(xx);
- fprintf(stderr, "\n");
- v= g->current;
- }
- else
- v= 0;
- }
- }
- app->run();
- //getch();
- delete app;
- return(0);
-}
-
-
-/* End of gui.src/portmon.src/portmon.cc */
+++ /dev/null
-/*
- * Simulator of microcontrollers (view.cc)
- *
- * Copyright (C) 1999,99 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 "ddconfig.h"
-
-#include <stdlib.h>
-#include "i_string.h"
-
-#include "appcl.h"
-
-
-/*
- * Box
- */
-
-cl_box::cl_box(int ix, int iy, int iw, int ih):
- cl_base()
-{
- x= ix;
- y= iy;
- w= iw;
- h= ih;
-}
-
-void
-cl_box::set(int ix, int iy, int iw, int ih)
-{
- x= ix;
- y= iy;
- w= iw;
- h= ih;
-}
-
-void
-cl_box::move_rel(int dx, int dy)
-{
- x+= dx;
- y+= dy;
-}
-
-void
-cl_box::grow(int dw, int dh)
-{
- w+= dw;
- h+= dh;
-}
-
-
-/*
- * Astbract of a viewer
- ******************************************************************************
- */
-
-cl_view::cl_view(class cl_box *ipos, char *iname, class cl_app *iapp):
- cl_base()
-{
- pos= new cl_box(ipos->x,ipos->y, ipos->w,ipos->h);
- if ((window= newwin(pos->h,pos->w, pos->y,pos->x)))
- {
- leaveok(window, TRUE);
- panel= new_panel(window);
- }
- else
- {
- panel= 0;
- delwin(window);
- window= 0;
- }
- parent= 0;
- next= last= 0;
- app= iapp;
- state= SF_NOTHING;
- options= OF_SELECTABLE;
- if (!iname ||
- !(*iname))
- {
- name= (char*)malloc(100);
- sprintf(name, "view%p", this);
- }
- else
- name= strdup(iname);
-}
-
-cl_view::cl_view(char *iname, class cl_app *iapp):
- cl_base()
-{
- window= 0;
- panel= 0;
- parent= 0;
- next= last= 0;
- app= iapp;
- state= SF_NOTHING;
- options= OF_SELECTABLE;
- if (!iname ||
- !(*iname))
- {
- name= (char*)malloc(100);
- sprintf(name, "view%p", this);
- }
- else
- name= strdup(iname);
-}
-
-cl_view::~cl_view(void)
-{
- if (panel)
- del_panel(panel);
- if (window)
- delwin(window);
- if (palette)
- free(palette);
- if (name)
- free(name);
-}
-
-int
-cl_view::init(void)
-{
- input= mk_input();
- palette= mk_palette();
- //draw();
- return(0);
-}
-
-class cl_gin *
-cl_view::mk_input(void)
-{
- return(0);
-}
-
-int *
-cl_view::mk_palette(void)
-{
- return(0);
-}
-
-int
-cl_view::ok(void)
-{
- return(window && panel);
-}
-
-
-/*
- * Make output into the view
- */
-
-int
-cl_view::draw(void)
-{
- int color, x, y;
-
- color= get_color(palette?0:C_WIN_NORMAL);
-
- wattrset(window, color);
- for (y= 0; y < pos->h; y++)
- for (x= 0; x < pos->w; x++)
- mvwaddch(window, y,x, ' ');
- app->drawn++;
-
- return(0);
-}
-
-int
-cl_view::update(void)
-{
- draw();
- update_panels();
- doupdate();
- return(0);
-}
-
-int
-cl_view::get_color(int color)
-{
- int *p;
- class cl_view *v;
-
- v= this;
- while (v)
- {
- p= v->get_palette();
- if (p)
- color= p[color];
- v= v->parent;
- }
- return(color);
-}
-
-int *
-cl_view::get_palette(void)
-{
- return(palette);
-}
-
-
-/*
- * Event handling
- */
-
-int
-cl_view::get_event(struct t_event *event)
-{
- if (parent)
- return(parent->get_event(event));
- if (input)
- return(input->get_event(event));
- return(0);
-}
-
-int
-cl_view::handle_event(struct t_event *event)
-{
- return(0);
-}
-
-int
-cl_view::unhandled(struct t_event *event)
-{
- return(0);
-}
-
-int
-cl_view::mk_event(struct t_event *event, FILE *f, int key)
-{
- event->what= EV_KEY;
- event->event.key= key;
- return(1);
-}
-
-
-class cl_view *
-cl_view::prev(void)
-{
- class cl_view *v;
-
- v= next;
- while (v != this)
- v= v->next;
- return(v);
-}
-
-class cl_view *
-cl_view::prev_view(void)
-{
- if (parent &&
- parent->first() == this)
- return(0);
- else
- return(prev());
-}
-
-
-int
-cl_view::select(void)
-{
- /* class cl_view *v;
-
- if (!(options & OF_SELECTABLE))
- return(0);
- if (state & SF_SELECTED)
- return(1);
- if (parent &&
- !(parent->select()))
- return(0);
- if (parent)
- {
- v= parent->current_sub_view();
- if (v &&
- v != this)
- v->unselect();
- parent->set_current(this);
- }
- change_state(SF_FOCUSED, 1);
- change_state(SF_SELECTED, 1);
- draw();
- return(1);*/
- if (options & OF_SELECTABLE)
- if (parent)
- parent->set_current(this);
- return(1);
-}
-
-int
-cl_view::unselect(void)
-{
- class cl_view *csv= current_sub_view();
- if (csv &&
- !(csv->unselect()))
- return(0);
- if (!terminal_view())
- change_state(SF_FOCUSED, 0);
- change_state(SF_SELECTED, 0);
- draw();
- return(1);
-}
-
-class cl_view *
-cl_view::current_sub_view(void)
-{
- return(0);
-}
-
-int
-cl_view::terminal_view(void)
-{
- return(1);
-}
-
-void
-cl_view::change_state(unsigned int what, int enable)
-{
- if (enable)
- state|= what;
- else
- state&= ~what;
- if (parent)
- {
- switch (what)
- {
- case SF_FOCUSED:
- //reset_cursor();
- /*message(parent, EV_BROADCAST,
- (enable)?CM_RECEIVED_FOCUS:CM_RELEASED_FOCUS, this);*/
- break;
- }
- }
- draw();
-}
-
-
-/* End of gui.src/view.cc */
+++ /dev/null
-/*
- * Simulator of microcontrollers (viewcl.h)
- *
- * Copyright (C) 1999,99 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@*/
-
-#ifndef VIEWCL_HEADER
-#define VIEWCL_HEADER
-
-#include <curses.h>
-#include <panel.h>
-
-#include "pobjcl.h"
-
-#include "palette.h"
-#include "eventcl.h"
-
-
-// Status flags
-#define SF_NOTHING 0x0000
-#define SF_SELECTED 0x0001
-#define SF_FOCUSED 0x0002
-#define SF_ACTIVE 0x0004
-
-// Option flags
-#define OF_NOTHING 0x0000
-#define OF_SELECTABLE 0x0001
-
-
-class cl_box: public cl_base
-{
-public:
- int x, y;
- int w, h;
-public:
- cl_box(int ix, int iy, int iw, int ih);
- void set(int ix, int iy, int iw, int ih);
- void move_rel(int dx, int dy);
- void grow(int dw, int dh);
-};
-
-
-class cl_app;
-class cl_group;
-
-class cl_view: public cl_base
-{
-public:
- char *name;
- WINDOW *window;
- PANEL *panel;
- class cl_group *parent;
- class cl_view *next, *last;
- class cl_app *app;
- class cl_gin *input;
- class cl_box *pos;
- int *palette;
- unsigned int state; // See SF_XXXX
- unsigned int options; // See OF_XXXX
-public:
- cl_view(class cl_box *ipos, char *iname, class cl_app *iapp);
- cl_view(char *name, class cl_app *iapp);
- ~cl_view(void);
- virtual int init(void);
- virtual class cl_gin *mk_input(void);
- virtual int *mk_palette(void);
- virtual int is_group(void) {return(0);}
-
- virtual int ok(void);
- virtual int draw(void);
- virtual int update(void);
- virtual int get_color(int color);
- virtual int *get_palette(void);
-
- virtual int get_event(struct t_event *event);
- virtual int handle_event(struct t_event *event);
- virtual int unhandled(struct t_event *event);
- virtual int mk_event(struct t_event *event, FILE *f, int key);
-
- virtual class cl_view *prev(void);
- virtual class cl_view *prev_view(void);
-
- virtual int select(void);
- virtual int unselect(void);
- virtual class cl_view *get_by_state(unsigned int what, int enabled)
- {return(0);}
- virtual int select_next() {return(0);}
- virtual class cl_view *current_sub_view(void);
- virtual void set_current(class cl_view *view) {}
- virtual int terminal_view(void);
- virtual void change_state(unsigned int what, int enable);
-};
-
-
-#endif
-
-/* End of gui.src/viewcl.h */
+++ /dev/null
-/*
- * Simulator of microcontrollers (win.cc)
- *
- * Copyright (C) 1999,99 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 "ddconfig.h"
-
-#include <stdlib.h>
-#include "i_string.h"
-
-#include "wincl.h"
-
-
-cl_win::cl_win(class cl_box *ipos, char *ititle, class cl_app *iapp):
- cl_group(ipos, 0, iapp)
-{
- title= strdup(ititle);
- free(name);
- if (!ititle ||
- !(*ititle))
- {
- name= (char*)malloc(100);
- sprintf(name, "win%p", this);
- }
- else
- name= strdup(ititle);
-}
-
-cl_win::~cl_win(void)
-{
- if (frame)
- delete frame;
- if (title)
- free(title);
-}
-
-int
-cl_win::init(void)
-{
- cl_group::init();
- if ((frame= mk_frame(pos)))
- insert(frame);
- class cl_box *b= new cl_box(pos->x,pos->y, pos->w,pos->h);
- b->move_rel(1,1);
- b->grow(-2,-2);
- if ((intern= mk_intern(b)))
- insert(intern);
- //draw();
- delete b;
- return(0);
-}
-
-int *
-cl_win::mk_palette(void)
-{
- int *p= (int*)malloc(8*sizeof(int)), i;
- for (i= 0; i < 8; i++)
- p[i]= i+C_WIN;
- return(p);
-}
-
-class cl_frame *
-cl_win::mk_frame(class cl_box *ipos)
-{
- char n[100]= "";
-
- sprintf(n, "frameof_\"%s\"", name);
- class cl_frame *f= new cl_frame(ipos, this, n, app);
- f->init();
- return(f);
-}
-
-class cl_view *
-cl_win::mk_intern(class cl_box *ipos)
-{
- class cl_view *v= new cl_view(ipos, 0, app);
- v->init();
- v->options&= ~OF_SELECTABLE;
- return(v);
-}
-
-char *
-cl_win::get_title(void)
-{
- return(title);
-}
-
-
-/* End of gui.src/win.cc */
+++ /dev/null
-/*
- * Simulator of microcontrollers (wincl.h)
- *
- * Copyright (C) 1999,99 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@*/
-
-#ifndef WINCL_HEADER
-#define WINCL_HEADER
-
-#include "groupcl.h"
-#include "framecl.h"
-
-
-class cl_win: public cl_group
-{
-public:
- class cl_view *frame;
- class cl_view *intern;
- char *title;
-public:
- cl_win(class cl_box *ipos, char *ititle, class cl_app *iapp);
- ~cl_win(void);
- virtual int init(void);
- virtual int *mk_palette(void);
- virtual class cl_frame *mk_frame(class cl_box *ipos);
- virtual class cl_view *mk_intern(class cl_box *ipos);
-
- virtual char *get_title(void);
-};
-
-
-#endif
-
-/* End of gui.src/wincl.h */
+++ /dev/null
-/*
- * Simulator of microcontrollers (cmd.cc)
- *
- * Copyright (C) 1999,99 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 "ddconfig.h"
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <ctype.h>
-#include <errno.h>
-#include "i_string.h"
-
-#include "uccl.h"
-#include "globals.h"
-
-#include "dump.h"
-#include "go.h"
-#include "cmd_brk.h"
-#include "set.h"
-#include "where.h"
-#include "optioncl.h"
-#include "show.h"
-
-#include "cmd.h"
-
-
-/* Table is defined at the end of this file */
-
-
-/*
- * HELP
- */
-
-static bool
-cmd_help(char *cmd, class cl_uc *uc, class cl_sim *sim)
-{
- int i;
-
- i= 0;
- while (cmd_table[i].name != NULL)
- {
- if (cmd_table[i].help != NULL)
- sim->cmd->printf("%s\n", cmd_table[i].help);
- i++;
- }
- sim->cmd->printf("----\nSet of new commands:\n");
- for (i= 0; i < sim->cmdset->count; i++)
- {
- class cl_cmd *cmd= (class cl_cmd *)(sim->cmdset->at(i));
- sim->cmd->printf("%s\n", cmd->short_help);
- }
- return(DD_FALSE);
-}
-
-
-/*
- * GET OPTION [opt]
- */
-
-static bool
-cmd_get_option(char *cmd, class cl_uc *uc, class cl_sim *sim)
-{
- char *s;
- int i;
- class cl_option *o;
-
- s= strtok(NULL, delimiters);
- for (i= 0; i < uc->options->count; i++)
- {
- o= (class cl_option *)(uc->options->at(i));
- if (!s ||
- !strcmp(s, o->id))
- {
- sim->cmd->printf("%s ", o->id);
- o->print(sim->cmd->actual_console);
- sim->cmd->printf(" %s\n", o->help);
- }
- }
- return(DD_FALSE);
-}
-
-
-/*
- * SET OPTION opt value
- */
-
-static bool
-cmd_set_option(char *cmd, class cl_uc *uc, class cl_sim *sim)
-{
- char *s, *id;
- int i;
- class cl_option *o;
-
- if ((id= strtok(NULL, delimiters)) == NULL)
- {
- sim->cmd->printf("Name of option has not given.\n");
- return(DD_FALSE);
- }
- if ((s= strtok(NULL, delimiters)) == NULL)
- {
- sim->cmd->printf("Value has not given.\n");
- return(DD_FALSE);
- }
- for (i= 0; i < uc->options->count; i++)
- {
- o= (class cl_option *)(uc->options->at(i));
- if (!strcmp(id, o->id))
- {
- o->set_value(s);
- break;
- }
- }
- return(DD_FALSE);
-}
-
-
-/*
- * Table of commands and their names
- */
-
-struct cmd_entry cmd_table[]=
-{
- {"g" , cmd_go, DD_FALSE,
- "g [start [stop]] Go"},
-
- {"stop", cmd_stop, DD_FALSE,
- "stop Stop"},
-
- {"pc", cmd_pc, DD_FALSE,
- "pc [address] Get/set content of PC"},
-
- {"s" , cmd_step, DD_TRUE,
- "s [step] Step"},
-
- {"n" , cmd_next, DD_TRUE,
- "n [step] Next"},
-
- {"bse", cmd_brk_sete, DD_FALSE,
- "bse wi|ri|wx|rx|ws|rs|rc f|d addr [hit]\n"
- " Set EVENT Breakpoint"},
-
- {"bde", cmd_brk_dele, DD_FALSE,
- "bde wi|ri|wx|rx|ws|rs|rc addr\n"
- " Delete EVENT Breakpoint"},
-
- {"ba", cmd_brk_delall, DD_FALSE,
- "ba Delete all breakpoints"},
-
- {"dis", cmd_disass, DD_TRUE,
- "dis [start [offset [lines]]]\n"
- " Disassemble code"},
-
- {"dp", cmd_dump_port, DD_FALSE,
- "dp Dump ports"},
-
- {"ds", cmd_dump_sfr, DD_FALSE,
- "ds [addr...] Dump SFR"},
-
- {"db", cmd_dump_bit, DD_TRUE,
- "db addr... Dump bit"},
-
- {"si", cmd_set_iram, DD_FALSE,
- "si addr data... Set Internal RAM"},
-
- {"sx", cmd_set_xram, DD_FALSE,
- "sx addr data... Set External RAM"},
-
- {"sc", cmd_set_code, DD_FALSE,
- "sc addr data... Set code (ROM)"},
-
- {"ss", cmd_set_sfr, DD_FALSE,
- "ss addr data... Set SFR area"},
-
- {"sb", cmd_set_bit, DD_FALSE,
- "sb addr data... Set bit"},
-
- {"sp", cmd_set_port, DD_FALSE,
- "sp port data Set port pins"},
-
- {"fi", cmd_fill_iram, DD_FALSE,
- "fi start stop data Fill IRAM area with `data'"},
-
- {"fx", cmd_fill_xram, DD_FALSE,
- "fx start stop data Fill XRAM area with `data'"},
-
- {"fs", cmd_fill_sfr, DD_FALSE,
- "fs start stop data Fill SFR area with `data'"},
-
- {"fc", cmd_fill_code, DD_FALSE,
- "fc start stop data Fill ROM area with `data'"},
-
- {"wi", cmd_where_iram, DD_FALSE,
- "wi,Wi string Search for `string' in IRAM (Wi case sensitive)"},
- {"Wi", cmd_Where_iram, DD_FALSE, NULL},
-
- {"wx", cmd_where_xram, DD_FALSE,
- "wx,Wx string Search for `string' in XRAM (Wx case sensitive)"},
- {"Wx", cmd_Where_xram, DD_FALSE, NULL},
-
- {"wc", cmd_where_code, DD_FALSE,
- "wc,Wc string Search for `string' in ROM (Wc case sensitive)"},
- {"Wc", cmd_Where_code, DD_FALSE, NULL},
-
- {"sopt", cmd_set_option, DD_FALSE,
- "sopt opt value Set value of option"},
-
- {"gopt", cmd_get_option, DD_FALSE,
- "gopt [opt] Get value of option(s)"},
-
- {"show", cmd_show, DD_FALSE,
- "show c|w Show licensing information"},
-
- {"h" , cmd_help, DD_FALSE,
- "h,? Help about commands"},
- {"?" , cmd_help, DD_FALSE, NULL},
-
- {NULL, NULL}
-};
-
-
-/* End of s51.src/cmd.cc */
+++ /dev/null
-/*
- * Simulator of microcontrollers (cmd.h)
- *
- * Copyright (C) 1999,99 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@*/
-
-#ifndef CMD_HEADER
-#define CMD_HEADER
-
-#include "ddconfig.h"
-
-#include <stdio.h>
-
-
-/* Type of entries in command table */
-
-struct cmd_entry
-{
- // Name of the command
- char *name;
- // Function to execute
- bool (*func)(char *cmd, /*class t_uc51*/void *uc, class cl_sim *sim);
- // Command can be repeated by empty command
- bool can_repeat;
- // Help about the command
- char *help;
-};
-
-extern struct cmd_entry cmd_table[];
-
-
-#endif
-
-/* End of s51.src/cmd.h */
+++ /dev/null
-/*
- * Simulator of microcontrollers (cmd51.cc)
- *
- * Copyright (C) 1999,99 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 "ddconfig.h"
-
-#include <stdio.h>
-#include <stdlib.h>
-#include "i_string.h"
-
-#include "globals.h"
-
-#include "cmd51cl.h"
-
-
-/*
- * Special console for s51 it uses old version of the command interpreter
- */
-
-cl_51cons::cl_51cons(char *fin, char *fout, class cl_sim *asim):
- cl_console(fin, fout, asim)
-{}
-
-cl_51cons::cl_51cons(FILE *fin, FILE *fout, class cl_sim *asim):
- cl_console(fin, fout, asim)
-{}
-
-#ifdef SOCKET_AVAIL
-cl_51cons::cl_51cons(int portnumber, class cl_sim *asim):
- cl_console(portnumber, asim)
-{}
-#endif
-
-int
-cl_51cons::proc_input(void)
-{
- return(cl_console::proc_input());
- /*char *cmd= read_line();
- if (!cmd)
- return(1);
- int retval= interpret(cmd);
- prompt();
- free(cmd);
- return(retval);*/
-}
-
-bool
-cl_51cons::interpret(char *cmd)
-{
- int i;
- char *c, *s;
- bool repeat= DD_FALSE, retval= DD_FALSE;
-
- if (*cmd)
- {
- c= strdup(cmd);
- if (last_command)
- free(last_command);
- last_command= strdup(cmd);
- }
- else
- if (last_command == NULL)
- return(DD_FALSE);
- else
- {
- c= strdup(last_command);
- repeat= DD_TRUE;
- }
- i= 0;
- s= strtok(c, delimiters);
- while ((cmd_table[i].name != NULL) &&
- /*(strstr(c, cmd_table[i].name) != c)*/
- (strcmp(s, cmd_table[i].name) != 0))
- i++;
- if (cmd_table[i].name == NULL)
- {
- sim->cmd->printf("Unknown command.\n");
- if (last_command)
- {
- free(last_command);
- last_command= NULL;
- }
- }
- else
- {
- if (!repeat)
- retval= cmd_table[i].func(c, sim->uc, sim);
- else
- if (cmd_table[i].can_repeat)
- retval= cmd_table[i].func(c, sim->uc, sim);
- }
- free(c);
- return(retval);
-}
-
-bool
-cl_51cons::old_command(class cl_cmdline *cmdline)
-{
- int i= 0;
-
- if (cmdline->name == 0 ||
- *(cmdline->name) == '\0' ||
- *(cmdline->name) == '\n')
- return(DD_TRUE);
- while ((cmd_table[i].name != NULL) &&
- /*(strstr(c, cmd_table[i].name) != c)*/
- (strcmp(cmdline->name, cmd_table[i].name) != 0))
- i++;
- return(cmd_table[i].name != NULL);
-}
-
-
-/*
- * Special commander for s51 it uses special console
- */
-
-cl_51cmd::cl_51cmd(class cl_sim *asim):
- cl_commander(asim)
-{}
-
-class cl_console *
-cl_51cmd::mk_console(char *fin, char *fout, class cl_sim *asim)
-{
- return(new cl_51cons(fin, fout, asim));
-}
-
-class cl_console *
-cl_51cmd::mk_console(FILE *fin, FILE *fout, class cl_sim *asim)
-{
- return(new cl_51cons(fin, fout, asim));
-}
-
-
-/* End of s51.src/cmd51.cc */
+++ /dev/null
-/*
- * Simulator of microcontrollers (cmd51cl.h)
- *
- * Copyright (C) 1999,99 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@*/
-
-#ifndef CMD51CL_HEADER
-#define CMD51CL_HEADER
-
-#include "ddconfig.h"
-
-// cmd
-#include "newcmdcl.h"
-
-// local
-#include "cmd.h"
-#include "simcl.h"
-
-
-class cl_51cons: public cl_console
-{
-public:
- cl_51cons(char *fin, char *fout, class cl_sim *asim);
- cl_51cons(FILE *fin, FILE *fout, class cl_sim *asim);
-#ifdef SOCKET_AVAIL
- cl_51cons(int portnumber, class cl_sim *asim);
-#endif
- virtual int proc_input(void);
- virtual bool interpret(char *cmd);
- virtual bool old_command(class cl_cmdline *cmdline);
-};
-
-class cl_51cmd: public cl_commander
-{
-public:
- cl_51cmd(class cl_sim *asim);
- virtual class cl_console *mk_console(char *fin, char *fout,
- class cl_sim *asim);
- virtual class cl_console *mk_console(FILE *fin, FILE *fout,
- class cl_sim *asim);
-};
-
-
-#endif
-
-/* End of s51.src/cmd51cl.h */
+++ /dev/null
-/*
- * Simulator of microcontrollers (cmd_brk.cc)
- *
- * Copyright (C) 1999,99 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 "ddconfig.h"
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <ctype.h>
-#include "i_string.h"
-
-#include "simcl.h"
-
-#include "uc51cl.h" //FIXME
-#include "globals.h"
-
-
-/*
- * BREAKPOINT SET f|d addr [hit]
- */
-//FIXME
-/*bool
-cmd_brk_setf(char *cmd, class t_uc51 *uc, class cl_sim *sim)
-{
- char *s;
- uint addr;
- int hit= 1;
- enum brk_perm perm;
- class cl_brk *b;
-
- if ((s= strtok(NULL, delimiters)) == NULL)
- {
- sim->cmd->printf("Permanency has not given\n");
- return(FALSE);
- }
- switch (*s)
- {
- case 'f': case 'F':
- perm= brkFIX;
- break;
- case 'd': case 'D':
- perm= brkDYNAMIC;
- break;
- default:
- sim->cmd->printf("Unknow permanency\n");
- return(FALSE);
- }
- if ((s= strtok(NULL, delimiters)) == NULL)
- {
- sim->cmd->printf("Address has not given\n");
- return(FALSE);
- }
- addr= (uint)strtol(s, NULL, 0);
- if ((s= strtok(NULL, delimiters)) != NULL)
- hit= strtol(s, NULL, 0);
- if (uc->fbrk_at(addr))
- sim->cmd->printf("Breakpoint at %06x is already set.\n", addr);
- else
- {
- b= new cl_fetch_brk(addr, perm, hit);
- uc->fbrk->add_bp(b);
- }
- return(FALSE);
-}
-*/
-
-/*
- * BREAKPOINT SET EVENT wi|ri|wx|rx|ws|rs|rc f|d addr [hit]
- */
-//FIXME
-bool
-cmd_brk_sete(char *cmd, class t_uc51 *uc, class cl_sim *sim)
-{
- char *s;
- char *id;
- uint addr;
- int hit= 1;
- enum brk_perm perm;
- class cl_ev_brk *b= NULL;
-
- if ((id= strtok(NULL, delimiters)) == NULL)
- {
- sim->cmd->printf("Event has not given.\n");
- return(DD_FALSE);
- }
- if ((s= strtok(NULL, delimiters)) == NULL)
- {
- sim->cmd->printf("Permanency has not given\n");
- return(DD_FALSE);
- }
- switch (*s)
- {
- case 'f': case 'F':
- perm= brkFIX;
- break;
- case 'd': case 'D':
- perm= brkDYNAMIC;
- break;
- default:
- sim->cmd->printf("Unknow permanency\n");
- return(DD_FALSE);
- }
- if ((s= strtok(NULL, delimiters)) == NULL)
- {
- sim->cmd->printf("Address has not given\n");
- return(DD_FALSE);
- }
- addr= (uint)strtol(s, NULL, 0);
- if ((s= strtok(NULL, delimiters)) != NULL)
- hit= strtol(s, NULL, 0);
- else
- {
- if (!strcmp(id, "wi"))
- b= new cl_wi_brk(uc->ebrk->make_new_nr(), addr, perm, hit);
- else if (!strcmp(id, "ri"))
- b= new cl_ri_brk(uc->ebrk->make_new_nr(), addr, perm, hit);
- else if (!strcmp(id, "wx"))
- b= new cl_wx_brk(uc->ebrk->make_new_nr(), addr, perm, hit);
- else if (!strcmp(id, "rx"))
- b= new cl_rx_brk(uc->ebrk->make_new_nr(), addr, perm, hit);
- else if (!strcmp(id, "ws"))
- b= new cl_ws_brk(uc->ebrk->make_new_nr(), addr, perm, hit);
- else if (!strcmp(id, "rs"))
- b= new cl_rs_brk(uc->ebrk->make_new_nr(), addr, perm, hit);
- else if (!strcmp(id, "rc"))
- b= new cl_rc_brk(uc->ebrk->make_new_nr(), addr, perm, hit);
- else
- sim->cmd->printf("Event %s is unknown.\n", id);
- if (b)
- uc->ebrk->add_bp(b);
- }
- return(DD_FALSE);
-}
-
-
-/*
- * BREAKPOINT DELETE addr
- */
-//FIXME
-/*bool
-cmd_brk_delf(char *cmd, class t_uc51 *uc, class cl_sim *sim)
-{
- uint addr;
- char *s;
-
- if ((s= strtok(NULL, delimiters)) == NULL)
- sim->cmd->printf("Address has not given.\n");
- else
- {
- addr= (uint)strtol(s, NULL, 0);
- if (uc->fbrk_at(addr) == NULL)
- sim->cmd->printf("No breakpoint at %06x\n", addr);
- else
- uc->fbrk->del_bp(addr);
- }
- return(DD_FALSE);
-}*/
-
-
-/*
- * BREAKPOINT DELETE EVENT wi|ri|wx|rx|ws|rs|rc addr
- */
-//FIXME
-bool
-cmd_brk_dele(char *cmd, class t_uc51 *uc, class cl_sim *sim)
-{
- uint addr;
- char *s, *id;
-
- if ((id= strtok(NULL, delimiters)) == NULL)
- {
- sim->cmd->printf("Event has not given.\n");
- return(DD_FALSE);
- }
- if ((s= strtok(NULL, delimiters)) == NULL)
- sim->cmd->printf("Address has not given.\n");
- else
- {
- addr= (uint)strtol(s, NULL, 0);
- if (uc->ebrk_at(addr, id) == NULL)
- sim->cmd->printf("No %s breakpoint at %06x\n", id, addr);
- else
- uc->rm_ebrk(addr, id);
- }
- return(DD_FALSE);
-}
-
-
-/*
- * BREAKPOINT DELETE ALL
- */
-//FIXME
-bool
-cmd_brk_delall(char *cmd, class t_uc51 *uc, class cl_sim *sim)
-{
- while (uc->fbrk->count)
- {
- class cl_brk *brk= (class cl_brk *)(uc->fbrk->at(0));
- uc->fbrk->del_bp(brk->addr);
- }
- while (uc->ebrk->count)
- uc->ebrk->free_at(0);
- return(DD_FALSE);
-}
-
-
-/*
- * BREAKPOINT LIST
- */
-//FIXME
-/*bool
-cmd_brk_lst(char *cmd, class t_uc51 *uc, class cl_sim *sim)
-{
- class cl_fetch_brk *fb;
- class cl_ev_brk *eb;
- int i;
- char *s;
-
- for (i= 0; i < uc->fbrk->count; i++)
- {
- fb= (class cl_fetch_brk *)(uc->fbrk->at(i));
- s = uc->disass(fb->addr, NULL);
- fprintf(sim->cmd_out(), "%c %d(%d) %06x %02x %s\n",
- (fb->perm==brkFIX)?'F':'D',
- fb->hit, fb->cnt,
- fb->addr, uc->get_mem(MEM_ROM, fb->addr), s);
- free(s);
- }
- for (i= 0; i < uc->ebrk->count; i++)
- {
- eb= (class cl_ev_brk *)(uc->ebrk->at(i));
- fprintf(sim->cmd_out(), "%c %d(%d) %06x %s\n",
- (eb->perm==brkFIX)?'F':'D',
- eb->hit, eb->cnt,
- eb->addr, eb->id);
- }
- return(DD_FALSE);
-}*/
-
-
-/* End of s51.src/cmd_brk.cc */
+++ /dev/null
-/*
- * Simulator of microcontrollers (cmd_brk.h)
- *
- * Copyright (C) 1999,99 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@*/
-
-#ifndef CMD_BRK_HEADER
-#define CMD_BRK_HEADER
-
-#include "ddconfig.h"
-
-
-//extern bool cmd_brk_setf(char *cmd, class t_uc51 *uc, class cl_sim *sim);
-extern bool cmd_brk_sete(char *cmd, class t_uc51 *uc, class cl_sim *sim);
-extern bool cmd_brk_delf(char *cmd, class t_uc51 *uc, class cl_sim *sim);
-extern bool cmd_brk_dele(char *cmd, class t_uc51 *uc, class cl_sim *sim);
-//extern bool cmd_brk_lst(char *cmd, class t_uc51 *uc, class cl_sim *sim);
-extern bool cmd_brk_delall(char *cmd, class t_uc51 *uc, class cl_sim *sim);
-
-
-#endif
-
-/* End of s51.src/cmd_brk.h */
+++ /dev/null
-/*
- * Simulator of microcontrollers (dump.cc)
- *
- * Copyright (C) 1999,99 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 "ddconfig.h"
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <ctype.h>
-#include "i_string.h"
-
-#include "simcl.h"
-
-#include "uc51cl.h" //FIXME
-#include "regs51.h" //FIXME
-#include "globals.h"
-#include "cmdutil.h"
-
-
-/*
- * Dump memory
- */
-
-void
-dump_memory(cl_mem *mem,
- t_addr *start, t_addr stop, int bpl, class cl_console *con,
- class cl_sim *sim)
-{
- int i;
-
- while ((*start <= stop) &&
- (*start < mem->size))
- {
- con->printf("%06x ", *start);
- for (i= 0; (i < bpl) &&
- (*start+i < mem->size) &&
- (*start+i <= stop);
- i++)
- {
- char format[10];
- sprintf(format, "%%0%dx ", mem->width/4);
- con->printf(format/*"%02x "*/, mem->get(*start+i));
- }
- while (i < bpl)
- {
- con->printf(" ");
- i++;
- }
- for (i= 0; (i < bpl) &&
- (*start+i < mem->size) &&
- (*start+i <= stop);
- i++)
- con->printf("%c",
- isprint(mem->get(*start+i))?(char)mem->get(*start+i):'.');
- con->printf("\n");
- (*start)+= bpl;
- }
-}
-
-
-/*
- * DISASSEMBLE [start [offset [lines]]]
- */
-//FIXME
-static int disass_last_stop= 0;
-
-bool
-cmd_disass(char *cmd, class t_uc51 *uc, class cl_sim *sim)
-{
- char *s;
- int start, offset= -1, dir;
- int lines= 20;
- uint realstart;
-
- if (!uc->there_is_inst())
- return(DD_FALSE);
- if ((s= strtok(NULL, delimiters)) != NULL)
- start= strtol(s, NULL, 0);
- else
- start= disass_last_stop;
- if ((s= strtok(NULL, delimiters)) != NULL)
- offset= strtol(s, NULL, 0);
- if ((s= strtok(NULL, delimiters)) != NULL)
- lines= strtol(s, NULL, 0);
-
- realstart= start;
- while (!uc->inst_at(realstart))
- realstart= (realstart+1) & (EROM_SIZE-1);
- if (offset)
- {
- dir= (offset < 0)?-1:+1;
- while (offset)
- {
- realstart= (realstart+dir) & (EROM_SIZE-1);
- while (!uc->inst_at(realstart))
- realstart= (realstart+dir) & (EROM_SIZE-1);
- offset+= -dir;
- }
- }
-
- while (lines)
- {
- uc->print_disass(realstart, sim->cmd->actual_console);
- realstart= (realstart+1) & (EROM_SIZE-1);
- while (!uc->inst_at(realstart))
- realstart= (realstart+1) & (EROM_SIZE-1);
- lines--;
- }
-
- disass_last_stop= realstart;
- return(DD_FALSE);
-}
-
-
-/*
- * DUMP PORTS
- */
-//FIXME
-bool
-cmd_dump_port(char *cmd, class t_uc51 *uc, class cl_sim *sim)
-{
- uchar data;
-
- if (sim->cmd->actual_console == 0)
- return(DD_FALSE);
- data= uc->get_mem(MEM_SFR, P0);
- sim->cmd->printf("P0 ");
- sim->cmd->actual_console->print_bin(data, 8);
- sim->cmd->printf(" 0x%02x %3d %c", data, data, isprint(data)?data:'.');
-
- data= uc->get_mem(MEM_SFR, P1);
- sim->cmd->printf(" P1 ");
- sim->cmd->actual_console->print_bin(data, 8);
- sim->cmd->printf(" 0x%02x %3d %c\n", data, data, isprint(data)?data:'.');
-
- data= uc->port_pins[0];
- sim->cmd->printf("Pin0 ");
- sim->cmd->actual_console->print_bin(data, 8);
- sim->cmd->printf(" 0x%02x %3d %c", data, data, isprint(data)?data:'.');
-
- data= uc->port_pins[1];
- sim->cmd->printf(" Pin1 ");
- sim->cmd->actual_console->print_bin(data, 8);
- sim->cmd->printf(" 0x%02x %3d %c\n", data, data, isprint(data)?data:'.');
-
- data= uc->port_pins[0] & uc->get_mem(MEM_SFR, P0);
- sim->cmd->printf("Port0 ");
- sim->cmd->actual_console->print_bin(data, 8);
- sim->cmd->printf(" 0x%02x %3d %c", data, data, isprint(data)?data:'.');
-
- data= uc->port_pins[1] & uc->get_mem(MEM_SFR, P1);
- sim->cmd->printf(" Port1 ");
- sim->cmd->actual_console->print_bin(data, 8);
- sim->cmd->printf(" 0x%02x %3d %c\n", data, data, isprint(data)?data:'.');
-
- sim->cmd->printf("\n");
-
- data= uc->get_mem(MEM_SFR, P2);
- sim->cmd->printf("P2 ");
- sim->cmd->actual_console->print_bin(data, 8);
- sim->cmd->printf(" 0x%02x %3d %c", data, data, isprint(data)?data:'.');
-
- data= uc->get_mem(MEM_SFR, P3);
- sim->cmd->printf(" P3 ");
- sim->cmd->actual_console->print_bin(data, 8);
- sim->cmd->printf(" 0x%02x %3d %c\n", data, data, isprint(data)?data:'.');
-
- data= uc->port_pins[2];
- sim->cmd->printf("Pin2 ");
- sim->cmd->actual_console->print_bin(data, 8);
- sim->cmd->printf(" 0x%02x %3d %c", data, data, isprint(data)?data:'.');
-
- data= uc->port_pins[3];
- sim->cmd->printf(" Pin3 ");
- sim->cmd->actual_console->print_bin(data, 8);
- sim->cmd->printf(" 0x%02x %3d %c\n", data, data, isprint(data)?data:'.');
-
- data= uc->port_pins[2] & uc->get_mem(MEM_SFR, P2);
- sim->cmd->printf("Port2 ");
- sim->cmd->actual_console->print_bin(data, 8);
- sim->cmd->printf(" 0x%02x %3d %c", data, data, isprint(data)?data:'.');
-
- data= uc->port_pins[3] & uc->get_mem(MEM_SFR, P3);
- sim->cmd->printf(" Port3 ");
- sim->cmd->actual_console->print_bin(data, 8);
- sim->cmd->printf(" 0x%02x %3d %c\n", data, data, isprint(data)?data:'.');
-
- return(DD_FALSE);
-}
-
-
-/*
- * DUMP SFR [addr...]
- */
-//FIXME
-bool
-cmd_dump_sfr(char *cmd, class t_uc51 *uc, class cl_sim *sim)
-{
- char *s;
- t_addr start= 0x80;
- uchar data;
- struct name_entry *ne;
-
- if ((s= strtok(NULL, delimiters)) != NULL)
- while (s != NULL)
- {
- if ((ne= get_name_entry(uc->sfr_tbl(), s, uc)) != NULL)
- {
- data= uc->get_mem(MEM_SFR, ne->addr);
- sim->cmd->printf("%6s %02x %3d %c\n", ne->name, data, data,
- isprint(data)?data:'.');
- }
- else
- {
- start= strtol(s, NULL, 0);
- data = uc->get_mem(MEM_SFR, start);
- if (start >= SFR_START)
- sim->cmd->printf("%06x %02x %3d %c\n", start, data, data,
- isprint(data)?data:'.');
- }
- s= strtok(NULL, delimiters);
- }
- else
- // dump all
- dump_memory(uc->mem(MEM_SFR), &start, 255, 16, sim->cmd->actual_console,
- sim);
- return(DD_FALSE);
-}
-
-
-/*
- * DUMP BIT addr...
- */
-//FIXME
-bool
-cmd_dump_bit(char *cmd, class t_uc51 *uc, class cl_sim *sim)
-{
- char *s, *sym;
- uchar *cell, addr;
- uchar bitaddr, bitmask;
-
- if ((s= strtok(NULL, delimiters)) == NULL)
- {
- sim->cmd->printf("Address has not given.\n");
- return(DD_FALSE);
- }
- while (s)
- {
- if (!interpret_bitname(s, uc, &cell, &addr, &bitaddr, &bitmask, &sym))
- {
- sim->cmd->printf("Bad address %s\n", s);
- return(DD_FALSE);
- }
- sim->cmd->printf("%06x %6s %c\n", addr, sym, (*cell & bitmask)?'1':'0');
- free(sym);
- s= strtok(NULL, delimiters);
- }
- return(DD_FALSE);
-}
-
-
-/* End of s51.src/dump.cc */
+++ /dev/null
-/*
- * Simulator of microcontrollers (dump.h)
- *
- * Copyright (C) 1999,99 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@*/
-
-#ifndef DUMP_HEADER
-#define DUMP_HEADER
-
-#include "ddconfig.h"
-
-#include "memcl.h"
-#include "brkcl.h"
-#include "newcmdcl.h"
-
-#include "uc51cl.h" //FIXME
-
-
-extern void dump_memory(cl_mem *mem, t_addr *start, t_addr stop,
- int bpl, class cl_console *con,
- class cl_sim *sim);
-
-extern bool cmd_disass(char *cmd, class t_uc51 *uc, class cl_sim *sim);
-extern bool cmd_dump_port(char *cmd, class t_uc51 *uc, class cl_sim *sim);
-extern bool cmd_dump_sfr(char *cmd, class t_uc51 *uc, class cl_sim *sim);
-extern bool cmd_dump_bit(char *cmd, class t_uc51 *uc, class cl_sim *sim);
-
-
-#endif
-
-/* End of s51.src/dump.h */
+++ /dev/null
-/*
- * Simulator of microcontrollers (go.cc)
- *
- * Copyright (C) 1999,99 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 "ddconfig.h"
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <ctype.h>
-#include "i_string.h"
-
-#include "simcl.h"
-
-#include "uc51cl.h" //FIXME
-#include "globals.h"
-#include "dump.h"
-
-
-/*
- * GO [start [stop]]
- */
-//FIXME
-bool
-cmd_go(char *cmd, class t_uc51 *uc, class cl_sim *sim)
-{
- char *start_str, *stop_str;
- t_addr start= uc->PC;
- long stop= -1;
- class cl_brk *b;
- bool brk_at_stop= DD_FALSE;
-
- if (sim->state & SIM_GO)
- {
- sim->cmd->printf("Execution is already running.\n");
- return(0);
- }
- if ((start_str= strtok(NULL, delimiters)) != NULL)
- {
- start= strtol(start_str, NULL, 0);
- if ((stop_str= strtok(NULL, delimiters)) != NULL)
- stop= strtol(stop_str, NULL, 0);
- }
- if (uc->PC != start)
- {
- if (!uc->inst_at(start) &&
- uc->debug)
- sim->cmd->printf("Warning: maybe not instruction at 0x%06lx\n", start);
- uc->PC= start;
- }
- if (stop >= 0)
- {
- if (start == (t_addr)stop)
- {
- sim->cmd->printf("Addresses must be different.\n");
- return(DD_FALSE);
- }
- if ((b= uc->fbrk_at(stop)))
- {
- brk_at_stop= DD_TRUE;
- b->cnt= 1;
- }
- else
- {
- b= new cl_fetch_brk(uc->fbrk->make_new_nr(), stop, brkDYNAMIC, 1);
- uc->fbrk->add_bp(b);
- }
- }
- if (uc->fbrk_at(start))
- uc->do_inst(1);
- //fprintf(sim->cmd_out(), "Simulation started, PC=0x%06x\n", uc->PC);
- sim->cmd->printf("Simulation started, PC=0x%06x\n", uc->PC);
- sim->start(sim->cmd->actual_console);
- //uc->do_inst(-1);
- /*if ((stop >= 0) &&
- !brk_at_stop)
- uc->fbrk->del_bp(stop);*/
- /*fprintf(sim->cmd_out(), "%d\n", uc->result);
- uc->print_disass(uc->PC);*/
- return(DD_FALSE);
-}
-
-
-bool
-cmd_stop(char *cmd, class t_uc51 *uc, class cl_sim *sim)
-{
- sim->stop(resUSER);
- uc->print_disass(uc->PC, sim->cmd->actual_console);
- return(DD_FALSE);
-}
-
-
-static void
-dump_step(class t_uc51 *uc, class cl_sim *sim)
-{
- //cmd_dump_regs(NULL, uc, sim);
- uc->print_regs(sim->cmd->actual_console);
-}
-
-
-/*
- * STEP [step]
- */
-//FIXME
-bool
-cmd_step(char *cmd, class t_uc51 *uc, class cl_sim *sim)
-{
- int step= 1;
- char *s;
-
- if ((s= strtok(NULL, delimiters)) != NULL)
- step= strtol(s, NULL, 0);
- while (step--)
- {
- uc->do_inst(1);
- dump_step(uc, sim);
- }
- return(DD_FALSE);
-}
-
-
-/*
- * NEXT [step]
- */
-//FIXME
-bool
-cmd_next(char *cmd, class t_uc51 *uc, class cl_sim *sim)
-{
- int step= 1;
- char *s;
- class cl_brk *b;
- uint next;
-
- if ((s= strtok(NULL, delimiters)) != NULL)
- step= strtol(s, NULL, 0);
- while (step--)
- {
- if ((uc->dis_tbl()[uc->get_mem(MEM_ROM, uc->PC)].branch == 'a') ||
- (uc->dis_tbl()[uc->get_mem(MEM_ROM, uc->PC)].branch == 'l'))
- {
- next= uc->PC+2;
- if (uc->dis_tbl()[uc->get_mem(MEM_ROM, uc->PC)].branch == 'l')
- next++;
- if (!uc->fbrk_at(next))
- {
- b= new cl_fetch_brk(uc->fbrk->make_new_nr(),
- next, brkDYNAMIC, 1);
- uc->fbrk->add(b);
- }
- uc->do_inst(-1);
- }
- else
- uc->do_inst(1);
- dump_step(uc, sim);
- }
- return(DD_FALSE);
-}
-
-
-/*
- * PC [address]
- */
-//FIXME
-bool
-cmd_pc(char *cmd, class t_uc51 *uc, class cl_sim *sim)
-{
- char *s, *p= NULL;
- long pc;
-
- if ((s= strtok(NULL, delimiters)) == NULL)
- {
- uc->print_disass(uc->PC, sim->cmd->actual_console);
- return(DD_FALSE);
- }
- pc= strtol(s, &p, 0);
- if (p &&
- ((p == s) ||
- *p))
- sim->cmd->printf("Wrong parameter, PC unchanged.\n");
- else
- {
- if (pc >= EROM_SIZE)
- pc= 0;
- if (!uc->inst_at(pc) &&
- uc->debug)
- sim->cmd->printf("Warning: maybe not instruction at %06lx\n", pc);
- uc->PC= pc;
- uc->print_disass(uc->PC, sim->cmd->actual_console);
- }
- return(DD_FALSE);
-}
-
-
-/* End of s51.src/go.cc */
+++ /dev/null
-/*
- * Simulator of microcontrollers (go.h)
- *
- * Copyright (C) 1999,99 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@*/
-
-#ifndef GO_HEADER
-#define GO_HEADER
-
-#include "ddconfig.h"
-
-
-extern bool cmd_go(char *cmd, class t_uc51 *uc, class cl_sim *sim);
-extern bool cmd_stop(char *cmd, class t_uc51 *uc, class cl_sim *sim);
-extern bool cmd_step(char *cmd, class t_uc51 *uc, class cl_sim *sim);
-extern bool cmd_next(char *cmd, class t_uc51 *uc, class cl_sim *sim);
-extern bool cmd_pc(char *cmd, class t_uc51 *uc, class cl_sim *sim);
-
-
-#endif
-
-/* End of s51.src/go.h */
+++ /dev/null
-/*
- * Simulator of microcontrollers (set.cc)
- *
- * Copyright (C) 1999,99 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 "ddconfig.h"
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <ctype.h>
-#include "i_string.h"
-
-#include "stypes.h"
-#include "simcl.h"
-#include "memcl.h"
-#include "uccl.h"
-#include "globals.h"
-
-#include "cmdutil.h"
-#include "dump.h"
-
-#include "regs51.h" //FIXME
-
-
-/*
- * Parsing command and write data into specified buffer
- */
-
-static void
-set_memory(cl_mem *mem, t_addr first,
- class cl_uc *uc, struct name_entry tabl[], class cl_sim *sim)
-{
- t_addr start, addr;
- char *s, *p;
- uchar data, *what= 0;
- struct name_entry *ne= NULL;
-
- if ((s= strtok(NULL, delimiters)) == NULL)
- {
- sim->cmd->printf("Address has not given.\n");
- return;
- }
- if (tabl)
- ne= get_name_entry(tabl, s, uc);
- if (ne)
- addr= ne->addr;
- else
- {
- addr= strtol(s, &p, 0);
- if (p &&
- *p)
- {
- sim->cmd->printf("Bad address.\n");
- return;
- }
- }
- start= addr;
- if (start >= mem->size)
- {
- sim->cmd->printf("Address %ld(0x%lx) is bigger than %ld(0x%lx).\n",
- start, start, mem->size-1, mem->size-1);
- return;
- }
- if (!(start >= first))
- {
- sim->cmd->printf("Address %ld(0x%lx) is less than %ld(0x%lx).\n",
- start, start, first, first);
- return;
- }
- if ((s= strtok(NULL, " \t\v")) == NULL)
- {
- sim->cmd->printf("Data has not given.\n");
- return;
- }
- while (s &&
- addr < mem->size)
- {
- if (isdigit(*s))
- {
- data= strtol(s, &p, 0);
- if (p &&
- *p)
- {
- sim->cmd->printf("Bad data %s\n", s);
- break;
- }
- mem->set(addr, data);
- if (what == uc->MEM(MEM_SFR))
- {
- uc->proc_write/*FIXME*/(&what[addr]);
- if (addr == ACC)
- uc->set_p_flag/*FIXME*/();
- }
- if (what == uc->MEM(MEM_ROM))
- uc->del_inst_at/*FIXME*/(addr);
- addr++;
- }
- else
- {
- int i, len;
- p= proc_escape(s, &len);
- i= 0;
- while ((i < len) &&
- addr < mem->size)
- {
- what[addr]= p[i++];
- if (what == uc->MEM(MEM_SFR))
- {
- uc->proc_write/*FIXME*/(&what[addr]);
- if (addr == ACC)
- uc->set_p_flag/*FIXME*/();
- }
- if (what == uc->MEM(MEM_ROM))
- uc->del_inst_at/*FIXME*/(addr);
- addr++;
- }
- free(p);
- }
- s= strtok(NULL, " \t\v");
- }
- dump_memory(mem, &start, addr-1, 16, sim->cmd->actual_console, sim);
-}
-
-
-/*
- * SET IRAM addr data...
- */
-
-bool
-cmd_set_iram(char *cmd, class cl_uc *uc, class cl_sim *sim)
-{
- set_memory(uc->mem(MEM_IRAM), 0, uc, NULL, sim);
- return(DD_FALSE);
-}
-
-
-/*
- * SET XRAM addr data...
- */
-
-bool
-cmd_set_xram(char *cmd, class cl_uc *uc, class cl_sim *sim)
-{
- uc->eram2xram();
- set_memory(uc->mem(MEM_XRAM), 0, uc, NULL, sim);
- uc->xram2eram();
- return(DD_FALSE);
-}
-
-
-/*
- * SET CODE addr data...
- */
-
-bool
-cmd_set_code(char *cmd, class cl_uc *uc, class cl_sim *sim)
-{
- set_memory(uc->mem(MEM_ROM), 0, uc, NULL, sim);
- return(DD_FALSE);
-}
-
-
-/*
- * SET SFR addr data...
- */
-
-bool
-cmd_set_sfr(char *cmd, class cl_uc *uc, class cl_sim *sim)
-{
- set_memory(uc->mem(MEM_SFR), SFR_START, uc, uc->sfr_tbl(), sim);
- return(DD_FALSE);
-}
-
-
-/*
- * SET BIT addr data...
- */
-
-bool
-cmd_set_bit(char *cmd, class cl_uc *uc, class cl_sim *sim)
-{
- char *s;
- uchar *cell, addr;
- uchar bitaddr, bitmask;
-
- if ((s= strtok(NULL, delimiters)) == NULL)
- {
- sim->cmd->printf("Address has not given.\n");
- return(DD_FALSE);
- }
- if (!interpret_bitname(s, uc, &cell, &addr, &bitaddr, &bitmask, NULL))
- {
- sim->cmd->printf("Bad address %s\n", s);
- return(DD_FALSE);
- }
-
- if ((s= strtok(NULL, delimiters)) == NULL)
- {
- sim->cmd->printf("Data has not given.\n");
- return(DD_FALSE);
- }
- while (s)
- {
- if (!isdigit(*s))
- {
- sim->cmd->printf("Bad data %s\n", s);
- return(DD_FALSE);
- }
- if (*s == '0')
- *cell&= ~bitmask;
- else
- *cell|= bitmask;
- bitmask<<= 1;
- bitmask&= 0xff;
- s= strtok(NULL, delimiters);
- }
- return(DD_FALSE);
-}
-
-
-/*
- * SET PORT port data
- */
-
-bool
-cmd_set_port(char *cmd, class cl_uc *uc, class cl_sim *sim)
-{
- char *s, *p;
- uchar port, data;
-
- if ((s= strtok(NULL, delimiters)) == NULL)
- {
- sim->cmd->printf("Port number has not given.\n");
- return(DD_FALSE);
- }
- port= strtol(s, &p, 0);
- if ((p && *p) ||
- (port > 3))
- {
- sim->cmd->printf("Port number %s is wrong.\n", s);
- return(DD_FALSE);
- }
-
- if ((s= strtok(NULL, delimiters)) == NULL)
- {
- sim->cmd->printf("Date has not given.\n");
- return(DD_FALSE);
- }
- data= strtol(s, &p, 0);
- if (p && *p)
- {
- sim->cmd->printf("Data %s is wrong.\n", s);
- return(DD_FALSE);
- }
- uc->port_pins[port]= data;
- return(DD_FALSE);
-}
-
-
-/*
- * Fill memory commands
- */
-
-static void
-fill_memory(uchar *what, int size, int first, class cl_uc *uc,
- class cl_sim *sim)
-{
- char *s, *p;
- int start, stop;
- uchar data;
-
- if ((s= strtok(NULL, delimiters)) == NULL)
- return;
- start= strtol(s, &p, 0);
- if ((p && *p) ||
- (start < 0) ||
- (start < first) ||
- (start >= size))
- sim->cmd->printf("Start address %s is wrong.\n", s);
-
- if ((s= strtok(NULL, delimiters)) == NULL)
- return;
- stop= strtol(s, &p, 0);
- if ((p && *p) ||
- (stop < start) ||
- (stop >= size))
- sim->cmd->printf("Stop address %s is wrong.\n", s);
-
- if ((s= strtok(NULL, delimiters)) == NULL)
- return;
- data= strtol(s, &p, 0);
- if (p && *p)
- sim->cmd->printf("Data %s is wrong.\n", s);
-
- while (start <= stop)
- {
- what[start]= data;
- if (what == uc->MEM(MEM_SFR))
- {
- uc->proc_write/*FIXME*/(&what[start]);
- if (start == ACC)
- uc->set_p_flag/*FIXME*/();
- }
- if (what == uc->MEM(MEM_ROM))
- uc->del_inst_at/*FIXME*/(start);
- start++;
- }
-}
-
-
-/*
- * FILL IRAM from to data
- */
-
-bool
-cmd_fill_iram(char *cmd, class cl_uc *uc, class cl_sim *sim)
-{
- fill_memory(uc->MEM(MEM_IRAM), uc->get_mem_size(MEM_IRAM), 0, uc, sim);
- return(DD_FALSE);
-}
-
-
-/*
- * FILL XRAM from to data
- */
-
-bool
-cmd_fill_xram(char *cmd, class cl_uc *uc, class cl_sim *sim)
-{
- fill_memory(uc->MEM(MEM_XRAM), uc->get_mem_size(MEM_XRAM), 0, uc, sim);
- uc->xram2eram/*FIXME*/();
- return(DD_FALSE);
-}
-
-
-/*
- * FILL SFR from to data
- */
-
-bool
-cmd_fill_sfr(char *cmd, class cl_uc *uc, class cl_sim *sim)
-{
- fill_memory(uc->MEM(MEM_SFR), uc->get_mem_size(MEM_SFR), SFR_START, uc, sim);
- return(DD_FALSE);
-}
-
-
-/*
- * FILL CODE from to data
- */
-
-bool
-cmd_fill_code(char *cmd, class cl_uc *uc, class cl_sim *sim)
-{
- fill_memory(uc->MEM(MEM_ROM), EROM_SIZE, 0, uc, sim);
- return(DD_FALSE);
-}
-
-
-/* End of s51.src/set.cc */
+++ /dev/null
-/*
- * Simulator of microcontrollers (set.h)
- *
- * Copyright (C) 1999,99 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@*/
-
-#ifndef SET_HEADER
-#define SET_HEADER
-
-#include "ddconfig.h"
-
-
-extern bool cmd_set_iram(char *cmd, class cl_uc *uc, class cl_sim *sim);
-extern bool cmd_set_xram(char *cmd, class cl_uc *uc, class cl_sim *sim);
-extern bool cmd_set_code(char *cmd, class cl_uc *uc, class cl_sim *sim);
-extern bool cmd_set_sfr(char *cmd, class cl_uc *uc, class cl_sim *sim);
-extern bool cmd_set_bit(char *cmd, class cl_uc *uc, class cl_sim *sim);
-extern bool cmd_set_port(char *cmd, class cl_uc *uc, class cl_sim *sim);
-extern bool cmd_fill_iram(char *cmd, class cl_uc *uc, class cl_sim *sim);
-extern bool cmd_fill_xram(char *cmd, class cl_uc *uc, class cl_sim *sim);
-extern bool cmd_fill_sfr(char *cmd, class cl_uc *uc, class cl_sim *sim);
-extern bool cmd_fill_code(char *cmd, class cl_uc *uc, class cl_sim *sim);
-
-
-#endif
-
-/* End of s51.src/set.h */
+++ /dev/null
-/*
- * Simulator of microcontrollers (show.cc)
- *
- * Copyright (C) 1999,99 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 "ddconfig.h"
-
-#include <stdio.h>
-#include "i_string.h"
-
-#include "simcl.h"
-
-#include "uccl.h"
-#include "globals.h"
-
-
-static char *warranty=
-" NO WARRANTY
-
- 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
-FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
-OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
-PROVIDE THE PROGRAM \"AS IS\" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
-OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
-MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
-TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
-PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
-REPAIR OR CORRECTION.
-
- 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
-WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
-REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
-INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
-OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
-TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
-YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
-PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
-POSSIBILITY OF SUCH DAMAGES.
-";
-
-
-static char *copying=
-" GNU GENERAL PUBLIC LICENSE
- Version 2, June 1991
-
- Copyright (C) 1989, 1991 Free Software Foundation, Inc.
- 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
- Everyone is permitted to copy and distribute verbatim copies
- of this license document, but changing it is not allowed.
-
- Preamble
-
- The licenses for most software are designed to take away your
-freedom to share and change it. By contrast, the GNU General Public
-License is intended to guarantee your freedom to share and change free
-software--to make sure the software is free for all its users. This
-General Public License applies to most of the Free Software
-Foundation's software and to any other program whose authors commit to
-using it. (Some other Free Software Foundation software is covered by
-the GNU Library General Public License instead.) You can apply it to
-your programs, too.
-
- When we speak of free software, we are referring to freedom, not
-price. Our General Public Licenses are designed to make sure that you
-have the freedom to distribute copies of free software (and charge for
-this service if you wish), that you receive source code or can get it
-if you want it, that you can change the software or use pieces of it
-in new free programs; and that you know you can do these things.
-
- To protect your rights, we need to make restrictions that forbid
-anyone to deny you these rights or to ask you to surrender the rights.
-These restrictions translate to certain responsibilities for you if you
-distribute copies of the software, or if you modify it.
-
- For example, if you distribute copies of such a program, whether
-gratis or for a fee, you must give the recipients all the rights that
-you have. You must make sure that they, too, receive or can get the
-source code. And you must show them these terms so they know their
-rights.
-
- We protect your rights with two steps: (1) copyright the software, and
-(2) offer you this license which gives you legal permission to copy,
-distribute and/or modify the software.
-
- Also, for each author's protection and ours, we want to make certain
-that everyone understands that there is no warranty for this free
-software. If the software is modified by someone else and passed on, we
-want its recipients to know that what they have is not the original, so
-that any problems introduced by others will not reflect on the original
-authors' reputations.
-
- Finally, any free program is threatened constantly by software
-patents. We wish to avoid the danger that redistributors of a free
-program will individually obtain patent licenses, in effect making the
-program proprietary. To prevent this, we have made it clear that any
-patent must be licensed for everyone's free use or not licensed at all.
-
- The precise terms and conditions for copying, distribution and
-modification follow.
-\f
- GNU GENERAL PUBLIC LICENSE
- TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
-
- 0. This License applies to any program or other work which contains
-a notice placed by the copyright holder saying it may be distributed
-under the terms of this General Public License. The \"Program\", below,
-refers to any such program or work, and a \"work based on the Program\"
-means either the Program or any derivative work under copyright law:
-that is to say, a work containing the Program or a portion of it,
-either verbatim or with modifications and/or translated into another
-language. (Hereinafter, translation is included without limitation in
-the term \"modification\".) Each licensee is addressed as \"you\".
-
-Activities other than copying, distribution and modification are not
-covered by this License; they are outside its scope. The act of
-running the Program is not restricted, and the output from the Program
-is covered only if its contents constitute a work based on the
-Program (independent of having been made by running the Program).
-Whether that is true depends on what the Program does.
-
- 1. You may copy and distribute verbatim copies of the Program's
-source code as you receive it, in any medium, provided that you
-conspicuously and appropriately publish on each copy an appropriate
-copyright notice and disclaimer of warranty; keep intact all the
-notices that refer to this License and to the absence of any warranty;
-and give any other recipients of the Program a copy of this License
-along with the Program.
-
-You may charge a fee for the physical act of transferring a copy, and
-you may at your option offer warranty protection in exchange for a fee.
-
- 2. You may modify your copy or copies of the Program or any portion
-of it, thus forming a work based on the Program, and copy and
-distribute such modifications or work under the terms of Section 1
-above, provided that you also meet all of these conditions:
-
- a) You must cause the modified files to carry prominent notices
- stating that you changed the files and the date of any change.
-
- b) You must cause any work that you distribute or publish, that in
- whole or in part contains or is derived from the Program or any
- part thereof, to be licensed as a whole at no charge to all third
- parties under the terms of this License.
-
- c) If the modified program normally reads commands interactively
- when run, you must cause it, when started running for such
- interactive use in the most ordinary way, to print or display an
- announcement including an appropriate copyright notice and a
- notice that there is no warranty (or else, saying that you provide
- a warranty) and that users may redistribute the program under
- these conditions, and telling the user how to view a copy of this
- License. (Exception: if the Program itself is interactive but
- does not normally print such an announcement, your work based on
- the Program is not required to print an announcement.)
-
-These requirements apply to the modified work as a whole. If
-identifiable sections of that work are not derived from the Program,
-and can be reasonably considered independent and separate works in
-themselves, then this License, and its terms, do not apply to those
-sections when you distribute them as separate works. But when you
-distribute the same sections as part of a whole which is a work based
-on the Program, the distribution of the whole must be on the terms of
-this License, whose permissions for other licensees extend to the
-entire whole, and thus to each and every part regardless of who wrote it.
-
-Thus, it is not the intent of this section to claim rights or contest
-your rights to work written entirely by you; rather, the intent is to
-exercise the right to control the distribution of derivative or
-collective works based on the Program.
-
-In addition, mere aggregation of another work not based on the Program
-with the Program (or with a work based on the Program) on a volume of
-a storage or distribution medium does not bring the other work under
-the scope of this License.
-
- 3. You may copy and distribute the Program (or a work based on it,
-under Section 2) in object code or executable form under the terms of
-Sections 1 and 2 above provided that you also do one of the following:
-
- a) Accompany it with the complete corresponding machine-readable
- source code, which must be distributed under the terms of Sections
- 1 and 2 above on a medium customarily used for software interchange; or,
-
- b) Accompany it with a written offer, valid for at least three
- years, to give any third party, for a charge no more than your
- cost of physically performing source distribution, a complete
- machine-readable copy of the corresponding source code, to be
- distributed under the terms of Sections 1 and 2 above on a medium
- customarily used for software interchange; or,
-
- c) Accompany it with the information you received as to the offer
- to distribute corresponding source code. (This alternative is
- allowed only for noncommercial distribution and only if you
- received the program in object code or executable form with such
- an offer, in accord with Subsection b above.)
-
-The source code for a work means the preferred form of the work for
-making modifications to it. For an executable work, complete source
-code means all the source code for all modules it contains, plus any
-associated interface definition files, plus the scripts used to
-control compilation and installation of the executable. However, as a
-special exception, the source code distributed need not include
-anything that is normally distributed (in either source or binary
-form) with the major components (compiler, kernel, and so on) of the
-operating system on which the executable runs, unless that component
-itself accompanies the executable.
-
-If distribution of executable or object code is made by offering
-access to copy from a designated place, then offering equivalent
-access to copy the source code from the same place counts as
-distribution of the source code, even though third parties are not
-compelled to copy the source along with the object code.
-\f
- 4. You may not copy, modify, sublicense, or distribute the Program
-except as expressly provided under this License. Any attempt
-otherwise to copy, modify, sublicense or distribute the Program is
-void, and will automatically terminate your rights under this License.
-However, parties who have received copies, or rights, from you under
-this License will not have their licenses terminated so long as such
-parties remain in full compliance.
-
- 5. You are not required to accept this License, since you have not
-signed it. However, nothing else grants you permission to modify or
-distribute the Program or its derivative works. These actions are
-prohibited by law if you do not accept this License. Therefore, by
-modifying or distributing the Program (or any work based on the
-Program), you indicate your acceptance of this License to do so, and
-all its terms and conditions for copying, distributing or modifying
-the Program or works based on it.
-
- 6. Each time you redistribute the Program (or any work based on the
-Program), the recipient automatically receives a license from the
-original licensor to copy, distribute or modify the Program subject to
-these terms and conditions. You may not impose any further
-restrictions on the recipients' exercise of the rights granted herein.
-You are not responsible for enforcing compliance by third parties to
-this License.
-
- 7. If, as a consequence of a court judgment or allegation of patent
-infringement or for any other reason (not limited to patent issues),
-conditions are imposed on you (whether by court order, agreement or
-otherwise) that contradict the conditions of this License, they do not
-excuse you from the conditions of this License. If you cannot
-distribute so as to satisfy simultaneously your obligations under this
-License and any other pertinent obligations, then as a consequence you
-may not distribute the Program at all. For example, if a patent
-license would not permit royalty-free redistribution of the Program by
-all those who receive copies directly or indirectly through you, then
-the only way you could satisfy both it and this License would be to
-refrain entirely from distribution of the Program.
-
-If any portion of this section is held invalid or unenforceable under
-any particular circumstance, the balance of the section is intended to
-apply and the section as a whole is intended to apply in other
-circumstances.
-
-It is not the purpose of this section to induce you to infringe any
-patents or other property right claims or to contest validity of any
-such claims; this section has the sole purpose of protecting the
-integrity of the free software distribution system, which is
-implemented by public license practices. Many people have made
-generous contributions to the wide range of software distributed
-through that system in reliance on consistent application of that
-system; it is up to the author/donor to decide if he or she is willing
-to distribute software through any other system and a licensee cannot
-impose that choice.
-
-This section is intended to make thoroughly clear what is believed to
-be a consequence of the rest of this License.
-
- 8. If the distribution and/or use of the Program is restricted in
-certain countries either by patents or by copyrighted interfaces, the
-original copyright holder who places the Program under this License
-may add an explicit geographical distribution limitation excluding
-those countries, so that distribution is permitted only in or among
-countries not thus excluded. In such case, this License incorporates
-the limitation as if written in the body of this License.
-
- 9. The Free Software Foundation may publish revised and/or new versions
-of the General Public License from time to time. Such new versions will
-be similar in spirit to the present version, but may differ in detail to
-address new problems or concerns.
-
-Each version is given a distinguishing version number. If the Program
-specifies a version number of this License which applies to it and \"any
-later version\", you have the option of following the terms and conditions
-either of that version or of any later version published by the Free
-Software Foundation. If the Program does not specify a version number of
-this License, you may choose any version ever published by the Free Software
-Foundation.
-
- 10. If you wish to incorporate parts of the Program into other free
-programs whose distribution conditions are different, write to the author
-to ask for permission. For software which is copyrighted by the Free
-Software Foundation, write to the Free Software Foundation; we sometimes
-make exceptions for this. Our decision will be guided by the two goals
-of preserving the free status of all derivatives of our free software and
-of promoting the sharing and reuse of software generally.
-";
-
-
-bool
-cmd_show(char *cmd, class cl_uc *uc, class cl_sim *sim)
-{
- char *s;
-
- if ((s= strtok(NULL, delimiters)) == NULL)
- {
- sim->cmd->printf("Parameter is not given.\n");
- return(DD_FALSE);
- }
- if (*s == 'c')
- sim->cmd->printf("%s\n", copying);
- else if (*s == 'w')
- sim->cmd->printf("%s\n", warranty);
- else
- sim->cmd->printf("Unknown parameter.\n");
- return(DD_FALSE);
-}
-
-
-/* End of s51.src/show.cc */
+++ /dev/null
-/*
- * Simulator of microcontrollers (show.h)
- *
- * Copyright (C) 1999,99 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@*/
-
-#ifndef SHOW_HEADER
-#define SHOW_HEADER
-
-
-extern bool cmd_show(char *cmd, class cl_uc *uc, class cl_sim *sim);
-
-
-#endif
-
-/* End of s51.src/show.h */
+++ /dev/null
--muxi
--z
--b CSEG = 0x0000
--b DSEG = 0x0030
--b XSEG = 0x0000
--b ISEG = 0x0080
--b BSEG = 0x0000
--k /sandeep/work/sdcc/share/lib/small
--l libsdcc
--l libint
--l liblong
--l libfloat
-test_ser.rel
-
--e
+++ /dev/null
-/*
- * Simulator of microcontrollers (where.cc)
- *
- * Copyright (C) 1999,99 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 "ddconfig.h"
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <ctype.h>
-#include "i_string.h"
-
-#include "stypes.h"
-#include "simcl.h"
-#include "memcl.h"
-#include "uccl.h"
-#include "globals.h"
-
-#include "cmdutil.h"
-#include "dump.h"
-
-
-/*
- * Searching for a string in memory
- */
-
-static void
-where_memory(cl_mem *mem, bool cs, class cl_sim *sim)
-{
- char *s;
- uchar *str;
- int len, i, found;
- t_addr start;
-
- if ((s= strtok(NULL, "\0")) == NULL)
- return;
- str= (uchar *)proc_escape(s, &len);
- // assume len < size!
- if (!cs)
- for (i= 0; i < len; i++)
- str[i]= toupper(str[i]);
- start= 0;
- while (start < mem->size-len)
- {
- t_addr tmp= start;
- found= DD_TRUE;
- for (i= 0; found && (i<len); i++)
- found= str[i] == (cs?mem->get(start+i):toupper(mem->get(start+i)));
- if (found)
- {
- dump_memory(mem, &tmp, start+len-1, 8, sim->cmd->actual_console,sim);
- start+= len;
- }
- else
- start++;
- }
- free(str);
-}
-
-
-/*
- * WHERE IRAM string
- */
-
-bool
-cmd_where_iram(char *cmd, class cl_uc *uc, class cl_sim *sim)
-{
- where_memory(uc->mem(MEM_IRAM), DD_FALSE, sim);
- return(DD_FALSE);
-}
-
-bool
-cmd_Where_iram(char *cmd, class cl_uc *uc, class cl_sim *sim)
-{
- where_memory(uc->mem(MEM_IRAM), DD_TRUE, sim);
- return(DD_FALSE);
-}
-
-
-/*
- * WHERE XRAM string
- */
-
-bool
-cmd_where_xram(char *cmd, class cl_uc *uc, class cl_sim *sim)
-{
- uc->eram2xram/*FIXME*/();
- where_memory(uc->mem(MEM_XRAM), DD_FALSE, sim);
- return(DD_FALSE);
-}
-
-bool
-cmd_Where_xram(char *cmd, class cl_uc *uc, class cl_sim *sim)
-{
- uc->eram2xram/*FIXME*/();
- where_memory(uc->mem(MEM_XRAM), DD_TRUE, sim);
- return(DD_FALSE);
-}
-
-
-/*
- * WHERE CODE string
- */
-
-bool
-cmd_where_code(char *cmd, class cl_uc *uc, class cl_sim *sim)
-{
- where_memory(uc->mem(MEM_ROM), DD_FALSE, sim);
- return(DD_FALSE);
-}
-
-bool
-cmd_Where_code(char *cmd, class cl_uc *uc, class cl_sim *sim)
-{
- where_memory(uc->mem(MEM_ROM), DD_TRUE, sim);
- return(DD_FALSE);
-}
-
-
-/* End of s51.src/where.cc */
+++ /dev/null
-/*
- * Simulator of microcontrollers (where.h)
- *
- * Copyright (C) 1999,99 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@*/
-
-#ifndef WHERE_HEADER
-#define WHERE_HEADER
-
-#include "ddconfig.h"
-
-#include "uccl.h"
-
-
-extern bool cmd_where_iram(char *cmd, class cl_uc *uc, class cl_sim *sim);
-extern bool cmd_Where_iram(char *cmd, class cl_uc *uc, class cl_sim *sim);
-extern bool cmd_where_xram(char *cmd, class cl_uc *uc, class cl_sim *sim);
-extern bool cmd_Where_xram(char *cmd, class cl_uc *uc, class cl_sim *sim);
-extern bool cmd_where_code(char *cmd, class cl_uc *uc, class cl_sim *sim);
-extern bool cmd_Where_code(char *cmd, class cl_uc *uc, class cl_sim *sim);
-
-
-#endif
-
-/* End of s51.src/where.h */