]> cloudbase.mooo.com Git - z180-stamp.git/blobdiff - avr/cmd_mem.c
Command 'go <startaddr>' works now
[z180-stamp.git] / avr / cmd_mem.c
index df30196709e770584241f0717734ecab5208d0d1..49a46f6921151eaba6c88940e5ecc463977eac63 100644 (file)
@@ -65,10 +65,10 @@ int z180_dump_mem(uint32_t startaddr, uint32_t len, const char *title)
                if (len < 16)
                        llen = len;
 
-               z80_request_bus();
+               zstate_t state = z80_request_bus_save();
                for (i = pre; i < llen; i++)
                        buf[i] = z80_read(addr + i);
-               z80_release_bus();
+               z80_release_bus_save(state);
 
                printf_P(PSTR("%.5lx:"), addr);
 #if 0
@@ -193,12 +193,12 @@ int do_mem_mw(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
                count = 1;
        }
 
-       z80_request_bus();
+       zstate_t state = z80_request_bus_save();
        while (count-- > 0) {
                z80_write(addr, writeval);
                ++addr; 
        }
-       z80_release_bus();
+       z80_release_bus_save(state);
 
        return 0;
 }
@@ -281,10 +281,10 @@ int do_mem_cmp(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
        count = strtoul(argv[3], NULL, 16);
 
        for (ngood = 0; ngood < count; ++ngood) {
-               z80_request_bus();
+               zstate_t state = z80_request_bus_save();
                byte1 = z80_read(addr1);
                byte2 = z80_read(addr2);
-               z80_release_bus();
+               z80_release_bus_save(state);
                if (byte1 != byte2) {
                        printf( "byte at 0x%05lx (%#02x) != "
                                "byte at 0x%05lx (%#02x)\n",
@@ -337,10 +337,10 @@ int do_mem_cp(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
 
        while (count-- > 0) {
                uint8_t data;
-               z80_request_bus();
+               zstate_t state = z80_request_bus_save();
                data = z80_read(src);
                z80_write(dest, data);
-               z80_release_bus();
+               z80_release_bus_save(state);
                src += step;
                dest += step;
 
@@ -390,20 +390,20 @@ int do_mem_loop(cmd_tbl_t *cmdtp, int flag, int argc,
         * If we have only one object, just run infinite loops.
         */
        if (length == 1) {
-               z80_request_bus();
+               zstate_t state = z80_request_bus_save();
                for (;;)
                        z80_read(addr);
-               z80_release_bus();
+               z80_release_bus_save(state);
        }
 
-       z80_request_bus();
+       zstate_t state = z80_request_bus_save();
        for (;;) {
                uint32_t i = length;
                uint32_t p = addr;
                while (i-- > 0)
                        z80_read(p++);
        }
-       z80_release_bus();
+       z80_release_bus_save(state);
 
        return 0;
 }
@@ -432,7 +432,7 @@ int do_mem_loopw (cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
         * If we have only one object, just run infinite loops.
         */
        if (length == 1) {
-               z80_request_bus();
+               zstate_t state = z80_request_bus_save();
                for (;;)
                        z80_write(addr, data);
        }
@@ -844,10 +844,10 @@ mod_mem(cmd_tbl_t *cmdtp, int incrflag, int flag, int argc, char * const argv[])
         * the next value.  A non-converted value exits.
         */
        do {
-               z80_request_bus();
+               zstate_t state = z80_request_bus_save();
                data = z80_read(addr);
                printf("%05lx: %02x", addr, data);
-               z80_release_bus();
+               z80_release_bus_save(state);
 
                nbytes = cli_readline(PSTR(" ? "));
                if (nbytes == 0 || (nbytes == 1 && console_buffer[0] == '-')) {
@@ -863,9 +863,9 @@ mod_mem(cmd_tbl_t *cmdtp, int incrflag, int flag, int argc, char * const argv[])
                        data = strtoul(console_buffer, &endp, 16);
                        nbytes = endp - console_buffer;
                        if (nbytes) {
-                               z80_request_bus();
+                               zstate_t state = z80_request_bus_save();
                                z80_write(addr, data);
-                               z80_release_bus();
+                               z80_release_bus_save(state);
                                if (incrflag)
                                        addr++;
                        }