]> cloudbase.mooo.com Git - z180-stamp.git/blobdiff - avr/env.c
some cleanup, more debugging
[z180-stamp.git] / avr / env.c
index 9ea355fa974001c9c9b2e4264c9b2356902c7769..3b299c4b9cb18e99d0a828dc9ceb070b983910f2 100644 (file)
--- a/avr/env.c
+++ b/avr/env.c
@@ -1,20 +1,15 @@
 /*
  * (C) Copyright 2014 Leo C. <erbl259-lmu@yahoo.de>
  *
- * SPDX-License-Identifier:    GPL-2.0+
+ * SPDX-License-Identifier:    GPL-2.0
  */
 
-#include "common.h"
-#include <string.h>
-#include <stdlib.h>
+#include "env.h"
 #include <avr/eeprom.h>
 
 #include "config.h"
 #include "debug.h"
-#include "xmalloc.h"
 #include "crc.h"
-#include "command.h"
-#include "env.h"
 
 
 #define ENV_SIZE       (CONFIG_ENV_SIZE - sizeof(uint16_t) -1)
 const FLASH char default_env[] = {
        ENV_BAUDRATE      "=" "115200" DELIM
        ENV_BOOTDELAY     "=" "3" DELIM
-       ENV_BOOTCMD               "=" "reset; loadf; go ${startaddr}" DELIM
+       ENV_BOOTCMD               "=" "pin ${pins}; loadcpm3; go ${startaddress}" DELIM
        ENV_CPM3_SYSFILE  "=" CONFIG_CPM3_SYSFILE DELIM
        ENV_PINALIAS      "=" "0:PG5,1:PG4,2:PB4,3:PB5,4:PB6,5:PB7,"
                                                  "6:PG3,7:PG2,8:PG1,9:PG0,10:PE7" DELIM
        ENV_STARTADDRESS  "=" "0" DELIM
+       "pins"                    "=" "2,8 low 9 high 3 2" DELIM
        DELIM
 };
 
@@ -197,7 +193,7 @@ int envlist_import(uint8_t flags)
                                return -1;
                }
 
-               np = (char *) xmalloc(len+1);
+               np = (char *) malloc(len+1);
                if (np == NULL) {
                        printf_P(PSTR("## Can't malloc %d bytes\n"), len+1);
                        return 1;
@@ -316,7 +312,7 @@ int env_init(void)
 }
 
 
-char *getenv(const MEMX char *name)
+char *getenv_str(const MEMX char *name)
 {
        env_item_t *ep;
        char *ret = NULL;
@@ -449,7 +445,7 @@ int env_print(const MEMX char *name)
  * @return 0 if ok, 1 on error
  */
 static
-command_ret_t _do_env_set(int flag, int argc, char * const argv[])
+command_ret_t _do_env_set(uint_fast8_t flag, int argc, char * const argv[])
 {
        int i, len;
        char *name, *value, *valp, *p;
@@ -486,7 +482,7 @@ command_ret_t _do_env_set(int flag, int argc, char * const argv[])
        for (i = 2, len += 1; i < argc; ++i)
                len += strlen(argv[i]) + 1;
 
-       value = xmalloc(len);
+       value = malloc(len);
        if (value == NULL) {
                printf_P(PSTR("## Can't malloc %d bytes\n"), len);
                return CMD_RET_FAILURE;
@@ -624,7 +620,25 @@ unsigned long getenv_ulong(const MEMX char *name, int base, unsigned long defaul
 }
 
 
-command_ret_t do_env_print(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
+/*
+ * Read an environment variable as a boolean
+ */
+bool getenv_yesno(const MEMX char *name)
+{
+       char *s = getenv_str(name);
+
+       if (s == NULL)
+               return false;
+
+       return strchr_P(PSTR("1yYtT"), *s) != NULL;
+
+/*
+       return *s == '1' || *s == 'y' || *s == 'Y' || *s == 't' || *s == 'T' ?
+               1 : 0;
+*/
+}
+
+command_ret_t do_env_print(cmd_tbl_t *cmdtp, uint_fast8_t flag, int argc, char * const argv[])
 {
        command_ret_t rc = CMD_RET_SUCCESS;
 
@@ -653,7 +667,7 @@ command_ret_t do_env_print(cmd_tbl_t *cmdtp, int flag, int argc, char * const ar
 }
 
 
-command_ret_t do_env_set(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
+command_ret_t do_env_set(cmd_tbl_t *cmdtp, uint_fast8_t flag, int argc, char * const argv[])
 {
        (void) cmdtp;
 
@@ -664,7 +678,7 @@ command_ret_t do_env_set(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv
 }
 
 
-command_ret_t do_env_default(cmd_tbl_t *cmdtp, int flag,
+command_ret_t do_env_default(cmd_tbl_t *cmdtp, uint_fast8_t flag,
                          int argc, char * const argv[])
 {
        (void) cmdtp; (void) flag; (void) argc; (void) argv;
@@ -682,7 +696,7 @@ command_ret_t do_env_default(cmd_tbl_t *cmdtp, int flag,
 }
 
 
-command_ret_t do_env_save(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
+command_ret_t do_env_save(cmd_tbl_t *cmdtp, uint_fast8_t flag, int argc, char * const argv[])
 {
        (void) cmdtp; (void) flag; (void) argc; (void) argv;