]> cloudbase.mooo.com Git - z180-stamp.git/blobdiff - avr/cmd_sd.c
Version 0.6.8.2
[z180-stamp.git] / avr / cmd_sd.c
index 46dbcfdc3ff30619f80f1593338e9a2a5a59a839..b84c4be758ec94b0d6797479c92ad56062dd7fc6 100644 (file)
@@ -1,11 +1,18 @@
+/*
+ * (C) Copyright 2014 Leo C. <erbl259-lmu@yahoo.de>
+ *
+ * SPDX-License-Identifier:    GPL-2.0+
+ */
+
 #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"
 
 
 /*
@@ -23,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);
 
@@ -45,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"));
@@ -82,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)) {
@@ -132,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;
@@ -141,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++) {
@@ -185,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;
@@ -193,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;) {
@@ -247,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;
@@ -255,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;) {
@@ -302,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;
@@ -316,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(