diff options
author | Leo C | 2014-10-26 12:43:57 +0100 |
---|---|---|
committer | Leo C | 2014-10-26 12:43:57 +0100 |
commit | 8a7deceacd30529e5c32082b2c719eb055841d0d (patch) | |
tree | 19b22d5a0363847ad5e29dd2d8c726191b1b5c82 /avr/z80-if.c | |
parent | 889202c46ced1be4fc0db3faf63564722eba2865 (diff) | |
download | z180-stamp-8a7deceacd30529e5c32082b2c719eb055841d0d.zip |
working connect command, new sleep command
Diffstat (limited to 'avr/z80-if.c')
-rw-r--r-- | avr/z80-if.c | 23 |
1 files changed, 11 insertions, 12 deletions
diff --git a/avr/z80-if.c b/avr/z80-if.c index 414582e..9492c28 100644 --- a/avr/z80-if.c +++ b/avr/z80-if.c @@ -54,7 +54,6 @@ */ #include <avr/io.h> -#include <util/delay.h> #include <util/atomic.h> #include <stdio.h> #include "debug.h" @@ -241,7 +240,7 @@ static void z80_busreq_hpulse(void) z80_dbus_set_in(); z80_addrbus_set_tristate(); - ATOMIC_BLOCK(ATOMIC_RESTORESTATE) { + ATOMIC_BLOCK(ATOMIC_FORCEON) { Z80_O_BUSREQ = 1; Z80_O_BUSREQ = 1; /* 2 AVR clock cycles */ Z80_O_BUSREQ = 0; /* 2 AVR clock cycles */ @@ -497,20 +496,20 @@ static struct { } fifo_dsc[NUM_FIFOS]; -void z80_memfifo_init(const fifo_t f, uint32_t adr) +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, adr); + if (addr != 0) { - fifo_dsc[f].base = adr; +DBG_P(2, "z80_memfifo_init: %i, %lx\n", f, addr); - z80_bus_cmd(Request); - - fifo_dsc[f].mask = z80_read(adr + FIFO_BUFSIZE_MASK); - fifo_dsc[f].idx_in = z80_read(adr + FIFO_INDEX_IN); - fifo_dsc[f].idx_out = z80_read(adr + FIFO_INDEX_OUT); - - z80_bus_cmd(Release); + z80_bus_cmd(Request); + fifo_dsc[f].mask = z80_read(addr + FIFO_BUFSIZE_MASK); + 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); + } } |