diff options
author | Leo C | 2016-06-13 23:04:35 +0200 |
---|---|---|
committer | Leo C | 2016-06-13 23:04:35 +0200 |
commit | 910e72069ea19a79e06e7146a5e42d0bb05a9c2f (patch) | |
tree | 4c03d51ea5afc65d73651646b41b2e692a369707 | |
parent | 6b9edaeca057f14f2dd42469fef9f06d83138681 (diff) | |
download | z180-stamp-910e72069ea19a79e06e7146a5e42d0bb05a9c2f.zip |
Z180 parameter checks
-rw-r--r-- | avr/z180-serv.c | 5 | ||||
-rw-r--r-- | avr/z80-if.c | 6 |
2 files changed, 10 insertions, 1 deletions
diff --git a/avr/z180-serv.c b/avr/z180-serv.c index f55b7a8..0ce6b9b 100644 --- a/avr/z180-serv.c +++ b/avr/z180-serv.c @@ -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); } diff --git a/avr/z80-if.c b/avr/z80-if.c index ae3bd66..08d417b 100644 --- a/avr/z80-if.c +++ b/avr/z80-if.c @@ -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); + } } } |