diff options
Diffstat (limited to 'avr/cmd_sd.c')
-rw-r--r-- | avr/cmd_sd.c | 27 |
1 files changed, 11 insertions, 16 deletions
diff --git a/avr/cmd_sd.c b/avr/cmd_sd.c index 1612a6f..b192215 100644 --- a/avr/cmd_sd.c +++ b/avr/cmd_sd.c @@ -11,6 +11,7 @@ #include "eval_arg.h" #include "print-utils.h" #include "z80-if.h" +#include "errnum.h" /* @@ -52,10 +53,8 @@ command_ret_t do_init(cmd_tbl_t *cmdtp, uint_fast8_t flag, int argc, char * cons dev = (BYTE) eval_arg(argv[1], NULL); - if (disk_status(dev) & STA_NODISK) { - printf_P(PSTR("No Disk\n")); - return CMD_RET_FAILURE; - } + if (disk_status(dev) & STA_NODISK) + cmd_error(CMD_RET_FAILURE, 0, PSTR("No disk")); res = disk_initialize(dev); printf_P(PSTR("rc=%.2x\n"), res); @@ -154,10 +153,8 @@ command_ret_t do_dump(cmd_tbl_t *cmdtp, uint_fast8_t flag, int argc, char * cons for ( ; count; count--, sec++) { res = disk_read(dev, buffer, sec, 1); - if (res) { - printf_P(PSTR("rc=%.2x\n"), res); - return CMD_RET_FAILURE; - } + if (res) + cmd_error(CMD_RET_FAILURE, 0, PSTR("rc=%.2x"), res); sprintf_P(header, PSTR("Sector: %lu"), sec); dump_ram(buffer, 0, FF_MAX_SS, header); @@ -208,10 +205,9 @@ command_ret_t do_read(cmd_tbl_t *cmdtp, uint_fast8_t flag, int argc, char * cons for (nr = 0; nr < count;) { nr++; if ((res = disk_read(dev, buffer, sec, 1)) == RES_OK) { - if (!(z80_bus_cmd(Request) & ZST_ACQUIRED)) { - my_puts_P(PSTR("Bus timeout\n")); - return CMD_RET_FAILURE; - } + if (!(z80_bus_cmd(Request) & ZST_ACQUIRED)) + cmd_error(CMD_RET_FAILURE, EBUSTO, NULL); + z80_write_block(buffer, addr /*+ base*/, FF_MAX_SS); z80_bus_cmd(Release); sec++; addr += FF_MAX_SS; @@ -269,10 +265,9 @@ command_ret_t do_write(cmd_tbl_t *cmdtp, uint_fast8_t flag, int argc, char * con for (nr = 0; nr < count;) { nr++; - if (!(z80_bus_cmd(Request) & ZST_ACQUIRED)) { - my_puts_P(PSTR("Bus timeout\n")); - return CMD_RET_FAILURE; - } + if (!(z80_bus_cmd(Request) & ZST_ACQUIRED)) + cmd_error(CMD_RET_FAILURE, EBUSTO, NULL); + z80_read_block(buffer, addr /*+ base*/, FF_MAX_SS); z80_bus_cmd(Release); |