]> cloudbase.mooo.com Git - z180-stamp.git/commitdiff
cmd_attach.c, cmd_boot.c, cmd_loadcpm3.c: use cmd_error()
authorLeo C <erbl259-lmu@yahoo.de>
Mon, 3 Sep 2018 10:03:37 +0000 (12:03 +0200)
committerLeo C <erbl259-lmu@yahoo.de>
Tue, 4 Sep 2018 19:26:04 +0000 (21:26 +0200)
13 files changed:
avr/cmd_attach.c
avr/cmd_boot.c
avr/cmd_date.c
avr/cmd_fat.c
avr/cmd_loadcpm3.c
avr/cmd_sd.c
avr/command_tbl.c
avr/strerror.c
avr/z180-serv.c
include/common.h
include/config.h
include/errnum.h
include/z180-serv.h

index fcc4f4951e02ae07249f4e6104b3253d756c2dbf..09496875c3bf28f0b3ce034f419659c263b2d6db 100644 (file)
 #include "getopt-min.h"
 
 
-static const FLASH char * const FLASH rc_messages[] = {
-                       FSTR("OK"),
-                       FSTR("Unknown error"),
-                       FSTR("Disk number out of range 0..7"),
-                       FSTR("Disk allready attached"),
-                       FSTR("Disk not attached"),
-                       FSTR("File not found"),
-                       FSTR("Not enough memory"),
-                       FSTR("Error opening file"),
-                       FSTR("File allready attached to other drive"),
-               };
-
-static
-void printerror(int rc, uint8_t unit, char *fn)
-{
-       if (rc < 0 || (unsigned) rc >= ARRAY_SIZE(rc_messages))
-               rc = 1;
-
-#if GCC_BUG_61443
-               printf_P(PSTR("Attachment of '%s' to dsk%d failed: "), fn, unit);
-               my_puts_P(rc_messages[rc]);
-               my_puts_P(PSTR("!\n"));
-#else
-               printf_P(PSTR("Attachment of '%s' to dsk%d failed: %S!\n"),
-                               fn, unit, rc_messages[rc]);
-#endif
-}
-
 /*
  * attach [[options] [unit [diskfile]]]
  *
@@ -58,7 +30,7 @@ void printerror(int rc, uint8_t unit, char *fn)
 
 command_ret_t do_attach(cmd_tbl_t *cmdtp, uint_fast8_t flag, int argc, char * const argv[])
 {
-       uint8_t unit;
+       uint8_t unit = 0;
        char *filename = NULL;
        bool detach = false;
        bool detach_all = false;
@@ -134,8 +106,7 @@ command_ret_t do_attach(cmd_tbl_t *cmdtp, uint_fast8_t flag, int argc, char * co
                        strncmp_P(argv[optind], PSTR("dsk"), 3) ||
                        (unit = argv[optind][3] - '0') >= CONFIG_CPM_MAX_DRIVE)) {
 
-               printf_P(PSTR("Unknown device: '%s'\n"), argv[optind]);
-               return CMD_RET_FAILURE;
+               cmd_error(CMD_RET_FAILURE, 0, PSTR("Invalid device: '%s'"), argv[optind]);
        }
 
        if (detach) {
@@ -152,7 +123,7 @@ command_ret_t do_attach(cmd_tbl_t *cmdtp, uint_fast8_t flag, int argc, char * co
 
        res = drv_attach(unit, filename, options);
        if (res)
-               printerror(res, unit, filename);
+               cmd_error(CMD_RET_FAILURE, res, PSTR("Attachment of '%s' to dsk%d failed"),     filename, unit);
 
-       return res ? CMD_RET_FAILURE : CMD_RET_SUCCESS;
+       return CMD_RET_SUCCESS;
 }
index b4aa5c027c8e75f66ec1d68c7ecf4b4f9e499118..a1afe7703a686fe119be7e19d9e04e2244535ee3 100644 (file)
@@ -58,18 +58,18 @@ static void z80_load_mem(int_fast8_t verbosity,
        }
 }
 
-command_ret_t do_loadf(cmd_tbl_t *cmdtp, uint_fast8_t flag, int argc, char * const argv[])
+command_ret_t do_loadf(cmd_tbl_t *cmdtp UNUSED, uint_fast8_t flag UNUSED, int argc UNUSED, char * const argv[] UNUSED)
 {
-       (void) cmdtp; (void) flag; (void) argc; (void) argv;
+       ERRNUM res = ESUCCESS;
 
        if (z80_bus_state() & ZST_RUNNING) {
-               my_puts_P(PSTR("Can't load while CPU is running!\n"));
-               return CMD_RET_FAILURE;
-       }
-       if (!(z80_bus_cmd(Request) & ZST_ACQUIRED)) {
-               my_puts_P(PSTR("Bus timeout\n"));
-               return  CMD_RET_FAILURE;
+               res = ERUNNING;
+       } else if (!(z80_bus_cmd(Request) & ZST_ACQUIRED)) {
+               res = EBUSTO;
        }
+       if (res != ESUCCESS)
+               cmd_error(CMD_RET_FAILURE, res, NULL);
+
        z80_load_mem(2, hdrom,
                                &hdrom_sections,
                                hdrom_address,
@@ -111,7 +111,7 @@ void print_vars(char *title)
  *             -v      verbose
  */
 
-command_ret_t do_bootcf(cmd_tbl_t *cmdtp, uint_fast8_t flag, int argc, char * const argv[])
+command_ret_t do_bootcf(cmd_tbl_t *cmdtp UNUSED, uint_fast8_t flag UNUSED, int argc, char * const argv[])
 {
        struct {
                uint8_t  jr[2];
@@ -134,8 +134,7 @@ command_ret_t do_bootcf(cmd_tbl_t *cmdtp, uint_fast8_t flag, int argc, char * co
        int_fast8_t verbosity = 0;
        uint8_t default_stages;
        uint32_t val;
-
-       (void) cmdtp; (void) flag;
+       ERRNUM res = ESUCCESS;
 
        /* get default values */
        memcpy_P(&boot_param, cfboot, sizeof boot_param);
@@ -211,16 +210,14 @@ command_ret_t do_bootcf(cmd_tbl_t *cmdtp, uint_fast8_t flag, int argc, char * co
                return CMD_RET_FAILURE;
        }
 
-
-
        if (z80_bus_state() & ZST_RUNNING) {
-               my_puts_P(PSTR("CPU is allready running!\n"));
-               return CMD_RET_FAILURE;
-       }
-       if (!(z80_bus_cmd(Request) & ZST_ACQUIRED)) {
-               my_puts_P(PSTR("Bus timeout\n"));
-               return  CMD_RET_FAILURE;
+               res = ERUNNING;
+       } else if (!(z80_bus_cmd(Request) & ZST_ACQUIRED)) {
+               res = EBUSTO;
        }
+       if (res != ESUCCESS)
+               cmd_error(CMD_RET_FAILURE, res, NULL);
+
        z80_load_mem(verbosity, cfboot,
                                &cfboot_sections,
                                cfboot_address,
@@ -273,12 +270,10 @@ command_ret_t do_bootcf(cmd_tbl_t *cmdtp, uint_fast8_t flag, int argc, char * co
        return CMD_RET_SUCCESS;
 }
 
-command_ret_t do_busreq_pulse(cmd_tbl_t *cmdtp, uint_fast8_t flag, int argc, char * const argv[])
+command_ret_t do_busreq_pulse(cmd_tbl_t *cmdtp UNUSED, uint_fast8_t flag UNUSED, int argc, char * const argv[])
 {
        uint16_t count=1;
 
-       (void) cmdtp; (void) flag;
-
        if (!(z80_bus_state() & ZST_RUNNING)) {
                printf_P(PSTR("## CPU is not running!\n"));
                return CMD_RET_FAILURE;
@@ -295,12 +290,10 @@ command_ret_t do_busreq_pulse(cmd_tbl_t *cmdtp, uint_fast8_t flag, int argc, cha
 }
 
 
-command_ret_t do_go(cmd_tbl_t *cmdtp, uint_fast8_t flag, int argc, char * const argv[])
+command_ret_t do_go(cmd_tbl_t *cmdtp UNUSED, uint_fast8_t flag UNUSED, int argc, char * const argv[])
 {
        uint32_t addr;
 
-       (void) cmdtp; (void) flag;
-
        if (argc < 2)
                return CMD_RET_USAGE;
        addr = eval_arg(argv[1], NULL);
@@ -312,7 +305,7 @@ command_ret_t do_go(cmd_tbl_t *cmdtp, uint_fast8_t flag, int argc, char * const
        }
 
        if (z80_bus_state() & ZST_RUNNING) {
-               printf_P(PSTR("## CPU allready running!\n"));
+               printf_P(PSTR("## CPU already running!\n"));
                return CMD_RET_FAILURE;
        }
 
@@ -347,20 +340,16 @@ void reset_cpu(bus_cmd_t mode)
 }
 
 
-command_ret_t do_reset(cmd_tbl_t *cmdtp, uint_fast8_t flag, int argc, char * const argv[])
+command_ret_t do_reset(cmd_tbl_t *cmdtp UNUSED, uint_fast8_t flag UNUSED, int argc UNUSED, char * const argv[] UNUSED)
 {
-       (void) cmdtp; (void) flag; (void) argc; (void) argv;
-
        printf_P(PSTR("CPU now in reset state.\n"));
 
        reset_cpu(Reset);
        return CMD_RET_SUCCESS;
 }
 
-command_ret_t do_restart(cmd_tbl_t *cmdtp, uint_fast8_t flag, int argc, char * const argv[])
+command_ret_t do_restart(cmd_tbl_t *cmdtp UNUSED, uint_fast8_t flag UNUSED, int argc UNUSED, char * const argv[] UNUSED)
 {
-       (void) cmdtp; (void) flag; (void) argc; (void) argv;
-
        reset_cpu(Restart);
 
        return CMD_RET_SUCCESS;
@@ -382,17 +371,14 @@ void print_con_usage(char esc)
        ), esc + 0x40);
 }
 
-command_ret_t do_console(cmd_tbl_t *cmdtp, uint_fast8_t flag, int argc, char * const argv[])
+command_ret_t do_console(cmd_tbl_t *cmdtp UNUSED, uint_fast8_t flag UNUSED, int argc UNUSED, char * const argv[] UNUSED)
 {
        int ch;
        uint8_t pending;
-//     uint8_t help_prompt = 0;
        uint8_t code = 0;
        uint8_t state = 0;
        char esc_char = (char) getenv_ulong(PSTR(ENV_ESC_CHAR), 16, CONFIG_ESC_CHAR);
 
-       (void) cmdtp; (void) flag; (void) argc; (void) argv;
-
        printf_P(PSTR("Connecting to CPU. Escape character is '^%c'.\n"),
                                        esc_char + 0x40);
 
@@ -419,7 +405,7 @@ command_ret_t do_console(cmd_tbl_t *cmdtp, uint_fast8_t flag, int argc, char * c
                                }
                                break;
                        case 2:
-                               printf_P(PSTR("\n"
+                               my_puts_P(PSTR("\n"
                                  "------------------------------------------------\n"));
                        case 1:
                                state = 0;
@@ -437,7 +423,7 @@ command_ret_t do_console(cmd_tbl_t *cmdtp, uint_fast8_t flag, int argc, char * c
 
                                case 'X':
                                case 'Q':
-                                       printf_P(PSTR("\n"));
+                                       putchar('\n');
                                        goto quit;
                                        break;
 
index cbc4a32088ec2996095af7102e148a5be1f04ca1..0bd3ebb517cc1fe3ba375df6335efe23e73c3ac5 100644 (file)
@@ -123,15 +123,13 @@ int mk_date (const char *datestr, struct tm *tmp)
        return (-1);
 }
 
-command_ret_t do_date(cmd_tbl_t *cmdtp, uint_fast8_t flag, int argc, char * const argv[])
+command_ret_t do_date(cmd_tbl_t *cmdtp UNUSED, uint_fast8_t flag UNUSED, int argc, char * const argv[])
 {
        struct tm t;
        char buf[30];
        int rc;
        command_ret_t rcode = CMD_RET_FAILURE;
 
-       (void) cmdtp; (void) flag;
-
        switch (argc) {
        case 2:                 /* set date & time */
                /* initialize t with current time */
index 77505b4b01d0eca453a1948b20f29d8ee4629741..2970ac3759f016364b2b5b149a0adfd2a076bd48 100644 (file)
@@ -20,7 +20,6 @@
 #include "timer.h"
 #include "debug.h"
 #include "env.h"
-#include "errnum.h"
 
 #define DEBUG_FA               0       /* set to 1 to debug */
 
@@ -582,7 +581,7 @@ command_ret_t do_rw(cmd_tbl_t *cmdtp UNUSED, uint_fast8_t flag UNUSED, int argc,
 
        if (res)
                cmd_error(CMD_RET_FAILURE, res, PSTR("'%s'"), argv[1]);
-       if (buserr || res)
+       if (buserr)
                cmd_error(CMD_RET_FAILURE, EBUSTO, NULL);
 
        return CMD_RET_SUCCESS;
index 6ccb3f9597245f05081747187b59ebf9c837da26..ee336dabd365752346c1ebc42554b7796d43da2f 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * (C) Copyright 2015,2016 Leo C. <erbl259-lmu@yahoo.de>
+ * (C) Copyright 2015,2016,2018 Leo C. <erbl259-lmu@yahoo.de>
  *
  * SPDX-License-Identifier:    GPL-2.0
  */
 #include "con-utils.h"
 #include "z80-if.h"
 #include "debug.h"
+#include "errnum.h"
 
 
 #define RS             128             /* CP/M record size */
 
 #define FSIZE_t DWORD
 
+static FRESULT read_record(FIL *fp, uint8_t *buffer)
+{
+       unsigned int br;                /* bytes read */
+
+       FRESULT res = f_read(fp, buffer, RS, &br);
+       if (br != RS)
+               return EEOF;
+       return res;
+}
+
 /*
  *     Load Routine
  *
  *                     len  = Length in pages of module to read
  *
  */
-int load(FIL *File, uint32_t addr, uint8_t len)
+ERRNUM load(FIL *File, uint32_t addr, uint8_t len)
 {
        uint8_t buffer[RS];
-       unsigned int br;                                        /* bytes read */
-       int res;
 
        len *= 2;               /* length in records of module */
        //debug("## load: addr: 0x%.4X, records: 0x%.4X, (%u)\n", addr, len, len);
 
        for (; len; len--) {
                addr -= RS;
-               res = f_read(File, buffer, RS, &br);
-               if (res || br != RS) {
-                       return 1;
-               }
+               FRESULT res = read_record(File, buffer);
+               if (res)
+                       return res;
 
-               if (!(z80_bus_cmd(Request) & ZST_ACQUIRED)) {
-                       my_puts_P(PSTR("Bus timeout\n"));
-                       return 2;
-               }
+               if (!(z80_bus_cmd(Request) & ZST_ACQUIRED))
+                       return EBUSTO;
                z80_write_block(buffer, addr, RS);
                z80_bus_cmd(Release);
                //debug("## written: 0x%.4X\n", addr);
        }
 
-       return 0;
+       return ESUCCESS;
 }
 
 #pragma GCC diagnostic ignored "-Wmaybe-uninitialized"
 
-command_ret_t do_loadcpm3(cmd_tbl_t *cmdtp, uint_fast8_t flag, int argc, char * const argv[])
+command_ret_t do_loadcpm3(cmd_tbl_t *cmdtp UNUSED, uint_fast8_t flag UNUSED, int argc, char * const argv[])
 {
        uint16_t mem_top;
        uint8_t res_len;
@@ -72,11 +78,8 @@ command_ret_t do_loadcpm3(cmd_tbl_t *cmdtp, uint_fast8_t flag, int argc, char *
        char *fname;
        FIL File;
        char default_fname[strlen_P(PSTR(CONFIG_CPM3_SYSFILE)) + 1];
-       unsigned int br;                                        /* bytes read */
        uint8_t buffer[RS];
-       int res;
-
-       (void) cmdtp; (void) flag;
+       FRESULT res;
 
 
        //common_base = getenv_ulong(PSTR(ENV_CPM3_COMMON_BASE), 16,
@@ -99,16 +102,14 @@ command_ret_t do_loadcpm3(cmd_tbl_t *cmdtp, uint_fast8_t flag, int argc, char *
        }
 
        res = f_open(&File, fname, FA_READ );
-       if (res) {
-               printf_P(PSTR("Error: failed to open '%s'\n"), fname);
-               return CMD_RET_FAILURE;
-       }
+       if (res)
+               goto out;
 
        printf_P(PSTR("Loading: '%s'...\n"), fname);
 
        /* read the load record */
-       res = f_read(&File, buffer, RS, &br);
-       if (res || br != RS)
+       res = read_record(&File, buffer);
+       if (res)
                goto out;
 
        mem_top = buffer[0] << 8;
@@ -118,8 +119,8 @@ command_ret_t do_loadcpm3(cmd_tbl_t *cmdtp, uint_fast8_t flag, int argc, char *
        osentry_addr = buffer[4] + (buffer[5] << 8);
 
        /* read display info */
-       res = f_read(&File, buffer, RS, &br);
-       if (res || br != RS)
+       res = read_record(&File, buffer);
+       if (res)
                goto out;
 
        /* print the info */
@@ -134,11 +135,15 @@ command_ret_t do_loadcpm3(cmd_tbl_t *cmdtp, uint_fast8_t flag, int argc, char *
                 */
                FSIZE_t common_base_ofs = ((res_len - 6) << 8)  + 2*RS + RS-7;
                FSIZE_t cur_pos = f_tell(&File);
+               unsigned int br;                                        /* bytes read */
                if ((res = f_lseek(&File, common_base_ofs)) ||
                                (res = f_read(&File, buffer, 2, &br)) ||
-                               (br != 2) ||
                                (res = f_lseek(&File, cur_pos)))
                        goto out;
+               if (br != 2) {
+                       res = EEOF;
+                       goto out;
+               }
                common_base = (uint16_t) buffer[0] + (buffer[1] << 8);
                setenv_hex(PSTR(ENV_CPM3_COMMON_BASE), common_base);
        }
@@ -157,38 +162,36 @@ command_ret_t do_loadcpm3(cmd_tbl_t *cmdtp, uint_fast8_t flag, int argc, char *
 out:
        f_close(&File);
 
-       if (res) {
-               printf_P(PSTR("Error: failed to read '%s'\n"), fname);
-               return CMD_RET_FAILURE;
-       } else {
-               if (res_len != 0) {
-                       if (osentry_addr + common_base > 0xffff) {
-                               z80_bus_cmd(Request);
-                               if (z80_read(osentry_addr + common_base) == 0xc3) {
-                                       osentry_addr = z80_read(osentry_addr+common_base+1) +
-                                                       (z80_read(osentry_addr + common_base+2) << 8);
-                               }
-                               z80_bus_cmd(Release);
-                               if (banked_base + osentry_addr > 0xffff)
-                                       osentry_addr = 0;
+       if (res)
+               cmd_error(CMD_RET_FAILURE, res, PSTR("%s"), fname);
+
+       if (res_len != 0) {
+               if (osentry_addr + common_base > 0xffff) {
+                       z80_bus_cmd(Request);
+                       if (z80_read(osentry_addr + common_base) == 0xc3) {
+                               osentry_addr = z80_read(osentry_addr+common_base+1) +
+                                               (z80_read(osentry_addr + common_base+2) << 8);
                        }
-                       setenv_hex(PSTR(ENV_STARTADDRESS), osentry_addr);
+                       z80_bus_cmd(Release);
+                       if (banked_base + osentry_addr > 0xffff)
+                               osentry_addr = 0;
                }
-               printf_P(PSTR("Loaded: Resident: "));
-               if (res_len != 0)
-                       printf_P(PSTR("0x%.5lX-0x%.5lX, "),
-                               (common_base + mem_top) - res_len*256,
-                               (common_base + mem_top) - 1);
-               else
-                       printf_P(PSTR(" -  "));
-               printf_P(PSTR("Banked: "));
-               if (bank_len != 0)
-                       printf_P(PSTR("0x%.5lX-0x%.5lX\n"),
-                       (banked_base + bank_top) - bank_len*256,
-                       (banked_base + bank_top) - 1);
-               else
-                       printf_P(PSTR(" -  \n"));
-
-               return CMD_RET_SUCCESS;
+               setenv_hex(PSTR(ENV_STARTADDRESS), osentry_addr);
        }
+       printf_P(PSTR("Loaded: Resident: "));
+       if (res_len != 0)
+               printf_P(PSTR("%.5lX-%.5lX, "),
+                       (common_base + mem_top) - res_len*256,
+                       (common_base + mem_top) - 1);
+       else
+               printf_P(PSTR(" -  "));
+       printf_P(PSTR("Banked: "));
+       if (bank_len != 0)
+               printf_P(PSTR("%.5lX-%.5lX\n"),
+               (banked_base + bank_top) - bank_len*256,
+               (banked_base + bank_top) - 1);
+       else
+               printf_P(PSTR(" -  \n"));
+
+       return CMD_RET_SUCCESS;
 }
index b1922159c5a1dc00eac6acad56e4b080551593aa..7484855bc16911c7ea4c89be4aa0eb6bed82ae27 100644 (file)
@@ -11,7 +11,6 @@
 #include "eval_arg.h"
 #include "print-utils.h"
 #include "z80-if.h"
-#include "errnum.h"
 
 
 /*
index d93294b5672e9bdda193ef809e6c3eca92f0e8f9..232d71889b71c13389494262887228b6f4e47b17 100644 (file)
@@ -328,7 +328,7 @@ CMD_TBL_ITEM(
        attach, CONFIG_SYS_MAXARGS,     CTBL_RPT,       do_attach,
        "attach filesystem image file to CP/M drive",
        "[-rw] [-o options] dsk<n> diskfile\n"
-       "    Attach diskfile to dsk<n>, where n in 0..7\n"
+       "    Attach diskfile to dsk<n>, where n in 0.."CONFIG_CPM_MAX_DRNR_STR"\n"
        "    -r      File is read only (write protected)\n"
        "    -w      File is read/write (default)\n"
        "    -o options\n"
index bb151adb5ba63857e80d85aa0178aeeda4537ff0..4fdc63de6783942557f06602194dd128fed03370 100644 (file)
@@ -5,14 +5,23 @@
  */
 
 #include "common.h"
-#include "errnum.h"
 #include "cmd_fat.h"
 
 
 static const FLASH char * const FLASH error_strings[] = {
        FSTR("Unknown error"),
        FSTR("Not enough memory"),
-       FSTR("Bus timeout")
+       FSTR("Bus timeout"),
+       FSTR("Unexpected argument"),
+       FSTR("Invalid disk number"),
+       FSTR("Disk already attached"),
+       FSTR("Disk not attached"),
+       FSTR("Error opening file"),
+       FSTR("File already attached to other drive"),
+       FSTR("CPU is running"),
+       FSTR("Invalid argument"),
+       FSTR("Unexpected EOF"),
+
 };
 
 const FLASH char * my_strerror_P(ERRNUM errnum)
index ac57645c7318f4e401df7de0b09c25720503f00d..cdc6e5e3b9ec22733ab5185e4b39b384bd4ba691 100644 (file)
@@ -292,17 +292,17 @@ int drv_attach(uint8_t unit, const char *filename, drv_opt_t options)
 
        drv = unit;
        if (drv >= CONFIG_CPM_MAX_DRIVE)
-               return AT_RANGE;
+               return EATRANGE;
 
        struct cpm_drive_s *p = &drv_table[drv];
 
        if (options & DRV_OPT_REATTATCH) {
                if (filename) {
-                       return AT_ERROR;
+                       return EUNEXPARG;
                }
 
                if (!p->img_name) {
-                       return AT_NOT;
+                       return EATNOT;
                }
 
                /* change options */
@@ -317,16 +317,16 @@ int drv_attach(uint8_t unit, const char *filename, drv_opt_t options)
        } else {
 
                if (p->img_name)
-                       return AT_ALREADY;
+                       return EATALRDY;
                if (drv_find_file_attached(filename) >= 0)
-                       return AT_OTHER;
+                       return EATOTHER;
 
                p->opt = options;
 
                /* new attachment */
 
                if ((p->img_name = strdup(filename)) == NULL)
-                       return AT_NOMEM;
+                       return ENOMEM;
 
                res = f_open(&p->fd, p->img_name,
                                FA_READ | (options&DRV_OPT_RO ? 0 : FA_WRITE));
@@ -355,11 +355,11 @@ int drv_attach(uint8_t unit, const char *filename, drv_opt_t options)
                }
                if (res) {
                        drv_detach(drv);
-                       return AT_OPEN;
+                       return EATOPEN;
                }
        }
 
-       return AT_OK;
+       return ESUCCESS;
 }
 
 
index eb38853cbe96ad0f8870df023a1bd32691079949..12d87c48865a280eac621ba3e7df7ddc006b6e6b 100644 (file)
@@ -12,6 +12,7 @@
 #include <stdbool.h>
 #include <string.h>
 #include <stdlib.h>
+#include "errnum.h"
 
 #define GCC_VERSION (__GNUC__*10000 + __GNUC_MINOR__*100 + __GNUC_PATCHLEVEL__)
 
@@ -82,18 +83,18 @@ extern volatile uint_least8_t Stat;
 #define S_CON_PENDING  (1<<2)
 
 static inline
-void my_puts(const char *s)
+int my_puts(const char *s)
 {
-       fputs(s, stdout);
+       return fputs(s, stdout);
 }
 
 static inline
-void my_puts_P(const char *s)
+int my_puts_P(const char *s)
 {
 #ifdef __AVR__
-       fputs_P(s, stdout);
+       return fputs_P(s, stdout);
 #else
-       fputs(s, stdout);
+       return fputs(s, stdout);
 #endif /* __AVR__ */
 }
 
index d989772228b091c88806e308b3ee763746b1ceae..6640e67144d64b1435b7a12817fb616c871e3791 100644 (file)
@@ -44,6 +44,7 @@
 #define CONFIG_CPM3_BANKED_BASE_STR    "0"
 
 #define CONFIG_CPM_MAX_DRIVE           8
+#define CONFIG_CPM_MAX_DRNR_STR                "7"
 #define CONFIG_CPM_BASE_DRIVE          'A'
 #define CONFIG_CPM_BLOCK_SIZE          512
 
index 5de8f2b04375519cbf8cbe4b53043c220fb195cb..adb8a8040cb010ea3bc7442afac327889db41883 100644 (file)
 #include "errnum.h"
 
 typedef enum {
-       ENOMEM = 101,
-       EBUSTO
+       ESUCCESS        = 0,
+       ENOMEM          = 101,
+       EBUSTO,
+       EUNEXPARG,
+    EATRANGE,
+    EATALRDY,
+    EATNOT,
+    EATOPEN,
+    EATOTHER,
+    ERUNNING,
+    EINVAL,
+    EEOF,
+
 } ERRNUM;
 
 #endif /* ERRNUM_H */
index 3b4a462c7dc60915295a7a633803de0a84c00b60..760fa044e6e0955604c704e2dafbe91f5040ff72 100644 (file)
@@ -38,18 +38,6 @@ struct cpm_drive_s {
        FIL                     fd;
 };
 
-/* Return codes */
-
-#define AT_OK          0
-#define AT_ERROR       1
-#define AT_RANGE       2
-#define AT_ALREADY     3
-#define AT_NOT         4
-#define AT_NOFILE      5
-#define AT_NOMEM       6
-#define AT_OPEN                7
-#define AT_OTHER       8
-
 
 int drv_list(void);
 int drv_detach(uint8_t drv);