Close
0%
0%

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

  • Back from the Dead after 3 years?

    Bentendo6403/23/2018 at 14:24 0 comments

    I haven't worked on this much for the past 3 years. But yes, I am still alive, and I have been making progress recently. The big thing I've been working on is a board that has RS-232, an EPROM programmer, and a memory bank switcher. The memory bank register can be turned off because I have some plans to possibly implement some other complicated memory scheme with segmentation, or some other virtual memory-like function.


    But we're back better than ever because now I'm making some PCBs instead of hand-wiring everything!


    I do not have much experience routing PCBs, so I'll probably get the initial prototype done cheaply and see how it works. I made a different test circuit and sent it off to China for milling. It could be here anytime from now to May. It is a PCB version of the the hex-readout display you may have seen in previous pictures.


    So we will wait and see how it turns out!
    Details to come later.

  • 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 3 project logs

Enjoy this project?

Share

Discussions

agp.cooper wrote 07/05/2020 at 02:49 point

Hi Ben,

If I may some suggestions. You can take them or leave them, it is as they say your project.

Your scope is really just too big. Break your project up into smaller sub-projects.

I promise you, every one of your features is a big stand-alone project.

As a first step, it would be really cool to get a minimal system (say three chips) just flashing an LED.

You can build a simple stand-alone programmable 8085 using just using a 8085 and a 8154.

---

As you scope is really big, can I suggest you have a look at the CP/M 2.2 system.

There are many on the Internet based on the 8085.

The CP/M 2.2 system has loads of software that you run on your system after it is built.

---

With regard to your breadboards projects. Okay, I understand the reason but keep the clock to less than 250kHz (unless you use a ground plane). Above that they may not work.

Also, with 74LSxxx, each chip should have a 100nF monolithic capacitor.

With 74HCxxx you can get away with one bypass capacitor per half-dozen or so ICs.

The 74LSxxx series is now obsolete, probably better to use the 74HCxxx series, and try not to mix the logic families. Yes you can still get them but they are usually "old new stock".

---

Anyway, best of luck. I found the 8085 a really fun micro-processor to use.

AlanX

  Are you sure? yes | no

Starhawk wrote 12/16/2019 at 23:42 point

Good luck :) I've always wanted to do something like this, but I can't program for crap... not much point in pairing a pile of nice hardware with an empty ROM ;)

  Are you sure? yes | no

s0s wrote 07/30/2018 at 02:54 point

This is really cool. It's quite elegant. Keep up the good work and keep us posted! :D

  Are you sure? yes | no

Wenting Zhang wrote 02/01/2018 at 14:35 point

Looks great!

  Are you sure? yes | no

Similar Projects

Does this project spark your interest?

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