What's Wrong With Load"*",8,1 or LOAD"*",1 on C64

Sdílet
Vložit
  • čas přidán 23. 07. 2024
  • Robin's pedanticism gets set off by incorrect Commodore 64 LOAD statements seen on t-shirts and documentary film trailers. We'll examine what's wrong with them and why, and explain how to fix them. And along the way we might learn a thing or two about loading from cassette and why accuracy matters - at least to some people.
    To support 8-Bit Show And Tell:
    Become a patron: / 8bitshowandtell
    One-time donation: paypal.me/8BitShowAndTell
    2nd channel: / @8-bitshowandtell247
    The Commodore 64 Revolution (Documentary) Trailer: • The Commodore 64 Revol...
    Index:
    0:00 Details: A LOADed Rant?
    2:09 Load"*",8,1
    5:12 LOAD"*",1
    7:00 Trying to load * from tape
    11:45 How to load the first/next file on tape
    13:42 $E4E0 Disassembly: the pause
    16:18 PEEK(145) - the skip pause keys
    18:30 Vintage mistakes
    21:03 Magazine type-ins: accuracy matters
    21:58 Thanks to my patrons!
  • Věda a technologie

Komentáře • 317

  • @blunderingfool
    @blunderingfool Před 7 měsíci +42

    Robin, that rant against permissiveness of sloppy practices was just beautiful. People love to 'dunk on' others for being "pedantic" but no one complains when stuff works properly because someone did their work to a high standard.

    • @Curt_Sampson
      @Curt_Sampson Před 7 měsíci +2

      Indeed! I enjoyed the rant greatly, and was an instant thumbs up for the video, particularly at this moment when I'm tutoring someone on address decoding for 8-bit systems. He wants to design and build his own little SBC, but I'm despairing that it will ever work unless he gets his act together and starts getting pedantic, rather than just guessing what the effect might be of the circuits he's showing me.

  • @TheHighlander71
    @TheHighlander71 Před 8 měsíci +45

    I have had discussions (some heated) about the meaning and workings of the asterisk in the LOAD command. The commodore manual says that it loads the last file loaded and if the commodore can't determine which file that is, it just loads the first file. As you said in the video. I'm glad you underlined the meaning of the asterisk.

  • @bozimmerman
    @bozimmerman Před 8 měsíci +15

    Aww, man. After twice saying that the Asterisk loads "the first file on disk", Robin corrected himself the third time. I was so excited to jump into the comments and be pedantic on a video about being pedantic, and now I have to settle for enjoying pedantry vicariously.

  • @AndyHewco
    @AndyHewco Před 8 měsíci +25

    I didn't notice if you mentioned, but just like disk, you can provide the additional parameter for tape too and use LOAD"",1,1. That's not very common of course, as it loads the file into the address it was saved from so it is useful only for specific cases.

  • @8antipode9
    @8antipode9 Před 8 měsíci +72

    There are too many people in the world who take a correction as an attack on their character. I think growing up learning computer programming and later going into the IT field has taught me to value corrections others might make to my work. The other edge of that sword however is that I also don't hesitate to correct mistakes that I see. So yeah...I'm with you completely. :D

    • @kurtreber9813
      @kurtreber9813 Před 8 měsíci +4

      In our line of hobby, it's not just an attack on our character, but on our *special* character, and that's just too much.

    • @DarkSideofSynth
      @DarkSideofSynth Před 7 měsíci

      Nowadays people take even greetings as an attack ;) Let them suffer from their own "unimportant" mistakes, which - surprise, surprise, suddenly become super important if it affects them, i,e. writing 1,000 instead of 1.000 is alright, no big deal, same thing, right?... unless it's their paycheck ;)
      No worries, Skynet will take care of them :)))

    • @NeilRoy
      @NeilRoy Před 7 měsíci +2

      I love being corrected if I am wrong. It helps me learn and grow.

    • @DaleDix
      @DaleDix Před 6 měsíci +1

      That's a big problem with the Linux community. Until they get their act together, people will always stay with the devil they know.

  • @retrofriends
    @retrofriends Před 8 měsíci +7

    Maybe the shirt says "?SYNTAX ERROR" on the back? 😂

  • @darkstatehk
    @darkstatehk Před 8 měsíci +12

    This was super interesting! I always thought "*" was universal, but after Robin explained that it was the disk drive interpreting the "*" differently, it all made sense. Still learning so much 35 years on!

  • @youcrackmeupdude
    @youcrackmeupdude Před 8 měsíci +18

    I haven't touched a Commodore since 1994 and immediately knew the issue with the T-shirt.
    I didn't own a tape drive, so thank you for explaining the ins and outs. My uncle owned a VIC20 and tape drive, and I always wondered how to store more than one program on a tape and how to retrieve it. Now I know.
    I'm with you 100% regarding the precision of commands. Imagine seeing a T-shirt with a bunch of upper case Linux commands.
    I just got back from a Cafe Press search, and they do exist.

    • @BlackHoleSpain
      @BlackHoleSpain Před 7 měsíci

      Tape drive? Wow... I never called datassettes with that name here in Spain. The odd thing here was a disk drive, as its price was a full monthly salary.
      In fact, I never saw any original game in disk format at computer shops, only tapes were available, since disks were a luxury good used only in Central Europe and United States.
      Still nowadays the salaries in USA, Netherlands, Germany or France are 300-400% higher than ours.

    • @saszab
      @saszab Před 7 měsíci

      ​@@BlackHoleSpain Don't complain about salaries, because in the Eastern block it was much worse. In the late 80s in the USSR we would have had to spend more than half a year's salary to buy a computer like Commodore 64! So the only way for the ordinary people like me to get a computer was to make it by yourself :-) That's why I'm not a Commodore guy but a Spectrum one, because there were no Commodore clones, only ZX Spectrum. So I soldered my first computer ("Leningrad" - a simple 48K clone) in 1991, then the second (ATM Turbo-2) in 1993 was much more complicated: it was a very advanced version of Spectrum 128K with 512 KB of memory, additional video modes (similar to EGA on PC), CP/M mode and a floppy disk drive. But soon the era of PC came, so I saved all my money for 2 years to assemble my first Pentium in 1995-1996.

  • @KAPTKipper
    @KAPTKipper Před 8 měsíci +11

    Those wedges the magazines eventually develop for typing in listing certainly helped. They allowed the checksum to validate the line. Made it a lot easier, but took them forever to create that utility

  • @NeilRoy
    @NeilRoy Před 8 měsíci +21

    I would love a t-shirt with "L" followed by a shifted "O" from the C64, that graphic and then the rest. Only C64 users would understand it.

    • @WarrenPostma
      @WarrenPostma Před 7 měsíci +1

      Great idea.

    • @gregor_man
      @gregor_man Před 7 měsíci +1

      I have a self-made font of C64 charsets, you can create a graphics of your T-shirt. There are several undertakers for printing a customized image on a T-shirt. Do you need my font?

    • @PeterMaddison2483
      @PeterMaddison2483 Před 7 měsíci

      It works for ALL commodore machines, not exclusivley the C64 🤪

    • @NeilRoy
      @NeilRoy Před 7 měsíci

      @@PeterMaddison2483 Oh really? It didn't work on the Commodore Amiga 500, Commodore Amiga 2000, Commodore Amiga 3000, Commodore Amiga 4000, Commodore Amiga 1200 or any of the Commodore PC machines. I don't think it worked on the Commodore PET either. 🤪

    • @RogueBoyScout
      @RogueBoyScout Před 6 měsíci

      @@PeterMaddison2483that's a lie. You're a liar. Why would you lie about something so ephemeral. dopamine is free. But that doesn't mean there aren't better ways to get it.

  • @jaymartinmobile
    @jaymartinmobile Před 7 měsíci +5

    Just a side note you can ALWAYS load the first program by adding a : in front of the asterisk. What that tells the drive OS is to use drive zero and resets the pointer, even if the drive is a single drive like a 1541. It's a leftover from the 4040 and 8050/8250 OS. So to ALWAYS load the first program from disk "load":*",8,1" will always work. The * actually means next found not first, but since inserting a disk resets the pointers when the write protect changes that's why it loads the first, usually.

    • @Travman63
      @Travman63 Před 7 měsíci

      Perhaps I am not recalling correctly, I thought the * was the last file accessed, not the next. I do recall the ":' used for 1st program on disk.
      Disk 'speed enhancers' often came with their own set/custom commands. I used Mach-5, Jiffy Dos as well as RAM drive.

  • @rotordave81
    @rotordave81 Před 8 měsíci +11

    I never thought about the type-in experience shaping me into the pedant I became. It might explain a lot. Sometimes I feel that it's like the person who writes something poorly is deferring the task of correcting them (in the readers mind) to the reader, representing a laziness. A computer will not accept this. Why should a reader? So put the effort in! I have even found myself correcting typos before hitting "send" on ChatGPT. Why should I make ChatGPT spend processor cycles first correcting my language before processing an answer? :D
    Thanks for being pedantic, Robin!

  • @MegaManNeo
    @MegaManNeo Před 8 měsíci +4

    When I was still little, my parents thought it was necessary to list the diskette's contents first and check for the full name of the first program which is why I learned rather late about LOAD"*",8,1 at all.

  • @leol6406
    @leol6406 Před 8 měsíci +5

    Back in the day it seemed every magazine program I typed in never worked. Was so frustrating. Great video Robin.

  • @DrDavesDiversions
    @DrDavesDiversions Před 8 měsíci +12

    2:25 You always teach me something! I did not know of the mixed case mode in BASIC, only knew toggle between upper and lower!
    Perhaps they should just print "? syntax error" on the back of the shirts they've already printed.
    When someone calls you on your shirt (sic), you just spin around so they can read the back. :)

    • @DerekLippold
      @DerekLippold Před 8 měsíci

      I never knew you could even change cases

  • @OisEucalypt
    @OisEucalypt Před 8 měsíci +3

    I grew up with the machine and could feel something was terribly wrong with the shirt but it didn't immediately click it was the case. Informative breakdown.

  • @TinySmall69
    @TinySmall69 Před 8 měsíci +7

    Hi, something from the past, even back in the day people thought the last ",1" stands for "autorun" after loading, but of course we knew better :)
    also I never used ",8,1" a lot and am still alive, and later upgraded to a C128 where I never needed the plain LOAD anyways :)
    Thanks for picking this up, it always annoys me seeing these commands.
    👍

    • @jnharton
      @jnharton Před 8 měsíci

      I don't know myself, but if you had no cassette tape perhaps 'LOAD"*",,1' (note the two commas) would do the trick?
      It's worth remembering that most 8-bit computers shipped with 64K or less of memory and memory-mapped I/O was common.
      So there really wasn't a lot of room for more sophisticated approaches to dealing with user input or anything else. It was therefore best to address the most common cases and/or stick to consistent behavior.
      It would also have quite a pain back then to distribute a firmware update, so they put serious effort into debugging any code that shipped in ROM chips.

  • @Nelwyn
    @Nelwyn Před 8 měsíci +9

    Interesting that you can press those other keys to make the tape load faster. I guess Commodore said to use the Commodore key so it doesn't print anything on the screen afterwards, so it was kind of a lazy implementation.
    In reference to the magazine, I remember typing in from Compute's Gazette and they had a program that you could use to type in the program which gives a checksum code after every line similar to what is shown in that magazine in the video with the 2 letters at the end so you could verify there were no mistakes. It helped a lot in machine language programs.

    • @8_Bit
      @8_Bit  Před 8 měsíci +3

      Those checksum systems definitely helped, but this particular listing I've shown still had errors anyway; it had a bug in the program they used to generate the listings and checksums.

    • @AaronOfMpls
      @AaronOfMpls Před 8 měsíci

      Damn, I _wish_ a certain children's magazine had done that in their "Basic Training" column. Few things more frustrating than typing a program in _exactly as printed_ and having it not work. 😠 I swear, it turned me _off_ programming altogether until high school, when I started messing around with TI-BASIC on my graphing calculator and basic HTML on my GeoCities website.
      (It didn't help that I was on a PC when I started in '93-'94, and QBASIC for MS-DOS didn't have great documentation that I could find at the time. Certainly nothing like the VIC-20 and C64 manuals I've seen in more recent retro stuff.)

    • @Curt_Sampson
      @Curt_Sampson Před 7 měsíci +1

      I'm _so_ sick of random internet commenters referring to programmers as "lazy" when something isn't implemented as those commenters, with little knowledge or experience, think it ought to be implemented.
      The folks who wrote the CBM KERNAL packed in a _lot_ of good features in a fairly decent design (a _very_ good design for the time) all in a fairly small amount of memory. And they wrote it fairly quickly, too. This is all the exact opposite of lazy.
      Certain tricks such as reading the row, rather than trying to determine an individual keypress, save both execution time and space. You're essentially accusing the author of that bit of code of being "lazy" for not making the ROM larger and slower.
      So maybe these random internet commenters could take a moment to consider how much they know about the code and why it was written the way it was before slinging insults?

  • @OscarSommerbo
    @OscarSommerbo Před 8 měsíci +5

    When type ins started coming with error checking was a game changer, it really simplified things. The only gripe I have is that it wasn't standardized. Seems like the Ahoy magazine used a small assembler program, but I remember many using a basic loader for assembler with checksums on each DATA statement, crude, but it really cut down on hunting for that one wrong number.

  • @jim_64s8-bitprojects5
    @jim_64s8-bitprojects5 Před 8 měsíci +5

    Great video - these things bug me too!
    Since we're being pedantic, I don't like the description of the command# of 1 (e.g. ",1" at the end) indicating that the data is loaded to the memory location "from which it was saved". I think it's more correct to say it causes the data to be loaded to the memory location specified in the file. In many cases, that binary file was cross compiled or generated from a graphic program, so it didn't originate from that memory location on a c64. I looked in the 1541 manual and the description of "LOADed at exactly the same memory location from which it came." is from commodore, so my nit pick is with them!

    • @8_Bit
      @8_Bit  Před 8 měsíci +2

      I agree completely, I've think I've said it a bunch of ways between different videos but "as specified in the file" seems like the best way.

  • @RacerX-
    @RacerX- Před 8 měsíci +8

    I guess I am not the only one that sees those misprints and thinks to myself, "That won't actually work". haha. Thanks!
    On a side note about some instructions and games including the 0: before the name. I would guess they started doing this after the Save with Replace bug was verified in the magazines and they recommended that you always use the 0: prefix. The reason is, IIRC, is that if you start your session always using the 0: when issuing commands the bug will not occur.

    • @ge97aa
      @ge97aa Před 8 měsíci +1

      That's very true. Not using the drive unit specifier "0:" causes the drive to attempt to initialize the non-existent "drive unit 1". It will fail, as it should, but a very sloppy and obvious indexing bug in the DOS ROM can trigger the save-and-replace bug as well as several other less serious bugs.

  • @rager1969
    @rager1969 Před 8 měsíci +4

    I didn't grow up using a VIC-20 or C64 so this was informative. And though I've only had limited experience in the past few years, I did know why (kinda) the first example was wrong and guessed the second one would specify the tape rather disk drive. I just didn't know that tape drives would literally try to find a program called *.

  • @lerkzor
    @lerkzor Před 8 měsíci +2

    I knew that [ Load "*",8,1 ] would give a ?syntax error, but I was wrong about why. I thought the lowercase letters were the problem, since I know that C64 BASIC uses all caps for every command. It didn't occur to me that the capital L was the issue, because I never played around with mixed case mode. After seeing your explanation though, it makes perfect sense.
    Also, typos and syntax errors are the main reason that I love a GUI.
    BAD SPELLARS OV THE WERLD UNTIE!

    • @markevans2294
      @markevans2294 Před 8 měsíci

      This is likely in part down to the C64 using PETSCII rather than ASCII. Which only has a single case when unshifted. With the ROM routines which parse the input only caring about the character codes rather than how they display.

  • @herdware
    @herdware Před 8 měsíci +12

    Took me way too long to see what was wrong with the t-shirt...

  • @zidane2k1
    @zidane2k1 Před 8 měsíci +3

    Reminds me of an NES controller t-shirt a friend had that had an egregious error, much worse than these incorrect commands-the B and A buttons were reversed! I’m wondering if it was officially licensed, since I imagine Nintendo wouldn’t have allowed such a blatant error on a licensed product.

  • @merman1974
    @merman1974 Před 8 měsíci +3

    The tape-handling code was originally put together for the PET and then moved over wholesale for later Commodore machines. That means a lot of patches and changes, and the sort of coding hack that gives the pause. And a little caveat for disk drive owners using LOAD"*",8(,1) - it doesn't automatically check for file type. So if it tries to load in a SEQ, USR or REL file as the first in the directory it can give you an error or FILE NOT FOUND. Best to use a directory editor to make your boot PRG physically the first in the directory. The C128's autoboot can also be affected by having the wrong file type.
    EDIT: The O instead of zero worked because there isn't a physical "drive O", it's expecting zero or 1 - another feature carried over from earlier drives.

  • @3vi1J
    @3vi1J Před 8 měsíci +4

    I completely agree Robin! People like us were conditioned to be exact in our instructions. :) Thanks for the insight on the handling of * by the drive controller vs. using it with the tape load routines in ROM - I'd never thought about that before, but found it very interesting.

  • @DaveF.
    @DaveF. Před 8 měsíci +4

    "A little quality of life feature Commodore put in there, which is kind of strange" - You can't say much truer than that for a C64. Loved the machine. Hated the Basic/OS.

  • @penfold7800
    @penfold7800 Před 8 měsíci +4

    Yes, regarding manually typing in programs, the "Accuracy is important for Survival" is totally correct. More so if you were unlucky enough that your Computer was a Sinclair ZX81 with a worn Membrane keyboard and the Sinclair 16K RAM expansion. Not only did you have the problem of losing all of your program if the slightest movement upset the connection on the RAM Pack, It also had a tendency to freeze when it overheated due to the strain during the hours of debugging errors in the program and print errors from the magazine. It was common for spaces to be incorrect and badly printed graphics characters to cause havoc when using them to denote machine code within a BASIC program (an odd quirk of ZXBASIC,)

    • @markevans2294
      @markevans2294 Před 8 měsíci

      Using the ZX printer would be poor quality black on sliver which was not easy to typeset.
      Using a regular printer resulted in a black and white print which would be more easily typeset and would work with any early 80s machine. But might only be able to print ASCII characters. In some cases Sinclair specific characters ended up being handwritten.

  • @ScottyBrockway
    @ScottyBrockway Před 8 měsíci +3

    A lot of commercial tapes will only work with shiftrun or c=run, they will fail to work if you try to manually load. In the northwest of USA we called it "splat" instead of asterisk or star. Interesting to note different computer jargon based on region.

    • @8_Bit
      @8_Bit  Před 8 měsíci +3

      I did know a few "splat" people back in the day. I had forgotten about that, thanks for the reminder!

    • @WarrenPostma
      @WarrenPostma Před 7 měsíci

      There was even a commodore disk magazine called LoadStar, referencing the name commonly used for asterisks in much of Canada and the USA. I was not aware of "splat" as a term, but it makes sense as a name for a wildcard.

    • @8_Bit
      @8_Bit  Před 7 měsíci

      Now I'm remembering that the most common time I heard "splat" was when there was a "splat" in a disk directory listing, indicating that the file was bad in some way, usually not closed properly. I think that tied in with the * looking somewhat like a squished bug, and the "splat-file" was a buggy file.

  • @apostleramswell
    @apostleramswell Před 8 měsíci +1

    Wow! Many small "details" I never knew that affected loads! Thank you so much for the clarification.
    Happy Holidays
    Charles

  • @JustWasted3HoursHere
    @JustWasted3HoursHere Před 8 měsíci +4

    I'm embarrassed to say that I could not figure out what was wrong with what was printed on the T-Shirt... But then again, it's been decades since I messed around on a real C64.

  • @Gattancha
    @Gattancha Před 8 měsíci +2

    Being in the UK and having used the ZX Spectrum 48K before getting a C64, I naturally used LOAD "" when trying to load a game from tape.
    Not having a Disk drive, I didn't know about using ',8,1' or even ',1' until years later
    Also, one of the best magazines made in the UK for programming was a series called INPUT - It had code for the C64 and VIC20, as well as the likes of the Spectrum (ZX80 & 48k) and even the BBC / Electron.
    If only I still had a working C64

  • @awilliams1701
    @awilliams1701 Před 8 měsíci +1

    I almost didn't notice the t-shirt being wrong. I'm so use to the C64 being all upper case that I just ignored it. lol

  • @rsr_brian
    @rsr_brian Před 27 dny

    Just stumbled on this channel. I was a kid in the 80s and spent a LOT of time on the C64, but was too young and not patient enough to ever write anything other than very basic and silly programs. I did try to type in a horse racing game from Commodore Gazette once but it never worked 😅
    But since those days, I’ve never really understood the LOAD command that I typed in thousands of times. This video was a real blast and I leaned something about a cherished part of my childhood. Thank you!🙏🏾

  • @willllbert1
    @willllbert1 Před 8 měsíci

    Wonderful video, as always! 😄Thank you so much, Robin

  • @NicolaiDufva
    @NicolaiDufva Před 8 měsíci +1

    When you started talking about being traumatized I chuckled at the hyperbole, but then when you opened the magazine at a type-in program and I physically jolted. I guess you're right. I AM traumatized!

  • @TheWarzoneHackerIsBack
    @TheWarzoneHackerIsBack Před 8 měsíci +2

    I’ve been on every version of commodore since 82. I’ve also only used twin 1541’s and always used CAPS, in white, just like this. I’ve learned two things today. 😮 Okay, three things. 😂❤

  • @DenizTurkmen
    @DenizTurkmen Před 7 měsíci +1

    13:21 I used to use the space bar for the FOUND prompt until I had a game which wouldn't start properly if space was in the keyboard buffer. It drove me crazy until I realized what the issue was. I switched to C= key after that :)

  • @chrissawyer1484
    @chrissawyer1484 Před 8 měsíci

    When I first saw that shirt, I thought, "it needs to be all caps. That's how I remember doing that", but I didn't know that about the C64 characters. Always learning something new about the C64. Thanks again!

  • @mikefellhauer3350
    @mikefellhauer3350 Před 8 měsíci +2

    Back when we used the PET with the INTERNAL Datasette, if we also had an EXTERNAL Datasette we used ,2 to access the external unit.
    p.s. I also have that Telidon button…I remember seeing Telidon demoed at the CNE in Toronto, Canada.

    • @8_Bit
      @8_Bit  Před 8 měsíci

      Cool about the Telidon button; I love its design. And yes, and most (all?) later PETs supported two cassettes though of course they were both external.

    • @ge97aa
      @ge97aa Před 8 měsíci

      Interesting. On the C64 ",2" specifies the pseudo-RS232 interface on the user port, typically used for modems. The LOAD command is illegal on those devices.

    • @mikefellhauer3350
      @mikefellhauer3350 Před 8 měsíci

      @@8_Bit I remembered that later. #1 was on the back, and #2 was on the right (usually covered up).

  • @teldinstarstorm
    @teldinstarstorm Před 7 měsíci

    As someone who grew up with Commodore 64 and had to learn it, this was a fun flashback.
    The Char sets are things I played with, I also started with only a tape drive before we got a disk drive. It was great.

  • @Papierzeit
    @Papierzeit Před 8 měsíci +1

    I was really waiting for this video... thanks for explaining.

  • @keopsequinox1624
    @keopsequinox1624 Před 8 měsíci +1

    I never had a c64 but I always find your videos fun to watch.

  • @Okurka.
    @Okurka. Před 8 měsíci +2

    21:27 Typing in the code of Alice in Adventureland would make a great live stream.

    • @rotordave81
      @rotordave81 Před 8 měsíci

      I agree to the live stream, just make it in Australian time zone! We can actually have the chance to shout at typos

  • @deraykrause4517
    @deraykrause4517 Před 8 měsíci +1

    My running gag back in the day was, "I wish this stupid computer would do what I WANT it to do instead of what I TELL it to do".

  • @DavidYoud
    @DavidYoud Před 8 měsíci +4

    @2:48 I saw that you mentioned on twitter that there's an alternate meaning for "blue angels". I had to google it! :D

    The Blue Angels flew directly over my house multiple times last month (part of San Francisco's Fleet Week). Good golly they're loud!
    I assume you've seen the C64 game Blue Angel 69? Sounds like an old yahoo email address, but it's an actual game (Magic Bytes, 1989).
    @12:48 Cool, didn't know that certain key presses could skip the pause. My tape days were mostly VIC-20. I assume it worked there too?

    • @8_Bit
      @8_Bit  Před 8 měsíci +1

      re: Blue Angels, yes, I think it's a regional thing. We'll see how many people get it :)
      I only learned about Blue Angel 69 in the last couple weeks when someone mentioned that the Accolade game was fairly rare so I looked around online to make sure it had been imaged etc.
      The VIC-20 doesn't pause at all when it finds a file. It also doesn't blank the screen while loading. I assume the pause was added to the C64 when they found they had to blank the screen due to the VIC-II's cycle stealing which made the existing tape routines unreliable with the display enabled, but I haven't looked into that :)

    • @deraykrause4517
      @deraykrause4517 Před 8 měsíci

      Just be lucky it's not Blue Waffle.

  • @gelfie2208
    @gelfie2208 Před 8 měsíci +1

    Used a c64 from a round 83 to 90. Never even knew it has a mixed case mode. Also started with a dataset, for the life of me I couldn't remember how to load the first file on the tape. I fared better with the disk command. Again, case threw me. But I remembered that 8 was a device ID. Didn't really know what the 1 one was for. Sometimes it was needed, sometimes it wasn't. I did not know that * could mean last loaded file though.
    Actually my first instinct was 8 meant the disk drive, and 1 was the drive ID on the bus, in case you had more than one daisy chained.
    I was one of those peeps that basically just played games ;p. Did some homework in GEOS too.

  • @Zhixalom
    @Zhixalom Před 8 měsíci +3

    Imagine someone who is unfamiliar with the C64, buying that T-shirt, then getting a C64 sometime afterwards, only to then figure out that what it says on the T-shirt doesn't actually work. If it was me, then that T-shirt would instantly plummet in emotional value. So no, I don't think you're nitpicking at all, Robin.
    That thing with the asterisk when loading from tape is actually rather obvious, when you think about it. I have just never thought about it until now... and you know I love that kind of stuff.
    - At some point in the past I began using "LOAD":*",8,1" instead. Which is suppose to always load the first file from the disc. I don't recall reading it anywhere, so someone must have told me about it. I also don't recall whether it skips a "DEL

    • @8_Bit
      @8_Bit  Před 8 měsíci +3

      Yes, that LOAD":*",8,1 should always load the first file. I also don't remember where I learned it. It seems to be sort of like the 0 GOTO trick that allows a "parameterless" GOTO, in that preceding the colon *should* be a drive number of 0 or 1 but it seems it can simply be omitted. This will require someone to read the CBM-DOS disassemblies but I assume specifying a drive number (even a nameless/default drive) will cause the drive to disregard any "cached" file that * would otherwise bring up and force it to load the first file from the disk. Lots of room for investigation in this area. Hopefully in the future!

  • @SJMcK
    @SJMcK Před 8 měsíci +1

    I’ve seen that t-shirt. It’s maddening. I would be embarrassed to wear that shirt

  • @jjeeeekk
    @jjeeeekk Před 8 měsíci +2

    Maybe it's worth to notice that LOAD"*",8 could be used to load a previously loaded program again. CBM DOS won't search the directory from thr begin if a program was already selected. The asterisk clobbs to the already loaded one again.
    An unexpected behavior sometimes ...

  • @tYNS
    @tYNS Před 8 měsíci

    Great episode Robin! I had no idea about the "0:*" / "1:*"

  • @JosipRetroBits
    @JosipRetroBits Před 7 měsíci +1

    Great video Robin! LOAD"*",1 is actually a pretty good way to find all programs stored on the tape 😃 Cheers!

  • @uvnoise
    @uvnoise Před 7 měsíci

    My partner wanted to buy me a Commodore 64 disk load shirt and was turned away from a mixed-case offering because somebody took the time to comment on the product page that the command as written wouldn't work. She found a corrected version and now it's one of my favorite pieces of clothing. I'm surprised at how few people know what it means.

  • @ProBloggerWorld
    @ProBloggerWorld Před 8 měsíci

    I saw your comments on Twitter. Nice to see some visuals here.

  • @andymanaus1077
    @andymanaus1077 Před 8 měsíci +2

    Pedantry plays an important survival role in respect of spam emails and messages. Most of these contain grammar and spelling errors. If a person doesn't care about spelling and grammar, they are far more likely to fall for a scam, especially one that simply asks you to click on what you think is a trusted web address.

  • @bluerizlagirl
    @bluerizlagirl Před 8 měsíci +1

    I know exactly what you mean!
    These youngsters will never know what it meant to type in a game from a magazine and have to work through pages of DATA statements looking for the missing digit or comma that was throwing the order out and crashing the game ..... whether it was graphics in the wrong places, or music that went wrong and crashed leaving something dissonant still playing at full volume .....

  • @RudysRetroIntel
    @RudysRetroIntel Před 8 měsíci

    Nice catch and video! Thanks for sharing

  • @fluffycritter
    @fluffycritter Před 7 měsíci

    MC Frontalot's "Penny Arcade theme" has a refrain of "ell-shift O to the quote and then dollar," as a shout-out for how to load and display the directory. of course it's missing the ,8 to specify disk, and it will display a directory of the tape but only if there's no program named "$" on it.

  • @jbmbryant
    @jbmbryant Před 7 měsíci

    What everyone seems to forget is LOAD "0:×",device # (1 for tape and 8 for disk drive).
    The 0:× loads the first file found. If no other number is added it would load into BASIC area of memory (#800 hex), if a ,1 was added then machine code area (#801 hex). The 0:× specifier always insured a proper load.

    • @8_Bit
      @8_Bit  Před 7 měsíci

      LOAD "0:*",1 doesn't work; that's what most of this video is about. Cassette loading doesn't recognize the drive number of 0: and it also doesn't recognize * as a wildcard.
      For disk loading it's true that LOAD"0:*",8 will force the first file on disk to be loaded. But without an extra ,1 at the end the file will be loaded to the start of BASIC memory which is $0801. With an extra ,1 the file will be loaded to whatever 16-bit load address is specified in the file. It could be $C000, $1234, $0801, or anything else really.

  • @ekenpad8482
    @ekenpad8482 Před 8 měsíci +1

    IIRC, "*",8 will load the first program after a new disk is placed in the drive, OR the last program loaded if a different named one was already loaded. ":*",8 will always load the first program regardless if any other programs were loaded prior to it.

    • @ge97aa
      @ge97aa Před 7 měsíci

      You do recall correctly:)

  • @horrorlostplaces
    @horrorlostplaces Před 7 měsíci

    Robin i need your help as Professor of c64 ;) i got myself a c64 again c64c with 1541-2 like from the past. Just i had always a ActionReplay but now i own a final catridge 3. My Problem... i search webs, Reader manuell up and down... how to cheat with fc3 ?? I get freeze, then i go to Monitor, i change 0913 ( turrican 3) so .m 0913 the Adress i change to 60. Then enter, then x (leave monitor) now im back in Desktop. There is no key to get back in the Running Programm?? My question how to get back in the game. I find only "bar" turns your menu on again and freezer is aviable but i cant get back in the game. Is there an allmighty sys.... to switch back at the point the freeze Was made ? I remember in ActionReplay that you can change memory and just get back into the game. Else the Monitor in FinalCatridge is useless or ?

    • @8_Bit
      @8_Bit  Před 7 měsíci

      So when you X (exit) the monitor, it goes right back to the desktop, and not the "freezer menu"? Because from the freezer menu you should be able to choose Exit->RUN and the program will continue.

  • @wimwiddershins
    @wimwiddershins Před 8 měsíci

    Spotted both right away.
    *Only because I dug my old C64 out recently and essentially made both these mistakes (and more) trying to remember the commands.

  • @MichaelDoornbos
    @MichaelDoornbos Před 8 měsíci +2

    21:22 I still do this to unwind sometimes. They don’t have a word for what’s wrong with me

  • @kilton44
    @kilton44 Před 8 měsíci

    Thanks for the video and really dig the ending song.

  • @rickthatch3556
    @rickthatch3556 Před 5 měsíci

    Hey robin... Where would I find the format of a mach Lang executable?

    • @8_Bit
      @8_Bit  Před 5 měsíci

      Do you mean how to make a machine language program executable from BASIC? Check out my 2nd last video "Adding Command Line-esque Parameters to C64 and C128 Programs" starting at 18:30.
      czcams.com/video/HC2--B9ZhUA/video.html

  • @ChopsticksDIYGarden
    @ChopsticksDIYGarden Před 19 dny

    If you have 2 floppy drives, LOAD"*",9,1 will load from the 2nd drive. If you remove 8, it will load from the 1st drive.
    ,1 means Load the file into the starting address specified within the file, which is often used for machine language programs or other non-BASIC files.

  • @androxilogin
    @androxilogin Před 8 měsíci

    I actually questioned this recently and broke it down to ,8,1 is for loading from disk while /1 was for loading from tape. Haven't watched this video yet but that was my generalization.

  • @fattomandeibu
    @fattomandeibu Před 8 měsíci +1

    Was always shift+run/stop and then the Commodore key for me. It's what I read in the manual.
    Talking of run/stop, I notice your C64 must be a different model from mine, as the key cap on mine actually has the slash on the "RUN/STOP". I wonder if that was added later since most games I owned referred to it that way in the manual.

    • @8_Bit
      @8_Bit  Před 8 měsíci +1

      I don't recall ever seeing a C64 with a slash on the RUN/STOP key! Is yours a 64C (more modern case) or a C64 (breadbin) model?

    • @fattomandeibu
      @fattomandeibu Před 8 měsíci +1

      @@8_Bit It's a PAL C64C, likely a very late revision, as I(or more accurately, my dad, I was 5) bought it in 1988, but the system itself is likely from 1990 or so, as it is a warranty replacement.

    • @8_Bit
      @8_Bit  Před 8 měsíci

      @fattomandeibu Interesting, I'll try to keep a look-out for one. I own one PAL 64C but it doesn't have the slash on RUN/STOP. However, I know there were many variations as they continued to cost-reduce it as the years went by.

  • @jjeeeekk
    @jjeeeekk Před 8 měsíci

    What about the file with the empty name on Robin's tape? It couldn't be loaded just by typing LOAD"", because this loads just the next file. You have to wind forward the tape to the position and start loading there (which was the usual use to load a program on tape, according to my memory).
    Out of curiosity, is there a way around this?

    • @8_Bit
      @8_Bit  Před 8 měsíci +1

      I don't know of a way around it without fast-forwarding or of course tediously loading each file in order until you get to that one.

  • @AK-vx4dy
    @AK-vx4dy Před 7 měsíci

    Your knowledge is impressive, respect!
    I didn't have my own, most i know (quite so for not owner) is from visits in friends houses, but only 2 wanted more than gaming.
    I don't know if you check comments to old videos, i wonder about one i left in video on multiply in assembly.

  • @Meow_YT
    @Meow_YT Před 3 měsíci

    Those type-in magazine listings, with errors, were a great way of learning though, fixing it was always provided more experience, as my 8-year-old brain experimented with solutions.

  • @IanM-id8or
    @IanM-id8or Před 7 měsíci +1

    I'd make that:
    LOAD "0:*",8,1
    because of the save-with-replace bug. Got bit by it once or twice back in the day.
    The 1541 drive thinks it's a dual drive, and if you search for a file, it'll first check side 0 (which exists) and, if it doesn't find it, searches drive 1.
    Now it thinks it's looking at drive 1, and when you do a save-with-replace, it instead turns your file into a splat file, which appears in the directory as type *. It will grow and it will eat every file on your disk. There was an article about it in either Compute! or Compute's Gazette back in the day. I remain suitably paranoid about splat files and I'm terrified that no-one seems to know about it anymore
    And, indeed, it IS a throwback to when Commodore disk drives were dual units. They used the same ROM from those drives in the 1541, which is why the 1541 thinks it's a dual drive.

    • @8_Bit
      @8_Bit  Před 7 měsíci

      It should be fine when just loading programs, but yes, it's definitely something to be concerned about if doing saving, especially save-and-replace. I believe the 1541 ROMs were originally in the 4040 Dual drive, then modified to the 2031 single drive, then modified again to the 1541. Some of the dual drive code was removed or patched out, but not enough!

  • @LocalAitch
    @LocalAitch Před 8 měsíci +2

    Correct pedantry is the best kind of pedantry

    • @rotordave81
      @rotordave81 Před 8 měsíci

      I think it is trumped by correcting incorrect pedantry. When someone thinks they're right in correcting you but are hopelessly wrong.

  • @ronindebeatrice
    @ronindebeatrice Před 8 měsíci

    I'm so happy I'm just young enough that I missed out on much of the earliest computers. My first machine was a Cc3 and my experience with it didn't progress beyond running a game... If I was a few years older I imagine I would have tried to program the thing.
    That looks mind twisting.

  • @cbrunnkvist
    @cbrunnkvist Před 8 měsíci

    Finally I good explanation of the Why Only Some Keys & Why About Eight Seconds 🎉

  • @Blink_____
    @Blink_____ Před 8 měsíci

    I don't remember where I first picked up Load "*",8,1 but I do know that on many of my game floppies, that exact instruction was given on the disk label as the instruction for loading the game so it only reinforced it.

  • @jaikee9477
    @jaikee9477 Před 6 měsíci

    If I remember correctly, I used LOAD"*",8: with a ":" at the end. Is it a shortcut like "L Shift i" for LIST, or is there more to it?

  • @stelleratorsuprise8185
    @stelleratorsuprise8185 Před 6 měsíci

    New T-Shirt:
    Load"*",8,1
    ?syntax error
    ready.

  • @ScoopexUs
    @ScoopexUs Před 7 měsíci

    There are many more people without knowledge than with. There are many more people who make mistakes and still succeed than people who rarely do. This means that the history will be written by the victors - the incompetent. The only antidote is to share correct information and hope that many people see it - and to correct people when they're wrong.
    People like 'why' answers like this one, and you explain in detail. Kudos.

  • @stevethepocket
    @stevethepocket Před 7 měsíci +1

    This sort of thing acts as a pretty convenient shibboleth for how much the people responsible for things like that shirt or that documentary actually care about the subject matter. It's not unreasonable to expect someone who's going to the trouble of actually producing products to sell have the most basic understanding of the thing those products relate to. I look at that shirt and my brain immediately goes to bootleg merchandise that misspells the name or attaches the wrong name to the picture.

  • @eekee6034
    @eekee6034 Před 7 měsíci

    I was sitting here feeling a little bit proud that the Ataris of my childhood were "better" in some little ways, ;) when I understood that Commodore can store multiple, named files on tape. I would have liked that feature! :)

  • @MacMelmac
    @MacMelmac Před 7 měsíci

    I was told the LOAD"$",8 and never ,8,1 when load8ng the insex of the disc. Does it make sense?

    • @8_Bit
      @8_Bit  Před 7 měsíci

      Yes, loading the directory file "$" should be done with ,8 and not ,8,1. Using just ,8 brings the directory into regular BASIC memory so it can then be LISTed as a BASIC program. If you use ,8,1 then it will be loaded to the address specified in the file, which is $0401 which is actually the C64's screen memory. This is strange, but it actually goes back to the PET computers which had BASIC memory starting at $0401 so it worked properly there.

  • @janet.snakehole
    @janet.snakehole Před 7 měsíci

    I am a 90s baby, so this was a bit before my time. I never learned BASIC, so your "pickiness" is incredibly useful to me. It may be obvious to some of y'all but I get so frustrated when I can't get a game to load, but it's just because it was explained to me improperly. Thank you :)

  • @thorz7304
    @thorz7304 Před 8 měsíci +1

    i can remember a fast load named "@" on the disk and you had to alter the filename you wanted to load with the fastloader. Maybe with a ":" in front, but i am not sure.

    • @merman1974
      @merman1974 Před 8 měsíci

      Yes, that would be DOS WEDGE or similar. It's loaded into memory and intercepts the commands before BASIC looks at them. So it spots the character and sends the following filename/command to the disk drive.

  • @jsmythib
    @jsmythib Před 6 měsíci

    "Logic, by its very nature, brooks no denial."- I cant remember... Ok, going back to cleaning :)

  • @jandjrandr
    @jandjrandr Před 6 měsíci

    I think this also goes to show the complexity that these commands were created with. So, I think it is no wonder that people got it wrong so often. Just look at the command for creating a scratch disk. It was later in software dev that we realised that when you provide an interface (such as the LOAD command) it should do the same thing in all contexts if possible. These mode specific behaviours make it less approachable in the long run. Still, I love Commodore 64 because it was the first computer that made dev easier for me to do if you glaze over the tape/disk command messiness. That is another one of the reasons Jiffy DOS was made.

  • @fairhall001
    @fairhall001 Před 8 měsíci

    We always used LOAD"*",8,8 As a typing newbie in the 1980's saved me a tonne of time

    • @8_Bit
      @8_Bit  Před 8 měsíci +1

      ,8,8 seems slower than ,8,1 as a touch-typist, but if you've got one hand's finger over the 8 and the other hand over the comma, then I can see it being a bit faster :)

  • @magicmulder
    @magicmulder Před 14 dny

    I remember how proud I was when a friend brought his 1541 over and for the first time I could successfully do
    LOAD “*”,9,1
    😂

  • @sherpya
    @sherpya Před 8 měsíci

    I found an hack long time ago, games with horizontal rainbow lines loader could be prevented to run automatically by keeping pressed run stop, you could even then save them on floppy

  • @scottmcdonnell7559
    @scottmcdonnell7559 Před 8 měsíci

    Definitely a Canadian. That was the most polite rant I have ever heard. :)

  • @BFLmouse
    @BFLmouse Před 8 měsíci

    For the O vs 0 item. Perhaps the kernal code just assumes the character before the colon is a number, and the translate PETCII to INT routine returns zero for characters it can't convert.
    When I test this on my C64, it doesn't seem to matter what I put in front of the colon. Even graphics character will work there.

    • @8_Bit
      @8_Bit  Před 8 měsíci +1

      I believe it's 100% up to the DOS in the drive to interpret that leading drive number. I think it mattered in the earlier dual Commodore drives like the 4040 that the 1541 descended from. Probably when they made the 1540/1541 ROM (or more likely the single-disk 2031 which was made in between) they left some of the parsing code but ultimately just ignore it, or force it to 0 so it doesn't matter.

    • @ge97aa
      @ge97aa Před 8 měsíci +1

      The character before the colon (and in fact all the text in the "filename" string) is interpreted solely by the DOS ROM in the disk drive. If it's a '0', it means the file is required to be on the disk in drive unit 0 (which is the one that actually exists). If it's a '1', it means the file is required to be on the disk in drive unit 1 (which doesn't exist). Any other character means the file is required to be on the disk in the last-used drive unit, which _should_ always be unit 0, but sometimes isn't due to bugs. If there is no colon, then the file is theoretically permitted to be on either drive unit.

  • @RyanSmith-pf7ci
    @RyanSmith-pf7ci Před 8 měsíci

    Whats the song at the end?

    • @8_Bit
      @8_Bit  Před 8 měsíci

      It's a track from an unreleased album from my band that I keep meaning to finish up and get done.

  • @hugoegon8148
    @hugoegon8148 Před 8 měsíci

    Thank you for the video. Yes, small things matter. 😊

  • @CZghost
    @CZghost Před 7 měsíci

    The question is how do you load specifically the program with no name, when an empty string loads the next program?

  • @Otakunopodcast
    @Otakunopodcast Před 8 měsíci +1

    "Load" I can understand, and even forgive. Modern devices these days love to be "helpful" and do stuff like automatically add punctuation and capitalize things that they think require capitalization. My devices do the same thing to me ALL THE TIME whenever posting/commenting about computer/electronics things. Usually I'm alert enough to catch them in the act, but sometimes I accidentally let one slip through. So whoever made the "Load"*",8,1" shirt may have fallen victim to this. Also capital-L is (technically) grammatically correct ("first word of a sentence should always be capitalized!") so maybe someone at the T-shirt company who was proofing the design and who doesn't know much about retrocomputing, thought "huh... that looks wrong... I'm gonna fix it!" Of course WE know that the correct version would be "lO"*",8,1" assuming your C64 is in upper/lower mode. Oh well, at least they got the ",8,1" part right. :) (unlike the second example you pointed out :) )

    • @8_Bit
      @8_Bit  Před 8 měsíci

      Yeah, I can understand the t-shirt mistake on one hand, but on the other it's a "you had ONE job" kind of thing. The t-shirt design consists of a single line, and it's not even correct. With the documentary guys, they had dozens of things going on in their 90 second trailer, with a whole bunch of camera set-ups for many shots, organizing all the props, lighting, all the editing, sound work, etc. etc. So from this perspective, the trailer guys got 99% of their work correct, and only 1% error, while the t-shirt is way worse as a percentage :)
      I'm not really serious about which is worse here, just offering another way of looking at it.

  • @jensdroessler3575
    @jensdroessler3575 Před 8 měsíci +1

    I see you brought your A GAME.

  • @JohnDoe-us5rq
    @JohnDoe-us5rq Před 7 měsíci

    I never owned nor operated a C64 but videos like this ring with me. There is little more interesting to me than how specifically old computers and their hardware work.
    Especially when it gets down on how the hardware really works.
    I'd never thought of the disk drive to actually have a processor and OS on its own.
    A really interesting hardware design.

  • @fredrikjohansson
    @fredrikjohansson Před 7 měsíci

    the first thing I ever learned to write was LOAD”*”,8,1 Return

  • @anon_y_mousse
    @anon_y_mousse Před 7 měsíci

    As a modern day C programmer, I completely agree with this stance. Accuracy and precision are very important for software and I hate how sloppy everyone has become again. I say `again` because the 80's was a very sloppy time, but I feel like the 90's and 00's were less so.