From: Leo C Date: Tue, 21 Jun 2016 13:10:40 +0000 (+0200) Subject: aval_arg() for all commands X-Git-Tag: hexrel-6.8.1~2 X-Git-Url: http://cloudbase.mooo.com/gitweb/z180-stamp.git/commitdiff_plain/2d914b45c43c9a4c986e88428d1e28c0710ae298 aval_arg() for all commands --- diff --git a/avr/cmd_boot.c b/avr/cmd_boot.c index 14fbab3..a83968f 100644 --- a/avr/cmd_boot.c +++ b/avr/cmd_boot.c @@ -11,7 +11,6 @@ * Misc boot support */ #include "common.h" -#include #include #include @@ -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"), diff --git a/avr/cmd_fat.c b/avr/cmd_fat.c index af2f772..26362b2 100644 --- a/avr/cmd_fat.c +++ b/avr/cmd_fat.c @@ -1,7 +1,7 @@ /* - * (C) Copyright 2014 Leo C. + * (C) Copyright 2014,2016 Leo C. * - * SPDX-License-Identifier: GPL-2.0+ + * SPDX-License-Identifier: GPL-2.0 */ /* @@ -9,13 +9,13 @@ */ #include "common.h" -#include #include #include #include "command.h" #include "ff.h" #include "z80-if.h" +#include "eval_arg.h" #include "con-utils.h" #include "print-utils.h" #include "time.h" @@ -349,17 +349,17 @@ command_ret_t do_fat_rw(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[ if (argc < (dowrite ? 4 : 3)) return CMD_RET_USAGE; - addr = strtoul(argv[2], 0, 16); + addr = eval_arg(argv[2], NULL); if (addr >= MAX_MEMORY) { printf_P(PSTR("address too high: 0x%0lx\n"), addr); return CMD_RET_FAILURE; } if (argc > 3) - bytes = strtoul(argv[3], 0, 16); + bytes = eval_arg(argv[3], NULL); else bytes = MAX_MEMORY; if (argc > 4) - pos = strtoul(argv[4], 0, 16); + pos = eval_arg(argv[4], NULL); else pos = 0; diff --git a/avr/cmd_loadcpm3.c b/avr/cmd_loadcpm3.c index 02ec47f..e6e2cdc 100644 --- a/avr/cmd_loadcpm3.c +++ b/avr/cmd_loadcpm3.c @@ -1,5 +1,5 @@ /* - * (C) Copyright 2015 Leo C. + * (C) Copyright 2015,2016 Leo C. * * SPDX-License-Identifier: GPL-2.0 */ @@ -9,7 +9,6 @@ */ #include "common.h" -#include #include #include #include @@ -17,6 +16,7 @@ #include "command.h" #include "env.h" #include "ff.h" +#include "eval_arg.h" #include "con-utils.h" #include "z80-if.h" #include "debug.h" @@ -88,9 +88,9 @@ command_ret_t do_loadcpm3(cmd_tbl_t *cmdtp, int flag, int argc, char * const arg CONFIG_CPM3_BANKED_BASE); if (argc > 3) - banked_base = strtoul(argv[3], NULL, 16); + banked_base = eval_arg(argv[3], NULL); if (argc > 2) - common_base = strtoul(argv[2], NULL, 16); + common_base = eval_arg(argv[2], NULL); fname = getenv_str(PSTR(ENV_CPM3_SYSFILE)); if (argc > 1) { diff --git a/avr/cmd_misc.c b/avr/cmd_misc.c index 1ff6f5d..9061b5a 100644 --- a/avr/cmd_misc.c +++ b/avr/cmd_misc.c @@ -1,14 +1,14 @@ /* - * (C) Copyright 2014 Leo C. + * (C) Copyright 2014,2016 Leo C. * * Copyright 2000-2009 * Wolfgang Denk, DENX Software Engineering, wd@denx.de. * - * SPDX-License-Identifier: GPL-2.0+ + * SPDX-License-Identifier: GPL-2.0 */ #include "common.h" -#include +#include "eval_arg.h" #include #include "command.h" @@ -64,7 +64,7 @@ command_ret_t do_sleep(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[] if (argc != 2) return CMD_RET_USAGE; - delay = strtoul(argv[1], &sp, 10); + delay = eval_arg(argv[1], &sp); if (*sp == 'm') { millisec = 1; diff --git a/avr/cmd_sd.c b/avr/cmd_sd.c index 6b75d6e..b84c4be 100644 --- a/avr/cmd_sd.c +++ b/avr/cmd_sd.c @@ -5,13 +5,14 @@ */ #include "common.h" -#include +//#include #include "command.h" #include "diskio.h" #include "ff.h" -#include "z80-if.h" +#include "eval_arg.h" #include "print-utils.h" +#include "z80-if.h" /* @@ -29,7 +30,7 @@ command_ret_t do_status(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[ if (argc < 2) return CMD_RET_USAGE; - dev = (BYTE) strtoul(argv[1], 0, 10); + dev = (BYTE) eval_arg(argv[1], NULL); res = disk_status(dev); printf_P(PSTR("Socket status: %02x\n"), res); @@ -51,7 +52,7 @@ command_ret_t do_init(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[]) if (argc < 2) return CMD_RET_USAGE; - dev = (BYTE) strtoul(argv[1], 0, 10); + dev = (BYTE) eval_arg(argv[1], NULL); if (disk_status(dev) & STA_NODISK) { printf_P(PSTR("No Disk\n")); @@ -88,7 +89,7 @@ command_ret_t do_info(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[]) if (argc < 2) return CMD_RET_USAGE; - dev = (BYTE) strtoul(argv[1], 0, 10); + dev = (BYTE) eval_arg(argv[1], NULL); res = disk_status(dev); if (res & (STA_NODISK | STA_NOINIT)) { @@ -138,7 +139,7 @@ command_ret_t do_dump(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[]) if (argc < 2) return CMD_RET_USAGE; - dev = (BYTE) strtoul(argv[1], NULL, 10); + dev = (BYTE) eval_arg(argv[1], NULL); if (dev != dev_last) sec_last = 0; sec = sec_last; @@ -147,9 +148,9 @@ command_ret_t do_dump(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[]) if ((flag & CMD_FLAG_REPEAT) == 0) { /* If another parameter, it is the sector to dump. */ if (argc > 2) - sec = strtoul(argv[2], 0, 10); + sec = eval_arg(argv[2], NULL); if (argc > 3) - count = (UINT) strtoul(argv[3], 0, 10); + count = (UINT) eval_arg(argv[3], NULL); } for ( ; count; count--, sec++) { @@ -191,7 +192,7 @@ command_ret_t do_read(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[]) if (argc < 2) return CMD_RET_USAGE; - dev = (BYTE) strtoul(argv[1], NULL, 10); + dev = (BYTE) eval_arg(argv[1], NULL); sec = sec_last; count = 1; addr = addr_last; @@ -199,11 +200,11 @@ command_ret_t do_read(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[]) if ((flag & CMD_FLAG_REPEAT) == 0) { /* If another parameter, it is the sector to dump. */ if (argc > 2) - sec = strtoul(argv[2], 0, 10); + sec = eval_arg(argv[2], NULL); if (argc > 3) - count = strtoul(argv[3], 0, 10); + count = eval_arg(argv[3], NULL); if (argc > 4) - addr = strtoul(argv[4], 0, 16); + addr = eval_arg(argv[4], NULL); } for (nr = 0; nr < count;) { @@ -253,7 +254,7 @@ command_ret_t do_write(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[] if (argc < 2) return CMD_RET_USAGE; - dev = (BYTE) strtoul(argv[1], NULL, 10); + dev = (BYTE) eval_arg(argv[1], NULL); sec = sec_last; addr = addr_last; count = 1; @@ -261,11 +262,11 @@ command_ret_t do_write(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[] if ((flag & CMD_FLAG_REPEAT) == 0) { /* If another parameter, it is the sector to dump. */ if (argc > 2) - sec = strtoul(argv[2], 0, 10); + sec = eval_arg(argv[2], NULL); if (argc > 3) - count = strtoul(argv[3], 0, 10); + count = eval_arg(argv[3], NULL); if (argc > 4) - addr = strtoul(argv[4], 0, 16); + addr = eval_arg(argv[4], NULL); } for (nr = 0; nr < count;) { @@ -308,7 +309,7 @@ command_ret_t do_ioctl_sync(cmd_tbl_t *cmdtp, int flag, int argc, char * const a if (argc < 2) return CMD_RET_USAGE; - dev = (BYTE) strtoul(argv[1], 0, 10); + dev = (BYTE) eval_arg(argv[1], NULL); printf_P(PSTR("rc=%.2x\n"), disk_ioctl(dev, CTRL_SYNC, 0)); return CMD_RET_SUCCESS; @@ -322,37 +323,37 @@ cmd_tbl_t cmd_sd_sub[] = { CMD_TBL_ITEM( status, 2, 1, do_status, "Socket staus", - "" + "drive" ), CMD_TBL_ITEM( init, 2, 1, do_init, "Initialize disk", - "" + "drive" ), CMD_TBL_ITEM( info, 2, 1, do_info, "Disk info", - "" + "drive" ), CMD_TBL_ITEM( dump, CONFIG_SYS_MAXARGS, 1, do_dump, "Dump sector(s)", - " [sector [count ]]" + "drive [sector [count ]]" ), CMD_TBL_ITEM( read, 2, 1, do_read, "Read disk sector(s) into meomory", - " [sector [count [memaddr]]]" + "drive [sector [count [memaddr]]]" ), CMD_TBL_ITEM( write, 2, 1, do_write, "Write sector(s) from meomory to disk", - " [sector [count [memaddr]]]" + "drive [sector [count [memaddr]]]" ), CMD_TBL_ITEM( sync, 2, 1, do_ioctl_sync, "Device control: SYNC", - "" + "drive" ), CMD_TBL_ITEM( diff --git a/avr/debug.c b/avr/debug.c index e38ccb2..1b4ecc2 100644 --- a/avr/debug.c +++ b/avr/debug.c @@ -1,18 +1,19 @@ /* - * (C) Copyright 2014 Leo C. + * (C) Copyright 2014,2016 Leo C. * * SPDX-License-Identifier: GPL-2.0 */ #include "debug.h" #include "common.h" -#include +#include /* __malloc_margin */ #include #include #include #include "command.h" #include "cli_readline.h" +#include "eval_arg.h" #include "print-utils.h" /* @@ -65,11 +66,11 @@ command_ret_t do_dump_mem(cmd_tbl_t *cmdtp, int flag, int argc, char * const arg } /* Address is specified since argc > 1 */ - addr = strtoul(argv[1], NULL, 16); + addr = eval_arg(argv[1], NULL); /* If another parameter, it is the length to display. */ if (argc > 2) - length = (uint16_t) strtoul(argv[2], NULL, 16); + length = (uint16_t) eval_arg(argv[2], NULL); /* Print the lines. */ dump_mem(addr, addr, length, readwhat, NULL); @@ -88,9 +89,9 @@ command_ret_t do_eep_cp(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[ if (argc != 4) return CMD_RET_USAGE; - src = (size_t) strtoul(argv[1], NULL, 16); - dest = (size_t) strtoul(argv[2], NULL, 16); - count = (size_t) strtoul(argv[3], NULL, 16); + src = (size_t) eval_arg(argv[1], NULL); + dest = (size_t) eval_arg(argv[2], NULL); + count = (size_t) eval_arg(argv[3], NULL); if (src > E2END) { debug("src > EEPROM size: 0x%04x\n", src); @@ -160,7 +161,7 @@ mod_mem_avr(cmd_tbl_t *cmdtp, int incrflag, int flag, int argc, char * const arg /* Address is specified since argc > 1 */ - addr = (uint8_t *) (size_t) strtoul(argv[1], NULL, 16); + addr = (uint8_t *) (size_t) eval_arg(argv[1], NULL); } /* Print the address, followed by value. Then accept input for @@ -181,7 +182,7 @@ mod_mem_avr(cmd_tbl_t *cmdtp, int incrflag, int flag, int argc, char * const arg } else { char *endp; - data = strtoul(console_buffer, &endp, 16); + data = eval_arg(console_buffer, &endp); nbytes = endp - console_buffer; if (nbytes) { *addr = data;