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/s51.src/test/monitor.c | |
| 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/s51.src/test/monitor.c')
| -rw-r--r-- | sim/ucsim/s51.src/test/monitor.c | 65 |
1 files changed, 65 insertions, 0 deletions
diff --git a/sim/ucsim/s51.src/test/monitor.c b/sim/ucsim/s51.src/test/monitor.c new file mode 100644 index 0000000..319d5a2 --- /dev/null +++ b/sim/ucsim/s51.src/test/monitor.c @@ -0,0 +1,65 @@ +#include <string.h> +#include "hw.h" + +#include "serial.h" +#include "print.h" + +__xdata char *simif; + +int cnt; + +void process(char *cmd) +{ + if (strstr(cmd, "test") == cmd) + { + cnt++; + print_c('_');print(cmd);print_c('_'); + print_f("This is a test %d\n", cnt); + } + else if (strstr(cmd, "dump") == cmd) + { + int i; + print_c('_');print(cmd);print_c('_'); + for (i= 0; i<100; i++) + { + print_cx(i); + print(" "); + } + print("\n----\n"); + } + else + { + print("Unknown command: \"");print(cmd);print("\"\n"); + } +} + +__xdata char cmd[40]; +char ptr; + +void main(void) +{ + simif= (__xdata char *)0xffff; + serial_init(9600); + cmd[ptr=0]= 0; + print("Hello World!\n"); + P1= 0; + while (1) + { + if (serial_received()) + { + char c= serial_receive(); + if ((c == '\n') || + (c == '\r')) + { + process(cmd); + cmd[ptr=0]= 0; + } + else if (ptr < 39) + { + cmd[ptr++]= c; + cmd[ptr]= 0; + print("cmd=");print(cmd);print_c('\n'); + } + } + } +} |
