Skip to main content

6502 compatible TTL computer

So, this is the project I've been working on for the past 10 months, a 6502 compatible (but for timing and decimal mode) TTL CPU and accompanying computer.
I'm slowly working my way through Learning the Art of Electronics, and the digital part of the course requires quite a lot of specialized material. To make up for the practical sessions, I decided to build a CPU from 74XX ICs. The original idea was to make something like this project , but then I found out about the 6502 and things went a bit out of hand.
I started designing the CPU in Logisim, using Python to write microcode and the ALU ROMs contents. After several versions and a lot of debugging, it finally executed Klauss Dorman's 6502 test suite, taking an entire week to do so in the slow Logisim simulation.

Most schematics were laid out and the entire CPU was built in little more than two weeks, on "holidays" between university semesters.  Quite some productive time I must say.
Lots of debugging and modifications later, regarding subjects such as power and ground distribution, reflections, asynchronous interrupts and more, the CPU and the peripherals I have built around are now fully functional.
Those peripherals include memory, a character LCD, VGA output, PS/2 and serial interface.

All this was possible thanks to the people over forum.6502.org. This project's thread can be found here.

All files, schematics, block diagrams, assembly programs, the Logisim simulation and more can be found in this gitHub repository.
Finished case
Fully populated CPU cards
Fully populated CPU cards










This is just a short summary. I may write a couple posts on curious aspects of the project. As of now, here is a summary & demonstration video:


Comments

Popular posts from this blog

Split-ring compound epicyclic/planetary gearboxes

A while ago, I came across this strange thing called ‘split-ring compound epicyclic/planetary gearboxes’. They seemed really nice, extremely high gear ratios in compact, stackable modules. But the already existing models were not enough. I wanted to be able to design my own, and due to the lack of information on the subject, I had to do a little research and some math. Here is most of what I would have liked to find on the first place: 1. What is a planetary gearbox? Planetary gearboxes, as their name says, resemble planets orbiting around a “sun”. They are composed of a sun gear, in the center, two or more planet gears around it -and often fitted to a carrier- and a ring/annulus gear on the outside. As an image is worth a thousand words: Source Their main feature is a high reduction ratio in a small, flat space, and also, it is easy to couple the output of one gearbox to the input of another one, getting a two or more stage gearbox with such a high reduction ratio. But where is the i

Arduino Based Electronic Load

I have had some problems with my "lab power supply" and I wanted to build another one, so I thought a DC load may be handy to have around. The design is based around Dave Jone's design shown in this video , but with a couple more features, including:     -Arduino controlled.     -Voltage, current, power and temperature monitoring.     -CC and external in hardware modes and CP, Cr software modes.     -Over temperature, over power and over current protection (software) It can handle around 4 amps and 24 volts, limited by the mosfet. It's divided in two main boards. * UI Board: houses the 7 segment displays (I know one is bigger that the others, just what I had aroud...) and the keyboard. The display is multiplexed using a shift register. In addition, the four buttons are read taking advantage of the transistors switching the comon anodes, requiring only one additional pin. Only the first digit had decimal point, so one led was added for the second dig

Linear lab power supply

This is a dual channel linear lab power supply I have spent recent months building, much thanks to the help received in  this EEVBlog thread . All design files are available in this  GitHub repository . I will attempt to go over the general progress of the project, but please refer to the said thread for more information. Design requirements: Dual isolated channels. Adjustable voltage and current  30 V , 500 mA per channel. Digital voltage and current displays. Build stages: First, the case was made out of a wooden board and 3d printed front and back panels. Heatsinks were taken from old computers. One side of a 2x 10Vac and a 15 Vac transformer power each channel, plus a 12 Vac smaller transformer for the displays, fan and microcontroller. Ac voltages are rectified and filtered on a separate board. Here are some photos of the early development, initial circuit was based on the one found  here . Then came perfboard prototypes, testing and throubleshooting: