* Misc boot support
*/
#include "common.h"
-#include <stdlib.h>
#include <ctype.h>
#include <util/atomic.h>
#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"
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;
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;
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;
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;
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;
}
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--)
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"),