]> cloudbase.mooo.com Git - z180-stamp.git/blobdiff - avr/cmd_boot.c
aval_arg() for all commands
[z180-stamp.git] / avr / cmd_boot.c
index 14fbab34b20bf8462fe024514eba5e4607b4e9bb..a83968f3ee4be7da08982cb4e406849a31240044 100644 (file)
@@ -11,7 +11,6 @@
  * Misc boot support
  */
 #include "common.h"
-#include <stdlib.h>
 #include <ctype.h>
 #include <util/atomic.h>
 
@@ -19,6 +18,7 @@
 #include "cli_readline.h"      /* console_buffer[] */
 #include "cli.h"                       /* run_command() */
 #include "env.h"
+#include "eval_arg.h"
 #include "con-utils.h"
 #include "getopt-min.h"
 #include "z80-if.h"
@@ -156,7 +156,7 @@ command_ret_t do_bootcf(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[
                                boot_param.stages--;
                        break;
                case 'a':
-                       val = strtoul(optarg, NULL, 16);
+                       val = eval_arg(optarg, NULL);
                        if (val < 0x100 || val > 0xFE00) {
                                printf_P(PSTR("Address out of range: 0x%.4lX\n"), val);
                                return CMD_RET_FAILURE;
@@ -164,7 +164,7 @@ command_ret_t do_bootcf(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[
                        boot_param.loadaddr = val;
                        break;
                case 's':
-                       val = strtoul(optarg, NULL, 16);
+                       val = eval_arg(optarg, NULL);
                        if (val > 255) {
                                printf_P(PSTR("Start sector out of range: 0x%lX\n"), val);
                                return CMD_RET_FAILURE;
@@ -172,7 +172,7 @@ command_ret_t do_bootcf(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[
                        boot_param.sec_start = val;
                        break;
                case 'c':
-                       val = strtoul(optarg, NULL, 16);
+                       val = eval_arg(optarg, NULL);
                        if (val > 127) {
                                printf_P(PSTR("Sector count out of range: 0x%lX\n"), val);
                                return CMD_RET_FAILURE;
@@ -180,7 +180,7 @@ command_ret_t do_bootcf(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[
                        boot_param.sec_cnt = val;
                        break;
                case 't':
-                       val = strtoul(optarg, NULL, 10);
+                       val = eval_arg(optarg, NULL);
                        if (val < 0x1 || val > 0xFFFF) {
                                printf_P(PSTR("Timeout value out of range: 0x%lX\n"), val);
                                return CMD_RET_FAILURE;
@@ -188,7 +188,7 @@ command_ret_t do_bootcf(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[
                        boot_param.timeout = val;
                        break;
                case 'i':
-                       val = strtoul(optarg, NULL, 16);
+                       val = eval_arg(optarg, NULL);
                        if (val < 0x01 || val > 0xFF) {
                                printf_P(PSTR("Partition id out of range: 0x%lX\n"), val);
                                return CMD_RET_FAILURE;
@@ -286,7 +286,7 @@ command_ret_t do_busreq_pulse(cmd_tbl_t *cmdtp, int flag, int argc, char * const
        }
 
        if (argc > 1)
-               count = (uint16_t) strtoul(argv[1], NULL, 16);
+               count = (uint16_t) eval_arg(argv[1], NULL);
 
        z80_bus_cmd(Request);
        while (count--)
@@ -304,7 +304,7 @@ command_ret_t do_go(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
 
        if (argc < 2)
                return CMD_RET_USAGE;
-       addr = strtoul(argv[1], NULL, 16);
+       addr = eval_arg(argv[1], NULL);
        if (addr >= (1UL<<16)) {
                printf_P(PSTR("## Startaddress 0x%05lx too high.\n"
                        "   (Out of logical address space (0x00000-0x0ffff))\n"),