How to use Commodore disk drives

If you’ve used other types of computers, Commodore disk drives can be a bit confusing. In this blog post, I will give an overview of the essential commands concepts you will need in order to use Commodore disk drives. All of this also applies to third party drives like drives from MSD, the Excelerator Plus or Oceanic 118, Enhancer 2000, Indus GT, etc. It also works on modern solid state solutions like a Pi1541 or an SD2IEC.

Commodore Device numbers and drive numbers

How to use Commodore disk drives
Commodore disk drives aren’t intuitive, but you only need a few commands to use them today.

The first thing you need to know, besides maybe how to connect Commodore drives, is that device on the Commodore bus is assigned a number. There are no device names or drive letters or anything like that.

The default device number for Commodore disk drives and third-party clones is 8. The majority of Commodore software assumes it will be loading from drive 8. Some software is tolerant of loading from other drives, but drive 8 is the safest option.

Some drives, such as the 1541-II, 1571, and 1581 have DIP switch settings to change the device number, but earlier drives, basically any Commodore drive from before 1985 including the brown bomber 1541, can only have the device number set internally by cutting traces or bending pins on 6522 ICs.

Commodore reserved device numbers 8 through 31 for disk drives, but from a practical standpoint, the most common drives could only be set to a number between 8 and 11. Only the really high-capacity drives like the SFD-1001 could take a device number higher than 12.

The earliest Commodore drives had a pair of drive mechanisms in a single cabinet. You would address these as drive 0 or drive 1 in your command.

If you happen to have an Epyx Fast Load cartridge, Fast Load has shortcuts for all of the below commands.

Frequently used Commodore disk drive commands

When you power on a Commodore 8-bit computer, it drops you into a Basic interpreter that understands a dialect of Microsoft Basic.

You will do most of your interaction with the disk drive using the Basic load and save commands. Some Commodore computers had Basic commands for all of the major disk operations, but two of the best selling Commodore computers, the 64 and Vic 20, did not. So I’ll give examples for these two, the lowest common denominator, since they’ll work on all Commodore 8-bit computers, even though some of them may have a friendlier command for some of these.

Load a disk directory

To load a disk directory, issue the command

LOAD “$”,8

When you get a ready prompt, type the command LIST. Hold down the control key to slow down the listing as it scrolls on the screen. To stop the listing at any point, hit the run stop key.

To get the directory from a different drive, substitute a different device number for the number 8. And to get the directory from the second drive of a dual drive unit like an MSD SD-2 or Commodore 8050 or 8250, append the number 1 after the $, e.g. LOAD “$1”,8 .

Some people tack a comma-1 on the end of this command. This does no harm but is unnecessary.

Load a program

To load a program, use the command

LOAD “FILE”,8

Use whatever file name you saw in the directory listing from the previous step.

This command works for Basic programs, the majority of magazine type-ins, and the majority of cracked games.

After you issue the command and the disk activity stops and you get a ready prompt, type the command RUN.

To load from the second drive of a dual-drive unit, append a 1: to the beginning of the filename.

Load an auto running program

A lot of commercial programs had auto running capability. You didn’t have to wait for them to finish loading and type run, they started themselves automatically, so you could walk away and when you came back, the program was ready for you.

Commercial software almost always worked this way, and cracked copies of multi disk games continued to work this way.

To load these, you use the same syntax as above but put a comma and a one at the end. Most software just booted from the first file on the disk, so the cryptic command LOAD “*”,8,1 usually works. This command was so famous that a Commodore disk based magazine took its name from it, calling itself Loadstar, a play off this command and the word lodestar, a rarely used English language synonym for the North Star.

Save a Basic program

To save a Basic program to disk, use the command

SAVE “FILENAME”,8

To save on the second drive of a dual-drive unit, append a 1: to the beginning of the filename.

Format a disk

To send a format command to the disk drive, type this:

OPEN 15,18,15: PRINT#15, “N0:diskname,id”: CLOSE 15

You have to format a disk before you can store files on it. Note that this will erase the current contents of the disk, so always list the directory before formatting a strange disk.

On a dual drive unit, substitute the number 1 for 0 to perform the operation on the second drive.

Check a disk for errors

To send the closest equivalent of a CHKDSK command to a Commodore disk drive, type this:

OPEN 15,18,15: PRINT#15, “V0:”: CLOSE 15

You have to format a disk before you can store files on it.

On a dual drive unit, substitute the number 1 for 0 to perform the operation on the second drive.

Initialize the drive

To clear the error channel and center the drive on track 18, type this:

OPEN 15,18,15: PRINT#15, “I0:”: CLOSE 15

You have to format a disk before you can store files on it.

On a dual drive unit, substitute the number 1 for 0 to perform the operation on the second drive.

If you found this post informative or helpful, please share it!

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.