8bit Projects For Everyone


 
Autor Wiadomość
Rbusby



Dołączył: 2005-06-03
Posty: 3

Wysłany: 2005-06-04 01:09    Temat postu: Anyone Have An Itch To Do Something With A Zilog Z8001? Odpowiedz z cytatem

Just by chance I stumbled across the "8bit Projects For Everyone"
website. It appears that the people at the website and this forum have similar interests to my own. I too enjoy working with old microprocessor systems. My first exposure to a microprocessor system was in 1979. At that time they weren't called personal computers, only electronic hobbyists seemed interested in them, and they cost a small fortune. A friend of mine purchased a Crememco Z80 system. He and I spent an amazing number of hours playing with that machine. I still think that he and I did some things with that computer that had never been done up to that time. The pleasure I had in those many hours I still remember.

By May of 1984 I had already owned an IBM PC for a year and had also become an electronics hobbyist. That month I read the first part of a two part article written by Steve Ciarcia for Byte magazine. In the article, "The Trump Card," he described a new microprocessor that had recently been introduced by Zilog, the Z8000. It had features that no other microprocessor had at the time. Unfortunately, Zilog's processor came after IBM made its choice of an Intel processor for their PC. Zilog, as well as others, could never overcome the inertia IBM had in the market place and the Z8000 faded from sight without much notice, except for me. I retired in July of 2003 and had the time to pursue some things I had always wanted to do. One of those was to do something with that old Z8000 microprocessor.

I said we shared some similar interests. However, what I am doing is to purchase off-the-shelf items such as a PC case but with an AT backplane, keyboard, mouse, monitor, etc. The backplane will be populated with old XT expansion cards, but with one exception. I am currently working on the design of a Z8001 processor card which will also go into the backplane. The hardware will very deliberately "look" like a standard PC system. The only difference is that it will be driven by a Z8001.

There are a number of intermediate projects I haved planned. Each is intended to solve a particular problem that will have to be overcome such as hardware interfacing and acquiring or developing software porting tools. Eventually I will have a Z8000 system running some version of Linux. Because the Z8001 had no provision for paging, the flavor of Linux will most likely be one of the embedded variants. uClinux is looking very promising right now.

I admit that this is certainly an ambitous project. But I have 35 years experience as a software engineer and I have been an electronics hobbyist since my mid-twenties in which I had a very specific interest in computer electronics. Ambitious, yes, but I believe I have the background and experience to pull this off.

I hope that what I have described will attract some attention from some of the members. I very much would like to have discussions with others that have successfully tackled difficult projects. Being able to swap ideas with other experienced electronic hobbyists would be enormously valuable.

Rick

Very Happy
Powrót do góry
Zobacz profil autora Wyślij prywatną wiadomość Wyślij email
Jarek Adamski
Site Admin


Dołączył: 2004-09-08
Posty: 190
Skąd: Poland 52N 19E

Wysłany: 2005-06-04 09:30    Temat postu: Re: Anyone Have An Itch To Do Something With A Zilog Z8001? Odpowiedz z cytatem

Well, personally I never used the Z8000. Several years ago I've purchased a book "Z8000 Microprocessor Family Programming" from SGS-THOMSON, June 1990, Order Code: DBZ8000PMST/1.

After short look into the book I found no interest in this hardware (I see it now its architecture is similar to 68000). Mainly because I'm deep in Z80 machines... So I'm not a partner for you in matter of Z8000. However we can exchange experience in matter of connecting ISA motherboards and cards to something different than 8088. Wink

Beside, there are almost 300 users registered (with ~50 new a month), so perhaps some day there will be someone experienced with Z8000. Very Happy

If you would like to describe here (in the service) a Z8000 project, I will add the Z8000 family and poll the users for interest.
Powrót do góry
Zobacz profil autora Wyślij prywatną wiadomość Odwiedź stronę autora Yahoo Messenger
Rbusby



Dołączył: 2005-06-03
Posty: 3

Wysłany: 2005-06-05 01:35    Temat postu: Odpowiedz z cytatem

Jack,

Thank you for your reply. I understand that this group prefers to take existing systems and develop them further either through software or hardware. The Z8000 as far I know was only incorporated into one or two systems, the Olivetti M20 being one, but these did not sell and were discontinued quickly. Because of what I saw as a considerable interest in the Z80 I thought, and still think, there might be some interest in going a step further with another Zilog processor. Doing a project like this, and I hope it was clear I am actively pursueling this, in a vacuum is far more difficult than having a group of experienced people willing to offer suggestions or ideas even though they might not have a specific interest in the project. So, your offer of advice is much appreciated. I promise I won't bug you with endless questions. It goes without question that I would offer the same to any others.

I found a gentlemen who called himself Charles L. that was interested in what I was doing. He is another Z8000 enthusiast. In fact he has set up a web page dedicated to it, http://www.kranenborg.org/z8000/. I suspect Charles L. was not his actual name since the website is attributed to Jurjen Kranenborg, Dwight K. Elvey, and Christian Groessler. Anyway, he had noticed I had been bidding and winning a lot of Z8000 parts on eBay and wondered why. In my reply I outlined the intermediate projects I had planned. What follows is my part of my reply to him dated February 05, 2005.


"1. Build the Trump Card - I have spent at least a year collecting all the documentation I could find on the Internet about the Z8000 family of processors and collecting all the components needed for the Trump Card. All I need to do is build it. But there is a problem. In that old article Mr. Ciarcia offered to send a package of software to anyone who built the card. In that package was a BASIC interpreter, C compiler, an assembler and some other very nice things to have. I sent Mr. Ciarcia an e-mail asking if that software was still available - it sure would make things a lot easier. He replied to the message saying that he had gotten rid of it several years ago, sorry. Oh well, building and using that card will be much more difficult than I thought, but I'm going to go ahead with it anyway. It will give me experience with the Z8000 hardware and writing Z8000 assembler.

2. Build a processor using a Z8001 card and memory management card which would contain 48MB of memory and 16 Z8010 MMUs to manage the memory. By the way, 48MB is the maximum amount of memory the Z8001 will support. 16MB would be for code, data and stack respectively for a total of 48MB. Several run of the mill 30-pin SIMMs will do just fine for the memory. The Z8000 family of components were intended for the Z-Bus scheme. However, I see no reason at this time that the AT bus couldn't be used instead. If I could use the AT bus, as I believe I can, both the Z8001 card and the memory management card would be built on AT bus prototype cards. This would also mean that I could use old off-the-shelf AT cards to handle the peripherals: keyboard, maybe a mouse, video (probably VGA), diskette drive, hard disk, serial and parallel ports, etc. All the cards would be plugged into an AT backplane. Some time ago I won on eBay two small cases which I believe will be ideal. The cases contain nothing more than a backplane and power supply. They came with PCI backplanes, but I have replaced those with two AT backplanes I also won on eBay.

I don't think the hardware will be difficult, just time consuming. But the software may be tricky. I intend the hardware to look like an AT machine to the software which would be written for the Z8001. I have a number of references and resources to PC hardware that I have used over the years. Using an 8086 to Z8001 assembler translator which I intend to write, I should be able to come up with a BIOS for this machine.

3. The first operating system for the machine described in 2 above - I need to find the simplest operating system possible. It should be written in C or a combination of C and assembler. The source code has to be available. It has to be freeware. Surprisingly, I have found a number of candidates on the Internet that might do.

4. Assuming I get past number 3, port a real operating system to the new machine. It must meet the same requirements as the simple operating system above, plus it will have to be able to run without a paging mechanism, thus it will have to be one of the embedded operating systems. (If I could get my hands on a Z8003 and some Z8015s that last requirement wouldn't have to exist. I've only been able to find these chips at companies that require you to buy a thousand at a time.) Two possibilities have turned up: an operating system called RTOS, and another called uClinux (an embedded version of Linux).

I guess my biggest hang-up is not having the proper development software. I have a cross-assembler and I have made several stabs at a cross-C compiler but with mixed results. The cross-C compiler efforts were with early versions of the Linux C compiler, GCC. One of my PCs is running Linux so this seemed the way to go. If you have any suggestions on this problem please pass them along."


Unfortunately, in his last reply he said he probably couldn't be of much help since he had little electronics experience. Nevertheless, he inteded to build a small system using a Z8002 which is a stripped down version of the Z8001 and much more resembles the Z80. His e-mails were all encouraging and I, of course, wished him well.

The plan I described to him is still much the same including the hang-up I indicated. However, I have pretty much decided to write a converter of GNU AS assember code to Z8001 assember. After some experimentation I have found that taking Linux C code and attempting to compile it either with a Borland or Microsoft C compiler can be very frustrating. There are problems with syntax and missing header files, which when copied over from Linux, can also have syntax problems. Since I don't plan to spend the rest of my life correcting these problems I have decided to take the converter approach.

I intend to alter the Linux "Build" scripts so that I'll continue to compile the source with GCC using the -S option so that only assembler code is produced. I'll then run my converter and send the result of the converter through a Z8000 assembler I have. Lastly, when appropriate in the scripts, I'll substitute the use of a Z8000 linker for the GNU one. There will certainly be problems with this to be worked out, but right now this approach seems more attractive to me than stuggling to convert a mountain of Linux C code. If anyone has any other suggestions please pass them along.

Rick
Powrót do góry
Zobacz profil autora Wyślij prywatną wiadomość Wyślij email
Jarek Adamski
Site Admin


Dołączył: 2004-09-08
Posty: 190
Skąd: Poland 52N 19E

Wysłany: 2005-06-05 13:31    Temat postu: Odpowiedz z cytatem

Rick,

I haven't analysed the Trump Card in details, but after first look I can suggest you to use:
- two 628512 static RAM in place of the DRAM - it is 512kB in one chip, and removes all the logic presented on page 46 (7 in PDF),
- two AT29C010 PEROM as ROM - it is the most cheapest now and can be easy reprogrammed; extra addres lines also can be used, as ROM is in separate segment than RAM,
- the 74LS573 latches in place of 74LS373 (IC3, IC5, IC6) - this simplifies board design.

If I had to build a Z8000 system, I would through away the "Trump Card/Host Communication" and connect the Z8000 directly to PC AT 286/386 motherboard with the Intel CPU removed.

Probably a feedback line should be added from the Intel CPU socket, providing interrupt request from 8259 interrupt priority management. Or, the Z8000 can analyse IRQ signals present in ISA slot - in that case you need to provide some "hidden" IRQs anyway.

I'm not able to help you with with C compiler and other software. You could try to use the Z80 Small-C, developed now as z88dk. Some assembler parts would require translation from Z80 into Z8000, but probably this would work and requre less knowledge than GCC.

As an operating system you could start from UZI or Contiki. I can't say much, as I'm not involved in these projects.

I've opened the Z8000 page in my service and put it into search engines. So probaby we will hook more Z8000 fans. Very Happy
Powrót do góry
Zobacz profil autora Wyślij prywatną wiadomość Odwiedź stronę autora Yahoo Messenger
Jarek Adamski
Site Admin


Dołączył: 2004-09-08
Posty: 190
Skąd: Poland 52N 19E

Wysłany: 2005-06-05 15:30    Temat postu: Z16C01 and Z16C02 Odpowiedz z cytatem

Well, the Z16C01 and Z16C02 @ 10MHz aren't too expensive, but looks rare for me.

As there's CP/M-8000 for Olivetti M20, I would definitely join Z8000 with PC AT architecture then port this CP/M to such target. You can analyse the BIOS of this CP/M and try restore Olivetti M20 architectre as close as possiblie. The most important is memory access.
Powrót do góry
Zobacz profil autora Wyślij prywatną wiadomość Odwiedź stronę autora Yahoo Messenger
Rbusby



Dołączył: 2005-06-03
Posty: 3

Wysłany: 2005-06-05 22:51    Temat postu: Odpowiedz z cytatem

Jarek,

I am delighted that you have enough interest in my project to offer a number of thoughtful suggestions. Let me respond to posts of 2005-06-05 06:31 and 2005-06-05 08:30 one item at a time.

I have thought about using SRAM many times for the same reason - it eliminates all of the refresh logic. But everytime I consider this I come back to a problem. I have already purchased a small case I intend to use for the project. The backplane I put in it has six slots but the case size limits the length of the expansion cards to the short XT cards - roughly 8.25 inches or 21cm long. With those short cards providing so little area for the electronics and the final machine to have 48MB of memory it would take a lot of SRAM chips, 96 of the 628512s that you suggested. To solve the problem I intend to use four 30 pin socketed SIMMs. Doing that I can put all 48MB at the end of a card and not use very much space.

Ok, I screwed up. I bought the case long before I had thought through this project and didn't realize it would cause a problem. But it is a really a well made small case and since I've long ago spent the money for it I feel like I'm pretty much stuck with it.

Because it seems I will have to use SIMMs in the final system I have planned to substitute for the sixty-four 6164s he used with two 256K SIMMs, believe it or not I have some of those. The point of building the Trump card is to gain some exerience with some things I have never tried. One of those things is DRAM refresh.

Please don't misunderstand, your suggestion is certainly a good one, but all the intermediate projects I have planned are to find solutions I will encounter with the final system. I should warn you I'm very methodical about how I go about things.

Your idea to "connect the Z8000 directly to PC AT 286/386 motherboard with the Intel CPU removed" had occurred to me, but there is a reason why I don't think that will work. There are at least two PROMS in every PC. There is the BIOS and every display adapter I've ever seen had one as well. Parts of the BIOS and device initializaton code in any found PROMs are executed. Now for the problem I see. The code that is executed is not Z8000 code but Intel code. The two instruction sets are completely incompatible. What happens when you try to execute a Macintosh program on a PC? Instant lockup or maybe something even worse. This is a problem I will eventually have to solve, but that solution will have to be found sometime in the future.

You would be surprised how long I have been looking for cross development tools. I have been combing the Internet for more than a year. There are several problems I've found: 1) The instruction sets of the Z80 and the Z8000 are not the same, particularly when you use the extended registers or put the Z8000 in segmented mode. If the Z8000 is not in segmented mode there is 64K each for the code, data and stack for a total of 192K that can be supported. You're not going to run anything like Linux in 192K no matter how stripped down it is. Basically, that eliminates any Z80 compiler for my purposes. 2) There were very few compilers that supported the Z8000 and those that did, early versions GNU GCC and the ECOS C compiler for example, have removed the code for the microprocessor because for all intents and purposes it no longer exists. I managed to come across source code of early versions of both compilers that supported the Z8000. My efforts to recompile the ECOS compiler and include the Z8K support didn't turn out too badly. When I ran the test suite against the new compiler everything worked except for any test program that used floating point. I specifed that all floating point should be done in software but for some reason it didn't take. As for the GCC compiler, I've struggled through the documentation and I am intimidated by what I've read. You see, almost all my experience with PC operating systems has be with either DOS or Windows - I'm far from a Linux wizard. 3) Using those old compilers to compile current software is likely to be a nightmare. The C language hasn't remained static since Kernigan and Richie, it has changed over the years.

I hope I haven't bored you with all this. I never had a problem with meeting the minimum word length on papers I wrote in college. Humor me a little longer because I have two questions.

Do you know of any electronic parts dealers here in the US that cater to hobbyists like myself? I've found several, but none carry a wide selection of parts. Surely, there are others.

I very much would like to incorporate a math coprocessor in the final system. I've been looking at the 8087 but interfacing it might a chore.
Can you suggest other math coprocessors which I might look at?

I've tested your patience enough. Give me a post when you get the chance. You and I seem to think alike and I very much would like to hear what you think.

Rick



One of my early intermediate projects is to port the simplest OS I can find to the Z8000. I've found several but hadn't come across the two you mentioned. Thanks, I'll take a look.

You mentioned that you thought the Z8001/Z16C01 appeared to be rare unless you go to a parts dealer who will insist you buy a thousand as a minimum. Early on I thought that too. Then I discovered eBay. With only one exception I have found all the Z8000 parts I have on eBay. I've come to think of eBay as my parts supplier.

There are several CP/M-8000 versions floating around. All but one are disk image from the M20. After some effort I've taken those images and teased out some of the files in the images. I also have the complete hardware documentation on the M20 so I have the docs on the hardware. But if I do that what do I have? I have a Z8000 running CP/M. Doesn't sound very interesting to me. I want to show that an old, forgotten, 25 year old microprocessor can run one of the current operating systems, if somewhat slowly. Now that's a challenge and I've never shyed away from a challenge.




The problem I see is that the code in these PROMs is Intel code, not Z8000 code.
Powrót do góry
Zobacz profil autora Wyślij prywatną wiadomość Wyślij email
Jarek Adamski
Site Admin


Dołączył: 2004-09-08
Posty: 190
Skąd: Poland 52N 19E

Wysłany: 2005-06-06 00:46    Temat postu: Odpowiedz z cytatem

I suggested to use the SRAM in the Trump Card as it was presented in the PDF and at first step when joining with PC AT peripherials. If you want to have 48MB RAM, there's no more sense for SRAM, as it takes too much space and is expensive in such amount.

For the 48MB RAM i suggest the 72pin SIMMs, you would need 3×16MB or 16MB+32MB. The refreshment is very simple - you need only to lower /CAS signal before /RAS in the refresh cycle and the memory chips will do the rest (but the ones in 30pin SIMM will probably not).

Next, I suggest making kind of memory bus, using perhaps 1×32 pinhead. So you will be able to connect 256kB PEROM board and 1MB SRAM board at the first step, then replace the SRAM board with 48MB DRAM board in future. Perhaps, after taking some experience you will be able to use 486 motherboard with the DRAM installed on it.

If you would like to separate the address and data lines in one place (not on every memory board) I suggest the DIN41612 slots with 2×32 pins (preview B type: female, male and C type: female, male), so you can use cheaper one-side boards.

As for me, the 30pin SIMMs are completely useless. (BTW I have had the 64kB ones, before disassembled them.) The maximal amount of memory they can have is 4MB. But when I take a 16MB 72pin SIMM and desolder 2 small memory chips from it - I get 4MB DRAM, that is much smaller than the 30pin SIMM (a 1/5 of). See the boards I have build: 4MB RAM for Timex FDD 3000 and 4MB RAM for Timex FDD 3. I made it also for ZX Spectrum, but this upgrade still doesn't work stable.

When connecting the PC AT motherboard directly to Z8000 system you don't have to worry about the ROM on it. You can install the ROM (BOOT and BIOS) for Z8000 on the board inserted in ISA slot, and map the motherboard memory into a spare segment at end of memory. So the code from Intel-dedicated ROM is never executed, exactly like the contents of VGA screen. With the x86 CPU removed, the ROMs are useless and you need to make the initialization from Z8000 level.

I don't know dealers in USA. I try hard to limit myself to the parts I can buy in Poland and at cheap price. I don't know how it happens, but prices in USA and West Europe are much higher than in Poland...

I have no experierience in math coprocessors. Only know there are two for 68000 family, but don't remember their names.

I suggest to install the CP/M first, because:
- You can take some software modules that already work on Olivetti M20 and only need to correct/rewrite the BIOS.
- If you get the CP/M working as it was on Olivetti M20, you can be sure the hardware works correctly.
- You need to write the basic drivers anyway - for keyboard, screen, floppy and harddisk drives, serial, parallel and ethernet interfaces. With CP/M, you can start from serial interface driver and external terminal (emulated by PC). This will allow you to test hardware and perhaps trace and debug other drivers before adding them to BIOS.
- Having working CP/M, you can boot other system from its level.

The harder part in building new hardware or upgrading it is making the system up. When something goes worng you don't know if this is hardware or software fault. CP/M is simple enough to be run on minimal configuration (serial interface plus files written into a ROM-disk). If you have an emulator (with build-in debbuger of course), you can test the software on it and be quite sure the hardware is to blame in fault. When you need to write the emulator, too - you can't be sure for anything.

I've ported the CP/M-Z80 2.2 to 6 target machines (one is still unfinished). After I get the console working, I try to force the DDTZ.COM program into memory (even without disk support - it can be copied from ROM into TPA before running the CP/M) and browse the BIOS tables and variables (with hex dump option). This gives me a lot of information if the BIOS works correctly and where the faults could be.

This gives me quite a lot when I am sure that some CP/M modules are tested and work correctly on other hardware.
Powrót do góry
Zobacz profil autora Wyślij prywatną wiadomość Odwiedź stronę autora Yahoo Messenger
Wyświetl posty z ostatnich:   

© 2009-12-28 21:50 Jarek Adamski, http://8bit.yarek.pl