lots of words
This commit is contained in:
parent
002caab791
commit
ec4a412a95
1 changed files with 41 additions and 1 deletions
42
README.md
42
README.md
|
@ -1,5 +1,45 @@
|
||||||
# 6502-hacking
|
# 6502-hacking
|
||||||
|
|
||||||
> HACKING <
|
A project to work with [Ben Eater's 6502] computer kit, replacing the clock module
|
||||||
|
and EEPROM, amongst other things.
|
||||||
|
|
||||||
|
\> HACKING <
|
||||||
|
|
||||||
|
This is very much work in progress but does manage to demonstrate several things.
|
||||||
|
It's made up of two parts. `6502-contoller` is an Arduino firmware for interacting
|
||||||
|
with the 6502 and `6502-loader` is a python script to interact with the Arduino.
|
||||||
|
|
||||||
|
## 6502-contoller
|
||||||
|
This Arduino firmware started off fairly similarly to Ben's monitor firmware but I
|
||||||
|
needed a couple additional things. As I didn't have the clock module it also provided
|
||||||
|
a clock signal from the start. It can also be tied to the 6502 `RSTb` line and control
|
||||||
|
the reset signal. I also opted to not buy the EEPROM reader for several reasons.
|
||||||
|
One, I don't have the money and additionally I just hate the idea of having
|
||||||
|
to pull a chip to program it, place it back in, blah, blah. I spend 20 years in web
|
||||||
|
development damn it! CTRL-R is my compiler! So the firmware can load the entire ROM
|
||||||
|
into memory, read the `ADDRESS` lines coming off the 6502 and provided the addressed byte
|
||||||
|
on the `DATA` lines.
|
||||||
|
|
||||||
|
This second feature, while being generally great and speeding up development does have
|
||||||
|
one major hiccup. It's requires not only an Arduino with many IO, like a Mega, it
|
||||||
|
also requires a device with over about 60kb of memory... unlike a Mega. For this project
|
||||||
|
I'm using an inexpressive STMicro Nucleo F401RE devboard. While inexpressive these
|
||||||
|
are still not as accessible as a Mega for some people. The originally I had wanted to
|
||||||
|
request each byte over serial as the address lines change but could not manage to make
|
||||||
|
this work. Now that the entire project is working better and my understanding has
|
||||||
|
improved I *do* think it's possible and might be worth revisiting.
|
||||||
|
|
||||||
|
## 6502-loader.py
|
||||||
|
This part interacts with the Arduino firmware. In it's basic flow it handles several things.
|
||||||
|
|
||||||
|
* Stopping the clock
|
||||||
|
* Putting the 6502 into reset
|
||||||
|
* Loading the ROM into the Arduinos memory
|
||||||
|
* Restarting the clock
|
||||||
|
* Bringing the 6502 out of reset
|
||||||
|
* Runs monitor mode
|
||||||
|
|
||||||
|
At this point the script can be exited and the 6502 will continue to run. A normal terminal
|
||||||
|
can be opened to stop the clock and use single stepping from the devboard.
|
||||||
|
|
||||||
|
[Ben Eater's 6502]: https://eater.net/6502
|
||||||
|
|
Loading…
Reference in a new issue