magazine logo
Welcome to the official Attitude website - Europe's #1 C64 scene disk magazine
IDE Interfaces For C-64/128
by Ytm/Elysium

I always wanted to have a hard drive in my C-64 and later in my C-128. I'm pretty sure that many of you share my feeling. One of my first Internet sessions was filled only by searching the web for information about connecting a hard disk to 8-Bit machine.

Basically, there are two ways - maximum compatibility and minimum cost. CMD, which recently passed away from C-64/128 hardware market, known for their SuperCPU, also sold many kinds of drives - RAM drives, floppy drives and of course hard disk drives. Somehow their setup was as expensive as possible - for unknown reasons they used more expensive SCSI drives instead of IDE. On the other hand their devices are extremly compatible with existing software.

The other way is just to make an interface, connect the drive and enjoy reading HDD identify messages, reading and writing sector by sector... This was my path. I saw no reason to look for compatibility. Scene stuff will work only from 1541 and the only C-64 activity where I would need more disk space was GEOS. Utilizing my previous RAM disk drivers for GEOS to HDD was just a matter of hours (debugging took one week).

There is also third way which lays in the middle - IDE64 which has reasonable cost, but it is less compatible than CMD drives, e.g. it doesn't work in C-128 mode and cannot emulate 1541 "partitions" on the disk.

Anyway, I just wanted to connect a hard disk to my computer and nothing more because I was able to write the software myself. :) I started examining schematics and documents that I had found. Before IDE64 I had never heard about a commercial IDE interface for C-64/128. After reading ATA-3 specs I was surprised - IS THAT SO EASY? Why no one hadn't done it before??? There were many advanced hardware projects that were presented to 8-Bit public, at least here in Poland. I am sure that everyone of you heard about resistance and frequency meters, eprom programmers, light controllers and even teletext for C-64. I still don't quite understand why there was no IDE interface for C-64 back in at least 1992 - TEN YEARS AGO.

For your information - here is an explanation of my amazement. An IDE hard disk is quite similar to 1541. It has own RAM, ROM and processor. There are differences. 1541 manages the file system using DOS in ROM while HDD knows only how to find and read or write a sector of 512 bytes. More important is the way of connecting these devices to computer. 1541 is connected with IEC serial bus. This means that those few wires in the cable are controlled using port ICs. Situation with HDD is different. They are connected directly to data/address bus. It can be compared to putting a cartridge into expansion slot - this is a direct connection with CPU data, control and address bus.

The obvious choice would be to connect data lines to D0-D7 on CPU or Expansion Port, to connect A0-A2, R/W etc. in similar way. But this is not so simple. ATA standard defines timing on IDE bus, And it is a bit different on C-64 and C-128. Different enough to make this connection unreliable without additional delaying ICs. And there is also problem with upper 8 data bits - D8-D15. latching them during read for later use also requires additional chips. See Ruud Baltissen's page for this style of interface. He assured me that it works for both C-64 and C-128. links are at the end of this article.

As I am lazy I have chosen another way. Instead of using direct interface which cannot be fully controlled (R/W lines, PHI2 clock etc.) I wired IDE lines to CIA ports. In my CIA-IDE project I propose adding a third CIA chip and use its two ports to control one IDE channel. One port is used as control bus and the other for lower 8 bits of data bus. For more information about building it, please visit its page. To be honest I must admit that additional CIA is not really necessary. One could use all the information and software I provide and wire IDE bus to CIAs that are already in C-64/128. I'd suggest using CIA#2 port B ($DD01) for control bus and CIA#1 ports A and B for 16-bit data bus. But then there's a problem with keyboard and joystick - they cannot be used during IDE activity, e.g. pressing a key would destroy data read or written to HDD.

As I mentioned earlier, I wrote software that enables IDE HDD under GEOS. GEOS is not a free software, but my driver is. I released it under GNU GPL which means that anyone can download it and use for free. Source code included. My driver comes in form of autoexec program that will detect and read config from HDD and install disk driver in the memory. It works best with GEOS128 v2.0. For C-64 you need a RAM expansion. It may be REU, RamCart, +60k or IDE64 (in the last case IDE bus on IDE64 will be utilized, you don't need additional circuits). :)

My driver uses only 8 bits of data bus, which means that only half of disk will be utilized. I don't think this is a problem because even with 40MB disk there are 20MB of data space and I don't have enough stuff to put there. Anyway, this will change. The disk is divided into something like partitions or virtual disks, there is also a GEOS utility to switch between those. Each of such partitions has 16MB (32MB physically).

Performance is quite good. It is not as fast as REU, but if you have ever worked with non-DMA RAM expansion for C-64 like +60k or RamCart - this is comparable. Directly interfaced IDE bus should work about 20-40% faster.

Apart from disks it is also possible to connect Atapi CD-ROM drive to IDE bus. This way C-64 would be able to play CD-Audio and read CD-ROM. Together with a special CD-R/RW created on more powerful computer it would be possible to keep thousands of file games and demos there. Imagine loading a small booter from C-64 floppy which would give you access to such a vast amount of stuff from CD. This is still only an idea but I hope to implement it this year.

I wish someone had written those words in 1992. Now we must face the facts: it is too late to make cheap IDE drives for C-64/128 popular...


(1) YTM's projects - CIA-IDE
(2) Ruud Baltissen's page
(3) IDE64

   Add/view comments on this article (comments: 0)

Do you believe we are
able to cope with
releasing "Attitude"
on a regular basis?

yes no

 YES: 314 (72.18%)
NO:121 (27.82%) 



all visits:

visits today:

website started:
Official Webpage
of Attitude
Copyright 2004-2018