#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