In addition to repairing and maintaining the classics, I have also been designing a faster, more current version of a Z80-based system that could be used to run all of this great old classic Z80-CP/M software. I have two prototypes running now, one uses an 8 MHz clock and the other a 10 MHz clock. Eventually they will have RAMdisk support and perhaps interfaces to the IDE disk and CDROM devices that are so common these days.
I have to admit that I'm tired of "chasing" floppy technology for these old systems only to have it disappear before my eyes. Many of my old systems that are based on 8" drives are almost impossible to keep running because working drives, and diskettes for them, are hard to find. I've converted some to 5.25" drives, others have been such a nightmare to try to convert that I ran out of patience. 5.25" HD drives seemed like a good alternative to 8" for a time, but then the PC industry dumped them, and now drives of that type, and media for them, are getting hard to find. I started to look at 3.5" drives as potential replacements, but now it seems that they are also going the way of the 8" and 5" technology. Everything is now CD and DVD. Even the Zip stuff is archaic (100 and 250 MB both).
Enough! No more struggling to keep older systems working with regular floppies. As with any electro-mechanical device, they are difficult to maintain, and they disappear from the scene way too quickly. Recently, Future Technology Devices International, Ltd., announced a new chip that can serve as an inexpensive interface to USB flash devices, called the "Vinculum". FTDI developed a "Vinculum" based circuit that has an interface to the USB devices popularly called "thumb drives" at one end, and a standard RS-232 interface at the other. Anybody seen this? It is called the "vdrive2". It appears that one can be purchased for under $30. Their firmware supports a basic command set to read and write files from/to the flash device via the RS-232. There is every indication that it might be able to be adapted to serve as a high-capacity replacement for a floppy drive. I'm willing to bet that most of the worthwhile CP/M software that has ever been written would fit on a single 512MB or 1GB thumb drive that can be purchased for not much money these days.
Who's to say that this wouldn't work as mass storage on older CP/M systems? I've not tried one out yet, but I'm going to. What CP/M system worth it's salt doesn't have at least one spare RS-232 port that will run at 9,600 baud, or better? Is downloading a small file at 9,600 baud faster or slower than reading it from a floppy drive? I'm going to find out.
In fact, why not develop a "RAM disk" that could be adapted to these older systems, and use it as primary storage, and then have a "vdrive2" as a secondary, high-capacity "disk"? Even if loading files from the "vdrive2" to RAM disk should prove to be a little slow, once they are on RAM disk, access would be very fast. Anybody notice that 512k x 8 SRAM is now available in a 34-pin DIP package for about $13.00 ? A RAM disk based on two of these chips could serve as a lightning fast alternative for a floppy. Use a "vdrive2" as backing store for the RAM disk, and "manage" the CP/M files on the thumb drive from your Linux box. I bet it would work!
Toward that end, I've been working on rebuilding a basic Z80 computer with RAM disk instead of a floppy interface. Here is a picture of a working floppy-based prototype that uses a WD-2793 FDC (lower right-center in the photo). Most of the stuff on the right-most two plug boards support the floppy interface. The group of 17 red wires on the far right are the signal side of a standard 34 conductor floppy cable. It is set up to be connected to a pair of 5.25" HD (1.2 MB) drives. For memory, there is one 32k x 8 EPROM and two 32k x 8 SRAMs (upper center in the photo). The EPROM and one SRAM occupy the lower half of the Z80 address space, and a write to a port address bank selects between the two. The red/green LED pair (lower left) indicate the current occupant (EPROM or SRAM) of the lower half of the address space. The CPU is a Zilog Z84C50 (upper left), which is capable of running at up to 10 MHz with on-chip wait state generators to accommodate slower peripherals, if necessary. It comes up running with three wait states, but this can be changed on-the-fly via a write to port 0EEh. The "console" is either a PC running a comm. program (such as minicom), or an RS-232 terminal (Wyse, for example). The advantage of using minicom is that the firmware has a function to download .hex files to Z80 memory. The RS-232 interface on the prototype is implemented with a Z80A SIO/2 (lower center). The basic computer (without the floppy interface) can be built with about 15 readily available components. That count could be reduced quite a bit with programmable logic, but then there's the problem of supporting those custom devices.
Circuit diagrams of the basic computer will appear here.
I'm going to try to build another prototype without the WD-2793, and replace it with a RAM disk, based on two 512k x 8 SRAM chips. If I can get that to work, I'll then see if I can find a practical way to incorporate a "vdrive2" as high capacity back-up storage to work with it.
A few weeks later:
So, here it is. This is the basic Z80 CPU (same as described above), with a RAM disk. The basic CPU is on the left-most 3 plug boards, and the RAM disk is on the right two. This one uses a Z80H (8 MHz) that doesn't have some of the nice features of the Z84C50. Otherwise, it is nearly identical to the floppy based prototype. For now, the RAM disk is based on two 128x8 static rams (lower right), but 512x8 SRAM is on order and should be here soon. The interface to the SRAM is implemented with three 74LS374 "registers" (there might be a 74HCT374, or two, in there too). A CBIOS has been written that allows CP/M to run with this hardware. Once the capacity of the RAM disk is increased to 1 MB, I plan to get a "vdrive2" to see if that can be used as a practical way to provide access to a conventional "thumb drive".
The CPU has now been upgraded to a Z84C0010PEG (available from Mouser Electronics), and the project is running at 10 MHz. Also, two 512k x 8 SRAMs were substituted for the smaller memory chips in the RAM disk. It all works, and a custom version of 64k CP/M 2.2 is lightning fast! I'm able to download .hex versions of CP/M applications right now, but I'm working on more direct download from flash devices. Stay tuned.
May 1,2008: There's good news and bad news. The bad news is that I've had zero luck getting the Vinculum "VDrive" to work as a means of adding on-line storage via RS-232. The good news is that I built an IDE interface (see www.retroleum.co.uk) designed by Phil Ruston (thanks Phil!). It works great, and that in combination with a 1MB RAMdisk makes for an excellent and responsive system. This is the CBIOS that I'm using. And, this is my modification of the directory utility "D" so that it will work as advertised with large disks (I also translated the 8080 mnemonics to Z80).
Nov. 2008: With a great deal of help from James Moxham, the prototype design was captured as a 2 PCB layout. It works now (there were some errors that had to be fixed). This is the CPU board, and this is both boards in an old floppy enclosure (for a power supply). Then, I mounted the prototyped system, along with an IDE hard drive and dual D cell batteries (for battery back-up of the RAMdisk) in the floppy drive bay of an old Kaypro II. There are still some issues to be worked out, including slow scroll of the Kaypro II (dropped characters), and power supply that may be too small for the "R-Pro". Anybody know how to fix the Boschert switchers that were in early Kaypros? Anyway, this seems to work fine (the Kaypro part just serves as a terminal for my Z80). I am not using the floppy interface of the old Kaypro at all. Here are a couple of pictures: one and two.
I'd love to hear comments or suggestions. Fire away!
[More pictures and circuit diagrams to follow.]