- uint8_t buf[16];
- uint8_t llen = 16;
- uint8_t pre = startaddr % 16;
- uint32_t addr = startaddr & ~0x0f;
- len += pre;
- uint8_t i;
-
- if (title && *title)
- printf_P(PSTR("%s\n"),title);
-
- while (len) {
- if (len < 16)
- llen = len;
-
- z80_bus_cmd(Request);
- for (i = pre; i < llen; i++)
- buf[i] = z80_read(addr + i);
- z80_bus_cmd(Release);
-
- printf_P(PSTR("%.5lx:"), addr);
-#if 0
- print_blanks(3 * pre);
-
- /* Print hex values */
- for (i = pre; i < llen; i++)
- printf_P(PSTR(" %.2x"), buf[i]);
-#else
- for (i = 0; i < llen; i++) {
- if ((i % 8) == 0)
- putchar(' ');
- if (i < pre)
- printf_P(PSTR(".. "));
- else
- printf_P(PSTR("%.2x "), buf[i]);
+ if (z80_bus_cmd(Request) & ZST_ACQUIRED) {
+ z80_read_block (buf, addr, count);
+ z80_bus_cmd(Release);