#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