H8-8085 CPU Board

62 views
Skip to first unread message

smb...@gmail.com

unread,
Feb 25, 2023, 10:48:32 PM2/25/23
to SEBHC
I've never built or even owned a project that had an 8085 CPU in it, so I thought I'd make my first ever 8085 be an H8 CPU board. I started with the goal of making it as simple as possible, the goal was just a CPU and RAM like the original 8080 board. But then I figured PCB space is a terrible thing to waste and I added RAM and ORG0 and RTC and various other Norbertoisms until it grew into a small monster. I stopped short of adding UARTs.

The feature set is:
  • Intel 8085, 2 MHz or 4 MHz, software switchable and usable with H17 gearshift driver
  • Optional 5 MHz (or faster) instead of 4 MHz if you're willing to live a little dangerously
  • 4K or 32K ROM
  • 64K Onboard RAM
  • ORG0
  • 2ms clock stuff lifted from the Z80 board schematic
  • Generation of M1 and EI/DI decoding
  • HOLD/HLDA supported, like the original
  • RTC
  • Ought to support H37, but untested yet
My original goal was to reduce as many 14-pin 74XX series ICs down to a few PLD devices as possible, In particular two ATF22V10 and one ATF16V8. The implementation was straightforward except for M1 signal generation, which is not done natively on the 8085.

Anyhow, I'll follow up with schematic and gerbers at some point in case anyone is interested. Not sure yet if I'll make a video. I feel like I've done a lot of H8 videos lately, and don't want to overdo it. Maybe 1 more...

Scott

h8-8085-pcboard.jpg

norberto.collado koyado.com

unread,
Feb 26, 2023, 12:16:54 AM2/26/23
to se...@googlegroups.com

Very nice Scott. Simple and elegant.

 

I have on my hand several 8085 CPU’s from the 80’s and I was thinking on using them on the 8080A board. You read my mind. I will be interested on the schematics, PDL’s files, and KiCad files to add the DUART 40 pin socket, so that it doesn’t depend on the H8-4 board to work properly.

 

Which monitor are you using? Hopefully it can run same monitor we are using on the new 8080A board supported by Douglas.

 

For H37 support you will need to add two jumpers. On my 8080A they are labeled: JP29 (two pin header) and JP30 (three pin header).

Schematics here: http://koyado.com/heathkit/New-H8-Website/download/h8-8080a-eeprom-schematics%20(1).pdf

 

Thanks for sharing and nicely done,

Norberto

--
You received this message because you are subscribed to the Google Groups "SEBHC" group.
To unsubscribe from this group and stop receiving emails from it, send an email to sebhc+un...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/sebhc/2ca6a8f3-d0e9-4f24-aa50-f87a78c8d024n%40googlegroups.com.

smb...@gmail.com

unread,
Feb 26, 2023, 1:10:27 AM2/26/23
to SEBHC
Yeah, I already have the H37 jumpers on board. Your 2ms clock generator is also there. I borrowed liberally from the Z80 board. :)

The PLDs are already online at https://github.com/sbelectronics/h8/tree/master/h8-8085/ as well as a short README on the jumper settings. I'm going to work on getting gerbers and schematics and such added over the coming days.

There is one small error in the current pcboard that I'm aware of -- the HOLD signal needs to be inverted. It's an easy enough fix, but will take a respin of the board (just when I thought I was done!). Board is in Eagle, not Kicad, but I think there is a way to convert from Eagle to Kicad. Personally, I've never learned Kicad -- remains on my to-do list.

I'm running the 8080A board monitor as-is. All the functions I tried on it worked right out of the box.

Scott

norberto.collado koyado.com

unread,
Feb 26, 2023, 1:58:57 AM2/26/23
to se...@googlegroups.com

Very nice and thank you!

Joseph Travis

unread,
Feb 26, 2023, 2:11:40 AM2/26/23
to se...@googlegroups.com
Scott,

Did you happen to make SID and SOD (TTL or RS-232) connection available?

Joe

smb...@gmail.com

unread,
Feb 26, 2023, 2:29:47 AM2/26/23
to SEBHC
No, though I did pull SIN to a known state rather than let it float.

What would you use them for? Another serial port? I figured someone would probably have to write a new driver. Could put them in the respin if it's useful.

Scott

Joseph Travis

unread,
Feb 26, 2023, 2:45:44 AM2/26/23
to se...@googlegroups.com
Yes, it's often nice to have for debugging. 'Could also be used for other types of serial interfaces.

norberto.collado koyado.com

unread,
Feb 26, 2023, 2:55:37 AM2/26/23
to se...@googlegroups.com

Just add a 3-pin header to use this cable:

 

Douglas Miller

unread,
Feb 26, 2023, 8:10:42 AM2/26/23
to se...@googlegroups.com

Great, Scott!

Let me know if there is any specialized code needed for the 8085 - I can add that as a build option for the 8080A monitor (similar to what I do for the Z80/Z180 version). Might be nice, though, if one version fits all.

Douglas Miller

unread,
Feb 26, 2023, 8:21:17 AM2/26/23
to se...@googlegroups.com

I will say, based on a little experiment I did recently, that using SID/SOD as a general-purpose RS-232 port is not all that practical. Especially for receive operations, it requires dedicated CPU time - i.e. you can't receive asynchronously and still do other tasks. Perhaps highly specialized debugging, but again, the CPU really can't do much else at the time. Think about it in contrast to having a UART that can detect the START bit and receive the character bits while the CPU is not looking - with SID/SOD if the CPU misses the START bit you've lost the characters so you really have to be spinning on SID all the time. So you almost need to work out some sort of "I want to talk" protocol that interrupts the CPU and starts it spinning on SID to receive the command, then goes back to "useful" work.

Still, it's a good idea to have the headers on the board for anyone that wants to use it. Similar to what I think was done for some of the extra devices on the Z180.

smb...@gmail.com

unread,
Feb 26, 2023, 2:52:49 PM2/26/23
to SEBHC
Douglas, the only noteworthy thing I'm missing in the monitor is the code to change speeds. I have 1 bit of speed control implemented, so I only have two speeds (0=normal and 1=fast). In theory the same code as the Z80 board should do this. If the set of boards continues to grow, then each board might offer a slightly different set of speeds than the others -- both quantity of speeds and the absolute MHz of each speed.

For the next revision I'll make a note to expose the SID and SOD pins. It looks like if nothing else, we could blink an LED or read a switch with them :) This is exactly what I did with the MI and MO pins on my Z8000 project. It's like a little bonus 1-bit GPIO.

Scott

smb...@gmail.com

unread,
Mar 20, 2023, 11:01:39 AM3/20/23
to SEBHC
Norberto, schematics and PLDs are now current at https://github.com/sbelectronics/h8/tree/master/h8-8085

Possibly a regression though -- 8085 board gave me some trouble using the Dual CF board yesterday. It was hanging right after loading the HA device driver, unless I moved the CF and CPU boards one slot closer together on the bus (yeah, physical distance between the two boards was a trigger). Not sure if that points at a design problem in the 8085 board or an implementation issue -- I'm not as careful with my VCC routing as you are one your boards; maybe I have a bus transceiver that is getting marginal voltage. Need to play with it a bit and root cause it. Maybe next weekend.

Youtube video is up at https://www.youtube.com/watch?v=u7ECUqSSfcU briefly walks through the design, though it leaves all the really complicated stuff (i.e. PLD equations, generating M!, single-stepper, etc) out. In this video I also spend some time showing off the dual-CF card, and gripe about the DRAM board.

Scott

glenn.f...@gmail.com

unread,
Mar 20, 2023, 11:37:42 AM3/20/23
to se...@googlegroups.com

Always enjoy your videos Scott. Had to chuckle at the small mound of JLCPCB boxes in the background. You’ve been keeping them busy!

 

From: se...@googlegroups.com <se...@googlegroups.com> On Behalf Of smb...@gmail.com
Sent: Monday, March 20, 2023 11:02 AM
To: SEBHC <se...@googlegroups.com>
Subject: Re: [sebhc] H8-8085 CPU Board

 

Norberto, schematics and PLDs are now current at https://github.com/sbelectronics/h8/tree/master/h8-8085

 

Possibly a regression though -- 8085 board gave me some trouble using the Dual CF board yesterday. It was hanging right after loading the HA device driver, unless I moved the CF and CPU boards one slot closer together on the bus (yeah, physical distance between the two boards was a trigger). Not sure if that points at a design problem in the 8085 board or an implementation issue -- I'm not as careful with my VCC routing as you are one your boards; maybe I have a bus transceiver that is getting marginal voltage. Need to play with it a bit and root cause it. Maybe next weekend.

 

Youtube video is up at https://www.youtube.com/watch?v=u7ECUqSSfcU briefly walks through the design, though it leaves all the really complicated stuff (i.e. PLD equations, generating M!, single-stepper, etc) out. In this video I also spend some time showing off the dual-CF card, and gripe about the DRAM board.

 

Scott

On Sunday, 26 February 2023 at 11:52:49 UTC-8 smb...@gmail.com wrote:

Douglas, the only noteworthy thing I'm missing in the monitor is the code to change speeds. I have 1 bit of speed control implemented, so I only have two speeds (0=normal and 1=fast). In theory the same code as the Z80 board should do this. If the set of boards continues to grow, then each board might offer a slightly different set of speeds than the others -- both quantity of speeds and the absolute MHz of each speed.

 

For the next revision I'll make a note to expose the SID and SOD pins. It looks like if nothing else, we could blink an LED or read a switch with them :) This is exactly what I did with the MI and MO pins on my Z8000 project. It's like a little bonus 1-bit GPIO.

 

Scott

On Sunday, 26 February 2023 at 05:21:17 UTC-8 Douglas Miller wrote:

I will say, based on a little experiment I did recently, that using SID/SOD as a general-purpose RS-232 port is not all that practical. Especially for receive operations, it requires dedicated CPU time - i.e. you can't receive asynchronously and still do other tasks. Perhaps highly specialized debugging, but again, the CPU really can't do much else at the time. Think about it in contrast to having a UART that can detect the START bit and receive the character bits while the CPU is not looking - with SID/SOD if the CPU misses the START bit you've lost the characters so you really have to be spinning on SID all the time. So you almost need to work out some sort of "I want to talk" protocol that interrupts the CPU and starts it spinning on SID to receive the command, then goes back to "useful" work.

Still, it's a good idea to have the headers on the board for anyone that wants to use it. Similar to what I think was done for some of the extra devices on the Z180.

 

On 2/26/23 01:55, norberto.collado koyado.com wrote:

Just add a 3-pin header to use this cable:

 

Image removed by sender.

image002.jpg

smb...@gmail.com

unread,
Mar 20, 2023, 9:41:08 PM3/20/23
to SEBHC
Thanks Glenn.

I have an interesting and unexpected result after researching the regression that I mentioned above. Replacing my 74HCT640 with a 74LS640 resolved my problem. I'm going to update my schematic with a note that the 74HCT640 is not recommended. I do think the root cause is that the new board doesn't have a very good VCC route, but the LS series 640 either has higher logic high output voltage, better noise immunity, or both, and compensated for the problem.

Something to keep in mind for other bus stability issues. 

Scott

Joseph Travis

unread,
Mar 20, 2023, 9:46:04 PM3/20/23
to se...@googlegroups.com
I think it has more to do with loading vs. drive capability of the IC's.

Joe


smb...@gmail.com

unread,
Mar 20, 2023, 9:58:02 PM3/20/23
to SEBHC
You're right. Anyhow, this is not the first time I've found that LS logic resolved a stability issue. It's a cheap and easy fix when a problem is encountered.

Scott

norberto.collado koyado.com

unread,
Mar 21, 2023, 1:31:40 AM3/21/23
to se...@googlegroups.com

Thank you and impressive video!

Lee Hart

unread,
Mar 25, 2023, 7:41:28 PM3/25/23
to se...@googlegroups.com
T
SID and SOD are not that useful for general purpose I/O; but they are a great way to add diagnostics. I designed an 8085 SBC that had LEDs on SID and SOD, a pushbutton, and pins to connect them to a serial terminal.

The boot ROM did a self-test. It first blinked the LED on the SOD pin to indicate that the CPU (and ROM) were "alive". It then tested additional parts of the system, blinking the SOD LED as it checked RAM, inputs, outputs, and other parts of the system.

If the pushbutton was held down at Reset, it ran a serial monitor program. You could then use its commands to further test and isolate problems.


Reply all
Reply to author
Forward
0 new messages