Vss | 1 | -6522 VIA- | 40 | ca1 | <-- | |
<-> | pa0 | 2 | 39 | ca2 | <-- | |
<-> | pa1 | 3 | 38 | rs0 | <-- | |
<-> | pa2 | 4 | 37 | rs1 | <-- | |
<-> | pa3 | 5 | 36 | rs2 | <-- | |
<-> | pa4 | 6 | 35 | rs3 | <-- | |
<-> | pa5 | 7 | 34 | !rst | <-- | |
<-> | pa6 | 8 | 33 | d0 | <-> | |
<-> | pa7 | 9 | 32 | d1 | <-> | |
<-> | pb0 | 10 | 31 | d2 | <-> | |
<-> | pb1 | 11 | 30 | d3 | <-> | |
<-> | pb2 | 12 | 29 | d4 | <-> | |
<-> | pb3 | 13 | 28 | d5 | <-> | |
<-> | pb4 | 14 | 27 | d6 | <-> | |
<-> | pb5 | 15 | 26 | d7 | <-> | |
<-> | pb6 | 16 | 25 | ph2 | <-- | |
<-> | pb7 | 17 | 24 | cs1 | <-- | |
<-> | cb1 | 18 | 23 | !cs2 | <-- | |
<-> | cb2 | 19 | 22 | r/!w | <-- | |
Vcc | 20 | 21 | !irq | <-- |
struct VIA = // a standard 6522 chip { byte PORTB; // Port B byte PORTA; // Port A byte DDRA; // Port B Control (Data Direction Register B) byte DDRB; // Port A Control (Data Direction Register A) // Write (R/W = L) | Read (R/W = H) byte T1C_L; // T1 Low-Order Latches | T1 Low-Order Counter byte T1C_H; // T1 High-Order Counter| T1 High-Order Counter byte T1L_L; // T1 Low-Order Latches byte T1L_H; // T1 High-Order Latches byte T2C_L; // T2 Low-Order Latches | T2 Low-Order Counter byte T2C_H; // T2 High-Order Counter byte SR; // Shift Register byte ACR; // Auxiliary Control Register byte PCR; // Peripheral Control Register byte IFR; // Interrupt Flag Register byte IER; // Interrupt Enable Register byte PORTA_NH; // Same as Register 1 except no handshake. };
Approximate VHDL entity only!
entity VIA_6522 is -- port( n_rst: in std_logic; -- Reset n_wr: in std_logic; -- Read / Not Write ph2: in std_logic; -- CPU clock phase 2 cs1: in std_logic; n_cs2: in std_logic; rs: in std_logic_vector(3 downto 0); d: inout std_logic_vector(7 downto 0); pa: inout std_logic_vector(7 downto 0); -- Port A ca: inout std_logic_vector(2 downto 1); -- Port CA pb: inout std_logic_vector(7 downto 0); -- Port B cb: inout std_logic_vector(2 downto 1); -- Port CB ); end entity VIA_6522;
For full details see the R6522 Rockwell Versatile Interface Adapter (VIA) data sheet (Zipped TIF)
Pin | 6821 6520 |
6522 | 6526 |
18 | CB1 | CB1 | !PC |
19 | CB2 | CB2 | TOD in |
21 | R/!W | !IRQ | !IRQ |
22 | CS0 | R/!W | R/!W |
23 | !CS2 | !CS2 | !CS |
24 | CS1 | CS1 | !FLAG |
35 | A0 | RS3 | RS3 |
36 | A1 | RS2 | RS2 |
37 | !IRQB | RS1 | RS1 |
38 | !IRQA | RS0 | RS0 |
39 | CA2 | CA2 | SP |
40 | CA1 | CA1 | CNT |