]> cloudbase.mooo.com Git - z180-stamp.git/commitdiff
Z180 parameter checks
authorLeo C <erbl259-lmu@yahoo.de>
Mon, 13 Jun 2016 21:04:35 +0000 (23:04 +0200)
committerLeo C <erbl259-lmu@yahoo.de>
Mon, 13 Jun 2016 21:04:35 +0000 (23:04 +0200)
avr/z180-serv.c
avr/z80-if.c

index f55b7a8c681858e2610aacce0431c8ab04857285..0ce6b9bc51b587be5bb531bdf01cabde8b0a5d41 100644 (file)
@@ -399,6 +399,7 @@ static const FLASH char * const FLASH rc_messages[] = {
                        FSTR("Access byond disk size"),                         /* 04 */
                        FSTR("Write protect"),                                          /* 05 */
                        FSTR("No media"),                                                       /* 06 */
+                       FSTR("R/W address == 0 !!!!"),                          /* 07 */
                };
 
 void msg_cpm_result(uint8_t subf, uint8_t rc, int res)
@@ -530,6 +531,10 @@ void do_msg_cpm_rw(uint8_t subf, int len, uint8_t * msg)
        drv_debug(MIDDLE, PSTR(" T:%4d, S:%2d, cnt:%2d, lba: %.8lx, addr: %.5lx"),
                                track, sec, secs, pos, addr);
 
+       if (addr == 0) {
+               return msg_cpm_result(subf, 0x07, res);
+       }
+
        if (dowrite && dp->opt & DRV_OPT_RO) {
                return msg_cpm_result(subf, 0x05, res);
        }
index ae3bd66be5c4f7e3dd5cd3a485cadec335a1c89c..08d417b832bd5b69c3675afd553775205b1c745c 100644 (file)
@@ -577,7 +577,6 @@ void z80_memfifo_init(const fifo_t f, uint32_t addr)
 {
        fifo_dsc[f].base = addr;
 
-DBG_P(2, "z80_memfifo_init: %i, %lx\n", f, addr);
 
        if (addr != 0) {
                z80_bus_cmd(Request);
@@ -585,6 +584,11 @@ DBG_P(2, "z80_memfifo_init: %i, %lx\n", f, addr);
                fifo_dsc[f].idx_in = z80_read(addr + FIFO_INDEX_IN);
                fifo_dsc[f].idx_out = z80_read(addr + FIFO_INDEX_OUT);
                z80_bus_cmd(Release);
+
+               if (fifo_dsc[f].idx_in != 0 || fifo_dsc[f].idx_out != 0) {
+                       DBG_P(1, "## z80_memfifo_init: %i, %lx, in: %.2x, out: %.2x, mask: %.2x\n",
+                                       f, addr, fifo_dsc[f].idx_in, fifo_dsc[f].idx_out, fifo_dsc[f].mask);
+               }
        }
 }