diff options
| author | Xavier ASUS <xavi92psx@gmail.com> | 2019-10-18 00:31:54 +0200 |
|---|---|---|
| committer | Xavier ASUS <xavi92psx@gmail.com> | 2019-10-18 00:31:54 +0200 |
| commit | 268a53de823a6750d6256ee1fb1e7707b4b45740 (patch) | |
| tree | 42c1799a9a82b2f7d9790ee9fe181d72a7274751 /sim/ucsim/gui.src/serio.src/frontend.hh | |
| download | sdcc-gas-268a53de823a6750d6256ee1fb1e7707b4b45740.tar.gz | |
sdcc-3.9.0 fork implementing GNU assembler syntax
This fork aims to provide better support for stm8-binutils
Diffstat (limited to 'sim/ucsim/gui.src/serio.src/frontend.hh')
| -rw-r--r-- | sim/ucsim/gui.src/serio.src/frontend.hh | 64 |
1 files changed, 64 insertions, 0 deletions
diff --git a/sim/ucsim/gui.src/serio.src/frontend.hh b/sim/ucsim/gui.src/serio.src/frontend.hh new file mode 100644 index 0000000..c7330ff --- /dev/null +++ b/sim/ucsim/gui.src/serio.src/frontend.hh @@ -0,0 +1,64 @@ +/****************************************************************************** + * to emulate the serial input and output of an 8051 controller * + * frontend.hh - ncurses frontend * + ******************************************************************************/ +#ifndef FRONTEND_HEADER +#define FRONTEND_HEADER + +#include <sys/types.h> +#include <curses.h> +#include <stdint.h> + +#include "config.h" + +struct COORDS_S +{ + int min_x; + int max_x; + int min_y; + int max_y; +}; +typedef struct COORDS_S COORDS; + +struct COORDINATES_S +{ + int x; + int y; +}; +typedef struct COORDINATES_S COORDINATES; + +enum filter_t + { + flt_none, + flt_hex + }; + +class Viewer +{ +public: + Viewer(); + virtual ~Viewer(); + virtual void DrawBox(void); + virtual void AddStrOutWin(char *string); + virtual void GetStrInWin(char *string); + virtual void AddChOutWin(char b); + virtual int GetChInWin(char *res); + + virtual void iflt_mode(enum filter_t iflt); + virtual void oflt_mode(enum filter_t oflt); + virtual void set_length(int l); + +private: + WINDOW *inp, *outp; + COORDS win_c, inp_c, outp_c; + COORDINATES topleft, bottomright, current; + int middle_y, middle_x; + enum filter_t flt_in, flt_out; + unsigned int ocnt, icnt; + int line_length; + + uint8_t ohex_buf[16], ihex_buf[16]; + int ohex_ptr, ihex_ptr, ihex_high, ihex_val; +}; + +#endif |
