
32×64 2k VDU
A 32-row × 64-character video display unit. Connects to any 65C02 SBC with configurable 2K address window and RCA composite output.
32×64 2k VDU
What is it?
A Printed Circuit Board for a 32-row by 64-character video display unit. Designed for 2K × 8 SRAM and a 2K × 8 EPROM character generator. Outputs composite video via an RCA connector — connect directly to a TV or LCD with AV input.
Why did I make it?
I wanted a generic VDU I could attach easily to any of my 65C02 projects. The data bus is buffered and the address location can be decoded as any 2K block in the full 64K address space.
What makes it special?
Not available elsewhere. Works with any 65C02 SBC. The 2716 EPROM uses the UK101 character set — you can program a different EPROM to change the character set entirely.
Note: 74HCT123s are recommended over 74LS123s — one of my customers found the display was rock-steady with HCT variants. I have also found 74123s preferable to 74LS123s for stability.
Technical Overview
- Internal clock: 12MHz oscillator
- Scanning addresses: 3× 74LS393 counters
- CPU access switching: 3× 74LS157 data selectors
- Field and line sync pulses: 2× 74123 dual retriggerable multivibrators
- Serial output to composite: 74LS165 shift register
Bill of Materials — ICs
| Ref | Part | Description |
|---|---|---|
| IC1 | 74LS245 | Octal Bus Transceiver |
| IC2, IC3, IC4 | 74LS157 | Quad 2-to-1 Data Selector |
| IC5, IC6, IC7 | 74LS393 | Dual 4-bit Binary Counter |
| IC8 | 74LS139 | Dual 2-line to 4-line Decoder |
| IC9, IC10 | 74123 | Dual Retriggerable Monostable (use 74HCT123) |
| IC11 | 74LS165 | 8-bit Parallel-load Shift Register |
| IC12 | 2716 | 2K×8 EPROM (Character Generator) |
| IC13, IC14 | 74LS02 | Quad 2-Input NOR Gate |
| IC15 | 74LS04 | Hex Inverter |
| IC16 | 74LS08 | Quad 2-input AND Gate |
| IC17 | 74LS00 | Quad 2-input NAND Gate |
| IC18 | 5516 | 2K×8 SRAM |
Bill of Materials — Passives
| Ref | Value |
|---|---|
| C1 | 0.22µF |
| C2 | 0.022µF |
| C3 | 120pF |
| C4 | 220pF |
| C5–C8, C11–C18 | 0.1µF |
| C9 | 1000pF |
| C10 | 680pF |
| R1 | 4.7KΩ |
| R2 | 22KΩ |
| R3 | 390Ω |
| R4 | 220Ω |
| R5 | 150Ω |
| R6 | 620Ω |
| R7 | 47KΩ variable |
| R8 | 680Ω |
| R9 | 33KΩ |
| R11 | 4.7KΩ |
| R12 | 15KΩ |
| D1 | 1N4148 |
| OG1 | 12MHz Oscillator (14-pin) |
| J1, J2 | 2×18-way 90° pin headers |
| J3 | 8×2-pin header |
| J4 | RCA Connector |
| J5 | 3-way A15 selector |
Address Decoding
The VDU's 2K video RAM can be mapped to any 2K window in the 64K address space using jumper links on J3 and J5. My own board is decoded to $D000–$D7FF.
| Address Range | A15 Strap |
|---|---|
| $0000–$07FF | A15 strapped |
| $0800–$0FFF | A15 strapped |
| $1000–$17FF | A15 strapped |
| $1800–$1FFF | A15 strapped |
| $2000–$27FF | A15 strapped |
| $2800–$2FFF | A15 strapped |
| $3000–$37FF | A15 strapped |
| $3800–$3FFF | A15 strapped |
| $4000–$47FF | A15 strapped |
| $4800–$4FFF | A15 strapped |
| $5000–$57FF | A15 strapped |
| $5800–$5FFF | A15 strapped |
| $6000–$67FF | A15 strapped |
| $6800–$6FFF | A15 strapped |
| $7000–$77FF | A15 strapped |
| $7800–$7FFF | A15 strapped |
| $8000–$87FF | /A15 strapped |
| $8800–$8FFF | /A15 strapped |
| $9000–$97FF | /A15 strapped |
| $9800–$9FFF | /A15 strapped |
| $A000–$A7FF | /A15 strapped |
| $A800–$AFFF | /A15 strapped |
| $B000–$B7FF | /A15 strapped |
| $B800–$BFFF | /A15 strapped |
| $C000–$C7FF | /A15 strapped |
| $C800–$CFFF | /A15 strapped |
| $D000–$D7FF | /A15 strapped (author's setting) |
| $D800–$DFFF | /A15 strapped |
| $E000–$E7FF | /A15 strapped |
| $E800–$EFFF | /A15 strapped |
| $F000–$F7FF | /A15 strapped |
| $F800–$FFFF | /A15 strapped |
Downloads
Schematics & Images
