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…
	
	Add table
		
		Reference in a new issue