Bentendo 6004

An Intel 8085-based computer

Similar projects worth following
Why the Intel 8085? Why not the Z80? It's like 40 times better.

The answer is rather simple, really. Back in 8th grade, I found some antistatic tubes with some chips in them. One tube had an 8085 and some support chips (couple 8255's, an 8251, a few 8212's, a few EPROM's, and some dynamic ram support chips). The other tube had 24 Intel 2104A 4k dynamic rams. So I set out to build a coputer using these chips. I didn't know much back then, but I still spent hours upon hours breadboarding a prototype on the Heathkit ET-3200 that I also found down there.

Looking back on it, I had most of the basic ideas down, but it wouldn't have worked mostly because my (nonexistent) address decode logic wasn't right. That and I had absolutely no clue where to start with programming it.

So now here I am, five years later. I'm at college to hopefully go into electrical engineering, and my basic digital electronics class got me all interested again. It also seems that there's a character number li

This computer will be a learning experience for me. I will make many mistakes that you the reader will probably see long before I make them. With that said, input is greatly apprechiated. I am by no means an engineer (yet) but maybe this will help me get closer.

The main goal of this project, however, is to build myself a computer around the 8085 cpu using mainly of-the-time components. It will include a ton of chips, and I will probably try to find use for the many chips I have lying around.

As of right now, these are the planned features:

- Intel P8085A clocked at 3MHz

- Custom, propietary bus interface using .1" headers (mostly so I don't have to come up with a way to use card edge connectors without buying things or etching pcb's)

- 8k SRAM board, 12k DRAM board to begin with

- Bank switch for up to four memory banks (planning on switching the upper 16k of ram, but we'll see what happens)

- EPROM burner

- IDE interface (floppy seemed really difficult without a dedicated controller, and ATA can be done mostly in software with minimal hardware, from what I understand)

- PS/2 keyboard

- RS-232 port

- GPU of sorts. Output will be VGA. I won't spill the beans on my idea for this yet, but it will probably involve some sort of modern microcontroller, or a Z80.... Stay tuned

  • 8 kilobytes of RAM and hardware issues

    Bentendo6403/11/2015 at 19:41 0 comments

    I got the RAM board all wired up, and it works correctly. It doesn't work as it should, but it works as it's wired. Just look at the schematic:

    And then think about the 8080/8085/Z80 and how they interact with I/O.

    That's right. If I write or read to the I/O addresses from $FE-$FF, the RAM board will spit out the data located at memory locations $FFFF and $FEFE. Not good. I'll have to solve that with a 7420 and an NPN not gate connected to the IO/M control line.

    That is only the minor issue, though. Something seems to be messed up with the address space in general. I wrote a program that writes a program to the RAM board (starting at $FE00) and then jumps to the program written in RAM. This program includes a hlt instruction. However, the processor is not halting. This is making me wonder if there is an address line stuck at 0 somewhere. I know the bottom 4 address lines are working correctly, as I have written functional programs that use that address space. I also know the stuck line would have to be stuck at 0, as the rom I'm using is located at address $0000-$07FF (or whatever it is for a 2k address space starting at 0). Whatever the issue is, I know it doesn't exist all the time, as I have let the cpu free run with the RAM card in and sometimes it eventually finds an infinite loop or halts. Other times it just goes through the RAM as if it's all 0's.

    So I'm back. It turns out I was both right and just stupid. Somehow I had A14 and A13 swapped AND A9 and A10 swapped on the motherboard. That shouldn't have affected my program running, thouhg. How I was stupid is I was using trying to use the LDA instruction the same way you would use MVI A. The result was random data being written to data memory and thus no halt. Give me a break, though. I haven't looked at Intel assembly in nearly a year. I still have to fix the RAM board I/O thing, though.

    A few issues I found that would mak it not work when testing came to light. None of them were from the board (the mainboard) acting differently than it was wired. Take a look at the schematic for that:

    Number one is the two 74245's. My intention was to have the AD bus on the system card bus. However, if they are not both connected to the same thing on both ends, bad things happen. So I simply removed the one for the AD bus. The other issue is with the remaining 245. If you notice, the /WR signal is connected to pin 1, the direction pin. It was set up so when /WR was active, data would flow from the system card bus to the cpu. Not correct. So I just connected the /RD signal there now.

    More pictures!

    Mmmmm all those wires. About 340 solder joints on this card.

    All 16 2148 SRAMs seated with address decode chips.

    Running some code (the LED is hooked up to SOD).

    My testing method.

    How I program the NVRAM (not pictured: the NVRAM chip).

  • It's been a while

    Bentendo6402/09/2015 at 01:56 0 comments

      It's been a while since I posted anything or updated this project. But alas, it is still alive. What I have done since making this page is

      1. "Finished" the motherboard
      2. Have gotten about half way done soldering the 8k SRAM board

      "Finished" is in quotes because I'm still on the fence about bank switching some memory and that would require soldering more wires on the main bus. Also, I made a slight mess up where the jumper for pin 39, the HOLD pin, is soldered to 5V, not ground. That just means when I start it up, the cpu just stares at me with the data bus in tri-state.

      But anyway, here's some pictures and a video of it running nops. I have a 4 MHz crystal in there right now so it's running at 2 MHz, not 3. I don't have any 6MHz crystals.

      Here's the bottom of the board:

      And here's the naked top:

      Here's what I have for the SRAM board so far:

      Only 10 more wires to go! (times 17 solder joints).

      I guess I could have made that a GIF. Or re-recorded it (I recorded this over 6 months ago).

      Anyhow, I'm planning on purchasing a Ramtrom FM-1808 at some point soon for a quick and easy way to get some code running. I should have the SRAM board done within the next week, hopefully.

View all 2 project logs

Enjoy this project?



Similar Projects

Does this project spark your interest?

Become a member to follow this project and never miss any updates