LOAD “*”,8,1 – what it means

Last Updated on September 27, 2018 by Dave Farquhar

The smartest guy in the room cited the Commodore command LOAD “*”,8,1 as something he used for years but never understood why it worked except it was the command he used to load games on his Commodore 64.

So I explained it. Now I can explain it to you too. 

LOAD

LOAD was the Commodore Basic command to load a program from disk or tape. Easy enough.

*

The asterisk character is a wildcard. An asterisk alone means the last file you used on the device. But when you first power the device on, it defaults to the first file on the disk.

This oddball dual drive could be made to work with a C-64. The 0: or 1: in your load command told it which of the two drives to use. Accessing drive 1: on a regular 1541 gave an error.

When you absolutely, positively wanted the first file on the disk, you had to issue the command LOAD “0:*”,8,1.

If you ever see a disk label that says to use the LOAD “0:” variant, you know you had a software company that paid attention to detail. It probably saved them a few technical support calls. The 0: was a holdover from the days of the Commodore PET, when Commodore would sell dual disk drives that had two drives in a single device. Valid values were 0: and 1:.

On the Commodore 64, the 1: was usually vestigial. Although you could connect a dual-drive unit to the C-64, I can count the number of times I saw a dual-drive unit connected to a 64 on one hand. The dual-drive units weren’t common, they were expensive, and took up a lot of room. They were even bigger and beastlier than the drives people normally used with the 64.

,8

In the load" *",8,1 command, the 8 referred to this drive.
Most people had one or two drives that looked like this. The first one was device 8. Second drives would be device 9.

But wait, I hear you saying. You know all kinds of people who had dual-drive 64s. That’s what the 8 meant. The first drive on any Commodore was device 8. The tape drive was device 1, and the printer was device 4. A plotter, if you were one of the 14 people who bought one, usually was device 6. Commodore drives could be set via hardware to be device 8, 9, 10, or 11. Via software, you could go a lot higher than that.

If you had a couple of 1541 or 1571 drives, the primary drive was drive 8, and the secondary drive usually was drive 9. Far too much commercial software assumed nobody would have anything but a single drive 8.

If you have any experience with MS-DOS, you may remember how it used drive letters. A and B were floppy drives, then drive C was your hard drive, and then extra hard drives and CD-ROM drives proceeded down the alphabet. Commodore just used numbers instead of letters.

If you had a lot of money and were lucky, you could buy a disk drive intended for the Commodore PET, buy an IEEE-488 interface to plug into it, then connect a dual drive to a 64. That let you double the number of drives and it was a lot faster than the notoriously slow Commodore 1541. But the older Commodore drives weren’t compatible with most of the copy protection schemes, which relied on the strange bugs quirks bugs–let’s call a spade a spade–of the 1541, which was full of them because Commodore rushed it to market. And then Commodore couldn’t fix them because it would have caused too much popular software to quit working.

,1

OK, we’re almost there. The ,1 meant to load the program at whatever address the file specified. Actually any non-zero value had the same effect. So some people would type LOAD”*”,8,8 because they could type it faster, and it worked. Most commercial programs were self-running, using various tricks so that you didn’t have to type a second command to launch them.

A zero value after the initial ,8 (the default) meant it was a Basic program, so the 64 should load it at the address of $0801.

Many pirates modified cracked games to load at $0801 like a Basic program, so you would load and run them just like a Basic program. This had the side benefit of allowing you to fit more of them on a disk.

Why not just LOAD, or LOAD “*”?

OK, one last thing: Why was the ,8 even necessary at all? Well, the default device was device 1, the tape drive. Initially, Commodore expected most people to buy tape drives, because a tape drive cost $100 and a disk drive initially cost about $400. Well, in 1982, Commodore’s willingness to sell a floppy disk drive for a mere $400 caused a run on them. Commodore couldn’t make them fast enough, and it took a couple of years for the manufacturing capacity and demand to reach equilibrium. If you remember the run on Nintendo Wiis in the 2006-2007 timeframe, it was almost that bad.

Commodore did sell a fair number of tape drives, but in the United States, most people sprung for the disk drive. In Europe, tape drives were more common. Here in the United States, since disk drives were more common, most software appeared on disk. That created a cycle. Companies published more software on disks, so more people bought disk drives. In Europe, the situation was reversed. And momentum kept it that way, even late into the machine’s lifespan.

Other commands

OK, so I’ve analyzed LOAD”*”,8,1 to death. If you’re curious about other useful Commodore commands, here’s a list, with brief explanations. Or if you’re curious about the 64 in general, here are some common questions and answers.

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

2 thoughts on “LOAD “*”,8,1 – what it means

  • August 28, 2013 at 11:57 am
    Permalink

    Nice flashback there. Thank you!

  • September 1, 2013 at 10:28 pm
    Permalink

    Jeez, that one stuck so far back in my brain that when I saw LOAD “*”,8,1 I was taken way, WAY back… Thank you!

Comments are closed.