Chapter 2 - Tools
The 6502 Project
The 6502 Project Scope:
On these pages, I would like to define the scope of the project, or perhaps where I would like to see it go. Eventually, I would like to have some sort of key input and output to a screen. What this means at this point is a little unclear. It could be interfacing a regular keyboard or maybe a HEX pad and the display could be LCD, serial to another computer or maybe like the old days and send it to a TV. Because this is a "Let's go herding cats" project, I want to leave things open ended and free flowing.
My intentions of this page is to use it as a scratch pad and check list of where the project is going, went or plans to go. I know this may drive some of the more organized folks out there crazy, but my wife has never ever accused me of being an orderly and organized person. So I apologize now if you have trouble following my ramblings.
OK, with that out of the way, where do I start and where do I go with this adventure? The first thing I need to do is get the processor working and verify that it is doing what it is supposed to be doing. I think Quinn from blondihacks took a great approach to the problem and I think for now I am going to follow her lead. That is not to say I am going to plagiarize all of her work, but I am sure I will copy some of it. I hope Quinn finds the old adage, imitation is the finest form of flattery. Quinn, if you are reading this let me know the answer to that question.
At this point in the iteration, I think I need to do the following:
- Create a clock circuit that will provide both a clock for regular operation, and a push button to single step the processor.
- I will need to build some sort of display that will show me the address and data values on the processor bus. This will allow me to verify what the processor is sending out on the address bus and what data the ROM is sending out.
- I will need a method of providing a ROM to the processor for its initial JMP vector and some program code. I have a parallel port driven circuit that I have found on the Internet, but no software to drive it. I am a bit of a Linux fan, so I would like to demonstrate how to access and use the parallel port via Linux using the parapin library and Code::Blocks IDE.
I think that is enough to get started with, then later decide what to do next. If you read through that short list above, you will see why the project is like herdng cats to me. I have to accomplish some goals before I can really complete another. But hey, it's not where your going, it's all about how you get there right???
Welcome to the 6502 Project
My son Zachary approached me and told me that he would like to learn electronics. I spent some time trying to give him resources, books and some hands on to help him in the learning experience. In the interim, I was reading up on stuff that I had not tried or used in years. Then along came a book by Steve Ciarcia called Build your own Z80 computer. I was fascinated by the the idea even if it was 30 plus years old. Next, I started looking on Jameco's website to see if any of the parts to build such a beast were even available. To my surprise, most of them were. This set the gears in motion. The only problem I had was that I didn't know machine language for the Z80 processor. I did however, have some experience with the 6502 and 6510 processors of my early Commodore days in the 80's. All this lead me to some Google searches on how to build a computer using a 6502 processor and to my very pleasant surprise, there were people doing it. It wasn't until I read a blog called Blondihacks by Quinn Dunki that I decided that I would try to give it a go. I would recommend you read her stuff. It is laid out well and she is doing a great project. I cannot go on without mentioning another great website dedicated to all things 6502 and their related families and support chips. That site is called 6502.org and I would hope you would check what they have to offer. They have some great stuff!!!
The only real problem with doing a project like this is, not having a defined goal in mind before starting. Without having that goal in mind, I am sure that getting to the end of it ends up a lot like herding cats. But I don't have a particular use in mind for the project other than the learning experience. So let's just hope that the cats take me to interesting places.
If you have advice, constructive criticism or encouragement please feel free to email me to xavier(REMOVETHISTEXT)@gtec.com.