From aff63a211e9b1e397adb9dce726d8153beb96dcd Mon Sep 17 00:00:00 2001 From: Andreas Baumann Date: Wed, 30 Dec 2020 16:55:06 +0100 Subject: - 7seg is a subdevice of the VIA 6522 now, registering to a small sub-bus --- emu/6522.h | 46 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 46 insertions(+) create mode 100644 emu/6522.h (limited to 'emu/6522.h') diff --git a/emu/6522.h b/emu/6522.h new file mode 100644 index 0000000..853bd3e --- /dev/null +++ b/emu/6522.h @@ -0,0 +1,46 @@ +#ifndef VIA_6522_H +#define VIA_6522_H + +#include "device.h" +#include "bus.h" + +#include +#include + +#ifdef WITH_GUI +#include +#endif + +// the VIA connects to sub-devices itself via the bus. It also +// has things like timers and internal registers +// the VIA is initialized with a base address, the addresses for +// the registers are relative to this base. +enum { + PORTA = 0x01, + DDRA = 0x03 +}; + +typedef struct via_6522_t +{ + device_t base; + + uint16_t addr; + + uint8_t ddra; + + bool debug; + + bus_t bus; +} via_6522_t; + +void via_6522_init( via_6522_t *via, uint16_t addr, bool initialize ); +void via_6522_register( via_6522_t *via, device_t *device ); + +uint8_t via_6522_read( void *obj, uint16_t addr ); +void via_6522_write( void *obj, uint16_t addr, uint8_t data ); +#ifdef WITH_GUI +void via_6522_draw( void *obj, SDL_Renderer *renderer ); +#endif +void via_6522_deinit( void *obj ); + +#endif -- cgit v1.2.3-54-g00ecf