From f829f6893d94ed52044bf007bc447526c9d5e653 Mon Sep 17 00:00:00 2001 From: Andreas Baumann Date: Fri, 27 Nov 2020 20:04:18 +0100 Subject: emulator uses a bus now in the cpu, ROM, RAM and VIA (7-seg) are devices connected to the bus --- emu/bus.h | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) create mode 100644 emu/bus.h (limited to 'emu/bus.h') diff --git a/emu/bus.h b/emu/bus.h new file mode 100644 index 0000000..baa2fe2 --- /dev/null +++ b/emu/bus.h @@ -0,0 +1,28 @@ +#ifndef BUS_H +#define BUS_H + +#include "device.h" + +enum { + MAX_NOF_DEVICES = 5 +}; + +typedef struct registered_device_t { + device_t *device; + uint16_t from; + uint16_t to; +} registered_device_t; + +typedef struct bus_t { + device_t base; + int nof_devices; + registered_device_t devices[MAX_NOF_DEVICES]; +} bus_t; + +void bus_init( bus_t *bus ); +void bus_register( bus_t *bus, device_t *device, uint16_t from, uint16_t to ); +uint8_t bus_read( void *obj, uint16_t addr ); +void bus_write( void *obj, uint16_t addr, uint8_t data ); +void bus_deinit( void *obj ); + +#endif -- cgit v1.2.3-54-g00ecf