• Please review our updated Terms and Rules here

A Homebrew Z8002

Those were interesting times; a year and a half after the launch, CPUs containing this error were still being manufactured. I wonder whether a different data sheet was used at that time, in which these non-functional instructions were omitted, or whether these instructions were added later and we now assume that they should also work on older CPUs. This is an interesting story, which we will probably never unravel due to the small number of designs based on this processor. It appears that you have a unique CPU in your collection.
 
I read somewhere that Laventhal’s Z8000 Assembly Language Programming book had mentioned bugs in early version of Z8000; Alan Cox also referred to buggy Z8000 as one of reasons for its unpopularity. Perhaps these were the same bugs that I’ve encountered. Now I wonder whether the Z8001 I have on hand with 1979 date code also have the same bugs? I’m designing a pc board that can accommodate both Z8001 and Z8002, so I’ll find out fairly soon.
Bill
 
Yes, the book describes errors in early revisions, but the error you encountered is not on the list.
The list of errors can be found on page 3-376, and according to the description there, you have the first production processors with the Y step.
The lack of popularity of this processor is probably due to the fact that the key chip, the MMU, was released after the launch of the 68000, so as a CPU alone it could not gain popularity. The power of the full version of the Z8000 architecture is a combination of the Z8001 CPU and the Z8010 MMU; the Z8000 CPU alone was not attractive compared to the Motorola 68000.
 
Last edited:
Thanks for pointing out the errata of earlier masks in page 3-376. Both my Z8001 and Z8002 are “YBES”, so they are step Y plus something else. So I should expect my Z8001 to have “undocumented features”.

This is my first pc board attempt for Z8001+Z8002 SBC. Z8001 and Z8002 are similar enough that the two parts coexisted in a 0.7”x2.4” area such that only one part can be populated at a time. The CPLD, EPM7128S, will handle the differences between the two processors and programmed differently depending on which processor is populated. Rest of board are 128Kx16 RAM and 16-bit wide CF interface. The serial port and bootstrap ROM are inside the CPLD. The board has a classic 40-pin RC2014 bus interface. I had hope to fit the SBC in a standard format RC2014 board, but the current layout is a bit larger, 2.7”x 4” in a 4-layer pc board. Maybe I can do a better job later of squeezing it into 2”x4” board.

I’m working few other board projects, so I plan to combine all designs to one order out to JLCPCB later this week.
Bill
 

Attachments

I received two SGS Z8002B1 today and plugged into my prototype board. Both worked right away. Then I ran a program with direct I/O addressing, it also worked whereas the same program hung with 1979-date code Z8002. While SGSZ8002B1 is rated at 4 Mhz, I found it worked up to 11Mhz, so I now doubled the clock to 7.37mhz. I will run with SGSZ8002B1 from now on.
Bill
Edit, I’ve found Zilog parts to be very conservative, especially CMOS parts which frequently can run at double or triple their rated speed. If I ever find the CMOS version of Z8002, Z16C02, which is rated at 10Mhz, I will try to run it at 20, maybe 30Mhz. That should make a speedy retro computer.
The CMOS version of the Z8002 running at 10Mhz the Z16C02 is still available globally at a lot of the semiconductor resellers/wholesalers.
But if you are waiting for a used one that's been recovered off a questionable PCB form some questionable seller that night take some time
to get.
..
For a small quantile of this chip, I would recommend that you do an online search with ASIAN suppliers a for a new one.
An example would be https://www.alibaba.com/product-det...8TkJ&priceId=e907aead23fb47c5a0c95539ea7fc018
If you are ordering them under a business name, there are several supplies on Made-In-China.com that still have stock of them as well.
..
There are other suppliers in North America and or Europe that still have stock of them but there costing is almost triple.
Some will only sell them in a complete tube or wheel if order off them, once they can receive stock of them from an unknown source.
..
There was a couple of companies that were still make a clone of them under none clival part numbers for Avion/Arrow space
use. Hopefully someone else will post those part numbers after reading this message, but they are more expensive and are usually in
the 68-pin QFP package.
 
Last edited:
Thanks for the link.
I was able to order small quantities of Z16C0210PSC for $15 each and Z16C0110PSC for $7 each from UTSource. Since I have a working Z8002 design, I can at least check Z16C02 to make sure it’ll work. UTSource has a solid return policy, so I can get my money back if they don’t work.
Bill
PS, place pc board order with JLCPCB. Five board types (40 pc boards) is $32, shipping Fed Ex is $48, custom duties and tax are $17.60. I was worried the tariffs maybe higher, but it is reasonable, for now.
PPS, UTSource didn’t have explicit charge for tariffs. I guess I’ll find out the total cost when I’ve received the items.
 
Last edited:
I found a Z8002 in my stock and I'm interested in building my own PCB based on OP's design, if allowed. I went through all posts again and found a lot of info. But I didn't find a link to an assembler (or missed it completely). A DOS one is OK for me.
Links to any other material regarding the Z8000 (not being datasheets) is also very welcome.

Thank you in advance!
 
You are welcome to copy or modify my design as you see fit. I’ll create a homepage in next few days and put all my design information there. The Z8001/Z8002 pc board is on its way to me, I’ll publish the pcb files once it is checked out. Tadeusz Pycio provided a link to an assembler that accommodates Z8000. It is a DOS based program. This is the link, john.ccac.rwth-aachen.de:8000/as/
Bill
 
Yes, Macroassembler AS is great for simple tasks. The link provided by Bill also contains a binary file for Win32, which will work with any new version of Windows. If you use Linux, it is worth checking out GNU Binutils, which includes an assembler for Z8000 (also available for download for Windows systems on my website). I will not be publishing my SBC Z8002 project due to an error in connecting the data bus to the memory (all bits in a byte must be flipped for ROM memory) and the fact that the modular system bus has been updated and is no longer compatible with it. I will only present the diagram (with the above-mentioned mistake) so that you can use it in your own designs.
 

Attachments

Last edited:
Yes, Macroassembler AS is great for simple tasks. The link provided by Bill also contains a binary file for Win32, which will work with any new version of Windows. If you use Linux, it is worth checking out GNU Binutils, which includes an assembler for Z8000 (also available for download for Windows systems on my website). I will not be publishing my SBC Z8002 project due to an error in connecting the data bus to the memory (all bits in a byte must be flipped for ROM memory) and the fact that the modular system bus has been updated and is no longer compatible with it. I will only present the diagram (with the above-mentioned mistake) so that you can use it in your own designs.
Dziękuję, moja żona jest Polką. Regarding the used AM8127: I did a quick search using google and Ebay but nothing found. Do you know a supplier? I know it is not necessary but it looks more original.
 
Regarding the used AM8127: I did a quick search using google and Ebay but nothing found. Do you know a supplier? I know it is not necessary but it looks more original.
There is an ebay dealer (Poland), although from experience they don't always understand what they are shipping...
Also, I find this shop (Germany), haven't tried them.

Interestingly enough, the Zilog Z8581 equivalent tends to be more expensive (also), but may be necessary for higher clock rates.
 
Last edited:
I will not be publishing my SBC Z8002 project due to an error in connecting the data bus to the memory (all bits in a byte must be flipped for ROM memory)
Ouch, that must have hurt! It's a lovely board, though.

About the Z-BUS - looking at the Zilog hardware reference, this was a VG96 bus. Did you create your own subset for the backplane, or is there an alternative layout from Zilog?
 
I’ll use Z8002’s S/N output to create system 64KB and TPA 64KB. I think that’s enough for non-segmented CP/M, but if not, I have 256KB of RAM, so I can create more memory spaces if needed.
The problem you will run into (to my understanding of z8k memory models, at least, which is still under construction ;-) is that the Z8002 has no way of transfering bulk data between the individual memory spaces.

With the Z8001, and certainly with Z8010 MMU assistance, you can overlap segments for that. For the Z8002, you would have to add a Z80 style mmu that is able to map physical memory blocks from one space into another.
 
It is possible CCP, BDOS for Z8002 is different than Z8001, so I maybe in a catch-22 situation of needing Z8000 C compiler to build new cpmsys for new Z8002 hardware.
To my understanding, CP/M 8000 mandating a Z8001 means that at least parts of the BDOS are written for segmented mode, and thus not executable on a (non-segmented) Z8002. Apart from equipping the Z8002 system with a homegrown MMU to satisfy CP/M's memory expectations, you would have to recompile the CP/M sources with a toolchain that can target a non-segmented system, then write low-level routines for bank-switching.

It sounds like the basic tools are built for a small (non-segmented) memory model. And then you will have to figure out whether large native CP/P 8000 applications like compilers will go through the BDOS for 'far' memory access, or just assume a segmented model (and thus break on your Z8002 system).

If it were easy, everybody would do it. ;)
 
Yea, I’m on a precarious journey with just Z8001/2, RAM, and a modest CPLD without the rest of Z8000 ecosystem. Buying Z8001/2 is hard enough, the rest of Z8000 supporting devices must be even harder and more expensive. I don’t see many working examples, so I’m making stuffs up as I go. 68000 has MOVE instruction with alternative function codes to move data between different spaces; I don’t see the equivalent in Z8000. However, I can emulate 68000 alternative function code with a couple registers in CPLD that allows me to write to specified spaces.

Z8002 CP/M will be challenging for me. I’m taking a detour through Z8001, see if I can port CP/M to Z8001 and figure out an equivalent for Z8002. Lots of pitfalls along the way, it is a precarious journey.
Bill
 
CP/M-8000 was ported to a Kontron Z8002 CPU board, and the CP/M-8000 source code contains the modified sources for this configuration.

However, the trick is going to be the minimal memory mapping hardware that was required.

Dave
 
Regarding the used AM8127: I did a quick search using google and Ebay but nothing found. Do you know a supplier? I know it is not necessary but it looks more original.
As @u8002 mentioned earlier, these AMZ8127 chips are available from a Polish electronics wholesaler, which appears to ship its goods worldwide. The clones from East Germany DL8127 consume slightly less energy than the original AMD chips, although I am not sure if they match their maximum operating frequency. These circuits are not required; a quartz generator is sufficient (I only used the single-step function once).

<Off topic>
Moja też ;-) Proszę przesłać pozdrowienia.
 
Ouch, that must have hurt! It's a lovely board, though.

About the Z-BUS - looking at the Zilog hardware reference, this was a VG96 bus. Did you create your own subset for the backplane, or is there an alternative layout from Zilog?
It only hurt when I started the SBC, before I realised what a stupid mistake I had made. It was intended to be an experimental project, aimed at familiarising oneself with this architecture, and it did not fulfil its intended modular function. I was a bit surprised that it aroused interest in others.

Z-BUS is my project using the DIN64120 AB 64-pin connector, which is a bit insufficient for full implementation of the Zilog bus. I had to make some compromises because a few pins are missing for the design to be completely modular (the CPU, MMU and DMA chips must be on a single PCB). The choice of connector and its number of pins is due to the fact that I want to use inexpensive 10x10cm PCBs. It currently differs significantly from what I presented in the SBC Z8002 diagram.
 
Back
Top