From c684c194bccdb08df75423680ba334739a945fe5 Mon Sep 17 00:00:00 2001 From: Maxwell Beck Date: Tue, 24 Dec 2024 10:54:02 -0600 Subject: Initial commit --- src/6522.h | 40 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 40 insertions(+) create mode 100644 src/6522.h (limited to 'src/6522.h') diff --git a/src/6522.h b/src/6522.h new file mode 100644 index 0000000..5582ba3 --- /dev/null +++ b/src/6522.h @@ -0,0 +1,40 @@ +#ifndef MOS6522_H +#define MOS6522_H + +#include +#include + +typedef struct via_s { + uint8_t ira; + uint8_t irb; + uint8_t ora; + uint8_t orb; + uint8_t ddra; + uint8_t ddrb; + uint16_t tca; + uint16_t tcb; + uint16_t tla; + uint16_t tlb; + uint8_t acr; + uint8_t pcr; + uint8_t ifr; + uint8_t ier; + uint8_t latch_a; + uint8_t latch_b; + + bool tav; + bool tbv; +} via_t; + +extern void via_pa_read(via_t *via, uint8_t cycle); +extern void via_pb_read(via_t *via, uint8_t cycle); +extern void via_pa_write(via_t *via, uint8_t cycle); +extern void via_pb_write(via_t *via, uint8_t cycle); + +void via_init(via_t *via); +void via_read(via_t *via, uint8_t addr, uint8_t *v, uint8_t cycle); +void via_write(via_t *via, uint8_t addr, uint8_t v, uint8_t cycle); +void via_cycle(via_t *via, uint8_t cycles); +bool via_irq(via_t *via); + +#endif \ No newline at end of file -- cgit 1.4.1