G80-S Micro: The New z80 Project

During the early part of this year I started working on designing a new computer system based around the Zilog z80 Microprocessor.  I had previously created a computer that was fairly complex and expandable.  This computer I showed off on my YouTube Page.  The video, which you can view here just below, received a fair amount of interest. I continued with a couple of followup videos.  But then I ran into a hitch.  The system, as designed, had a problem.  Expanding I/0 was going to be problematic due to my method of decoding.

So, I sat on the project for a while.  I received several requests for updates, or spin off videos. But I never did anything, and ultimately life got in the way.  I had taken a promising start to a decent YouTube channel, and I had left it to rot in it’s packaging.

But then around the beginning of February  I started toying with the idea of designing this new z80 computer system.  I did not want to wire-wrap a new computer, as it is tedious and time consuming.  Instead, I knew my basic design worked, I just needed to have it manufactured.  So I decided to sit down and come up with my desired specifications.  And thus, the G80 Computer project was born.  G, standing for Gabbard, my last name.  And 80, for the z80 microprocessor. The goal was to create two separate computers based around common themes.

The first would be the G80-S Micro (Gabbard z80 Serial Microcomputer).  The design was intended to be the core of the system.  The specifications were that it contain 32k of ROM (Read-Only Memory) and 32k of RAM (Random Access Memory), two RS-232 Serial ports, a decent amount of GPIO (General Purpose Input/Output), and be of the common 100x100mm size to be cost effective for PCB manufacture.

The intent of this first computer was to be more of a development system, and obviously a fun toy.  The idea being that I could design and manufacture this computer fast, and use it to develop software and hardware concepts used in the second, more capable, computer.

The second computer’s envisioned goal was that it contain 32k of ROM, 64K of RAM, two RS-232 Serial ports, video graphics capabiltiy, P/S2 Keyboard Input, audio output, mass storage conforming to the FAT standard, a decent amount of GPIO, and fit on a 100x160mm Eurocard.  As you can imagine, that is a lot to stuff on a small board.  But it is possible.

So, I set out by designing my schematic for the G-80S.  After a day or so I had by basic design figured out.  I began using the EagleCAD to design my PCB layout. And within another 2 days I had my Gerbers generated and the order placed with the board house in Shenzhen.  And after about a month wait, I got a nice package delivered to my door.  But there was a tiny problem…

Thats right, the silkscreen is slightly off.  At first I thought this was a problem with the board house.  But then I discovered when I viewed my gebers with Gerbv the problem is actually with EagleCAD.  For some reason when it exported my gerbers the silkscreen for was too large.  Oh well, you live and learn.  I’ll just have to make sure that the next batch has the silkscreen correct in the gerbers before I order them from the board house.

After I had the board assembled it was time to begin writing software for it.  I toyed around with the software for some time, until I had the bare essentials down for general input/output over serial, and a few commands setup.  Unlike many other DIY z80 computes, this computer uses keywords stored in a buffer.  Rather than simply pressing the ‘M’ key to modify a memory address, or the likes.

Because of this it became very similar to a DOS or CP/M style interface.  Which is something I find to be very aesthetically pleasing.  I continued work on the system until yet again, life happened.  By this time it was April, and my work was increasingly requiring more of my time, my son was getting towards the end of his school year and required more of my attention in both his academics and extracurricular activities, and ultimately I had other things on my mind.  So the project came to a screeching halt (pun intended).

Summer came, and went, my son went back to school, and now I had a little more time to do things other than care for him and work.  He is a teenager, but I am unmarried.  And as a result, a single parent with a occasionally rebellious child.  Just kidding, he is actually a great kid, and doesn’t get into any trouble.  However, I didn’t go back to work on the project.  Instead I felt compelled to watch every episode of the original Battlestar Galactica.  A small price to pay for such an awesome series.

It wasn’t until August that I picked this project back up and decided that I needed get back to work on this project.  It had been a while since I had started the project. I hadn’t even posted a video giving any details of it!

So I got down and dirty in assembly.  Working on getting several things done a week, or at least cleaning up my code.  And by the end of August I had a early working prototype Operating System, though still without file handling capability…

So I sat down to post a video, and realized that I needed to figure out how I was going to do screen capturing.  Now this is where I need to give you a little of the back story.  I do not own a camera.  Instead, I have an iPhone, and use it to shoot videos.  The only camera I do have is a DV camera from about a decade ago, unless you count my Hi-8 Sony Handycam.  Wait… Thats a pretty good idea. I should think about that since this site and my channel are about vintage technology. In any case, I had to get some type of screen capturing software and a microphone.

Once done, I uploaded a video, that you can view below.  And I posted the link onto a few forums and Facebook groups that I am a member of.  I received a little interest, but nothing major.  So then i took it on myself to get back to work with coding.

I needed a way to write software on my PC and upload it to the G80-S.  Pulling the ROM out and programming it every time I needed to check code was getting old.  So I started looking at my options.   I happened upon Bernd Ulmann’s website, and his Tiny z80 Computer. Within his code he had a routine for Intel Hex transfers over serial, which was originally written by Andrew Lynch (I believe Andrew has done work on the Retrobrew Computer / N8VEM project).

Bernd had modified the code, but after looking at the source listed on his page, it became apparent that it was easily adaptable to my own system.  So I sat down and modified the code.  I annotated in my source the originators of the code.  And it was at that time that  I discovered I likely had a problem with my design.  I had left the IEI line on the z80 DART/SIO floating.  It would need to have a resistor tied to VCC in order to be able to use the SIO with interrupts.  A simple modification for this board.  But something I’d need to correct on the second run of boards.  So I sat down and made my modifications in EagleCAD.  And then uploaded another video demonstrating my accomplishment and discovery. See below.

And now you are caught up.  I’m currently working on circuits for a SD card interface and a VDU (TMS9918) interface.  Once they are confirmed working circuits I will begin writing code for those.  And ultimately all of these lessons learned will be combined and adapted to the final goal of the 2nd computer.  But that is still some time down the road.

I am considering selling some of these boards.  If this is something that you’re interested in you should contact me and let me know.  Or just post a link on the one of the videos above.

And if you are interest in more of the videos I have or will be uploading, you should subscribe to my channel.

Leave a Reply

Your email address will not be published. Required fields are marked *