summaryrefslogtreecommitdiff
path: root/avr
diff options
context:
space:
mode:
authorLeo C2016-06-21 15:10:40 +0200
committerLeo C2016-06-21 17:14:07 +0200
commit2d914b45c43c9a4c986e88428d1e28c0710ae298 (patch)
treed6d479030247a0699fdf9f41aae547b56068ca14 /avr
parentfcd2239eb2849432269ba4456718b657fdff3972 (diff)
downloadz180-stamp-2d914b45c43c9a4c986e88428d1e28c0710ae298.zip
aval_arg() for all commands
Diffstat (limited to 'avr')
-rw-r--r--avr/cmd_boot.c16
-rw-r--r--avr/cmd_fat.c12
-rw-r--r--avr/cmd_loadcpm3.c8
-rw-r--r--avr/cmd_misc.c8
-rw-r--r--avr/cmd_sd.c49
-rw-r--r--avr/debug.c19
6 files changed, 57 insertions, 55 deletions
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 <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"),
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. <erbl259-lmu@yahoo.de>
+ * (C) Copyright 2014,2016 Leo C. <erbl259-lmu@yahoo.de>
*
- * SPDX-License-Identifier: GPL-2.0+
+ * SPDX-License-Identifier: GPL-2.0
*/
/*
@@ -9,13 +9,13 @@
*/
#include "common.h"
-#include <stdlib.h>
#include <string.h>
#include <stdbool.h>
#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. <erbl259-lmu@yahoo.de>
+ * (C) Copyright 2015,2016 Leo C. <erbl259-lmu@yahoo.de>
*
* SPDX-License-Identifier: GPL-2.0
*/
@@ -9,7 +9,6 @@
*/
#include "common.h"
-#include <stdlib.h>
#include <ctype.h>
#include <string.h>
#include <stdbool.h>
@@ -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. <erbl259-lmu@yahoo.de>
+ * (C) Copyright 2014,2016 Leo C. <erbl259-lmu@yahoo.de>
*
* 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 <stdlib.h>
+#include "eval_arg.h"
#include <stdbool.h>
#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 <stdlib.h>
+//#include <stdlib.h>
#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)",
- "<drive> [sector [count ]]"
+ "drive [sector [count ]]"
),
CMD_TBL_ITEM(
read, 2, 1, do_read,
"Read disk sector(s) into meomory",
- "<drive> [sector [count [memaddr]]]"
+ "drive [sector [count [memaddr]]]"
),
CMD_TBL_ITEM(
write, 2, 1, do_write,
"Write sector(s) from meomory to disk",
- "<drive> [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. <erbl259-lmu@yahoo.de>
+ * (C) Copyright 2014,2016 Leo C. <erbl259-lmu@yahoo.de>
*
* SPDX-License-Identifier: GPL-2.0
*/
#include "debug.h"
#include "common.h"
-#include <stdlib.h>
+#include <stdlib.h> /* __malloc_margin */
#include <string.h>
#include <ctype.h>
#include <avr/eeprom.h>
#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;