back to buchty.net
Casiorama
back to Casiorama

Adding an IDE Interface to the FZ-1
Trying to reach me?
One of the most wanted features of FZ-1 users is a hard drive. Especially with memory expansions loading and storing samples can be a real pain. Of course, there are a few FZ-20 units out offering an SCSI interface, but first there are really only few and second the needed HD control software has to be loaded from disk. So, the FZ-20 is only a hack - why not do the same? Sad but true... These days one really calls for spam when publishing an email address on a website. But what the heck.

rainer@buchty.net

If you expect an answer please send plain text emails. HTML-formatted mails will be dumped automatically.

The Hardware

The FZ-1 is a 8086-based computer system. Thus, it separates memory and I/O space. The latter is responsible e.g. for display and keyboard control as well as button scanning and LED illumination. It's organized in I/O areas of 8 Byte each resulting in 4 I/O addresses per slot (remember, the FZ-1 is a 16Bit system).

This makes it pretty easy to stuff the necessary glue logic for interfacing an IDE interface into free slots. Due to the nature of IDE we need to occupy three slots. However, this is only the plain hardware part. Personally, I don't like the idea of loading supplemental software from disk every time I want to access the HD unit. Also, it would be fine to have some extra memory for storing the HD directory, disk buffers etc. This is the more tricky part, but this time the (otherwise accursed) early-Intel typical memory segmentation is an advance: The FZ-1 only uses segments 000h (RAM), 100h (Wave RAM) and F00h (ROM).

But Casio decided to use as few parts as possible, thus, ROM occupies in fact segments 200h to F00h. So we need to add another glue logic to break up this mega-segment (which mirrors every 100h) into single ones. So I decided to add 64kB of supplemental ROM plus another 64kB of RAM which leads to the following schematics:

IDE Interface
IDE-Interface for the FZ-1

Of course, this is a pretty easy approach allowing only PIO mode data transfer which will allow abt. 500kB/s to 1MB/s transfer speed. But I'd say loading a complete FZ-1 memory dump (4MB) in max. 8s is more than ok.
 

The Software

Fortunately, the FZ-1 OS is pretty modular. All one has to do is patching the existing load/save routines to access a fourth device, the hard drive unit. Unfortunately, there are many routines concerning file storage. The easiest way to patch them is ripping them off the original ROM, modify them and place the new, longer routines into the auxiliary ROM. Only pointers to the new routines will be placed in the original ROM.

Currently, nothing of this is done since I just don't have the time anymore to spend that much time on this project - but I never said that I want to do it alone. If you feel skilled (and interested, of course) enough to support this project just let me know.