• Please review our updated Terms and Rules here

8085 Single-Board PCB Arrived Today!

glitch

Veteran Member
Joined
Feb 1, 2010
Messages
5,051
Location
Central VA
As I've mentioned a few times, I've got an 8085 project I've been working on for a while. Sometime around last Christmas, I decided to finally build a system around the 8085 processor, something I'd wanted to do since finding an 8085 in an old piece of AT&T PBX equipment. This is what came out of it:

proto-helo.jpgproto-wiring.jpg

The prototype is entirely point-to-point wired using #30 Kynar wrapping wire. It's got a 2716 2K x 8 ROM for program storage and two 2114 1K x 4 RAMs for stack/variable storage. There's a PDSP-1881 character display mapped to I/O ports 0-3...port 0 is also shared with a TIL311, which was used in the initial testing of the board. There's also a LED attached to the SOD pin of the 8085.

Anyhow, the prototype worked, and I found it to be fairly useful for applications where I wanted to use devices that really needed a full address and data bus -- the PIC uCs I'd been working with only provide ports of varying widths. My 8085 board provided something a lot closer to a true bus-oriented system, and conveniently would run code that could be tested/debugged/run on my S-100 system. I decided to design an etched PCB with some manner of expansion bus for use in other projects. It arrived today, and so it had to be assembled immediately!

DSC02007.jpgDSC02008.jpg

This is the bare board as it arrived today. I ordered a double-sided board from PCB-Pool, which managed to be cheaper than BatchPCB! No silkscreen, no soldermask, only double-sided etch with plate-throughs and electro-less tin coating. Next, we add the sockets and the discrete components:

DSC02010.jpg

These include the oscillator crystal and its capacitor (lower left), the reset circuit (capacitor, resistor, diode and tact switch in the upper left), the tantalum capacitor serving as main power supply bypass (silver tube top center), and the smaller 0.1 uF bypasses scattered around the board (blue-green beads). There's also a 1Kohm x 5 resistor pack near the bottom of the board, and this holds various interrupt/hold lines down.

[See next post...the forum won't let me upload more than 5]

Then the sockets get stuffed with various ICs. The big one is, of course, the Intel 8085. This particular 8085 is the "A" revision, but an actual Intel part. The first IC above the 8085 is a 74LS138, which decodes the top three address bits into 8 select lines for memory devices -- the first two outputs are mapped to the ROM and RAM. The 74LS138 also depends on the 8085's Memory-I/O status line, which keeps the memory devices from responding during an I/O read/write. The IC above that is a 74LS14 Schmitt hex inverter, which forms part of the reset circuit.

The reset circuit itself bears mentioning, as it is simple but effective. It consists of a capacitor, charge resistor, shunt diode and the tact pushbutton. On power-up, the capacitor is discharged due to the diode, so the system is put in reset. It charges through a 10K resistor, allowing for a nice, wide reset pulse. It serves double-duty though, because the tact switch in the circuit will also shunt the capacitor's charge to ground when it closes, so it provides both power-up reset and debouncing/proper pulse width for the reset pushbutton.

The final small IC is the 74LS573, which is an 8-bit-wide latch. This is needed to latch the multiplexed low address bits off of the address/data bus.

[See next post...the forum won't let me upload more than 5]

Finally, the RAM and ROM go in. The ROM socket will accept either 2764 or 27128 ROMs, but will only use the first 8K (address pin 13 [NC on the 2764] is tied to ground). I loaded the ROM with a short routine, written in Assembly, to flash a LED on the SOD pin of the 8085:

Code:
[FONT="Courier New"];Flash a LED on SOD
;Does not use RAM

FLASH:   MVI A, 0C0h
         SIM
         LXI H, BACK
         JMP DELAY
BACK:    MVI A, 40h
         SIM
         LXI H, FLASH
         JMP DELAY
         JMP FLASH

;Delay, return to HL when done.
DELAY:   MVI A, 0FFh
	 MOV B, A
PT1:     DCR A
PT2:	 DCR B
         JNZ PT2
         CPI 00h
         JNZ PT1
         PCHL[/FONT]

The code was first tested on the original point-to-point prototype, so I knew the code was good. Fortunately, it worked right-off in the new PCB version:

http://www.youtube.com/watch?v=D1_BuXNkgEM

An overly complicated oscillator!

Why should anyone else be interested in this? Well, I designed the board in Eagle CAD...but I've only got the free version. I kept it within the size constraints so that anyone wishing to build a board to use with this one could do so in Eagle CAD Lite. The bus connector is intended to be a 40-pin IDC connector, so one could attach a 40-pin IDE cable to it, put a right-angle header in it, or put a stacking connector in it. I plan on providing the schematics and board artwork for free, once I get them cleaned up a little. Since it's 8085-based, you can write code for it using classic Assembly tools, such as the Macro-80 compiler under CP/M (I plan on doing a lot of the development with my Kaypro!)
 
Last edited:
Nice, but why out of all the SRAM out there would you use 2114s? I'll be happy to send you a few tubes of 6116s; live it up! ;-)

There used to be an 8085 SBC that sort of looked like a KIM, with an on board keypad; anybody remember it?

I remember donating some 8085s to a couple of folks building them.
 
There were tons of 8085 SBCs. Here are a couple

For the day, the 8085 was among the easiest of chips to design an SBC for, particularly if you used the support chips. With an 8155 and an 8755, you have a system that can do simple tasks.
 
There were tons of 8085 SBCs. Here are a couple

For the day, the 8085 was among the easiest of chips to design an SBC for, particularly if you used the support chips. With an 8155 and an 8755, you have a system that can do simple tasks.
Well, the multiplexed address/data and memory/IO bus made it a little more complex than, say, a 6502, but for that you got more available memory (no I/O memory hole), RST vectors, 8080 & CP/M compatibility, etc.; yeah, a nice chip to play with.

That Intel SBC looks kinda like what I remember, but AFAIR they were unassembled; were there a bunch of unassembled Intel boards, or did someone make a sort-of replica?

People bitch & moan that no one builds things any more, but there sure are a lot of interesting homebrew projects out there, not to mention some really neat and affordable devices that you couldn't have dreamt of in 'the good old days'; gigs of memory on a single chip, wireless transceivers & GPS receivers the size of a quarter, $10 microprocessors with more power than what went to the moon... Good times.
 
I chose the 2114 because I happened to have a lot of them, and a number of them were known-good. I'd much rather use 6116 SRAMs -- one should never have to hand-wire an address bus twice!

Speaking of RAM, I just modified the above program to use the stack and CALL/RET. After accidentally assembling and /hand-inputting/ the result into my iUP-201 with the wrong stack pointer ($8000 instead of $4000 -- way out in nowhere!), I've got it working, so the board is now known to be 100% functional!

People do seem to be building plenty of things. With all of the free high-level languages out there (gcc supports the AVR processors, even), it's a lot easier to go from coding for a desktop machine to embedded coding. Hopefully, I'll be attending the Maker Faire in NYC this month. I'm going to set up with MARCH, and hopefully display my 8085 board, some of my S-100 projects, and perhaps an XT-IDE card (if someone /else/ wants to lug an 8086 or 8088 to the Faire!).
 
For comparison, a couple of 6502 SBCs (sorry about the bad photography; time for a new camera ;-) ):

6502SBC.jpg

The left one has 4KB ROM, 128B RAM and >20 I/O bits; note the absence of any active glue parts except a single inverting transistor.

The 'deluxe' one on the right has a couple of 2114s added and a 7410 address decoder; what could be simpler?

Fun stuff...
 
Last edited:
There are stil 8085 SBCs and trainers in current production. Consider this one.

And you can even get a 3V version of the 8085 in a 44-pin QFP (Oki MSM80C85AHGS).
 
Last edited:
The 8085 is apparently still the standard by which intro hardware-level CS and CE courses are taught. It's supposed to be especially popular with colleges in India. I'd have gotten a lot more out of the Intro to System Architecture course at the university I graduated from if we'd used a processor like the 8085 rather than the "LC3" architecture (a simulator-only 16-bit arch with only 16 instructions). Of course, the second semester of system architecture used a real RISC processor -- the MIPS32 core.

Ironically, our CS/CE department helped spawn the 8080/8085 "Bugbook" series.
 
There are stil 8085 SBCs and trainers in current production. Consider this one.

And you can even get a 3V version of the 8085 in a 44-pin QFP (Oki MSM80C85AHGS).
Nice one!

Admittedly, Intel architecture probably makes the most sense for a trainer, but IMHO one of the best all-around most versatile trainers was the Rockwell/Dynatem AIM-65; use the excellent monitor to diddle bits to your heart's content or plug in the assembler/BASIC/FORTH/PL-65 ROMs and play with higher level languages, all with a 20 (or 40) character A/N display, onboard printer and up to 40KB RAM, or plug in a terminal and you've got the same thing but on an 80x24 screen just like a 'real' computer such as a PET.

I still drag one out for the occasional time when it just seems to be the best tool for the job.
 
I never could get comfortable with the 6502; it's a fine architecture for microcontroller applications, but the small register file and 8-bit stack and lack of 16-bit arithmetic made it awkward for larger applications. The 6809 was much better, but unfortunately, too late.

We started using the 8085 near the end of 1976 (I still remember the reset problem in the early chips). We didn't learn of the "undocumented" instructions until 1979, when almost all of our system software had already been written, which really toasted my buns--it would have made a few things a lot easier had we known about them from the outset.

Glitch, if you want to try a variation on a theme, I can send you an NSC800 CPU--essentially a Z80 with a multiplexed bus and similar timings to the 8085, but with some features of the 8085. You should be able to get by with only minor changes, as many pin signals are the same as the 8085. I'll never understand why NSC didn't aggressively market that chip.

Oh wait--that was NSC that I was talking about, wasn't it? That explains everything. :razz:
 
I never could get comfortable with the 6502; it's a fine architecture for microcontroller applications, but the small register file and 8-bit stack and lack of 16-bit arithmetic made it awkward for larger applications. The 6809 was much better, but unfortunately, too late.
Agreed; I've got several systems that use the 8085 and it's got some nice features (I like the RST vectors and the SIO pins).

But I think the AIM-65 concept was a good one, especially the alphanumeric keyboard and display and built-in (expandable) assembler; IMHO hex keypads and LEDs get old quickly once you've programmed those first few little programs, as do toggle switch front panels however neat they may look.

Maybe someone should build an AIM-85...
 
Glitch, if you want to try a variation on a theme, I can send you an NSC800 CPU--essentially a Z80 with a multiplexed bus and similar timings to the 8085, but with some features of the 8085. You should be able to get by with only minor changes, as many pin signals are the same as the 8085. I'll never understand why NSC didn't aggressively market that chip.

Oh wait--that was NSC that I was talking about, wasn't it? That explains everything. :razz:

Sure! From what I've read about it (hadn't heard of them before) it does sound like the best of both worlds, and it'd be easy to adapt to my project(s).

The SIO pins definitely make it easy to figure out whether your board is reading ROM correctly. With the called delay function I used in the LED flash program, it even tests the RAM. I've got several devices that use the 8085, including the AHA-1522A SCSI card in my disk imaging machine, my iUP-201 PROM programmer, and the Applied Microsystems 8080/8085 in-circuit emulator. I think my Panasonic dot matrix printer uses one as well.
 
The NSC800 didn't have the SID/SOD pins (if you think about it, it makes sense, since the opcodes for these instructions are used by the Z80 for relative jumps). There was some brief interest in it, as you could replace the 8085 on the Compupro 85/88 S100 board with the NSC800 and run Z80 software. ISTR that the swap involved a small daughterboard and a couple packages of SSI logic.

PM me with your address and I'll send you a 2.5MHz part (it's CMOS, so you might get it to 3+ MHz).
 
Nice work! The PCB looks good. Nothing wrong with 2112's. I still use 5101s, myself (though I went with something newer on my 8085.)

Yeah, the NSC800 was a great series. I've been wishing there more more around, too. If there had been, it would have been my choice for my 8085 project's CPU. But I've enjoyed doing the 8085 as well.

Nonetheless, I'm having a lot of fun with my 8085, too. I've got it packaged into a nice to use system now--no more solderless breadboards. As soon as I can pull the time together, I'll be updating the website with new pics, info on making the enclosure, and a basic OS.

I've decided to go ahead and add a full serial port and memory decoding for a full 64K once the finishing touches on the enclosure are done, though I'm only planning on using 16K in two 8K devices on the main board of mine. That's plenty of room to play in. :D

And I keep nibbling at the task of making a PCB for mine. Perhaps over the holidays...

Oh, I've learned that I shouldn't plunk Palo Alto Tiny BASIC on a system too early. All further development goes by the wayside for too long. ;) I've got to finish this thing. I have an Elf to finish (another Elf) then I want to finish porting Tiny BASIC to the AVR, then I want to get my Signetics 3000-series 8080A emulation card built into a system. Man, I've got to hurry up and retire so I've got time for my hobbies! :D
 
Hi,
I have asked many people about this CPU for project & basic understanding, they refuse to go through it b'coz it is very old...........then why the OP has made this??

and i am learning ass. lang. in 8085 Oshon stimulator, i want to know about this SIM & immediate data entered why??
;Flash a LED on SOD
;Does not use RAM

FLASH: MVI A, 0C0h
SIM
LXI H, BACK
JMP DELAY
BACK: MVI A, 40h
SIM
LXI H, FLASH
JMP DELAY
JMP FLASH

;Delay, return to HL when done.
DELAY: MVI A, 0FFh
MOV B, A
PT1: DCR A
PT2: DCR B
JNZ PT2
CPI 00h
JNZ PT1
PCHL



Thanks
 
SIM: Set Interrupt Mask instruction. Just google for 8085 SIM instruction, for example, and you will find lots of material explaining the instruction set.

-Tor
 
Back
Top