Zip Drive on a C-64
NOTE - This piece used to exist at http://www.geocities.com/cdsixfour/zipdrive.htm
Author unknown
There's the zip drive attached to my system
Yes, that's right. It IS possible to attach a SCSI zip drive to a Commodore 64 system and be able to use it. This is provided you have a CMD HD. In fact, it's probably also possible to attach MO disk drives and other SCSI disk drives using the same method - although I haven't tried anything else but a zip drive. For me, a 100MB zip drive is sufficient enough. Not only that, but the 250MB zip disks are harder to come by where I live.
There are two methods for connecting extra SCSI drives to the HD. My method, and HD-ZIP.
The method I will be describing is my own tried and tested method. It requires no drivers or external software to operate, and will share your CMD HD partition table. HD-ZIP, is another method contained in a program set that has specific programs that need to be run from floppy in order to operate. This other method is able to give each zip disk it's own partition table. You can find the program set here under the name of HD-ZIP (By the way, there is lots of other useful stuff on this site too!). HD-ZIP also contains a copy of HD POWER TOOLS - which is a necessary program to set up your HD system to use an external SCSI drive for my method.
Question : Why would anyone want to do this? What are the benefits?
Good question. What would you do with an extra 100MB to 250MB in addition to a Hard Drive that has plenty of space already? Well, supposing your HD is full (maybe one of those old 40MB models), adding another drive to it will expand its capacity. A zip drive is one way to do this, and you will be able to expand your system exponentially (virtually unlimited by the number of partitions you can have - one of the drawbacks of having a CMD HD) depending on how many zip disks you have. The other good reason to have a zip drive is to back-up your CMD HD on a portable (and cheaper) media in case the HD suffers some really bad corruption or physical damage in the future - or should you want to replace the mechanism. The third good reason is that, if done properly, you can even swap zip disks between different users. You can access your zip drive *almost* as if it were a separate drive. And the best part is that 16MB CMD Native mode partitions are now PORTABLE!
Question : Are there any drawbacks?
Unfortunately yes. This basically depends on which method you use to access your zip drive with. However, it is possible to operate both methods at the same time! Below is a little chart to show the drawbacks of each method. Note that both methods cannot give the zip drive it's own serial device number:
|
Issue |
My method |
HD-ZIP |
|
Zip disk has its own own partition table? |
No |
Yes |
|
Need external software to operate drive? |
No |
Yes |
|
Need to fill the HD with partitions first to use the zip drive? |
Yes |
No |
|
Able to use the HD and zip drive at the same time? |
Yes |
No |
|
Need a blank zip disk to install a zip drive? |
Yes |
No |
My method drawbacks : To install an external zip drive on your system, your HD will have to be full with partitions in the first place. If you alter the contents of the partition structure in the Hard Drive after you have the zip drive working, you risk altering the zip drive's partition structure (and "corrupting" disk data in there! So remove the zip drive from the system before you do this!) and effectively making the zip drive unworkable until you fix the problem. Also, since the zip drive uses the same device number as the HD, other programs that won't allow you to flip partitions mid-program, or give you a drive channel will give you some problems. Finally, the last problem is if the partition structure of a zip disk doesn't match the partition structure you have allocated for your zip drive, you won't be able to read the disk. This problem is easily fixed however by making the partitions under zip control match those of the zip disk. However, to do this should you need to, you will need to hang on to a blank diagnostic zip disk for this purpose.
HD-ZIP drawbacks : You need to create a new system on each disk that you use. You will also need to continue to load a small program to flip from the HD to the zip disk drive space. This has to be done quite a lot during disk set-up because any reset to the HD will set you back into the HD partition table. This swap program will probably have to stay on one other device permanently - because at times you need to leave the HD in configuration mode and will be unable to use the HD or zip drive to load diagnostic programs. Apart from these issues, the biggest problem with HD-ZIP is the inability to use both drives at the same time under another program - this unfortunately includes copiers! It therefore means that you cannot copy from the HD to the zip drive unless you route the data through another device - flip to the zip drive, and copy it back. This should be no problem if you happen to have a RAMLink with 16MB in it - but not all of us do. This is unlike my method where you effectively copy from a HD controlled partition to a zip drive controlled partition.
A personal note: Since I have used both methods, I have come to appreciate my own method as opposed to HD-ZIP. To me, the inability to copy from the HD directly to the zip drive was enough for me to discard the HD-ZIP method. I wished to use the zip drive to backup my Hard Drive and HD-ZIP doesn't cater for that. I don't mind that each zip disk I use doesn't have it's own partition table. With 100MB to play with, all I needed was a few 16MB Native mode partitions that weren't pressing my HD partition system too much.
After all this talk, someone out there will question the use of an INTERNAL Zip drive as opposed to an EXTERNAL one we are using. There is a difference if you use an INTERNAL zip drive as opposed to the external type. An INTERNAL zip drive has to be set to SCSI device 0, and can have a system created on each disk complete with DOS and partition structure. I don't have a system like this, and this is only what I have heard about INTERNAL zip disks. Since I have only achieved attaching an external drive to a CMD HD, that is what I will be discussing. Personally, I think an external drive is better to have anyway. I wouldn't want to get a CMD HD just so I can rip out the HD mechanism already in there.
The following instructions show you how to connect a zip drive using my own method. HD-ZIP has it's own set of instructions within the self-extracting archive it comes in. So if you are still interested in the HD-ZIP method - read no further.
INSTRUCTIONS FOR ADDING A ZIP-DRIVE (my method)
Ok then, what will we need?
A SCSI zip drive - as far as I know, there are 100MB models and 250MB models. Personally I have the cheaper 100MB model, but the 250MB model should work just as well. You can even use zip drives made by other manufacturers other than Iomega. Just as long as they are SCSI (and NOT the Parallel model) - no problem.
Zip disks - A bit obvious this one. You'll need them to save data onto. It doesn't matter whether you get Windows or Mac formatted ones cause we're going to be wiping their formatting over with CMD's HD DOS anyway. If you want to, you can use LLFORMAT to clean format your zip disks and check them for bad blocks after you have added the zip drive to the system and before you start using them. However, it is important to note that it would be wise to keep at least one intentionally BLANK zip disk lying around in your collection AT ALL TIMES. Should you ever need to adjust the partition structure allocated to your zip drive, or reinstall the zip drive in the HD system at a later date, a blank zip disk is necessary to facilitate this.
An RS-232 cable - These are basically male-male cables that use the D25 pin structure on both sides of the cable. It's needed (obviously enough) to connect to the female SCSI plug on the CMD HD and the female plug on the back of the zip drive.
CMD Hard Drive - You will need one of these to run a zip drive. The reason is that the HD contains the SCSI controller, DOS, and support electronics that are necessary to run the zip drive from a C64. Unlike the PC, we don't need to install any drivers in our C64 or Hard Drive! ;)
CMD Utilities - There is one program on this collection that is indispensable if you are intending to use a zip drive on your system (and have it work nicely). That program is the HD POWER TOOLS program. You will need it to edit a 1541 partition to extend it completely to cover every single last block on the Hard Drive. More on this later. Also, the FOREIGN CREATOR program is recommended if you want to fill your Hard Drive up temporarily to use the zip drive. If I remember correctly, the HD POWER TOOLS program should be available off the CMD Homepage in the "Files" section under "HD". However in the case of the "Files" section being down, you can still purchase a copy of "CMD Utilities" directly from CMD. I strongly recommend getting this collection for some of the other utilities as well as the ones I'm talking about.
HD Utilities - Obviously you should have these when you got your CMD HD. The programs we will concern ourselves with are the HD-TOOLS, and ADD DRIVE programs. You may also like to use LLFORMAT to clean format any zip disks you buy with Windows or Mac formatting on them. The program will let you select the zip drive after you've added it, and once the format is finished, it will check the zip disk for bad blocks as well.
So lets get started:
First, plug in your zip drive to the power and to the SCSI port on the back of the HD. While it is on, you can put your intentionally blank zip disk in there. I mentioned before the need to have one of these at hand at all times.
As stated before, the zip drive will not work unless the HD is full to the point where it cannot create more partitions. If your HD is not already full, then fill it. If you only want to make a back up of the HD's contents, then use the FOREIGN CREATOR to fill all the space in the HD with a foreign partition. You should ideally fill close to all the space, but leave 683 blocks at least and then create a final 1541 dummy partition that we will edit to fill the HD's space ENTIRELY in a moment. Once you have done this, you should attempt to create another partition on the system. The HD-TOOLS program will display that due to insufficient space, you can't. The program will also display the remaining blocks that couldn't be filled. WRITE THIS NUMBER DOWN AND MULTIPLY IT BY 256. The resulting number will be needed when we get to the HD POWER TOOLS program. The number is the number of bytes we will need to increase our 1541 dummy partition by to completely fill the Hard Drive so there are zero blocks left in it.
Next, we will open up the HD POWER TOOLS program and make a backup of your partition table. The reason for this is so if there are any problems, you can resurrect your HD partition table.
Just a few things to note here:
I WILL NOT BE HELD RESPONSIBLE FOR ANY DAMAGE OR CORRUPTION YOU DO TO YOUR HARD DRIVE WITH THIS PROGRAM, AND NEITHER WILL CMD.
You read the warning notices, so take caution.
Just remember this one very important point and you will not do any damage.
THE DUMMY 1541 PARTITION YOU WILL EDIT MUST BE THE LAST PARTITION THAT YOU CREATED ON THE HARD DRIVE, AND THEREFORE RESIDES AT THE HIGHEST POINT ON THE PARTITION TABLE.
Now that we have those warnings out the way, do the following. Go to the dummy 1541 partition you created. You will notice that it's size is 175104 bytes. Now, we need to change the size of the partition to completely fill every single last block on the HD. Remember the number you wrote down earlier? It was the number of bytes that we needed to fill the HD to capacity with. Simply change the partitions capacity to the sum of 175104 and the number of bytes we need to fill. Then exit the program. You can check to see that the HD is completely full by attempting to create another partition, and then being told that there are 0 blocks on the drive. THIS IS IMPORTANT. As for the dummy partition we created, it will act just like a 1541 partition. Those extra blocks we put on it cannot be used anyway. It will work as a normal 1541 partition should.
Just in case you are still confused, let me give you an example:
Let's say we filled the HD as much as possible and when we tried to make another partition in HD-TOOLS, we are greeted with a message saying something like "insufficient space - 116 blocks free"
First we get 116 and multiply that by 256. That equals 29696.
When we get to HD POWER TOOLS, we notice the 1541's size is 175104 bytes. Now we add 175104 and 29696 together. That equals 204800. We then change the size of the 1541 partition to 204800 bytes. Et voila... excuse my French.... the HD is full to zero blocks free. Check it out.
Step two. Reset your C64 and load up the ADD DRIVE program. Check out your zip drive and switch it's SCSI device number to whatever you think is appropriate (5 is fine with me - well it's either 5 or 6). Also on my zip drive, there is a switch on the back which would normally on a PC, make it invisible to the system (The "termination" switch). We want to make sure that this switch is off so that the drive IS recognized by the system, or ADD DRIVE won't be able to recognize the drive. The zip drive comes out of the box with the switch in the ON position, so flick this switch OFF.
Next, get the ADD DRIVE program to scan the SCSI port for drives. It should then recognize the zip drive as either a 100MB model or a 250MB model. We then ask the program to add our zip drive to the system. Then we reset our C64 and Hard drive. What the ADD DRIVE program does is add 100 or 250MB worth of blocks to our HD system. When we boot up HD-TOOLS the next time, we can continue to make partitions, except that the partitions will now appear on the zip drive and not the Hard Drive.
Previous documented methods of adding an external SCSI drive required the use of a "bridge partition" to cover the excess blocks that could not be used on the HD, but created a problem by extending into the external drive - thus making the disks incompatible should we try the disk on another system (or new Hard Drive) with a different gapsize of the bridge partition cutting into the zip drive space. This problem is now a thing of the past, now that we can set our Hard Drives to 0 blocks at any time. Yay for us!
At this point, you may want to use LLFORMAT to cleanly low-level format the zip disks you have before using them. This step is completely optional. The bonus with doing this however is that you remove the old Windows or Mac formatting completely off the zip disk, and check the zip disk for any bad blocks before you start using it. LLFORMAT will allow you to select which SCSI device to format. Just make sure that you format the zip drive and NOT your Hard Drive by accident!
The last step is to create more partitions on the system with HD-TOOLS. From here on in, the partitions you create will be entirely on the zip disk. Since this space is being allocated under the system, ALL zip disks you use on your zip drive will have the SAME partition structure. Therefore, choose carefully which partition types and sizes you select for ALL your zip disks. For me, I chose 6 Native mode partitions consisting of the maximum 16MB each, and 2 1541 partitions. That all managed to fit on a single 100MB zip disk. When I want to store a 1541 disk on a zip disk, I will probably zip-pack it onto one of the zip disk's native partitions or maybe one of the 1541 partition I created.
An essential point to remember here is that when you create the partitions for the zip drive, A BLANK ZIPDISK MUST BE IN THE DRIVE. HD-TOOLS will format the zip disk in the drive after you create the partitions. DON'T leave a disk with data you want to keep in the zip drive at this point - it will be LOST. For this reason, always have a blank zip disk at hand (I'm beginning to repeat myself a lot here) should you need to reinstall the zip drive or change the partition structure of the zip drive. ALWAYS keep a blank disk in your collection of zip disks.
After the partitions have been selected and installed in the system, other zip disks must be formatted first before they can be used. This is done simply by sending the @N (new) command to the partitions under the zip drive.
So that's all the details of adding the drive.
To use the drive, you simply save your data into the partitions under zip drive control. You can just as easily load things from there in exactly the same way you would with the HD. If you have native mode partitions, you can even make subdirectories and the like. One thing that has to be taken into consideration however, is that whenever you change zip disks, the HD will have to be reset manually as well by pressing the RESET button on the CMD HD. THIS IS IMPORTANT! The reason is so the HD doesn't get lost. Supposing you were in two subdirectories deep in a native partition on zip disk #1, and then you swap to zip disk #2 only to find that the HD thought you were in a subdirectory in zip disk #1 when the current disk doesn't even have any subdirectories made in it! Embarrassing, no?
In order to back up your HD, you will first need to follow all of these steps until your HD and zip drive partitions are all configured. Then use MCOPY to copy partitions over to the zip drive (who needs BCOPY?). Be patient as it can take a while to copy 16MB from a native mode partition to the zip drive. You could, of course, file copy things but you'd be there forever.......
Some things to remember:
DON'T change the Hard Drive's partition structure (if you can avoid it). If you do change it, make sure you remove the zip drive partitions and then use ADD DRIVE and REMOVE the Zip drive from the system first. If you leave the zip drive and it's partitions on the system, the zip disk in the drive will have it's data pulled down into an unreadable format as HD-TOOLS tries to rearrange the system. If you ever have to adjust the Hard Drive partition structure, you will have to fill the Hard drive again TOTALLY as before, add the zip drive again, and recreate partitions for the zip drive to use that are compatible with your disks - in that order.
DON'T forget to fill the HD completely so there are NO BLOCKS LEFT on it. DON'T try the "bridge partition" method as was once suggested by CMD. Whilst it is possible to save and load things on a zip disk without filling the Hard Drive completely and leaving some space (Thus dodging the need to use HD POWER TOOLS), it is very messy. If you fill the drive and then create a bridge partition to fill the gap, and then create partitions, there will be no chance of you being able to read from the zip disk again unless you have the same size drive, the same partition structure, and exactly the same block gap between the drives. This is not useful at all if you are going to back up your system onto zip disks should your CMD HD (god forbid) blow up. Neither will it allow you to swap zip disks with other users. Lastly, the bridge partition is useless because it straddles two devices - unlike our extended 1541 partition.
DO take note of what kind and size of partitions you have placed on your zip disks. Without this, other people cannot fix their systems to read them, and more importantly, you won't know how to read them in case you need to recreate your Hard Drive. I suggest writing this info on your zip disks' labels.
REMEMBER, you will need a blank zip disk in order to create partitions on the HD system that the zip drive can use. HD-TOOLS will format the zip disk on the creation of these partitions, so ensure there is a disk in the zip drive, and it is BLANK. Essential to have one of these around if you ever need to reattach the zip drive.
To Summarize:
(1) Fill your HD and leave JUST ENOUGH space for a final 1541 partition. Also ensure you have enough partition slots left in the HD system to use for the zip drive.
(2) Create the 1541 dummy partition. Then try and make another partition. Take note of the number of blocks left in the system that cannot be made into a partition. Multiply the number by 256. Write this new number down.
(3) Use the HD POWER TOOLS program to extend the 1541 partition to fill every single block in the HD. Add 175104 and the number you wrote down earlier together. The sum of these numbers is the new length you enter into the size field of the 1541 partition to created before.
(4) Ensure the "Termination" switch on the zip drive is set to OFF. Insert your blank zip disk. Add the zip drive to the HD system with the ADD DRIVE program.
(5) Create more partitions on the system with HD-TOOLS that you want to use for your zip drive.
(6) Enjoy using your zip drive for whatever you want!