Skip to content

Latest commit

 

History

11 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

6502-computer

A fully functional 8-bit computer built from scratch using the R65C02 microprocessor. This project recreates the fundamentals of early personal computers by combining a CPU, RAM, ROM, I/O controller, clock circuitry, and a character LCD entirely on a breadboard.

6502 Computer


Overview

this project was built to gain a deeper understanding of how computers actually work at the hardware level.

Instead of relying on a microcontroller or FPGA, every major component of the computer is connected individually using discrete wiring on a breadboard. The CPU fetches instructions from an EEPROM, communicates with external RAM, controls peripherals through a VIA, and displays information on a standard 16×2 LCD.

Building the system from the ground up provided hands on experience with buses, memory mapping, digital logic, timing and low-level programming.


Features

  • Fully functional 6502-based computer
  • 32 KB EEPROM
  • 32 KB SRAM
  • 6522 VIA for peripheral control
  • Character LCD output
  • Push button user input
  • Hardware reset circuit
  • Breadboard construction
  • External EEPROM programming
  • Expandable architecture
  • Written entirely in 6502 ASM

Gallery

  1. Clock Module

Clock Module

The adjustable clock module generates the system clock for the entire computer. During debugging the clock can be slowed down, allowing individual instructions to be observed one cycle at a time.

  1. Programming the EEPROM

T48 Programmer

Programs are assembled into a binary image and written to the AT28C256 EEPROM using a T48 universal programmer.

  1. Writing the ROM Image

Programming EEPROM

The assembled ROM image is programmed directly into the EEPROM before installing it into the computer.

  1. Completed Computer

6502 Computer

The finished breadboard computer.


Hardware

R65C02 -> 8-bit CMOS Microprocessor

AT28C256 EEPROM -> 32KB Read Only Memory containing the monitor/program

AS6C62256 SRAM -> 32KB Static RAM

R65C22 VIA -> Parallel I/O controller for LCD, LEDs and buttons

16×2 LCD -> HD44780-compatible character display

1 MHz Oscillator -> System clock source

Reset Circuit -> Push-button reset with pull-up resistor

User Buttons -> Input through the VIA

Status LED -> Visual debugging output


Architecture


                  +----------------+
                  |   1 MHz Clock  | ---------------------+
                  +-------+--------+                      |
                          |                               |
                          v                               |
                  +----------------+                      |
                  |     R65C02     |                      |
                  +--+----+----+---+                      |
                     |    |    |                          |
      Address Bus ---+    |    +------ Control Signals    |
                     |    |                               |
                     |    +--Data Bus                     |
                     |    |                               |
        +------------+----+-------------------+           |
        |                 |                   |           |
        |                 |                   |-----------+
   +-----------+     +-----------+     +-------------+
   | EEPROM    |     | SRAM      |     | 6522 VIA    |
   | AT28C256  |     | AS6C62256 |     | I/O Control |
   +-----------+     +-----------+     +------+------+
                                              |
                       +----------------------+----------------+
                       |                                       |
                   16×2 LCD                             Push Buttons

About

building a 6502 breadboard computer from scratch.

Resources

Stars

20 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages