]> cloudbase.mooo.com Git - z180-stamp.git/blobdiff - avr/cmd_loadcpm3.c
new command: boot - boot default, i.e., run 'bootcmd'
[z180-stamp.git] / avr / cmd_loadcpm3.c
index f847290a8ef0be32fa8af4feb3ca6aa5fd220b97..6ccb3f9597245f05081747187b59ebf9c837da26 100644 (file)
@@ -8,12 +8,9 @@
  * See CP/M 3 System Manual, Appendix D: CPM3.SYS File Format
  */
 
-#include "common.h"
+#include "cmd_loadcpm3.h"
 #include <ctype.h>
-#include <string.h>
-#include <stdbool.h>
 
-#include "command.h"
 #include "env.h"
 #include "ff.h"
 #include "eval_arg.h"
@@ -74,7 +71,7 @@ command_ret_t do_loadcpm3(cmd_tbl_t *cmdtp, uint_fast8_t flag, int argc, char *
        uint32_t banked_base;
        char *fname;
        FIL File;
-       char default_fname[] = CONFIG_CPM3_SYSFILE;
+       char default_fname[strlen_P(PSTR(CONFIG_CPM3_SYSFILE)) + 1];
        unsigned int br;                                        /* bytes read */
        uint8_t buffer[RS];
        int res;
@@ -93,11 +90,13 @@ command_ret_t do_loadcpm3(cmd_tbl_t *cmdtp, uint_fast8_t flag, int argc, char *
                common_base = eval_arg(argv[2], NULL);
 
        fname = getenv_str(PSTR(ENV_CPM3_SYSFILE));
+       if (fname == NULL || *fname == '\0') {
+               strcpy_P(default_fname, PSTR(CONFIG_CPM3_SYSFILE));
+               fname = default_fname;
+       }
        if (argc > 1) {
                fname = argv[1];
        }
-       if (fname == NULL || *fname == '\0')
-               fname = default_fname;
 
        res = f_open(&File, fname, FA_READ );
        if (res) {