blob: 5582ba35d3ef1ded8b8e799baca4b14a85e8c84f (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
|
#ifndef MOS6522_H
#define MOS6522_H
#include <stdint.h>
#include <stdbool.h>
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
|