In the good old days of Commodore (64 and 128), the command to type to load the first program off a disk was:

LOAD "*",8,1

Where I take it that "*" was probably a wild card that would just effectively give all the contents of the disk to LOAD which would then successfully load whatever happened to be the first loadable (i.e. executable) item on the disk.

But what are the other two parameters for?


LOAD "*",8,1

The general syntax is:

LOAD ["<filename>"[, <device number>[, <secondary number>]]]
  • The filename * means the first file on the the disk, as you mentioned in your question.

  • The first number parameter is a device number. 8 is the device number for the first disk drive. From the Wikipedia article on Commodore DOS:

By convention, the first disk drive unit on a system has device number 8, the second drive, if present, 9, etc., up to a maximum of 15

This seems to come from the IEEE-488 bus, which the Commodore PET used.

  • The second number parameter, in this case 1, means to load the stored program into memory, starting at the memory location specified by the first two bytes in the file you are loading. This is generally used for machine language programs. 0, by contrast, is the default value, and would load the stored program to $0801 (the beginning of BASIC memory)

A full description is available at the C64 wiki page for the LOAD command.

| improve this answer | |
  • 14
    You just killed all the mystic. It's worse than when I found out about Santa. :D – Amadeo Gallardo Oct 23 '14 at 19:21
  • Yup and for those of use that used tapes we didn't need to worry about the ,8,1 stuff. Just LOAD "asterix". I think you could add in a ,1,1 if you so desired, but it was optional. I don't think we need the "asterix" either. Apologies my memory is slowing seeping away. – rayzinnz Jul 1 '17 at 2:59
  • @rayzinnz yep, that's all correct. The default values are covered in the article I linked at the bottom. I tried a few times after your comment to add more info on the default values, but I didn't find a way to do this without simply cluttering up the answer. I would like the mention why the default values were what they were ("Personal Computers" were meant to be programmer friendly, hence the BASIC shell, defaulting to cheap cassette storage, etc), but I don't really have a good way to slide that commentary in without making the answer a lot longer. – Merlyn Morgan-Graham Jul 2 '17 at 22:30
  • 2
    @rayzinnz No need for asterisk on tapes. Just type LOAD, and press return. then you'll be instructed to PRESS PLAY ON TAPE... – svin83 Nov 26 '18 at 14:59
  • On other models you were loading from a 360K 5 1/4" floppy, or from a cartridge, so you DID need the parameters... – Drunken Code Monkey Sep 4 '19 at 3:27

Wikipedia has some info on Commodore DOS.

| improve this answer | |

The 8 is the disk drive. So kinda like C:. The 1, I believe, is the communication channel. It's kinda like a PORT in the TCP sense.

| improve this answer | |

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.