summaryrefslogtreecommitdiff
path: root/emu/6522.h
diff options
context:
space:
mode:
Diffstat (limited to 'emu/6522.h')
-rw-r--r--emu/6522.h19
1 files changed, 16 insertions, 3 deletions
diff --git a/emu/6522.h b/emu/6522.h
index 853bd3e..d3bade7 100644
--- a/emu/6522.h
+++ b/emu/6522.h
@@ -16,8 +16,16 @@
// the VIA is initialized with a base address, the addresses for
// the registers are relative to this base.
enum {
+ PORTB = 0x00,
PORTA = 0x01,
- DDRA = 0x03
+ DDRB = 0x02,
+ DDRA = 0x03,
+ T1LCL = 0x04,
+ T1LCH = 0x05,
+ ACR = 0x0b,
+ PCR = 0x0c,
+ IFR = 0x0d,
+ IER = 0x0e
};
typedef struct via_6522_t
@@ -27,14 +35,19 @@ typedef struct via_6522_t
uint16_t addr;
uint8_t ddra;
+ uint8_t ddrb;
+ uint8_t pcr;
+ uint8_t ier;
bool debug;
- bus_t bus;
+ bus_t busa;
+ bus_t busb;
} 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 );
+void via_6522_reset( via_6522_t *via );
+void via_6522_register( via_6522_t *via, int bus, 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 );