]> Shamusworld >> Repos - apple2/blob - src/v6522via.h
6e52022eaa2c9d604fe9a464269e5f924cb53177
[apple2] / src / v6522via.h
1 //
2 // Virtual 6522 Versatile Interface Adapter
3 //
4 // by James Hammons
5 // (C) 2018 Underground Software
6 //
7
8 #ifndef __V6522VIA_H__
9 #define __V6522VIA_H__
10
11 #include <stdint.h>
12
13 struct V6522VIA
14 {
15         uint8_t orb, ora;               // Output Register B, A
16         uint8_t ddrb, ddra;             // Data Direction Register B, A
17         uint16_t timer1counter; // Timer 1 Counter
18         uint16_t timer1latch;   // Timer 1 Latch
19         uint16_t timer2counter; // Timer 2 Counter
20         uint8_t acr;                    // Auxillary Control Register
21         uint8_t ifr;                    // Interrupt Flags Register
22         uint8_t ier;                    // Interrupt Enable Register
23         uint8_t id;                             // Chip ID # (optional)
24
25         V6522VIA();
26         void Reset(void);
27         uint8_t Read(uint8_t);
28         void Write(uint8_t, uint8_t);
29         bool Run(uint16_t);
30 };
31
32 #endif  // __V6522VIA_H__
33