Hey everyone!
I'm currently designing/testing my own 65C02 computer (inspired by Ben Eater) and thought I might post it here.
I wanted something versatile and fun to play with while learning assembly language and the 6502 seemed a good choice becuase of its already big community.
I put a lot of chips in it because I had some of them lying around. Also I always add a bit too much to my projects, just in case
Here are some specs of my computer:
Clock:
- Single Step
- NE555 timer (~5Hz .. 50kHz)
- Oscillator (currently 1MHz)
Memory Map:
0000 - 3FFF = Banked RAM
4000 - 7EFF = Common RAM
7F00 - 7F0F = PIA
7F10 - 7F1F = VIA1
7F20 - 7F2F = VIA2
7F30 - 7F3F = VIA3
7F40 - 7F4F = ACIA1
7F50 - 7F5F = ACIA2
7F60 - 7F6F = VGA GPU (will be an FPGA)
7F70 - 7F8F = SID
7F90 - 7F9F = IO9
7FA0 - 7FAF = IOA
7FB0 - 7FBF = IOB
7FC0 - 7FDF = IOC
7FE0 - 7FFF = IOD
8000 - FFFF = ROM
Banked RAM is 32 pages, I decided to bank the ZP and Stack as well, so every "task" later can have its own. Maybe a dumb idea, maybe good, I have to see how this will turn out....
I also added a BluePill-Board with STM32 microcontroller as embedded USB logic analyzer, so I can trace the program while the clock is slower.
PIA is for 2 Ports LEDs out (also on pin headers for general IO)
VIA1 is controlling the RAM banks as well as interfacing with the LCD (up to 4x40 char LCD)
VIA2 is 8 buttons as inputs (diode-ORed to CB1) as well as 8 interrupt lines (diode ORed to CA1), connected to IRQB on the 6502
VIA3 is currently only connected to pin headers (also connected to NMI on 6502), might add a PS2 keyboard to this one
ACIAs have Pin headers for the 5V serial signals as well as 2 MAX232 each for RS232 (each one connected to an interrupt)
GPU - IOD are expansion ports on the main pcb.
VGA GPU i will be another project. I plan to realize a VGA GPU on an FPGA for 640x480 display. This is postponed due to me still have to learn VHDL better....
SID is reserved for a 8580 SID I have lying here, will be the sound card.
the rest of IO-spaces can be used for whatever (one idea is hooking it up to an ESP32 for internet connection)
ROM is.... well.... ROM... EEPROM 28C256
I also added LEDs to the address and data bus, as well as RWB and Clock
I started this project out of fascination and boredom, also because I was inspired by Ben Eaters Breadboard computer (actually I tested the schematic on breadboards too), but since I'm currently studying to become a state certified technician (in electronics), I will use this project as my finals work.
If you have any questions, feel free to ask.
Currently I'm programming the libraries for the ICs and LCDs, writing or porting a small OS to it would be awesome, but as I'm still learning assembly, it can take some time...
and here is a picture of my computer ^^