summaryrefslogtreecommitdiff
path: root/emu/6522.h
diff options
context:
space:
mode:
authorAndreas Baumann <mail@andreasbaumann.cc>2021-01-02 20:23:52 +0100
committerAndreas Baumann <mail@andreasbaumann.cc>2021-01-02 20:23:52 +0100
commit9490b470f3c0ac2357b60a56a893ab86556af634 (patch)
tree15d8358467ffdacc1bb76e9d9e926e6ee294070e /emu/6522.h
parentaff63a211e9b1e397adb9dce726d8153beb96dcd (diff)
download6502-9490b470f3c0ac2357b60a56a893ab86556af634.tar.gz
6502-9490b470f3c0ac2357b60a56a893ab86556af634.tar.bz2
added VIA
added some more opcodes (SEI, CLI)
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 );