From 72f5882239bb88b8a68f305802e0dde37a975604 Mon Sep 17 00:00:00 2001 From: Leo C Date: Wed, 13 Aug 2014 21:00:21 +0200 Subject: Add memory commands (cmp, cp, md, mm, mw, nm) Add kind of scheduler for background tasks --- avr/z80-if.c | 22 +++++++++++++++++++++- 1 file changed, 21 insertions(+), 1 deletion(-) (limited to 'avr/z80-if.c') diff --git a/avr/z80-if.c b/avr/z80-if.c index 207aed1..9ee9cb0 100644 --- a/avr/z80-if.c +++ b/avr/z80-if.c @@ -2,7 +2,7 @@ * * Pin assignments * - * | Z180-Sig | AVR-Port | Dir | Special Function | + * | Z180-Sig | AVR-Port | Dir | Special Function | * +------------+---------------+-------+-----------------------+ * | A0 | PA 0 | O | | * | A1 | PA 1 | O | | @@ -137,14 +137,20 @@ struct bits { //#define Z80_I_HALT SBIT(P_HALT, ) +#if 0 void z80_busreq(level_t level) { Z80_O_BUSREQ = level; } +#endif void z80_reset(level_t level) { Z80_O_RST = level; + if (level) + Stat |= S_Z180_RUNNING; + else + Stat &= ~S_Z180_RUNNING; } @@ -153,6 +159,7 @@ void z80_reset_pulse(void) Z80_O_RST = 0; _delay_us(10); Z80_O_RST = 1; + Stat |= S_Z180_RUNNING; } #if 0 @@ -241,6 +248,8 @@ void z80_setup_bus(void) z80_setup_addrbus_tristate(); z80_setup_dbus_in(); + + Stat &= ~S_Z180_RUNNING; } /*--------------------------------------------------------------------------*/ @@ -248,6 +257,10 @@ void z80_setup_bus(void) void z80_request_bus(void) { Z80_O_BUSREQ = 0; + + if (!(Stat & S_Z180_RUNNING)) + Z80_O_RST = 1; + while(Z80_I_BUSACK == 1); z80_setup_addrbus_active(); } @@ -256,6 +269,10 @@ void z80_release_bus(void) { z80_setup_dbus_in(); z80_setup_addrbus_tristate(); + + if (!(Stat & S_Z180_RUNNING)) + Z80_O_RST = 0; + Z80_O_BUSREQ = 1; //while(Z80_I_BUSACK == 0); } @@ -456,6 +473,9 @@ void z80_memfifo_putc(fifo_t f, uint8_t val) } /*--------------------------------------------------------------------------*/ +/* + TODO: Rewrite msg_fifo routines for AVR +*/ static struct { uint32_t base; -- cgit v1.2.3