Classic Computer Magazine Archive COMPUTE! ISSUE 38 / JULY 1983 / PAGE 160

How To Make Backup Disks For VIC And 64

Harvey B. Herman, Associate Editor

LOAD, switch disks, SAVE, LOAD, switch, SAVE –it can be cumbersome and tedious to make backups of disks when you don't have a dual disk drive. What's worse, you need to go through special extra steps to transfer machine language programs. This utility, for any 64 or expanded VIC, makes creating safe backups on single disk drives nearly automatic.

I recently purchased a 1541 disk drive for my expanded VIC. The diskette that came with it included a few sample programs. Conspicuous by its absence, however, was a program to make duplicate copies of diskettes for backup purposes. I have learned the hard way that diskettes do not last forever and it is foolish to have only one copy of important programs.

What do to? Well, I was lucky to have acquired an excellent backup program for the Commodore 2031 single disk drive (written by Jim Law and Keith Hope and distributed by the Toronto PET User's Group). I adapted this program to work on the Commodore 64 and expanded VIC-20 computers. One program works for both. The modifications in the original program were quite modest – a few PEEKs and POKEs were changed, and the machine language portion was relocated to the cassette buffer and POKEd in from DATA statements.

The program is quite easy to use; no knowledge of machine language is necessary. First, the destination diskette is formatted, a good idea if you will be using it later on the same drive. Please be careful to format only blank diskettes, or ones that are no longer needed. Next, the diskettes are swapped and the source diskette is read to determine how much to copy. Successive blocks are then read from the source into the available computer memory. (I can read 124 blocks on the Commodore 64 and proportionately less on the expanded VIC, which has less memory.) The diskettes are swapped again, and identical blocks on the destination disk are written from data saved in memory. The swapping of source and destination diskette continues, until the entire diskette has been copied.

Of course, it would be easier (but not much faster) if a second drive were available. However, this program is the next best thing. It surely beats loading and saving BASIC programs, one at a time, or finding the loading address of machine language files. Try that sometime if you doubt it.

One caution – the program will not work on an unexpanded VIC. I have added 24K of RAM, by means of the Cardboard, and this minimizes swapping. Much less than 16K may not be practical, as too few blocks are copied in one swap. Obviously, the Commodore 64 does not have this problem.