]> cloudbase.mooo.com Git - z180-stamp.git/blobdiff - avr/cmd_boot.c
New command cpuchk
[z180-stamp.git] / avr / cmd_boot.c
index a1afe7703a686fe119be7e19d9e04e2244535ee3..2159608e4055bcc600a54cdf6670f1bc49051cd2 100644 (file)
 #undef const
 
 
-
-static void z80_load_mem(int_fast8_t verbosity,
-                               const FLASH unsigned char data[],
-                               const FLASH unsigned long *sections,
-                               const FLASH unsigned long address[],
-                               const FLASH unsigned long length_of_sections[])
-{
-       uint32_t sec_base = 0;
-
-       if (verbosity > 1)
-               printf_P(PSTR("Loading Z180 memory... \n"));
-
-       for (unsigned sec = 0; sec < *sections; sec++) {
-               if (verbosity > 0) {
-                       printf_P(PSTR("   From: 0x%.5lX to: 0x%.5lX    (%5li bytes)\n"),
-                                       address[sec],
-                                       address[sec]+length_of_sections[sec] - 1,
-                                       length_of_sections[sec]);
-               }
-
-               z80_write_block_P((const FLASH unsigned char *) &data[sec_base],  /* src */
-                               address[sec],                  /* dest */
-                               length_of_sections[sec]);      /* len */
-               sec_base += length_of_sections[sec];
-       }
-}
-
 command_ret_t do_loadf(cmd_tbl_t *cmdtp UNUSED, uint_fast8_t flag UNUSED, int argc UNUSED, char * const argv[] UNUSED)
 {
-       ERRNUM res = ESUCCESS;
-
-       if (z80_bus_state() & ZST_RUNNING) {
-               res = ERUNNING;
-       } else if (!(z80_bus_cmd(Request) & ZST_ACQUIRED)) {
-               res = EBUSTO;
-       }
-       if (res != ESUCCESS)
-               cmd_error(CMD_RET_FAILURE, res, NULL);
-
+       if (z80_bus_state() & ZST_RUNNING)
+               cmd_error(CMD_RET_FAILURE, ERUNNING, NULL);
+       z80_bus_request_or_exit();
        z80_load_mem(2, hdrom,
                                &hdrom_sections,
                                hdrom_address,
@@ -210,14 +176,9 @@ command_ret_t do_bootcf(cmd_tbl_t *cmdtp UNUSED, uint_fast8_t flag UNUSED, int a
                return CMD_RET_FAILURE;
        }
 
-       if (z80_bus_state() & ZST_RUNNING) {
-               res = ERUNNING;
-       } else if (!(z80_bus_cmd(Request) & ZST_ACQUIRED)) {
-               res = EBUSTO;
-       }
-       if (res != ESUCCESS)
-               cmd_error(CMD_RET_FAILURE, res, NULL);
-
+       if (z80_bus_state() & ZST_RUNNING)
+               cmd_error(CMD_RET_FAILURE, ERUNNING, NULL);
+       z80_bus_request_or_exit();
        z80_load_mem(verbosity, cfboot,
                                &cfboot_sections,
                                cfboot_address,