X-Git-Url: http://cloudbase.mooo.com/gitweb/z180-stamp.git/blobdiff_plain/6dc26e92c20eedcfcba9e0b75a015a5b160748c5..HEAD:/include/z80-if.h diff --git a/include/z80-if.h b/include/z80-if.h index 6f6f6fa..c83c7de 100644 --- a/include/z80-if.h +++ b/include/z80-if.h @@ -1,3 +1,9 @@ +/* + * (C) Copyright 2014 Leo C. + * + * SPDX-License-Identifier: GPL-2.0 + */ +#include "common.h" #define ZST_ACQUIRED 0x01 #define ZST_RUNNING 0x02 @@ -20,28 +26,42 @@ typedef enum { typedef enum {LOW, HIGH} level_t; + +void z80_bus_request_or_exit(void); + +uint32_t z80_get_busreq_cycles(void); zstate_t z80_bus_state(void); zstate_t z80_bus_cmd(bus_cmd_t cmd); void z80_setup_bus(void); int z80_stat_reset(void); -//void z80_busreq(level_t level); int z80_stat_halt(void); +void z80_toggle_reset(void); +void z80_toggle_busreq(void); +int32_t z80_memsize_detect(void); void z80_write(uint32_t addr, uint8_t data); uint8_t z80_read(uint32_t addr); void z80_memset(uint32_t addr, uint8_t data, uint32_t length); -void z80_write_block(const FLASH uint8_t *src, uint32_t dest, uint32_t length); +void z80_write_block_P(const FLASH uint8_t *src, uint32_t dest, uint32_t length); +void z80_write_block(const uint8_t *src, uint32_t dest, uint32_t length); +void z80_read_block (uint8_t *dest, uint32_t src, size_t length); -typedef enum fifo_t {fifo_in, fifo_out, NUM_FIFOS} fifo_t; +typedef enum fifo_t { + fifo_msgin, fifo_msgout, + fifo_conin, fifo_conout, + NUM_FIFOS + } fifo_t; void z80_memfifo_init(const fifo_t f, uint32_t adr); int z80_memfifo_is_empty(const fifo_t f); int z80_memfifo_is_full(const fifo_t f); -uint8_t z80_memfifo_getc(const fifo_t f); +int z80_memfifo_getc(const fifo_t f); +uint8_t z80_memfifo_getc_wait(const fifo_t f); void z80_memfifo_putc(fifo_t f, uint8_t val); -void z80_setup_msg_fifo(void); -void z80_init_msg_fifo(uint32_t addr); -int z80_msg_fifo_getc(void); +void z80_load_mem(int_fast8_t verbosity, const FLASH unsigned char data[], + const FLASH unsigned long *sections, + const FLASH unsigned long address[], + const FLASH unsigned long length_of_sections[]);