View Full Version : Homebrew 6502 help!!!

January 4th, 2006, 08:39 PM

I've grown slightly impatient waiting for the Replica 1, so I'm going to put that project on hold.

I need some help... I need to know exactly how I could carry out my plan to make a homebrew computer like the Altair 8800 only with a 6502. Of corse, it would now use very much extra hard ware, I plan to have three cards to start with... a CPU card, a RAM card and a front panel card. The ram card and the CPU card would be connected to a 4th minor card which would be for splitting the address/data bus between the front panel, CPU card and the RAM card. A ribbon cable would be connecting the minor card to the front panel which would have lights for memory locations and switches to shift through them, and same for the databus and switches.

So could someone go through this with me and help me know how to shift through memory locations with the switches and write to the RAM. This is a ROMless computer, but I'm putting an option to expand by plugging in a special card with a PROM on it which I could program to have things built in, which you configure if you it in or not with a switch on the motherboard.

How do I connect directly to the static RAM, and last, but not least how the heck do I get all these vintage parts (I.E. 6502, static ram etc)

Thanks for your help!

Stephen - Shiftkey

vic user
January 5th, 2006, 04:22 AM
i am pretty darn sure you can find a lot of info for what you are doing from this link:


looking forward to seeing some pics of your brew some day!


January 5th, 2006, 03:54 PM
Hmm. I suppose. I've been there, but that's sort of for the 6502 itself. I know they have alot of homebrew projects there, but none can really help me. I guess if I sit down and start designing I'll figure it out.

Terry Yager
January 5th, 2006, 10:10 PM
Are you just trying to figger-out the (serial) I/O for it, or what? (I think I know a couple of sites with info for interfacing 1488/89 ICs to RS-232, if that's what you're looking for).


Terry Yager
January 5th, 2006, 10:28 PM
Now that I know that you're only 12 (???) years old, I'm going to assume (?) that you have an open mind, and are willing/able to learn and/or adapt when necessary. With this assumption in mind, I'll ask, would you be willing/able to switch your fledgewing homebrew project to something in the i8080/85/Z80 area? (I know, saccrilige, and all that) but, I could help you a lot more if dealing with chips & systems that I'm more familliar with. (The 8085 CPU, (actually, a computer-on-a-chip), f'rinstance, is a lot simpler to work with, hardware-wize than the 68/65xx chip).


January 6th, 2006, 12:54 AM
blegh. I know I'm probly the youngest Vintage Computer enthusiast but don't under-rate me. I know alot about computer history and how they work. If I sat down and thought about it enough I could probly figure it out. I just need to know one thing: how do you display the RAM memory location numbers on the LED panel? like on the Altair or IMSAI where you switch in the memory location you want the 8 bits of assembly code to go into.

like if I was programming a test program, and I wanted the first line of code (1100 0011) to go into memory location 10000000 (<--in binary) how would I make the switches and lights on the front panel work with the address bus to display the memory locations on the ram. I'm sure it's very easy to do.

(PS I have been thinking about switching my project to use the 8080 or somthing like that. it's almost the same. except I already learned 6502 assembly: LDA 101000101, CMP #2881 or whatever. I'd need to refresh myself but W/E)

January 6th, 2006, 03:42 AM
I checked the homebuilt 6502 section on the mentioned site, and there is a lot of stuff that should be of use to you. No matter your age, without a solid education in electronics I doubt you can figure out how to interface complex components by just sitting down and think for a while. I know I couldn't, and I'm 30.

The first listed project on that page is a 6502 interfaced to a 6522 VIA to control a set of LEDs. I don't know if that is in line with how you want to start, but it resembles a simple computer.


Another 6502 project, a ROM-less microcomputer to mimic the Altair 8800:


This project involves a 6526 CIA (found in e.g. Commodore 64). I don't know if 6522 is more easily found than 6526, if there are replacement components, PIC or other simulations of these circuits.

Good luck!

Terry Yager
January 6th, 2006, 10:14 AM

This link has a brief tutorial on using the blinkenlights on an Imsai. The Altair should be similar.


You can also download a simulator from daNet, if you want to practice a little.


January 6th, 2006, 03:58 PM
I own an IMSAI heheh.

Though it doesn't work. I can practice by "imagining" the lights going on and the system non-malfunctant

Terry Yager
January 10th, 2006, 12:59 AM
OK, I just had a talk with my dad (he is a really awesome guy! he seems to know everything) and he explaned to me exactly how the things i was questioning worked, and now I understand!

the memory location select switches are pretty much just wired directly to the RAM itself. The individual 8 bit memory locations have addresses themselves and if you address it and you don't tell it anything it will tell you what it has in it.

I have a good plan on how it will be used. it'll be simpler than the IMSAI and the Altair together!

Actually, it's a little more complicated than that, but you're certainly on the right track. To interfaces switches for input and LEDs for output would require tyind them to the apporpriate lines to/from thr processor. 16 switches and 16 LEDs tied to the address lines, and 8 switch/LED pairs to the data lines. Yuo would also want to enable certain control lines, like mem/rd, mem/wr, bus/req, etc, with appropriate output LEDs so that you could monitor and/or manipulate the ststus of your busses.
To utilize such a system, you would select an address on that buss, then select on the data buss the binary data to be placed in that address. Next step would be to hit a control switch named "Load" or "Store" or something similar, which pulses the data into the low-order byte of the seleceted address, then reprogram the second byte of data and repeat the process, which bumps the previously stored data up into the high order byte, and the new data is deposited into the LOB. At this point, one of your command/control switched should be "Next" or similar, which simply increments the address bus up to the next available addy, and you then repeat the procedure with the next data in the memory location. Do this for about 65,534 more iterations, and you should be ready to run your new "Killer App"!


February 11th, 2006, 09:10 AM
Well, that's good. I thougt I was the youngest in this forum, at 13 :D.
It's good to see that there's at least one other young person who takes an interest in retrocomputing.
I don't do programming so much as just hardware on a larger scale, but I know a quite a lot about that.
I have on my bookshelf a project in two parts to build a computer based on an odd chip by Dallas Semiconductor called the DS5000.
The website thad had it is down, but I have it on hard copy.
It includes an extensive introduction to DS5k assembler.
One of the problems is this: I added up the total quoted cost of all the parts, and it came to something like $500 (US$, I think) but it was probably more than that.
I would like to build a homebrew micro, but that'd involve getting off my lazy ass and learning (insert random processor here) assembler. I don't know how fast THAT'd happen :lol:.

I have this strange old board that looks like S-100 but is a little over twice the height, and I think has the wrong number of pins, but I'm not quite sure, not having in my collection any S-100 systems. I think it would be interesting and engaging to base a homebrew on that.

Stephen, I wish I still had my dad, as I'm sure he'd be a great help with my collection etc. Your dad sounds cool.

I'm sure there's something I've missed, but bye for now from
MoonShadow - Brendan

March 4th, 2006, 11:36 PM
If you don't mind only being able to step through RAM (not ROM or EPROM), insert a jump or break after the "current instruction" and then read the address saved on the stack and display it:

BRK (break)
Triggers an interrupt and skips a byte. This instruction pushs the program counter and the status register and does an indirect jump to an interrupt handler. Although the opcode is one byte, the instruction is treated as if it is two bytes long.