summaryrefslogtreecommitdiff
path: root/avr
diff options
context:
space:
mode:
authorLeo C2015-06-06 02:32:29 +0200
committerLeo C2015-06-06 02:32:29 +0200
commit612a69655af9bed89a1ad9e7e9225dfb3ed3ff42 (patch)
treece56fc7e000493e7455d44edf4c36f5b3b415276 /avr
parent215ec4b2e6066ba845bfb4d3c95c7b01cd4492ce (diff)
downloadz180-stamp-612a69655af9bed89a1ad9e7e9225dfb3ed3ff42.zip
esc_char environment variable
Diffstat (limited to 'avr')
-rw-r--r--avr/cmd_boot.c31
-rw-r--r--avr/cmd_gpio.c2
2 files changed, 18 insertions, 15 deletions
diff --git a/avr/cmd_boot.c b/avr/cmd_boot.c
index f9f8f90..448ed48 100644
--- a/avr/cmd_boot.c
+++ b/avr/cmd_boot.c
@@ -16,6 +16,7 @@
#include <util/atomic.h>
#include "command.h"
+#include "env.h"
#include "con-utils.h"
#include "z80-if.h"
#include "z180-serv.h"
@@ -41,11 +42,9 @@ static void z80_load_mem(void)
hdrom_address[sec]+hdrom_length_of_sections[sec] - 1,
hdrom_length_of_sections[sec]);
- z80_bus_cmd(Request);
z80_write_block_P((const FLASH unsigned char *) &hdrom[sec_base], /* src */
hdrom_address[sec], /* dest */
hdrom_length_of_sections[sec]); /* len */
- z80_bus_cmd(Release);
sec_base+=hdrom_length_of_sections[sec];
sec++;
}
@@ -56,11 +55,15 @@ command_ret_t do_loadf(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[]
(void) cmdtp; (void) flag; (void) argc; (void) argv;
if (z80_bus_state() & ZST_RUNNING) {
- printf_P(PSTR("## Can't load while CPU is running!\n"));
+ my_puts_P(PSTR("Can't load while CPU is running!\n"));
return CMD_RET_FAILURE;
}
-
+ if (!(z80_bus_cmd(Request) & ZST_ACQUIRED)) {
+ my_puts_P(PSTR("Bus timeout\n"));
+ return CMD_RET_FAILURE;
+ }
z80_load_mem();
+ z80_bus_cmd(Release);
return CMD_RET_SUCCESS;
}
@@ -147,7 +150,7 @@ command_ret_t do_reset(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[]
{
(void) cmdtp; (void) flag; (void) argc; (void) argv;
- printf_P(PSTR("## CPU now in reset state.\n"));
+ printf_P(PSTR("CPU now in reset state.\n"));
reset_cpu(Reset);
return CMD_RET_SUCCESS;
@@ -169,10 +172,10 @@ void print_con_usage(char esc)
" ?,H - This Help\n"
" R - Reset (Restart) CPU\n"
" Q,X - Return to command line\n"
- " \\ - code input:\n"
- " \\nnn 3 decimal digits character code\n"
- " \\Xhh 2 hexadecimal digits character code\n"
- " ^%c - (Escape char) Type again to send itself\n"
+ " \\ - code input:\n"
+ " \\nnn 3 decimal digits character code\n"
+ " \\Xhh 2 hexadecimal digits character code\n"
+ " ^%c - (Escape char) Type again to send itself\n"
"key>"
), esc + 0x40);
}
@@ -184,6 +187,7 @@ command_ret_t do_console(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv
// uint8_t help_prompt = 0;
uint8_t code = 0;
uint8_t state = 0;
+ char esc_char = (char) getenv_ulong(PSTR(ENV_ESC_CHAR), 16, CONFIG_ESC_CHAR);
(void) cmdtp; (void) flag; (void) argc; (void) argv;
@@ -203,7 +207,7 @@ command_ret_t do_console(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv
if ((ch = my_getchar(0)) >= 0) {
switch (state) {
case 0:
- if (ch == CONFIG_ESC_CHAR) {
+ if (ch == esc_char) {
state = 1;
/* TODO: Timer starten */
} else {
@@ -219,7 +223,7 @@ command_ret_t do_console(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv
case '?':
case 'H':
- print_con_usage(CONFIG_ESC_CHAR);
+ print_con_usage(esc_char);
state = 2;
break;
@@ -238,10 +242,9 @@ command_ret_t do_console(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv
state = 3;
break;
- case CONFIG_ESC_CHAR:
- z80_memfifo_putc(fifo_conin, ch);
- break;
default:
+ if (ch == esc_char)
+ z80_memfifo_putc(fifo_conin, ch);
break;
}
break;
diff --git a/avr/cmd_gpio.c b/avr/cmd_gpio.c
index e0d9b06..5589381 100644
--- a/avr/cmd_gpio.c
+++ b/avr/cmd_gpio.c
@@ -35,7 +35,7 @@ static void pinnames_get(void)
memset(pin_names, 0, sizeof(pin_names));
pin_names_width = 0;
-/* TODO: enters endless loop on wron parameters */
+/* TODO: enters endless loop on wrong parameters */
if ((lp = getenv(PSTR(ENV_PINALIAS))) != NULL) {
pin_names[namestr] = strdup(lp);