Chris Ward's 6502 Computer


The Circuit
Parts List
EEPROM Programmer
Related Links

Back to my Home Page

Created by Chris Ward
Last update 15/05/2007


The computer has evolved a lot during the 18 months that I've been working on it. I will split the specification into two parts, to indicate what was built first and what was added later.

Base System

This is the original specification of the system, and is all I built to begin with:

Processor 6502 running at 2MHz
RAM 32k of SRAM
I/O Two 6522 VIAs, each providing 16 digital I/O lines plus timer functions.
One 6551 ACIA plus MAX232 to provide an RS232 serial interface operating at upto 19,200 bps.

There is 4k of memory-mapped I/O space. This is decoded to provide chip select lines for 16 I/O devices, each of which may have upto 256 bytes of address space. Hence it is not necessary for each device to have it's own address decoding logic. With the three I/O devices on board, up to 13 more could be added.

Obviously, the base system has no user input or output facilities. Initially, this can be provided by using a PC (or any computer with a serial port) as a terminal on the RS232 port.

The memory map of the base system looks like this:

0000-7FFF : 32k RAM
8000-CFFF : 20k available for future expansion
D000-DFFF : 4k I/O space
            D000-D003 : 6551 ACIA
            D100-D10F : 6522 VIA #1
            D200-D20F : 6522 VIA #2

Later Additions

The following devices and interfaces have been added to the base system:

  • 16-way keypad
  • Alphanumeric LCD display
  • Infra-red receiver
  • Real time clock
  • 16-bit IDE interface

The keypad and the infra-red receiver make use of the 6522 I/O ports. A small additional circuit is needed to buffer the signals between the 6522 and the keypad.

Just a few logic gates are required to interface the LCD display, which is connected almost directly to the 6502's bus. I have placed this interface on my main board.

The real time clock and, especially, the IDE interface are a bit more complex and I have built these together on another circuit board. The RTC is the DS1687 from Dallas. This has a built-in battery and crystal, 242 bytes of non-volatile RAM, and is Y2K compliant. The IDE interface uses latches to bridge the gap between the 8-bit 6502 bus and the 16-bit IDE bus. It should work with any IDE device, e.g. hard disks or CD-ROM drives. The difficult part is writing the software...

Memory map extensions:

            D300-D301 : LCD display
            D400-D401 : Real Time Clock
            D500-D510 : IDE interface

Future Expansion

Only 9 out of the 32 I/O pins on the 6522s are used, so more devices can be attached here. A general purpose 8-bit parallel port would be a nice addition to the computer's back panel. It may even be possible to make a standard PC-style printer port.

The free area at 8000-CFFF could be used for more RAM and/or ROM, and is already decoded into 4k regions by the '138 (see the circuit description). Maybe a plug-in ROM cartridge interface would be useful, or possibly a FLASH memory card system like you see on palmtop computers.

There are still 10 vacancies for devices in the I/O area. Possible uses could be ADCs, DACs, sound or video devices, or more general purpose I/O ports.